正如所了解的那样,makefile的目标就是为编译程序提供一些指令。
在调试makefile时,目标是找到make正在试图编译什么东西,以及它认为哪些命令可以用来编译。
Makefile(或者Ant脚本、或者该公司所选择使用的其它格式)都是处理过程的核心。
每个组件有它自己的Makefile,并且顶级Makefile遍历它所有的子目录构建它所找到的所有Makefile。
但是,你还需要配置好的内核代码树和一套描述模块如何构建的makefile规则。
其他程序可能会要求我们直接编辑makefile,当然,新的开发还可能需要我们自己编写makefile。
记住makefile是会由人来阅读的,而不是只由make程序来使用的。
使用一个经过适当配置的Makefile,将只会从源文件编译foo.o。
您通过利用ProjectPropertiesGUI为您的工程指定适当的属性来控制makefile的特征。
历史上最难解决的一个兼容性问题是在makefile中对包含的处理。
作为一个可选步骤,编辑Makefile以调整软件安装目录或其他编译细节。
MakeMaker将简单配置文件转换为标准makefile,该makefile可以与大家熟悉的make命令一起使用。
通过避免在linux目录中出现特定于体系结构的子目录,可以大大简化makefile文件。
因为我没有在Makefile.PL中指定PREFIX,所以将从我的perl解释器中收集这个变量。
有关这一点的简单示例,请参阅随附的makefile(在本文后面的参考资料中)。
可交付的工程包括对编辑、调试、makefile生成器、语法分析、搜索和内容辅助的支持。
注意,在默认情况下假设Makefile在与源代码相同的文件夹中。
如果make运行失败,那么在顶层目录中寻找适合自己系统的makefile)。
如果您只为一个特定设备构建openCryptoki,那么源树的顶级Makefile应该被修改。
要想使用这个PAM模块,可以从后面的下载一节下载完整的pam_ns.c文件和对应的makefile。
忽略从指定该指令的位置到生成文件末尾之间,由命令返回的非零退出代码。
PL是为整个项目生成gnuMakefile的Perl脚本。
PL运行时,它首先检查MANIFEST,并检查是否存在项目所需的所有文件。
取消从指定该指令的位置到生成文件末尾之间的已执行命令的显示。
最后当然是Makefile,GNUMake将使用它来构建二进制文件。
请记住:Makefile要求您使用Tab字符而不是空格来产生缩进行。
每个构建都是利用BuildConfiguration来指定的,并且IDE将为每个BuildConfiguration自动生成makefile。
下面先来回顾一下在使用makefile时所遇到的最常见的一些问题。