符合GUN惯例的Makefile生成
时间:2006-11-13 来源:smx2lh
$ mkdir hello $ cd hello |
int main(int argc, char** argv) { printf("Hello, GUN Makefile\n"); return 0; } |
$ autoscan $ ls configure.scan hello.c |
2> 将configure.scan改名为configure.in,按下面的内容修改,去掉无关的语句:
====================configure.in内容开始=================== # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_INIT(hello.c) AM_INIT_AUTOMAKE(hello, 1.0) # Checks for programs. AC_PROG_CC # Checks for libraries. # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. AC_OUTPUT(Makefile) =============configure.in内容结束=========== |
$ aclocal $ autoconf $ ls aclocal.m4 autom4te.cache configure configure.in hello.c |
4> 新建Makefile.am文件 内容如下:
AUTOMAKE_OPTIONS=foreign bin_PROGRAMS=hello helloworld_SOURCES=hello.c |
$automake --add-missing |
6> 执行configure生成Makefile
$./configure |
到此为止,一个符合GUN规范的Makefile就完成了.
三.工具和命令的有关知识
1.autoscan
autoscan是用来扫描源代码目录生成configure.scan文件的。autoscan可以用目录名做为参数,但如果你不使用参数的话,那么autoscan将认为使用的是当前目录。autoscan将扫描你所指定目录中的源文件,并创建configure.scan文件 |
2.acloacl
aclocal是一个perl 脚本程序。aclocal根据configure.in文件的内容,自动生成aclocal.m4文件。aclocal的定义是:“aclocal - create aclocal.m4 by scanning configure.ac”。 |
3.autoconf
autoconf是用来产生configure文件的。configure是一个脚本,它能设置源程序来适应各种不同的操作系统平台,并且根据不同的系统来产生合适的Makefile,从而可以使你的源代码能在不同的操作系统平台上被编译出来。 |