# ============================================================================== # 基本設定 # ============================================================================== # ------------------------------------------------------------------------------ # デフォルトディレクトリ/ファイル設定 # ------------------------------------------------------------------------------ SRCDIR ?= src OBJDIR ?= obj EXCLUDES ?= RELEASEDIR ?= release # ------------------------------------------------------------------------------ # 最適化オプション # -O0 最適化無効。 # -O1 速度最適化(低)。 # -O2 速度最適化(中)[推奨]。 # -O3 速度最適化(高)。 # -Os サイズ最適化。 # その他のフラグについては、gcc のヘルプを参照ください。 # ------------------------------------------------------------------------------ OPTIMIZATION = -O2 # ------------------------------------------------------------------------------ # ヘッダー依存関係出力 # 基本的に変更しないでください。 # # -MMD # コンパイル時に依存関係を .d ファイルに出力する。 # -MP # .d ファイルにヘッダファイル用のターゲットも出力する。 # ------------------------------------------------------------------------------ DEPENDS_OPTIONS = -MMD -MP # ------------------------------------------------------------------------------ # 警告オプション # -pedantic # ANSI C/ISO C++ により要求される警告をすべて出力する。 # gcc の HELP にも記載されている通り、基本的に使べきではありません。 # -pedantic-errors # 警告ではなくエラーが出力される点を除けば -pedantic と同様です。 # -w # すべての警告メッセージの出力を禁止します。 # -Wall # 基本的な警告オプションを有効にします。 # -Wextra # 追加の警告オプションを有効にします。 # -Weffc++ # Effective C++ による方針に沿わない記述に警告を出します。 # ------------------------------------------------------------------------------ C_WARNING_OPTIONS += -Wall -Wextra -Werror CXX_WARNING_OPTIONS += -Wall -Wextra -Werror -Weffc++ # ------------------------------------------------------------------------------ # デバッグ用オプション # デバッグ、単体テストの際のオプションを指定します。 # # -fstack-protector スタック・オーバーフロー・セキュリティチェックを有効にします。 # --coverage カバレッジ計測します。(-fprofile-arcs -ftest-coverage オプションと同じ) # -g0 デバッグオプション無効。 # -g1 最小限のデバッグ情報を生成します。 # -g2 (-g) デバッグ情報を生成します。 # -g3 マクロ定義を含んだデバッグ情報を生成します。 # -ggdb gdb で使うためのデバッグ情報を生成します。 # -D_FACTORY_SOURCE=[値] # 文字列やメモリ操作を行う glibc の関数を使用する際に、バッファオーバーフローを検出します。 # ※すべてのパターンではなく、よくある例についてのみ検出可能。 # 値が1の場合、規格に準拠するプログラムの振る舞いを変化させないようなチェックが実行される。 # 値が2の場合、さらなるチェックを追加するが、規格準拠のプログラムが失敗する可能性がある。 # いくつかのチェックは、コンパイル時に実行され、コンパイラの警告として表示される。 # ------------------------------------------------------------------------------ DEBUG_OPTIONS += -fstack-protector DEBUG_OPTIONS += --coverage DEBUG_OPTIONS += -g3 -ggdb DEBUG_OPTIONS += -O0 DEBUG_OPTIONS += -D_FACTORY_SOURCE=2 DEBUG_OPTIONS += -D_DEBUG DEBUG_LDFLAGS += --coverage DEBUG_LDFLAGS += -g3 -ggdb