Macro: ac_cond_with_level

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

Synopsis

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

Version

  1.1.1.1 (2001/07/26) guidod @ ac-archive-0.5.39

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
      ])