需要多次才能工作

时间:2012-02-16 09:09:06

标签: makefile

我有这个:

include makefile_vars.mk

# Target
TARGET := $(OBJ)/$(TARGETNAME)

# Move objects to ../Obj
OBJECTS := $(addsuffix .obj,$(SOURCES))
override OBJECTS := $(OBJECTS:$(SRC)/%.obj=$(OBJ)/%.obj)

# Objects o
OBJ_INC_DIRS := $(sort $(dir $(OBJECTS)))

# Target 
all: $(TARGET)

$(TARGET): $(OBJECTS)

# Objects
$(OBJ)/%.c.obj: $(SRC)/%.c | $(OBJ_INC_DIRS)
    @echo Compiling $(<F) ...

$(OBJ)/%.a66.obj: $(SRC)/%.a66 | $(OBJ_INC_DIRS)
    @echo Compiling $(<F) ...

$(OBJ_INC_DIRS): 
    mkdir -p $@

我第一次启动它时,它告诉我没有规则来制作目标MyFile.c.obj,当再次运行时(whitout修改任何东西)找到​​规则并继续编译。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我不确定这会有效,但我会从模式规则中移出$(OBJ_INC_DIRS)仅限订单的先决条件:

$(OBJECTS) : | $(OBJ_INC_DIRS)

$(OBJ)/%.c.obj: $(SRC)/%.c
    @echo Compiling $(<F) ...

...