2014-01-16 71 views
1

是否有可能在Makefile中有一個目標等同於其他幾個目標,而沒有將它們明確列出?例如:一個目標相當於多個目標

all: task-* 

task-name1: 
    do something 
task-name2: 
    do something else 
... 
task-name(a big number): 
    do yet something else 

這些任務可能非常不同,並且逐個指定,但我想通過鍵入make來完成所有任務。由於名稱中沒有系統性,因此保留所有目標的明確列表是很乏味的。

回答

1

從make本身就沒有這樣的東西。

如果你願意遵守一些命名約定,你可以用一些搜索你自己的makefile這樣的:

ALL_TASKS := $(sort $(shell sed -n 's/^ *\(task-[^:]*\):.*/\1/p' Makefile)) 

all: $(ALL_TASKS)