Makefileでのカスタムサフィックスルールの定義
Make対応する.cファイルでcc-cを使用して、aoファイルを自動的に作成できます。これらのルールは組み込みですmake、およびこの利点を利用して、Makefileを短縮できます。現在のターゲットが依存しているMakefileの依存関係行に.hファイルのみを指定すると、make対応する.cfileがすでに必要であることがわかります。コンパイラーのコマンドを含める必要はありません。
これにより、以下に示すように、Makefileがさらに削減されます。
OBJECTS = main.o hello.o factorial.o
hello: $(OBJECTS)
cc $(OBJECTS) -o hello
hellp.o: functions.h
main.o: functions.h
factorial.o: functions.h
Make.SUFFIXESという名前の特別なターゲットを使用して、独自のサフィックスを定義できるようにします。たとえば、以下の依存関係の行を参照してください-
.SUFFIXES: .foo .bar
それは知らせます make これらの特別なサフィックスを使用して独自のルールを作成することになります。
方法と同様 make.cファイルから.oファイルを作成する方法をすでに知っているので、次の方法でルールを定義できます-
.foo.bar:
tr '[A-Z][a-z]' '[N-Z][A-M][n-z][a-m]' < $< > $@
.c.o:
$(CC) $(CFLAGS) -c $<
最初のルールは、あなたが作成することができます.BARからファイルを.fooというのファイル。基本的にファイルをスクランブルします。2番目のルールは、によって使用されるデフォルトのルールです。make.cファイルから.oファイルを作成します。