Makefile GNU Make-提取作业参数并将其传递给另一个进程
这就是我试图在Makefile中执行的操作:Makefile GNU Make-提取作业参数并将其传递给另一个进程,makefile,Makefile,这就是我试图在Makefile中执行的操作: MAKE_381 := $(TOOLS)/bin/make-381 default: cd proj && $(MAKE_381) MAKE_381指的是MAKE v3.81二进制版本。这是必需的,因为proj目录包含makefile,这些文件仅与v3.81兼容,没有更新或更旧的版本 我需要让这个Makefile始终使用makev3.81来构建proj独立于开发人员在其系统上安装的GNU make版本 调用MAKE_381
MAKE_381 := $(TOOLS)/bin/make-381
default:
cd proj && $(MAKE_381)
MAKE_381
指的是MAKE v3.81
二进制版本。这是必需的,因为proj
目录包含makefile
,这些文件仅与v3.81
兼容,没有更新或更旧的版本
我需要让这个Makefile始终使用makev3.81
来构建proj
独立于开发人员在其系统上安装的GNU make版本
调用MAKE_381
可以工作,但有一点需要注意,任何额外的参数(如并行作业的数量)都不会传递给MAKE_381
。我找不到任何关于如何提取此信息的文档
我知道gnumake中有MAKEFLAGS
变量,我知道它应该包含从命令行传递给make的任何额外参数,但不知何故,我发现这个值是空的
我不想硬编码传递给
make381
的作业数,而是应该根据调用的初始Makefile
传递参数。您所要做的就是在命令行前面加上+
字符,这样MAKE就知道您正在调用另一个子MAKE进程:
default:
+ cd proj && $(MAKE_381)
如果您的命令直接使用变量MAKE
,那么这将是自动的,但是由于您使用的是不同的变量名(MAKE\u 381
),因此必须明确地执行此操作