4

私は現在、個別にビルドできるファイルの小さなセットを処理するMakefileを持っています。命名スキームと構造は、3つのファイルの各セットで同じです。ヘッダー、実装、およびテストドライバー。以下の3つのグループのようにさらに4つのグループがあります。

各グループの反復的な性質を回避するために、この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 に答える