我目前有一个Makefile,可以处理可以单独构建的一小组文件。每组3个文件的命名方案和结构相同;标头,实现和测试驱动程序。我将有更多的团体,如下面的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 $<
答案 0 :(得分:3)
如果您和使用此makefile的任何人使用GNU make,您可以使用大量快捷方式。这样的事情应该有效:
%test: %_test.o %.o
%_test.o: minunit.h
%.o: %.h debug.h
all: flextest skiptest dynatest