您的位置:首页 > 运维架构 > Linux

Makefile自动生成,初级版本

2015-07-18 10:04 615 查看
Makefile文件自动生成详细教程
By dumyy
实例:hello.c,;;使用环境:cent OS 6.5

1、新建目录:test,在test目录下新建文件:hello.c

2、运行autoscan 命令:会发现生成autoscan.log,configure.scan,两个文件

Rename configure.scan 为 configure.in,同时编辑configure.in里面的内容:

#                     -*- Autoconf -*-

# Process this file with autoconf to producea configure script.

AC_PREREQ([2.63])

AC_INIT(hello,1.0,dumyy2728@163.com)

AC_CONFIG_SRCDIR([hello.c])

AC_CONFIG_HEADERS([config.h])

AM_INIT_AUTOMAKE(hello,1.0)

 

# Checks for programs.

AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compilercharacteristics.

# Checks for library functions.

AC_OUTPUT([Makefile])~                                                                                                                                               

3、运行aclocal命令,生成aclocal.m4,autom4te.cache(目录)

4、运行autoconf命令,生成configure文件

5、运行autoheader命令:目标文件中生成config.h.in文件

6、运行automake命令,但是在此之前先创建一个Makefile.am文件,如下编辑该文件,保存后退出。

运行automake:automake –add-missing

7 、运行./configure,自动配置文件

7、测试,运行命令 make

发现生成可执行文件:hello.o

8、运行

成功。

 

 

 

-----------------------------------------------------------------------------------------------------------------

这只是在linux平台下的测试,如果要是嵌入式的平台下,所选用的编译器就不再是gcc编译器,还可能是mips-linux-gcc,arm-linux-gcc等等,这时应该在configure.in文件内再配置编译器,后面会详细给出探索情况,目前我也不会。

 

 

=====================================================================后注释:

Makefile使用的是两个生成器:autoconf automake

Autoconf的使用:

1、autoscan

目标生成configure.scan,configure.log,其中configure.scan是configure.in的蓝本

2、aclocal

一个perl的脚本程序。由于automake最终要用到AM_INIT_AUTOMAKE中宏定义的内容,但它并不是一个标准的宏定义,因此会被aclocal生成的aclocal.m4置换。当没有参数执行aclocal时,acl;ocal会根据configure.in中的一些宏定义,生成一个合适的aclocal.m4文件。

3、autoconf

用于生成可自动配置源代码包的工具。

Automake的使用

1、在执行命令之前,需要先创建一个Makefile.am,需要手工书写

AUTOMAKE_OPTIONS=foreign

bin_PROGRAMS=hello

hello_SOURCES=hello.c

2、执行automake –add-missing ,automake会根据Makefile.am产生一些文件,包含最重要的Makefile.in.

3、执行./configure,自行配置。

=================================================================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  makefile centOS linux