我需要制作一个Makefile,并且它应该有一个“run”规则。但是,运行需要一些参数。
有人知道如何在运行Makefile中的规则时传递参数吗?我希望能够通过键入“make run foo bar”来带参数地运行“run”规则。
我尝试了这个,但是它没有起作用:
run:
make compile
./scripts/runTrips $1 $2 $PLACES $OUT $VERS
我想提供的参数是第一个和第二个。当向make命令传递参数时,像处理其他内部make变量一样引用它们。
如果您的makefile如下所示:
run:
script $(param1) $(param2)
您可以使用以下语法调用:
$> make run param1=20 param2=30
而且 make 应该这样调用脚本:
script 20 30
Make本身不像脚本一样提供传递参数的功能。通常情况下,make的使用方式如下: 你先配置项目,然后运行简单的'make'命令。配置可以通过运行shell脚本'configure'来完成。这个脚本是可以传递参数的。例如:
./configure param1 param2
make run
配置脚本必须解析参数并将它们写入config.mk。config.mk 必须包含以下内容:
PARAM1 = val1
PARAM2 = val2
TOP = .
include $(TOP)/config.mk
run:
make compile
./scripts/runTrips $(PARAM1) $(PARAM2) $(PLACES) $(OUT) $(VERS)