ifndef DEFINE_INCLUDED
DEFINE_INCLUDED = 1
+# シェルコマンドをデバッグするときは、DEBUGSH変数を設定してmakeを実行する
+# 例: DEBUGSH=1 make
+ifdef DEBUGSH
+ SHELL := /bin/sh -x
+endif
+
# 現在の日時
DATE = $(shell date +"%F %T")
-# 現在のディレクトリー
-CURRDIR = $(shell pwd)
-
# Makefile
MAKEFILE := Makefile
# コマンド
######################################################################
-MV ?= mv
-
-CP ?= cp
-
-CAT ?= cat
-
-MKDIR ?= mkdir -p
-
-RM ?= rm -f
-
-ECHO ?= echo
-
-TIME ?= time
-
-DIFF ?= diff -c
-
-DEV_NULL ?= /dev/null
-
-CHMOD ?= chmod
-
-GREP ?= grep
-
-LINECOUNT ?= wc -l
-
-FIND ?= find
-
-TR ?= tr
-
-EXPR ?= expr
-
-LN ?= ln -s
-
-SED ?= sed
+CAT := cat
+CHMOD := chmod
+CP := cp
+DEV_NULL := /dev/null
+DIFF := diff -c
+ECHO := echo
+EXPR := expr
+FIND := find
+GREP := grep
+LINECOUNT := wc -l
+LN := ln -s
+MKDIR := mkdir -p
+MV := mv
+SED := sed
+TEST := test
+TIME := time
+TR := tr
+VALGRIND := valgrind
+VALGRINDFLAG := -q --leak-check=full --log-file=valgrind.log
######################################################################
# テストグループとテストでの共通マクロ
# chk_file_ext: 指定されたファイルが実在する場合、エラー
# 用例: $(call chk_file_ext,file)
define chk_file_ext
- $(if $(wildcard $1),$(error $1 exists in $(CURRDIR)))
+ $(if $(wildcard $1),$(error $1 exists in $(CURDIR)))
endef
# 指定したディレクトリーを作成
MAKEFILES := $(DEFINE_FILE) $(TEST_MAKEFILE)
# すべてのMakefile群の絶対パス
-MAKEFILES_ABS := $(foreach file,$(MAKEFILES),$(CURRDIR)/$(file))
+MAKEFILES_ABS := $(foreach file,$(MAKEFILES),$(CURDIR)/$(file))
######################################################################
# テストのディレクトリー
# 実行時間ファイル
TIME_FILE := time.log
+# valgrindによるメモリーチェックファイル
+VALGRIND_FILE := valgrind.log
+
# テスト詳細レポートファイル
DETAIL_FILE := detail.log