Я объясню, вот мой сценарий:
- Скомпилируйте мою цель
- Выполните первую оптимизацию на основе первой компиляции
- Сделайте секундуОптимизация на основе первой оптимизации
- Выполнение третьей оптимизации на основе второй оптимизации
До сих пор я пробовал следующее:
.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 $@
$(O1): $(OC1)
@touch $@
echo Linking O1
В результате яЕсли вы измените файл C, цель восстановит только измененный файл C, но проход O1
снова оптимизирует все файлы C, как это было раньше (но так было).
Как я могу изменить это поведение?