@node ax_numeric_namedlevel @unnumberedsec ax_numeric_namedlevel @majorheading Synopsis @smallexample AX_NUMERIC_NAMEDLEVEL(VARNAME [,FROMVAR [,DEFAULT [,YESLEVEL]]]) @end smallexample @majorheading Description The levelstring FROMVAR is expanded and checked for verbal names that will map on to eight different levels - the VARNAME will receive this numeric level where "all" maps to 7 (lower three bits set) higher levels for 8 and 9 exist too. This macro is a nice helper to convert user input of a --with-opt=level into a numeric form that can be simply pushed as a #define like with AC_DEFINE: @smallexample default YESLEVEL = 2 /* including unknown levelspec */ default DEFAULT = 0 /* when named level is empty */ default FROMVAR = VARNAME @end smallexample The DEFAULT value is used if the NAMED levelstring has become empty and it is copied without further conversion - a default of "0" is used if absent - identical to "no". A "yes" will be set to the YESLEVEL - and note that "yes" has "2" as its default value not "1". (which comes from its original use to set a "gcc -O2"). the mnemonic names are: @smallexample 9| insane |ultrasome|experimentalplus 8| ultra |ultra|experimental) 7| all |muchmore|somemanymore|manymoreplus 6| most |manymore|most) 5| strict |somemore|almost 4| more |more 3| extra |manyplus|plusmuch|somemany|plusmany 2| many |many|much|(yes) 1| some |some|plus @end smallexample note that a level can be constructed of (some|plus) = bit-0, (many|much) = bit-1, (more) = bit-2, (ultra|experimental) = bit-3 at least in a left-to-right order, ie. plusmanymore=7 Example usage: @smallexample AX_NUMERIC_NAMEDLEVEL(OPTLEVEL,with_optlevel,1,3) AC_DEFINE(OPTLEVEL) test "$GCC" = "yes" && CFLAGS="$CFLAGS -O$OPTLEVEL) @end smallexample @majorheading Source Code Download the @uref{http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_numeric_namedlevel.m4,latest version of @file{ax_numeric_namedlevel.m4}} or browse @uref{http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=history;f=m4/ax_numeric_namedlevel.m4,the macro's revision history}. @majorheading License @w{Copyright @copyright{} 2008 Guido U. Draheim @email{guidod@@gmx.de}} Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.