Makefile revision 2362
436aad11e01e916f75e68a2e9cb89ac217a990d3Tinderbox User#
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater# Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
c7ef13f6c9ef4436bc804b150e0a93307b11fa27Tinderbox User# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
c7ef13f6c9ef4436bc804b150e0a93307b11fa27Tinderbox User#
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews# This code is free software; you can redistribute it and/or modify it
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User# under the terms of the GNU General Public License version 2 only, as
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User# published by the Free Software Foundation. Oracle designates this
c57668a2fbbe558c1bd21652813616f2f517c469Tinderbox User# particular file as subject to the "Classpath" exception as provided
5e047890ac9b745db060d95f7d1b4f876511240dTinderbox User# by Oracle in the LICENSE file that accompanied this code.
137fdbc214e99c4cbe57551e9e14f2015c2e42aeTinderbox User#
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User# This code is distributed in the hope that it will be useful, but WITHOUT
bed0874e1a09e810575328c4bfc346a47514b69fMark Andrews# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
02b47c5d62e1e827743684c28a08e871da454a2dMark Andrews# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User# version 2 for more details (a copy is included in the LICENSE file that
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User# accompanied this code).
e20309353e6246485c521278131d3fced73d7957Tinderbox User#
e20309353e6246485c521278131d3fced73d7957Tinderbox User# You should have received a copy of the GNU General Public License version
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# 2 along with this work; if not, write to the Free Software Foundation,
9a5217f827ac0e006016745e5305b31dc0c7767fTinderbox User# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
3cc98b8ecedcbc8465f1cf2740b966b315662430Automatic Updater#
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# or visit www.oracle.com if you need additional information or have any
e20309353e6246485c521278131d3fced73d7957Tinderbox User# questions.
e20309353e6246485c521278131d3fced73d7957Tinderbox User#
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
df4ebd8217d02dafc12145b55c4d93d0255d1ec7Tinderbox User#
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews# Makefile for building all of font tools
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater#
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic UpdaterBUILDDIR = ../..
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic UpdaterMODULE = font
91216cff91b34c9ff6e846dc23f248219cafe660Andreas GustafssonPACKAGE = sun.font
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic UpdaterLIBRARY = fontmanager
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox UserPRODUCT = sun
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt# Indicate we want the C++ compiler to do the linking.
e130ab53e992670e2a2ecf043976ac09f21358d1Automatic UpdaterCPLUSPLUSLIBRARY=true
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt# Use higher optimization level
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic UpdaterOPTIMIZATION_LEVEL = HIGHER
24934f08b9ff81c2be711e566e8002d145573031Tinderbox User
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updaterinclude $(BUILDDIR)/common/Defs.gmk
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt
24934f08b9ff81c2be711e566e8002d145573031Tinderbox User#
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User# Created without -z defs on linux
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt#
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox Userifeq ($(PLATFORM), linux)
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater LDFLAGS_DEFS_OPTION =
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updaterendif
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater
cdfc81e048bd34c1d628380247bda6b80a89e20eAutomatic Updater#
cdfc81e048bd34c1d628380247bda6b80a89e20eAutomatic Updater# Files
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater#
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updaterinclude FILES_c.gmk
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater
eabc9c3c07cd956d3c436bd7614cb162dabdda76Mark AndrewsAUTO_FILES_JAVA_DIRS = sun/font
eabc9c3c07cd956d3c436bd7614cb162dabdda76Mark AndrewsFILES_java += java/awt/Font.java java/text/Bidi.java
eabc9c3c07cd956d3c436bd7614cb162dabdda76Mark Andrews
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox UserFILES_export = \
e20309353e6246485c521278131d3fced73d7957Tinderbox User sun/font/SunLayoutEngine.java \
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews java/awt/Font.java \
24934f08b9ff81c2be711e566e8002d145573031Tinderbox User java/text/Bidi.java \
e20309353e6246485c521278131d3fced73d7957Tinderbox User sun/font/FileFont.java \
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews sun/font/FileFontStrike.java \
7feccf248d2a20a2ae48b290f58ded5abc853e9aTinderbox User sun/font/FontManager.java \
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews sun/font/GlyphList.java \
ad411d8ccf8a27eb903b842ab507ba6729d0246bTinderbox User sun/font/NativeFont.java \
80faf1588895fd26490f82f95a7a1b771df1c324Automatic Updater sun/font/StrikeCache.java \
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews sun/font/NullFontScaler.java \
ad411d8ccf8a27eb903b842ab507ba6729d0246bTinderbox User sun/font/FreetypeFontScaler.java \
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews sun/java2d/loops/DrawGlyphList.java \
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrews sun/java2d/loops/DrawGlyphListAA.java \
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrews sun/java2d/loops/DrawGlyphListLCD.java \
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews sun/java2d/loops/GraphicsPrimitive.java
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonifeq ($(PLATFORM), windows)
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater LDLIBS += user32.lib gdi32.lib $(OBJDIR)/../../../sun.awt/awt/$(OBJDIRNAME)/awt.lib
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater OTHER_CFLAGS += -DCC_NOEX
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson OTHER_CXXFLAGS += -DCC_NOEX
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updaterelse # PLATFORM unix
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater FILES_export += \
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrews sun/font/NativeStrike.java \
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrews sun/font/NativeStrikeDisposer.java \
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews sun/font/X11TextRenderer.java \
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User sun/awt/X11GraphicsEnvironment.java
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrewsendif # PLATFORM
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrews
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrews#In the non-OpenJDK mode we need to build T2K
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrewsifndef OPENJDK
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrewst2k:
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont $(ECHO) "lib=" $(ACTUAL_LIBRARY)
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User $(MAKE) -C t2k
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontall build: t2k
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewst2k: library
2ba8f584b97cbab864570e38fd26b8cb90961428Tinderbox Userclean clobber::
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User $(MAKE) -C t2k clean
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewselse
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews
bed0874e1a09e810575328c4bfc346a47514b69fMark AndrewsFILES_m=mapfile-vers.openjdk
24bf1e02f03577db0feb50b80238c4150c96d05dAutomatic Updater
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews#make sure freetype dll will be available at runtime as well as link time
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews#
2ba8f584b97cbab864570e38fd26b8cb90961428Tinderbox User#NB: Default freetype build system uses -h linker option and
a308b69ac66fadf66863484f301314d6e6a3f1d2Automatic Updater# result .so contains hardcoded library name that is later
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews# used for adding dependencies to other objects
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# (e.g. libfontmanager.so).
551271d8198ae06e37edf5da519d8ee153eeac0fTinderbox User#
27c3c21f41520e8d6336d80a8094389e321cb6d2Mark Andrews# It is not obvious how to extract that hardcoded name (libfreetype.so.6)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# without overcomplicating logic here.
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews# To workaround this we hardcode .6 suffix for now.
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews#
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews# Note that .so.6 library will not be found by System.loadLibrary()
01a5c5503482fb3ba52088bf0178a7213273bf96Mark Andrews# but fortunately we need to load FreeType library explicitly
551271d8198ae06e37edf5da519d8ee153eeac0fTinderbox User# on windows only
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews#
df4ebd8217d02dafc12145b55c4d93d0255d1ec7Tinderbox User#TODO: rework this to avoid hardcoding library name in the makefile
cdfc81e048bd34c1d628380247bda6b80a89e20eAutomatic Updater#
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updaterifeq ($(PLATFORM), windows)
fe80a4909bf62b602feaf246866e9d29f7654194Automatic Updater FREETYPE_LIB = $(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX)
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater OTHER_LDLIBS += $(FREETYPE_LIB_PATH)/freetype.lib
fa0326cc2cf428f67575b6ba3b97b528a31b0010Tinderbox Userelse
fa0326cc2cf428f67575b6ba3b97b528a31b0010Tinderbox User ifeq ($(USING_SYSTEM_FT_LIB), false)
fa0326cc2cf428f67575b6ba3b97b528a31b0010Tinderbox User FREETYPE_LIB = $(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX).6
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater endif
fe80a4909bf62b602feaf246866e9d29f7654194Automatic Updater OTHER_LDLIBS += -L$(FREETYPE_LIB_PATH) -lfreetype
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updaterendif
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonlibrary:: $(FREETYPE_LIB)
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews$(FREETYPE_LIB):
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson $(CP) $(FREETYPE_LIB_PATH)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX) $@
dd65eb1efb40b1c47d57963192bfc54873b219beAutomatic Updater $(install-module-file)
dd65eb1efb40b1c47d57963192bfc54873b219beAutomatic Updaterendif
dd65eb1efb40b1c47d57963192bfc54873b219beAutomatic Updater
133e6d43fa82e80d3798be4de00f4540f485ec6cAutomatic Updater#ifeq ($(PLATFORM), solaris)
133e6d43fa82e80d3798be4de00f4540f485ec6cAutomatic Updater# FILES_reorder += reorder-$(ARCH)
133e6d43fa82e80d3798be4de00f4540f485ec6cAutomatic Updater#endif
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updaterinclude $(BUILDDIR)/common/Mapfile-vers.gmk
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssoninclude $(BUILDDIR)/common/Library.gmk
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater
5f7586ddbd3edd11272cdd30ed613d936129328bTinderbox User.PHONY: t2k build all clean clobber
5f7586ddbd3edd11272cdd30ed613d936129328bTinderbox User
5f7586ddbd3edd11272cdd30ed613d936129328bTinderbox User#
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User# Add to the ambient vpath to pick up files in subdirectories
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews#
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox Uservpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)
c7ef13f6c9ef4436bc804b150e0a93307b11fa27Tinderbox Uservpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)/layout
c7ef13f6c9ef4436bc804b150e0a93307b11fa27Tinderbox Uservpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
f132a836c4e386b1af045dd8fe7106ae61b90bffAutomatic Updater#
d642d3857129678797a01adee14fbd70335b05a9Mark Andrews# Fontmanager is headless (independent of X/Motif)
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews#
609b8d08176469485edce25f3c2f50365bbd3819Mark AndrewsCFLAGS += -DHEADLESS
5f33078b538b3d317917deb962bd057b2a888db1Tinderbox UserCXXFLAGS += -DHEADLESS
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrewsifndef OPENJDK
269519eeb959d905ed125f96426e01d725c3b597Tinderbox User CPPFLAGS += -I$(CLOSED_SRC)/share/native/$(PKGDIR)/t2k
8711e5c73ca872d59810760af0332194cbdd619bAutomatic Updaterelse
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater CPPFLAGS += -I$(FREETYPE_HEADERS_PATH) -I$(FREETYPE_HEADERS_PATH)/freetype2
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrewsendif
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews
8f2c45a35dd8c40bcc9caba8f7d40ce64fc27bcdAutomatic Updaterifeq ($(PLATFORM), windows)
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrewsvpath %.cpp $(PLATFORM_SRC)/native/sun/windows
6a9d2121152c94cb9e35832126c3f2e4d18d81edTinderbox Userelse # PLATFORM
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews#
bc0a53583d92309bebcf93c408e2f3247ebd3d3cAutomatic Updater# Libraries to link, and other C flags.
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
59528addd704f8d5757b54e540520f74e588a7c7Automatic Updaterifeq ($(PLATFORM), solaris)
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater # Note that on Solaris, fontmanager is built against the headless library.
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater LDFLAGS += -L$(LIBDIR)/$(LIBARCH)/headless
7f79131f9a8e804b93c57f3c679065cce878b726Automatic Updater OTHER_LDLIBS += -lawt -L$(LIBDIR)/$(LIBARCH)/xawt -lmawt -lc $(LIBM) $(LIBCXX)
59528addd704f8d5757b54e540520f74e588a7c7Automatic Updaterelse # PLATFORM is linux
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater OTHER_LDLIBS += -lawt $(LIBM) $(LIBCXX)
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews ifeq ("$(CC_VER_MAJOR)", "3")
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews OTHER_LDLIBS += -Wl,-Bstatic -lgcc_eh -Wl,-Bdynamic
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater endif
19b3dc94bce93fa76bd7e066f9298630dbc9dcb4Automatic Updaterendif
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updaterendif # PLATFORM
7f94d9a8162c9a96b56e66176702b66e79d8e1a2Automatic Updater
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater# set up compile flags..
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
5ecad47f69b3fd945472ab2900a9ff826a7ce2f6Automatic UpdaterCPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR) \
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews -I$(SHARE_SRC)/native/$(PKGDIR)/layout \
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews -I$(SHARE_SRC)/native/sun/awt/image/cvutils \
6a9d2121152c94cb9e35832126c3f2e4d18d81edTinderbox User -I$(PLATFORM_SRC)/native/sun/awt \
6a9d2121152c94cb9e35832126c3f2e4d18d81edTinderbox User -I$(SHARE_SRC)/native/sun/awt/debug \
7262eb86f2b465822206122921e2f357218f0cfdAutomatic Updater -I$(SHARE_SRC)/native/sun/java2d/loops \
96ea71632887c58a9d00f47eb318bf76b35903c3Mark Andrews -I$(SHARE_SRC)/native/sun/java2d/pipe \
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater -I$(PLATFORM_SRC)/native/sun/java2d \
9cd5eb6fe0f26d65724b99216cb31dcdd12e4afdAutomatic Updater -I$(SHARE_SRC)/native/sun/java2d \
bbb069be941f649228760edcc241122933c066d2Automatic Updater -I$(TEMPDIR)/../../sun.awt/awt/CClassHeaders
8638278ed8ce58c4709477d250d109dd5b3ccc70Tinderbox User
4cda4fd158d6ded5586bacea8c388445d99611eaAutomatic Updaterifeq ($(PLATFORM), windows)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsCPPFLAGS += -I$(PLATFORM_SRC)/native/sun/windows
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrewsendif
80faf1588895fd26490f82f95a7a1b771df1c324Automatic Updater
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# Make the Layout Engine build standalone
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic UpdaterCPPFLAGS += -DLE_STANDALONE
6a9d2121152c94cb9e35832126c3f2e4d18d81edTinderbox User
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews