Macro: ac_cond_with_level

Back to the Main Page. | Download the M4 Source.

# ac_cond_with_level

## Synopsis

`AC_COND_WITH_LEVEL(PACKAGE [,DEFAULT [,YESLEVEL]])`

## Version

1.1.1.1 (2001/07/26) Miscellaneous @ ac-archive-0.5.32

## Author

Guido Draheim <guidod@gmx.de>

## Description

actually used after an AC_ARG_WITH(PKG,...) option-directive, where AC_ARG_WITH is a part of the standard autoconf to define a `configure` --with-PKG option.

this macros works almost like AC_COND_WITH(PACKAGE [,DEFAULT]), but the definition is set to a numeric value. The level of a simple "yes" is given (or assumed "2" if absent), otherwise the level can be given in mnemonic names, being 1 = some 2 = many 3 = all 4 = extra 5 = extrasome more 6 = extramany muchmore much 7 = super everything 8 = ultra experimental 9 = insane

this macro is most handily it making Makefile.in/Makefile.am that have a set of with-level declarations, espcially optimization-levels

the $withval shell-variable is set for further examination (it carries the numeric value of the various mnemonics above)

## M4 Source Code

    AC_DEFUN(AC_COND_WITH_LEVEL,
    [dnl the names to be defined...
    pushdef([WITH_VAR],    patsubst(with_$1, -, _))dnl
    pushdef([VAR_WITH],    patsubst(translit(with_$1, [a-z], [A-Z]), -, _))dnl
    pushdef([VAR_WITHOUT], patsubst(translit(without_$1, [a-z], [A-Z]), -, _))dnl
    pushdef([VAR_WITHVAL], patsubst(translit(withval_$1, [a-z], [A-Z]), -, _))dnl
    pushdef([VAR_WITHDEF], patsubst(translit(withdef_$1, [a-z], [A-Z]), -, _))dnl
    AC_SUBST(VAR_WITH)
    AC_SUBST(VAR_WITHOUT)
    AC_SUBST(VAR_WITHVAL)
    AC_SUBST(VAR_WITHDEF)
    if test -z "$WITH_VAR"
       then WITH_VAR=`echo ifelse([$2], , no, [$2])`
    fi
    if test "$WITH_VAR" = "yes"
       then WITH_VAR=`echo ifelse([$3], , some, [$3])`
    fi
    if test "$WITH_VAR" != "no"; then
      VAR_WITH=    ; VAR_WITHOUT='#'
      case "$WITH_VAR" in
        9|9,*|ultrasome|ultrasome,*|insane)				withval=9
    		VAR_WITHVAL=9 ;  VAR_WITHDEF="-D""VAR_WITH=9" ;;
        8|8,*|ultra|ultra,*|experimental) 				withval=8
                    VAR_WITHVAL=8 ;  VAR_WITHDEF="-D""VAR_WITH=8" ;;
        7|7,*|muchmore|somemanymore|somemanymore,*|all)		withval=7
    	        VAR_WITHVAL=7 ;  VAR_WITHDEF="-D""VAR_WITH=7" ;;
        6|6,*|manymore|manymore,*|most) 				withval=6
                    VAR_WITHVAL=6 ;  VAR_WITHDEF="-D""VAR_WITH=6" ;;
        5|5,*|somemore|somemore,*|almost) 				withval=5
    	        VAR_WITHVAL=5 ;  VAR_WITHDEF="-D""VAR_WITH=5" ;;
        4|4,*|more|more,*) 						withval=4
    		VAR_WITHVAL=4 ;  VAR_WITHDEF="-D""VAR_WITH=4" ;;
        3|3,*|much|somemany,*)					withval=3
    		VAR_WITHVAL=3 ;  VAR_WITHDEF="-D""VAR_WITH=3" ;;
        2|2,*|many|many,*) 						withval=2
    		VAR_WITHVAL=2 ;  VAR_WITHDEF="-D""VAR_WITH=2" ;;
        1|1,*|some|some,*) 						withval=1
    		VAR_WITHVAL=1 ;  VAR_WITHDEF="-D""VAR_WITH=1" ;;
          *) 							withval=-
     	       AC_MSG_ERROR([dnl
     bad value of --with-$1 option, choose a number or some|many|more|all... ])
      esac
    else								withval=0
      VAR_WITH='#' ;   VAR_WITHOUT=""
      VAR_WITHVAL=0 ;  VAR_WITHDEF=""
    fi
    popdef([VAR_WITH])dnl
    popdef([VAR_WITHOUT])dnl
    popdef([VAR_WITHVAL])dnl
    popdef([VAR_WITHDEF])dnl
    popdef([WITH_VAR])dnl
    ])

    dnl and the same as AC_COND_WITH_LEVEL with an AC_DEFINE in the end...
    AC_DEFUN(AC_COND_WITH_LEVEL_DEFINE,
    [dnl the names to be defined...
    pushdef([WITH_VAR],    patsubst(with_$1, -, _))dnl
    pushdef([VAR_WITH],    patsubst(translit(with_$1, [a-z], [A-Z]), -, _))dnl
    pushdef([VAR_WITHOUT], patsubst(translit(without_$1, [a-z], [A-Z]), -, _))dnl
    pushdef([VAR_WITHVAL], patsubst(translit(withval_$1, [a-z], [A-Z]), -, _))dnl
    pushdef([VAR_WITHDEF], patsubst(translit(withdef_$1, [a-z], [A-Z]), -, _))dnl
    AC_SUBST(VAR_WITH)
    AC_SUBST(VAR_WITHOUT)
    AC_SUBST(VAR_WITHVAL)
    AC_SUBST(VAR_WITHDEF)
    if test -z "$WITH_VAR"
       then WITH_VAR=`echo ifelse([$2], , no, [$2])`
    fi
    if test "$WITH_VAR" = "yes"
       then WITH_VAR=`echo ifelse([$3], , some, [$3])`
    fi
    if test "$WITH_VAR" != "no"; then
      VAR_WITH=    ; VAR_WITHOUT='#'
      case "$WITH_VAR" in
        9|9,*|ultrasome|ultrasome,*|insane)				withval=9
    		VAR_WITHVAL=9 ;  VAR_WITHDEF="-D""VAR_WITH=9" ;;
        8|8,*|ultra|ultra,*|experimental) 				withval=8
                    VAR_WITHVAL=8 ;  VAR_WITHDEF="-D""VAR_WITH=8" ;;
        7|7,*|muchmore|somemanymore|somemanymore,*|all)		withval=7
    	        VAR_WITHVAL=7 ;  VAR_WITHDEF="-D""VAR_WITH=7" ;;
        6|6,*|manymore|manymore,*|most) 				withval=6
                    VAR_WITHVAL=6 ;  VAR_WITHDEF="-D""VAR_WITH=6" ;;
        5|5,*|somemore|somemore,*|almost) 				withval=5
    	        VAR_WITHVAL=5 ;  VAR_WITHDEF="-D""VAR_WITH=5" ;;
        4|4,*|more|more,*) 						withval=4
    		VAR_WITHVAL=4 ;  VAR_WITHDEF="-D""VAR_WITH=4" ;;
        3|3,*|much|somemany,*)					withval=3
    		VAR_WITHVAL=3 ;  VAR_WITHDEF="-D""VAR_WITH=3" ;;
        2|2,*|many|many,*) 						withval=2
    		VAR_WITHVAL=2 ;  VAR_WITHDEF="-D""VAR_WITH=2" ;;
        1|1,*|some|some,*) 						withval=1
    		VAR_WITHVAL=1 ;  VAR_WITHDEF="-D""VAR_WITH=1" ;;
          *) 							withval=-
     	       AC_MSG_ERROR([dnl
     bad value of --with-$1 option, choose a number or some|many|more|all... ])
      esac
    dnl -- the additional line is here --
      AC_DEFINE_UNQUOTED(VAR_WITH,$VAR_WITHVAL,"--with-$1=level")
    else								withval=0
      VAR_WITH='#' ;   VAR_WITHOUT=""
      VAR_WITHVAL=0 ;  VAR_WITHDEF=""
    fi
    popdef([VAR_WITH])dnl
    popdef([VAR_WITHOUT])dnl
    popdef([VAR_WITHVAL])dnl
    popdef([VAR_WITHDEF])dnl
    popdef([WITH_VAR])dnl
    ])