jdk/make/sun/font/Makefile
changeset 2 90ce3da70b43
child 550 e85f91b9bb95
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/sun/font/Makefile	Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,211 @@
+#
+# 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
+