Chinaunix首页 | 论坛 | 博客
  • 博客访问: 352156
  • 博文数量: 97
  • 博客积分: 3996
  • 博客等级: 中校
  • 技术积分: 750
  • 用 户 组: 普通用户
  • 注册时间: 2005-05-24 22:27
文章分类

全部博文(97)

文章存档

2012年(1)

2011年(8)

2010年(5)

2008年(2)

2007年(26)

2006年(54)

2005年(1)

我的朋友

分类: LINUX

2007-03-21 15:18:30

4.3 使用 Makefile   
   
    利用 configure 所产生的 Makefile 档有几个预设的目标可供使用,我们     
    只拿其中几个简述如下:    
   
    make all      
              产生我们设定的目标,即此范例中的执行档。只打 make 也可以,此     
              时会开始编译原始码,然後连结,并且产生执行档。  
   
    make clean     
              清除之前所编译的执行档及目的档 (object file, *.o)。  
   
    make distclean      
              除了清除执行档和目的档外,也把 configure 所产生的 Makefile    
              也清除掉。  
   
    make install      
              将程式安装至系统中。如果原始码编译无误,且执行结果正确,便可     
              以把程式安装至系统预设的执行档存放路径。如果我们用     
              bin_PROGRAMS 巨集的话,程式会被安装至 /usr/local/bin 这个目     
              录。  
   
    make dist      
              将程式和相关的档案包装成一个压缩档以供散播 (distribution) 。
              执行完在目录下会产生一个以 PACKAGE-VERSION.tar.gz 为名称的档    
              案。PACKAGE 和 VERSION 这两个变数是根据 configure.in 档中     
              AM_INIT_AUTOMAKE(PACKAGE, VERSION) 的定义。在此范例中会产生     
              'hello-1.0.tar.gz' 的档案。  
   
    make distcheck  
   
和 make dist 类似,但是加入检查包装後的压缩档是否正常。这个目标除了把程式和相关档案包装成 tar.gz 档外,还会自动把这个压缩档解开,执行 configure,并且进行 make all 的动作,确认编译无误後,会显示这个 tar.gz 档已经准备好可供散播了。这个检查非常有用,检查过关的套件,基本上可以给任何一个具备 GNU 发展环境的人去重新编译。就 hello-1.tar.gz 这个范例而言,除了在 RedHat Linux 上,在 FreeBSD 2.2.x 版也可以正确地重新编译。  
   
要注意的是,利用 Autoconf 及 Automake 所产生出来的软体套件是可以在没有安装 Autoconf 及 Automake 的环境上使用的,因为 configure 是一个 shell script,它己被设计可以在一般 Unix 的 sh 这个 shell 下执行。但是如果要修改 configure.in 及 Makefile.am 档再产生新的configure 及 Makefile.in 档时就一定要有 Autoconf 及 Automake 了。   
   
5. 相关讯息    
Autoconf 和 Automake 功能十分强大,你可以从它们所附的 info 档找到详细的用法。你也可以从许多现存的 GNU 软体或 Open Source 软体中找到相关的 configure.in 或 Makefile.am 档,它们是学习 Autoconf 及Automake 更多技巧的最佳范例。   
   
这篇简介只用到了 Autoconf 及 Automake 的皮毛罢了,如果你有心加入Open Source 软体开发的行列,希望这篇文件能帮助你对产生 Makefile有个简单的依据。其它有关开发 GNU 程式或 C 程式设计及 Makefile 的详细运用及技巧,我建议你从 GNU Coding Standards3 (GNU 编码标准规定) 读起,里面包含了 GNU Makefile 惯例,还有发展 GNU 软体套件的标准程序和惯例。这些 GNU 软体的线上说明文件可以在 这个网站上找到。
阅读(946) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~