Makefile revision 460
4865N/A#
4865N/A# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
4865N/A# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4865N/A#
4865N/A# This code is free software; you can redistribute it and/or modify it
4865N/A# under the terms of the GNU General Public License version 2 only, as
4865N/A# published by the Free Software Foundation. Sun designates this
6982N/A# particular file as subject to the "Classpath" exception as provided
6982N/A# by Sun in the LICENSE file that accompanied this code.
4865N/A#
4865N/A# This code is distributed in the hope that it will be useful, but WITHOUT
4865N/A# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4865N/A# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
6982N/A# version 2 for more details (a copy is included in the LICENSE file that
6982N/A# accompanied this code).
6982N/A#
6982N/A# You should have received a copy of the GNU General Public License version
4865N/A# 2 along with this work; if not, write to the Free Software Foundation,
4865N/A# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
4865N/A#
4865N/A# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
4865N/A# CA 95054 USA or visit www.sun.com if you need additional information or
4865N/A# have any questions.
4865N/A#
4865N/A
4865N/A#
4865N/A# Makefile for building all of font tools
4865N/A#
4865N/A
4865N/ABUILDDIR = ../..
4865N/APACKAGE = sun.font
4865N/ALIBRARY = fontmanager
4865N/APRODUCT = sun
4865N/A
4865N/A# Indicate we want the C++ compiler to do the linking.
4865N/ACPLUSPLUSLIBRARY=true
4865N/A
4865N/A# Use higher optimization level
4865N/AOPTIMIZATION_LEVEL = HIGHER
4865N/A
4865N/Ainclude $(BUILDDIR)/common/Defs.gmk
4865N/A
4865N/A#
4865N/A# Created without -z defs on linux
4865N/A#
4865N/Aifeq ($(PLATFORM), linux)
4865N/A LDFLAGS_DEFS_OPTION =
4865N/Aendif
4865N/A
4865N/A#
4865N/A# Files
4865N/A#
4865N/A
4865N/Ainclude FILES_c.gmk
4865N/A
4865N/AAUTO_FILES_JAVA_DIRS = sun/font
4865N/AFILES_java += java/awt/Font.java java/text/Bidi.java
4865N/A
4865N/AFILES_export = \
4865N/A sun/font/SunLayoutEngine.java \
4865N/A java/awt/Font.java \
4865N/A java/text/Bidi.java \
4865N/A sun/font/FileFont.java \
4865N/A sun/font/FileFontStrike.java \
4865N/A sun/font/FontManager.java \
4865N/A sun/font/GlyphList.java \
4865N/A sun/font/NativeFont.java \
4865N/A sun/font/StrikeCache.java \
4865N/A sun/font/NullFontScaler.java \
4865N/A sun/font/FreetypeFontScaler.java \
4865N/A sun/java2d/loops/DrawGlyphList.java \
4865N/A sun/java2d/loops/DrawGlyphListAA.java \
4865N/A sun/java2d/loops/DrawGlyphListLCD.java \
4865N/A sun/java2d/loops/GraphicsPrimitive.java
4865N/A
4865N/Aifeq ($(PLATFORM), windows)
4865N/A
4865N/A # Files built here do not compile with warning level 3 if warnings are fatal
4865N/A COMPILER_WARNINGS_FATAL=false
4865N/A
4865N/A LDLIBS += user32.lib gdi32.lib $(OBJDIR)/../../../sun.awt/awt/$(OBJDIRNAME)/awt.lib
4865N/A
4865N/A OTHER_CFLAGS += -DCC_NOEX
4865N/A OTHER_CXXFLAGS += -DCC_NOEX
4865N/A
4865N/A FILES_export += sun/java2d/d3d/D3DTextRenderer.java
4865N/A
4865N/Aelse # PLATFORM unix
4865N/A
4865N/A FILES_export += \
4865N/A sun/font/NativeStrike.java \
4865N/A sun/font/NativeStrikeDisposer.java \
4865N/A sun/font/X11TextRenderer.java \
4865N/A sun/awt/X11GraphicsEnvironment.java
4865N/A
4865N/Aendif # PLATFORM
4865N/A
4865N/A#In the non-OpenJDK mode we need to build T2K
4865N/Aifndef OPENJDK
4865N/At2k:
4865N/A $(ECHO) "lib=" $(ACTUAL_LIBRARY)
4865N/A $(MAKE) -C t2k
4865N/A
4865N/Aall build: t2k
4865N/At2k: library
4865N/Aclean clobber::
4865N/A $(MAKE) -C t2k clean
4865N/Aelse
4865N/A
4865N/AFILES_m=mapfile-vers.openjdk
4865N/A
4865N/A#make sure freetype dll will be available at runtime as well as link time
4865N/A#
4865N/A#NB: Default freetype build system uses -h linker option and
4865N/A# result .so contains hardcoded library name that is later
4865N/A# used for adding dependencies to other objects
4865N/A# (e.g. libfontmanager.so).
4865N/A#
4865N/A# It is not obvious how to extract that hardcoded name (libfreetype.so.6)
4865N/A# without overcomplicating logic here.
4865N/A# To workaround this we hardcode .6 suffix for now.
4865N/A#
4865N/A# Note that .so.6 library will not be found by System.loadLibrary()
4865N/A# but fortunately we need to load FreeType library explicitly
4865N/A# on windows only
4865N/A#
4865N/A#TODO: rework this to avoid hardcoding library name in the makefile
4865N/A#
4865N/Alibrary:: $(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX)
4865N/A
4865N/A$(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX):
4865N/Aifeq ($(PLATFORM), windows)
4865N/A $(CP) $(FREETYPE_LIB_PATH)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX) $@
4865N/Aelse
4865N/A ifeq ($(USING_SYSTEM_FT_LIB), false)
4865N/A $(CP) $(FREETYPE_LIB_PATH)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX) $@.6
4865N/A endif
4865N/Aendif
4865N/Aendif
4865N/A
4865N/A#ifeq ($(PLATFORM), solaris)
4865N/A# FILES_reorder += reorder-$(ARCH)
4865N/A#endif
4865N/Ainclude $(BUILDDIR)/common/Mapfile-vers.gmk
4865N/Ainclude $(BUILDDIR)/common/Library.gmk
4865N/A
4865N/A.PHONY: t2k build all clean clobber
4865N/A
4865N/A#
4865N/A# Add to the ambient vpath to pick up files in subdirectories
4865N/A#
4865N/Avpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)
4865N/Avpath %.c $(SHARE_SRC)/native/$(PKGDIR)/bidi
4865N/Avpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)/layout
4865N/Avpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)
4865N/A
4865N/A#
4865N/A# Fontmanager is headless (independent of X/Motif)
4865N/A#
4865N/ACFLAGS += -DHEADLESS
4865N/ACXXFLAGS += -DHEADLESS
4865N/A
4865N/Aifndef OPENJDK
4865N/A CPPFLAGS += -I$(CLOSED_SRC)/share/native/$(PKGDIR)/t2k
4865N/Aelse
4865N/A CPPFLAGS += -I$(FREETYPE_HEADERS_PATH) -I$(FREETYPE_HEADERS_PATH)/freetype2
4865N/A OTHER_LDLIBS += $(FREETYPE_LIB)
4865N/Aendif
4865N/A
4865N/Aifeq ($(PLATFORM), windows)
4865N/Avpath %.cpp $(PLATFORM_SRC)/native/sun/windows
4865N/Avpath %.cpp $(PLATFORM_SRC)/native/sun/java2d/d3d
4865N/Aelse # PLATFORM
4865N/A
4865N/A#
4865N/A# Libraries to link, and other C flags.
4865N/A#
4865N/A
4865N/Aifeq ($(PLATFORM), solaris)
4865N/A # Note that on Solaris, fontmanager is built against the headless library.
4865N/A LDFLAGS += -L$(LIBDIR)/$(LIBARCH)/headless
4865N/A OTHER_LDLIBS += -lawt -L$(LIBDIR)/$(LIBARCH)/xawt -lmawt -lc $(LIBM) $(LIBCXX)
4865N/Aelse # PLATFORM is linux
4865N/A OTHER_LDLIBS += -lawt $(LIBM) $(LIBCXX)
4865N/A ifeq ("$(CC_VER_MAJOR)", "3")
4865N/A OTHER_LDLIBS += -Wl,-Bstatic -lgcc_eh -Wl,-Bdynamic
4865N/A endif
4865N/Aendif
4865N/A
4865N/Aendif # PLATFORM
4865N/A
4865N/A# set up compile flags..
4865N/A
4865N/ACPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR) \
4865N/A -I$(SHARE_SRC)/native/$(PKGDIR)/layout \
4865N/A -I$(SHARE_SRC)/native/$(PKGDIR)/bidi \
4865N/A -I$(SHARE_SRC)/native/sun/awt/image/cvutils \
4865N/A -I$(PLATFORM_SRC)/native/sun/awt \
4865N/A -I$(SHARE_SRC)/native/sun/awt/debug \
4865N/A -I$(SHARE_SRC)/native/sun/java2d/loops \
4865N/A -I$(SHARE_SRC)/native/sun/java2d/pipe \
4865N/A -I$(PLATFORM_SRC)/native/sun/java2d \
4865N/A -I$(SHARE_SRC)/native/sun/java2d \
4865N/A -I$(TEMPDIR)/../../sun.awt/awt/CClassHeaders
4865N/A
4865N/Aifeq ($(PLATFORM), windows)
4865N/ACPPFLAGS += -I$(PLATFORM_SRC)/native/sun/windows \
4865N/A -I$(PLATFORM_SRC)/native/sun/java2d/d3d
4865N/Aendif
4865N/A
4865N/A