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,自行配置。
=================================================================
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,自行配置。
=================================================================
相关文章推荐
- Linux socket 初步
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Centos6 编译安装Python
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 硬盘安装CentOS 6.2以及添加GRUB启动菜单
- 基于 Linux 集群环境上 GPFS 的问题诊断
- 谁是桌面王者?Win PK Linux三大镇山之宝