自动化编译 如何生成configure和Makefile

在前面的标准编译安装中,第一步是./configure,它会根据Makefile.in生成Makefile文件,然后make根据Makefile自动编译软件

通常在一个源码包中,已经包含了configure脚本和Makefile文件,作为课外知识,我们大致了解一下怎么生成这两个文件

autoconf

autoconf用来生成configure脚本,它可以检查系统特性、编译环境、环境变量、软件参数、依赖关系等

autoconf需要用到 m4

  1. 用autoscan描源代码目录生成configure.scan文件
  2. 将configure.scan改名为configure.in
  3. 用aclocal根据configure.in文件的内容,自动生成aclocal.m4文件
  4. 使用autoconf,根据configure.in和aclocal.m4来产生configure文件

automake

automake可以从Makefile.am文件自动生成Makefile.in,它主要用来配置源代码

automake需用到perl

  • 手工写Makefile.am
  • 使用automake,根据configure.in和Makefile.am来产生Makefile.in

Makefile

使用configure脚本,配合Makefile.in可以生成Makefile文件,然后用make自动化的编译软件

这里有一张生成Makefile的流程图:

Makefile的用途不只是编译软件,还可以利用它完成一些琐碎的工作,只要最后输出一个文件,都可以用make来完成

使用 make

利用 configure所产生的Makefile文件有几个预先设定的目标可供使用:

目标用途
make all产生预设的目标,只敲入make也可以
make clean清除编译结果
make distclean除了清除编译结果,也把configure所产生的 Makefile 清除掉
make install将程序安装到系统中
make dist将程序和相关的文档打包为一个压缩文档以供发布
make distcheck打包并检验

详细参考
https://i.linuxtoy.org/docs/guide/ch18s05.html
emerge | USE标记
https://i.linuxtoy.org/docs/guide/ch18s07.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注