Linux autotools的使用


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=..

相关内容