如何在其他目录中创建依赖项文件?

时间:2019-05-19 15:49:18

标签: makefile

这是我的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是同级目录)?

在我制作完之后,执行shell命令移动文件似乎是可行的,但是还有更好的方法吗?

0 个答案:

没有答案