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
23 # questions.
24 #
25
26 ##########################################################################################
27 # libfdlibm is statically linked with libjava below and not delivered into the
28 # product on its own.
29
30 BUILD_LIBFDLIBM_OPTIMIZATION := NONE
31
32 ifeq ($(call isTargetOs, solaris), true)
33 BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
34 endif
35
36 # If FDLIBM_CFLAGS is non-empty we know that we can optimize
37 # fdlibm when adding those extra C flags. Currently GCC,
38 # and clang only.
39 ifneq ($(FDLIBM_CFLAGS), )
40 BUILD_LIBFDLIBM_OPTIMIZATION := LOW
41 endif
42
43 LIBFDLIBM_SRC := $(TOPDIR)/src/java.base/share/native/libfdlibm
44 LIBFDLIBM_CFLAGS := -I$(LIBFDLIBM_SRC) $(FDLIBM_CFLAGS)
45
46 $(eval $(call SetupNativeCompilation, BUILD_LIBFDLIBM, \
47 NAME := fdlibm, \
48 TYPE := STATIC_LIBRARY, \
49 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
50 SRC := $(LIBFDLIBM_SRC), \
51 OPTIMIZATION := $(BUILD_LIBFDLIBM_OPTIMIZATION), \
52 CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
53 CFLAGS_windows_debug := -DLOGGING, \
54 CFLAGS_aix := -qfloat=nomaf, \
55 DISABLED_WARNINGS_gcc := sign-compare misleading-indentation array-bounds, \
56 DISABLED_WARNINGS_clang := sign-compare, \
57 DISABLED_WARNINGS_microsoft := 4146 4244 4018, \
58 ARFLAGS := $(ARFLAGS), \
59 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
60 ))
61
62 ##########################################################################################
63
64 LIBVERIFY_OPTIMIZATION := HIGH
65 ifeq ($(call isTargetOs, solaris linux), true)
66 ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true)
67 LIBVERIFY_OPTIMIZATION := LOW
68 endif
69 endif
70
71 $(eval $(call SetupJdkLibrary, BUILD_LIBVERIFY, \
72 NAME := verify, \
73 OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
74 CFLAGS := $(CFLAGS_JDKLIB), \
75 LDFLAGS := $(LDFLAGS_JDKLIB) \
76 $(call SET_SHARED_LIBRARY_ORIGIN), \
77 LIBS_unix := -ljvm, \
78 LIBS_windows := jvm.lib, \
79 ))
80
81 TARGETS += $(BUILD_LIBVERIFY)
82
83 ##########################################################################################
84
85 LIBJAVA_CFLAGS := -DARCHPROPNAME='"$(OPENJDK_TARGET_CPU_OSARCH)"'
86
87 ifeq ($(call isTargetOs, macosx), true)
88 BUILD_LIBJAVA_java_props_md.c_CFLAGS := -x objective-c
89 BUILD_LIBJAVA_java_props_macosx.c_CFLAGS := -x objective-c
90 endif
91
92 $(eval $(call SetupJdkLibrary, BUILD_LIBJAVA, \
93 NAME := java, \
94 OPTIMIZATION := HIGH, \
95 CFLAGS := $(CFLAGS_JDKLIB) \
96 $(LIBJAVA_CFLAGS), \
97 jdk_util.c_CFLAGS := $(VERSION_CFLAGS), \
98 EXTRA_HEADER_DIRS := libfdlibm, \
99 WARNINGS_AS_ERRORS_xlc := false, \
100 DISABLED_WARNINGS_gcc := unused-result unused-function, \
101 DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \
102 LDFLAGS := $(LDFLAGS_JDKLIB) \
103 $(call SET_SHARED_LIBRARY_ORIGIN), \
104 LDFLAGS_macosx := -L$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/, \
105 LDFLAGS_windows := -delayload:shell32.dll, \
106 LIBS := $(BUILD_LIBFDLIBM_TARGET), \
107 LIBS_unix := -ljvm, \
108 LIBS_linux := $(LIBDL), \
109 LIBS_solaris := -lsocket -lnsl -lscf $(LIBDL), \
110 LIBS_aix := $(LIBDL) $(LIBM),\
111 LIBS_macosx := -framework CoreFoundation \
112 -framework Foundation \
113 -framework SystemConfiguration, \
114 LIBS_windows := jvm.lib \
115 shell32.lib delayimp.lib \
116 advapi32.lib version.lib, \
117 ))
118
119 TARGETS += $(BUILD_LIBJAVA)
120
121 $(BUILD_LIBJAVA): $(BUILD_LIBVERIFY)
122
123 $(BUILD_LIBJAVA): $(BUILD_LIBFDLIBM)
124
125 ##########################################################################################
126
127 BUILD_LIBZIP_EXCLUDES :=
128 ifeq ($(USE_EXTERNAL_LIBZ), true)
129 LIBZIP_EXCLUDES += zlib
198 inffast.c \
199 zadler32.c \
200 zcrc32.c \
201 zutil.c \
202 )
203 endif
204
205 $(eval $(call SetupJdkLibrary, BUILD_LIBJLI, \
206 NAME := jli, \
207 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
208 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
209 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
210 OPTIMIZATION := HIGH, \
211 CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
212 DISABLED_WARNINGS_gcc := unused-function implicit-fallthrough, \
213 DISABLED_WARNINGS_clang := sometimes-uninitialized format-nonliteral, \
214 LDFLAGS := $(LDFLAGS_JDKLIB) \
215 $(call SET_SHARED_LIBRARY_ORIGIN), \
216 LIBS_unix := $(LIBZ_LIBS), \
217 LIBS_linux := $(LIBDL) -lpthread, \
218 LIBS_solaris := $(LIBDL), \
219 LIBS_aix := $(LIBDL),\
220 LIBS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \
221 LIBS_windows := advapi32.lib comctl32.lib user32.lib, \
222 ))
223
224 TARGETS += $(BUILD_LIBJLI)
225
226 LIBJLI_SRC_DIRS := $(call FindSrcDirsForComponent, java.base, libjli)
227
228 ifeq ($(call isTargetOs, aix), true)
229 # AIX also requires a static libjli because the compiler doesn't support '-rpath'
230 $(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \
231 NAME := jli_static, \
232 TYPE := STATIC_LIBRARY, \
233 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
234 SRC := $(LIBJLI_SRC_DIRS), \
235 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
236 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
237 OPTIMIZATION := HIGH, \
238 CFLAGS := $(STATIC_LIBRARY_FLAGS) $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS) \
|
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
23 # questions.
24 #
25
26 ##########################################################################################
27 # libfdlibm is statically linked with libjava below and not delivered into the
28 # product on its own.
29
30 BUILD_LIBFDLIBM_OPTIMIZATION := NONE
31
32 # If FDLIBM_CFLAGS is non-empty we know that we can optimize
33 # fdlibm when adding those extra C flags. Currently GCC,
34 # and clang only.
35 ifneq ($(FDLIBM_CFLAGS), )
36 BUILD_LIBFDLIBM_OPTIMIZATION := LOW
37 endif
38
39 LIBFDLIBM_SRC := $(TOPDIR)/src/java.base/share/native/libfdlibm
40 LIBFDLIBM_CFLAGS := -I$(LIBFDLIBM_SRC) $(FDLIBM_CFLAGS)
41
42 $(eval $(call SetupNativeCompilation, BUILD_LIBFDLIBM, \
43 NAME := fdlibm, \
44 TYPE := STATIC_LIBRARY, \
45 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
46 SRC := $(LIBFDLIBM_SRC), \
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 misleading-indentation array-bounds, \
52 DISABLED_WARNINGS_clang := sign-compare, \
53 DISABLED_WARNINGS_microsoft := 4146 4244 4018, \
54 ARFLAGS := $(ARFLAGS), \
55 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
56 ))
57
58 ##########################################################################################
59
60 LIBVERIFY_OPTIMIZATION := HIGH
61 ifeq ($(call isTargetOs, linux), true)
62 ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true)
63 LIBVERIFY_OPTIMIZATION := LOW
64 endif
65 endif
66
67 $(eval $(call SetupJdkLibrary, BUILD_LIBVERIFY, \
68 NAME := verify, \
69 OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
70 CFLAGS := $(CFLAGS_JDKLIB), \
71 LDFLAGS := $(LDFLAGS_JDKLIB) \
72 $(call SET_SHARED_LIBRARY_ORIGIN), \
73 LIBS_unix := -ljvm, \
74 LIBS_windows := jvm.lib, \
75 ))
76
77 TARGETS += $(BUILD_LIBVERIFY)
78
79 ##########################################################################################
80
81 LIBJAVA_CFLAGS := -DARCHPROPNAME='"$(OPENJDK_TARGET_CPU_OSARCH)"'
82
83 ifeq ($(call isTargetOs, macosx), true)
84 BUILD_LIBJAVA_java_props_md.c_CFLAGS := -x objective-c
85 BUILD_LIBJAVA_java_props_macosx.c_CFLAGS := -x objective-c
86 endif
87
88 $(eval $(call SetupJdkLibrary, BUILD_LIBJAVA, \
89 NAME := java, \
90 OPTIMIZATION := HIGH, \
91 CFLAGS := $(CFLAGS_JDKLIB) \
92 $(LIBJAVA_CFLAGS), \
93 jdk_util.c_CFLAGS := $(VERSION_CFLAGS), \
94 EXTRA_HEADER_DIRS := libfdlibm, \
95 WARNINGS_AS_ERRORS_xlc := false, \
96 DISABLED_WARNINGS_gcc := unused-result unused-function, \
97 LDFLAGS := $(LDFLAGS_JDKLIB) \
98 $(call SET_SHARED_LIBRARY_ORIGIN), \
99 LDFLAGS_macosx := -L$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/, \
100 LDFLAGS_windows := -delayload:shell32.dll, \
101 LIBS := $(BUILD_LIBFDLIBM_TARGET), \
102 LIBS_unix := -ljvm, \
103 LIBS_linux := $(LIBDL), \
104 LIBS_aix := $(LIBDL) $(LIBM),\
105 LIBS_macosx := -framework CoreFoundation \
106 -framework Foundation \
107 -framework SystemConfiguration, \
108 LIBS_windows := jvm.lib \
109 shell32.lib delayimp.lib \
110 advapi32.lib version.lib, \
111 ))
112
113 TARGETS += $(BUILD_LIBJAVA)
114
115 $(BUILD_LIBJAVA): $(BUILD_LIBVERIFY)
116
117 $(BUILD_LIBJAVA): $(BUILD_LIBFDLIBM)
118
119 ##########################################################################################
120
121 BUILD_LIBZIP_EXCLUDES :=
122 ifeq ($(USE_EXTERNAL_LIBZ), true)
123 LIBZIP_EXCLUDES += zlib
192 inffast.c \
193 zadler32.c \
194 zcrc32.c \
195 zutil.c \
196 )
197 endif
198
199 $(eval $(call SetupJdkLibrary, BUILD_LIBJLI, \
200 NAME := jli, \
201 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
202 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
203 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
204 OPTIMIZATION := HIGH, \
205 CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
206 DISABLED_WARNINGS_gcc := unused-function implicit-fallthrough, \
207 DISABLED_WARNINGS_clang := sometimes-uninitialized format-nonliteral, \
208 LDFLAGS := $(LDFLAGS_JDKLIB) \
209 $(call SET_SHARED_LIBRARY_ORIGIN), \
210 LIBS_unix := $(LIBZ_LIBS), \
211 LIBS_linux := $(LIBDL) -lpthread, \
212 LIBS_aix := $(LIBDL),\
213 LIBS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \
214 LIBS_windows := advapi32.lib comctl32.lib user32.lib, \
215 ))
216
217 TARGETS += $(BUILD_LIBJLI)
218
219 LIBJLI_SRC_DIRS := $(call FindSrcDirsForComponent, java.base, libjli)
220
221 ifeq ($(call isTargetOs, aix), true)
222 # AIX also requires a static libjli because the compiler doesn't support '-rpath'
223 $(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \
224 NAME := jli_static, \
225 TYPE := STATIC_LIBRARY, \
226 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
227 SRC := $(LIBJLI_SRC_DIRS), \
228 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
229 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
230 OPTIMIZATION := HIGH, \
231 CFLAGS := $(STATIC_LIBRARY_FLAGS) $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS) \
|