Makefile revision 301
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj#
4ab6b0edcbd091d1b599ca7ba42b80f56116f245rbb# Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj#
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# This code is free software; you can redistribute it and/or modify it
2deb319e6b3de239f45c16a3e9e836d44f1f7108rbb# under the terms of the GNU General Public License version 2 only, as
2deb319e6b3de239f45c16a3e9e836d44f1f7108rbb# published by the Free Software Foundation. Sun designates this
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb# particular file as subject to the "Classpath" exception as provided
70f6f32765cfaadd6da8de6f0fea97ddd72d8fadmanoj# by Sun in the LICENSE file that accompanied this code.
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj#
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# This code is distributed in the hope that it will be useful, but WITHOUT
4ab6b0edcbd091d1b599ca7ba42b80f56116f245rbb# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4ab6b0edcbd091d1b599ca7ba42b80f56116f245rbb# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
91a71946d0fb28c0866139edef3dd59f36ba5b9cstoddard# version 2 for more details (a copy is included in the LICENSE file that
91a71946d0fb28c0866139edef3dd59f36ba5b9cstoddard# accompanied this code).
91a71946d0fb28c0866139edef3dd59f36ba5b9cstoddard#
91a71946d0fb28c0866139edef3dd59f36ba5b9cstoddard# You should have received a copy of the GNU General Public License version
91a71946d0fb28c0866139edef3dd59f36ba5b9cstoddard# 2 along with this work; if not, write to the Free Software Foundation,
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb#
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb# CA 95054 USA or visit www.sun.com if you need additional information or
632b0b53511f3bb9c32aa2869fbc73ee35081b38rbb# have any questions.
632b0b53511f3bb9c32aa2869fbc73ee35081b38rbb#
632b0b53511f3bb9c32aa2869fbc73ee35081b38rbb
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb#
f6a6245816cd866361da8c576b1f47c7a54b6610fanf# Makefile for building all of font tools
211bf1d44f4653bf753a15740cd5ebbf330b6e93manoj#
211bf1d44f4653bf753a15740cd5ebbf330b6e93manoj
2a6c49cfaef5979a5a06098f3ce987cd76769409manojBUILDDIR = ../..
369edcdd0a9c5516c61e736ec2a6fc8fb0d92fe2manojPACKAGE = sun.font
369edcdd0a9c5516c61e736ec2a6fc8fb0d92fe2manojLIBRARY = fontmanager
2a6c49cfaef5979a5a06098f3ce987cd76769409manojPRODUCT = sun
85cbdc16ac57fa68ce1358a308269abcd417f4d9stoddard
85cbdc16ac57fa68ce1358a308269abcd417f4d9stoddard# Indicate we want the C++ compiler to do the linking.
85cbdc16ac57fa68ce1358a308269abcd417f4d9stoddardCPLUSPLUSLIBRARY=true
d208bda4a893cc81ed5d3ed1cdd7d706e012bd42stoddard
d208bda4a893cc81ed5d3ed1cdd7d706e012bd42stoddardinclude $(BUILDDIR)/common/Defs.gmk
d208bda4a893cc81ed5d3ed1cdd7d706e012bd42stoddard
d208bda4a893cc81ed5d3ed1cdd7d706e012bd42stoddard#
d208bda4a893cc81ed5d3ed1cdd7d706e012bd42stoddard# Created without -z defs on linux
d208bda4a893cc81ed5d3ed1cdd7d706e012bd42stoddard#
d208bda4a893cc81ed5d3ed1cdd7d706e012bd42stoddardifeq ($(PLATFORM), linux)
d208bda4a893cc81ed5d3ed1cdd7d706e012bd42stoddard LDFLAGS_DEFS_OPTION =
d208bda4a893cc81ed5d3ed1cdd7d706e012bd42stoddardendif
75960f20f88dad6bc67892c711c429946063d133stoddard
75960f20f88dad6bc67892c711c429946063d133stoddard#
75960f20f88dad6bc67892c711c429946063d133stoddard# Files
75960f20f88dad6bc67892c711c429946063d133stoddard#
75960f20f88dad6bc67892c711c429946063d133stoddard
75960f20f88dad6bc67892c711c429946063d133stoddard#
75960f20f88dad6bc67892c711c429946063d133stoddard# Use higher optimization level
75960f20f88dad6bc67892c711c429946063d133stoddard#
a9e07e4f90adcc7bc768db3055431c3dcd560cd1manoj_OPT = $(CC_HIGHER_OPT)
f6a6245816cd866361da8c576b1f47c7a54b6610fanf
f6a6245816cd866361da8c576b1f47c7a54b6610fanfinclude FILES_c.gmk
a9e07e4f90adcc7bc768db3055431c3dcd560cd1manoj
2a6c49cfaef5979a5a06098f3ce987cd76769409manojAUTO_FILES_JAVA_DIRS = sun/font
8bed76428f56e5c643174a2d6807c3f18016af5cbjhFILES_java += java/awt/Font.java java/text/Bidi.java
8bed76428f56e5c643174a2d6807c3f18016af5cbjh
8bed76428f56e5c643174a2d6807c3f18016af5cbjhFILES_export = \
8bed76428f56e5c643174a2d6807c3f18016af5cbjh sun/font/SunLayoutEngine.java \
8bed76428f56e5c643174a2d6807c3f18016af5cbjh java/awt/Font.java \
cfc020d6d6fc9b31d8945915e65a8787a796eb73stoddard java/text/Bidi.java \
cfc020d6d6fc9b31d8945915e65a8787a796eb73stoddard sun/font/FileFont.java \
cfc020d6d6fc9b31d8945915e65a8787a796eb73stoddard sun/font/FileFontStrike.java \
f824925ac58ff729289c017235eeb3bdd21ec3a2stoddard sun/font/FontManager.java \
f824925ac58ff729289c017235eeb3bdd21ec3a2stoddard sun/font/GlyphList.java \
f824925ac58ff729289c017235eeb3bdd21ec3a2stoddard sun/font/NativeFont.java \
f824925ac58ff729289c017235eeb3bdd21ec3a2stoddard sun/font/StrikeCache.java \
2aae6faee508221efbeaba5547ca79b7a20ef047stoddard sun/font/NullFontScaler.java \
2aae6faee508221efbeaba5547ca79b7a20ef047stoddard sun/font/FreetypeFontScaler.java \
670734c2ee137c587411795c6f82566c9d3729b7coar sun/java2d/loops/DrawGlyphList.java \
670734c2ee137c587411795c6f82566c9d3729b7coar sun/java2d/loops/DrawGlyphListAA.java \
75960f20f88dad6bc67892c711c429946063d133stoddard sun/java2d/loops/DrawGlyphListLCD.java \
a5ed555df952c85bc1b179f5981e8a6c54ba16e6stoddard sun/java2d/loops/GraphicsPrimitive.java
a5ed555df952c85bc1b179f5981e8a6c54ba16e6stoddard
a5ed555df952c85bc1b179f5981e8a6c54ba16e6stoddardifeq ($(PLATFORM), windows)
a5ed555df952c85bc1b179f5981e8a6c54ba16e6stoddard
a5ed555df952c85bc1b179f5981e8a6c54ba16e6stoddard # Files built here do not compile with warning level 3 if warnings are fatal
56ca30c968906053ae61acb218420667bb58d996rbb COMPILER_WARNINGS_FATAL=false
56ca30c968906053ae61acb218420667bb58d996rbb
56ca30c968906053ae61acb218420667bb58d996rbb LDLIBS += user32.lib gdi32.lib $(OBJDIR)/../../../sun.awt/awt/$(OBJDIRNAME)/awt.lib
56ca30c968906053ae61acb218420667bb58d996rbb
70f6f32765cfaadd6da8de6f0fea97ddd72d8fadmanoj OTHER_CFLAGS += -DCC_NOEX
70f6f32765cfaadd6da8de6f0fea97ddd72d8fadmanoj OTHER_CXXFLAGS += -DCC_NOEX
70f6f32765cfaadd6da8de6f0fea97ddd72d8fadmanoj
56ca30c968906053ae61acb218420667bb58d996rbb FILES_export += sun/java2d/d3d/D3DTextRenderer.java
0bff2f28ef945280c17099c142126178a78e1e54manoj
0bff2f28ef945280c17099c142126178a78e1e54manojelse # PLATFORM unix
0bff2f28ef945280c17099c142126178a78e1e54manoj
1e585ba09ea32272e63c4c39c35491e975d21d98stoddard FILES_export += \
1e585ba09ea32272e63c4c39c35491e975d21d98stoddard sun/font/NativeStrike.java \
1e585ba09ea32272e63c4c39c35491e975d21d98stoddard sun/font/NativeStrikeDisposer.java \
1e585ba09ea32272e63c4c39c35491e975d21d98stoddard sun/font/X11TextRenderer.java \
1e585ba09ea32272e63c4c39c35491e975d21d98stoddard sun/awt/X11GraphicsEnvironment.java
1e585ba09ea32272e63c4c39c35491e975d21d98stoddard
1e585ba09ea32272e63c4c39c35491e975d21d98stoddardendif # PLATFORM
9c09943bad734ebd5c7cc10bd6d63b75c4c6e056stoddard
9c09943bad734ebd5c7cc10bd6d63b75c4c6e056stoddard#In the non-OpenJDK mode we need to build T2K
9c09943bad734ebd5c7cc10bd6d63b75c4c6e056stoddardifndef OPENJDK
0bff2f28ef945280c17099c142126178a78e1e54manojt2k:
0bff2f28ef945280c17099c142126178a78e1e54manoj $(ECHO) "lib=" $(ACTUAL_LIBRARY)
0bff2f28ef945280c17099c142126178a78e1e54manoj $(MAKE) -C t2k
9c09943bad734ebd5c7cc10bd6d63b75c4c6e056stoddard
75960f20f88dad6bc67892c711c429946063d133stoddardall build: t2k
1e585ba09ea32272e63c4c39c35491e975d21d98stoddardt2k: library
9c09943bad734ebd5c7cc10bd6d63b75c4c6e056stoddardclean clobber::
aa1faea36e4ae357bc603a2337b6adc54f5daec1manoj $(MAKE) -C t2k clean
f03d292915be9977eaf74e9be7b0404aec226f84manojelse
f03d292915be9977eaf74e9be7b0404aec226f84manoj
f03d292915be9977eaf74e9be7b0404aec226f84manojFILES_m=mapfile-vers.openjdk
aa1faea36e4ae357bc603a2337b6adc54f5daec1manoj
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb#make sure freetype dll will be available at runtime as well as link time
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj#
302dc1f7b3feee23a91ad8f3cf3cb2edd95a557bmanoj#NB: Default freetype build system uses -h linker option and
302dc1f7b3feee23a91ad8f3cf3cb2edd95a557bmanoj# result .so contains hardcoded library name that is later
302dc1f7b3feee23a91ad8f3cf3cb2edd95a557bmanoj# used for adding dependencies to other objects
302dc1f7b3feee23a91ad8f3cf3cb2edd95a557bmanoj# (e.g. libfontmanager.so).
ff849e4163ed879288f0df15f78b6c9d278ec804fanf#
ff849e4163ed879288f0df15f78b6c9d278ec804fanf# It is not obvious how to extract that hardcoded name (libfreetype.so.6)
ff849e4163ed879288f0df15f78b6c9d278ec804fanf# without overcomplicating logic here.
ff849e4163ed879288f0df15f78b6c9d278ec804fanf# To workaround this we hardcode .6 suffix for now.
ff849e4163ed879288f0df15f78b6c9d278ec804fanf#
df4a7c143b27b489dd2d865bb3f6668c8420b3a9fanf# Note that .so.6 library will not be found by System.loadLibrary()
df4a7c143b27b489dd2d865bb3f6668c8420b3a9fanf# but fortunately we need to load FreeType library explicitly
c03566fa0156d3a1500a42e4fe539e3e0fc8a11dgstein# on windows only
c03566fa0156d3a1500a42e4fe539e3e0fc8a11dgstein#
c03566fa0156d3a1500a42e4fe539e3e0fc8a11dgstein#TODO: rework this to avoid hardcoding library name in the makefile
c03566fa0156d3a1500a42e4fe539e3e0fc8a11dgstein#
c03566fa0156d3a1500a42e4fe539e3e0fc8a11dgsteinlibrary:: $(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX)
c03566fa0156d3a1500a42e4fe539e3e0fc8a11dgstein
c03566fa0156d3a1500a42e4fe539e3e0fc8a11dgstein$(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX):
18e4b2bda5bee4cc6452075bdb5514ea78e5840ftrawickifeq ($(PLATFORM), windows)
18e4b2bda5bee4cc6452075bdb5514ea78e5840ftrawick $(CP) $(FREETYPE_LIB_PATH)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX) $@
18e4b2bda5bee4cc6452075bdb5514ea78e5840ftrawickelse
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj ifeq ($(USING_SYSTEM_FT_LIB), false)
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj $(CP) $(FREETYPE_LIB_PATH)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX) $@.6
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj endif
d5defd5a0c5cdbaf74b85939484dc2b6c8317d19manojendif
d5defd5a0c5cdbaf74b85939484dc2b6c8317d19manojendif
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj#ifeq ($(PLATFORM), solaris)
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# FILES_reorder += reorder-$(ARCH)
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj#endif
2a6c49cfaef5979a5a06098f3ce987cd76769409manojinclude $(BUILDDIR)/common/Mapfile-vers.gmk
2a6c49cfaef5979a5a06098f3ce987cd76769409manojinclude $(BUILDDIR)/common/Library.gmk
0bff2f28ef945280c17099c142126178a78e1e54manoj
0bff2f28ef945280c17099c142126178a78e1e54manoj.PHONY: t2k build all clean clobber
0bff2f28ef945280c17099c142126178a78e1e54manoj
d6b3cb141f0667101c1bca883ad15b383402c93bfielding#
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# Add to the ambient vpath to pick up files in subdirectories
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj#
2a6c49cfaef5979a5a06098f3ce987cd76769409manojvpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)
40a5b7189dbbb28e107bf008ee625f2f0142c2ccdgaudetvpath %.c $(SHARE_SRC)/native/$(PKGDIR)/bidi
2a6c49cfaef5979a5a06098f3ce987cd76769409manojvpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)/layout
dbf0c7bef06259486cd2748a2d0e82f27e099d6efieldingvpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)
dbf0c7bef06259486cd2748a2d0e82f27e099d6efielding
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj#
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb# Fontmanager is headless (independent of X/Motif)
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj#
2a6c49cfaef5979a5a06098f3ce987cd76769409manojCFLAGS += -DHEADLESS
2a6c49cfaef5979a5a06098f3ce987cd76769409manojCXXFLAGS += -DHEADLESS
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj
f6a6245816cd866361da8c576b1f47c7a54b6610fanfifndef OPENJDK
f6a6245816cd866361da8c576b1f47c7a54b6610fanf CPPFLAGS += -I$(CLOSED_SRC)/share/native/$(PKGDIR)/t2k
f6a6245816cd866361da8c576b1f47c7a54b6610fanfelse
f6a6245816cd866361da8c576b1f47c7a54b6610fanf CPPFLAGS += -I$(FREETYPE_HEADERS_PATH) -I$(FREETYPE_HEADERS_PATH)/freetype2
f6a6245816cd866361da8c576b1f47c7a54b6610fanf OTHER_LDLIBS += $(FREETYPE_LIB)
2a6c49cfaef5979a5a06098f3ce987cd76769409manojendif
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj
2a6c49cfaef5979a5a06098f3ce987cd76769409manojifeq ($(PLATFORM), windows)
2a6c49cfaef5979a5a06098f3ce987cd76769409manojvpath %.cpp $(PLATFORM_SRC)/native/sun/windows
2a6c49cfaef5979a5a06098f3ce987cd76769409manojvpath %.cpp $(PLATFORM_SRC)/native/sun/java2d/d3d
d6b3cb141f0667101c1bca883ad15b383402c93bfieldingelse # PLATFORM
d6b3cb141f0667101c1bca883ad15b383402c93bfielding
d6b3cb141f0667101c1bca883ad15b383402c93bfielding#
d6b3cb141f0667101c1bca883ad15b383402c93bfielding# Libraries to link, and other C flags.
d6b3cb141f0667101c1bca883ad15b383402c93bfielding#
d6b3cb141f0667101c1bca883ad15b383402c93bfielding
2a6c49cfaef5979a5a06098f3ce987cd76769409manojifeq ($(PLATFORM), solaris)
670734c2ee137c587411795c6f82566c9d3729b7coar # Note that on Solaris, fontmanager is built against the headless library.
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj LDFLAGS += -L$(LIBDIR)/$(LIBARCH)/headless
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj OTHER_LDLIBS += -lawt -L$(LIBDIR)/$(LIBARCH)/xawt -lmawt -lc $(LIBM) $(LIBCXX)
2a6c49cfaef5979a5a06098f3ce987cd76769409manojelse # PLATFORM is linux
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj OTHER_LDLIBS += -lawt $(LIBM) $(LIBCXX)
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj ifeq ("$(CC_VER_MAJOR)", "3")
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj OTHER_LDLIBS += -Wl,-Bstatic -lgcc_eh -Wl,-Bdynamic
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj endif
2a6c49cfaef5979a5a06098f3ce987cd76769409manojendif
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj
2a6c49cfaef5979a5a06098f3ce987cd76769409manojendif # PLATFORM
d6b3cb141f0667101c1bca883ad15b383402c93bfielding
d6b3cb141f0667101c1bca883ad15b383402c93bfielding# set up compile flags..
d6b3cb141f0667101c1bca883ad15b383402c93bfielding
CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR) \
-I$(SHARE_SRC)/native/$(PKGDIR)/layout \
-I$(SHARE_SRC)/native/$(PKGDIR)/bidi \
-I$(SHARE_SRC)/native/sun/awt/image/cvutils \
-I$(PLATFORM_SRC)/native/sun/awt \
-I$(SHARE_SRC)/native/sun/awt/debug \
-I$(SHARE_SRC)/native/sun/java2d/loops \
-I$(SHARE_SRC)/native/sun/java2d/pipe \
-I$(PLATFORM_SRC)/native/sun/java2d \
-I$(SHARE_SRC)/native/sun/java2d \
-I$(TEMPDIR)/../../sun.awt/awt/CClassHeaders
ifeq ($(PLATFORM), windows)
CPPFLAGS += -I$(PLATFORM_SRC)/native/sun/windows \
-I$(PLATFORM_SRC)/native/sun/java2d/d3d
endif