automake中的AC_ARG_WITH和AM_CONDITIONAL使用示例

转载 2012年03月22日 09:54:58

automake中的AC_ARG_WITH和AM_CONDITIONAL使用示例

AC_ARG_WITH

AC_ARG_WITH(common,"--with-common prefix for installed COMMON-LIBRARY",COMMON_LIBRARY_HOME=$withval,COMMON_LIBRARY_HOME=)
AC_SUBST(COMMON_LIBRARY_HOME)
AS_IF([test "x$COMMON_LIBRARY_HOME" = "x"],[AC_MSG_ERROR([*** COMMON-LIBRARY could not be located. Please use the --with-common option ***.])])
经过上面的操作后,在Makefile.am中就可以引用common-library_home了,后面的AS_IF表示如果没有指定,则报错退出(执行configure时)。


最好将AC_ARG_WITH最好修改成:
  1. AC_ARG_WITH(common, AS_HELP_STRING([--with-common], [prefix for installed COMMON-LIBRARY]),COMMON_LIBRARY_HOME=$withval,COMMON_LIBRARY_HOME=)
复制代码


使用AS_HELP_STRING后,./configure --help显示的就会对齐,否则顶格原原本本输出,效果如下:
  1. Optional Packages:
  2.   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  3.   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  4.   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
  5.   --with-pic              try to use only PIC/non-PIC objects [default=use
  6.                           both]
  7.   --with-tags[=TAGS]      include additional configurations [automatic]
  8.   --with-common           prefix for installed COMMON-LIBRARY
复制代码



# Check whether --with-common-library was given.
if test "${with-common-library+set}" = set; then
  withval=$with-common-librarycommon-library_home=$withval
else
  common-library_home=
fi
从上可以看出,将$withval改成$with-common-library也可以。


AM_CONDITIONAL
AM_CONDITIONAL(LOG4CXX_INSTALLED_ENV, test $LOG4CXX_HOME -a -d $LOG4CXX_HOME)

OpenWRT添加模块(二)configure.in和Makefile.am

前一章实现了一个模块的添加和编译,本章介绍基于autoconf/automake的生成机制将menuconfig中的设置传递到编译系统(Makefile和source code) 对menuconf...
  • teddy99999
  • teddy99999
  • 2013年12月13日 21:13
  • 4383

[编译]autoconf 工具学习

zhangbin@Ubuntu32:~/alex/codeStore/testCODE/testAUTOCONF/hello$ sudo su [sudo] password for zhangbin...
  • commshare
  • commshare
  • 2014年10月10日 16:50
  • 3554

编写Makefile.am

Makefile.am将指明工程需要哪些源文件,建造的是什么,如何安装它们。 具体语法如下: option_where_PRIMARY = targets … targets是要建造的目标 P...
  • john_crash
  • john_crash
  • 2015年11月17日 22:57
  • 1707

automake与makefile.am变量详细解释

http://liaowb1234.blog.163.com/blog/static/77155547201038111815281/    9. Building Programs and Libr...
  • ZHANGJIETING
  • ZHANGJIETING
  • 2010年08月24日 14:39
  • 5931

大型项目使用Automake/Autoconf完成编译配置

大型项目使用Automake/Autoconf完成编译配置 使用过开源C/C++项目的同学们都知道,标准的编译过程已经变成了简单的三部曲:configure/make/make install, 使...
  • fd315063004
  • fd315063004
  • 2012年07月25日 16:38
  • 10231

Navit学习笔记(四)

本文阐述Navit的Makefile工程文件的定义,主要目的是理顺整个Navit项目的框架。Navit 项目的层级结构如下(图中没有将Navit所有的目录列出):navit(根目录,一级目录).......
  • zskylark
  • zskylark
  • 2011年03月03日 21:30
  • 2246

autoconf AC_ARG_WITH, AC_CACHE_CHECK, AC_TRY_LINK宏学习

http://www.searchtb.com/2011/07/autoconf-ac_arg_with-ac_cache_check-ac_try_link.html 最近在在RH...
  • powersaven
  • powersaven
  • 2014年02月17日 15:54
  • 845

autoconf常用宏

AC_INIT (unique-file-in-source-dir)处理所有命令行参数并且寻找源代码目录。unique-file-in-source-dir是一些在包的源代码目录中文件; confi...
  • SUKHOI27SMK
  • SUKHOI27SMK
  • 2013年02月20日 15:42
  • 1390

configure.ac范例一

检查头文件AC_CHECK_HEADERS([headers]) 例如:AC_CHECK_HEADERS([unistd.h windows.h])这个宏将在当前建造环境下检查unistd.h,wi...
  • john_crash
  • john_crash
  • 2015年11月30日 14:27
  • 2080

automake连载---关于两个文件configure.in和Makefile.am的编写

automake主要通过编辑Makefile.am来控制它的行为,下面就常用的三个Makefile.am配置做出说明。 1.1. autotools的工作原理   autotools最终是为了生...
  • shanzhizi
  • shanzhizi
  • 2014年06月12日 15:19
  • 5927
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:automake中的AC_ARG_WITH和AM_CONDITIONAL使用示例
举报原因:
原因补充:

(最多只允许输入30个字)