gnu make规则记录
1.
$(shell CMD)
名称: 执行 shell 命令函数
功能: 在新的 shell 中执行 CMD 命令
返回值: CMD 在 shell 中执行的结果
例如:PLATFORM=$(shell $(ROOT)/systype.sh)在执行完下面的脚本后等价于PLATFORM=linux
case `uname -s` in "FreeBSD") PLATFORM="freebsd" ;; "Linux") PLATFORM="linux" ;; "Darwin") PLATFORM="macos" ;; "SunOS") PLATFORM="solaris" ;; *) echo "Unknown platform" >&2 exit 1 esac echo $PLATFORM exit 0
2. “include”指示符告诉 make 暂停读取当前的 Makefile,而转去读取“include”指定的一个或者多个文件,完成以后再继续当前 Makefile 的读取。Makefile 中指示符“include”书写在独立的一行,其形式如下: include FILENAMES...
我们可使用“-include”来代替“include”,忽略由于包含文件不存在或者无法创建时的错误。“-”的意思是告诉 make,忽略此操作的错误,make 继续执行。
为了和其它的 make 程序进行兼容。也可以使用“sinclude”来代替“-include”。(GNU 所支持的方式) 。
3.自动化变量$?代表依赖文件列表中被改变过的所有文件。
自动化变量$^代表所有通过目录搜索得到的依赖文件的完整路径名(目录 + 一般文件名)列表。
自动化变量$@代表规则的目标。
自动化变量$<代表规则中通过目录搜索得到的依赖文件列表的第一个依赖文件。