Нужно сделать несколько раз, чтобы работать - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть это:

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, при повторном запуске (без изменения чего-либо) правило найдено и компиляция продолжается.

Что я делаю не так?

1 Ответ

1 голос
/ 16 февраля 2012

Я не уверен, что это сработает, но я бы переместил $(OBJ_INC_DIRS) обязательное условие заказа только из правил шаблона:

$(OBJECTS) : | $(OBJ_INC_DIRS)

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

...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...