1 # 2 # Copyright (c) 1995, 2013, 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 23 # questions. 24 # 25 26 BUILDDIR = ../.. 27 PACKAGE = sun.awt 28 LIBRARY = awt 29 PRODUCT = sun 30 31 # Tell Defs.gmk that VIS is needed 32 VIS_NEEDED=true 33 34 # Use highest optimization level 35 OPTMIZATION_LEVEL = HIGHEST 36 37 include $(BUILDDIR)/common/Defs.gmk 38 39 OTHER_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES 40 41 ifneq ($(PLATFORM), windows) 42 CLASSES_INIT += $(TEMPDIR)/.gen_icons 43 endif 44 45 # 46 # Files 47 # 48 49 # 50 # Include all Java source files in sun/awt and sun/java2d, except for: 51 # sun/awt/resources handled by java/awt/Makefile 52 # sun/java2d/pisces handled by sun/pisces/Makefile 53 # 54 AUTO_FILES_JAVA_DIRS = sun/awt sun/java2d com/sun/awt 55 AUTO_JAVA_PRUNE = resources pisces 56 57 ifeq ($(PLATFORM), windows) 58 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS 59 60 # 61 # Files 62 # 63 include FILES_c_windows.gmk 64 include FILES_export_windows.gmk 65 66 # 67 # Prune files that are currently unused on Windows (but still used on 68 # Solaris/Linux). 69 # 70 AUTO_JAVA_PRUNE += RemoteOffScreenImage.java 71 72 OTHER_CFLAGS += $(GX_OPTION) -DMLIB_NO_LIBSUNMATH -DUNICODE -D_UNICODE 73 OTHER_CXXFLAGS += $(GX_OPTION) -DUNICODE -D_UNICODE 74 75 ifeq ($(ARCH_DATA_MODEL), 64) 76 OTHER_CFLAGS += -DMLIB_OS64BIT 77 endif 78 79 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS 80 endif # PLATFORM 81 82 ifneq ($(PLATFORM), windows) 83 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS/LINUX 84 85 # 86 # Files 87 # 88 include FILES_c_unix.gmk 89 include FILES_export_unix.gmk 90 # 91 # Prune the sun/awt/X11 subdirectory, which is handled by sun/xawt/Makefile. 92 # Also prune files that are currently unused on Solaris/Linux (but still 93 # used on Windows). 94 # 95 AUTO_JAVA_PRUNE += X11 AWTCharset.java 96 97 ifeq ($(PLATFORM), solaris) 98 FILES_c = $(FILES_2D_c) 99 FILES_c += awt_LoadLibrary.c 100 OTHER_LDLIBS = $(JVMLIB) $(LIBM) $(LIBDL) 101 ifeq ($(CC_VER), 5.8) 102 ifndef REMOVE_ALL_WORKAROUNDS 103 ifeq ($(ARCH_FAMILY), i586) 104 # If on Solaris 11 (or dlfcn.h has unknown_control_flow pragmas in it) 105 # we trigger a SS11 bug that causes the compiler to crash (bug 6343678) 106 # Here we check to see if we need this workaround and change the opt 107 # settings for this one file. 108 USE_WORKAROUND:=$(shell $(GREP) unknown_control_flow /usr/include/dlfcn.h) 109 ifneq ($(USE_WORKAROUND),) 110 ifeq ($(FASTDEBUG), true) 111 CFLAGS_DBG/awt_Mlib.o = -xO0 \ 112 $(warning "WARNING: Using workaround for SS11 bug 6343678, on $@") 113 endif 114 # Compiler bug 6343678 need to prevent a SEGV in the compiler 115 CFLAGS_OPT/awt_Mlib.o = -g \ 116 $(warning "WARNING: Using workaround for SS11 bug 6343678, on $@") 117 endif 118 endif 119 endif 120 endif 121 endif 122 123 ifeq ($(PLATFORM), linux) 124 FILES_c = $(FILES_2D_c) 125 FILES_c += awt_LoadLibrary.c 126 OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH 127 OTHER_LDLIBS = $(JVMLIB) $(LIBM) $(LIBDL) 128 endif 129 130 FILES_c += initIDs.c 131 132 ifeq ($(PLATFORM), macosx) 133 FILES_c = $(FILES_2D_c) 134 FILES_c += awt_LoadLibrary.c 135 OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH 136 OTHER_LDLIBS = $(JVMLIB) $(LIBM) 137 endif 138 139 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUX 140 endif # PLATFORM 141 142 ifeq ($(PLATFORM), macosx) 143 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv MAC OS X 144 145 # 146 # Files 147 # 148 include FILES_c_macosx.gmk 149 include FILES_export_macosx.gmk 150 151 FILES_objc = $(FILES_AWT_objc) 152 OTHER_LDLIBS = -lmlib_image $(JVMLIB) $(LIBM) \ 153 -framework Cocoa \ 154 -framework OpenGL \ 155 -framework JavaNativeFoundation \ 156 -framework JavaRuntimeSupport \ 157 -framework ApplicationServices \ 158 -framework AudioToolbox 159 160 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ MAC OS X 161 endif # PLATFORM 162 163 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS-SPARC 164 # solaris-sparc and solaris-sparcv9 both build 'vis' 165 ifeq ("$(PLATFORM)-$(ARCH_FAMILY)", "solaris-sparc") 166 FILES_c += $(FILES_2D_vis) 167 ASFLAGS += -P 168 FILES_s += mlib_v_ImageCopy_blk.s 169 INLINE_VIS = $(PLATFORM_SRC)/native/sun/awt/medialib/vis_$(ARCH_DATA_MODEL).il 170 CFLAGS_sparcv9 = -DMLIB_OS64BIT 171 172 CFLAGS += $(CFLAGS_$(ARCH)) -DMLIB_ADD_SUFF $(INLINE_VIS) \ 173 -I$(SHARE_SRC)/native/sun/awt/medialib \ 174 -I$(PLATFORM_SRC)/native/sun/awt/medialib \ 175 -I$(PLATFORM_SRC)/native/sun/java2d/loops 176 177 vpath %.c $(PLATFORM_SRC)/native/sun/java2d/loops 178 vpath %.c $(SHARE_SRC)/native/sun/awt/medialib 179 vpath %.c $(PLATFORM_SRC)/native/sun/awt/medialib 180 vpath %.s $(PLATFORM_SRC)/native/sun/awt/medialib 181 182 else 183 FILES_c += MapAccelFunc.c 184 endif 185 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS-SPARC 186 187 # 188 # Resources 189 # 190 LOCALE_SET_DEFINITION = jre 191 ifeq ($(PLATFORM), windows) 192 RESOURCE_BUNDLES_COMPILED_PROPERTIES += \ 193 sun/awt/windows/awtLocalization.properties 194 endif 195 196 # 197 # Rules 198 # 199 ifeq ($(PLATFORM), linux) 200 FILES_m = mapfile-vers-linux 201 # libawt.so on Linux is statically linked with Motif and contains all the 202 # Xm symbols. Mapfile is disabled so the symbols will remain public. 203 LDNOMAP=true 204 endif 205 206 include $(BUILDDIR)/common/Mapfile-vers.gmk 207 include $(BUILDDIR)/common/Library.gmk 208 209 COMPILEFONTCONFIG_FLAGS = 210 ifdef ALT_COMPILEFONTCONFIG_FLAGS 211 COMPILEFONTCONFIG_FLAGS += $(ALT_COMPILEFONTCONFIG_FLAGS) 212 endif 213 build: fontconfigs 214 215 ifneq ($(PLATFORM), windows) 216 217 GEN_DIR=$(GENSRCDIR)/sun/awt/ 218 219 ifdef OPENJDK 220 ICONS_PATH_PREFIX=$(PLATFORM_SRC) 221 else 222 ICONS_PATH_PREFIX=$(CLOSED_SRC)/solaris 223 endif 224 225 ICONS = \ 226 $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon16.png \ 227 $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon24.png \ 228 $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon32.png \ 229 $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon48.png 230 231 ICONPATH=$(SHARE_SRC)/classes/sun/awt/resources 232 233 ICONS += \ 234 $(ICONPATH)/security-icon-bw16.png \ 235 $(ICONPATH)/security-icon-interim16.png \ 236 $(ICONPATH)/security-icon-yellow16.png \ 237 $(ICONPATH)/security-icon-bw24.png \ 238 $(ICONPATH)/security-icon-interim24.png \ 239 $(ICONPATH)/security-icon-yellow24.png \ 240 $(ICONPATH)/security-icon-bw32.png \ 241 $(ICONPATH)/security-icon-interim32.png \ 242 $(ICONPATH)/security-icon-yellow32.png \ 243 $(ICONPATH)/security-icon-bw48.png \ 244 $(ICONPATH)/security-icon-interim48.png \ 245 $(ICONPATH)/security-icon-yellow48.png 246 247 TEMPDIR_CLASSES = $(TEMPDIR)/classes 248 249 generated.clean: 250 $(RM) -r $(GEN_DIR)/*.java 251 $(RM) -r $(TEMPDIR)/.gen_icons 252 253 $(TEMPDIR_CLASSES)/sun/awt/ToBin.class: ToBin.java 254 @$(prep-target) 255 $(BOOT_JAVAC_CMD) -d $(TEMPDIR_CLASSES) $< 256 257 $(TEMPDIR)/.gen_icons: $(TEMPDIR_CLASSES)/sun/awt/ToBin.class $(ICONS) 258 $(prep-target) 259 for i in $(ICONS); do \ 260 filename=`basename $$i`; \ 261 name=`$(ECHO) $$filename | $(TR) '\-.' '__'`; \ 262 classname=$(GEN_DIR)/AWTIcon32_$$name.java; \ 263 $(RM) $$classname; \ 264 $(ECHO) "package sun.awt;" >> $$classname ; \ 265 $(ECHO) "public class AWTIcon32_$$name {" >> $$classname; \ 266 $(ECHO) "public final static int[] $$name = { " >> $$classname; \ 267 $(CAT) $$i | \ 268 $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES) \ 269 -Djava.awt.headless=true \ 270 sun.awt.ToBin >> $$classname; \ 271 $(ECHO) "}; }" >> $$classname; \ 272 classname=$(GEN_DIR)/AWTIcon64_$$name.java; \ 273 $(RM) $$classname; \ 274 $(ECHO) "package sun.awt;" >> $$classname ; \ 275 $(ECHO) "public class AWTIcon64_$$name {" >> $$classname; \ 276 $(ECHO) "public final static long[] $$name = { " >> $$classname; \ 277 $(CAT) $$i | \ 278 $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES) \ 279 -Djava.awt.headless=true \ 280 sun.awt.ToBin >> $$classname; \ 281 $(ECHO) "}; }" >> $$classname; \ 282 done 283 $(TOUCH) $@ 284 285 clean clobber:: generated.clean 286 endif 287 288 289 ifeq ($(PLATFORM), windows) 290 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS 291 # 292 # Additional dependencies. 293 # 294 # If make.depend is not working correctly, then it can be omitted 295 # if you always build from a clean workspace. 296 297 include make.depend 298 299 # required additional rules: 300 301 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS 302 endif # PLATFORM 303 304 ifneq ($(PLATFORM), windows) 305 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS/LINUX 306 307 ifndef OPENJDK 308 build: dgalibs 309 endif 310 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUX 311 endif # PLATFORM 312 313 clobber clean:: java2d.clean fontconfigs.clean 314 315 ifndef OPENJDK 316 clobber clean:: dgalib.clean 317 endif 318 319 java2d.clean: 320 $(RM) -r $(CLASSBINDIR)/sun/java2d .classes.* 321 322 # 323 # Add to the ambient vpath to pick up files in subdirectories 324 # 325 vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/image 326 vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/image/gif 327 vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/image/cvutils 328 vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/shell 329 vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/medialib 330 vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/debug 331 vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/utility 332 vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d 333 vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops 334 vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe 335 vpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)/image 336 ifeq ($(PLATFORM), windows) 337 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS 338 vpath %.cpp $(PLATFORM_SRC)/native/sun/windows 339 vpath %.cpp $(PLATFORM_SRC)/native/$(PKGDIR) 340 vpath %.cpp $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/windows 341 vpath %.cpp $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/d3d 342 vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl 343 vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl 344 vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../font 345 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS 346 endif # PLATFORM 347 348 ifneq (,$(findstring $(PLATFORM), linux bsd)) 349 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv LINUX 350 vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl 351 vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl 352 vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11 353 vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../font 354 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ LINUX 355 endif # PLATFORM 356 357 ifeq ($(PLATFORM), macosx) 358 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv MAC OS X 359 vpath %.m $(call NativeSrcDirList,,native/com/apple/resources) 360 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ MAC OS X 361 endif # PLATFORM 362 363 ifeq ($(PLATFORM), windows) 364 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS 365 OTHER_LDLIBS = kernel32.lib user32.lib gdi32.lib winspool.lib \ 366 imm32.lib ole32.lib uuid.lib shell32.lib \ 367 comdlg32.lib winmm.lib comctl32.lib \ 368 shlwapi.lib delayimp.lib \ 369 $(JVMLIB) \ 370 /DELAYLOAD:user32.dll /DELAYLOAD:gdi32.dll \ 371 /DELAYLOAD:shell32.dll /DELAYLOAD:winmm.dll \ 372 /DELAYLOAD:winspool.drv /DELAYLOAD:imm32.dll \ 373 /DELAYLOAD:ole32.dll /DELAYLOAD:comdlg32.dll \ 374 /DELAYLOAD:comctl32.dll /DELAYLOAD:shlwapi.dll 375 376 clean:: awt.clean 377 378 awt.clean: 379 $(RM) $(TEMPDIR)/awt.ico 380 $(RM) $(TEMPDIR)/awt.res 381 $(RM) $(TEMPDIR)/hand.cur 382 $(RM) $(TEMPDIR)/check.bmp 383 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS 384 endif # PLATFORM 385 386 ifneq ($(PLATFORM), windows) 387 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS/LINUX 388 389 LIBXTST = -lXtst 390 391 # Use -lXmu for EditRes support 392 LIBXMU_DBG = -lXmu 393 LIBXMU_OPT = 394 LIBXMU = $(LIBXMU_$(VARIANT)) 395 396 # 397 # Extra C flags. 398 # 399 400 401 ifndef OPENJDK 402 403 # 404 # Solaris X11 Direct Graphics Access library 405 # 406 407 _DGALIBS_sparc = \ 408 libxinerama.so \ 409 libjdgaSUNWcg6.so \ 410 libjdgaSUNWffb.so \ 411 libjdgaSUNWm64.so \ 412 libjdgaSUNWafb.so 413 414 _DGALIBS_sparcv9 = \ 415 libxinerama.so \ 416 libjdgaSUNWcg6.so \ 417 libjdgaSUNWffb.so \ 418 libjdgaSUNWm64.so \ 419 libjdgaSUNWafb.so 420 421 _DGALIBS_i586 = # no i586 library yet 422 423 _DGALIBS_amd64 = # no amd64 library yet 424 425 DGALIBS = $(_DGALIBS_$(ARCH):%=$(LIBDIR)/$(LIBARCH)/%) 426 427 dgalibs: $(DGALIBS) 428 429 $(LIBDIR)/$(LIBARCH)/libxinerama.so: $(CLOSED_SRC)/solaris/lib/$(ARCH)/libxinerama.so 430 $(install-file) 431 $(call chmod-file, a+x) 432 433 $(LIBDIR)/$(LIBARCH)/libjdgaSUNW%.so: $(CLOSED_SRC)/solaris/lib/$(ARCH)/libjdgaSUNW%.so 434 $(install-file) 435 $(call chmod-file, a+x) 436 437 $(LIBDIR)/$(LIBARCH)/libjdgaSUNWafb.so: $(LIBDIR)/$(LIBARCH)/libjdgaSUNWffb.so 438 $(prep-target) 439 $(call install-sym-link, libjdgaSUNWffb.so) 440 441 clean:: dgalib.clean 442 443 dgalib.clean: 444 $(RM) $(LIBDIR)/$(LIBARCH)/libjdgaSUNW* $(LIBDIR)/$(LIBARCH)/libxinerama.so 445 endif 446 447 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUX 448 endif # PLATFORM 449 450 # 451 # Font configs 452 # 453 454 ifeq ($(PLATFORM), windows) 455 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS 456 457 FONTCONFIGS_SRC = $(PLATFORM_SRC)/classes/sun/awt/windows 458 _FONTCONFIGS = \ 459 fontconfig.properties 460 461 FONTCONFIGS_SRC_PREFIX = 462 463 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS 464 endif # PLATFORM 465 466 ifeq ($(PLATFORM), linux) 467 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv LINUX 468 ifdef OPENJDK 469 470 FONTCONFIGS_SRC = 471 _FONTCONFIGS = 472 473 else 474 475 FONTCONFIGS_SRC = $(CLOSED_SRC)/solaris/classes/sun/awt/fontconfigs 476 _FONTCONFIGS = \ 477 fontconfig.properties \ 478 fontconfig.RedHat.5.properties \ 479 fontconfig.RedHat.6.properties \ 480 fontconfig.Turbo.properties \ 481 fontconfig.SuSE.10.properties \ 482 fontconfig.SuSE.11.properties 483 endif 484 485 FONTCONFIGS_SRC_PREFIX = $(PLATFORM). 486 487 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ LINUX 488 endif # PLATFORM 489 490 ifeq ($(PLATFORM), solaris) 491 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS 492 493 FONTCONFIGS_SRC = $(PLATFORM_SRC)/classes/sun/awt/fontconfigs 494 _FONTCONFIGS = \ 495 fontconfig.properties 496 497 FONTCONFIGS_SRC_PREFIX = $(PLATFORM). 498 499 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS 500 endif # PLATFORM 501 502 503 ifeq ($(PLATFORM), macosx) 504 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv MAC OS X 505 506 FONTCONFIGS_SRC = $(JDK_TOPDIR)/src/macosx/classes/sun/awt/fontconfigs 507 _FONTCONFIGS = \ 508 fontconfig.properties 509 510 FONTCONFIGS_SRC_PREFIX = $(PLATFORM). 511 512 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ MAC OS X 513 endif # PLATFORM 514 515 FONTCONFIGS = $(_FONTCONFIGS:%=$(LIBDIR)/%.src) 516 BINARYFONTCONFIGS = $(_FONTCONFIGS:%.properties=$(LIBDIR)/%.bfc) 517 518 ifneq ("x$(_FONTCONFIGS)", "x") 519 fontconfigs: $(FONTCONFIGS) $(BINARYFONTCONFIGS) 520 else 521 fontconfigs: 522 endif 523 524 $(LIBDIR)/%.src: $(FONTCONFIGS_SRC)/$(FONTCONFIGS_SRC_PREFIX)% 525 $(install-file) 526 527 COMPILEFONTCONFIG_JARFILE = $(BUILDTOOLJARDIR)/compilefontconfig.jar 528 529 $(LIBDIR)/%.bfc: $(FONTCONFIGS_SRC)/$(FONTCONFIGS_SRC_PREFIX)%.properties \ 530 $(COMPILEFONTCONFIG_JARFILE) 531 $(prep-target) 532 $(BOOT_JAVA_CMD) -jar $(COMPILEFONTCONFIG_JARFILE) $(COMPILEFONTCONFIG_FLAGS) $< $@ 533 $(call chmod-file, 444) 534 @$(java-vm-cleanup) 535 536 ifneq ("x$(_FONTCONFIGS)", "x") 537 fontconfigs.clean : 538 $(RM) $(FONTCONFIGS) 539 $(RM) $(BINARYFONTCONFIGS) 540 else 541 fontconfigs.clean : 542 endif 543 544 ifeq ($(PLATFORM), windows) 545 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS 546 OTHER_CFLAGS += $(GX_OPTION) -DUNICODE -D_UNICODE 547 548 ifeq ($(MILESTONE), internal) 549 CPPFLAGS += -DINTERNAL_BUILD 550 endif 551 552 # 553 # Useful variables that name parts of the src tree. 554 # 555 WINAWT_native = $(PLATFORM_SRC)/native/sun/windows 556 WINAWT_COMMON_native = $(PLATFORM_SRC)/native/sun/awt_common 557 558 # FIXME: awt shouldn't have to see the VM's private headers. 559 # FIXME: if you re-order this list, the build breaks, possibly because 560 # of filename collision. Such a collision, if present, is pure 561 # evil. Need to investigate this. 562 563 OTHER_INCLUDES += -I$(CLASSHDRDIR)/../../java/jvm \ 564 -I$(OBJDIR) \ 565 -I$(SHARE_SRC)/native/common \ 566 -I$(WINAWT_native) \ 567 -I$(DXSDK_INCLUDE_PATH) \ 568 -I$(SHARE_SRC)/native/sun/awt/image/cvutils \ 569 -I$(SHARE_SRC)/native/sun/awt/image \ 570 -I$(SHARE_SRC)/native/sun/java2d/loops \ 571 -I$(SHARE_SRC)/native/sun/java2d \ 572 -I$(PLATFORM_SRC)/native/sun/java2d \ 573 -I$(SHARE_SRC)/native/sun/java2d/opengl \ 574 -I$(PLATFORM_SRC)/native/sun/java2d/d3d \ 575 -I$(PLATFORM_SRC)/native/sun/java2d/opengl \ 576 -I$(PLATFORM_SRC)/native/sun/java2d/windows \ 577 -I$(SHARE_SRC)/native/sun/font \ 578 -I$(SHARE_SRC)/native/sun/java2d/pipe \ 579 -I$(SHARE_SRC)/native/sun/dc/path \ 580 -I$(SHARE_SRC)/native/sun/dc/doe \ 581 -I$(SHARE_SRC)/native/sun/awt/debug \ 582 -I$(PLATFORM_SRC)/native/sun/awt 583 # -I$(WINAWT_COMMON_native) 584 585 # this is only required for compiling )/native/sun/awt/medialib/*.c files 586 # 587 OTHER_INCLUDES += -I$(SHARE_SRC)/native/sun/awt/medialib 588 589 # 590 # .res file construction. 591 # 592 593 ifdef OPENJDK 594 RC_FLAGS += -i "$(PLATFORM_SRC)/resource/icons" 595 else 596 RC_FLAGS += -i "$(CLOSED_SRC)/windows/native/sun/windows" 597 endif 598 VERSIONINFO_RESOURCE = $(WINAWT_native)/awt.rc 599 600 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS 601 endif # PLATFORM 602 603 ifneq ($(PLATFORM), windows) 604 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS/LINUX 605 606 # 607 # Other extra flags needed for compiling. 608 # 609 610 ifeq ($(PLATFORM), linux) 611 CPPFLAGS += -I$(OPENWIN_HOME)/include \ 612 -I$(OPENWIN_HOME)/include/X11/extensions \ 613 -I$(PLATFORM_SRC)/native/$(PKGDIR)/font 614 endif 615 CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \ 616 -I$(SHARE_SRC)/native/$(PKGDIR)/../font \ 617 -I$(PLATFORM_SRC)/native/$(PKGDIR)/../font \ 618 -I$(SHARE_SRC)/native/$(PKGDIR)/image \ 619 -I$(SHARE_SRC)/native/$(PKGDIR)/image/cvutils \ 620 -I$(SHARE_SRC)/native/$(PKGDIR)/shell \ 621 -I$(SHARE_SRC)/native/$(PKGDIR)/medialib \ 622 -I$(PLATFORM_SRC)/native/$(PKGDIR)/medialib \ 623 -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d \ 624 -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d \ 625 -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops \ 626 -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe \ 627 -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl \ 628 -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl \ 629 -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11 \ 630 -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/doe \ 631 -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/path \ 632 -I$(PLATFORM_SRC)/native/$(PKGDIR)/../jdga \ 633 -I$(PLATFORM_SRC)/native/$(PKGDIR) \ 634 $(EVENT_MODEL) 635 636 ifeq ($(PLATFORM), linux) 637 LDFLAGS += -L$(OPENWIN_LIB) 638 endif 639 640 LDFLAGS += -L$(LIBDIR)/$(LIBARCH)/$(TSOBJDIR) \ 641 $(AWT_RUNPATH) 642 643 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUX 644 endif # PLATFORM 645 646 CLASSES.export += java.io.InputStream \ 647 java.lang.Integer \ 648 java.lang.ThreadGroup 649 650 .PHONY: dgalibs dgalib.clean fontconfigs fontconfigs.clean generated.clean 651