gun makefile :
如图所示为automake,autoconf生成makefile的过程(简化)。
程序源码
|
autoscan*
|
v
configure.scan
|
编译修改*
|
v aclocal*
makefile.am configure.in -------> aclocal.m4
\ ___/\___ ___ /
\ / \ /
automake* autoconf*
\ / \ /
v v
makefile.in configure
\ /
./configure*
\ /
v
makefile
详细步骤和可能出现的问题:
autoscan /*生成configure.scan*/
//生成 configure.scan 修改成configure.in
aclocal /**/
//如不能生成aclocal.m4在configure.in 加上
AM_INIT_AUTOMAKE
有时候需要加AC_OUTPUT([Makefile])
autoconf /*生成configure*/
//根目录下Makefile.am(源码在根目录下不用新建)如下:
SUBDIRS=src
//src目录下新建文件Makefile.am 内容如下(如源码目录为根目录则新建在根下):
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=hello
hello_SOURCES=hello.c
libtoolize -f -c /*查看缺少文件*/
// autoheader,生成文件configure.h.in
automake -a /*查看缺少文件*/
touch NEWS
touch README
touch AUTHORS
touch ChangeLog
automake
./configure
make
sudo make install
错误:没有规则可以创建目标“all”。 停止。
修改Makefile.ac 添加自己目录的Makefile