У меня есть Makefil, где я работаю как с источником C, так и с источником CPP. Ниже приведен фрагмент кода из Makefile. Есть ли способ объединить следующие две цели, чтобы скомпилировать оба филетипа? < /P>
#definitions
OBJ_DIR := obj
DEP_DIR := dep
CXX := g++
DEBUG := -g -O0
OPT := -std=c++11 -Wextra -Wall -pthread
LFLAGS = $(DEBUG) $(OPT) $(INC)
CFLAGS = $(LFLAGS) -c
#auto-dependency generation (part 1)
DEP_FLAGS = -MT $@ -MMD -MP -MF $(DEP_DIR)/$*.Td
POSTCOMPILE = @mv -f $(DEP_DIR)/$*.Td $(DEP_DIR)/$*.d && touch $@
#compile object files from CPP source
$(OBJ_DIR)/%.o: %.cpp $(DEP_DIR)/%.d
$(CXX) $(CFLAGS) $(DEP_FLAGS) $< -o $@
$(POSTCOMPILE)
#compile object files from C source
$(OBJ_DIR)/%.o: %.c $(DEP_DIR)/%.d
$(CXX) $(CFLAGS) $(DEP_FLAGS) $< -o $@
$(POSTCOMPILE)
#auto-dependency generation (part 2)
$(DEP_DIR)/%.d: ;
.PRECIOUS: $(DEP_DIR)/%.d
include $(wildcard $(DEP_DIR)/*.d)
< /code>
Я попытался использовать функцию подстановочного знака с различными форматированием, используя второе расширение, но безрезультатно. < /p>
< P> Я использую Make 4.2. Код генерации автозазависимости был взят с http://make.mad-scientist.net/papers/ad ... /.образной
Подробнее здесь: https://stackoverflow.com/questions/496 ... ile-target