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
143 endif
144
145 ################################################################################
146
147 LIBAWT_DIRS := $(JDK_TOPDIR)/src/java.desktop/share/native/libawt \
148 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt \
149 $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
150 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
151 #
152
153 ifeq ($(OPENJDK_TARGET_OS), aix)
154 LIBAWT_DIRS += $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS)/native/libawt
155 endif
156
157 ifeq ($(OPENJDK_TARGET_OS), windows)
158 LIBAWT_DIRS += $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/utility
159 else
160 LIBAWT_EXFILES := java2d/ShaderList.c
161 endif
162
163 ifneq ($(filter $(OPENJDK_TARGET_OS), solaris linux macosx aix), )
164 LIBAWT_EXFILES += awt_Font.c CUPSfuncs.c fontpath.c X11Color.c
165 endif
166
167 ifeq ($(OPENJDK_TARGET_OS), macosx)
168 LIBAWT_EXFILES += initIDs.c awt/image/cvutils/img_colors.c
169 endif
170
171 LIBAWT_CFLAGS += -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
172 $(addprefix -I, $(shell find $(LIBAWT_DIRS) -type d)) \
173 $(LIBJAVA_HEADER_FLAGS) \
174 $(addprefix -I, $(BUILD_LIBMLIB_IMAGE_SRC)) \
175 #
176
177 LIBAWT_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES $(X_CFLAGS)
178
179 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
180 LIBAWT_CFLAGS += -DMLIB_ADD_SUFF
181 LIBAWT_CFLAGS += -xarch=sparcvis
182
183 LIBAWT_CFLAGS += $(JDK_TOPDIR)/src/java.desktop/unix/native/libmlib_image/vis_$(OPENJDK_TARGET_CPU_BITS).il
184 LIBAWT_DIRS += $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/medialib
185 LIBAWT_EXFILES += java2d/loops/MapAccelFunc.c
186
187 ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
188 LIBAWT_ASFLAGS = -P -xarch=v9a
189 else
190 LIBAWT_ASFLAGS = -P -xarch=v8plusa
191 endif
192 else
193 LIBAWT_EXCLUDES += \
194 $(JDK_TOPDIR)/src/java.desktop/unix/native/libawt/awt/medialib \
195 $(JDK_TOPDIR)/src/java.desktop/unix/native/libawt/java2d/loops \
196 $(JDK_TOPDIR)/src/java.desktop/unix/native/common/awt/medialib \
197 #
198 endif
199
200 ifneq ($(OPENJDK_TARGET_OS), solaris)
201 LIBAWT_CFLAGS += -DMLIB_NO_LIBSUNMATH
202 endif
203
204 ifeq ($(OPENJDK_TARGET_OS), windows)
205 LIBAWT_DIRS += $(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
206 $(JDK_TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
207 # Why does libawt need java.base headers?
208 LIBAWT_CFLAGS += -I$(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
209 -I$(JDK_TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
210 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/java2d/opengl \
211 -I$(JDK_TOPDIR)/src/java.desktop/windows/native/include \
212 -I$(JDK_TOPDIR)/src/java.desktop/share/native/include \
213 -I$(SUPPORT_OUTPUTDIR)/headers/java.base \
214 #
215 LIBAWT_EXFILES += \
216 java2d/d3d/D3DShaderGen.c \
217 awt/image/cvutils/img_colors.c \
218 #
219
220 LIBAWT_CFLAGS += -EHsc -DUNICODE -D_UNICODE
221 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
222 LIBAWT_CFLAGS += -DMLIB_OS64BIT
223 endif
337 endif
338 endif
339
340 LIBAWT_XAWT_LIBS := $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst -lXi -ljava -ljvm -lc
341
342 ifeq ($(OPENJDK_TARGET_OS), linux)
343 LIBAWT_XAWT_LIBS += -lpthread
344 endif
345
346 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_XAWT, \
347 LIBRARY := awt_xawt, \
348 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
349 SRC := $(LIBAWT_XAWT_DIRS), \
350 EXCLUDES := $(LIBAWT_XAWT_EXCLUDES), \
351 OPTIMIZATION := LOW, \
352 CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \
353 $(X_CFLAGS), \
354 DISABLED_WARNINGS_gcc := type-limits pointer-to-int-cast \
355 deprecated-declarations unused-result maybe-uninitialized format \
356 format-security int-to-pointer-cast parentheses, \
357 DISABLED_WARNINGS_solstudio := E_DECLARATION_IN_CODE \
358 E_ASSIGNMENT_TYPE_MISMATCH E_NON_CONST_INIT, \
359 WARNINGS_AS_ERRORS_gcc := false, \
360 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt_xawt/mapfile-vers, \
361 LDFLAGS := $(LDFLAGS_JDKLIB) \
362 $(call SET_SHARED_LIBRARY_ORIGIN) \
363 $(call SET_SHARED_LIBRARY_ORIGIN,/..) \
364 -L$(INSTALL_LIBRARIES_HERE), \
365 LIBS := $(X_LIBS) $(LIBAWT_XAWT_LIBS), \
366 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
367 RC_FLAGS := $(RC_FLAGS) \
368 -D "JDK_FNAME=xawt.dll" \
369 -D "JDK_INTERNAL_NAME=xawt" \
370 -D "JDK_FTYPE=0x2L", \
371 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libawt_xawt, \
372 ))
373
374 $(BUILD_LIBAWT_XAWT): $(call FindLib, java.base, java)
375
376 $(BUILD_LIBAWT_XAWT): $(BUILD_LIBAWT)
377
378 TARGETS += $(BUILD_LIBAWT_XAWT)
379
593 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libfontmanager
594 LIBFONTMANAGER_CFLAGS := \
595 $(addprefix -I, $(shell $(FIND) \
596 $(LIBFONTMANAGER_SRC) \
597 $(JDK_TOPDIR)/src/java.desktop/share/native/libawt \
598 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt \
599 $(JDK_TOPDIR)/src/java.desktop/share/native/common \
600 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common -type d)) \
601 -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
602 $(LIBJAVA_HEADER_FLAGS) \
603 #
604
605 #### Begin harfbuzz configuration
606
607 HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN
608
609 ifneq ($(OPENJDK_TARGET_OS), windows)
610 HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
611 -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H
612 endif
613 ifneq (, $(findstring $(OPENJDK_TARGET_OS), linux macosx))
614 HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
615 endif
616 ifeq ($(OPENJDK_TARGET_OS), solaris)
617 HARFBUZZ_CFLAGS += -DHAVE_SOLARIS_ATOMIC_OPS
618 endif
619 ifeq ($(OPENJDK_TARGET_OS), macosx)
620 HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
621 endif
622 ifneq ($(OPENJDK_TARGET_OS), macosx)
623 LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
624 endif
625 # hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
626 LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-ft.cc
627
628 LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)
629
630 #### End harfbuzz configuration
631
632 ifndef OPENJDK
633 LIBFONTMANAGER_CFLAGS += -I$(JDK_TOPDIR)/src/closed/java.desktop/share/native/libt2k
841 LIBJPEG_LIBS := -ljpeg
842 else
843 LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/java.desktop/share/native/libjavajpeg
844 LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/java.desktop/share/native/libjavajpeg
845 endif
846
847 ifeq ($(USE_EXTERNAL_LIBPNG), false)
848 LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/java.desktop/share/native/libsplashscreen/libpng
849 else
850 LIBSPLASHSCREEN_EXCLUDES += libpng
851 endif
852
853 ifneq ($(OPENJDK_TARGET_OS), macosx)
854 LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libsplashscreen
855 else
856 LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/java.desktop/macosx/native/libsplashscreen
857 endif
858
859 LIBSPLASHSCREEN_CFLAGS += -DSPLASHSCREEN -DPNG_NO_MMX_CODE -DPNG_ARM_NEON_OPT=0 \
860 $(addprefix -I, $(LIBSPLASHSCREEN_DIRS)) \
861 $(LIBJAVA_HEADER_FLAGS) \
862 #
863
864 ifeq ($(OPENJDK_TARGET_OS), macosx)
865 LIBSPLASHSCREEN_CFLAGS += -DWITH_MACOSX
866 LIBSPLASHSCREEN_CFLAGS += -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libosxapp
867
868 BUILD_LIBSPLASHSCREEN_java_awt_SplashScreen.c_CFLAGS := -x objective-c -O0
869 BUILD_LIBSPLASHSCREEN_splashscreen_gfx_impl.c_CFLAGS := -x objective-c -O0
870 BUILD_LIBSPLASHSCREEN_splashscreen_gif.c_CFLAGS := -x objective-c -O0
871 BUILD_LIBSPLASHSCREEN_splashscreen_impl.c_CFLAGS := -x objective-c -O0
872 BUILD_LIBSPLASHSCREEN_splashscreen_jpeg.c_CFLAGS := -x objective-c -O0
873 BUILD_LIBSPLASHSCREEN_splashscreen_png.c_CFLAGS := -x objective-c -O0
874 BUILD_LIBSPLASHSCREEN_splashscreen_sys.m_CFLAGS := -O0
875
876 else ifeq ($(OPENJDK_TARGET_OS), windows)
877 LIBSPLASHSCREEN_CFLAGS += -DWITH_WIN32
878 else
879 LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 $(X_CFLAGS)
880 endif
881
882 LIBSPLASHSCREEN_LIBS :=
883
884 ifneq ($(USE_EXTERNAL_LIBZ), true)
885 LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/java.base/share/native/libzip/zlib-1.2.8
886 LIBSPLASHSCREEN_CFLAGS += $(ZLIB_CPPFLAGS)
887 endif
888
889 ifeq ($(OPENJDK_TARGET_OS), macosx)
890 LIBSPLASHSCREEN_LDFLAGS := -L$(INSTALL_LIBRARIES_HERE)
891 LIBSPLASHSCREEN_LIBS += \
892 $(LIBM) -lpthread -liconv -losxapp \
893 -framework ApplicationServices \
894 -framework Foundation \
895 -framework Cocoa \
896 -framework JavaNativeFoundation
897 else ifeq ($(OPENJDK_TARGET_OS), windows)
898 LIBSPLASHSCREEN_LDFLAGS := -delayload:user32.dll
899 LIBSPLASHSCREEN_LIBS += kernel32.lib user32.lib gdi32.lib delayimp.lib
900 else
901 LIBSPLASHSCREEN_LIBS += $(X_LIBS) -lX11 -lXext $(LIBM) -lpthread
902 endif
903
904 $(eval $(call SetupNativeCompilation,BUILD_LIBSPLASHSCREEN, \
905 LIBRARY := splashscreen, \
906 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
907 SRC := $(LIBSPLASHSCREEN_DIRS), \
908 EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
909 EXCLUDES := $(LIBSPLASHSCREEN_EXCLUDES), \
910 OPTIMIZATION := LOW, \
911 CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
912 $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS), \
913 DISABLED_WARNINGS_gcc := sign-compare type-limits unused-result maybe-uninitialized, \
914 DISABLED_WARNINGS_clang := incompatible-pointer-types, \
915 DISABLED_WARNINGS_solstudio := E_NEWLINE_NOT_LAST E_DECLARATION_IN_CODE \
916 E_STATEMENT_NOT_REACHED, \
917 DISABLED_WARNINGS_microsoft := 4018 4244 4267, \
918 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \
919 LDFLAGS := $(LIBSPLASHSCREEN_LDFLAGS) $(LDFLAGS_JDKLIB) \
920 $(call SET_SHARED_LIBRARY_ORIGIN), \
921 LIBS := $(JDKLIB_LIBS) $(LIBSPLASHSCREEN_LIBS) $(LIBZ) \
922 $(GIFLIB_LIBS) $(LIBJPEG_LIBS) $(PNG_LIBS), \
923 LIBS_aix := -liconv, \
924 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
925 RC_FLAGS := $(RC_FLAGS) \
926 -D "JDK_FNAME=splashscreen.dll" \
927 -D "JDK_INTERNAL_NAME=splashscreen" \
928 -D "JDK_FTYPE=0x2L", \
929 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libsplashscreen, \
930 ))
931
932 TARGETS += $(BUILD_LIBSPLASHSCREEN)
933
934 ifeq ($(OPENJDK_TARGET_OS), macosx)
935 $(BUILD_LIBSPLASHSCREEN): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)osxapp$(SHARED_LIBRARY_SUFFIX)
936 endif
937
938 endif
939
940 ################################################################################
941
942 ifeq ($(OPENJDK_TARGET_OS), macosx)
943
|
1 #
2 # Copyright (c) 2011, 2016, 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
143 endif
144
145 ################################################################################
146
147 LIBAWT_DIRS := $(JDK_TOPDIR)/src/java.desktop/share/native/libawt \
148 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt \
149 $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
150 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
151 #
152
153 ifeq ($(OPENJDK_TARGET_OS), aix)
154 LIBAWT_DIRS += $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS)/native/libawt
155 endif
156
157 ifeq ($(OPENJDK_TARGET_OS), windows)
158 LIBAWT_DIRS += $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/utility
159 else
160 LIBAWT_EXFILES := java2d/ShaderList.c
161 endif
162
163 ifneq ($(filter $(OPENJDK_TARGET_OS), solaris linux macosx aix bsd), )
164 LIBAWT_EXFILES += awt_Font.c CUPSfuncs.c fontpath.c X11Color.c
165 endif
166
167 ifeq ($(OPENJDK_TARGET_OS), macosx)
168 LIBAWT_EXFILES += initIDs.c awt/image/cvutils/img_colors.c
169 endif
170
171 LIBAWT_CFLAGS += -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
172 $(addprefix -I, $(shell find $(LIBAWT_DIRS) -type d)) \
173 $(LIBJAVA_HEADER_FLAGS) \
174 $(addprefix -I, $(BUILD_LIBMLIB_IMAGE_SRC)) \
175 #
176
177 LIBAWT_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES $(X_CFLAGS)
178
179 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
180 LIBAWT_CFLAGS += -DMLIB_ADD_SUFF
181 LIBAWT_CFLAGS += -xarch=sparcvis
182
183 LIBAWT_CFLAGS += $(JDK_TOPDIR)/src/java.desktop/unix/native/libmlib_image/vis_$(OPENJDK_TARGET_CPU_BITS).il
184 LIBAWT_DIRS += $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/medialib
185 LIBAWT_EXFILES += java2d/loops/MapAccelFunc.c
186
187 ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
188 LIBAWT_ASFLAGS = -P -xarch=v9a
189 else
190 LIBAWT_ASFLAGS = -P -xarch=v8plusa
191 endif
192 else
193 LIBAWT_EXCLUDES += \
194 $(JDK_TOPDIR)/src/java.desktop/unix/native/libawt/awt/medialib \
195 $(JDK_TOPDIR)/src/java.desktop/unix/native/libawt/java2d/loops \
196 $(JDK_TOPDIR)/src/java.desktop/unix/native/common/awt/medialib \
197 #
198 endif
199
200 ifneq ($(OPENJDK_TARGET_OS), solaris)
201 LIBAWT_CFLAGS += -DMLIB_NO_LIBSUNMATH
202 endif
203
204 ifeq ($(OPENJDK_TARGET_OS), bsd)
205 LIBAWT_CFLAGS += -I$(JDK_TOPDIR)/src/java.desktop/unix/native/libawt_xawt/awt
206 endif
207
208 ifeq ($(OPENJDK_TARGET_OS), windows)
209 LIBAWT_DIRS += $(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
210 $(JDK_TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
211 # Why does libawt need java.base headers?
212 LIBAWT_CFLAGS += -I$(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
213 -I$(JDK_TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
214 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/java2d/opengl \
215 -I$(JDK_TOPDIR)/src/java.desktop/windows/native/include \
216 -I$(JDK_TOPDIR)/src/java.desktop/share/native/include \
217 -I$(SUPPORT_OUTPUTDIR)/headers/java.base \
218 #
219 LIBAWT_EXFILES += \
220 java2d/d3d/D3DShaderGen.c \
221 awt/image/cvutils/img_colors.c \
222 #
223
224 LIBAWT_CFLAGS += -EHsc -DUNICODE -D_UNICODE
225 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
226 LIBAWT_CFLAGS += -DMLIB_OS64BIT
227 endif
341 endif
342 endif
343
344 LIBAWT_XAWT_LIBS := $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst -lXi -ljava -ljvm -lc
345
346 ifeq ($(OPENJDK_TARGET_OS), linux)
347 LIBAWT_XAWT_LIBS += -lpthread
348 endif
349
350 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_XAWT, \
351 LIBRARY := awt_xawt, \
352 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
353 SRC := $(LIBAWT_XAWT_DIRS), \
354 EXCLUDES := $(LIBAWT_XAWT_EXCLUDES), \
355 OPTIMIZATION := LOW, \
356 CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \
357 $(X_CFLAGS), \
358 DISABLED_WARNINGS_gcc := type-limits pointer-to-int-cast \
359 deprecated-declarations unused-result maybe-uninitialized format \
360 format-security int-to-pointer-cast parentheses, \
361 DISABLED_WARNINGS_clang := deprecated-declarations format parentheses int-conversion, \
362 DISABLED_WARNINGS_solstudio := E_DECLARATION_IN_CODE \
363 E_ASSIGNMENT_TYPE_MISMATCH E_NON_CONST_INIT, \
364 WARNINGS_AS_ERRORS_gcc := false, \
365 WARNINGS_AS_ERRORS_clang := false, \
366 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt_xawt/mapfile-vers, \
367 LDFLAGS := $(LDFLAGS_JDKLIB) \
368 $(call SET_SHARED_LIBRARY_ORIGIN) \
369 $(call SET_SHARED_LIBRARY_ORIGIN,/..) \
370 -L$(INSTALL_LIBRARIES_HERE), \
371 LIBS := $(X_LIBS) $(LIBAWT_XAWT_LIBS), \
372 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
373 RC_FLAGS := $(RC_FLAGS) \
374 -D "JDK_FNAME=xawt.dll" \
375 -D "JDK_INTERNAL_NAME=xawt" \
376 -D "JDK_FTYPE=0x2L", \
377 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libawt_xawt, \
378 ))
379
380 $(BUILD_LIBAWT_XAWT): $(call FindLib, java.base, java)
381
382 $(BUILD_LIBAWT_XAWT): $(BUILD_LIBAWT)
383
384 TARGETS += $(BUILD_LIBAWT_XAWT)
385
599 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libfontmanager
600 LIBFONTMANAGER_CFLAGS := \
601 $(addprefix -I, $(shell $(FIND) \
602 $(LIBFONTMANAGER_SRC) \
603 $(JDK_TOPDIR)/src/java.desktop/share/native/libawt \
604 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt \
605 $(JDK_TOPDIR)/src/java.desktop/share/native/common \
606 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common -type d)) \
607 -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
608 $(LIBJAVA_HEADER_FLAGS) \
609 #
610
611 #### Begin harfbuzz configuration
612
613 HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN
614
615 ifneq ($(OPENJDK_TARGET_OS), windows)
616 HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
617 -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H
618 endif
619 ifneq (, $(findstring $(OPENJDK_TARGET_OS), linux macosx bsd))
620 HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
621 endif
622 ifeq ($(OPENJDK_TARGET_OS), solaris)
623 HARFBUZZ_CFLAGS += -DHAVE_SOLARIS_ATOMIC_OPS
624 endif
625 ifeq ($(OPENJDK_TARGET_OS), macosx)
626 HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
627 endif
628 ifneq ($(OPENJDK_TARGET_OS), macosx)
629 LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
630 endif
631 # hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
632 LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-ft.cc
633
634 LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)
635
636 #### End harfbuzz configuration
637
638 ifndef OPENJDK
639 LIBFONTMANAGER_CFLAGS += -I$(JDK_TOPDIR)/src/closed/java.desktop/share/native/libt2k
847 LIBJPEG_LIBS := -ljpeg
848 else
849 LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/java.desktop/share/native/libjavajpeg
850 LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/java.desktop/share/native/libjavajpeg
851 endif
852
853 ifeq ($(USE_EXTERNAL_LIBPNG), false)
854 LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/java.desktop/share/native/libsplashscreen/libpng
855 else
856 LIBSPLASHSCREEN_EXCLUDES += libpng
857 endif
858
859 ifneq ($(OPENJDK_TARGET_OS), macosx)
860 LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libsplashscreen
861 else
862 LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/java.desktop/macosx/native/libsplashscreen
863 endif
864
865 LIBSPLASHSCREEN_CFLAGS += -DSPLASHSCREEN -DPNG_NO_MMX_CODE -DPNG_ARM_NEON_OPT=0 \
866 $(addprefix -I, $(LIBSPLASHSCREEN_DIRS)) \
867 $(LIBJAVA_HEADER_FLAGS) $(ICONV_CFLAGS) \
868 #
869
870 ifeq ($(OPENJDK_TARGET_OS), macosx)
871 LIBSPLASHSCREEN_CFLAGS += -DWITH_MACOSX
872 LIBSPLASHSCREEN_CFLAGS += -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libosxapp
873
874 BUILD_LIBSPLASHSCREEN_java_awt_SplashScreen.c_CFLAGS := -x objective-c -O0
875 BUILD_LIBSPLASHSCREEN_splashscreen_gfx_impl.c_CFLAGS := -x objective-c -O0
876 BUILD_LIBSPLASHSCREEN_splashscreen_gif.c_CFLAGS := -x objective-c -O0
877 BUILD_LIBSPLASHSCREEN_splashscreen_impl.c_CFLAGS := -x objective-c -O0
878 BUILD_LIBSPLASHSCREEN_splashscreen_jpeg.c_CFLAGS := -x objective-c -O0
879 BUILD_LIBSPLASHSCREEN_splashscreen_png.c_CFLAGS := -x objective-c -O0
880 BUILD_LIBSPLASHSCREEN_splashscreen_sys.m_CFLAGS := -O0
881
882 else ifeq ($(OPENJDK_TARGET_OS), windows)
883 LIBSPLASHSCREEN_CFLAGS += -DWITH_WIN32
884 else
885 LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 $(X_CFLAGS)
886 endif
887
888 LIBSPLASHSCREEN_LIBS :=
889
890 ifneq ($(USE_EXTERNAL_LIBZ), true)
891 LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/java.base/share/native/libzip/zlib-1.2.8
892 LIBSPLASHSCREEN_CFLAGS += $(ZLIB_CPPFLAGS)
893 endif
894
895 ifeq ($(OPENJDK_TARGET_OS), macosx)
896 LIBSPLASHSCREEN_LDFLAGS := -L$(INSTALL_LIBRARIES_HERE)
897 LIBSPLASHSCREEN_LIBS += \
898 $(LIBM) -lpthread $(ICONV_LIBS) -losxapp \
899 -framework ApplicationServices \
900 -framework Foundation \
901 -framework Cocoa \
902 -framework JavaNativeFoundation
903 else ifeq ($(OPENJDK_TARGET_OS), windows)
904 LIBSPLASHSCREEN_LDFLAGS := -delayload:user32.dll
905 LIBSPLASHSCREEN_LIBS += kernel32.lib user32.lib gdi32.lib delayimp.lib
906 else
907 LIBSPLASHSCREEN_LIBS += $(X_LIBS) -lX11 -lXext $(LIBM) -lpthread
908 endif
909
910 $(eval $(call SetupNativeCompilation,BUILD_LIBSPLASHSCREEN, \
911 LIBRARY := splashscreen, \
912 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
913 SRC := $(LIBSPLASHSCREEN_DIRS), \
914 EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
915 EXCLUDES := $(LIBSPLASHSCREEN_EXCLUDES), \
916 OPTIMIZATION := LOW, \
917 CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
918 $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS), \
919 DISABLED_WARNINGS_gcc := sign-compare type-limits unused-result maybe-uninitialized, \
920 DISABLED_WARNINGS_clang := incompatible-pointer-types, \
921 DISABLED_WARNINGS_solstudio := E_NEWLINE_NOT_LAST E_DECLARATION_IN_CODE \
922 E_STATEMENT_NOT_REACHED, \
923 DISABLED_WARNINGS_microsoft := 4018 4244 4267, \
924 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \
925 LDFLAGS := $(LIBSPLASHSCREEN_LDFLAGS) $(LDFLAGS_JDKLIB) \
926 $(call SET_SHARED_LIBRARY_ORIGIN), \
927 LIBS := $(JDKLIB_LIBS) $(LIBSPLASHSCREEN_LIBS) $(LIBZ) \
928 $(GIFLIB_LIBS) $(LIBJPEG_LIBS) $(PNG_LIBS), \
929 LIBS_aix := $(ICONV_LIBS), \
930 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
931 RC_FLAGS := $(RC_FLAGS) \
932 -D "JDK_FNAME=splashscreen.dll" \
933 -D "JDK_INTERNAL_NAME=splashscreen" \
934 -D "JDK_FTYPE=0x2L", \
935 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libsplashscreen, \
936 ))
937
938 TARGETS += $(BUILD_LIBSPLASHSCREEN)
939
940 ifeq ($(OPENJDK_TARGET_OS), macosx)
941 $(BUILD_LIBSPLASHSCREEN): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)osxapp$(SHARED_LIBRARY_SUFFIX)
942 endif
943
944 endif
945
946 ################################################################################
947
948 ifeq ($(OPENJDK_TARGET_OS), macosx)
949
|