Automake使用Makefile软件简介及条件

运维 系统运维
在Unix上写过程序的人尤其是用 C 来开发程序的人一般都遇到过 Makefile,用 make 来开发和编译程序的确很方便,可是要写出一个Makefile就不那么简单了。

在Unix上写过程序的人尤其是用 C 来开发程序的人一般都遇到过 Makefile,用 make 来开发和编译程序的确很方便,可是要写出一个Makefile就不那么简单了。GNU Make 那份几百页的文件,让许多人害怕。当然,现在关于make的文档比较多,不过写一个Makefile总是一件很烦人的事情,GNU Autoconf 及 Automake 这两个软件就是帮助程序开发者轻松产生Makefile 文件的。现在的GNU软件如Apache, MySQL Minigui等都是利用Autoconf,Automake实现自动编译的。用户只要使用 “./configure”, “make”, “make install” 就可以把程序安裝到系统中。

简介
Makefile 基本上就是『目标』(target), 『关联』(dependencies) 和『动作』三者所组成的一系列规则。而 make 就是根据 Makefile 的规则决定如何编译 (compile) 和连接(link) 程序或者其它动作。当然,make 可做的不只是编译和连接程序,例如 FreeBSD 的 port collection 中,Makefile还可以做到自动下载远程程序,解压缩 (extract) ,打补丁 (patch),设定,然后编译,安装到系统中。

Makefile 基本结构虽然很简单,但是妥善运用这些规则就可以变换出许多不同的花样。却也因为这样,许多人刚开始学写Makefile 时会觉得没有规范可以遵循,每个人写出来的Makefile都不大一样,不知道从哪里下手,而且常常会受到开发环境的限制,只要环境参数不同或者路径更改,可能 Makefile 就得跟着修改。

虽然有GNU Makefile Conventions(GNU Makefile惯例)制订出一些在进行 GNU 程序设计时写 Makefile 的一些标准和规范,但是其内容很长而且很复杂,并且经常作一些调整,为了减轻程序开发人员维护Makefile 的负担,就出现了Automake。利用Automake,编程者只需要写一些预先定义好的宏 (macro),提交给Automake处理,就会产生一个可以供 Autoconf 使用的 Makefile.in文件。再配合使用 Autoconf产生的自动配置文件 configure 即可产生一份符合 GNU Makefile 惯例的 Makeifle 了。

需要的软件
在开始使用 Automake 之前,首先确认你的系统安装有如下软件:
1. GNU Automake
2. GNU Autoconf
3. GNU m4
4. perl
5. GNU Libtool (如果你需要产生 shared library)

***也使用 GNU C/C++ 编译器 、GNU Make 以及其它 GNU 的工具程序来作为开发的环境,这些工具都是属于 Open Source Software 不但免费而且功能强大。如果你是使用 RedHat Linux 可以找到所有上述软件的 rpm 文件。 

【编辑推荐】

  1. Autoconf使用关于autoconf安装条件介绍 
  2. Autoconf使用生成Makefile的方法及其规则
  3. autoconf安装关于可移植的源代码详解
  4. Autoconf教程关于UNIX文件系统概述
  5. Autoconf教程关于安全管理介绍
     
责任编辑:chenqingxiang 来源: 互联网
相关推荐

2010-06-22 17:28:35

Linux Autom

2017-09-12 09:22:51

LinuxMakefileautoconf工具

2010-06-22 17:09:52

Linux Autom

2017-08-18 14:01:44

大数据dataWrangle

2010-02-06 11:13:11

C++ makefil

2010-06-22 22:50:40

Automake使用

2010-08-25 14:21:22

2010-05-31 14:56:59

SVN版本管理软件

2010-06-03 09:13:35

2022-05-16 10:58:12

Go 项目Makefilemake

2009-08-11 15:38:54

.NET集合类

2010-06-22 17:45:34

Linux Autom

2010-06-22 15:45:06

Autoconf使用

2011-09-15 14:03:58

linux软件仓库

2009-08-12 14:29:32

C#条件运算符

2009-08-13 11:39:02

LINQ to Dat

2009-06-10 18:19:09

Android平台简史Android平台简介

2011-08-31 10:12:26

MTK手机平台

2009-06-30 14:08:00

Hibernate缓存

2012-09-11 13:44:41

MooseFS系统
点赞
收藏

51CTO技术栈公众号