634 'due to $$(words $$(filter-out %.vardeps, $$?)) file(s)', \ 635 $$(if $$(filter %.vardeps, $$?), 'due to makefile changes'))) 636 endif 637 $(TOUCH) $$@ 638 639 # On windows we need to create a resource file 640 ifeq ($(OPENJDK_TARGET_OS), windows) 641 ifneq (,$$($1_VERSIONINFO_RESOURCE)) 642 $1_RES:=$$($1_OBJECT_DIR)/$$($1_BASENAME).res 643 $1_RES_DEP:=$$($1_RES).d 644 $1_RES_DEP_TARGETS:=$$($1_RES).d.targets 645 -include $$($1_RES_DEP) 646 -include $$($1_RES_DEP_TARGETS) 647 648 $1_RES_VARDEPS := $$($1_RC) $$($1_RC_FLAGS) 649 $1_RES_VARDEPS_FILE := $$(call DependOnVariable, $1_RES_VARDEPS, \ 650 $$($1_RES).vardeps) 651 652 $$($1_RES): $$($1_VERSIONINFO_RESOURCE) $$($1_RES_VARDEPS_FILE) 653 $$(call LogInfo, Compiling resource $$(notdir $$($1_VERSIONINFO_RESOURCE)) (for $$(notdir $$($1_TARGET)))) 654 $$(call ExecuteWithLog, $$@, \ 655 $$($1_RC) $$($1_RC_FLAGS) $$($1_SYSROOT_CFLAGS) $(CC_OUT_OPTION)$$@ \ 656 $$($1_VERSIONINFO_RESOURCE)) 657 # Windows RC compiler does not support -showIncludes, so we mis-use CL for this. 658 $$($1_CC) $$($1_RC_FLAGS) $$($1_SYSROOT_CFLAGS) -showIncludes -nologo -TC \ 659 $(CC_OUT_OPTION)$$($1_RES_DEP).obj $$($1_VERSIONINFO_RESOURCE) > $$($1_RES_DEP).raw 2>&1 || true ; \ 660 $(ECHO) $$($1_RES): \\ > $$($1_RES_DEP) ; \ 661 $(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_RES_DEP).raw >> $$($1_RES_DEP) ; \ 662 $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_RES_DEP) > $$($1_RES_DEP_TARGETS) 663 endif 664 endif 665 666 ifneq ($(DISABLE_MAPFILES),true) 667 $1_REAL_MAPFILE := $$($1_MAPFILE) 668 ifneq ($(OPENJDK_TARGET_OS),windows) 669 ifneq (,$$($1_REORDER)) 670 $1_REAL_MAPFILE := $$($1_OBJECT_DIR)/mapfile 671 672 $$($1_REAL_MAPFILE) : $$($1_MAPFILE) $$($1_REORDER) 673 $$(MKDIR) -p $$(@D) 674 $$(CP) $$($1_MAPFILE) $$@.tmp 675 $$(SED) -e 's=OUTPUTDIR=$$($1_OBJECT_DIR)=' $$($1_REORDER) >> $$@.tmp 676 $$(MV) $$@.tmp $$@ 677 endif 678 endif 679 endif 680 681 # Pickup extra OPENJDK_TARGET_OS_TYPE and/or OPENJDK_TARGET_OS dependent variables 682 # for LDFLAGS and LIBS 683 $1_EXTRA_LDFLAGS:=$$($1_LDFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS)) 684 $1_EXTRA_LIBS:=$$($1_LIBS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LIBS_$(OPENJDK_TARGET_OS)) 685 ifneq (,$$($1_REAL_MAPFILE)) 686 $1_EXTRA_LDFLAGS += $(call SET_SHARED_LIBRARY_MAPFILE,$$($1_REAL_MAPFILE)) 687 endif 688 689 # Need to make sure TARGET is first on list 690 $1 := $$($1_TARGET) 691 692 ifeq ($(COPY_DEBUG_SYMBOLS), true) 693 ifneq ($$($1_DEBUG_SYMBOLS), false) | 634 'due to $$(words $$(filter-out %.vardeps, $$?)) file(s)', \ 635 $$(if $$(filter %.vardeps, $$?), 'due to makefile changes'))) 636 endif 637 $(TOUCH) $$@ 638 639 # On windows we need to create a resource file 640 ifeq ($(OPENJDK_TARGET_OS), windows) 641 ifneq (,$$($1_VERSIONINFO_RESOURCE)) 642 $1_RES:=$$($1_OBJECT_DIR)/$$($1_BASENAME).res 643 $1_RES_DEP:=$$($1_RES).d 644 $1_RES_DEP_TARGETS:=$$($1_RES).d.targets 645 -include $$($1_RES_DEP) 646 -include $$($1_RES_DEP_TARGETS) 647 648 $1_RES_VARDEPS := $$($1_RC) $$($1_RC_FLAGS) 649 $1_RES_VARDEPS_FILE := $$(call DependOnVariable, $1_RES_VARDEPS, \ 650 $$($1_RES).vardeps) 651 652 $$($1_RES): $$($1_VERSIONINFO_RESOURCE) $$($1_RES_VARDEPS_FILE) 653 $$(call LogInfo, Compiling resource $$(notdir $$($1_VERSIONINFO_RESOURCE)) (for $$(notdir $$($1_TARGET)))) 654 $$(call MakeDir, $$(@D) $$($1_OBJECT_DIR)) 655 $$(call ExecuteWithLog, $$@, \ 656 $$($1_RC) $$($1_RC_FLAGS) $$($1_SYSROOT_CFLAGS) $(CC_OUT_OPTION)$$@ \ 657 $$($1_VERSIONINFO_RESOURCE)) 658 # Windows RC compiler does not support -showIncludes, so we mis-use CL for this. 659 $$(call ExecuteWithLog, $$($1_RES_DEP).obj, \ 660 $$($1_CC) $$($1_RC_FLAGS) $$($1_SYSROOT_CFLAGS) -showIncludes -nologo -TC \ 661 $(CC_OUT_OPTION)$$($1_RES_DEP).obj -P -Fi$$($1_RES_DEP).pp \ 662 $$($1_VERSIONINFO_RESOURCE)) > $$($1_RES_DEP).raw 2>&1 || true ; \ 663 $(ECHO) $$($1_RES): \\ > $$($1_RES_DEP) ; \ 664 $(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_RES_DEP).raw >> $$($1_RES_DEP) ; \ 665 $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_RES_DEP) > $$($1_RES_DEP_TARGETS) 666 endif 667 endif 668 669 ifneq ($(DISABLE_MAPFILES),true) 670 $1_REAL_MAPFILE := $$($1_MAPFILE) 671 ifneq ($(OPENJDK_TARGET_OS),windows) 672 ifneq (,$$($1_REORDER)) 673 $1_REAL_MAPFILE := $$($1_OBJECT_DIR)/mapfile 674 675 $$($1_REAL_MAPFILE) : $$($1_MAPFILE) $$($1_REORDER) 676 $$(call MakeDir, $$(@D)) 677 $$(CP) $$($1_MAPFILE) $$@.tmp 678 $$(SED) -e 's=OUTPUTDIR=$$($1_OBJECT_DIR)=' $$($1_REORDER) >> $$@.tmp 679 $$(MV) $$@.tmp $$@ 680 endif 681 endif 682 endif 683 684 # Pickup extra OPENJDK_TARGET_OS_TYPE and/or OPENJDK_TARGET_OS dependent variables 685 # for LDFLAGS and LIBS 686 $1_EXTRA_LDFLAGS:=$$($1_LDFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS)) 687 $1_EXTRA_LIBS:=$$($1_LIBS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LIBS_$(OPENJDK_TARGET_OS)) 688 ifneq (,$$($1_REAL_MAPFILE)) 689 $1_EXTRA_LDFLAGS += $(call SET_SHARED_LIBRARY_MAPFILE,$$($1_REAL_MAPFILE)) 690 endif 691 692 # Need to make sure TARGET is first on list 693 $1 := $$($1_TARGET) 694 695 ifeq ($(COPY_DEBUG_SYMBOLS), true) 696 ifneq ($$($1_DEBUG_SYMBOLS), false) |