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