4

我目前有一个 Makefile 处理可以单独构建的一小组文件。每组 3 个文件的命名方案和结构相同;标头、实现和测试驱动程序。我将有大约 4 个组,如下面的 3 个。

有哪些不那么冗余的方式来构建这个 Makefile,以避免每个组的重复性?

flextest: flex_test.o  flex.o
    $(CC) $(CFLAGS) -o  $@  $^
flex_test.o: flex_test.c flex.o minunit.h
    $(CC) $(CFLAGS) -c  $<
flex.o: flex.c flex.h debug.h
    $(CC) $(CFLAGS) -c  $<

skiptest: skip_test.o  skip.o
    $(CC) $(CFLAGS) -o  $@  $^
skip_test.o: skip_test.c skip.o minunit.h
    $(CC) $(CFLAGS) -c  $<
skip.o: skip.c skip.h debug.h
    $(CC) $(CFLAGS) -c  $<

dynatest: dyna_test.o dyna.o
    $(CC) $(CFLAGS) -o  $@  $^
dyna_test.o: dyna_test.c dyna.o minunit.h
    $(CC) $(CFLAGS) -c  $<
dyna.o: dyna.c dyna.h debug.h
    $(CC) $(CFLAGS) -c  $<
4

1 回答 1

4

如果您和使​​用此 makefile 的其他任何人都在使用 GNU make,您可以使用大量快捷方式。像这样的东西应该工作:

%test: %_test.o %.o
%_test.o: minunit.h
%.o: %.h debug.h

all: flextest skiptest dynatest
于 2012-11-14T01:19:10.360 回答