免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 779 | 回复: 0
打印 上一主题 下一主题

autotools的一个最简单的项目 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-26 20:36 |只看该作者 |倒序浏览

                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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP