Heller 2011-08-30
1、执行命令autoscan会生成configure.scan
在configure.scan中修改AC_INIT([name], [Vresion], [mail])
并添加AM_INIT_AUTOMAKE(test, 1.0)
修改AC_OUTPUT为AC_OUTPUT([Makefile])
2、执行autoheader命令生成config.h.in
3、创建Makefile.am文件,添加如下项
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=test
CURRENT_PATH=$(PWD)
test_SOURCES=test.c
INCLUDES=-I$(CURRENT_PATH)/include
4、执行命令automake --add-missing
5、执行命令autoconf,这样就生成configure文件了,执行./configure可以生成Makefile文件
如果程序中依赖其他程序的动态库,在configure.in里需要增加该依赖库选项
AC_ARG_ENABLE(sqlite3,[--enable-sqlite3
use sqlite3],LDFLAGS="${LDFLAGS} -lsqlite3";
CPPFLAGS="${CPPFLAGS} -DWITH_SQLITE3")
或者:
AC_ARG_WITH(sqlite3,
[ --with-sqlite3 use sqlite3],LDFLAGS="${LDFLAGS}
-L$withval/lib -lsqlite3";
CPPFLAGS="${CPPFLAGS} -I$withval/include -DWITH_SQLITE3")
这样在生成configure后,就可以通过LDFLAGS增加依赖库的路径了
附:Makefile.am的有关选项
bin_PROGRAMS=test
test_SOURCEs=test.c
INCLUDES=-I
AM_LDFLAGS=-L
LDADD=(动态库文件地址)
SUBDIRS=..