1、通过autoscan生成configure.scan, 然后改名成configure.in
2、编辑configure.in
3、编辑Makefile.am
4、运行下列命令,可以写入到bootstrap脚本中
touch NEWS README AUTHORS ChangeLog COPYING
aclocal
autoheader
libtoolize --automake #如果是共享库,则必须需要
automake -a
autoconf
5、configure.in编写规则
1)最基本的configure.in的编写规则
AC_INIT(src/main.cpp)
AM_INIT_AUTOMAKE(hello, 0.1)
AC_PROG_CXX
AC_PROG_RANLIB
AC_PROG_LIBTOOL # 共享库必须需要
AC_OUTPUT(Makefile src/Makefile src/sub/Makefile)
6、Makefile.am编写规则
- 1)根目录(configure.ac所在的目录)必须有一个Makefile.am
- 2)所有有需要编译的代码文件的目录下必须有一个Makefile.am
- 3)如果一个目录中有Makefile.am,那么必须在它的父目录中的Makefile.am里用SUBDIRS指定它
- 4)exe(可执行)程序的Makefile.am
bin_PROGRAMS = main
main_SOURCES = main.cpp
SUBDIRS = sub
LDADD = sub/lib.a
- 5)lib程序的Makefile.am
noinst_LIBRARIES = libfoo.a
libfoo_a_SOURCES = a.cpp a.h
- 6)共享库的Makefile.am
lib_LIBRARIES = libfoo.la
libfoo_la_SOURCES = …..