Makefile revision 1066
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# This code is free software; you can redistribute it and/or modify it
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# under the terms of the GNU General Public License version 2 only, as
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# published by the Free Software Foundation. Sun designates this
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# particular file as subject to the "Classpath" exception as provided
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync# by Sun in the LICENSE file that accompanied this code.
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync# This code is distributed in the hope that it will be useful, but WITHOUT
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync# version 2 for more details (a copy is included in the LICENSE file that
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync# accompanied this code).
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# You should have received a copy of the GNU General Public License version
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# 2 along with this work; if not, write to the Free Software Foundation,
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# CA 95054 USA or visit www.sun.com if you need additional information or
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# have any questions.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncCLASSES_INIT += $(TEMPDIR)/.gen.wrappers $(TEMPDIR)/.gen_icons touch.wrappers
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Since this library will be living in a subdirectory below the other libraries
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# we need to add an extra runpath so that libraries in the upper directory
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# are found at runtime.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Add to the ambient vpath to pick up files in subdirectories
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncvpath %.c $(PLATFORM_SRC)/native/sun/awt/robot_child
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(LDFLAGS_COMMON) $(AWT_RUNPATH) $(OTHER_LDFLAGS) -lXtst -lXi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Allows for builds on Debian GNU Linux, X11 is in a different place
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Generation of wrappers
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# On sparcv9 we generate both 32 and 64-bit sizers in spite of ARCH_DATA_MODEL.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# On sparcv9 CFLAGS already contain $(XARCH_OPTION/64), so to generate 32-bit sizer we need to change this option.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncCFLAGS_32=$(subst $(XARCH_OPTION/64),$(XARCH_OPTION/32),$(CFLAGS))
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncSIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32 $(WRAPPER_GENERATOR_DIR)/sizes.64
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# On amd64 we generate both 32 and 64-bit sizers in spite of ARCH_DATA_MODEL.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# On amd64 CFLAGS already contain $(XARCH_OPTION/64), so to generate 32-bit sizer we need to change this option.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncCFLAGS_32=$(subst $(XARCH_OPTION/64),$(XARCH_OPTION/32),$(CFLAGS))
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncSIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32 $(WRAPPER_GENERATOR_DIR)/sizes.64
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncelse # !sparcv9 : includes (32-bit) sparc, i586
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncelse # !solaris
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# XXX Hack for 6185483 - use hard-coded sizes.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Add the 64-bit platforms that need to be included into 32-bit build
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# and have sizes.64-$(PLATFORM)-$(LIBARCH) hardcoded in the workspace
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# If you define DOHACK=true for some combination of $(PLATFORM)-$(LIBARCH),
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# make sure you have sizes.64-$(PLATFORM)-$(LIBARCH) pre-generated in
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncPREDEFINED_SIZES_TMPL=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/sizes.64-$(PLATFORM)-$(LIBARCH)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# 64 bit sizers are generated on platform-libarch (left) for use
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# on platform-libarch (right) and stored under the latter name.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Do compare manually stored and automatically generated pair(s)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# if DOCOMPARE=true, just after the generation.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncSTORED_SIZES_TMPL_solaris_amd64=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/sizes.64-solaris-i386
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncWRAPPER_GENERATOR_JAVA=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/WrapperGenerator.java
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncWRAPPER_GENERATOR_DIR=$(GENSRCDIR)/sun/awt/X11/generator
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncWRAPPER_GENERATOR_TEMPDIR=$(TEMPDIR)/sun/awt/X11/generator
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncWRAPPER_GENERATOR_CLASS=$(WRAPPER_GENERATOR_TEMPDIR)/WrapperGenerator.class
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncXLIBTYPES=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/xlibtypes.txt
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(CC) $(CFLAGS_$(subst .,,$(suffix $@))) $(CPPFLAGS) -o $@ $(SIZER)$(suffix $@).c
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync$(WRAPPER_GENERATOR_CLASS): $(WRAPPER_GENERATOR_JAVA)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(BOOT_JAVAC_CMD) -d $(WRAPPER_GENERATOR_TEMPDIR) $(WRAPPER_GENERATOR_JAVA)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync$(SIZERS_C): $(WRAPPER_GENERATOR_CLASS) $(XLIBTYPES)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(BOOT_JAVA_CMD) -cp $(WRAPPER_GENERATOR_TEMPDIR) WrapperGenerator \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(SIZER_DIR) $(XLIBTYPES) "sizer" $(subst .,,$(suffix $(basename $@)))
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync @if [ "$(DOHACK)$@" = "true$(PREDEFINED_SIZES)" ]; then \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(ECHO) COPYING $(PREDEFINED_SIZES_TMPL) into $@; \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync @if [ "$(DOCOMPARE)$(suffix $@)" = "true.64" ]; then \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(ECHO) COMPARING $@ and $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(DIFF) $@ $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync$(TEMPDIR)/.gen.wrappers: $(SIZES) $(WRAPPER_GENERATOR_CLASS) $(XLIBTYPES)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(BOOT_JAVA_CMD) -cp $(WRAPPER_GENERATOR_TEMPDIR) WrapperGenerator \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(GEN_DIR) $(XLIBTYPES) "gen" $(WRAPPER_GENERATOR_DIR)/sizes
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon16.png \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon24.png \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon32.png \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon48.png
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync$(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class: ToBin.java
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync$(TEMPDIR)/.gen_icons: $(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class $(ICONS)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(ECHO) "public class XAWTIcon32_$$name {" >> $$classname; \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(ECHO) "public static int[] $$name = { " >> $$classname; \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(ECHO) "public class XAWTIcon64_$$name {" >> $$classname; \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync $(ECHO) "public static long[] $$name = { " >> $$classname; \