CCFLAGS 環境変数で特別なシェル別名を定義するか make を使用すれば、複雑なコンパイラコマンドを簡略化できます。
次の例では、頻繁に使用するオプションをコマンドの別名として定義します。
example% alias CCfx "CC -fast -xnolibmil" |
次に、この別名 CCfx を使用します。
example% CCfx any.C |
前述のコマンド CCfx は、次のコマンドを実行するのと同じことです。
example% CC -fast -xnolibmil any.C |
CCFLAGS 環境変数を設定すると、一度に特定のオプションを指定できます。
CCFLAGS 変数は、コマンド行に明示的に指定できます。次の例は、CCFLAGS の設定方法を示したものです (C シェル)。
example% setenv CCFLAGS '-xO2 -xsb' |
次の例では、CCFLAGS を明示的に使用しています。
example% CC $CCFLAGS any.cc |
make を使用する場合、CCFLAGS 変数が前述の例のように設定され、メイクファイルのコンパイル規則が暗黙的に使用された状態で make を呼び出すと、次のコンパイルが行われます。files... は、複数のファイル名を示します。
CC -xO2 -xsb files...
make ユーティリティーは、Sun のすべてのコンパイラで簡単に使用できる非常に強力なプログラム開発ツールです。詳細については make(1S) のマニュアルページを参照してください。
メイクファイルの暗黙のコンパイラ規則を使用する、つまり、C++ コンパイル行がない場合は、make プログラムによって CCFLAGS が自動的に使用されます。
メイクファイルに別のファイルの接尾辞を追加すると、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) $% |
標準ライブラリファイル名には、.h 接尾辞が付きません。 標準ライブラリファイルには、istream、fstream、というような名前が付きます。また、テンプレートのソースファイルは、istream.cc、fstream.cc といった名前になります。