Как я могу создать файлы зависимостей в другом каталоге? - PullRequest
0 голосов
/ 19 мая 2019

Вот мой Makefile:

CXXFLAGS = -std=c++11 -pedantic -Wall
LDFLAGS  = -L./lib
SRC_DIR  = ./src
OBJ_DIR  = ./obj
APP_DIR  = .
TARGET   = Sight
INCLUDE  = -Iinclude/

SOURCES = $(wildcard $(SRC_DIR)/*.cc)
OBJECTS = $(patsubst $(SRC_DIR)/%.cc,$(OBJ_DIR)/%.o,$(SOURCES))
DEPS    = $(SRC:src/%.cc=$(OBJ_DIR)/%.d)

all: $(APP_DIR)/$(TARGET)

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cc
    @mkdir -p $(@D)
    $(CXX) $(CXXFLAGS) $(INCLUDE) -MMD -MP -o $@ -c $<

$(APP_DIR)/$(TARGET): $(OBJECTS)
    @mkdir -p $(@D)
    $(CXX) $(CXXFLAGS) $(INCLUDE) $(LDFLAGS) $^ -o $@

.PHONY: debug clean

debug: CXXFLAGS += -DDEBUG -g
debug: all

clean:
    -@rm -rf $(OBJ_DIR)/*
    -@rm -rf $(APP_DIR)/$(TARGET)

-include $(DEPS)

Когда я создаю файлы зависимостей * .d, они помещаются в тот же каталог, что и объекты. Есть ли способ поместить их в другой каталог, например, ./dep или что-то в этом роде (где ./dep и ./obj - это дочерние каталоги)?

Кажется выполнимым, выполняя команду оболочки, чтобы переместить файлы после того, как я это сделал, но есть ли лучший способ сделать это?

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