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 ifeq ($(PLATFORM), macosx)
 197   NEW_RESOURCE_BUNDLES_COMPILED_PROPERTIES += \
 198         sun/awt/resources/awtosx.properties
 199 endif
 200 #
 201 # Rules
 202 #
 203 ifeq ($(PLATFORM), linux)
 204   FILES_m = mapfile-vers-linux
 205   # libawt.so on Linux is statically linked with Motif and contains all the
 206   # Xm symbols. Mapfile is disabled so the symbols will remain public.
 207   LDNOMAP=true
 208 endif
 209 
 210 include $(BUILDDIR)/common/Mapfile-vers.gmk
 211 include $(BUILDDIR)/common/Library.gmk
 212 
 213 COMPILEFONTCONFIG_FLAGS =
 214 ifdef ALT_COMPILEFONTCONFIG_FLAGS
 215   COMPILEFONTCONFIG_FLAGS += $(ALT_COMPILEFONTCONFIG_FLAGS)
 216 endif
 217 build: fontconfigs
 218 
 219 ifneq ($(PLATFORM), windows)
 220 
 221 GEN_DIR=$(GENSRCDIR)/sun/awt/
 222 
 223 ifdef OPENJDK
 224     ICONS_PATH_PREFIX=$(PLATFORM_SRC)
 225 else
 226     ICONS_PATH_PREFIX=$(CLOSED_SRC)/solaris
 227 endif
 228 
 229 ICONS = \
 230     $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon16.png \
 231     $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon24.png \
 232     $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon32.png \
 233     $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon48.png
 234 
 235 ICONPATH=$(SHARE_SRC)/classes/sun/awt/resources
 236 
 237 ICONS += \
 238    $(ICONPATH)/security-icon-bw16.png \
 239    $(ICONPATH)/security-icon-interim16.png \
 240    $(ICONPATH)/security-icon-yellow16.png \
 241    $(ICONPATH)/security-icon-bw24.png \
 242    $(ICONPATH)/security-icon-interim24.png \
 243    $(ICONPATH)/security-icon-yellow24.png \
 244    $(ICONPATH)/security-icon-bw32.png \
 245    $(ICONPATH)/security-icon-interim32.png \
 246    $(ICONPATH)/security-icon-yellow32.png \
 247    $(ICONPATH)/security-icon-bw48.png \
 248    $(ICONPATH)/security-icon-interim48.png \
 249    $(ICONPATH)/security-icon-yellow48.png
 250 
 251 TEMPDIR_CLASSES = $(TEMPDIR)/classes
 252    
 253 generated.clean:
 254         $(RM) -r $(GEN_DIR)/*.java
 255         $(RM) -r $(TEMPDIR)/.gen_icons   
 256 
 257 $(TEMPDIR_CLASSES)/sun/awt/ToBin.class: ToBin.java
 258         @$(prep-target)
 259         $(BOOT_JAVAC_CMD) -d $(TEMPDIR_CLASSES) $<
 260 
 261 $(TEMPDIR)/.gen_icons: $(TEMPDIR_CLASSES)/sun/awt/ToBin.class $(ICONS)
 262         $(prep-target)
 263         for i in $(ICONS); do \
 264             filename=`basename $$i`; \
 265             name=`$(ECHO) $$filename | $(TR) '\-.' '__'`;  \
 266             classname=$(GEN_DIR)/AWTIcon32_$$name.java; \
 267             $(RM) $$classname; \
 268             $(ECHO) "package sun.awt;" >> $$classname ; \
 269             $(ECHO) "public class AWTIcon32_$$name {" >> $$classname; \
 270             $(ECHO) "public final static int[] $$name = { " >> $$classname;  \
 271             $(CAT) $$i | \
 272               $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES)  \
 273                 -Djava.awt.headless=true \
 274                 sun.awt.ToBin >> $$classname; \
 275             $(ECHO) "}; }" >> $$classname;  \
 276             classname=$(GEN_DIR)/AWTIcon64_$$name.java; \
 277             $(RM) $$classname; \
 278             $(ECHO) "package sun.awt;" >> $$classname ; \
 279             $(ECHO) "public class AWTIcon64_$$name {" >> $$classname; \
 280             $(ECHO) "public final static long[] $$name = { " >> $$classname;  \
 281             $(CAT) $$i | \
 282               $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES)  \
 283                 -Djava.awt.headless=true \
 284                 sun.awt.ToBin >> $$classname; \
 285             $(ECHO) "}; }" >> $$classname;  \
 286         done
 287         $(TOUCH) $@
 288 
 289 clean clobber:: generated.clean    
 290 endif
 291 
 292 
 293 ifeq ($(PLATFORM), windows)
 294 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS
 295 #
 296 # Additional dependencies.
 297 #
 298 # If make.depend is not working correctly, then it can be omitted
 299 # if you always build from a clean workspace. 
 300 
 301 include make.depend
 302 
 303 # required additional rules:
 304 
 305 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS
 306 endif # PLATFORM
 307 
 308 ifneq ($(PLATFORM), windows)
 309 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS/LINUX
 310 
 311 ifndef OPENJDK
 312 build: dgalibs
 313 endif
 314 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUX
 315 endif # PLATFORM
 316 
 317 clobber clean:: java2d.clean fontconfigs.clean
 318 
 319 ifndef OPENJDK
 320 clobber clean:: dgalib.clean 
 321 endif
 322 
 323 java2d.clean:
 324         $(RM) -r $(CLASSBINDIR)/sun/java2d .classes.*
 325 
 326 #
 327 # Add to the ambient vpath to pick up files in subdirectories
 328 #
 329 vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/image
 330 vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/image/gif
 331 vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/image/cvutils
 332 vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/shell
 333 vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/medialib
 334 vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/debug
 335 vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/utility
 336 vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d
 337 vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops
 338 vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe
 339 vpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)/image
 340 ifeq ($(PLATFORM), windows)
 341 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS
 342 vpath %.cpp   $(PLATFORM_SRC)/native/sun/windows
 343 vpath %.cpp   $(PLATFORM_SRC)/native/$(PKGDIR)
 344 vpath %.cpp   $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/windows
 345 vpath %.cpp   $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/d3d
 346 vpath %.c     $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl
 347 vpath %.c     $(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl
 348 vpath %.c     $(SHARE_SRC)/native/$(PKGDIR)/../font
 349 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS
 350 endif # PLATFORM
 351 
 352 ifneq (,$(findstring $(PLATFORM), linux bsd))
 353 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv LINUX
 354 vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl
 355 vpath %.c   $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl
 356 vpath %.c   $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11
 357 vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../font
 358 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ LINUX
 359 endif # PLATFORM
 360 
 361 ifeq ($(PLATFORM), macosx)
 362 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv MAC OS X
 363 vpath %.m   $(call NativeSrcDirList,,native/com/apple/resources)
 364 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ MAC OS X
 365 endif # PLATFORM
 366 
 367 ifeq ($(PLATFORM), windows)
 368 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS
 369 OTHER_LDLIBS = kernel32.lib user32.lib gdi32.lib winspool.lib \
 370                imm32.lib ole32.lib uuid.lib shell32.lib \
 371                comdlg32.lib winmm.lib comctl32.lib \
 372                shlwapi.lib delayimp.lib \
 373                $(JVMLIB) \
 374                /DELAYLOAD:user32.dll /DELAYLOAD:gdi32.dll \
 375                /DELAYLOAD:shell32.dll /DELAYLOAD:winmm.dll \
 376                /DELAYLOAD:winspool.drv /DELAYLOAD:imm32.dll \
 377                /DELAYLOAD:ole32.dll /DELAYLOAD:comdlg32.dll \
 378                /DELAYLOAD:comctl32.dll /DELAYLOAD:shlwapi.dll
 379 
 380 clean:: awt.clean
 381 
 382 awt.clean: 
 383         $(RM) $(TEMPDIR)/awt.ico 
 384         $(RM) $(TEMPDIR)/awt.res 
 385         $(RM) $(TEMPDIR)/hand.cur 
 386         $(RM) $(TEMPDIR)/check.bmp
 387 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS
 388 endif # PLATFORM
 389 
 390 ifneq ($(PLATFORM), windows)
 391 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS/LINUX
 392 
 393 LIBXTST = -lXtst
 394 
 395 # Use -lXmu for EditRes support
 396 LIBXMU_DBG      = -lXmu
 397 LIBXMU_OPT      =
 398 LIBXMU          = $(LIBXMU_$(VARIANT))
 399 
 400 #
 401 # Extra C flags.
 402 #
 403 
 404 
 405 ifndef OPENJDK
 406 
 407 #
 408 # Solaris X11 Direct Graphics Access library
 409 #
 410 
 411 _DGALIBS_sparc = \
 412         libxinerama.so \
 413         libjdgaSUNWcg6.so \
 414         libjdgaSUNWffb.so \
 415         libjdgaSUNWm64.so \
 416         libjdgaSUNWafb.so
 417 
 418 _DGALIBS_sparcv9 = \
 419         libxinerama.so \
 420         libjdgaSUNWcg6.so \
 421         libjdgaSUNWffb.so \
 422         libjdgaSUNWm64.so \
 423         libjdgaSUNWafb.so
 424 
 425 _DGALIBS_i586 =         # no i586 library yet
 426 
 427 _DGALIBS_amd64 =        # no amd64 library yet
 428 
 429 DGALIBS = $(_DGALIBS_$(ARCH):%=$(LIBDIR)/$(LIBARCH)/%)
 430 
 431 dgalibs: $(DGALIBS)
 432 
 433 $(LIBDIR)/$(LIBARCH)/libxinerama.so: $(CLOSED_SRC)/solaris/lib/$(ARCH)/libxinerama.so
 434         $(install-file)
 435         $(call chmod-file, a+x)
 436 
 437 $(LIBDIR)/$(LIBARCH)/libjdgaSUNW%.so: $(CLOSED_SRC)/solaris/lib/$(ARCH)/libjdgaSUNW%.so
 438         $(install-file)
 439         $(call chmod-file, a+x)
 440 
 441 $(LIBDIR)/$(LIBARCH)/libjdgaSUNWafb.so: $(LIBDIR)/$(LIBARCH)/libjdgaSUNWffb.so
 442         $(prep-target)
 443         $(call install-sym-link, libjdgaSUNWffb.so)
 444 
 445 clean:: dgalib.clean
 446 
 447 dgalib.clean:
 448         $(RM) $(LIBDIR)/$(LIBARCH)/libjdgaSUNW* $(LIBDIR)/$(LIBARCH)/libxinerama.so
 449 endif
 450 
 451 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUX
 452 endif # PLATFORM
 453 
 454 #
 455 # Font configs
 456 #
 457 
 458 ifeq ($(PLATFORM), windows)
 459 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS
 460 
 461 FONTCONFIGS_SRC = $(PLATFORM_SRC)/classes/sun/awt/windows
 462 _FONTCONFIGS = \
 463         fontconfig.properties
 464 
 465 FONTCONFIGS_SRC_PREFIX =
 466 
 467 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS
 468 endif # PLATFORM
 469 
 470 ifeq ($(PLATFORM), linux)
 471 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv LINUX
 472 ifdef OPENJDK
 473 
 474 FONTCONFIGS_SRC = $(PLATFORM_SRC)/classes/sun/awt/fontconfigs
 475 _FONTCONFIGS    = \
 476         fontconfig.properties                           \
 477         fontconfig.SuSE.properties                      \
 478         fontconfig.Ubuntu.properties                    \
 479         fontconfig.Fedora.properties
 480 else
 481 
 482 FONTCONFIGS_SRC = $(CLOSED_SRC)/solaris/classes/sun/awt/fontconfigs
 483 _FONTCONFIGS    = \
 484         fontconfig.properties                           \
 485         fontconfig.RedHat.5.properties                  \
 486         fontconfig.RedHat.6.properties                  \
 487         fontconfig.Turbo.properties                     \
 488         fontconfig.SuSE.10.properties                   \
 489         fontconfig.SuSE.11.properties
 490 endif
 491 
 492 FONTCONFIGS_SRC_PREFIX = $(PLATFORM).
 493 
 494 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ LINUX
 495 endif # PLATFORM
 496 
 497 ifeq ($(PLATFORM), solaris)
 498 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS
 499 
 500 FONTCONFIGS_SRC = $(PLATFORM_SRC)/classes/sun/awt/fontconfigs
 501 _FONTCONFIGS    = \
 502         fontconfig.properties
 503 
 504 FONTCONFIGS_SRC_PREFIX = $(PLATFORM).
 505 
 506 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS
 507 endif # PLATFORM
 508 
 509 
 510 ifeq ($(PLATFORM), macosx)
 511 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv MAC OS X
 512 
 513 FONTCONFIGS_SRC = $(JDK_TOPDIR)/src/macosx/classes/sun/awt/fontconfigs
 514 _FONTCONFIGS    = \
 515         fontconfig.properties
 516 
 517 FONTCONFIGS_SRC_PREFIX = $(PLATFORM).
 518 
 519 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ MAC OS X
 520 endif # PLATFORM
 521 
 522 FONTCONFIGS     = $(_FONTCONFIGS:%=$(LIBDIR)/%.src)
 523 BINARYFONTCONFIGS = $(_FONTCONFIGS:%.properties=$(LIBDIR)/%.bfc)
 524 
 525 fontconfigs: $(FONTCONFIGS) $(BINARYFONTCONFIGS)
 526 
 527 $(LIBDIR)/%.src: $(FONTCONFIGS_SRC)/$(FONTCONFIGS_SRC_PREFIX)%
 528         $(install-file)
 529 
 530 COMPILEFONTCONFIG_JARFILE = $(BUILDTOOLJARDIR)/compilefontconfig.jar
 531 
 532 $(LIBDIR)/%.bfc: $(FONTCONFIGS_SRC)/$(FONTCONFIGS_SRC_PREFIX)%.properties \
 533     $(COMPILEFONTCONFIG_JARFILE)
 534         $(prep-target)
 535         $(BOOT_JAVA_CMD) -jar $(COMPILEFONTCONFIG_JARFILE) $(COMPILEFONTCONFIG_FLAGS) $< $@
 536         $(call chmod-file, 444)
 537         @$(java-vm-cleanup)
 538 
 539 fontconfigs.clean :
 540         $(RM) $(FONTCONFIGS)
 541         $(RM) $(BINARYFONTCONFIGS)
 542 
 543 ifeq ($(PLATFORM), windows)
 544 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS
 545 OTHER_CFLAGS += $(GX_OPTION) -DUNICODE -D_UNICODE
 546 
 547 ifeq ($(MILESTONE), internal)
 548   CPPFLAGS += -DINTERNAL_BUILD
 549 endif
 550 
 551 #
 552 # Useful variables that name parts of the src tree.
 553 #
 554 WINAWT_native        = $(PLATFORM_SRC)/native/sun/windows
 555 WINAWT_COMMON_native = $(PLATFORM_SRC)/native/sun/awt_common
 556 
 557 # FIXME: awt shouldn't have to see the VM's private headers.
 558 # FIXME: if you re-order this list, the build breaks, possibly because 
 559 #        of filename collision. Such a collision, if present, is pure
 560 #        evil. Need to investigate this.
 561 
 562 OTHER_INCLUDES += -I$(CLASSHDRDIR)/../../java/jvm \
 563         -I$(OBJDIR) \
 564         -I$(SHARE_SRC)/native/common \
 565         -I$(WINAWT_native) \
 566         -I$(DXSDK_INCLUDE_PATH) \
 567         -I$(SHARE_SRC)/native/sun/awt/image/cvutils \
 568         -I$(SHARE_SRC)/native/sun/awt/image \
 569         -I$(SHARE_SRC)/native/sun/java2d/loops \
 570         -I$(SHARE_SRC)/native/sun/java2d \
 571         -I$(PLATFORM_SRC)/native/sun/java2d \
 572         -I$(SHARE_SRC)/native/sun/java2d/opengl \
 573         -I$(PLATFORM_SRC)/native/sun/java2d/d3d \
 574         -I$(PLATFORM_SRC)/native/sun/java2d/opengl \
 575         -I$(PLATFORM_SRC)/native/sun/java2d/windows \
 576         -I$(SHARE_SRC)/native/sun/font \
 577         -I$(SHARE_SRC)/native/sun/java2d/pipe \
 578         -I$(SHARE_SRC)/native/sun/dc/path \
 579         -I$(SHARE_SRC)/native/sun/dc/doe \
 580         -I$(SHARE_SRC)/native/sun/awt/debug \
 581         -I$(PLATFORM_SRC)/native/sun/awt
 582 #       -I$(WINAWT_COMMON_native)
 583 
 584 # this is only required for compiling )/native/sun/awt/medialib/*.c files
 585 #
 586 OTHER_INCLUDES += -I$(SHARE_SRC)/native/sun/awt/medialib
 587 
 588 #
 589 # .res file construction.
 590 #
 591 
 592 ifdef OPENJDK
 593     RC_FLAGS += -i "$(PLATFORM_SRC)/resource/icons"
 594 else
 595     RC_FLAGS += -i "$(CLOSED_SRC)/windows/native/sun/windows"
 596 endif
 597 VERSIONINFO_RESOURCE = $(WINAWT_native)/awt.rc
 598 
 599 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS
 600 endif # PLATFORM
 601 
 602 ifneq ($(PLATFORM), windows)
 603 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS/LINUX
 604 
 605 #
 606 # Other extra flags needed for compiling.
 607 #
 608 
 609 ifeq ($(PLATFORM), linux)
 610 CPPFLAGS += -I$(OPENWIN_HOME)/include \
 611             -I$(OPENWIN_HOME)/include/X11/extensions \
 612             -I$(PLATFORM_SRC)/native/$(PKGDIR)/font 
 613 endif
 614 CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \
 615             -I$(SHARE_SRC)/native/$(PKGDIR)/../font \
 616             -I$(PLATFORM_SRC)/native/$(PKGDIR)/../font \
 617             -I$(SHARE_SRC)/native/$(PKGDIR)/image \
 618             -I$(SHARE_SRC)/native/$(PKGDIR)/image/cvutils \
 619             -I$(SHARE_SRC)/native/$(PKGDIR)/shell \
 620             -I$(SHARE_SRC)/native/$(PKGDIR)/medialib \
 621             -I$(PLATFORM_SRC)/native/$(PKGDIR)/medialib \
 622             -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d \
 623             -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d \
 624             -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops \
 625             -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe \
 626             -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl \
 627             -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl \
 628             -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11 \
 629             -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/doe \
 630             -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/path \
 631             -I$(PLATFORM_SRC)/native/$(PKGDIR)/../jdga \
 632             -I$(PLATFORM_SRC)/native/$(PKGDIR) \
 633             $(EVENT_MODEL)
 634 
 635 ifeq ($(PLATFORM), linux)
 636 LDFLAGS += -L$(OPENWIN_LIB)
 637 endif
 638 
 639 LDFLAGS += -L$(LIBDIR)/$(LIBARCH)/$(TSOBJDIR) \
 640            $(AWT_RUNPATH)
 641 
 642 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUX
 643 endif # PLATFORM
 644 
 645 CLASSES.export += java.io.InputStream \
 646                   java.lang.Integer \
 647                   java.lang.ThreadGroup
 648 
 649 .PHONY: dgalibs dgalib.clean fontconfigs fontconfigs.clean generated.clean
 650