首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

生成Makefile的进程

2013-02-06 
生成Makefile的过程转自:?http://www.ibm.com/developerworks/cn/linux/l-makefile/??首先进入 project 目

生成Makefile的过程

转自:?http://www.ibm.com/developerworks/cn/linux/l-makefile/?

?

首先进入 project 目录,在该目录下运行一系列命令,创建和修改几个文件,就可以生成符合该平台的Makefile文件,操作过程如下:

    在项目根目录下新建Makefile.am并正确书写。运行autoscan命令。生成文件configure.scan。将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的语法可能有错)。?运行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。 ?

?

热点排行