2016-03-04 100 views
0

我有下面的Makefile:運行GNU make目標與參數

deploy-1: 
    do_stuff $(host1) 

deploy-2: 
    do_stuff $(host2) 

deploy: deploy-1 deploy-2 

deploy-production: deploy-1 deploy-2 

我想可以指定從deploy/deploy-production任務host-1/host-2的價值,使他們能夠基本上部署不同的主機。

有沒有辦法從另一個任務調用任務並傳遞它的參數?

:爲什麼我使用deploy-{1,2},而不是某種for循環的原因是,我希望能夠並行運行的目標。

回答

0

OK,找到了一種利用目標變量做到這一點:

deploy-1: 
    do_stuff $(host1) 

deploy-2: 
    do_stuff $(host2) 

deploy: host1 = host1.net 
deploy: host2 = host2.net 
deploy: deploy-1 deploy-2 

deploy-production: host1 = host1-prod.net 
deploy-production: host2 = host2-prod.net 
deploy-production: deploy-1 deploy-2