|
发表于 2007-2-16 11:25:30
|
显示全部楼层
如果是很复杂的makefile,我建议你尝试用一下makefile自动生成工具比如AutoMake和AutoConf, 这些工具已经在mysql等项目中得到了广泛的应用。
在你的系统中安装下列软件包
1. GNU Automake
2. GNU Autoconf
3. GNU m4
4. perl
5. GNU Libtool (如果你需要产生 shared library)
一般的流程是用autoscan产生 configure.scan 然后以它做蓝本修改成configure.in
然后执行 aclocal 和 autoconf ,分别会产生 aclocal.m4 及 configure 两个档案
自己编辑 Makefile.am 档,添加一些必要的信息
典型的配置可以如下
AUTOMAKE_OPTIONS= foreign
bin_PROGRAMS= hello
hello_SOURCES= hello.c
AUTOMAKE_OPTIONS
设定 automake 的选项。Automake 主要是帮助开发 GNU 软体的人员
维护软体套件,所以在执行 automake 时,会检查目录下是否存在标
准 GNU 软体套件中应具备的文件档案,例如 'NEWS'、'AUTHOR'、
'ChangeLog' 等文件档。设成 foreign 时,automake 会改用一般软
体套件的标准来检查。
bin_PROGRAMS
定义我们所要产生的执行档档名。如果要产生多个执行档,每个档名
用空白字元隔开。
hello_SOURCES
定义 'hello' 这个执行档所需要的原始档。如果 'hello' 这个程式
是由多个原始档所产生,必须把它所用到的原始档都列出来,以空白
字元隔开。假设 'hello' 这个程式需要 'hello.c'、'main.c'、
'hello.h' 三个档案的话,则定义
hello_SOURCES= hello.c main.c hello.h
如果我们定义多个执行档,则对每个执行档都要定义相对的filename_SOURCES。
执行 automake --add-missing ,Automake 会根据 Makefile.am 档产生
一些档案,包含最重要的 Makefile.in
最后的步骤就很熟悉了
./configure
make
你的软件已经安装在当前目录了
可能讲得不是很清楚,有什么问题我们可以一起讨论
qq:407222680 |
|