以下の表に、デフォルトのメークファイル (/usr/share/lib/make/make.rules) に記述されている標準の接尾辞の規則と定義済みマクロを示します。
表 4-8 標準の接尾辞の規則|
用途 |
接尾辞規則の名前 |
コマンド行 |
|---|---|---|
|
アセンブリファイル | .s.o | $(COMPILE.s) -o $@ $< |
| .s | $(COMPILE.s) -o $@ $< | |
| .s.a | $(COMPILE.s) -o $% $< | |
| $(AR) $(ARFLAGS) $@ $% | ||
| $(RM) $% | ||
| .S.o | $(COMPILE.S) -o $@ $< | |
| .S.a | $(COMPILE.S) -o $% $ | |
| $(AR) $(ARFLAGS) $@ $% | ||
| $(RM) $% | ||
|
C ファイル (.c の規則) | .c | $(LINK.c) -o $@ $< $(LDLIBS) |
| .c.ln | $(LINT.c) $(OUTPUT_OPTION) -i $< | |
| .c.o | $(COMPILE.c) $(OUTPUT_OPTION) $< | |
| .c.a | $(COMPILE.c) -o $% $< | |
| $(AR) $(ARFLAGS) $@ $% | ||
| $(RM) $% | ||
|
C++ ファイル | .cc | $(LINK.cc) -o $@ $< $(LDLIBS) |
| .cc.o | $(COMPILE.cc) $(OUTPUT_OPTION) $< | |
| .cc.a | $(COMPILE.cc) -o $% $< | |
| $(AR) $(ARFLAGS) $@ $% | ||
| $(RM) $% | ||
|
C++ ファイル (SVR4 書式) | .C | $(LINK.C) -o $@ $< $(LDFLAGS) $*.c |
| .C.o | $(COMPILE.C) $< | |
| .C.a | $(COMPILE.C) $< | |
| $(AR) $(ARFLAGS) $@ $*.o | ||
| $(RM) -f $*.o | ||
|
FORTRAN 77 ファイル | .cc.o | $(LINK.f) -o $@ $< $(LDLIBS) |
| .cc.a | $(COMPILE.f) $(OUTPUT_OPTION) $< | |
| $(COMPILE.f) -o $% $< | ||
| $(AR) $(ARFLAGS) $@ $% | ||
|
| $(RM) $% | |
| .F | $(LINK.F) -o $@ $< $(LDLIBS) | |
| .F.o | $(COMPILE.F) $(OUTPUT_OPTION) $< | |
| .F.a | $(COMPILE.F) -o $% $< | |
| $(AR) $(ARFLAGS) $@ $% | ||
| $(RM) $% |
表 4-9 標準の接尾辞の規則
|
用途 |
接尾辞規則の名前 |
コマンド行 |
|---|---|---|
|
lex ファイル | .l | $(RM) $*.c |
| $(LEX.l) $< > $*.c | ||
| $(LINK.c) -o $@ $*.c $(LDLIBS) | ||
| $(RM) $*.c | ||
| .l.c | $(RM) $@ | |
| $(LEX.l) $< > $@ | ||
| .l.ln | $(RM) $*.c | |
| $(LEX.l) $< > $*.c | ||
| $(LINT.c) -o $@ -i $*.c | ||
| $(RM) $*.c | ||
| .l.o | $(RM) $*.c | |
| $(LEX.l) $< > $*.c | ||
| $(COMPILE.c) -o $@ $*.c | ||
| $(RM) $*.c | ||
| .L.C | $(LEX) $(LFLAGS) $< | |
| .L.o | $(LEX)(LFLAGS) $< | |
| $(COMPILE.C) lex.yy.c | ||
| .L.o | rm -f lex.yy.c | |
| mv lex.yy.o $@ | ||
|
Modula 2 ファイル | .mod | $(COMPILE.mod) -o $@ -e $@ $< |
| .mod.o | $(COMPILE.mod) -o $@ $< | |
| .def.sym | $(COMPILE.def) -o $@ $< | |
|
NeWS | .cps.h | $(CPS) $(CPSFLAGS) $*.cps |
|
Pascal ファイル | .p | $(LINK.p) -o $@ $< $(LDLIBS) |
| .p.o | $(COMPILE.p) $(OUTPUT_OPTION) $< | |
|
Ratfor ファイル | .r | $(LINK.r) -o $@ $< $(LDLIBS) |
| .r.o | $(COMPILE.r) $(OUTPUT_OPTION) $< | |
| .r.a | $(COMPILE.r) -o $% $< | |
| $(AR) $(ARFLAGS) $@ $% | ||
| $(RM) $% | ||
|
シェルスクリプト | .sh | $(RM) $@ |
| cat $< >$@ | ||
| chmod +x $@ | ||
|
yacc ファイル (.yc の規則) | .y | $(YACC.y) $< |
| $(LINK.c) -o $@ y.tab.c $(LDLIBS) | ||
| $(RM) y.tab.c | ||
| .y.c | $(YACC.y) $< | |
| mv y.tab.c $@ | ||
| .y.ln | $(YACC.y) $< | |
| $(LINT.c) -o $@ -i y.tab.c | ||
| $(RM) y.tab.c | ||
| .y.o | $(YACC.y) $< | |
| $(COMPILE.c) -o $@ y.tab.c | ||
| $(RM) y.tab.c | ||
|
yacc ファイル (SVR4) | .Y.C | $(YACC) $(YFLAGS) $< |
| mv y.tab.c $@ | ||
| .Y.o | $(YACC) $(YFLAGS) $< | |
| $(COMPILE.c) y.tab.c | ||
| rm -f y.tab.c | ||
| mv y.tab.o $@ |
表 4-10 定義済みの動的マクロ
|
用途 |
マクロ |
デフォルト |
|---|---|---|
|
ライブラリアーカイブ | AR | ar |
| ARFLAGS | rv | |
|
アセンブラのコマンド | AS | as |
| ASFLAGS | ||
| COMPILE.s | $(AS) $(ASFLAGS) | |
| COMPILE.S | $(CC) $(ASFLAGS) $(CPPFLAGS) -target -c | |
|
C コンパイラのコマンド | CC | cc |
| CFLAGS | ||
| CPPFLAGS | ||
| COMPILE.c | $(CC) $(CFLAGS) $(CPPFLAGS) -c | |
| LINK.c | $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) | |
|
C++ コンパイラのコマンド1 | CCC | CC |
| CCFLAGS | ||
| COMPILE.cc | $(CCC) $(CCFLAGS) $(CPPFLAGS) -c | |
| LINK.cc | $(CCC) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS) | |
|
C++ SVR4 コンパイラのコマンド (SVR4) | (C++C) | CC |
| (C++FLAGS) | -O | |
| COMPILE.C | $(C++C) $(C++FLAGS) $(CPPFLAGS) -c | |
| LINK.C | $(C++C) $(C++FLAGS) $(CPPFLAGS) $(LDFLAGS) -target | |
|
FORTRAN 77 コンパイラのコマンド | FC in SVr4 | f77 |
| FFLAGS | ||
| COMPILE.f | $(FC) $(FFLAGS) -c | |
| LINK.f | $(FC) $(FFLAGS) $(LDFLAGS) | |
| COMPILE.F | $(FC) $(FFLAGS) $(CPPFLAGS) -c | |
| LINK.F | $(FC) $(FFLAGS) $(CPPFLAGS) $(LDFLAGS) | |
|
リンカーのコマンド | LD | ld |
| LDFLAGS | ||
|
lex のコマンド | LEX | lex |
| LFLAGS | ||
| LEX.l | $(LEX) $(LFLAGS) -t | |
|
lint のコマンド | LINT | lint |
| LINTFLAGS | ||
| LINT.c | $(LINT) $(LINTFLAGS) $(CPPFLAGS) | |
|
Modula 2 のコマンド | M2C | m2c |
| M2FLAGS | ||
| MODFLAGS | ||
| DEFFLAGS | ||
| COMPILE.def | $(M2C) $(M2FLAGS) $(DEFFLAGS) | |
| COMPILE.mod | $(M2C) $(M2FLAGS) $(MODFLAGS) | |
|
NeWS | CPS | cps |
| CPSFLAGS | ||
|
Pascal コンパイラのコマンド | PC | pc |
| PFLAGS | ||
| COMPILE.p | $(PC) $(PFLAGS) $(CPPFLAGS) -c | |
| LINK.p | $(PC) $(PFLAGS) $(CPPFLAGS) $(LDFLAGS) | |
|
Ratfor のコンパイルコマンド | RFLAGS | |
| COMPILE.r | $(FC) $(FFLAGS) $(RFLAGS) -c | |
| LINK.r | $(FC) $(FFLAGS) $(RFLAGS) $(LDFLAGS) | |
|
rm のコマンド | RM | rm -f |
|
yacc のコマンド | YACC | yacc |
| YFLAGS | ||
| YACC.y | $(YACC) $(YFLAGS) | |
|
接尾辞のリスト | SUFFIXES | .o .c .c‾ .cc .cc‾ .C .C‾ .y .y‾ .l .l‾ .s .s‾ .sh .sh‾ .S .S‾ .ln .h .h‾ .f .f‾ .F .F‾ .mod .mod‾ .sym .def .def‾ .p .p‾ .r .r‾ .cps .cps‾ .Y .Y‾ .L .L‾ |
|
SCCS get コマンド | .SCCS_GET | sccs $(SCCSFLAGS) get $(SCCSGETFLAGS) $@ -G$@ |
| SCCSGETFLAGS | -s |
下位互換性を持たせるため、C++ のマクロには上記の代わりに使用できる形式があります。C++C は CCC で、C++FLAGS は CCFLAGS で、COMPILE.C は COMPILE.cc で、LINK.cc は LINK.C で、それぞれ代用できます。これらの代用の形式は、将来のリリースでは削除されます。