Newer
Older
libj / mk / base-conf.mk
# ==============================================================================
#  基本設定
# ==============================================================================

# ------------------------------------------------------------------------------
# デフォルトディレクトリ/ファイル設定
# ------------------------------------------------------------------------------
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++
CXX_WARNING_OPTIONS += -Wall -Wextra -Werror

# ------------------------------------------------------------------------------
# デバッグ用オプション
# デバッグ、単体テストの際のオプションを指定します。
#
# -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