make valgrindで、CMD_VALGRINDファイルがあればそのコマンドを実行
[YACASL2.git] / test / Template / Define.mk
index da36d60..74f4c33 100644 (file)
@@ -35,12 +35,15 @@ LN := ln -s
 MKDIR := mkdir -p
 MV := mv
 PRINTF := printf
+REALPATH := realpath
 SED := sed
 TEST := test
 TIME := time
 TR := tr
 VALGRIND := valgrind
-VALGRINDFLAG :=  -q --leak-check=full --show-leak-kinds=all --log-file=valgrind.log
+VALGRIND_LOGFILE := _valgrind.log
+VALGRINDFLAG :=  -q --leak-check=full --show-leak-kinds=all --log-file=$(VALGRIND_LOGFILE)
+VALGRIND_CMDLOGFILE := valgrind.log
 
 ######################################################################
 # テストグループとテストでの共通マクロ
@@ -67,6 +70,14 @@ define create_dir
     $(MKDIR) $1
 endef
 
+
+# ファイル1からファイル2への相対パス
+# 引数は、ファイル名1、ファイル名2
+# 用例: $(call rel_to,file1,file2)
+define rel_to
+    $(strip $(shell $(REALPATH) --relative-to=$1 $2))
+endef
+
 # テストディレクトリーのMakefileを作成
 # 引数は、Makefile名、依存ファイル群
 # 用例: $(call create_makefile,file,list_include_file)
@@ -103,11 +114,17 @@ DEFINE_FILE := Define.mk
 # テストのターゲットを定義したMakefile
 TEST_MAKEFILE := Test.mk
 
-# ã\81\99ã\81¹ã\81¦ã\81®Makefile群
-MAKEFILES := $(DEFINE_FILE) $(TEST_MAKEFILE)
+# ã\83\86ã\82¹ã\83\88ã\82°ã\83«ã\83¼ã\83\97ã\81®Makefileã\81¨ã\81\97ã\81¦ã\82³ã\83\94ã\83¼ã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«
+GROUP_MAKEFILE := Group.mk
 
-# すべてのMakefile群の絶対パス
-MAKEFILES_ABS := $(foreach file,$(MAKEFILES),$(CURDIR)/$(file))
+# DEFINE_FILEの相対パス
+DEFINE_FILE_REL = $(call rel_to,$(GROUPDIR),$(DEFINE_FILE))
+
+# TEST_MAKEFILEの相対パス
+TEST_MAKEFILE_REL = $(call rel_to,$(GROUPDIR),$(TEST_MAKEFILE))
+
+# GROUP_MAKEFILEの相対パス
+GROUP_MAKEFILE_REL = $(call rel_to,$(GROUPDIR),$(GROUP_MAKEFILE))
 
 ######################################################################
 # テストのディレクトリー
@@ -116,6 +133,9 @@ MAKEFILES_ABS := $(foreach file,$(MAKEFILES),$(CURDIR)/$(file))
 # テストコマンドファイル
 CMD_FILE := cmd
 
+# valgrindテストコマンドファイル
+VALGRIND_CMD_FILE := cmd_valgrind
+
 # テスト説明ファイル
 DESC_FILE := desc.txt