2012-07-17 11 views
6

Tôi có một makefile liệt kê các file nguồn: (rút ngắn xuống còn liên quan)Append để đầu danh sách

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

và tôi muốn concate các chuỗi với nhau, nhưng đối với mỗi người trong SOURCES. Như bạn thấy ở trên, tôi làm điều đó cho OBJECTS, nhưng tôi muốn làm điều đó như thế này: (giả)

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

để nếu SOURCESmain.cpp window.cpp, kết quả sẽ là src/main.cpp src/window.cpp.

Tôi cố gắng này:

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

nhưng tôi nhận được lỗi này:

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

Trả lời

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