751 endif 752 endif # !STATIC_LIBRARY 753 endif # $1_DEBUG_SYMBOLS != false 754 endif # COPY_DEBUG_SYMBOLS 755 756 ifeq ($$($1_STRIP_SYMBOLS), true) 757 ifneq ($$($1_STRIP), ) 758 # Default to using the global STRIPFLAGS. Allow for overriding with an empty value 759 $1_STRIPFLAGS ?= $(STRIPFLAGS) 760 $1_STRIP_CMD := $$($1_STRIP) $$($1_STRIPFLAGS) $$($1_TARGET) 761 endif 762 endif 763 764 ifneq (,$$($1_LIBRARY)) 765 # Generating a dynamic library. 766 $1_EXTRA_LDFLAGS += $$(call SET_SHARED_LIBRARY_NAME,$$($1_BASENAME)) 767 ifeq ($(OPENJDK_TARGET_OS), windows) 768 $1_EXTRA_LDFLAGS += "-implib:$$($1_OBJECT_DIR)/$$($1_LIBRARY).lib" 769 endif 770 771 $1_EXTRA_LIBS += $(GLOBAL_LIBS) 772 773 $1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \ 774 $$($1_LIBS) $$($1_EXTRA_LIBS) $$($1_CREATE_DEBUGINFO_CMDS) \ 775 $$($1_STRIP_CMD) 776 $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \ 777 $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps) 778 779 $1_LD_OBJ_ARG := $$($1_ALL_OBJS) 780 781 # If there are many object files, use an @-file... 782 ifneq ($$(word 17, $$($1_ALL_OBJS)), ) 783 $1_OBJ_FILE_LIST := $$($1_OBJECT_DIR)/_$1_objectfilenames.txt 784 ifneq ($(COMPILER_COMMAND_FILE_FLAG),) 785 $1_LD_OBJ_ARG := $(COMPILER_COMMAND_FILE_FLAG)$$($1_OBJ_FILE_LIST) 786 else 787 # ...except for toolchains which don't support them. 788 $1_LD_OBJ_ARG := `cat $$($1_OBJ_FILE_LIST)` 789 endif 790 endif 791 792 $$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_REAL_MAPFILE) \ 829 STATIC_MAPFILE_DEP := $$($1_MAPFILE) 830 endif 831 endif 832 833 $$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_VARDEPS_FILE) $$(STATIC_MAPFILE_DEP) 834 $$(call LogInfo, Archiving $$($1_STATIC_LIBRARY)) 835 $$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \ 836 $$($1_AR) $$($1_ARFLAGS) $(AR_OUT_OPTION)$$($1_TARGET) $$($1_ALL_OBJS) \ 837 $$($1_RES)) 838 ifeq ($(STATIC_BUILD), true) 839 ifeq ($$($1_USE_MAPFILE_FOR_SYMBOLS), true) 840 $(CP) $$($1_MAPFILE) $$(@D)/$$(basename $$(@F)).symbols 841 else 842 $(GetSymbols) 843 endif 844 endif 845 endif 846 847 ifneq (,$$($1_PROGRAM)) 848 # A executable binary has been specified, setup the target for it. 849 $1_EXTRA_LIBS += $(GLOBAL_LIBS) 850 851 $1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \ 852 $$($1_LIBS) $$($1_EXTRA_LIBS) $$($1_MT) \ 853 $$($1_CODESIGN) $$($1_CREATE_DEBUGINFO_CMDS) $$($1_MANIFEST_VERSION) \ 854 $$($1_STRIP_CMD) 855 $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \ 856 $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps) 857 858 ifeq ($(OPENJDK_TARGET_OS), windows) 859 ifeq ($$($1_EMBED_MANIFEST), true) 860 $1_EXTRA_LDFLAGS += -manifest:embed 861 endif 862 endif 863 864 $$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_MANIFEST) \ 865 $$($1_VARDEPS_FILE) 866 $$(call LogInfo, Linking executable $$($1_BASENAME)) 867 $$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \ 868 $$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $$($1_SYSROOT_LDFLAGS) \ 869 $(EXE_OUT_OPTION)$$($1_TARGET) \ 870 $$($1_ALL_OBJS) $$($1_RES) \ | 751 endif 752 endif # !STATIC_LIBRARY 753 endif # $1_DEBUG_SYMBOLS != false 754 endif # COPY_DEBUG_SYMBOLS 755 756 ifeq ($$($1_STRIP_SYMBOLS), true) 757 ifneq ($$($1_STRIP), ) 758 # Default to using the global STRIPFLAGS. Allow for overriding with an empty value 759 $1_STRIPFLAGS ?= $(STRIPFLAGS) 760 $1_STRIP_CMD := $$($1_STRIP) $$($1_STRIPFLAGS) $$($1_TARGET) 761 endif 762 endif 763 764 ifneq (,$$($1_LIBRARY)) 765 # Generating a dynamic library. 766 $1_EXTRA_LDFLAGS += $$(call SET_SHARED_LIBRARY_NAME,$$($1_BASENAME)) 767 ifeq ($(OPENJDK_TARGET_OS), windows) 768 $1_EXTRA_LDFLAGS += "-implib:$$($1_OBJECT_DIR)/$$($1_LIBRARY).lib" 769 endif 770 771 $1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \ 772 $$($1_LIBS) $$($1_EXTRA_LIBS) $$($1_CREATE_DEBUGINFO_CMDS) \ 773 $$($1_STRIP_CMD) 774 $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \ 775 $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps) 776 777 $1_LD_OBJ_ARG := $$($1_ALL_OBJS) 778 779 # If there are many object files, use an @-file... 780 ifneq ($$(word 17, $$($1_ALL_OBJS)), ) 781 $1_OBJ_FILE_LIST := $$($1_OBJECT_DIR)/_$1_objectfilenames.txt 782 ifneq ($(COMPILER_COMMAND_FILE_FLAG),) 783 $1_LD_OBJ_ARG := $(COMPILER_COMMAND_FILE_FLAG)$$($1_OBJ_FILE_LIST) 784 else 785 # ...except for toolchains which don't support them. 786 $1_LD_OBJ_ARG := `cat $$($1_OBJ_FILE_LIST)` 787 endif 788 endif 789 790 $$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_REAL_MAPFILE) \ 827 STATIC_MAPFILE_DEP := $$($1_MAPFILE) 828 endif 829 endif 830 831 $$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_VARDEPS_FILE) $$(STATIC_MAPFILE_DEP) 832 $$(call LogInfo, Archiving $$($1_STATIC_LIBRARY)) 833 $$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \ 834 $$($1_AR) $$($1_ARFLAGS) $(AR_OUT_OPTION)$$($1_TARGET) $$($1_ALL_OBJS) \ 835 $$($1_RES)) 836 ifeq ($(STATIC_BUILD), true) 837 ifeq ($$($1_USE_MAPFILE_FOR_SYMBOLS), true) 838 $(CP) $$($1_MAPFILE) $$(@D)/$$(basename $$(@F)).symbols 839 else 840 $(GetSymbols) 841 endif 842 endif 843 endif 844 845 ifneq (,$$($1_PROGRAM)) 846 # A executable binary has been specified, setup the target for it. 847 $1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \ 848 $$($1_LIBS) $$($1_EXTRA_LIBS) $$($1_MT) \ 849 $$($1_CODESIGN) $$($1_CREATE_DEBUGINFO_CMDS) $$($1_MANIFEST_VERSION) \ 850 $$($1_STRIP_CMD) 851 $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \ 852 $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps) 853 854 ifeq ($(OPENJDK_TARGET_OS), windows) 855 ifeq ($$($1_EMBED_MANIFEST), true) 856 $1_EXTRA_LDFLAGS += -manifest:embed 857 endif 858 endif 859 860 $$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_MANIFEST) \ 861 $$($1_VARDEPS_FILE) 862 $$(call LogInfo, Linking executable $$($1_BASENAME)) 863 $$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \ 864 $$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $$($1_SYSROOT_LDFLAGS) \ 865 $(EXE_OUT_OPTION)$$($1_TARGET) \ 866 $$($1_ALL_OBJS) $$($1_RES) \ |