转自: http://www.ibm.com/developerworks/cn/linux/l-makefile/
首先进入 project 目录,在该目录下运行一系列命令,创建和修改几个文件,就可以生成符合该平台的Makefile文件,操作过程如下:
- 在项目根目录下新建Makefile.am并正确书写。
- 运行autoscan命令。生成文件configure.scan。扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。
- 将configure.scan 文件重命名为configure.in,并修改configure.in文件
- 在project目录下新建NEWS README ChangeLog AUTHORS文件
- 将/usr/share/automake-1.X/目录下的depcomp和complie文件拷贝到本目录下
- 运行aclocal命令。生成文件aclocal.m4(注意:如果没有生成aclocal.m4文件,说明文件configure.in的语法可能有错)。根据已经安装的宏,用户定义宏和acinclude.m4文件中的宏将configure.ac文件所需要的宏集中定义到文件 aclocal.m4中。aclocal是一个perl 脚本程序,它的定义是:“aclocal - create aclocal.m4 by scanning configure.ac”。
- 运行autoconf命令。根据文件configure.in生成文件configure。
- 运行autoheader命令。
- 运行automake -ac命令。根据文件Makefile.am生成Makefile.in。
- 运行./confiugre脚本。根据文件Makefile.in生成Makefile。
PS:
- configure.in 档的内容是一连串 GNU m4 的巨集,这些巨集经过
autoconf 处理後会变成检查系统特徵的 shell script。configure.in 内
巨集的顺序并没有特别的规定,但是每一个 configure.in 档必须在所有
巨集前加入 AC_INIT 巨集,然後在所有巨集的最後面加上 AC_OUTPUT 巨
集。我们可先用 autoscan 扫描原始档以产生一个 configure.scan 档,
再对 configure.scan 做些修改成 configure.in 档。在范例中所用到的
巨集如下:
dnl
这个巨集後面的字不会被处理,可视为注解。
AC_INIT(FILE)
这个巨集用来检查原始码所在的路径,autoscan 会自动产生,我们
不必修改它。
AM_INIT_AUTOMAKE(PACKAGE,VERSION)
这是使用 Automake 所必备的巨集,PACKAGE 是我们所要产生软体套
件的名称,VERSION 是版本编号。
AC_PROG_CC
检查系统可用的 C 编译器,如果原始程序是用 C 写的就需要这个巨
集。
AC_OUTPUT(FILE)
设定 configure 所要产生的档案,如果是 Makefile 的话,
configure 便会把它检查出来的结果带入 Makefile.in 档然後产生
合适的 Makefile。
相关推荐
### 自动生成 Makefile 的全过程详解 #### 一、引言 在进行软件开发的过程中,Makefile 起到了至关重要的作用。它不仅能够自动化管理项目的编译过程,还能确保每次构建时只对确实需要更新的部分进行编译。然而,...
在提供的资源中,`Linux 知识总结--如何自动生成Makefile.doc` 可能包含了关于这些工具的详细说明和使用教程,而 `project.rar` 可能是一个包含实际代码的项目,展示了如何应用上述方法生成 `Makefile`。 学习自动...
在Linux环境中,C语言开发项目通常使用Makefile来管理编译和...在阅读提供的"Automake,Autoconf自动生成Makefile.pdf"和"自动生成Makefile详细过程.txt"文件时,可以更详细地了解每个步骤的具体操作和相关命令的用法。
### 使用AutoMake轻松生成Makefile #### 知识点概览 1. **Makefile的基础概念** 2. **AutoMake的简介与优势** 3. **系统环境准备** 4. **AutoMake工作流程详解** - **步骤1:使用autoscan生成configure.scan文件*...
Autoconf 和 Automake 生成 Makefile 在软件开发过程中,Makefile 是一个不可或缺的组成部分,它定义了整个工程的编译规则。然而,手动编写 Makefile 是一个复杂而且容易出错的过程。这就是 Autoconf 和 Automake ...
通过上述步骤,我们可以看到自动生成Makefile的过程涉及到多个工具的协作。`autoconf`和`automake`等工具大大简化了这一过程,使得开发者能够更专注于软件功能的实现而非繁琐的构建配置工作。对于开源项目来说,这种...
Autotools系列工具应运而生,它通过自动化生成Makefile来简化这一过程,同时能够自动收集系统配置信息,解决移植性问题,极大地提高了开发效率和代码的可维护性。 #### 二、Autotools系列工具详解 Autotools是由一...
本篇文章将深入探讨如何在Linux环境下使用Auto Make工具自动生成Makefile,并通过一个简单的示例来详细说明整个过程。 #### 一、环境准备与基本概念 在开始之前,我们需要确保以下几点: 1. **开发环境**:本文...
`autoconf` 和 `automake` 是两个经典的开源工具,它们主要用于Unix/Linux环境下的自动配置和构建过程,帮助开发者生成适应不同平台的`Makefile`。这两个工具的结合使用可以简化项目构建,确保源代码在多种环境下都...
通过shell脚本自动生成Makefile,可以大大简化项目的构建过程,提高开发效率。但需要注意的是,这种方式可能无法处理所有复杂情况,对于大型项目,可能需要使用更高级的构建系统,如CMake或autotools。
### 自动生成Makefile详解 #### 一、引言 在软件开发过程中,构建管理是非常重要的一环。对于大型项目而言,构建过程往往涉及到多个源文件的编译与链接,这使得手动编写和维护Makefile变得既繁琐又容易出错。为了...
【描述】:“makefile生成向导工具”的主要功能是简化`Makefile`的创建过程。通过向导式的交互界面,用户可以指定项目结构、源文件、依赖关系等信息,工具会自动生成相应的`Makefile`内容。这降低了对`Makefile`语法...
`.ws`文件是CodeBlocks中的工作区文件,它存储了多个工程的相关信息,转换后会生成一个包含所有子工程`makefile`的主`makefile`。 标签"codeblocks"和"makefile"分别代表了两种工具。CodeBlocks是IDE,而`makefile`...
7. **shell脚本与Makefile结合**:通过Shell脚本自动化生成Makefile,可以简化手动维护Makefile的工作,尤其在大型项目中,依赖关系复杂,这样的自动化工具非常实用。 8. **C语言编程**:`main.c`是C语言的主程序...
【如何用automake生成Makefile】 在软件开发过程中,管理源代码编译和构建过程的一个常见工具是Makefile,而automake可以帮助我们自动化这个过程。automake是GNU项目的一部分,它提供了一种标准化的方式来创建符合...
在"例解用autoconf automake生成MAKEFILE文件.pdf"中,可能详细阐述了如何使用这两个工具来创建`Makefile`的过程。通常,这个过程包括以下几个步骤: 1. **配置阶段**:首先,编写`configure.ac`文件,这是`...
标题中的“automake生成makefile的工具”是指Automake,这是一个在开源软件开发领域广泛使用的自动化构建系统。它主要用于创建遵循GNU标准的Makefile.in文件,这些文件在configure脚本运行后会被转换成最终的...
为了简化这个过程,GNU提供了`autoconf`和`automake`这两个工具,它们能自动生成Makefile,使得软件安装只需要执行“./configure”,“make”和“make install”。 `autoconf`是一个基于m4宏语言的脚本生成器,它...