64 |
64 |
65 UNPACKEXE_LANG := C |
65 UNPACKEXE_LANG := C |
66 ifeq ($(OPENJDK_TARGET_OS), solaris) |
66 ifeq ($(OPENJDK_TARGET_OS), solaris) |
67 UNPACKEXE_LANG := C++ |
67 UNPACKEXE_LANG := C++ |
68 endif |
68 endif |
69 UNPACKEXE_DEBUG_SYMBOLS := true |
|
70 # On windows, unpack200 is linked completely differently to all other |
|
71 # executables, using the compiler with the compiler arguments. |
|
72 # It's also linked incrementally, producing a .ilk file that needs to |
|
73 # be kept away. |
|
74 ifeq ($(OPENJDK_TARGET_OS), windows) |
|
75 BUILD_UNPACKEXE_LDEXE := $(CC) |
|
76 EXE_OUT_OPTION_save := $(EXE_OUT_OPTION) |
|
77 EXE_OUT_OPTION := -Fe |
|
78 # With the current way unpack200 is built, debug symbols aren't supported |
|
79 # anyway. |
|
80 UNPACKEXE_DEBUG_SYMBOLS := false |
|
81 endif |
|
82 |
69 |
83 # The linker on older SuSE distros (e.g. on SLES 10) complains with: |
70 # The linker on older SuSE distros (e.g. on SLES 10) complains with: |
84 # "Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable." |
71 # "Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable." |
85 # if feeded with a version script which contains named tags. |
72 # if feeded with a version script which contains named tags. |
86 ifeq ($(USING_BROKEN_SUSE_LD), yes) |
73 ifeq ($(USING_BROKEN_SUSE_LD), yes) |
91 |
78 |
92 $(eval $(call SetupNativeCompilation,BUILD_UNPACKEXE, \ |
79 $(eval $(call SetupNativeCompilation,BUILD_UNPACKEXE, \ |
93 SRC := $(UNPACKEXE_SRC), \ |
80 SRC := $(UNPACKEXE_SRC), \ |
94 LANG := $(UNPACKEXE_LANG), \ |
81 LANG := $(UNPACKEXE_LANG), \ |
95 OPTIMIZATION := LOW, \ |
82 OPTIMIZATION := LOW, \ |
96 CFLAGS := $(UNPACKEXE_CFLAGS) $(CXXFLAGS_JDKEXE) \ |
83 CFLAGS := $(UNPACKEXE_CFLAGS) $(CXXFLAGS_JDKEXE) -DFULL, \ |
97 -DFULL, \ |
|
98 CFLAGS_release := -DPRODUCT, \ |
84 CFLAGS_release := -DPRODUCT, \ |
99 CFLAGS_linux := -fPIC, \ |
85 CFLAGS_linux := -fPIC, \ |
100 CFLAGS_solaris := -KPIC, \ |
86 CFLAGS_solaris := -KPIC, \ |
101 CFLAGS_macosx := -fPIC, \ |
87 CFLAGS_macosx := -fPIC, \ |
102 MAPFILE := $(UNPACK_MAPFILE),\ |
88 MAPFILE := $(UNPACK_MAPFILE),\ |
103 LDFLAGS := $(UNPACKEXE_ZIPOBJS), \ |
89 LDFLAGS := $(UNPACKEXE_ZIPOBJS) \ |
104 LDFLAGS_windows := $(CXXFLAGS_JDKEXE), \ |
90 $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \ |
105 LDFLAGS_unix := $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \ |
|
106 $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX)) \ |
91 $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX)) \ |
107 $(call SET_SHARED_LIBRARY_ORIGIN), \ |
92 $(call SET_SHARED_LIBRARY_ORIGIN), \ |
108 LDFLAGS_linux := -lc, \ |
93 LDFLAGS_linux := -lc, \ |
109 LDFLAGS_solaris := $(UNPACKEXE_LDFLAGS_solaris) -lc, \ |
94 LDFLAGS_solaris := $(UNPACKEXE_LDFLAGS_solaris) -lc, \ |
110 LDFLAGS_SUFFIX := $(LIBCXX), \ |
95 LDFLAGS_SUFFIX := $(LIBCXX), \ |
111 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/unpackexe$(OUTPUT_SUBDIR), \ |
96 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/unpackexe$(OUTPUT_SUBDIR), \ |
112 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/unpackexe$(OUTPUT_SUBDIR), \ |
97 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE), \ |
113 PROGRAM := unpack200, \ |
98 PROGRAM := unpack200, \ |
114 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \ |
99 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \ |
115 RC_FLAGS := $(RC_FLAGS) \ |
100 RC_FLAGS := $(RC_FLAGS) \ |
116 -D "JDK_FNAME=unpack200.exe" \ |
101 -D "JDK_FNAME=unpack200.exe" \ |
117 -D "JDK_INTERNAL_NAME=unpack200" \ |
102 -D "JDK_INTERNAL_NAME=unpack200" \ |
118 -D "JDK_FTYPE=0x1L", \ |
103 -D "JDK_FTYPE=0x1L", \ |
119 DEBUG_SYMBOLS := $(UNPACKEXE_DEBUG_SYMBOLS), \ |
104 DEBUG_SYMBOLS := true, \ |
120 MANIFEST := $(JDK_TOPDIR)/src/jdk.runtime/windows/native/unpack200/unpack200_proto.exe.manifest)) |
105 MANIFEST := $(JDK_TOPDIR)/src/jdk.runtime/windows/native/unpack200/unpack200_proto.exe.manifest)) |
121 |
|
122 ifeq ($(OPENJDK_TARGET_OS), windows) |
|
123 EXE_OUT_OPTION := $(EXE_OUT_OPTION_save) |
|
124 endif |
|
125 |
106 |
126 ifneq ($(USE_EXTERNAL_LIBZ), true) |
107 ifneq ($(USE_EXTERNAL_LIBZ), true) |
127 |
108 |
128 $(BUILD_UNPACKEXE): $(UNPACKEXE_ZIPOBJS) |
109 $(BUILD_UNPACKEXE): $(UNPACKEXE_ZIPOBJS) |
129 |
110 |
130 endif |
111 endif |
131 |
112 |
132 # Build into object dir and copy executable afterwards to avoid .ilk file in |
113 TARGETS += $(BUILD_UNPACKEXE) |
133 # image. The real fix would be clean up linking of unpack200 using |
|
134 # -link -incremental:no |
|
135 # like all other launchers. |
|
136 $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE)/unpack200$(EXE_SUFFIX): $(BUILD_UNPACKEXE) |
|
137 $(call install-file) |
|
138 |
|
139 TARGETS += $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE)/unpack200$(EXE_SUFFIX) |
|
140 |
114 |
141 ################################################################################ |
115 ################################################################################ |