1. 基本约定
1.1 所有的makefile中应该包含:
SHELL = /bin/sh
目的是为了避免变量SHELL在有些系统上可能继承同名的系统环境变量而导致错误。
1.2 不同make可识别后缀和隐含规则可能不同,需要明确限定可识别后缀:
.SUFFIXES: #取消make默认的可识别后缀
.SUFFIXES:.c .o #重新指定可识别的后缀列表
2. 规则命令行的约定
重建或安装目标的命令行可以使用编译器或者相关工具程序,这些命令使用一个变量表示。优点在于当修改一个命令时,只需要改变命令的变量值即可。
比如:
ar cc ld make
使用以下变量进行代表:
$(AR) $(CC) $(LD) $(MAKE)
3. make的标志目录名
all:
此目标的动作是编译整个软件包,all是Makefile的终极目标。
install:
此目标时完成程序的编译并将最终的可执行程序、库文件等拷贝到安装目录。
uninstall:
删除所有已安装文件。
clean:
清除当前目录下编译生成的所有文件,这些文件由make产生。
distclean:
比clean多删除当前目录下的配置文件、build过程产生的文件。