Sun Studio 12: C++ ユーザーズガイド

2.7 コマンドの簡略化

CCFLAGS 環境変数で特別なシェル別名を定義するか make を使用すれば、複雑なコンパイラコマンドを簡略化できます。

2.7.1 C シェルでの別名の使用

次の例では、頻繁に使用するオプションをコマンドの別名として定義します。


example% alias CCfx "CC -fast -xnolibmil"

次に、この別名 CCfx を使用します。


example% CCfx any.C

前述のコマンド CCfx は、次のコマンドを実行するのと同じことです。


example% CC -fast -xnolibmil any.C

2.7.2 CCFLAGS によるコンパイルオプションの指定

CCFLAGS 環境変数を設定すると、一度に特定のオプションを指定できます。

CCFLAGS 変数は、コマンド行に明示的に指定できます。次の例は、CCFLAGS の設定方法を示したものです (C シェル)。


 example% setenv CCFLAGS '-xO2 -xsb'

次の例では、CCFLAGS を明示的に使用しています。


 example% CC $CCFLAGS any.cc

make を使用する場合、CCFLAGS 変数が前述の例のように設定され、メイクファイルのコンパイル規則が暗黙的に使用された状態で make を呼び出すと、次のコンパイルが行われます。files... は、複数のファイル名を示します。

CC -xO2 -xsb files...

2.7.3 make の使用

make ユーティリティーは、Sun のすべてのコンパイラで簡単に使用できる非常に強力なプログラム開発ツールです。詳細については make(1S) のマニュアルページを参照してください。

2.7.3.1 make での CCFLAGS の使用

メイクファイルの暗黙のコンパイラ規則を使用する、つまり、C++ コンパイル行がない場合は、make プログラムによって CCFLAGS が自動的に使用されます。

2.7.3.2 メイクファイルへの接尾辞の追加

メイクファイルに別のファイルの接尾辞を追加すると、C++ にその接尾辞を取り込むことができます。次の例は、C++ ファイルに対する有効な接尾辞として .cpp を追加します。次のように、メイクファイルに SUFFIXES マクロを追加してください。

SUFFIXES: .cpp .cpp~

(この行は、メイクファイル内のどこにでも入れることができます)。

次の内容をメイクファイルに追加します。インデントされている行は、必ずタブでインデントしてください。


.cpp:
    $(LINK.cc) -o $@ $< $(LDLIBS)
.cpp~:
    $(GET) $(GFLAGS) -p $< > $*.cpp
    $(LINK.cc) -o $@ $*.cpp $(LDLIBS)
.cpp.o:
    $(COMPILE.cc) $(OUTPUT_OPTION) $<
.cpp~.o:
    $(GET) $(GFLAGS) -p $< > $*.cpp
    $(COMPILE.cc) $(OUTPUT_OPTION) $<
.cpp.a:
    $(COMPILE.cc) -o $% $<
    $(COMPILE.cc) -xar $@ $%
    $(RM) $%
.cpp~.a:
    $(GET) $(GFLAGS) -p $< > $*.cpp
    $(COMPILE.cc) -o $% $<
    $(COMPILE.cc) -xar $@ $%
    $(RM) $%

2.7.3.3 標準ライブラリヘッダーファイルに対する make の使用

標準ライブラリファイル名には、.h 接尾辞が付きません。 標準ライブラリファイルには、istreamfstream、というような名前が付きます。また、テンプレートのソースファイルは、istream.ccfstream.cc といった名前になります。