Я использую GNUmake, и у меня есть файл makefile с определенными целевыми параметрами и их соответствующими зависимостями. Я хотел бы создать отладочную версию этих целей, так что у меня это:Создавать отладочные версии целей по DRY-методу
TARGET := a b c
all: $(TARGET)
a: a.o e.o
$(CC) $(CFLAGS) $(INCDIRS) -c $(^) -o $(@)
b: b.o g.o
$(CC) $(CFLAGS) $(INCDIRS) -c $(^) -o $(@) -pthread
c: f.o c.o
$(CC) $(CFLAGS) $(INCDIRS) -lm -c $(^) -o $(@)
%.o: %.c
$(CC) $(CFLAGS) $(INCDIRS) -c $(^) -o $(@)
Так что это все хорошо, но сейчас я хотел бы создать отладочные версии этих правил, но я не хочу должны переписать правила. Я просто хочу добавить дополнительные флаги, такие как -g -DDEBUG
, в переменную CFLAGS
и изменить имена целей.
Я попробовал это статическое правило вещи
$(TARGET:%=debug_%): %: * #<--- not sure how to specify the dependencies
# CFLAGS += -g -DDEBUG <-- uncommenting this line is an error
Это не сработало. Я хотел, чтобы приведенное выше правило соответствовало указанным вами целям, но добавляйте дополнительные параметры к CFLAGS
, которые затем генерируют файлы, такие как debug_a
, debug_b
, debug_c
и т. Д. Я не уверен, возможно ли это с помощью make, но это было именно так, как я был рассуждая об этом.
Любая помощь будет оценена, спасибо