Makefile将其命令行参数传递给另一个脚本

时间:2011-10-24 13:20:51

标签: makefile command-line-arguments

在一个项目中,我有一个名为make.sh的脚本,用于构建项目并执行其他一些操作。到目前为止它运作良好。

然后,出于好奇,我试图创建一个Makefile,只是将命令行参数传递给这个脚本,所以我可以调用它     制作快照 代替     ./make.sh snapshot

这是我现在正在使用的Makefile

.PHONY: snapshot

%: 
    ./make.sh $@

snapshot: 
    ./make.sh snapshot

但是这种方法存在一些问题,我无法将“build”作为参数传递,因为我有一个“Build”目录(由SCons使用),我无法传递第二个参数传递给脚本,如:     上传192.168.1.10 因为make将其解释为两个不同的目标......

有没有办法可以用Makefile做到这一点?

1 个答案:

答案 0 :(得分:3)

是的,你可以这样做:

%:all
    @true

all:
    ./make.sh $(MAKECMDGOALS)

但这是滥用Make。我们的想法是,Make应该将其参数解释为一组目标,而不是一般参数的有序列表。你可能应该使用不同的工具。