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