2012-07-17 198 views
6

的開始,我有一個makefile文件,其中列出了源文件:(縮短有關)追加到列表

SRCFOLDER=src/ 
SOURCES= main.cpp 
OBJECTS=$(SOURCES:.cpp=.o) 

,我想串concate在一起,但對於每一個在SOURCES。正如你可以在上面看到,我這樣做是爲OBJECTS,但我想這樣做是這樣的:(僞)

foreach(src in SOURCES) 
    src = concate(SRCFOLDER, src) 

因此,如果SOURCESmain.cpp window.cpp,其結果將是src/main.cpp src/window.cpp

我嘗試這樣做:

SOURCES=$(SOURCES:*=$(SRCFOLDER)/*) 

,但我得到這個錯誤:

makefile:12: *** Recursive variable `SOURCES' references itself (eventually). Stop. 

回答

11
SRCFOLDER := src 
SOURCES := main.cpp window.cpp 
SOURCES := $(addprefix $(SRCFOLDER)/, $(SOURCES))