プログラミングユーティリティ

make のデフォルトの接尾辞の規則と定義済みマクロ

以下の表に、デフォルトのメークファイル (/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.orm -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 定義済みの動的マクロ

用途 

マクロ 

デフォルト 

ライブラリアーカイブ 

ARar
ARFLAGSrv

アセンブラのコマンド 

ASas
ASFLAGS
COMPILE.s$(AS) $(ASFLAGS)
COMPILE.S$(CC) $(ASFLAGS) $(CPPFLAGS) -target -c

C コンパイラのコマンド 

CCcc
CFLAGS
CPPFLAGS
COMPILE.c$(CC) $(CFLAGS) $(CPPFLAGS) -c
LINK.c $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)

C++ コンパイラのコマンド1

CCCCC
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 SVr4f77
FFLAGS
COMPILE.f$(FC) $(FFLAGS) -c
LINK.f$(FC) $(FFLAGS) $(LDFLAGS)
COMPILE.F$(FC) $(FFLAGS) $(CPPFLAGS) -c
LINK.F $(FC) $(FFLAGS) $(CPPFLAGS) $(LDFLAGS)

リンカーのコマンド 

LDld
LDFLAGS

lex のコマンド

LEXlex
LFLAGS
LEX.l $(LEX) $(LFLAGS) -t

lint のコマンド 

LINTlint
LINTFLAGS
LINT.c$(LINT) $(LINTFLAGS) $(CPPFLAGS)

Modula 2 のコマンド 

M2Cm2c
M2FLAGS
MODFLAGS
DEFFLAGS
COMPILE.def$(M2C) $(M2FLAGS) $(DEFFLAGS)
COMPILE.mod$(M2C) $(M2FLAGS) $(MODFLAGS)

NeWS 

CPScps
CPSFLAGS

Pascal コンパイラのコマンド 

PCpc
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 のコマンド 

RMrm -f
  

yacc のコマンド 

YACCyacc
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_GETsccs $(SCCSFLAGS) get $(SCCSGETFLAGS) $@ -G$@
SCCSGETFLAGS-s

  1. 下位互換性を持たせるため、C++ のマクロには上記の代わりに使用できる形式があります。C++CCCC で、C++FLAGSCCFLAGS で、COMPILE.CCOMPILE.cc で、LINK.ccLINK.C で、それぞれ代用できます。これらの代用の形式は、将来のリリースでは削除されます。