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
23 # questions.
24 #
25
26 WIN_AWT_LIB := $(JDK_OUTPUTDIR)/objs/libawt/awt.lib
27
28 ################################################################################
29
30 BUILD_LIBMLIB_SRC := $(JDK_TOPDIR)/src/java.desktop/share/native/libmlib_image \
31 $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/medialib
32 BUILD_LIBMLIB_CFLAGS := -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES \
33 $(addprefix -I, $(BUILD_LIBMLIB_SRC)) \
34 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libmlib_image
35
36 BUILD_LIBMLIB_LDLIBS :=
37 BUILD_LIBMLIB_IMAGE_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libmlib_image/mapfile-vers
38
39 BUILD_LIBMLIB_CFLAGS += -DMLIB_NO_LIBSUNMATH
40
41 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
42 BUILD_LIBMLIB_CFLAGS += -DMLIB_OS64BIT
43 endif
44
45 ifneq ($(OPENJDK_TARGET_OS), windows)
46 BUILD_LIBMLIB_LDLIBS += $(LIBM) $(LIBDL)
49 $(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE, \
50 LIBRARY := mlib_image, \
51 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
52 SRC := $(BUILD_LIBMLIB_SRC), \
53 EXCLUDE_FILES := mlib_c_ImageBlendTable.c, \
54 LANG := C, \
55 OPTIMIZATION := HIGHEST, \
56 CFLAGS := $(CFLAGS_JDKLIB) \
57 $(BUILD_LIBMLIB_CFLAGS), \
58 MAPFILE := $(BUILD_LIBMLIB_IMAGE_MAPFILE), \
59 LDFLAGS := $(LDFLAGS_JDKLIB) \
60 $(call SET_SHARED_LIBRARY_ORIGIN), \
61 LDFLAGS_SUFFIX := $(BUILD_LIBMLIB_LDLIBS) \
62 $(LDFLAGS_JDKLIB_SUFFIX), \
63 LDFLAGS_SUFFIX_solaris := -lc, \
64 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
65 RC_FLAGS := $(RC_FLAGS) \
66 -D "JDK_FNAME=mlib_image.dll" \
67 -D "JDK_INTERNAL_NAME=mlib_image" \
68 -D "JDK_FTYPE=0x2L", \
69 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libmlib_image, \
70 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
71
72 $(BUILD_LIBMLIB_IMAGE): $(BUILD_LIBJAVA)
73
74 DESKTOP_LIBRARIES += $(BUILD_LIBMLIB_IMAGE)
75
76 ################################################################################
77
78 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
79
80 LIBMLIB_IMAGE_V_SRC := $(JDK_TOPDIR)/src/java.desktop/share/native/libmlib_image \
81 $(JDK_TOPDIR)/src/java.desktop/unix/native/libmlib_image \
82 $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/medialib \
83 $(JDK_TOPDIR)/src/java.desktop/unix/native/common/awt/medialib \
84 #
85 LIBMLIB_IMAGE_V_CFLAGS := $(JDK_TOPDIR)/src/java.desktop/unix/native/libmlib_image/vis_$(OPENJDK_TARGET_CPU_BITS).il \
86 $(addprefix -I, $(LIBMLIB_IMAGE_V_SRC)) \
87 #
88
89 BUILD_LIBMLIB_IMAGE_V_EXFILES := \
90 awt_ImagingLib.c \
91 mlib_c_ImageAffine_BC.c \
92 mlib_c_ImageAffine_BC_S16.c \
93 mlib_c_ImageAffine_BC_U16.c \
94 mlib_c_ImageAffine_BL.c \
115 mlib_v_ImageCopy_blk.s \
116 #
117
118 LIBMLIB_IMAGE_V_CFLAGS += $(filter-out -DMLIB_NO_LIBSUNMATH, $(BUILD_LIBMLIB_CFLAGS))
119
120 $(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE_V, \
121 LIBRARY := mlib_image_v, \
122 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
123 SRC := $(LIBMLIB_IMAGE_V_SRC), \
124 LANG := C, \
125 EXCLUDE_FILES := $(BUILD_LIBMLIB_IMAGE_V_EXFILES), \
126 OPTIMIZATION := HIGHEST, \
127 CFLAGS := -xarch=sparcvis \
128 $(LIBMLIB_IMAGE_V_CFLAGS) \
129 $(CFLAGS_JDKLIB), \
130 MAPFILE := $(BUILD_LIBMLIB_IMAGE_MAPFILE), \
131 LDFLAGS := $(LDFLAGS_JDKLIB) \
132 $(BUILD_LIBMLIB_LDLIBS) -ljava -ljvm \
133 $(call SET_SHARED_LIBRARY_ORIGIN), \
134 LDFLAGS_SUFFIX_solaris := -lc, \
135 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libmlib_image_v, \
136 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
137
138 $(BUILD_LIBMLIB_IMAGE_V): $(BUILD_LIBJAVA)
139
140 DESKTOP_LIBRARIES += $(BUILD_LIBMLIB_IMAGE_V)
141
142 endif
143
144 ################################################################################
145
146 LIBAWT_DIRS := $(JDK_TOPDIR)/src/java.desktop/share/native/libawt \
147 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt \
148 $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
149 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/awt \
150 #
151
152 ifeq ($(OPENJDK_TARGET_OS), aix)
153 LIBAWT_DIRS += $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS)/native/libawt
154 endif
155
156 ifeq ($(OPENJDK_TARGET_OS), windows)
157 LIBAWT_DIRS += $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/utility
158 else
159 LIBAWT_EXFILES := java2d/ShaderList.c
160 endif
161
162 ifneq ($(filter $(OPENJDK_TARGET_OS), solaris linux macosx aix), )
163 LIBAWT_EXFILES += awt_Font.c CUPSfuncs.c fontpath.c X11Color.c
164 endif
165
166 ifeq ($(OPENJDK_TARGET_OS), macosx)
167 LIBAWT_EXFILES += initIDs.c awt/image/cvutils/img_colors.c
168 endif
169
170 LIBAWT_CFLAGS += -I$(JDK_OUTPUTDIR)/gensrc_headers/java.desktop \
171 $(addprefix -I, $(shell find $(LIBAWT_DIRS) -type d)) \
172 $(LIBJAVA_HEADER_FLAGS) \
173 $(addprefix -I, $(BUILD_LIBMLIB_IMAGE_SRC)) \
174 #
175
176 LIBAWT_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES $(X_CFLAGS)
177
178 ifeq ($(OPENJDK_TARGET_OS), macosx)
179 endif
180
181 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
182 LIBAWT_CFLAGS += -DMLIB_ADD_SUFF
183 LIBAWT_CFLAGS += -xarch=sparcvis
184
185 LIBAWT_CFLAGS += $(JDK_TOPDIR)/src/java.desktop/unix/native/libmlib_image/vis_$(OPENJDK_TARGET_CPU_BITS).il
186 LIBAWT_DIRS += $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/medialib
187 LIBAWT_EXFILES += java2d/loops/MapAccelFunc.c
188
189 ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
190 LIBAWT_ASFLAGS = -P -xarch=v9a
197 $(JDK_TOPDIR)/src/java.desktop/unix/native/libawt/java2d/loops \
198 $(JDK_TOPDIR)/src/java.desktop/unix/native/common/awt/medialib \
199 #
200 endif
201
202 ifneq ($(OPENJDK_TARGET_OS), solaris)
203 LIBAWT_CFLAGS += -DMLIB_NO_LIBSUNMATH
204 endif
205
206 LIBAWT_LANG := C
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_API_DIR)/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$(JDK_OUTPUTDIR)/gensrc_headers/java.base \
218 #
219 LIBAWT_EXFILES += \
220 java2d/d3d/D3DShaderGen.c \
221 awt/image/cvutils/img_colors.c \
222 #
223
224 LIBAWT_LANG := C++
225 LIBAWT_CFLAGS += -EHsc -DUNICODE -D_UNICODE
226 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
227 LIBAWT_CFLAGS += -DMLIB_OS64BIT
228 endif
229
230 ifdef OPENJDK
231 LIBAWT_RC_FLAGS := -i "$(JDK_TOPDIR)/src/java.base/windows/native/launcher/icons"
232 else
233 LIBAWT_RC_FLAGS := -i "$(JDK_TOPDIR)/src/closed/java.base/windows/native/launcher/icons"
234 endif
235 LIBAWT_VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/java.desktop/windows/native/libawt/windows/awt.rc
236 endif
237
242 LIBAWT_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt/mapfile-vers
243 ifeq ($(OPENJDK_TARGET_OS), linux)
244 LIBAWT_MAPFILE :=
245 endif
246
247 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT, \
248 LIBRARY := awt, \
249 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
250 SRC := $(LIBAWT_DIRS), \
251 EXCLUDES := $(LIBAWT_EXCLUDES), \
252 EXCLUDE_FILES := $(LIBAWT_EXFILES), \
253 LANG := $(LIBAWT_LANG), \
254 OPTIMIZATION := LOW, \
255 CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_CFLAGS), \
256 ASFLAGS := $(LIBAWT_ASFLAGS), \
257 MAPFILE := $(LIBAWT_MAPFILE), \
258 LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN), \
259 LDFLAGS_SUFFIX_linux := -ljvm $(LIBM) $(LIBDL) -ljava, \
260 LDFLAGS_SUFFIX_solaris := -ljvm $(LIBM) $(LIBDL) -ljava -lc, \
261 LDFLAGS_SUFFIX_aix :=-ljvm $(LIBM) $(LIBDL) -ljava -lm,\
262 LDFLAGS_SUFFIX_macosx := -lmlib_image -ljvm $(LIBM) \
263 -framework Cocoa \
264 -framework OpenGL \
265 -framework JavaNativeFoundation \
266 -framework JavaRuntimeSupport \
267 -framework ApplicationServices \
268 -framework AudioToolbox \
269 -ljava, \
270 LDFLAGS_SUFFIX_windows := kernel32.lib user32.lib gdi32.lib winspool.lib \
271 imm32.lib ole32.lib uuid.lib shell32.lib \
272 comdlg32.lib winmm.lib comctl32.lib shlwapi.lib \
273 delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib \
274 -DELAYLOAD:user32.dll -DELAYLOAD:gdi32.dll \
275 -DELAYLOAD:shell32.dll -DELAYLOAD:winmm.dll \
276 -DELAYLOAD:winspool.drv -DELAYLOAD:imm32.dll \
277 -DELAYLOAD:ole32.dll -DELAYLOAD:comdlg32.dll \
278 -DELAYLOAD:comctl32.dll -DELAYLOAD:shlwapi.dll, \
279 VERSIONINFO_RESOURCE := $(LIBAWT_VERSIONINFO_RESOURCE), \
280 RC_FLAGS := $(RC_FLAGS) $(LIBAWT_RC_FLAGS) \
281 -D "JDK_FNAME=awt.dll" \
282 -D "JDK_INTERNAL_NAME=awt" \
283 -D "JDK_FTYPE=0x2L", \
284 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt, \
285 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
286
287 $(BUILD_LIBAWT): $(BUILD_LIBJAVA)
288
289 ifeq ($(OPENJDK_TARGET_OS), macosx)
290 $(BUILD_LIBAWT): $(BUILD_LIBMLIB_IMAGE)
291 endif
292
293 DESKTOP_LIBRARIES += $(BUILD_LIBAWT)
294
295 ################################################################################
296
297 ifeq ($(findstring $(OPENJDK_TARGET_OS),windows macosx),)
298 ifndef BUILD_HEADLESS_ONLY
299
300 LIBAWT_XAWT_DIRS := \
301 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt_xawt \
302 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libjawt \
303 $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
304 $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/utility \
305 $(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
306 $(JDK_TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
307 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/java2d/opengl \
308 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/java2d/x11 \
309 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/awt \
310 #
311
312 LIBAWT_XAWT_EXCLUDES := medialib
313
314 LIBAWT_XAWT_CFLAGS := $(addprefix -I, $(shell $(FIND) $(LIBAWT_XAWT_DIRS) -type d)) \
315 -I$(JDK_OUTPUTDIR)/gensrc_headers/java.desktop \
316 -I$(JDK_TOPDIR)/src/java.desktop/share/native/include \
317 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS)/native/include \
318 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/include \
319 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d \
320 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt/java2d \
321 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d/loops \
322 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d/pipe \
323 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
324 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image \
325 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libsunwjdga \
326 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/font \
327 $(LIBJAVA_HEADER_FLAGS)
328 #
329
330 LIBAWT_XAWT_CFLAGS += -DXAWT -DXAWT_HACK \
331 -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
332 $(CUPS_CFLAGS)
333
334 ifeq ($(OPENJDK_TARGET_OS), solaris)
335 LIBAWT_XAWT_CFLAGS += -DFUNCPROTO=15
348 LIBAWT_XAWT_LDFLAGS_SUFFIX := $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst -lXi -ljava -ljvm -lc
349
350 ifeq ($(OPENJDK_TARGET_OS), linux)
351 # To match old build, add this to LDFLAGS instead of suffix.
352 LIBAWT_XAWT_LDFLAGS += -lpthread
353 endif
354
355 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_XAWT, \
356 LIBRARY := awt_xawt, \
357 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
358 SRC := $(LIBAWT_XAWT_DIRS), \
359 EXCLUDES := $(LIBAWT_XAWT_EXCLUDES), \
360 LANG := C, \
361 OPTIMIZATION := LOW, \
362 CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \
363 $(X_CFLAGS), \
364 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt_xawt/mapfile-vers, \
365 LDFLAGS := $(LDFLAGS_JDKLIB) \
366 $(X_LIBS) $(LIBAWT_XAWT_LDFLAGS) \
367 $(call SET_SHARED_LIBRARY_ORIGIN) \
368 $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
369 LDFLAGS_SUFFIX := $(LIBAWT_XAWT_LDFLAGS_SUFFIX), \
370 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
371 RC_FLAGS := $(RC_FLAGS) \
372 -D "JDK_FNAME=xawt.dll" \
373 -D "JDK_INTERNAL_NAME=xawt" \
374 -D "JDK_FTYPE=0x2L", \
375 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_xawt, \
376 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
377
378 $(BUILD_LIBAWT_XAWT): $(BUILD_LIBJAVA)
379
380 $(BUILD_LIBAWT_XAWT): $(BUILD_LIBAWT)
381
382 DESKTOP_LIBRARIES += $(BUILD_LIBAWT_XAWT)
383
384 endif
385 endif
386
387 ################################################################################
388
389 LIBLCMS_SRC := $(JDK_TOPDIR)/src/java.desktop/share/native/liblcms
390 LIBLCMS_CPPFLAGS += -I$(JDK_OUTPUTDIR)/gensrc_headers/java.desktop \
391 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d \
392 -I$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
393 $(LIBJAVA_HEADER_FLAGS) \
394 #
395
396 ifeq ($(USE_EXTERNAL_LCMS), true)
397 # If we're using an external library, we'll just need the wrapper part.
398 # By including it explicitely, all other files will be excluded.
399 BUILD_LIBLCMS_INCLUDE_FILES := LCMS.c
400 else
401 BUILD_LIBLCMS_INCLUDE_FILES :=
402 # If we're using the bundled library, we'll need to include it in the
403 # include path explicitly. Otherwise the system headers will be used.
404 LIBLCMS_CPPFLAGS += $(addprefix -I, $(LIBLCMS_SRC))
405 endif
406
407 $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \
408 LIBRARY := lcms, \
409 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
410 SRC := $(LIBLCMS_SRC), \
411 INCLUDE_FILES := $(BUILD_LIBLCMS_INCLUDE_FILES), \
412 LANG := C, \
413 OPTIMIZATION := HIGHEST, \
414 CFLAGS := $(filter-out -xc99=%none, $(CFLAGS_JDKLIB)) \
415 $(SHARED_LIBRARY_FLAGS) $(LIBLCMS_CPPFLAGS) \
416 $(LCMS_CFLAGS), \
417 CFLAGS_solaris := -xc99=no_lib, \
418 CFLAGS_windows := -DCMS_IS_WINDOWS_, \
419 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/liblcms/mapfile-vers, \
420 LDFLAGS := $(LDFLAGS_JDKLIB) \
421 $(call SET_SHARED_LIBRARY_ORIGIN), \
422 LDFLAGS_solaris := /usr/lib$(OPENJDK_TARGET_CPU_ISADIR)/libm.so.2, \
423 LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
424 LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc $(LCMS_LIBS), \
425 LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm $(LCMS_LIBS), \
426 LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm $(LCMS_LIBS), \
427 LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm $(LCMS_LIBS),\
428 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
429 RC_FLAGS := $(RC_FLAGS) \
430 -D "JDK_FNAME=lcms.dll" \
431 -D "JDK_INTERNAL_NAME=lcms" \
432 -D "JDK_FTYPE=0x2L", \
433 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/liblcms, \
434 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
435
436 DESKTOP_LIBRARIES += $(BUILD_LIBLCMS)
437
438 $(BUILD_LIBLCMS): $(BUILD_LIBAWT)
439
440 ################################################################################
441
442 ifdef OPENJDK
443 BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers
444 else
445 BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed
446 LIBJAVAJPEG_SRC += $(JDK_TOPDIR)/src/closed/java.desktop/share/native/libjavajpeg
447 endif
448
449 LIBJAVAJPEG_SRC += $(JDK_TOPDIR)/src/java.desktop/share/native/libjavajpeg
450
451 BUILD_LIBJAVAJPEG_REORDER :=
452 ifeq ($(OPENJDK_TARGET_OS), solaris)
453 ifneq ($(OPENJDK_TARGET_CPU), x86_64)
454 BUILD_LIBJAVAJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
455 endif
456 endif
475 LIBJPEG_LIBS := -ljpeg
476 BUILD_LIBJAVAJPEG_INCLUDE_FILES := \
477 imageIOJPEG.c \
478 jpegdecoder.c
479 BUILD_LIBJAVAJPEG_HEADERS :=
480 else
481 LIBJPEG_LIBS :=
482 BUILD_LIBJAVAJPEG_INCLUDE_FILES :=
483 BUILD_LIBJAVAJPEG_HEADERS := $(addprefix -I, $(LIBJAVAJPEG_SRC))
484 endif
485
486 $(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG, \
487 LIBRARY := javajpeg, \
488 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
489 SRC := $(LIBJAVAJPEG_SRC), \
490 INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \
491 LANG := C, \
492 OPTIMIZATION := HIGHEST, \
493 CFLAGS := $(CFLAGS_JDKLIB) $(addprefix -I, $(LIBJAVAJPEG_SRC)) \
494 $(LIBJAVA_HEADER_FLAGS) \
495 -I$(JDK_OUTPUTDIR)/gensrc_headers/java.desktop, \
496 MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \
497 LDFLAGS := $(LDFLAGS_JDKLIB) $(LIBJPEG_LIBS) \
498 $(call SET_SHARED_LIBRARY_ORIGIN), \
499 LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \
500 LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
501 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
502 RC_FLAGS := $(RC_FLAGS) \
503 -D "JDK_FNAME=javajpeg.dll" \
504 -D "JDK_INTERNAL_NAME=javajpeg" \
505 -D "JDK_FTYPE=0x2L", \
506 REORDER := $(BUILD_LIBJAVAJPEG_REORDER), \
507 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjavajpeg, \
508 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
509
510 $(BUILD_LIBJAVAJPEG): $(BUILD_LIBJAVA)
511
512 DESKTOP_LIBRARIES += $(BUILD_LIBJAVAJPEG)
513
514 ################################################################################
515
516 LIBFONTMANAGER_SRC := $(JDK_TOPDIR)/src/java.desktop/share/native/libfontmanager \
517 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libfontmanager
518 LIBFONTMANAGER_CFLAGS := \
519 $(addprefix -I, $(shell $(FIND) \
520 $(LIBFONTMANAGER_SRC) \
521 $(JDK_TOPDIR)/src/java.desktop/share/native/libawt \
522 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt \
523 $(JDK_TOPDIR)/src/java.desktop/share/native/common \
524 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common -type d)) \
525 -I$(JDK_OUTPUTDIR)/gensrc_headers/java.desktop \
526 $(LIBJAVA_HEADER_FLAGS) \
527 #
528
529 ifndef OPENJDK
530 LIBFONTMANAGER_CFLAGS += -I$(JDK_TOPDIR)/src/closed/java.desktop/share/native/libt2k
531 BUILD_LIBFONTMANAGER_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libfontmanager/mapfile-vers
532 LIBFONTMANAGER_EXCLUDE_FILES += freetypeScaler.c
533 else
534 LIBFONTMANAGER_CFLAGS += $(FREETYPE_CFLAGS)
535 BUILD_LIBFONTMANAGER_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libfontmanager/mapfile-vers.openjdk
536 BUILD_LIBFONTMANAGER_FONTLIB := $(FREETYPE_LIBS)
537 endif
538
539 LIBFONTMANAGER_OPTIMIZATION := HIGH
540
541 ifeq ($(OPENJDK_TARGET_OS), windows)
542 LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
543 X11TextRenderer.c
544 LIBFONTMANAGER_OPTIMIZATION := HIGHEST
545 LIBFONTMANAGER_CFLAGS += -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt/windows
561 endif
562
563 # Libfontmanager doesn't actually need X_LIBS to link, but if building
564 # on a Solaris machine without X installed, using a devkit, linking
565 # to libawt_xawt will fail without the -L parameters from X_LIBS. Filter
566 # out the -R parameters since they aren't needed.
567 $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
568 LIBRARY := fontmanager, \
569 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
570 SRC := $(LIBFONTMANAGER_SRC), \
571 EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
572 AccelGlyphCache.c, \
573 LANG := C++, \
574 CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
575 CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
576 OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
577 CFLAGS_windows = -DCC_NOEX, \
578 MAPFILE := $(BUILD_LIBFONTMANAGER_MAPFILE), \
579 LDFLAGS := $(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK) \
580 $(call SET_SHARED_LIBRARY_ORIGIN), \
581 LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \
582 LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
583 LDFLAGS_SUFFIX_solaris := $(filter-out -R%, $(X_LIBS)) \
584 -lawt -lawt_xawt -lc $(LIBM) $(LIBCXX) -ljava -ljvm, \
585 LDFLAGS_SUFFIX_aix := -lawt -lawt_xawt $(LIBM) $(LIBCXX) -ljava -ljvm,\
586 LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \
587 -ljava -ljvm, \
588 LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
589 $(WIN_AWT_LIB), \
590 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
591 RC_FLAGS := $(RC_FLAGS) \
592 -D "JDK_FNAME=fontmanager.dll" \
593 -D "JDK_INTERNAL_NAME=fontmanager" \
594 -D "JDK_FTYPE=0x2L", \
595 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfontmanager, \
596 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
597
598 $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
599
600 ifneq (, $(findstring $(OPENJDK_TARGET_OS), solaris aix))
601 $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT_XAWT)
602 endif
603
604 DESKTOP_LIBRARIES += $(BUILD_LIBFONTMANAGER)
605
606 ################################################################################
607
608 ifeq ($(OPENJDK_TARGET_OS), windows)
609 LIBJAWT_SRC := $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libjawt
610 LIBJAWT_CFLAGS := -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt/windows \
611 -I$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
612 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d \
613 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
614 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt/java2d/windows \
615 -I$(JDK_OUTPUTDIR)/gensrc_headers/java.desktop \
616 -I$(JDK_TOPDIR)/src/java.desktop/windows/native/include \
617 -I$(JDK_TOPDIR)/src/java.desktop/share/native/include \
618 $(LIBJAVA_HEADER_FLAGS) \
619 #
620
621 ifeq ($(OPENJDK_TARGET_CPU), x86)
622 KERNEL32_LIB := kernel32.lib
623 endif
624 $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \
625 LIBRARY := jawt, \
626 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
627 SRC := $(LIBJAWT_SRC), \
628 INCLUDE_FILES := $(LIBJAWT_INCLUDE_FILES), \
629 LANG := C++, \
630 OPTIMIZATION := LOW, \
631 CFLAGS := $(CXXFLAGS_JDKLIB) \
632 -EHsc -DUNICODE -D_UNICODE \
633 $(LIBJAWT_CFLAGS), \
634 LDFLAGS := $(LDFLAGS_JDKLIB) $(KERNEL32_LIB) $(LDFLAGS_CXX_JDK) \
635 advapi32.lib $(WIN_AWT_LIB), \
636 LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
637 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
638 RC_FLAGS := $(RC_FLAGS) \
639 -D "JDK_FNAME=jawt.dll" \
640 -D "JDK_INTERNAL_NAME=jawt" \
641 -D "JDK_FTYPE=0x2L", \
642 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawt, \
643 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
644
645 $(BUILD_LIBJAWT): $(BUILD_LIBAWT)
646
647 $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX): $(BUILD_LIBJAWT)
648 $(ECHO) Copying $(@F)
649 $(CP) $(JDK_OUTPUTDIR)/objs/libjawt/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) $@
650
651 DESKTOP_LIBRARIES += $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX)
652
653 else # OPENJDK_TARGET_OS not windows
654
655 ifeq ($(OPENJDK_TARGET_OS), macosx)
656 LIBJAWT_SRC := $(JDK_TOPDIR)/src/java.desktop/macosx/native/libjawt
657 else
658 LIBJAWT_SRC := $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libjawt
659 endif
660 LIBJAWT_CFLAGS := \
661 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/awt \
662 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS)/native/include \
663 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/include \
664 -I$(JDK_TOPDIR)/src/java.desktop/share/native/include \
665 $(LIBJAVA_HEADER_FLAGS) \
666 #
667
668 ifeq ($(OPENJDK_TARGET_OS), macosx)
669 JAWT_LIBS := -lawt_lwawt
670 else
671 JAWT_LIBS :=
677 else
678 JAWT_LIBS += -lawt_headless
679 HEADLESS_CFLAG += -DHEADLESS
680 endif
681 endif
682
683 $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \
684 LIBRARY := jawt, \
685 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
686 SRC := $(LIBJAWT_SRC), \
687 INCLUDE_FILES := $(JAWT_FILES), \
688 LANG := C, \
689 OPTIMIZATION := LOW, \
690 CFLAGS := $(CFLAGS_JDKLIB) \
691 $(LIBJAWT_CFLAGS), \
692 CFLAGS_linux := $(HEADLESS_CFLAG), \
693 CFLAGS_macosx := $(LIBJAWT_CFLAGS_macosx), \
694 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjawt/mapfile-vers, \
695 LDFLAGS := $(LDFLAGS_JDKLIB) \
696 $(call SET_SHARED_LIBRARY_ORIGIN), \
697 LDFLAGS_solaris := $(X_LIBS), \
698 LDFLAGS_SUFFIX_linux := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \
699 LDFLAGS_SUFFIX_aix := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX),\
700 LDFLAGS_SUFFIX_solaris := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender, \
701 LDFLAGS_SUFFIX_macosx := -Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \
702 -framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX), \
703 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawt, \
704 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
705
706 ifndef BUILD_HEADLESS_ONLY
707 $(BUILD_LIBJAWT): $(BUILD_LIBAWT_XAWT)
708 else
709 $(BUILD_LIBJAWT): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_headless$(SHARED_LIBRARY_SUFFIX)
710 endif
711
712 ifeq ($(OPENJDK_TARGET_OS), macosx)
713 $(BUILD_LIBJAWT): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_lwawt$(SHARED_LIBRARY_SUFFIX)
714 endif
715
716 endif # OPENJDK_TARGET_OS
717
718 DESKTOP_LIBRARIES += $(BUILD_LIBJAWT)
719
720 ################################################################################
721
722 ifeq ($(BUILD_HEADLESS), true)
723 # Mac and Windows only use the native AWT lib, do not build libawt_headless
724 ifeq ($(findstring $(OPENJDK_TARGET_OS), windows macosx),)
725
726 LIBAWT_HEADLESS_DIRS := $(JDK_TOPDIR)/src/java.desktop/unix/native/libawt_headless/awt \
727 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/awt \
728 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/java2d/opengl \
729 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/java2d/x11 \
730 $(JDK_TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
731 $(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
732 #
733
734 LIBAWT_HEADLESS_EXCLUDES := medialib
735 LIBAWT_HEADLESS_CFLAGS := -I$(JDK_OUTPUTDIR)/gensrc_headers/java.desktop \
736 $(addprefix -I, $(LIBAWT_HEADLESS_DIRS)) \
737 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d \
738 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d/loops \
739 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
740 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d/pipe \
741 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image \
742 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt/java2d \
743 -I$(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
744 -I$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
745 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/font \
746 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libsunwjdga/ \
747 $(LIBJAVA_HEADER_FLAGS) \
748 #
749
750 LIBAWT_HEADLESS_REORDER :=
751 ifeq ($(OPENJDK_TARGET_OS), solaris)
752 ifneq ($(OPENJDK_TARGET_CPU), x86_64)
753 LIBAWT_HEADLESS_REORDER := $(JDK_TOPDIR)/make/mapfiles/libawt_headless/reorder-$(OPENJDK_TARGET_CPU)
754 endif
755 endif
756
757 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_HEADLESS, \
758 LIBRARY := awt_headless, \
759 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
760 SRC := $(LIBAWT_HEADLESS_DIRS), \
761 EXCLUDES := $(LIBAWT_HEADLESS_EXCLUDES), \
762 LANG := C, \
763 OPTIMIZATION := LOW, \
764 CFLAGS := $(CFLAGS_JDKLIB) \
765 -DHEADLESS=true \
766 -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
767 $(CUPS_CFLAGS) \
768 $(X_CFLAGS) \
769 $(LIBAWT_HEADLESS_CFLAGS), \
770 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt_headless/mapfile-vers, \
771 LDFLAGS := $(LDFLAGS_JDKLIB) \
772 $(call SET_SHARED_LIBRARY_ORIGIN), \
773 LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
774 LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
775 LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN)., \
776 REORDER := $(LIBAWT_HEADLESS_REORDER), \
777 LDFLAGS_SUFFIX_linux := -ljvm -lawt -lm $(LIBDL) -ljava, \
778 LDFLAGS_SUFFIX_aix := -ljvm -lawt -ljava,\
779 LDFLAGS_SUFFIX_solaris := $(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc, \
780 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_headless, \
781 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
782
783 $(BUILD_LIBAWT_HEADLESS): $(BUILD_LIBAWT)
784
785 DESKTOP_LIBRARIES += $(BUILD_LIBAWT_HEADLESS)
786
787 endif
788 endif
789
790 ################################################################################
791
792 ifndef BUILD_HEADLESS_ONLY
793
794 LIBSPLASHSCREEN_DIRS := \
795 $(JDK_TOPDIR)/src/java.desktop/share/native/libjavajpeg \
796 $(JDK_TOPDIR)/src/java.desktop/share/native/libsplashscreen \
797 #
798
799 ifeq ($(USE_EXTERNAL_LIBGIF), true)
800 GIFLIB_LDFLAGS := -lgif
801 LIBSPLASHSCREEN_EXCLUDES := giflib
802 else
803 LIBSPLASHSCREEN_CFLAGS += -I$(JDK_TOPDIR)/src/java.desktop/share/native/libsplashscreen/giflib
804 endif
805
836 BUILD_LIBSPLASHSCREEN_splashscreen_gif.c_CFLAGS := -x objective-c -O0
837 BUILD_LIBSPLASHSCREEN_splashscreen_impl.c_CFLAGS := -x objective-c -O0
838 BUILD_LIBSPLASHSCREEN_splashscreen_jpeg.c_CFLAGS := -x objective-c -O0
839 BUILD_LIBSPLASHSCREEN_splashscreen_png.c_CFLAGS := -x objective-c -O0
840 BUILD_LIBSPLASHSCREEN_splashscreen_sys.m_CFLAGS := -O0
841
842 else ifeq ($(OPENJDK_TARGET_OS), windows)
843 LIBSPLASHSCREEN_CFLAGS += -DWITH_WIN32
844 else
845 LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 $(X_CFLAGS)
846 endif
847
848 LIBSPLASHSCREEN_LDFLAGS_SUFFIX :=
849
850 ifneq ($(USE_EXTERNAL_LIBZ), true)
851 LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/java.base/share/native/libzip/zlib-1.2.8
852 LIBSPLASHSCREEN_CFLAGS += $(ZLIB_CPPFLAGS)
853 endif
854
855 ifeq ($(OPENJDK_TARGET_OS), macosx)
856 LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(LIBM) -lpthread -liconv -losxapp \
857 -framework ApplicationServices \
858 -framework Foundation \
859 -framework Cocoa \
860 -framework JavaNativeFoundation
861 else ifeq ($(OPENJDK_TARGET_OS), windows)
862 LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib -DELAYLOAD:user32.dll
863 else
864 LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(X_LIBS) -lX11 -lXext $(LIBM) -lpthread
865 endif
866
867 $(eval $(call SetupNativeCompilation,BUILD_LIBSPLASHSCREEN, \
868 LIBRARY := splashscreen, \
869 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
870 SRC := $(LIBSPLASHSCREEN_DIRS), \
871 EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
872 EXCLUDES := $(LIBSPLASHSCREEN_EXCLUDES), \
873 LANG := C, \
874 OPTIMIZATION := LOW, \
875 CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
876 $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS), \
877 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \
878 LDFLAGS := $(LDFLAGS_JDKLIB) \
879 $(call SET_SHARED_LIBRARY_ORIGIN), \
880 LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \
881 $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS) $(PNG_LIBS), \
882 LDFLAGS_SUFFIX_solaris := -lc, \
883 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
884 RC_FLAGS := $(RC_FLAGS) \
885 -D "JDK_FNAME=splashscreen.dll" \
886 -D "JDK_INTERNAL_NAME=splashscreen" \
887 -D "JDK_FTYPE=0x2L", \
888 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsplashscreen, \
889 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
890
891 DESKTOP_LIBRARIES += $(BUILD_LIBSPLASHSCREEN)
892
893 ifeq ($(OPENJDK_TARGET_OS), macosx)
894 $(BUILD_LIBSPLASHSCREEN): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)osxapp$(SHARED_LIBRARY_SUFFIX)
895 endif
896
897 endif
898
899 ################################################################################
900
901 ifeq ($(OPENJDK_TARGET_OS), macosx)
902
903 LIBAWT_LWAWT_DIRS := \
904 $(JDK_TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt \
905 $(JDK_TOPDIR)/src/java.desktop/unix/native/common/awt \
906 $(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
907 $(JDK_TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
908 #
909
910 LIBAWT_LWAWT_CFLAGS := \
911 $(addprefix -I, $(LIBAWT_LWAWT_DIRS)) \
912 -I$(JDK_OUTPUTDIR)/gensrc_headers/java.desktop \
913 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/include \
914 -I$(JDK_TOPDIR)/src/java.desktop/share/native/include \
915 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt/java2d/opengl \
916 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt/awt \
917 -I$(JDK_TOPDIR)/src/java.desktop/unix/native/libawt_xawt/awt \
918 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt/font \
919 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image \
920 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d \
921 -I$(JDK_TOPDIR)/src/java.desktop/unix/native/libawt/java2d \
922 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libmlib_image/ \
923 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
924 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d/loops \
925 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d/pipe \
926 -I$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
927 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libosxapp \
928 $(LIBJAVA_HEADER_FLAGS) \
929 #
930
931 LIBAWT_LWAWT_EXFILES := fontpath.c awt_Font.c X11Color.c
932 LIBAWT_LWAWT_EXCLUDES := $(JDK_TOPDIR)/src/java.desktop/unix/native/common/awt/medialib
933
934 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_LWAWT, \
935 LIBRARY := awt_lwawt, \
936 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
937 SRC := $(LIBAWT_LWAWT_DIRS), \
938 LANG := C, \
939 INCLUDE_FILES := $(LIBAWT_LWAWT_FILES), \
940 EXCLUDE_FILES := $(LIBAWT_LWAWT_EXFILES), \
941 EXCLUDES := $(LIBAWT_LWAWT_EXCLUDES), \
942 OPTIMIZATION := LOW, \
943 CFLAGS := $(CFLAGS_JDKLIB) \
944 $(X_CFLAGS) \
945 $(X_LIBS) \
946 $(LIBAWT_LWAWT_CFLAGS), \
947 LDFLAGS := $(LDFLAGS_JDKLIB) \
948 $(call SET_SHARED_LIBRARY_ORIGIN), \
949 LDFLAGS_SUFFIX_macosx := -lawt -lmlib_image -losxapp -ljvm $(LIBM) \
950 -framework Accelerate \
951 -framework ApplicationServices \
952 -framework AudioToolbox \
953 -framework Carbon \
954 -framework Cocoa \
955 -framework Security \
956 -framework ExceptionHandling \
957 -framework JavaNativeFoundation \
958 -framework JavaRuntimeSupport \
959 -framework OpenGL \
960 -framework QuartzCore -ljava, \
961 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_lwawt, \
962 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
963
964 DESKTOP_LIBRARIES += $(BUILD_LIBAWT_LWAWT)
965
966 $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBAWT)
967
968 $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBMLIB_IMAGE)
969
970 $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBOSXAPP)
971
972 $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBJAVA)
973
974 endif
975
976 ################################################################################
977
978 ifeq ($(OPENJDK_TARGET_OS), macosx)
979
980 $(eval $(call SetupNativeCompilation,BUILD_LIBOSXUI, \
981 LIBRARY := osxui, \
982 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
983 SRC := $(JDK_TOPDIR)/src/java.desktop/macosx/native/libosxui, \
984 LANG := C, \
985 OPTIMIZATION := LOW, \
986 CFLAGS := $(CFLAGS_JDKLIB) \
987 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libosxui \
988 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt/awt \
989 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libosxapp \
990 -I$(JDK_TOPDIR)/src/java.base/share/native/libjava \
991 -I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libjava \
992 -I$(JDK_OUTPUTDIR)/gensrc_headers/java.desktop, \
993 LDFLAGS := $(LDFLAGS_JDKLIB) \
994 $(call SET_SHARED_LIBRARY_ORIGIN) \
995 -Xlinker -rpath -Xlinker @loader_path, \
996 LDFLAGS_SUFFIX_macosx := -lawt -losxapp -lawt_lwawt \
997 -framework Cocoa \
998 -framework Carbon \
999 -framework ApplicationServices \
1000 -framework JavaNativeFoundation \
1001 -framework JavaRuntimeSupport \
1002 -ljava -ljvm, \
1003 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libosxui, \
1004 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1005
1006 DESKTOP_LIBRARIES += $(BUILD_LIBOSXUI)
1007
1008 $(BUILD_LIBOSXUI): $(BUILD_LIBAWT)
1009
1010 $(BUILD_LIBOSXUI): $(BUILD_LIBOSXAPP)
1011
1012 $(BUILD_LIBOSXUI): $(BUILD_LIBAWT_LWAWT)
1013
1014 #$(BUILD_LIBOSXUI): $(BUILD_LIBJAVA)
1015
1016 endif
1017
1018 ################################################################################
1019
1020 # Hook to include the corresponding custom file, if present.
1021 $(eval $(call IncludeCustomExtension, jdk, lib/Awt2dLibraries.gmk))
|
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
23 # questions.
24 #
25
26 WIN_AWT_LIB := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libawt/awt.lib
27
28 ################################################################################
29
30 BUILD_LIBMLIB_SRC := $(JDK_TOPDIR)/src/java.desktop/share/native/libmlib_image \
31 $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/medialib
32 BUILD_LIBMLIB_CFLAGS := -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES \
33 $(addprefix -I, $(BUILD_LIBMLIB_SRC)) \
34 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libmlib_image
35
36 BUILD_LIBMLIB_LDLIBS :=
37 BUILD_LIBMLIB_IMAGE_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libmlib_image/mapfile-vers
38
39 BUILD_LIBMLIB_CFLAGS += -DMLIB_NO_LIBSUNMATH
40
41 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
42 BUILD_LIBMLIB_CFLAGS += -DMLIB_OS64BIT
43 endif
44
45 ifneq ($(OPENJDK_TARGET_OS), windows)
46 BUILD_LIBMLIB_LDLIBS += $(LIBM) $(LIBDL)
49 $(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE, \
50 LIBRARY := mlib_image, \
51 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
52 SRC := $(BUILD_LIBMLIB_SRC), \
53 EXCLUDE_FILES := mlib_c_ImageBlendTable.c, \
54 LANG := C, \
55 OPTIMIZATION := HIGHEST, \
56 CFLAGS := $(CFLAGS_JDKLIB) \
57 $(BUILD_LIBMLIB_CFLAGS), \
58 MAPFILE := $(BUILD_LIBMLIB_IMAGE_MAPFILE), \
59 LDFLAGS := $(LDFLAGS_JDKLIB) \
60 $(call SET_SHARED_LIBRARY_ORIGIN), \
61 LDFLAGS_SUFFIX := $(BUILD_LIBMLIB_LDLIBS) \
62 $(LDFLAGS_JDKLIB_SUFFIX), \
63 LDFLAGS_SUFFIX_solaris := -lc, \
64 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
65 RC_FLAGS := $(RC_FLAGS) \
66 -D "JDK_FNAME=mlib_image.dll" \
67 -D "JDK_INTERNAL_NAME=mlib_image" \
68 -D "JDK_FTYPE=0x2L", \
69 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libmlib_image, \
70 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
71
72 $(BUILD_LIBMLIB_IMAGE): $(call FindLib, java.base, java)
73
74 TARGETS += $(BUILD_LIBMLIB_IMAGE)
75
76 ################################################################################
77
78 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
79
80 LIBMLIB_IMAGE_V_SRC := $(JDK_TOPDIR)/src/java.desktop/share/native/libmlib_image \
81 $(JDK_TOPDIR)/src/java.desktop/unix/native/libmlib_image \
82 $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/medialib \
83 $(JDK_TOPDIR)/src/java.desktop/unix/native/common/awt/medialib \
84 #
85 LIBMLIB_IMAGE_V_CFLAGS := $(JDK_TOPDIR)/src/java.desktop/unix/native/libmlib_image/vis_$(OPENJDK_TARGET_CPU_BITS).il \
86 $(addprefix -I, $(LIBMLIB_IMAGE_V_SRC)) \
87 #
88
89 BUILD_LIBMLIB_IMAGE_V_EXFILES := \
90 awt_ImagingLib.c \
91 mlib_c_ImageAffine_BC.c \
92 mlib_c_ImageAffine_BC_S16.c \
93 mlib_c_ImageAffine_BC_U16.c \
94 mlib_c_ImageAffine_BL.c \
115 mlib_v_ImageCopy_blk.s \
116 #
117
118 LIBMLIB_IMAGE_V_CFLAGS += $(filter-out -DMLIB_NO_LIBSUNMATH, $(BUILD_LIBMLIB_CFLAGS))
119
120 $(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE_V, \
121 LIBRARY := mlib_image_v, \
122 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
123 SRC := $(LIBMLIB_IMAGE_V_SRC), \
124 LANG := C, \
125 EXCLUDE_FILES := $(BUILD_LIBMLIB_IMAGE_V_EXFILES), \
126 OPTIMIZATION := HIGHEST, \
127 CFLAGS := -xarch=sparcvis \
128 $(LIBMLIB_IMAGE_V_CFLAGS) \
129 $(CFLAGS_JDKLIB), \
130 MAPFILE := $(BUILD_LIBMLIB_IMAGE_MAPFILE), \
131 LDFLAGS := $(LDFLAGS_JDKLIB) \
132 $(BUILD_LIBMLIB_LDLIBS) -ljava -ljvm \
133 $(call SET_SHARED_LIBRARY_ORIGIN), \
134 LDFLAGS_SUFFIX_solaris := -lc, \
135 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libmlib_image_v, \
136 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
137
138 $(BUILD_LIBMLIB_IMAGE_V): $(call FindLib, java.base, java)
139
140 TARGETS += $(BUILD_LIBMLIB_IMAGE_V)
141
142 endif
143
144 ################################################################################
145
146 LIBAWT_DIRS := $(JDK_TOPDIR)/src/java.desktop/share/native/libawt \
147 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt \
148 $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
149 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/awt \
150 #
151
152 ifeq ($(OPENJDK_TARGET_OS), aix)
153 LIBAWT_DIRS += $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS)/native/libawt
154 endif
155
156 ifeq ($(OPENJDK_TARGET_OS), windows)
157 LIBAWT_DIRS += $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/utility
158 else
159 LIBAWT_EXFILES := java2d/ShaderList.c
160 endif
161
162 ifneq ($(filter $(OPENJDK_TARGET_OS), solaris linux macosx aix), )
163 LIBAWT_EXFILES += awt_Font.c CUPSfuncs.c fontpath.c X11Color.c
164 endif
165
166 ifeq ($(OPENJDK_TARGET_OS), macosx)
167 LIBAWT_EXFILES += initIDs.c awt/image/cvutils/img_colors.c
168 endif
169
170 LIBAWT_CFLAGS += -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
171 $(addprefix -I, $(shell find $(LIBAWT_DIRS) -type d)) \
172 $(LIBJAVA_HEADER_FLAGS) \
173 $(addprefix -I, $(BUILD_LIBMLIB_IMAGE_SRC)) \
174 #
175
176 LIBAWT_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES $(X_CFLAGS)
177
178 ifeq ($(OPENJDK_TARGET_OS), macosx)
179 endif
180
181 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
182 LIBAWT_CFLAGS += -DMLIB_ADD_SUFF
183 LIBAWT_CFLAGS += -xarch=sparcvis
184
185 LIBAWT_CFLAGS += $(JDK_TOPDIR)/src/java.desktop/unix/native/libmlib_image/vis_$(OPENJDK_TARGET_CPU_BITS).il
186 LIBAWT_DIRS += $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/medialib
187 LIBAWT_EXFILES += java2d/loops/MapAccelFunc.c
188
189 ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
190 LIBAWT_ASFLAGS = -P -xarch=v9a
197 $(JDK_TOPDIR)/src/java.desktop/unix/native/libawt/java2d/loops \
198 $(JDK_TOPDIR)/src/java.desktop/unix/native/common/awt/medialib \
199 #
200 endif
201
202 ifneq ($(OPENJDK_TARGET_OS), solaris)
203 LIBAWT_CFLAGS += -DMLIB_NO_LIBSUNMATH
204 endif
205
206 LIBAWT_LANG := C
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_API_DIR)/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_LANG := C++
225 LIBAWT_CFLAGS += -EHsc -DUNICODE -D_UNICODE
226 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
227 LIBAWT_CFLAGS += -DMLIB_OS64BIT
228 endif
229
230 ifdef OPENJDK
231 LIBAWT_RC_FLAGS := -i "$(JDK_TOPDIR)/src/java.base/windows/native/launcher/icons"
232 else
233 LIBAWT_RC_FLAGS := -i "$(JDK_TOPDIR)/src/closed/java.base/windows/native/launcher/icons"
234 endif
235 LIBAWT_VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/java.desktop/windows/native/libawt/windows/awt.rc
236 endif
237
242 LIBAWT_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt/mapfile-vers
243 ifeq ($(OPENJDK_TARGET_OS), linux)
244 LIBAWT_MAPFILE :=
245 endif
246
247 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT, \
248 LIBRARY := awt, \
249 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
250 SRC := $(LIBAWT_DIRS), \
251 EXCLUDES := $(LIBAWT_EXCLUDES), \
252 EXCLUDE_FILES := $(LIBAWT_EXFILES), \
253 LANG := $(LIBAWT_LANG), \
254 OPTIMIZATION := LOW, \
255 CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_CFLAGS), \
256 ASFLAGS := $(LIBAWT_ASFLAGS), \
257 MAPFILE := $(LIBAWT_MAPFILE), \
258 LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN), \
259 LDFLAGS_SUFFIX_linux := -ljvm $(LIBM) $(LIBDL) -ljava, \
260 LDFLAGS_SUFFIX_solaris := -ljvm $(LIBM) $(LIBDL) -ljava -lc, \
261 LDFLAGS_SUFFIX_aix :=-ljvm $(LIBM) $(LIBDL) -ljava -lm,\
262 LDFLAGS_SUFFIX_macosx := -L$(INSTALL_LIBRARIES_HERE) \
263 -lmlib_image -ljvm $(LIBM) \
264 -framework Cocoa \
265 -framework OpenGL \
266 -framework JavaNativeFoundation \
267 -framework JavaRuntimeSupport \
268 -framework ApplicationServices \
269 -framework AudioToolbox \
270 -ljava, \
271 LDFLAGS_SUFFIX_windows := kernel32.lib user32.lib gdi32.lib winspool.lib \
272 imm32.lib ole32.lib uuid.lib shell32.lib \
273 comdlg32.lib winmm.lib comctl32.lib shlwapi.lib \
274 delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib \
275 -DELAYLOAD:user32.dll -DELAYLOAD:gdi32.dll \
276 -DELAYLOAD:shell32.dll -DELAYLOAD:winmm.dll \
277 -DELAYLOAD:winspool.drv -DELAYLOAD:imm32.dll \
278 -DELAYLOAD:ole32.dll -DELAYLOAD:comdlg32.dll \
279 -DELAYLOAD:comctl32.dll -DELAYLOAD:shlwapi.dll, \
280 VERSIONINFO_RESOURCE := $(LIBAWT_VERSIONINFO_RESOURCE), \
281 RC_FLAGS := $(RC_FLAGS) $(LIBAWT_RC_FLAGS) \
282 -D "JDK_FNAME=awt.dll" \
283 -D "JDK_INTERNAL_NAME=awt" \
284 -D "JDK_FTYPE=0x2L", \
285 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libawt, \
286 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
287
288 $(BUILD_LIBAWT): $(call FindLib, java.base, java)
289
290 ifeq ($(OPENJDK_TARGET_OS), macosx)
291 $(BUILD_LIBAWT): $(BUILD_LIBMLIB_IMAGE)
292 endif
293
294 TARGETS += $(BUILD_LIBAWT)
295
296 ################################################################################
297
298 ifeq ($(findstring $(OPENJDK_TARGET_OS),windows macosx),)
299 ifndef BUILD_HEADLESS_ONLY
300
301 LIBAWT_XAWT_DIRS := \
302 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt_xawt \
303 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libjawt \
304 $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
305 $(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/utility \
306 $(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
307 $(JDK_TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
308 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/java2d/opengl \
309 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/java2d/x11 \
310 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/awt \
311 #
312
313 LIBAWT_XAWT_EXCLUDES := medialib
314
315 LIBAWT_XAWT_CFLAGS := $(addprefix -I, $(shell $(FIND) $(LIBAWT_XAWT_DIRS) -type d)) \
316 -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
317 -I$(JDK_TOPDIR)/src/java.desktop/share/native/include \
318 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS)/native/include \
319 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/include \
320 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d \
321 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt/java2d \
322 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d/loops \
323 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d/pipe \
324 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
325 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image \
326 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libsunwjdga \
327 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/font \
328 $(LIBJAVA_HEADER_FLAGS)
329 #
330
331 LIBAWT_XAWT_CFLAGS += -DXAWT -DXAWT_HACK \
332 -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
333 $(CUPS_CFLAGS)
334
335 ifeq ($(OPENJDK_TARGET_OS), solaris)
336 LIBAWT_XAWT_CFLAGS += -DFUNCPROTO=15
349 LIBAWT_XAWT_LDFLAGS_SUFFIX := $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst -lXi -ljava -ljvm -lc
350
351 ifeq ($(OPENJDK_TARGET_OS), linux)
352 # To match old build, add this to LDFLAGS instead of suffix.
353 LIBAWT_XAWT_LDFLAGS += -lpthread
354 endif
355
356 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_XAWT, \
357 LIBRARY := awt_xawt, \
358 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
359 SRC := $(LIBAWT_XAWT_DIRS), \
360 EXCLUDES := $(LIBAWT_XAWT_EXCLUDES), \
361 LANG := C, \
362 OPTIMIZATION := LOW, \
363 CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \
364 $(X_CFLAGS), \
365 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt_xawt/mapfile-vers, \
366 LDFLAGS := $(LDFLAGS_JDKLIB) \
367 $(X_LIBS) $(LIBAWT_XAWT_LDFLAGS) \
368 $(call SET_SHARED_LIBRARY_ORIGIN) \
369 $(call SET_SHARED_LIBRARY_ORIGIN,/..) \
370 -L $(INSTALL_LIBRARIES_HERE), \
371 LDFLAGS_SUFFIX := $(LIBAWT_XAWT_LDFLAGS_SUFFIX), \
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 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
379
380 $(BUILD_LIBAWT_XAWT): $(call FindLib, java.base, java)
381
382 $(BUILD_LIBAWT_XAWT): $(BUILD_LIBAWT)
383
384 TARGETS += $(BUILD_LIBAWT_XAWT)
385
386 endif
387 endif
388
389 ################################################################################
390
391 LIBLCMS_SRC := $(JDK_TOPDIR)/src/java.desktop/share/native/liblcms
392 LIBLCMS_CPPFLAGS += -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
393 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d \
394 -I$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
395 $(LIBJAVA_HEADER_FLAGS) \
396 #
397
398 ifeq ($(USE_EXTERNAL_LCMS), true)
399 # If we're using an external library, we'll just need the wrapper part.
400 # By including it explicitely, all other files will be excluded.
401 BUILD_LIBLCMS_INCLUDE_FILES := LCMS.c
402 else
403 BUILD_LIBLCMS_INCLUDE_FILES :=
404 # If we're using the bundled library, we'll need to include it in the
405 # include path explicitly. Otherwise the system headers will be used.
406 LIBLCMS_CPPFLAGS += $(addprefix -I, $(LIBLCMS_SRC))
407 endif
408
409 $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \
410 LIBRARY := lcms, \
411 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
412 SRC := $(LIBLCMS_SRC), \
413 INCLUDE_FILES := $(BUILD_LIBLCMS_INCLUDE_FILES), \
414 LANG := C, \
415 OPTIMIZATION := HIGHEST, \
416 CFLAGS := $(filter-out -xc99=%none, $(CFLAGS_JDKLIB)) \
417 $(SHARED_LIBRARY_FLAGS) $(LIBLCMS_CPPFLAGS) \
418 $(LCMS_CFLAGS), \
419 CFLAGS_solaris := -xc99=no_lib, \
420 CFLAGS_windows := -DCMS_IS_WINDOWS_, \
421 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/liblcms/mapfile-vers, \
422 LDFLAGS := $(LDFLAGS_JDKLIB) \
423 $(call SET_SHARED_LIBRARY_ORIGIN), \
424 LDFLAGS_posix := -L $(INSTALL_LIBRARIES_HERE), \
425 LDFLAGS_solaris := /usr/lib$(OPENJDK_TARGET_CPU_ISADIR)/libm.so.2, \
426 LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
427 LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc $(LCMS_LIBS), \
428 LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm $(LCMS_LIBS), \
429 LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm $(LCMS_LIBS), \
430 LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm $(LCMS_LIBS),\
431 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
432 RC_FLAGS := $(RC_FLAGS) \
433 -D "JDK_FNAME=lcms.dll" \
434 -D "JDK_INTERNAL_NAME=lcms" \
435 -D "JDK_FTYPE=0x2L", \
436 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/liblcms, \
437 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
438
439 TARGETS += $(BUILD_LIBLCMS)
440
441 $(BUILD_LIBLCMS): $(BUILD_LIBAWT)
442
443 ################################################################################
444
445 ifdef OPENJDK
446 BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers
447 else
448 BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed
449 LIBJAVAJPEG_SRC += $(JDK_TOPDIR)/src/closed/java.desktop/share/native/libjavajpeg
450 endif
451
452 LIBJAVAJPEG_SRC += $(JDK_TOPDIR)/src/java.desktop/share/native/libjavajpeg
453
454 BUILD_LIBJAVAJPEG_REORDER :=
455 ifeq ($(OPENJDK_TARGET_OS), solaris)
456 ifneq ($(OPENJDK_TARGET_CPU), x86_64)
457 BUILD_LIBJAVAJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
458 endif
459 endif
478 LIBJPEG_LIBS := -ljpeg
479 BUILD_LIBJAVAJPEG_INCLUDE_FILES := \
480 imageIOJPEG.c \
481 jpegdecoder.c
482 BUILD_LIBJAVAJPEG_HEADERS :=
483 else
484 LIBJPEG_LIBS :=
485 BUILD_LIBJAVAJPEG_INCLUDE_FILES :=
486 BUILD_LIBJAVAJPEG_HEADERS := $(addprefix -I, $(LIBJAVAJPEG_SRC))
487 endif
488
489 $(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG, \
490 LIBRARY := javajpeg, \
491 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
492 SRC := $(LIBJAVAJPEG_SRC), \
493 INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \
494 LANG := C, \
495 OPTIMIZATION := HIGHEST, \
496 CFLAGS := $(CFLAGS_JDKLIB) $(addprefix -I, $(LIBJAVAJPEG_SRC)) \
497 $(LIBJAVA_HEADER_FLAGS) \
498 -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop, \
499 MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \
500 LDFLAGS := $(LDFLAGS_JDKLIB) $(LIBJPEG_LIBS) \
501 $(call SET_SHARED_LIBRARY_ORIGIN), \
502 LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \
503 LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
504 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
505 RC_FLAGS := $(RC_FLAGS) \
506 -D "JDK_FNAME=javajpeg.dll" \
507 -D "JDK_INTERNAL_NAME=javajpeg" \
508 -D "JDK_FTYPE=0x2L", \
509 REORDER := $(BUILD_LIBJAVAJPEG_REORDER), \
510 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjavajpeg, \
511 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
512
513 $(BUILD_LIBJAVAJPEG): $(call FindLib, java.base, java)
514
515 TARGETS += $(BUILD_LIBJAVAJPEG)
516
517 ################################################################################
518
519 LIBFONTMANAGER_SRC := $(JDK_TOPDIR)/src/java.desktop/share/native/libfontmanager \
520 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libfontmanager
521 LIBFONTMANAGER_CFLAGS := \
522 $(addprefix -I, $(shell $(FIND) \
523 $(LIBFONTMANAGER_SRC) \
524 $(JDK_TOPDIR)/src/java.desktop/share/native/libawt \
525 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt \
526 $(JDK_TOPDIR)/src/java.desktop/share/native/common \
527 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common -type d)) \
528 -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
529 $(LIBJAVA_HEADER_FLAGS) \
530 #
531
532 ifndef OPENJDK
533 LIBFONTMANAGER_CFLAGS += -I$(JDK_TOPDIR)/src/closed/java.desktop/share/native/libt2k
534 BUILD_LIBFONTMANAGER_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libfontmanager/mapfile-vers
535 LIBFONTMANAGER_EXCLUDE_FILES += freetypeScaler.c
536 else
537 LIBFONTMANAGER_CFLAGS += $(FREETYPE_CFLAGS)
538 BUILD_LIBFONTMANAGER_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libfontmanager/mapfile-vers.openjdk
539 BUILD_LIBFONTMANAGER_FONTLIB := $(FREETYPE_LIBS)
540 endif
541
542 LIBFONTMANAGER_OPTIMIZATION := HIGH
543
544 ifeq ($(OPENJDK_TARGET_OS), windows)
545 LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
546 X11TextRenderer.c
547 LIBFONTMANAGER_OPTIMIZATION := HIGHEST
548 LIBFONTMANAGER_CFLAGS += -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt/windows
564 endif
565
566 # Libfontmanager doesn't actually need X_LIBS to link, but if building
567 # on a Solaris machine without X installed, using a devkit, linking
568 # to libawt_xawt will fail without the -L parameters from X_LIBS. Filter
569 # out the -R parameters since they aren't needed.
570 $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
571 LIBRARY := fontmanager, \
572 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
573 SRC := $(LIBFONTMANAGER_SRC), \
574 EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
575 AccelGlyphCache.c, \
576 LANG := C++, \
577 CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
578 CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
579 OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
580 CFLAGS_windows = -DCC_NOEX, \
581 MAPFILE := $(BUILD_LIBFONTMANAGER_MAPFILE), \
582 LDFLAGS := $(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK) \
583 $(call SET_SHARED_LIBRARY_ORIGIN), \
584 LDFLAGS_posix := -L $(INSTALL_LIBRARIES_HERE), \
585 LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \
586 LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
587 LDFLAGS_SUFFIX_solaris := $(filter-out -R%, $(X_LIBS)) \
588 -lawt -lawt_xawt -lc $(LIBM) $(LIBCXX) -ljava -ljvm, \
589 LDFLAGS_SUFFIX_aix := -lawt -lawt_xawt $(LIBM) $(LIBCXX) -ljava -ljvm,\
590 LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \
591 -ljava -ljvm, \
592 LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
593 $(WIN_AWT_LIB), \
594 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
595 RC_FLAGS := $(RC_FLAGS) \
596 -D "JDK_FNAME=fontmanager.dll" \
597 -D "JDK_INTERNAL_NAME=fontmanager" \
598 -D "JDK_FTYPE=0x2L", \
599 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfontmanager, \
600 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
601
602 $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
603
604 ifneq (, $(findstring $(OPENJDK_TARGET_OS), solaris aix))
605 $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT_XAWT)
606 endif
607
608 TARGETS += $(BUILD_LIBFONTMANAGER)
609
610 ################################################################################
611
612 ifeq ($(OPENJDK_TARGET_OS), windows)
613 LIBJAWT_SRC := $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libjawt
614 LIBJAWT_CFLAGS := -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt/windows \
615 -I$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
616 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d \
617 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
618 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt/java2d/windows \
619 -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
620 -I$(JDK_TOPDIR)/src/java.desktop/windows/native/include \
621 -I$(JDK_TOPDIR)/src/java.desktop/share/native/include \
622 $(LIBJAVA_HEADER_FLAGS) \
623 #
624
625 ifeq ($(OPENJDK_TARGET_CPU), x86)
626 KERNEL32_LIB := kernel32.lib
627 endif
628 $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \
629 LIBRARY := jawt, \
630 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
631 SRC := $(LIBJAWT_SRC), \
632 INCLUDE_FILES := $(LIBJAWT_INCLUDE_FILES), \
633 LANG := C++, \
634 OPTIMIZATION := LOW, \
635 CFLAGS := $(CXXFLAGS_JDKLIB) \
636 -EHsc -DUNICODE -D_UNICODE \
637 $(LIBJAWT_CFLAGS), \
638 LDFLAGS := $(LDFLAGS_JDKLIB) $(KERNEL32_LIB) $(LDFLAGS_CXX_JDK) \
639 advapi32.lib $(WIN_AWT_LIB), \
640 LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
641 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
642 RC_FLAGS := $(RC_FLAGS) \
643 -D "JDK_FNAME=jawt.dll" \
644 -D "JDK_INTERNAL_NAME=jawt" \
645 -D "JDK_FTYPE=0x2L", \
646 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjawt, \
647 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
648
649 $(BUILD_LIBJAWT): $(BUILD_LIBAWT)
650
651 $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX): $(BUILD_LIBJAWT)
652 $(ECHO) Copying $(@F)
653 $(CP) $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjawt/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) $@
654
655 TARGETS += $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX)
656
657 else # OPENJDK_TARGET_OS not windows
658
659 ifeq ($(OPENJDK_TARGET_OS), macosx)
660 LIBJAWT_SRC := $(JDK_TOPDIR)/src/java.desktop/macosx/native/libjawt
661 else
662 LIBJAWT_SRC := $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libjawt
663 endif
664 LIBJAWT_CFLAGS := \
665 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/awt \
666 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS)/native/include \
667 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/include \
668 -I$(JDK_TOPDIR)/src/java.desktop/share/native/include \
669 $(LIBJAVA_HEADER_FLAGS) \
670 #
671
672 ifeq ($(OPENJDK_TARGET_OS), macosx)
673 JAWT_LIBS := -lawt_lwawt
674 else
675 JAWT_LIBS :=
681 else
682 JAWT_LIBS += -lawt_headless
683 HEADLESS_CFLAG += -DHEADLESS
684 endif
685 endif
686
687 $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \
688 LIBRARY := jawt, \
689 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
690 SRC := $(LIBJAWT_SRC), \
691 INCLUDE_FILES := $(JAWT_FILES), \
692 LANG := C, \
693 OPTIMIZATION := LOW, \
694 CFLAGS := $(CFLAGS_JDKLIB) \
695 $(LIBJAWT_CFLAGS), \
696 CFLAGS_linux := $(HEADLESS_CFLAG), \
697 CFLAGS_macosx := $(LIBJAWT_CFLAGS_macosx), \
698 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjawt/mapfile-vers, \
699 LDFLAGS := $(LDFLAGS_JDKLIB) \
700 $(call SET_SHARED_LIBRARY_ORIGIN), \
701 LDFLAGS_posix := -L $(INSTALL_LIBRARIES_HERE), \
702 LDFLAGS_solaris := $(X_LIBS), \
703 LDFLAGS_SUFFIX_linux := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \
704 LDFLAGS_SUFFIX_aix := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX),\
705 LDFLAGS_SUFFIX_solaris := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender, \
706 LDFLAGS_SUFFIX_macosx := -Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \
707 -framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX), \
708 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjawt, \
709 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
710
711 ifndef BUILD_HEADLESS_ONLY
712 $(BUILD_LIBJAWT): $(BUILD_LIBAWT_XAWT)
713 else
714 $(BUILD_LIBJAWT): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_headless$(SHARED_LIBRARY_SUFFIX)
715 endif
716
717 ifeq ($(OPENJDK_TARGET_OS), macosx)
718 $(BUILD_LIBJAWT): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_lwawt$(SHARED_LIBRARY_SUFFIX)
719 endif
720
721 endif # OPENJDK_TARGET_OS
722
723 TARGETS += $(BUILD_LIBJAWT)
724
725 ################################################################################
726
727 ifeq ($(BUILD_HEADLESS), true)
728 # Mac and Windows only use the native AWT lib, do not build libawt_headless
729 ifeq ($(findstring $(OPENJDK_TARGET_OS), windows macosx),)
730
731 LIBAWT_HEADLESS_DIRS := $(JDK_TOPDIR)/src/java.desktop/unix/native/libawt_headless/awt \
732 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/awt \
733 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/java2d/opengl \
734 $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/java2d/x11 \
735 $(JDK_TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
736 $(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
737 #
738
739 LIBAWT_HEADLESS_EXCLUDES := medialib
740 LIBAWT_HEADLESS_CFLAGS := -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
741 $(addprefix -I, $(LIBAWT_HEADLESS_DIRS)) \
742 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d \
743 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d/loops \
744 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
745 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d/pipe \
746 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image \
747 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt/java2d \
748 -I$(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
749 -I$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
750 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/font \
751 -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libsunwjdga/ \
752 $(LIBJAVA_HEADER_FLAGS) \
753 #
754
755 LIBAWT_HEADLESS_REORDER :=
756 ifeq ($(OPENJDK_TARGET_OS), solaris)
757 ifneq ($(OPENJDK_TARGET_CPU), x86_64)
758 LIBAWT_HEADLESS_REORDER := $(JDK_TOPDIR)/make/mapfiles/libawt_headless/reorder-$(OPENJDK_TARGET_CPU)
759 endif
760 endif
761
762 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_HEADLESS, \
763 LIBRARY := awt_headless, \
764 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
765 SRC := $(LIBAWT_HEADLESS_DIRS), \
766 EXCLUDES := $(LIBAWT_HEADLESS_EXCLUDES), \
767 LANG := C, \
768 OPTIMIZATION := LOW, \
769 CFLAGS := $(CFLAGS_JDKLIB) \
770 -DHEADLESS=true \
771 -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
772 $(CUPS_CFLAGS) \
773 $(X_CFLAGS) \
774 $(LIBAWT_HEADLESS_CFLAGS), \
775 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt_headless/mapfile-vers, \
776 LDFLAGS := $(LDFLAGS_JDKLIB) \
777 $(call SET_SHARED_LIBRARY_ORIGIN), \
778 LDFLAGS_posix := -L $(INSTALL_LIBRARIES_HERE), \
779 LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
780 LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
781 LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN)., \
782 REORDER := $(LIBAWT_HEADLESS_REORDER), \
783 LDFLAGS_SUFFIX_linux := -ljvm -lawt -lm $(LIBDL) -ljava, \
784 LDFLAGS_SUFFIX_aix := -ljvm -lawt -ljava,\
785 LDFLAGS_SUFFIX_solaris := $(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc, \
786 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libawt_headless, \
787 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
788
789 $(BUILD_LIBAWT_HEADLESS): $(BUILD_LIBAWT)
790
791 TARGETS += $(BUILD_LIBAWT_HEADLESS)
792
793 endif
794 endif
795
796 ################################################################################
797
798 ifndef BUILD_HEADLESS_ONLY
799
800 LIBSPLASHSCREEN_DIRS := \
801 $(JDK_TOPDIR)/src/java.desktop/share/native/libjavajpeg \
802 $(JDK_TOPDIR)/src/java.desktop/share/native/libsplashscreen \
803 #
804
805 ifeq ($(USE_EXTERNAL_LIBGIF), true)
806 GIFLIB_LDFLAGS := -lgif
807 LIBSPLASHSCREEN_EXCLUDES := giflib
808 else
809 LIBSPLASHSCREEN_CFLAGS += -I$(JDK_TOPDIR)/src/java.desktop/share/native/libsplashscreen/giflib
810 endif
811
842 BUILD_LIBSPLASHSCREEN_splashscreen_gif.c_CFLAGS := -x objective-c -O0
843 BUILD_LIBSPLASHSCREEN_splashscreen_impl.c_CFLAGS := -x objective-c -O0
844 BUILD_LIBSPLASHSCREEN_splashscreen_jpeg.c_CFLAGS := -x objective-c -O0
845 BUILD_LIBSPLASHSCREEN_splashscreen_png.c_CFLAGS := -x objective-c -O0
846 BUILD_LIBSPLASHSCREEN_splashscreen_sys.m_CFLAGS := -O0
847
848 else ifeq ($(OPENJDK_TARGET_OS), windows)
849 LIBSPLASHSCREEN_CFLAGS += -DWITH_WIN32
850 else
851 LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 $(X_CFLAGS)
852 endif
853
854 LIBSPLASHSCREEN_LDFLAGS_SUFFIX :=
855
856 ifneq ($(USE_EXTERNAL_LIBZ), true)
857 LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/java.base/share/native/libzip/zlib-1.2.8
858 LIBSPLASHSCREEN_CFLAGS += $(ZLIB_CPPFLAGS)
859 endif
860
861 ifeq ($(OPENJDK_TARGET_OS), macosx)
862 LIBSPLASHSCREEN_LDFLAGS_SUFFIX += \
863 -L$(INSTALL_LIBRARIES_HERE) \
864 $(LIBM) -lpthread -liconv -losxapp \
865 -framework ApplicationServices \
866 -framework Foundation \
867 -framework Cocoa \
868 -framework JavaNativeFoundation
869 else ifeq ($(OPENJDK_TARGET_OS), windows)
870 LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib -DELAYLOAD:user32.dll
871 else
872 LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(X_LIBS) -lX11 -lXext $(LIBM) -lpthread
873 endif
874
875 $(eval $(call SetupNativeCompilation,BUILD_LIBSPLASHSCREEN, \
876 LIBRARY := splashscreen, \
877 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
878 SRC := $(LIBSPLASHSCREEN_DIRS), \
879 EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
880 EXCLUDES := $(LIBSPLASHSCREEN_EXCLUDES), \
881 LANG := C, \
882 OPTIMIZATION := LOW, \
883 CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
884 $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS), \
885 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \
886 LDFLAGS := $(LDFLAGS_JDKLIB) \
887 $(call SET_SHARED_LIBRARY_ORIGIN), \
888 LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \
889 $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS) $(PNG_LIBS), \
890 LDFLAGS_SUFFIX_solaris := -lc, \
891 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
892 RC_FLAGS := $(RC_FLAGS) \
893 -D "JDK_FNAME=splashscreen.dll" \
894 -D "JDK_INTERNAL_NAME=splashscreen" \
895 -D "JDK_FTYPE=0x2L", \
896 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libsplashscreen, \
897 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
898
899 TARGETS += $(BUILD_LIBSPLASHSCREEN)
900
901 ifeq ($(OPENJDK_TARGET_OS), macosx)
902 $(BUILD_LIBSPLASHSCREEN): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)osxapp$(SHARED_LIBRARY_SUFFIX)
903 endif
904
905 endif
906
907 ################################################################################
908
909 ifeq ($(OPENJDK_TARGET_OS), macosx)
910
911 LIBAWT_LWAWT_DIRS := \
912 $(JDK_TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt \
913 $(JDK_TOPDIR)/src/java.desktop/unix/native/common/awt \
914 $(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
915 $(JDK_TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
916 #
917
918 LIBAWT_LWAWT_CFLAGS := \
919 $(addprefix -I, $(LIBAWT_LWAWT_DIRS)) \
920 -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
921 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/include \
922 -I$(JDK_TOPDIR)/src/java.desktop/share/native/include \
923 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt/java2d/opengl \
924 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt/awt \
925 -I$(JDK_TOPDIR)/src/java.desktop/unix/native/libawt_xawt/awt \
926 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt/font \
927 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image \
928 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d \
929 -I$(JDK_TOPDIR)/src/java.desktop/unix/native/libawt/java2d \
930 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libmlib_image/ \
931 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
932 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d/loops \
933 -I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d/pipe \
934 -I$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
935 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libosxapp \
936 $(LIBJAVA_HEADER_FLAGS) \
937 #
938
939 LIBAWT_LWAWT_EXFILES := fontpath.c awt_Font.c X11Color.c
940 LIBAWT_LWAWT_EXCLUDES := $(JDK_TOPDIR)/src/java.desktop/unix/native/common/awt/medialib
941
942 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_LWAWT, \
943 LIBRARY := awt_lwawt, \
944 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
945 SRC := $(LIBAWT_LWAWT_DIRS), \
946 LANG := C, \
947 INCLUDE_FILES := $(LIBAWT_LWAWT_FILES), \
948 EXCLUDE_FILES := $(LIBAWT_LWAWT_EXFILES), \
949 EXCLUDES := $(LIBAWT_LWAWT_EXCLUDES), \
950 OPTIMIZATION := LOW, \
951 CFLAGS := $(CFLAGS_JDKLIB) \
952 $(X_CFLAGS) \
953 $(X_LIBS) \
954 $(LIBAWT_LWAWT_CFLAGS), \
955 LDFLAGS := $(LDFLAGS_JDKLIB) \
956 $(call SET_SHARED_LIBRARY_ORIGIN) \
957 -L $(INSTALL_LIBRARIES_HERE), \
958 LDFLAGS_SUFFIX_macosx := -lawt -lmlib_image -losxapp -ljvm $(LIBM) \
959 -framework Accelerate \
960 -framework ApplicationServices \
961 -framework AudioToolbox \
962 -framework Carbon \
963 -framework Cocoa \
964 -framework Security \
965 -framework ExceptionHandling \
966 -framework JavaNativeFoundation \
967 -framework JavaRuntimeSupport \
968 -framework OpenGL \
969 -framework QuartzCore -ljava, \
970 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libawt_lwawt, \
971 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
972
973 TARGETS += $(BUILD_LIBAWT_LWAWT)
974
975 $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBAWT)
976
977 $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBMLIB_IMAGE)
978
979 $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBOSXAPP)
980
981 $(BUILD_LIBAWT_LWAWT): $(call FindLib, java.base, java)
982
983 endif
984
985 ################################################################################
986
987 ifeq ($(OPENJDK_TARGET_OS), macosx)
988
989 $(eval $(call SetupNativeCompilation,BUILD_LIBOSXUI, \
990 LIBRARY := osxui, \
991 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
992 SRC := $(JDK_TOPDIR)/src/java.desktop/macosx/native/libosxui, \
993 LANG := C, \
994 OPTIMIZATION := LOW, \
995 CFLAGS := $(CFLAGS_JDKLIB) \
996 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libosxui \
997 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt/awt \
998 -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libosxapp \
999 -I$(JDK_TOPDIR)/src/java.base/share/native/libjava \
1000 -I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libjava \
1001 -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop, \
1002 LDFLAGS := $(LDFLAGS_JDKLIB) \
1003 $(call SET_SHARED_LIBRARY_ORIGIN) \
1004 -Xlinker -rpath -Xlinker @loader_path \
1005 -L $(INSTALL_LIBRARIES_HERE), \
1006 LDFLAGS_SUFFIX_macosx := -lawt -losxapp -lawt_lwawt \
1007 -framework Cocoa \
1008 -framework Carbon \
1009 -framework ApplicationServices \
1010 -framework JavaNativeFoundation \
1011 -framework JavaRuntimeSupport \
1012 -ljava -ljvm, \
1013 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libosxui, \
1014 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1015
1016 TARGETS += $(BUILD_LIBOSXUI)
1017
1018 $(BUILD_LIBOSXUI): $(BUILD_LIBAWT)
1019
1020 $(BUILD_LIBOSXUI): $(BUILD_LIBOSXAPP)
1021
1022 $(BUILD_LIBOSXUI): $(BUILD_LIBAWT_LWAWT)
1023
1024 #$(BUILD_LIBOSXUI): $(call FindLib, java.base, java)
1025
1026 endif
1027
1028 ################################################################################
1029
1030 # Hook to include the corresponding custom file, if present.
1031 $(eval $(call IncludeCustomExtension, jdk, lib/Awt2dLibraries.gmk))
|