テストグループ作成でリンクする時、相対パスを使うように
authorj8takagi <j8takagi@nifty.com>
Sat, 16 Feb 2019 02:31:52 +0000 (11:31 +0900)
committerj8takagi <j8takagi@nifty.com>
Sat, 16 Feb 2019 02:31:52 +0000 (11:31 +0900)
template/Define.mk
template/Makefile

index f8e6dd9..48f103d 100644 (file)
@@ -68,6 +68,13 @@ 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)
@@ -104,11 +111,17 @@ DEFINE_FILE := Define.mk
 # テストのターゲットを定義したMakefile
 TEST_MAKEFILE := Test.mk
 
-# すべてのMakefile群
-MAKEFILES := $(DEFINE_FILE) $(TEST_MAKEFILE)
+# テストグループのMakefileとしてコピーされるファイル
+GROUP_MAKEFILE := Group.mk
+
+# DEFINE_FILEの相対パス
+DEFINE_FILE_REL = $(call rel_to,$(GROUPDIR),$(DEFINE_FILE))
+
+# TEST_MAKEFILEの相対パス
+TEST_MAKEFILE_REL = $(call rel_to,$(GROUPDIR),$(TEST_MAKEFILE))
 
-# すべてのMakefile群の絶対パス
-MAKEFILES_ABS := $(foreach file,$(MAKEFILES),$(CURDIR)/$(file))
+# GROUP_MAKEFILEの相対パス
+GROUP_MAKEFILE_REL = $(call rel_to,$(GROUPDIR),$(GROUP_MAKEFILE))
 
 ######################################################################
 # テストのディレクトリー
index e88f17a..484938f 100644 (file)
@@ -11,9 +11,6 @@
 # 変数やマクロの定義
 include Define.mk
 
-# テストグループのMakefileとしてコピーされるファイル
-GROUP_MAKEFILE := Group.mk
-
 .PHONY: group groupdir copymk linkmk
 
 MKFILE_METHOD = $(if $(LINKMK),linkmk,copymk)
@@ -25,8 +22,8 @@ groupdir:
 
 copymk:
        @$(CP) $(GROUP_MAKEFILE) $(GROUPDIR)/Makefile
-       @$(CP) $(MAKEFILES) $(GROUPDIR)/
+       @$(CP) $(DEFINE_FILE) $(TEST_MAKEFILE) $(GROUPDIR)/
 
 linkmk:
-       @$(LN) $(CURDIR)/$(GROUP_MAKEFILE) $(GROUPDIR)/Makefile
-       @$(LN) $(MAKEFILES_ABS) $(GROUPDIR)/
+       @$(LN) $(DEFINE_FILE_REL) $(TEST_MAKEFILE) $(GROUPDIR)/
+       @$(LN) $(GROUP_MAKEFILE_REL) $(GROUPDIR)/Makefile