2012-07-17 12 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))