After thinking for a while I've decided to put the targets referencing PROJ_resources_include outside RuntimeLibraryTemplate, as the includes have nothing to do with the runtime libraries and should not be expanded depending on the arch name.
Daniel, WDYT? Hi samsonov, ddunbar, http://llvm-reviews.chandlerc.com/D1959 CHANGE SINCE LAST DIFF http://llvm-reviews.chandlerc.com/D1959?vs=5152&id=5153#toc Files: ../tools/clang/runtime/compiler-rt/Makefile Index: ../tools/clang/runtime/compiler-rt/Makefile =================================================================== --- ../tools/clang/runtime/compiler-rt/Makefile +++ ../tools/clang/runtime/compiler-rt/Makefile @@ -23,7 +23,9 @@ PROJ_resources := $(DESTDIR)$(PROJ_prefix)/lib/clang/$(CLANG_VERSION) ResourceLibDir := $(ResourceDir)/lib +ResourceIncludeDir := $(ResourceDir)/include PROJ_resources_lib := $(PROJ_resources)/lib +PROJ_resources_include := $(PROJ_resources)/include # Expect compiler-rt to be in llvm/projects/compiler-rt COMPILERRT_SRC_ROOT := $(LLVM_SRC_ROOT)/projects/compiler-rt @@ -150,10 +152,18 @@ ProjObjRoot=$(PROJ_OBJ_DIR) \ clean .PHONY: CleanRuntimeLibraries +RuntimeHeader: $(ResourceIncludeDir)/sanitizer $(PROJ_resources_lib): $(Verb) $(MKDIR) $@ +$(ResourceIncludeDir): + $(Verb) $(MKDIR) $@ + +$(ResourceIncludeDir)/sanitizer: $(ResourceIncludeDir) + $(Verb) $(MKDIR) $@ + $(Verb) cp $(COMPILERRT_SRC_ROOT)/include/sanitizer/*.h $@ + # Expand rules for copying/installing each individual library. We can't use # implicit rules here because we need to match against multiple things. define RuntimeLibraryTemplate @@ -210,9 +220,21 @@ endef $(foreach lib,$(RuntimeDirs), $(eval $(call RuntimeLibraryTemplate,$(lib)))) +$(PROJ_resources_include): + $(Verb) $(MKDIR) $@ + +$(PROJ_resources_include)/sanitizer: $(ResourceIncludeDir)/sanitizer $(PROJ_resources_include) + $(Verb) $(MKDIR) $@ + $(Echo) Installing compiler runtime headers + $(Verb) $(DataInstall) $(ResourceIncludeDir)/sanitizer/* \ + $(PROJ_resources_include)/sanitizer + +RuntimeHeaderInstall: $(PROJ_resources_include)/sanitizer +.PHONY: RuntimeHeaderInstall + # Hook into the standard Makefile rules. -all-local:: $(RuntimeDirs:%=RuntimeLibrary.%) -install-local:: $(RuntimeDirs:%=RuntimeLibraryInstall.%) +all-local:: $(RuntimeDirs:%=RuntimeLibrary.%) RuntimeHeader +install-local:: $(RuntimeDirs:%=RuntimeLibraryInstall.%) RuntimeHeaderInstall clean-local:: CleanRuntimeLibraries endif
Index: ../tools/clang/runtime/compiler-rt/Makefile =================================================================== --- ../tools/clang/runtime/compiler-rt/Makefile +++ ../tools/clang/runtime/compiler-rt/Makefile @@ -23,7 +23,9 @@ PROJ_resources := $(DESTDIR)$(PROJ_prefix)/lib/clang/$(CLANG_VERSION) ResourceLibDir := $(ResourceDir)/lib +ResourceIncludeDir := $(ResourceDir)/include PROJ_resources_lib := $(PROJ_resources)/lib +PROJ_resources_include := $(PROJ_resources)/include # Expect compiler-rt to be in llvm/projects/compiler-rt COMPILERRT_SRC_ROOT := $(LLVM_SRC_ROOT)/projects/compiler-rt @@ -150,10 +152,18 @@ ProjObjRoot=$(PROJ_OBJ_DIR) \ clean .PHONY: CleanRuntimeLibraries +RuntimeHeader: $(ResourceIncludeDir)/sanitizer $(PROJ_resources_lib): $(Verb) $(MKDIR) $@ +$(ResourceIncludeDir): + $(Verb) $(MKDIR) $@ + +$(ResourceIncludeDir)/sanitizer: $(ResourceIncludeDir) + $(Verb) $(MKDIR) $@ + $(Verb) cp $(COMPILERRT_SRC_ROOT)/include/sanitizer/*.h $@ + # Expand rules for copying/installing each individual library. We can't use # implicit rules here because we need to match against multiple things. define RuntimeLibraryTemplate @@ -210,9 +220,21 @@ endef $(foreach lib,$(RuntimeDirs), $(eval $(call RuntimeLibraryTemplate,$(lib)))) +$(PROJ_resources_include): + $(Verb) $(MKDIR) $@ + +$(PROJ_resources_include)/sanitizer: $(ResourceIncludeDir)/sanitizer $(PROJ_resources_include) + $(Verb) $(MKDIR) $@ + $(Echo) Installing compiler runtime headers + $(Verb) $(DataInstall) $(ResourceIncludeDir)/sanitizer/* \ + $(PROJ_resources_include)/sanitizer + +RuntimeHeaderInstall: $(PROJ_resources_include)/sanitizer +.PHONY: RuntimeHeaderInstall + # Hook into the standard Makefile rules. -all-local:: $(RuntimeDirs:%=RuntimeLibrary.%) -install-local:: $(RuntimeDirs:%=RuntimeLibraryInstall.%) +all-local:: $(RuntimeDirs:%=RuntimeLibrary.%) RuntimeHeader +install-local:: $(RuntimeDirs:%=RuntimeLibraryInstall.%) RuntimeHeaderInstall clean-local:: CleanRuntimeLibraries endif
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
