Modern Automake

来源:互联网 发布:开源云计算平台数据库 编辑:程序博客网 时间:2024/06/13 20:26

(2017.5.15) 

现在搜罗到的autoconf - automake都太老了。 现在的写法改变了。 


1. 建立目录,添加源码文件hello.c


2. autoscan生成模板. 得到configure.scan文件。 基于这个文件做修改 。

在运行aclocal之前, 请将这个文件后缀改为.ac。( 以前叫.in)


请先参考如下链接:

https://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation

需要修改的是AC_INIT 将其注释或者删掉:

AC_INIT([hello], [1.0]) 

AM_INIT_AUTOMAKE  这一行不带任何参数(modern写法)


修改好configure.ac文件之后总是执行 aclocal 

autoconf  (一次错误都不允许出现)


3. 然后是添加Makefile.am文件。  以下等号左边的variables在vim里面会有特别的颜色显示. 

书写如下:

AUTOMAKE_OPTIONS=foreign

bin_PROGRAMS=hello         注意:如果修改hello -> helloX 则configure 之后make报错找不到helloX.o文件。

hello_SOURCES=hello.c


4.执行automake --add-missing

有很多文件(配置)我们在这个时候并没有提供; 

会有一个报错:  config.h.in文件找不到。 这个文件没有通过--add-missing得到。 所以要自己写。 

touch config.h.in 


接下来就可以继续configure了。 


---------------------

如果代码是放在子目录中的, 则需要在configure.ac文件中

AM_INIT_AUTOMAKE([subdir-objects]) 这样, 打开subdir-objects这个选项. 


注: 在autoscan之前最好就放好Makefile.am文件 ,  这样在configure.scan文件中就会自动生成

AC_CONFIG_FILES([Makefile])











0 0