在Linux下面有种自动生成makefile的方法,现在很多大型工程都会使用这种方法。具体的生成方法需要参考automake的详细文档。不是几句话能说清楚的。
这里简单以一个例子来说明。
test目录下只有一个源文件test.c,用automake生成makefile的过程如下:
1) 在 test 目录下用 autoscan 命令生成一个 configure.scan 文件。
2) 用它作为蓝本,编辑后内容如下:
AC_INIT(test.c)
AM_INIT_AUTOMAKE(test,1.0)
AC_PROG_CC
AC_OUTPUT(Makefile)
把 configure.scan 重命名为 configure.in。
3) 执行 aclocal 和 autoconf,分别产生 alocal.m4 和 configure 文件。
4) 手动创建并编辑 Makefile.am,内容如下:
AutoMAKE_OPTIONS = foreign
bin_PROGRAMS = test
test_source = test.c
5) 执行 automake -a ,会根据 Makefile.am 产生一些文件,包含重要的 Makefile.in 文件
6) 执行 ./configure 生成 Makefile。
说明:这种生成方法是自动生成,但是前面几个文件的编写需要参考一些文档,对于比较庞大的工程,需要更复杂的编写前期文件的工作。 当然,如果是用于编译比较简单(源文件比较少或依赖比较少)的模块,熟练掌握makefile规则后自己写反而更简单。
取消
评论