1 #
2 # Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 #
5 # This code is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License version 2 only, as
7 # published by the Free Software Foundation. Oracle designates this
8 # particular file as subject to the "Classpath" exception as provided
9 # by Oracle in the LICENSE file that accompanied this code.
10 #
11 # This code is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 # version 2 for more details (a copy is included in the LICENSE file that
15 # accompanied this code).
16 #
17 # You should have received a copy of the GNU General Public License version
18 # 2 along with this work; if not, write to the Free Software Foundation,
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 #
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 # or visit www.oracle.com if you need additional information or have any
31
32 BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
33
34 ifneq ($(OPENJDK_TARGET_OS), solaris)
35 BUILD_LIBFDLIBM_OPTIMIZATION := NONE
36 endif
37
38 LIBFDLIBM_SRC := $(JDK_TOPDIR)/src/java.base/share/native/libfdlibm
39 LIBFDLIBM_CFLAGS := -I$(LIBFDLIBM_SRC)
40
41 ifneq ($(OPENJDK_TARGET_OS), macosx)
42 $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM, \
43 STATIC_LIBRARY := fdlibm, \
44 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
45 SRC := $(LIBFDLIBM_SRC), \
46 LANG := C, \
47 OPTIMIZATION := $(BUILD_LIBFDLIBM_OPTIMIZATION), \
48 CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
49 CFLAGS_windows_debug := -DLOGGING, \
50 CFLAGS_aix := -qfloat=nomaf, \
51 ARFLAGS := $(ARFLAGS), \
52 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
53 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
54
55 else
56
57 # On macosx the old build does partial (incremental) linking of fdlibm instead of
58 # a plain static library.
59 $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM_MAC, \
60 LIBRARY := fdlibm, \
61 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
62 SRC := $(LIBFDLIBM_SRC), \
63 LANG := C, \
64 CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
65 LDFLAGS := -nostdlib -r -arch x86_64, \
66 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
67 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
68
69 BUILD_LIBFDLIBM := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX)
70 $(BUILD_LIBFDLIBM): $(BUILD_LIBFDLIBM_MAC)
77 ifeq ($(OPENJDK_TARGET_OS), solaris)
78 ifneq ($(OPENJDK_TARGET_CPU), x86_64)
79 BUILD_LIBVERIFY_REORDER := $(JDK_TOPDIR)/make/mapfiles/libverify/reorder-$(OPENJDK_TARGET_CPU)
80 endif
81 endif
82
83 LIBVERIFY_OPTIMIZATION := HIGH
84 ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), )
85 ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
86 LIBVERIFY_OPTIMIZATION := LOW
87 endif
88 endif
89
90 $(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY, \
91 LIBRARY := verify, \
92 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
93 SRC := $(JDK_TOPDIR)/src/java.base/share/native/libverify, \
94 LANG := C, \
95 OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
96 CFLAGS := $(CFLAGS_JDKLIB), \
97 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libverify/mapfile-vers, \
98 LDFLAGS := $(LDFLAGS_JDKLIB) \
99 $(call SET_SHARED_LIBRARY_ORIGIN), \
100 LDFLAGS_SUFFIX_unix := -ljvm -lc, \
101 LDFLAGS_SUFFIX_windows := jvm.lib, \
102 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
103 RC_FLAGS := $(RC_FLAGS) \
104 -D "JDK_FNAME=verify.dll" \
105 -D "JDK_INTERNAL_NAME=verify" \
106 -D "JDK_FTYPE=0x2L", \
107 REORDER := $(BUILD_LIBVERIFY_REORDER), \
108 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libverify, \
109 DEBUG_SYMBOLS := true))
110
111 TARGETS += $(BUILD_LIBVERIFY)
112
113 ##########################################################################################
114
115 LIBJAVA_SRC_DIRS := $(call FindSrcDirsForLib, java.base, java)
116
130
131 ifeq ($(OPENJDK_TARGET_OS), macosx)
132 BUILD_LIBJAVA_java_props_md.c_CFLAGS := -x objective-c
133 BUILD_LIBJAVA_java_props_macosx.c_CFLAGS := -x objective-c
134 endif
135
136 ifeq ($(OPENJDK_TARGET_OS), solaris)
137 ifneq ($(OPENJDK_TARGET_CPU), x86_64)
138 LIBJAVA_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjava/reorder-$(OPENJDK_TARGET_CPU)
139 endif
140 endif
141
142 $(eval $(call SetupNativeCompilation,BUILD_LIBJAVA, \
143 LIBRARY := java, \
144 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
145 SRC := $(LIBJAVA_SRC_DIRS), \
146 LANG := C, \
147 OPTIMIZATION := HIGH, \
148 CFLAGS := $(CFLAGS_JDKLIB) \
149 $(LIBJAVA_CFLAGS), \
150 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjava/mapfile-vers, \
151 LDFLAGS := $(LDFLAGS_JDKLIB) \
152 $(call SET_SHARED_LIBRARY_ORIGIN), \
153 LDFLAGS_SUFFIX_unix := -ljvm -lverify, \
154 LDFLAGS_SUFFIX_solaris := -lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM) -lc, \
155 LDFLAGS_SUFFIX_linux := $(LIBDL) $(BUILD_LIBFDLIBM), \
156 LDFLAGS_SUFFIX_aix := $(LIBDL) $(BUILD_LIBFDLIBM) -lm,\
157 LDFLAGS_SUFFIX_macosx := -L$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/ -lfdlibm \
158 -framework CoreFoundation \
159 -framework Foundation \
160 -framework Security -framework SystemConfiguration, \
161 LDFLAGS_SUFFIX_windows := -export:winFileHandleOpen -export:handleLseek \
162 -export:getLastErrorString \
163 jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \
164 shell32.lib delayimp.lib -DELAYLOAD:shell32.dll \
165 advapi32.lib, \
166 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
167 RC_FLAGS := $(RC_FLAGS) \
168 -D "JDK_FNAME=java.dll" \
169 -D "JDK_INTERNAL_NAME=java" \
192 endif
193 endif
194
195 ifeq ($(LIBZIP_CAN_USE_MMAP), true)
196 BUILD_LIBZIP_MMAP := -DUSE_MMAP
197 endif
198
199 $(eval $(call SetupNativeCompilation,BUILD_LIBZIP, \
200 LIBRARY := zip, \
201 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
202 LANG := C, \
203 OPTIMIZATION := LOW, \
204 SRC := $(JDK_TOPDIR)/src/java.base/share/native/libzip, \
205 EXCLUDES := $(LIBZIP_EXCLUDES), \
206 CFLAGS := $(CFLAGS_JDKLIB) \
207 $(ZLIB_CPPFLAGS) \
208 -I$(JDK_TOPDIR)/src/java.base/share/native/libjava \
209 -I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
210 -I$(SUPPORT_OUTPUTDIR)/headers/java.base, \
211 CFLAGS_unix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \
212 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libzip/mapfile-vers, \
213 REORDER := $(BUILD_LIBZIP_REORDER), \
214 LDFLAGS := $(LDFLAGS_JDKLIB) \
215 $(call SET_SHARED_LIBRARY_ORIGIN) \
216 $(EXPORT_ZIP_FUNCS), \
217 LDFLAGS_windows := -export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \
218 -export:ZIP_ReadEntry -export:ZIP_GetNextEntry \
219 -export:ZIP_InflateFully -export:ZIP_CRC32 \
220 jvm.lib $(WIN_JAVA_LIB), \
221 LDFLAGS_SUFFIX_linux := -ljvm -ljava $(LIBZ), \
222 LDFLAGS_SUFFIX_solaris := -ljvm -ljava $(LIBZ) -lc, \
223 LDFLAGS_SUFFIX_aix := -ljvm -ljava $(LIBZ),\
224 LDFLAGS_SUFFIX_macosx := $(LIBZ) -ljava -ljvm, \
225 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
226 RC_FLAGS := $(RC_FLAGS) \
227 -D "JDK_FNAME=zip.dll" \
228 -D "JDK_INTERNAL_NAME=zip" \
229 -D "JDK_FTYPE=0x2L", \
230 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libzip, \
231 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
290 LIBJLI_EXTRA_FILES += \
291 $(addprefix $(JDK_TOPDIR)/src/java.base/share/native/libzip/zlib-1.2.8/, \
292 inflate.c \
293 inftrees.c \
294 inffast.c \
295 zadler32.c \
296 zcrc32.c \
297 zutil.c \
298 )
299 endif
300
301 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI, \
302 LIBRARY := jli, \
303 OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \
304 SRC := $(LIBJLI_SRC_DIRS), \
305 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
306 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
307 LANG := C, \
308 OPTIMIZATION := HIGH, \
309 CFLAGS := $(LIBJLI_CFLAGS), \
310 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjli/mapfile-vers, \
311 LDFLAGS := $(LDFLAGS_JDKLIB) \
312 $(call SET_SHARED_LIBRARY_ORIGIN), \
313 LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
314 LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
315 LDFLAGS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \
316 LDFLAGS_SUFFIX_solaris := $(LIBZ) $(LIBDL) -lc, \
317 LDFLAGS_SUFFIX_linux := $(LIBZ) $(LIBDL) -lc -lpthread, \
318 LDFLAGS_SUFFIX_aix := $(LIBZ) $(LIBDL),\
319 LDFLAGS_SUFFIX_macosx := $(LIBZ), \
320 LDFLAGS_SUFFIX_windows := \
321 -export:JLI_Launch \
322 -export:JLI_ManifestIterate \
323 -export:JLI_SetTraceLauncher \
324 -export:JLI_ReportErrorMessage \
325 -export:JLI_ReportErrorMessageSys \
326 -export:JLI_ReportMessage \
327 -export:JLI_ReportExceptionDescription \
328 -export:JLI_MemAlloc \
329 -export:JLI_CmdToArgs \
338 -D "JDK_INTERNAL_NAME=jli" \
339 -D "JDK_FTYPE=0x2L", \
340 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli, \
341 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
342
343 TARGETS += $(BUILD_LIBJLI)
344
345 # On windows, the static library has the same suffix as the import library created by
346 # with the shared library, so the static library is given a different name. No harm
347 # in doing it for all platform to reduce complexity.
348 ifeq ($(OPENJDK_TARGET_OS), windows)
349 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \
350 STATIC_LIBRARY := jli_static, \
351 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
352 SRC := $(LIBJLI_SRC_DIRS), \
353 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
354 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
355 LANG := C, \
356 OPTIMIZATION := HIGH, \
357 CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \
358 ARFLAGS := $(ARFLAGS), \
359 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \
360 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
361
362 TARGETS += $(BUILD_LIBJLI_STATIC)
363
364 else ifeq ($(OPENJDK_TARGET_OS), macosx)
365 #
366 # On macosx they do partial (incremental) linking of libjli_static.a
367 # code it here...rather than add support to NativeCompilation
368 # as this is first time I see it
369 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \
370 LIBRARY := jli_static, \
371 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
372 SRC := $(LIBJLI_SRC_DIRS), \
373 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
374 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
375 LANG := C, \
376 OPTIMIZATION := HIGH, \
377 CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
378 LDFLAGS := -nostdlib -r, \
379 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \
380 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
381
382 $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a: $(BUILD_LIBJLI_STATIC)
383 $(call install-file)
384
385 TARGETS += $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a
386
387 else ifeq ($(OPENJDK_TARGET_OS), aix)
388 # AIX also requires a static libjli because the compiler doesn't support '-rpath'
389 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \
390 STATIC_LIBRARY := jli_static, \
391 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
392 SRC := $(LIBJLI_SRC_DIRS), \
393 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
394 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
395 LANG := C, \
396 OPTIMIZATION := HIGH, \
397 CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \
398 ARFLAGS := $(ARFLAGS), \
399 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static))
400
401 TARGETS += $(BUILD_LIBJLI_STATIC)
402
403 endif
404
|
1 #
2 # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 #
5 # This code is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License version 2 only, as
7 # published by the Free Software Foundation. Oracle designates this
8 # particular file as subject to the "Classpath" exception as provided
9 # by Oracle in the LICENSE file that accompanied this code.
10 #
11 # This code is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 # version 2 for more details (a copy is included in the LICENSE file that
15 # accompanied this code).
16 #
17 # You should have received a copy of the GNU General Public License version
18 # 2 along with this work; if not, write to the Free Software Foundation,
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 #
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 # or visit www.oracle.com if you need additional information or have any
31
32 BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
33
34 ifneq ($(OPENJDK_TARGET_OS), solaris)
35 BUILD_LIBFDLIBM_OPTIMIZATION := NONE
36 endif
37
38 LIBFDLIBM_SRC := $(JDK_TOPDIR)/src/java.base/share/native/libfdlibm
39 LIBFDLIBM_CFLAGS := -I$(LIBFDLIBM_SRC)
40
41 ifneq ($(OPENJDK_TARGET_OS), macosx)
42 $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM, \
43 STATIC_LIBRARY := fdlibm, \
44 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
45 SRC := $(LIBFDLIBM_SRC), \
46 LANG := C, \
47 OPTIMIZATION := $(BUILD_LIBFDLIBM_OPTIMIZATION), \
48 CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
49 CFLAGS_windows_debug := -DLOGGING, \
50 CFLAGS_aix := -qfloat=nomaf, \
51 DISABLED_WARNINGS_gcc := sign-compare, \
52 DISABLED_WARNINGS_microsoft := 4146 4244 4018, \
53 ARFLAGS := $(ARFLAGS), \
54 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
55 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
56
57 else
58
59 # On macosx the old build does partial (incremental) linking of fdlibm instead of
60 # a plain static library.
61 $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM_MAC, \
62 LIBRARY := fdlibm, \
63 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
64 SRC := $(LIBFDLIBM_SRC), \
65 LANG := C, \
66 CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
67 LDFLAGS := -nostdlib -r -arch x86_64, \
68 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
69 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
70
71 BUILD_LIBFDLIBM := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX)
72 $(BUILD_LIBFDLIBM): $(BUILD_LIBFDLIBM_MAC)
79 ifeq ($(OPENJDK_TARGET_OS), solaris)
80 ifneq ($(OPENJDK_TARGET_CPU), x86_64)
81 BUILD_LIBVERIFY_REORDER := $(JDK_TOPDIR)/make/mapfiles/libverify/reorder-$(OPENJDK_TARGET_CPU)
82 endif
83 endif
84
85 LIBVERIFY_OPTIMIZATION := HIGH
86 ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), )
87 ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
88 LIBVERIFY_OPTIMIZATION := LOW
89 endif
90 endif
91
92 $(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY, \
93 LIBRARY := verify, \
94 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
95 SRC := $(JDK_TOPDIR)/src/java.base/share/native/libverify, \
96 LANG := C, \
97 OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
98 CFLAGS := $(CFLAGS_JDKLIB), \
99 DISABLED_WARNINGS_microsoft := 4244 4267, \
100 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libverify/mapfile-vers, \
101 LDFLAGS := $(LDFLAGS_JDKLIB) \
102 $(call SET_SHARED_LIBRARY_ORIGIN), \
103 LDFLAGS_SUFFIX_unix := -ljvm -lc, \
104 LDFLAGS_SUFFIX_windows := jvm.lib, \
105 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
106 RC_FLAGS := $(RC_FLAGS) \
107 -D "JDK_FNAME=verify.dll" \
108 -D "JDK_INTERNAL_NAME=verify" \
109 -D "JDK_FTYPE=0x2L", \
110 REORDER := $(BUILD_LIBVERIFY_REORDER), \
111 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libverify, \
112 DEBUG_SYMBOLS := true))
113
114 TARGETS += $(BUILD_LIBVERIFY)
115
116 ##########################################################################################
117
118 LIBJAVA_SRC_DIRS := $(call FindSrcDirsForLib, java.base, java)
119
133
134 ifeq ($(OPENJDK_TARGET_OS), macosx)
135 BUILD_LIBJAVA_java_props_md.c_CFLAGS := -x objective-c
136 BUILD_LIBJAVA_java_props_macosx.c_CFLAGS := -x objective-c
137 endif
138
139 ifeq ($(OPENJDK_TARGET_OS), solaris)
140 ifneq ($(OPENJDK_TARGET_CPU), x86_64)
141 LIBJAVA_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjava/reorder-$(OPENJDK_TARGET_CPU)
142 endif
143 endif
144
145 $(eval $(call SetupNativeCompilation,BUILD_LIBJAVA, \
146 LIBRARY := java, \
147 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
148 SRC := $(LIBJAVA_SRC_DIRS), \
149 LANG := C, \
150 OPTIMIZATION := HIGH, \
151 CFLAGS := $(CFLAGS_JDKLIB) \
152 $(LIBJAVA_CFLAGS), \
153 DISABLED_WARNINGS_gcc := type-limits format-nonliteral, \
154 DISABLED_WARNINGS_clang := int-conversion, \
155 DISABLED_WARNINGS_solstudio := E_DECLARATION_IN_CODE, \
156 DISABLED_WARNINGS_microsoft := 4022 4267, \
157 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjava/mapfile-vers, \
158 LDFLAGS := $(LDFLAGS_JDKLIB) \
159 $(call SET_SHARED_LIBRARY_ORIGIN), \
160 LDFLAGS_SUFFIX_unix := -ljvm -lverify, \
161 LDFLAGS_SUFFIX_solaris := -lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM) -lc, \
162 LDFLAGS_SUFFIX_linux := $(LIBDL) $(BUILD_LIBFDLIBM), \
163 LDFLAGS_SUFFIX_aix := $(LIBDL) $(BUILD_LIBFDLIBM) -lm,\
164 LDFLAGS_SUFFIX_macosx := -L$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/ -lfdlibm \
165 -framework CoreFoundation \
166 -framework Foundation \
167 -framework Security -framework SystemConfiguration, \
168 LDFLAGS_SUFFIX_windows := -export:winFileHandleOpen -export:handleLseek \
169 -export:getLastErrorString \
170 jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \
171 shell32.lib delayimp.lib -DELAYLOAD:shell32.dll \
172 advapi32.lib, \
173 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
174 RC_FLAGS := $(RC_FLAGS) \
175 -D "JDK_FNAME=java.dll" \
176 -D "JDK_INTERNAL_NAME=java" \
199 endif
200 endif
201
202 ifeq ($(LIBZIP_CAN_USE_MMAP), true)
203 BUILD_LIBZIP_MMAP := -DUSE_MMAP
204 endif
205
206 $(eval $(call SetupNativeCompilation,BUILD_LIBZIP, \
207 LIBRARY := zip, \
208 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
209 LANG := C, \
210 OPTIMIZATION := LOW, \
211 SRC := $(JDK_TOPDIR)/src/java.base/share/native/libzip, \
212 EXCLUDES := $(LIBZIP_EXCLUDES), \
213 CFLAGS := $(CFLAGS_JDKLIB) \
214 $(ZLIB_CPPFLAGS) \
215 -I$(JDK_TOPDIR)/src/java.base/share/native/libjava \
216 -I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
217 -I$(SUPPORT_OUTPUTDIR)/headers/java.base, \
218 CFLAGS_unix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \
219 DISABLED_WARNINGS_gcc := parentheses, \
220 DISABLED_WARNINGS_clang := dangling-else, \
221 DISABLED_WARNINGS_microsoft := 4267, \
222 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libzip/mapfile-vers, \
223 REORDER := $(BUILD_LIBZIP_REORDER), \
224 LDFLAGS := $(LDFLAGS_JDKLIB) \
225 $(call SET_SHARED_LIBRARY_ORIGIN) \
226 $(EXPORT_ZIP_FUNCS), \
227 LDFLAGS_windows := -export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \
228 -export:ZIP_ReadEntry -export:ZIP_GetNextEntry \
229 -export:ZIP_InflateFully -export:ZIP_CRC32 \
230 jvm.lib $(WIN_JAVA_LIB), \
231 LDFLAGS_SUFFIX_linux := -ljvm -ljava $(LIBZ), \
232 LDFLAGS_SUFFIX_solaris := -ljvm -ljava $(LIBZ) -lc, \
233 LDFLAGS_SUFFIX_aix := -ljvm -ljava $(LIBZ),\
234 LDFLAGS_SUFFIX_macosx := $(LIBZ) -ljava -ljvm, \
235 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
236 RC_FLAGS := $(RC_FLAGS) \
237 -D "JDK_FNAME=zip.dll" \
238 -D "JDK_INTERNAL_NAME=zip" \
239 -D "JDK_FTYPE=0x2L", \
240 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libzip, \
241 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
300 LIBJLI_EXTRA_FILES += \
301 $(addprefix $(JDK_TOPDIR)/src/java.base/share/native/libzip/zlib-1.2.8/, \
302 inflate.c \
303 inftrees.c \
304 inffast.c \
305 zadler32.c \
306 zcrc32.c \
307 zutil.c \
308 )
309 endif
310
311 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI, \
312 LIBRARY := jli, \
313 OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \
314 SRC := $(LIBJLI_SRC_DIRS), \
315 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
316 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
317 LANG := C, \
318 OPTIMIZATION := HIGH, \
319 CFLAGS := $(LIBJLI_CFLAGS), \
320 DISABLED_WARNINGS_gcc := pointer-to-int-cast sign-compare format-nonliteral \
321 parentheses, \
322 DISABLED_WARNINGS_clang := implicit-function-declaration parentheses \
323 int-conversion, \
324 DISABLED_WARNINGS_solstudio := E_ASM_DISABLES_OPTIMIZATION E_NEWLINE_NOT_LAST, \
325 DISABLED_WARNINGS_microsoft := 4244 4047 4267, \
326 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjli/mapfile-vers, \
327 LDFLAGS := $(LDFLAGS_JDKLIB) \
328 $(call SET_SHARED_LIBRARY_ORIGIN), \
329 LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
330 LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
331 LDFLAGS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \
332 LDFLAGS_SUFFIX_solaris := $(LIBZ) $(LIBDL) -lc, \
333 LDFLAGS_SUFFIX_linux := $(LIBZ) $(LIBDL) -lc -lpthread, \
334 LDFLAGS_SUFFIX_aix := $(LIBZ) $(LIBDL),\
335 LDFLAGS_SUFFIX_macosx := $(LIBZ), \
336 LDFLAGS_SUFFIX_windows := \
337 -export:JLI_Launch \
338 -export:JLI_ManifestIterate \
339 -export:JLI_SetTraceLauncher \
340 -export:JLI_ReportErrorMessage \
341 -export:JLI_ReportErrorMessageSys \
342 -export:JLI_ReportMessage \
343 -export:JLI_ReportExceptionDescription \
344 -export:JLI_MemAlloc \
345 -export:JLI_CmdToArgs \
354 -D "JDK_INTERNAL_NAME=jli" \
355 -D "JDK_FTYPE=0x2L", \
356 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli, \
357 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
358
359 TARGETS += $(BUILD_LIBJLI)
360
361 # On windows, the static library has the same suffix as the import library created by
362 # with the shared library, so the static library is given a different name. No harm
363 # in doing it for all platform to reduce complexity.
364 ifeq ($(OPENJDK_TARGET_OS), windows)
365 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \
366 STATIC_LIBRARY := jli_static, \
367 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
368 SRC := $(LIBJLI_SRC_DIRS), \
369 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
370 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
371 LANG := C, \
372 OPTIMIZATION := HIGH, \
373 CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \
374 DISABLED_WARNINGS_microsoft := 4244 4047 4267, \
375 ARFLAGS := $(ARFLAGS), \
376 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \
377 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
378
379 TARGETS += $(BUILD_LIBJLI_STATIC)
380
381 else ifeq ($(OPENJDK_TARGET_OS), macosx)
382 #
383 # On macosx they do partial (incremental) linking of libjli_static.a
384 # code it here...rather than add support to NativeCompilation
385 # as this is first time I see it
386 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \
387 LIBRARY := jli_static, \
388 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
389 SRC := $(LIBJLI_SRC_DIRS), \
390 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
391 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
392 LANG := C, \
393 OPTIMIZATION := HIGH, \
394 CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
395 DISABLED_WARNINGS_clang := implicit-function-declaration parentheses \
396 int-conversion, \
397 LDFLAGS := -nostdlib -r, \
398 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \
399 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
400
401 $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a: $(BUILD_LIBJLI_STATIC)
402 $(call install-file)
403
404 TARGETS += $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a
405
406 else ifeq ($(OPENJDK_TARGET_OS), aix)
407 # AIX also requires a static libjli because the compiler doesn't support '-rpath'
408 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \
409 STATIC_LIBRARY := jli_static, \
410 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
411 SRC := $(LIBJLI_SRC_DIRS), \
412 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
413 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
414 LANG := C, \
415 OPTIMIZATION := HIGH, \
416 CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \
417 ARFLAGS := $(ARFLAGS), \
418 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static))
419
420 TARGETS += $(BUILD_LIBJLI_STATIC)
421
422 endif
|