在一个项目中,我有一个名为make.sh的脚本,用于构建项目并执行其他一些操作。到目前为止它运作良好。
然后,出于好奇,我试图创建一个Makefile,只是将命令行参数传递给这个脚本,所以我可以调用它 制作快照 代替 ./make.sh snapshot
这是我现在正在使用的Makefile
.PHONY: snapshot
%:
./make.sh $@
snapshot:
./make.sh snapshot
但是这种方法存在一些问题,我无法将“build”作为参数传递,因为我有一个“Build”目录(由SCons使用),我无法传递第二个参数传递给脚本,如:
上传192.168.1.10
因为make
将其解释为两个不同的目标......
有没有办法可以用Makefile做到这一点?
答案 0 :(得分:3)
是的,你可以这样做:
%:all
@true
all:
./make.sh $(MAKECMDGOALS)
但这是滥用Make。我们的想法是,Make应该将其参数解释为一组目标,而不是一般参数的有序列表。你可能应该使用不同的工具。