- 论坛徽章:
- 0
|
1.autoscanconfigure.ac
1 # -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
3
4 AC_PREREQ(2.61)
5 AC_INIT(my_bochs, 0.1, wl2000zy@hotmail.com)
6 AC_CONFIG_SRCDIR([main.cc])
7 AC_CONFIG_HEADER([config.h])
8
9 AM_INIT_AUTOMAKE
10 # Checks for programs.
11 AC_PROG_CXX
12
13 # Checks for libraries.
14
15 # Checks for header files.
16
17 # Checks for typedefs, structures, and compiler characteristics.
18
19 # Checks for library functions.
20
21 AC_CONFIG_FILES(Makefile)
22 AC_OUTPUT
Makefile.am
1 bin_PROGRAMS=bochs
2 bochs_SOURCES=main.cc
5.2 产生的输出文件
通过学习
Generated File Dependencies
这部分的图表,就可能明白使用哪个命令从输入文件产生上节所示的输出文件。
首先,我们产生 `configure':
$ aclocal
$ autoconf
因为 `configure.in' 包含了 autoconf 不认识的初始宏──譬如 AM_INIT_AUTOMAKE,这时有必要收集所有的宏定义供 autoconf 产生 `configure' 时使用。这一步由 aclocal 程序来完成。这个程序因其产生 `aclocal.m4' 文件而得名。(see section
Generated File Dependencies
)。如果你检查 `aclocal.m4' 的内容,你会发现它包含了 AM_INIT_AUTOMAKE 宏的定义。
在执行 autoconf 之后,你将在当前目录下发现一个 `configure' 脚本。由于 automake 依赖于 `configure.in' 和 `aclocal.m4' 的内容,所以首先运行 aclocal 是很重要的。
$ automake --add-missing
automake: configure.in: installing ./install-sh
automake: configure.in: installing ./mkinstalldirs
automake: configure.in: installing ./missing
automake: Makefile.am: installing ./INSTALL
automake: Makefile.am: required file ./NEWS not found
automake: Makefile.am: required file ./README not found
automake: Makefile.am: installing ./COPYING
automake: Makefile.am: required file ./AUTHORS not found
automake: Makefile.am: required file ./ChangeLog not found
选项 `--add-missing' 从你的 Automake 安装处将一些样板文件拷贝到当前目录。例如 `COPYING',它包含 GNU General Public License,由于不经常改变,它们的产生就无须用户干涉。这个过程中还会安装一系列有用的脚本――产生的 `Makefile' 文件、特别是 install 目标需要使用它们。注意这时仍会缺少一些必须的文件,它们是:
`NEWS'
记录用户可见的软件包变化。它的格式并不严格,但是对最近版本的变化应该出现在文件的开头。
`README'
用户可最先查看此文件来了解软件包用途,以及特殊的安装指示。
`AUTHORS'
列举软件包编写者的名字,通常还包括他们的邮件地址。
`ChangeLog'
`ChangeLog' 是一个重要的文件,因为它记录了对软件包所做的修改。该文件的格式相当严格(see section
文档和 ChangeLogs
)。
现在,我们将做足够的工作来满足 Automake 的要求:
$ touch NEWS README AUTHORS ChangeLog
$ autoheader
$ automake --add-missing
Automake 现在产生了一个 `Makefile.in' 文件。此时,你可能希望在自动产生文件前对这个目录有一个总体印象。
现在,目录的内容看起来比较完整,并可使你联想起安装过的 GNU 软件包的上层目录:
AUTHORS INSTALL NEWS install-sh mkinstalldirs
COPYING Makefile.am README configure missing
ChangeLog Makefile.in aclocal.m4 configure.in
现在应该可以把你的目录树打包在一个 tar 文件中,并将其交付给其他用户,让他们在自己的系统上安装。由 Automake 产生的 `Makefile.in' 文件中有一个 make 目标可以简化发行包的产生过程(see section
Rolling Distribution Tarballs
)。用户只要解压这个 tar 文件,运行 configure(see section
如何运行 configure 和 mak
),最后输入 make all.
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/65850/showart_1011984.html |
|