精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● 软件开发>>没有规矩,不成方圆----文档与标准化>>AutoMake简要说明——目录>>AutoMake简要说明(17)

主题:AutoMake简要说明(17)
发信人: dingdang()
整理人: zelor(2001-11-27 10:40:26), 站内信件
第一节, 上一节, 下一节, 最后一节, 回到目录 
----------------------------------------------------------------------
----------

条件判断


Automake支持一种简单形式的条件判断。 

在使用条件判断之前,必须在configure.in中定义 AM_CONDITIONAL,这个宏有两
个参数。 

第一个参数是条件的名字。名字必须以字母开头,可包含字母、数字和下划线。
 

第二个参数是一个shell的条件表达式,可用于shell的if语句。条件表达式在执
行configure时进行求值。 

一般来说条件判断依赖于用户提供给configure脚本的选项。在下面的例子中,如
果用户指定了`--enable-debug',则条件表达式的值为真。 

AC_ARG_ENABLE(debug,
[  --enable-debug    Turn on debugging],
[case "${enableval}" in
  yes) debug=true ;;
  no)  debug=false ;;
  *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
esac],[debug=false])
AM_CONDITIONAL(DEBUG, test x$debug = xtrue)

下面是一个在`Makefile.am'中使用条件判断的例子: 

if DEBUG
DBG = debug
else
DBG =
endif
noinst_PROGRAMS = $(DBG)

else语句可以略掉。条件判断可以任意嵌套。 

请注意Automake中的条件判断与GNU Make中的条件判断并不完全相同。 Automak
e中的条件判断在执行`configure'脚本时进行检查,并影响从`Makefile.in'到`
Makefile'的转换。它们基于传递给`configure'的参数。GNU Make中的条件判断
则在make时进行检查,基于在`Makefile'中定义的以及传递给make程序的变量。
 

Automake的条件判断可与任何make程序一起工作。 


----------------------------------------------------------------------
----------
第一节, 上一节, 下一节, 最后一节, 回到目录 

--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.104.84.141]

[关闭][返回]