织梦CMS - 轻松建站从此开始!

罗索

当前位置: 主页>杂项技术>PC常识>

AutoMake相关流程介绍

jackyhwei 发布于 2011-09-22 09:07 点击:次 
公司的项目既使用手写的makefile,也使用automake,没有统一的规定,一直是把别人的makefile文件拿过来,改改再用。最近有 空,仔细了解了一下makefile和automake,发现makefile写起来麻烦,automake简单多了,于是将automake的用法整理 了一下,作为以后的参考
TAG:

公司的项目既使用手写的makefile,也使用automake,没有统一的规定,一直是把别人的makefile文件拿过来,改改再用。最近有 空,仔细了解了一下makefile和automake,发现makefile写起来麻烦,automake简单多了,于是将automake的用法整理 了一下,作为以后的参考

整个过程的步骤如下:
1. 在存放源代码的目录下执行autoscan命令生成configure.scan文件。
2. 将configure.scan文件改名为configure.in或者configure.ac,并对其默认配置进行修改。
3. 执行aclocal、autoconf两个命令,分别生成aclocal.m4、configure文件。
4. 执行autoheader命令,分别生成config.h.in文件。
5. 创建一个名为Makefile.am的文件,并输入相应的内容。
6. 执行automake --add-missing,它根据Makefile.am文件,生成Makefile.in。
7. 执行./configure脚本文件,它根据Makefile.in文件,生成最终的Makefile文件。
通过以上步骤,在源代码所在目录下自动生成了Makefile文件。

如下图所示



 

 

如果觉得上面的步骤太多,也可以使用autoreconf工具,它会按照顺序调用上面的工具,步骤如下
1. 在存放源代码的目录下执行autoscan命令生成configure.scan文件。
2. 将configure.scan文件改名为configure.in,并对其默认配置进行修改。
3. 创建一个名为Makefile.am的文件,并输入相应的内容。
4. 执行autoreconf --install,它根据Makefile.am,configure.in文件,生成Makefile.in,configure,config.h.in。
5. 执行./configure脚本文件,它根据Makefile.in文件,生成最终的Makefile文件。

如下图所示



 

 

上面介绍了生成Makefile的整个流程,其中包括两个关键的文件,configure.in和Makefile.am,这两个文件都需要人工编写,下面给出一个简单的示例,详细的解释目前写不出来,等有一定的经验之后再写


Configure.in文件:

# Process this file with Autoconf to produce a configure script.
AC_INIT(Main.cpp)         #指定main函数所在的文件
AM_INIT_AUTOMAKE(hello, 1.0)     #指定程序名称和版本
# Checks for programs.
#检查可用的编译器
AC_PROG_CC             #C语言编译器
AC_PROG_CPP            #C++编译器
AC_PROG_CXX
# Checks for libraries.
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_OUTPUT(Makefile)

Makefile.am文件:

bin_PROGRAMS = hello                 # 生成的可执行文件名称.
hello_SOURCES = Main.cpp A.h A.cpp B.h B.cpp     # 程序依赖的源文件

(public0821)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201109/15029.html]
本文出处:public0821.iteye.com 作者:public0821
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容