Makefile revision 5622
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
ee359fe1384507fed6c2274e7bfe81d288de4542Stephen Gallagher# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
ee359fe1384507fed6c2274e7bfe81d288de4542Stephen Gallagher# This code is free software; you can redistribute it and/or modify it
33396dc46ea52c18f47db1b5d590880806521005Sumit Bose# under the terms of the GNU General Public License version 2 only, as
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# published by the Free Software Foundation. Oracle designates this
324fb26ba803a999bedc29e93c46c84f27abf5b7Sumit Bose# particular file as subject to the "Classpath" exception as provided
324fb26ba803a999bedc29e93c46c84f27abf5b7Sumit Bose# by Oracle in the LICENSE file that accompanied this code.
324fb26ba803a999bedc29e93c46c84f27abf5b7Sumit Bose# This code is distributed in the hope that it will be useful, but WITHOUT
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
84ae5edab16ad6be5e3be956cb6fa031c1428eb5Stephen Gallagher# version 2 for more details (a copy is included in the LICENSE file that
84ae5edab16ad6be5e3be956cb6fa031c1428eb5Stephen Gallagher# accompanied this code).
e65df5b966b27e13283c65f59f99ac44781e0333Simo Sorce# You should have received a copy of the GNU General Public License version
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# 2 along with this work; if not, write to the Free Software Foundation,
002f84aea86371aa079b867c0ec39396b97109d3Lukas Slebodnik# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# or visit www.oracle.com if you need additional information or have any
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherCLASSES_INIT += $(TEMPDIR)/.gen.wrappers $(TEMPDIR)/.gen_icons touch.wrappers
86b61156743b7ebdc049450a6f88452890fd9a61Jakub Hrozek# For Xrender extension.
86b61156743b7ebdc049450a6f88452890fd9a61Jakub HrozekLDFLAGS += -L/usr/openwin/sfw/lib$(ISA_DIR) -R/usr/openwin/sfw/lib$(ISA_DIR)
1658c567191c35beaddffafdb079abe33248037bLukas Slebodnik# Since this library will be living in a subdirectory below the other libraries
1658c567191c35beaddffafdb079abe33248037bLukas Slebodnik# we need to add an extra runpath so that libraries in the upper directory
1658c567191c35beaddffafdb079abe33248037bLukas Slebodnik# are found at runtime.
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagherinclude $(BUILDDIR)/common/Mapfile-vers.gmk
d921c1eba437662437847279f251a0a5d8f70127Maxim# Add to the ambient vpath to pick up files in subdirectories
b9c8ce2bdd4045782c243605a1b999098bedcffcNoam Meltzervpath %.c $(SHARE_SRC)/native/sun/awt/image/cvutils
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallaghervpath %.c $(PLATFORM_SRC)/native/sun/awt/robot_child
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallaghervpath %.c $(SHARE_SRC)/native/sun/java2d/opengl
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallaghervpath %.c $(PLATFORM_SRC)/native/sun/java2d/opengl
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallaghervpath %.c $(PLATFORM_SRC)/native/sun/java2d/x11
eb2e21b764d03544d8161e9956d7f70b07b75f77Simo SorceOTHER_LDLIBS = $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) \
bc9235cfb80bd64a3bfa959e8d26d5ad1be0bdf4Jakub Hrozek $(LDFLAGS_COMMON) $(AWT_RUNPATH) $(OTHER_LDFLAGS) -lXtst -lXi
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagherdummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
03713859dffacc7142393e53c73d8d4cf7dee8d5Pavel Březina -I$(TEMPDIR)/../../sun.awt/awt/CClassHeaders \
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher -I$(SHARE_SRC)/native/sun/awt/image/cvutils \
e07a94a66985b674c5df11ca466792902164c4e2George McCollister -I$(PLATFORM_SRC)/native/sun/java2d/opengl \
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher -I$(PLATFORM_SRC)/native/sun/awt/medialib \
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher # Allows for builds on Debian GNU Linux, X11 is in a different place
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher # This should really be handled at a higher-level so we don't have to
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher # work-around this when cross-compiling
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher CPPFLAGS += -I/usr/X11R6/include/X11/extensions \
a5077712fc8c24e8cad08207b7b5a6603bde6a7cJakub Hrozek CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# We have some odd logic here because some Solaris 10 updates
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# have a render.h file that suggests gradients are supported, but
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# the Xrender.h doesn't have the corresponding type definitions.
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# Earlier updates have neither. We'd like to know if there's a mismatch.
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# Whilst in the C preprocessor we can tell if the render.h define's are set
2a5790216f57e9bdfb2930d52860bb5300366536Jakub Hrozek# we can't tell anything about C declarations.
b9e5bd09a5ff7009537a18914dbebcf10498f592Sumit Bose# A grep of Xrender.h is the only way to know this. If they are absent
af4ffe1001adcc0a96897e426d26444f07af9aa1Benjamin Franzke# we will set a flag indicating this mismatch and the JDK source file
6b0a7c72bb841d6885a620c68bd51d55109b66c7Jakub Hrozek# will interpret it to resolve the problem.
0e1dcef53d9d8465ce97d31ad11be4445a6e7eb8Lukas Slebodnik CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions
3fc158e59eebbc2f538fe0076a03928d0d4eab9fPavel Březina XRENDER_H := $(OPENWIN_HOME)/share/include/X11/extensions/Xrender.h
3fc158e59eebbc2f538fe0076a03928d0d4eab9fPavel Březina LINEARGRADIENT_CNT := $(shell $(EGREP) -c XLinearGradient $(XRENDER_H))
9dbdf62243f01f6aee41c2b5f2976c56da47f25dLukas Slebodnik CPPFLAGS += -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# Generation of wrappers
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# On sparcv9 we generate both 32 and 64-bit sizers in spite of ARCH_DATA_MODEL.
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# On sparcv9 CFLAGS already contain $(XARCH_OPTION/64), so to generate 32-bit sizer we need to change this option.
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherCFLAGS_32=$(subst $(XARCH_OPTION/64),$(XARCH_OPTION/32),$(CFLAGS))
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherSIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32 $(WRAPPER_GENERATOR_DIR)/sizes.64
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# On amd64 we generate both 32 and 64-bit sizers in spite of ARCH_DATA_MODEL.
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# On amd64 CFLAGS already contain $(XARCH_OPTION/64), so to generate 32-bit sizer we need to change this option.
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherCFLAGS_32=$(subst $(XARCH_OPTION/64),$(XARCH_OPTION/32),$(CFLAGS))
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherSIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32 $(WRAPPER_GENERATOR_DIR)/sizes.64
b50dffea929ee5cd0c59ba3c4822337cc162ff92Kamil Dudkaelse # !sparcv9 : includes (32-bit) sparc, i586
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub Hrozekelse # !solaris
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub HrozekSIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32 $(WRAPPER_GENERATOR_DIR)/sizes.64
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub Hrozekelse # !macosx
72e60fd4eabcfbcdbfe01e8c38b94052bc6c2067Jakub Hrozek# XXX Hack for 6185483 - use hard-coded sizes.
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# Add the 64-bit platforms that need to be included into 32-bit build
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# and have sizes.64-$(PLATFORM)-$(LIBARCH) hardcoded in the workspace
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagherifeq ($(PLATFORM)-$(LIBARCH), solaris-i386)
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# If you define DOHACK=true for some combination of $(PLATFORM)-$(LIBARCH),
3d038d2e0dc7af04ec2f7c85ae325accb39f6237Jakub Hrozek# make sure you have sizes.64-$(PLATFORM)-$(LIBARCH) pre-generated in
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher# $(PLATFORM_SRC)/classes/sun/awt/X11/generator/
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherPREDEFINED_SIZES_TMPL=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/sizes.64-$(PLATFORM)-$(LIBARCH)
2a5790216f57e9bdfb2930d52860bb5300366536Jakub HrozekPREDEFINED_SIZES=$(WRAPPER_GENERATOR_DIR)/sizes.64
77c0d1f6074059dafd2293f9c42ea0f9d60f8aadJakub Hrozek# 64 bit sizers are generated on platform-libarch (left) for use
77c0d1f6074059dafd2293f9c42ea0f9d60f8aadJakub Hrozek# on platform-libarch (right) and stored under the latter name.
e07a94a66985b674c5df11ca466792902164c4e2George McCollister# Do compare manually stored and automatically generated pair(s)
e07a94a66985b674c5df11ca466792902164c4e2George McCollister# if DOCOMPARE=true, just after the generation.
e07a94a66985b674c5df11ca466792902164c4e2George McCollisterSTORED_SIZES_TMPL_solaris_amd64=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/sizes.64-solaris-i386
e07a94a66985b674c5df11ca466792902164c4e2George McCollisterWRAPPER_GENERATOR_JAVA=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/WrapperGenerator.java
e07a94a66985b674c5df11ca466792902164c4e2George McCollisterWRAPPER_GENERATOR_DIR=$(GENSRCDIR)/sun/awt/X11/generator
172c07013d1ea99447a780fd36f49d5c3a76981bJakub HrozekWRAPPER_GENERATOR_TEMPDIR=$(TEMPDIR)/sun/awt/X11/generator
9917c138d9a270deb5820915384fbde751190c2aLukas SlebodnikWRAPPER_GENERATOR_CLASS=$(WRAPPER_GENERATOR_TEMPDIR)/WrapperGenerator.class
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherXLIBTYPES=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/xlibtypes.txt
336879aabae137f9a81304f147fb0d43001654b0Simo Sorce $(SIZERS_CC) $(CFLAGS_$(subst .,,$(suffix $@))) $(CPPFLAGS) -o $@ $(SIZER)$(suffix $@).c
336879aabae137f9a81304f147fb0d43001654b0Simo Sorce$(WRAPPER_GENERATOR_CLASS): $(WRAPPER_GENERATOR_JAVA)
aac071824f6c98003f30d49ab440c15b4b53692cLukas Slebodnik $(BOOT_JAVAC_CMD) -d $(WRAPPER_GENERATOR_TEMPDIR) $(WRAPPER_GENERATOR_JAVA)
aac071824f6c98003f30d49ab440c15b4b53692cLukas Slebodnik$(SIZERS_C): $(WRAPPER_GENERATOR_CLASS) $(XLIBTYPES)
aac071824f6c98003f30d49ab440c15b4b53692cLukas Slebodnik $(BOOT_JAVA_CMD) -cp $(WRAPPER_GENERATOR_TEMPDIR) WrapperGenerator \
aac071824f6c98003f30d49ab440c15b4b53692cLukas Slebodnik $(SIZER_DIR) $(XLIBTYPES) "sizer" $(subst .,,$(suffix $(basename $@)))
aac071824f6c98003f30d49ab440c15b4b53692cLukas Slebodnik @if [ "$(DOHACK)$@" = "true$(PREDEFINED_SIZES)" ]; then \
aac071824f6c98003f30d49ab440c15b4b53692cLukas Slebodnik $(ECHO) COPYING $(PREDEFINED_SIZES_TMPL) into $@; \
aac071824f6c98003f30d49ab440c15b4b53692cLukas Slebodnik $(WRAPPER_GENERATOR_DIR)/sizer$(suffix $@) > $@; \
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher @if [ "$(DOCOMPARE)$(suffix $@)" = "true.64" ]; then \
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher $(ECHO) COMPARING $@ and $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher $(DIFF) $@ $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher$(TEMPDIR)/.gen.wrappers: $(SIZES) $(WRAPPER_GENERATOR_CLASS) $(XLIBTYPES)
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher $(BOOT_JAVA_CMD) -cp $(WRAPPER_GENERATOR_TEMPDIR) WrapperGenerator \
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher $(GEN_DIR) $(XLIBTYPES) "gen" $(WRAPPER_GENERATOR_DIR)/sizes
2a9af1f71887f02935e2fb6ad5023afba5b6d43eSumit Bose $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon16.png \
885386b7e3f1c3e74b354576b98a092b0835d64eSumit Bose $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon24.png \
a7e27c11866a48742bb70564b88e15bf15e9367dPavel Březina $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon32.png \
a7e27c11866a48742bb70564b88e15bf15e9367dPavel Březina $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon48.png
f1ce53a3b5656361557f80f61dfd42a371230c65Stephen GallagherICONPATH=$(PLATFORM_SRC)/classes/sun/awt/X11
ICONS += \
$(CAT) $$i | \
-Djava.awt.headless=true \
$(CAT) $$i | \
-Djava.awt.headless=true \
$(TOUCH) $@