将设现在的文件目录project是这样的:

--------------------------------------------------2012年9月29日1:03:10
main.c src inc
在src中放入所有的.c文件:add.c 、hello.c。
在inc中放入所有的.h文件:add.h 、hello.h。
使用automake来写makefile的流程如下:

1、写makefile.am
有三个地方需要写makefile.am:
1)、当前文件(project)下;
AUTOMAKE_OPTIONS = foreign
SUBDIRS = src inc //子目录
ROOTDIR = $(shell /bin/pwd) //获得当前目录
INCLUDES = -I$(ROOTDIR)/inc //头文件的地址
export INCLUDES //其他文件也可用这个环境变量
bin_PROGRAMS = cyh_run //要产生的可执行文件名
cyh_run_SOURCES = main.c //用来执行的源文件
cyh_run_LDADD = $(ROOTDIR)/src/libaddhello.a //增加链接库
2)、src目录
noinst_LIBRARIES = libaddhello.a
libaddhello_a_SOURCES = add.c hello.c
3)、inc目录下
EXTRA_DIST = add.h hello.h //额外要打包的文件
2、输入命令:autoscan
执行上述命令后,会生产一个configure.scan文件,
输入命令:mv configure.scan
configure.in
将其转换为configure.in。
在将
configure.in内容修改为:
# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.63) AC_INIT(cyh_run, 1.0, 991698424@qq.com) ----修改 AM_INIT_AUTOMAKE() -----新增 AC_CONFIG_SRCDIR([main.c]) #AC_CONFIG_HEADERS([config.h]) ----修改 # Checks for programs. AC_PROG_CC # Checks for libraries. AC_PROG_RANLIB -----新增 # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. AC_CONFIG_FILES([Makefile inc/Makefile src/Makefile]) AC_OUTPUT
3、输入命令:aclocal
4、输入命令:autoconf
5、输入命令:automake --add-missing
6、输入命令:./configure
7、输入命令:make
8、执行./cyh_run,得到以下结果:
Hello, I'am cyh 1 + 5 = 6