給Autoconf增加調式選項-enable-debug(zz)

原文http://hi.baidu.com/thexinchan/blog/item/c4cbffedcbdae9d0b21cb14a.html

 

我們使用AC_ARG_ENABLE宏。
AC_ARG_ENABLE (feature, help-string [, action-if-given [, action-if-not-given]])
如果用戶以選項`--enable-feature'或者`--disable-feature'調用 configure,就運行shell命令action-if-given。
如果兩個選項都沒有給出,就運行shell命令 action-if-not-given。
名稱feature表示可選的用戶級功能。它應該僅僅由字母、數字和破折號(dashes)組成。
shell命令可以通過訪問shell變量enableval來得到選項的參數.

例如下面的命令(#構成的兩行的中間部分.寫在configure.ac裏),將在生成 configure 腳本後,
使得configure腳本支持 --enable-debug 選項和--disable-debug選項。
當使用--enable-debug時,將在config.h裏定義宏DEBUG爲1。
當使用-- disable-debug或者不使用 --enable-debug也不使用--disable-debug時,在config.h裏面定義宏DEBUG爲0。

#######################################
AC_ARG_ENABLE([debug],
    [AS_HELP_STRING([--enable-debug],[output debug log (default is no)])],
    [if test "$enableval" == "yes"; then
        AC_DEFINE([DEBUG],[1],[Define if --enable-debug])
    else
        AC_DEFINE([DEBUG],[0],[Define if --disable-debug])
    fi
    ],
    [AC_DEFINE([DEBUG],[0],[Define if need to output debug log])])
#########################################  
  
說明,請保證這些內容出現在AC_INIT宏和AC_OUTPUT宏之間。



更簡單的可以這樣做


#debug options support
AC_ARG_ENABLE([debug],
    [AS_HELP_STRING([--enable-debug],[debug program(default is no)])],
    [CFLAGS="${CFLAGS} -DDEBUG -g"],
    [CFLAGS="-O2"])

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章