From: j8takagi Date: Sat, 16 Feb 2019 02:31:52 +0000 (+0900) Subject: テストグループ作成でリンクする時、相対パスを使うように X-Git-Tag: 0.2p14~2 X-Git-Url: https://j8takagi.net/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=98b91bbf74d00645ad577d6d0d83b5d89fae9986;p=autotest_mk.git テストグループ作成でリンクする時、相対パスを使うように --- diff --git a/template/Define.mk b/template/Define.mk index f8e6dd9..48f103d 100644 --- a/template/Define.mk +++ b/template/Define.mk @@ -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)) ###################################################################### # テストのディレクトリー diff --git a/template/Makefile b/template/Makefile index e88f17a..484938f 100644 --- a/template/Makefile +++ b/template/Makefile @@ -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