1. 运行目录存在相同名称文件或文件目录,比如log,则make log报错
在makefile开头加入
.PHONY : log
2. 默认命令,需要遵循Makefile语法+/bin/sh语法
2.1 /bin/sh语法,需要反斜杠,保证一行执行完成
2.2 makefile和/bin/sh的变量定义方法不一样,临时变量推荐以shell变量定义方式
举例,比如makefile的变量叫${run_path};/bin/sh的变量定义叫$$PASS_LOG,因为$在makefile有特殊意义,所以$$才能正常打印或使用$字符
2.3 makefile命令要求 必须以表格符 打头;
2.4 复杂脚本命令,建议以/bin/sh方式实现。makefile只关注全局变量和分支;
2.5 命令前面加-,比如-cp xx ./等。意义是命令执行不成功,不会跳出Makefile。
2.6 如果想用别的shell语言语法,替代/bin/sh
比如bash,则在makefile前面追加:
SHELL := /usr/bin/bash
PS:本质上,/bin/sh 相当于 /bin/bash --posix,二者的区别就是有没有开启 POSIX 标准模式。