6728161: Add SKIP_BOOT_CYCLE feature to create boot jdk and use it during build
Summary: Needed BOOT_JAR_JFLAGS. Fixed PREVIOUS_RELEASE_IMAGE.
Reviewed-by: tbell
## Copyright 1995-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.#BUILDDIR = ../..PACKAGE = sun.awtLIBRARY = awtPRODUCT = sun## Tell Defs.gmk that VIS is needed#VIS_NEEDED=trueinclude $(BUILDDIR)/common/Defs.gmk## Use highest optimization level#_OPT = $(CC_HIGHEST_OPT)OTHER_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES## Files### Include all Java source files in sun/awt and sun/java2d, except for:# sun/awt/resources handled by java/awt/Makefile# sun/java2d/pisces handled by sun/pisces/Makefile#AUTO_FILES_JAVA_DIRS = sun/awt sun/java2dAUTO_JAVA_PRUNE = resources piscesifeq ($(PLATFORM), windows)# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS## Files#include FILES_c_windows.gmkinclude FILES_export_windows.gmk## Prune files that are currently unused on Windows (but still used on# Solaris/Linux).#AUTO_JAVA_PRUNE += RemoteOffScreenImage.javaOTHER_CXXFLAGS += -DD3D_OVERLOADSOTHER_CFLAGS += $(GX_OPTION) -DMLIB_NO_LIBSUNMATH -DUNICODE -D_UNICODEOTHER_CXXFLAGS += $(GX_OPTION) -DUNICODE -D_UNICODEifeq ($(ARCH_DATA_MODEL), 64) OTHER_CFLAGS += -DMLIB_OS64BITendif# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWSendif # PLATFORMifneq ($(PLATFORM), windows)# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS/LINUX## Files#include FILES_c_unix.gmkinclude FILES_export_unix.gmk## Prune the sun/awt/X11 subdirectory, which is handled by sun/xawt/Makefile.# Also prune files that are currently unused on Solaris/Linux (but still# used on Windows).#AUTO_JAVA_PRUNE += X11 AWTCharset.javaifeq ($(PLATFORM), solaris)FILES_c = $(FILES_2D_c)FILES_c += awt_LoadLibrary.cOTHER_LDLIBS = $(JVMLIB) $(LIBM) -ldlifeq ($(CC_VER), 5.8) ifndef REMOVE_ALL_WORKAROUNDS ifeq ($(ARCH_FAMILY), i586) # If on Solaris 11 (or dlfcn.h has unknown_control_flow pragmas in it) # we trigger a SS11 bug that causes the compiler to crash (bug 6343678) # Here we check to see if we need this workaround and change the opt # settings for this one file. USE_WORKAROUND:=$(shell $(GREP) unknown_control_flow /usr/include/dlfcn.h) ifneq ($(USE_WORKAROUND),) ifeq ($(FASTDEBUG), true) CFLAGS_DBG/awt_Mlib.o = -xO0 \ $(warning "WARNING: Using workaround for SS11 bug 6343678, on $@") endif # Compiler bug 6343678 need to prevent a SEGV in the compiler CFLAGS_OPT/awt_Mlib.o = -g \ $(warning "WARNING: Using workaround for SS11 bug 6343678, on $@") endif endif endifendifendififeq ($(PLATFORM), linux)FILES_c = $(FILES_2D_c)FILES_c += awt_LoadLibrary.cOTHER_CFLAGS += -DMLIB_NO_LIBSUNMATHOTHER_LDLIBS = $(JVMLIB) $(LIBM) -ldlendifFILES_c += initIDs.c# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUXendif # PLATFORM # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS-SPARC# solaris-sparc and solaris-sparcv9 both build 'vis'ifeq ("$(PLATFORM)-$(ARCH_FAMILY)", "solaris-sparc") FILES_c += $(FILES_2D_vis) ASFLAGS += -P FILES_s += mlib_v_ImageCopy_blk.s INLINE_VIS = $(PLATFORM_SRC)/native/sun/awt/medialib/vis_$(ARCH_DATA_MODEL).il CFLAGS_sparcv9 = -DMLIB_OS64BIT CFLAGS += $(CFLAGS_$(ARCH)) -DMLIB_ADD_SUFF $(INLINE_VIS) \ -I$(SHARE_SRC)/native/sun/awt/medialib \ -I$(PLATFORM_SRC)/native/sun/awt/medialib \ -I$(PLATFORM_SRC)/native/sun/java2d/loopsvpath %.c $(PLATFORM_SRC)/native/sun/java2d/loopsvpath %.c $(SHARE_SRC)/native/sun/awt/medialibvpath %.c $(PLATFORM_SRC)/native/sun/awt/medialibvpath %.s $(PLATFORM_SRC)/native/sun/awt/medialibelse FILES_c += MapAccelFunc.cendif# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS-SPARC## Resources#LOCALE_SET_DEFINITION = jreifeq ($(PLATFORM), windows) RESOURCE_BUNDLES_COMPILED_PROPERTIES += \ sun/awt/windows/awtLocalization.propertiesendif## Rules#ifeq ($(PLATFORM), linux) FILES_m = mapfile-vers-linux # libawt.so on Linux is statically linked with Motif and contains all the # Xm symbols. Mapfile is disabled so the symbols will remain public. LDNOMAP=trueendifinclude $(BUILDDIR)/common/Mapfile-vers.gmkinclude $(BUILDDIR)/common/Library.gmkbuild: fontconfigsifeq ($(PLATFORM), windows)# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS## Additional dependencies.## If make.depend is not working correctly, then it can be omitted# if you always build from a clean workspace. include make.depend# required additional rules:# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWSendif # PLATFORMifneq ($(PLATFORM), windows)# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS/LINUXifndef OPENJDKbuild: dgalibsendif# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUXendif # PLATFORMclobber clean:: java2d.clean fontconfigs.cleanifndef OPENJDKclobber clean:: dgalib.clean endifjava2d.clean: $(RM) -r $(CLASSBINDIR)/sun/java2d .classes.*## Add to the ambient vpath to pick up files in subdirectories#vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/imagevpath %.c $(SHARE_SRC)/native/$(PKGDIR)/image/gifvpath %.c $(SHARE_SRC)/native/$(PKGDIR)/image/cvutilsvpath %.c $(SHARE_SRC)/native/$(PKGDIR)/shellvpath %.c $(SHARE_SRC)/native/$(PKGDIR)/medialibvpath %.c $(SHARE_SRC)/native/$(PKGDIR)/debugvpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2dvpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/loopsvpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipevpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)/imageifeq ($(PLATFORM), windows)# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWSvpath %.cpp $(PLATFORM_SRC)/native/sun/windowsvpath %.cpp $(PLATFORM_SRC)/native/$(PKGDIR)vpath %.cpp $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/windowsvpath %.cpp $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/d3dvpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/openglvpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/openglvpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../font# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWSendif # PLATFORMifeq ($(PLATFORM), linux)# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv LINUXvpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/openglvpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/openglvpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../font# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ LINUXendif # PLATFORMifeq ($(PLATFORM), windows)# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWSOTHER_LDLIBS = kernel32.lib user32.lib gdi32.lib winspool.lib \ imm32.lib ole32.lib uuid.lib $(JVMLIB) \ shell32.libclean:: awt.cleanawt.clean: $(RM) $(TEMPDIR)/awt.ico $(RM) $(TEMPDIR)/awt.res $(RM) $(TEMPDIR)/hand.cur $(RM) $(TEMPDIR)/check.bmp# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWSendif # PLATFORMifneq ($(PLATFORM), windows)# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS/LINUXLIBXTST = -lXtst# Use -lXmu for EditRes supportLIBXMU_DBG = -lXmuLIBXMU_OPT =LIBXMU = $(LIBXMU_$(VARIANT))## Extra C flags.#ifndef OPENJDK## Solaris X11 Direct Graphics Access library#_DGALIBS_sparc = \ libxinerama.so \ libjdgaSUNWcg6.so \ libjdgaSUNWffb.so \ libjdgaSUNWm64.so \ libjdgaSUNWafb.so_DGALIBS_sparcv9 = \ libxinerama.so \ libjdgaSUNWcg6.so \ libjdgaSUNWffb.so \ libjdgaSUNWm64.so \ libjdgaSUNWafb.so_DGALIBS_i586 = # no i586 library yet_DGALIBS_amd64 = # no amd64 library yetDGALIBS = $(_DGALIBS_$(ARCH):%=$(LIBDIR)/$(LIBARCH)/%)dgalibs: $(DGALIBS)$(LIBDIR)/$(LIBARCH)/libxinerama.so: $(CLOSED_SRC)/solaris/lib/$(ARCH)/libxinerama.so $(install-file) $(CHMOD) a+x $@$(LIBDIR)/$(LIBARCH)/libjdgaSUNW%.so: $(CLOSED_SRC)/solaris/lib/$(ARCH)/libjdgaSUNW%.so $(install-file) $(CHMOD) a+x $@$(LIBDIR)/$(LIBARCH)/libjdgaSUNWafb.so: $(LIBDIR)/$(LIBARCH)/libjdgaSUNWffb.so $(prep-target) $(LN) -s libjdgaSUNWffb.so $(LIBDIR)/$(LIBARCH)/libjdgaSUNWafb.soclean:: dgalib.cleandgalib.clean: $(RM) $(LIBDIR)/$(LIBARCH)/libjdgaSUNW* $(LIBDIR)/$(LIBARCH)/libxinerama.soendif# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUXendif # PLATFORM## Font configs#ifeq ($(PLATFORM), windows)# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWSFONTCONFIGS_SRC = $(PLATFORM_SRC)/classes/sun/awt/windows_FONTCONFIGS = \ fontconfig.properties \ fontconfig.98.properties FONTCONFIGS_SRC_PREFIX =# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWSendif # PLATFORMifeq ($(PLATFORM), linux)# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv LINUXifdef OPENJDKFONTCONFIGS_SRC = $(PLATFORM_SRC)/classes/sun/awt/fontconfigs_FONTCONFIGS = \ fontconfig.properties \ fontconfig.SuSE.properties \ fontconfig.Ubuntu.properties \ fontconfig.Fedora.propertieselseFONTCONFIGS_SRC = $(CLOSED_SRC)/solaris/classes/sun/awt/fontconfigs_FONTCONFIGS = \ fontconfig.properties \ fontconfig.RedHat.properties \ fontconfig.RedHat.2.1.properties \ fontconfig.RedHat.3.properties \ fontconfig.RedHat.4.properties \ fontconfig.Sun.properties \ fontconfig.Turbo.properties \ fontconfig.SuSE.propertiesendifFONTCONFIGS_SRC_PREFIX = $(PLATFORM).# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ LINUXendif # PLATFORMifeq ($(PLATFORM), solaris)# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARISFONTCONFIGS_SRC = $(PLATFORM_SRC)/classes/sun/awt/fontconfigs_FONTCONFIGS = \ fontconfig.properties \ fontconfig.5.9.properties \ fontconfig.5.8.propertiesFONTCONFIGS_SRC_PREFIX = $(PLATFORM).# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARISendif # PLATFORMFONTCONFIGS = $(_FONTCONFIGS:%=$(LIBDIR)/%.src)BINARYFONTCONFIGS = $(_FONTCONFIGS:%.properties=$(LIBDIR)/%.bfc)fontconfigs: $(FONTCONFIGS) $(BINARYFONTCONFIGS)$(LIBDIR)/%.src: $(FONTCONFIGS_SRC)/$(FONTCONFIGS_SRC_PREFIX)% $(install-file)COMPILEFONTCONFIG_JARFILE = $(BUILDTOOLJARDIR)/compilefontconfig.jar$(LIBDIR)/%.bfc: $(FONTCONFIGS_SRC)/$(FONTCONFIGS_SRC_PREFIX)%.properties \ $(COMPILEFONTCONFIG_JARFILE) $(prep-target) $(BOOT_JAVA_CMD) -jar $(COMPILEFONTCONFIG_JARFILE) $< $@ $(CHMOD) 444 $(@) @$(java-vm-cleanup)fontconfigs.clean : $(RM) $(FONTCONFIGS) $(RM) $(BINARYFONTCONFIGS)ifeq ($(PLATFORM), windows)# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWSOTHER_CFLAGS += $(GX_OPTION) -DUNICODE -D_UNICODEifeq ($(MILESTONE), internal) CPPFLAGS += -DINTERNAL_BUILDendif## Useful variables that name parts of the src tree.#WINAWT_native = $(PLATFORM_SRC)/native/sun/windowsWINAWT_COMMON_native = $(PLATFORM_SRC)/native/sun/awt_common# FIXME: awt shouldn't have to see the VM's private headers.# FIXME: if you re-order this list, the build breaks, possibly because # of filename collision. Such a collision, if present, is pure# evil. Need to investigate this.OTHER_INCLUDES += -I$(CLASSHDRDIR)/../../java/jvm \ -I$(OBJDIR) \ -I$(SHARE_SRC)/native/common \ -I$(WINAWT_native) \ -I$(DXSDK_INCLUDE_PATH) \ -I$(SHARE_SRC)/native/sun/awt/image/cvutils \ -I$(SHARE_SRC)/native/sun/awt/image \ -I$(SHARE_SRC)/native/sun/java2d/loops \ -I$(SHARE_SRC)/native/sun/java2d \ -I$(PLATFORM_SRC)/native/sun/java2d \ -I$(SHARE_SRC)/native/sun/java2d/opengl \ -I$(PLATFORM_SRC)/native/sun/java2d/d3d \ -I$(PLATFORM_SRC)/native/sun/java2d/opengl \ -I$(PLATFORM_SRC)/native/sun/java2d/windows \ -I$(SHARE_SRC)/native/sun/font \ -I$(SHARE_SRC)/native/sun/java2d/pipe \ -I$(SHARE_SRC)/native/sun/dc/path \ -I$(SHARE_SRC)/native/sun/dc/doe \ -I$(SHARE_SRC)/native/sun/awt/debug \ -I$(PLATFORM_SRC)/native/sun/awt \# -I$(WINAWT_COMMON_native)# this is only required for compiling )/native/sun/awt/medialib/*.c files#OTHER_INCLUDES += -I$(SHARE_SRC)/native/sun/awt/medialib## .res file construction.#ifdef OPENJDK RC_FLAGS += -i "$(PLATFORM_SRC)/resource/icons"else RC_FLAGS += -i "$(CLOSED_SRC)/windows/native/sun/windows"endifVERSIONINFO_RESOURCE = $(WINAWT_native)/awt.rc# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWSendif # PLATFORMifneq ($(PLATFORM), windows)# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS/LINUX## Other extra flags needed for compiling.#ifeq ($(PLATFORM), linux)CPPFLAGS += -I$(OPENWIN_HOME)/include \ -I$(OPENWIN_HOME)/include/X11/extensions \ -I$(PLATFORM_SRC)/native/$(PKGDIR)/font endifCPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \ -I$(SHARE_SRC)/native/$(PKGDIR)/../font \ -I$(PLATFORM_SRC)/native/$(PKGDIR)/../font \ -I$(SHARE_SRC)/native/$(PKGDIR)/image \ -I$(SHARE_SRC)/native/$(PKGDIR)/image/cvutils \ -I$(SHARE_SRC)/native/$(PKGDIR)/shell \ -I$(SHARE_SRC)/native/$(PKGDIR)/medialib \ -I$(PLATFORM_SRC)/native/$(PKGDIR)/medialib \ -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d \ -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d \ -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops \ -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe \ -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl \ -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl \ -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11 \ -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/doe \ -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/path \ -I$(PLATFORM_SRC)/native/$(PKGDIR)/../jdga \ -I$(PLATFORM_SRC)/native/$(PKGDIR) \ $(EVENT_MODEL)ifeq ($(PLATFORM), linux)LDFLAGS += -L$(OPENWIN_LIB)endifLDFLAGS += -L$(LIBDIR)/$(LIBARCH)/$(TSOBJDIR) \ $(AWT_RUNPATH)# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUXendif # PLATFORMCLASSES.export += java.io.InputStream \ java.lang.Integer \ java.lang.ThreadGroup.PHONY: dgalibs dgalib.clean fontconfigs fontconfigs.clean