上一篇简要介绍了手动建立makefile的方法,本篇仍以上篇5个文件为例。
对于一个较大的项目而言,完全手动建立Makefile是一件费力而又容易出错的工作。autotools系列工具只需用户输入简单的目标文件、依赖文件、文件目录等就可以比较轻松地生成Makefile了。现在Linux上的软件开发一般都是用autotools来制作Makefile。
autotools工具主要有:aclocal、autoscan、autoconf、autoheader、automake。使用autotools主要就是利用各个工具的脚本文件来生成最后的Makefile。下面结合实例来介绍具体的流程。
第一步 autoscan
使用autoscan在给定目录及其子目录树中检查源文件,如果没有给出目录,就在当前目录及其子目录树中进行检查。最终生成两个文件:configure.scan、autoscan.log
[armlinux@lqm autotools-easy]$ tree
.
|-- main.c
|-- mytool1.c
|-- mytool1.h
|-- mytool2.c
`-- mytool2.h
0 directories, 5 files
[armlinux@lqm autotools-easy]$ autoscan
[armlinux@lqm autotools-easy]$ tree
.
|-- autoscan.log
|-- configure.scan
|-- main.c
|-- mytool1.c
|-- mytool1.h
|-- mytool2.c
`-- mytool2.h
0 directories, 7 files
其中,configure.scan是configure.in的原型文件。而configure.in是autoconf的脚本配置文件。所以下一步的工作就是要对configure.scan进行修改,将其转化为configure.in。
第二步 autoconf
configure.scan文件内容如下:
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.57)
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
AC_CONFIG_SRCDIR([main.c])
AC_CONFIG_HEADER([config.h])
# Checks for programs.
AC_PROG_CC
# Checks for libraries.
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for lib……
阅读(895) | 评论(0) | 转发(0) |