具有绝对路径和 Git 的 Makefile

Makefile with absolute paths and Git

我有一个带有自定义 Makefile 的 C 项目。它的第一行是项目目录的路径。因此,与该项目一起工作的每台机器都必须将此路径更改为其工作目录,这自然会导致新的不良提交,尤其是在推送数据时。此外还有几个外部SDK也需要路径。

你的解决方案是什么?

有条件地包含设置本地路径的未跟踪 makefile(例如 -include config.mak)。

首先,您可以通过命令行覆盖通过简单 = 分配的变量:

$ cat Makefile
AAA = 1
all:
    echo $(AAA)
$ make
1
$ make AAA=2
2

其次,您可以使用 ?=,在这种情况下,Linux 环境也将覆盖 Makefile 的变量:

$ cat Makefile
AAA ?= 1
all:
    echo $(AAA)
$ export AAA=3
$ make
3

然后您可以将变量添加到您的 .bashrc 而忘记它。