1. 新创建一个c语言工程auto,选用“Hello World ASCI C Autotools Project”, eclipse会调用autoscan/aclocal/ automake/autoconf自动创建一些列文件
2. 在src目录下写自己的代码,例如
src/
config
config.h
config.c
config_test.c
container
container.h
container.c
container_test.c
auto.c
3. 修改 configure.ac (被autoconf用来查看各种预备文件,未来autoconf会把 configure.ac 翻译为 configure 文件)
AC_PREREQ(2.59)
AC_INIT(auto, 1.0)
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE()
AC_PROG_CC
AC_CONFIG_FILES(Makefile
src/Makefile
src/container/Makefile
src/config/Makefile)
AC_OUTPUT
4. 查看并修改各级Makefile.am (Make.am是Makefile的蓝本,automake会将Make.am翻译为Makefile.in)
a) project的Makefile.am
SUBDIRS=src
b src下的Makefile.am
SUBDIRS = container config
bin_PROGRAMS=auto
auto_SOURCES=auto.c container/container.h container/container.c config/config.h config/config.c
c) config下的Makefile.am
AUTOMAKE_OPTIONS = foreign
bin_PROGRAMS = iconfig
iconfig_SOURCES = config.h config.c config_test.c
iconfig_CPPFLAGS = -g -Wall
d) container下的Makefile.am
AUTOMAKE_OPTIONS = foreign
bin_PROGRAMS = icontainer
icontainer_SOURCES = container.h container.c container_test.c
icontainer_CPPFLAGS = -g -Wall
5. 最后执行./configure过程中,会将Makefile.in生成各层最终的Makefile, 有了Makefile,就可以make了。