Makefile-suffix-rules

提供:Dev Guides
移動先:案内検索

Makefileでのカスタムサフィックスルールの定義

*Make* は、対応する.cファイルでcc -cを使用して、a.oファイルを自動的に作成できます。 これらのルールは *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 $<

最初のルールでは、。foo_ファイルから.bar_ファイルを作成できます。 基本的にファイルをスクランブルします。 2番目のルールは、。c_ファイルから.o_ファイルを作成するために make によって使用されるデフォルトのルールです。