Makefile自动生成,初级版本

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,自行配置。

=================================================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值