1
我會解釋一下,這是我的情景:做3次爲目標
- 編譯我的目標
- 做基於第一編譯
- 做基於第二優化第一優化第一個優化
- 做基於第二優化第三優化
到目前爲止,我嘗試了以下內容:
.SUFFIXES:
.SECONDARY:
OBJECTS := $(addsuffix .obj,$(SOURCES))
override OBJECTS := $(OBJECTS:$(SRC)/%.obj=$(OBJ)/%.obj)
OC1 := $(patsubst %.obj, %.oc1, $(filter %c.obj,$(OBJECTS)))
O1 := $(L166_CMD:%.lnp=%.o1)
all: $(TARGET) $(O1)
$(TARGET): $(OBJECTS)
@echo Linking $(TARGET)...
$(OBJ)/%.c.obj: $(SRC)/%.c
@echo Compiling $(<F) ...
# c.oc1 is a intermediate file
%.c.oc1: %.c.obj
@echo 1 - Optimize $<...
@touch [email protected]
$(O1): $(OC1)
@touch [email protected]
echo Linking O1
的結果是,我修改一個C文件,則目標將重新只修改後的C文件,但O1
通將優化所有的C文件再次就像是沒做過的(但它)。
我該如何修改此行爲?
$(O1)是我個案中的單個目標。那麼我應該改變什麼? – 2012-02-16 14:57:55
@Arnaud,嗯,我不知道。你可以發佈(即pastebin.com)運行'make'的輸出來顯示原始問題嗎? – 2012-02-16 17:21:11