Linux 下 Makefile 的 automake 生成全攻略境变量或路径发生了变化后,Makefile 可能还要跟着修改。这样就造成了手工书写 Makefile 的诸多问题,automake 恰好能很好地帮助我们解决这些问题。 使用 automake,程序开发人员只需要写一些简单的含有预定义宏的文件,由 autoconf 根 据一个宏文件生成 configure,由 automake 根据另一个宏文件生成 Makefile.in,再使用 configure 依据 Makefile.in 内容是一些宏定义,这些宏经 autoconf 处理后会变成检查系统 特性、环境变量、软件必须的参数的 shell 脚本。 autoconf 是用来生成自动配置软件源代码脚本(configure)的工具。configure 脚本能 独立于 autoconf 运行,且在运行的过程中,不需要用户的干预。 6 要生成 configure 文件,你必须告诉 autoconf 如何找到你所用的宏。方式是使用 configure。autoconf 需要 GNU m4 宏处理器来处理 aclocal.m4,生成 configure 脚本。 m4 是一个宏处理器。将输入拷贝到输出,同时将宏展开。宏可以是内嵌的,也可以是用户 定义的。除了可以展开宏,m4 还有一些内建的函数,用来引用文件,执行命令,整数运算, 文本操作,循环等。m4 既可以作为编译器的前端,也可以单独作为一个宏处理器。 4、新建 Makefile.am0 码力 | 14 页 | 701.04 KB | 1 年前3
跟我一起写 Makefile (PDF 重制版)变得复杂,那么我们就有可能会忘掉一个需要加入的地方,而 导致编译失败。所以,为了 makefile 的易维护,在 makefile 中我们可以使用变量。makefile 的变量也就 是一个字符串,理解成 C 语言中的宏可能会更好。 比如,我们声明一个变量,叫 objects ,OBJECTS ,objs ,OBJS ,obj 或是 OBJ ,反正不管什么 啦,只要能够表示 obj 文件就行了。我们在 makefile 所支持的。 8 Chapter 2. makefile 介绍 , 发行版本 1.0 3. 变量的定义。在 Makefile 中我们要定义一系列的变量,变量一般都是字符串,这个有点像你 C 语 言中的宏,当 Makefile 被执行时,其中的变量都会被扩展到相应的引用位置上。 4. 指令。其包括了三个部分,一个是在一个 Makefile 中引用另一个 Makefile,就像 C 语言中的 include objects = *.o 上面这个例子,表示了通配符同样可以用在变量中。并不是说 *.o 会展开,不!objects 的值就是 *.o 。Makefile 中的变量其实就是 C/C++ 中的宏。如果你要让通配符在变量中展开,也就是让 objects 的值是所有 .o 的文件名的集合,那么,你可以这样: objects := $(wildcard *.o) 另给一个变量使用通配符的例子:0 码力 | 81 页 | 628.51 KB | 1 年前3
make & Makefile. . . . . . . . . . . . . . make & Makefile . 变量的定义和引用 . . Makefile支持强大的变量定义,并且提供许多内置变量,同时还 具有宏定义和函数定义等功能,这些使得make能产生奇效; 变量的定义文法如下: var_name = value var_name := value 前者定义了延迟展开变量 (Recursively Expanded 变量有具有恒定值的变量,如:CC = cc;还有随规则改变而改变 的自动变量;此外还可引用shell的环境变量,其格式 为$$NAME或$${NAME}, 其中NAME为shell的环境变量; 高级功能:宏、函数定义和调用等; ©hfwang - 27/36 - ... . ... . ... . ... . ... . ... . ... . ... . ... . ...0 码力 | 36 页 | 975.98 KB | 1 年前3
共 3 条
- 1













