Makefile revision 87
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Copyright 2007-2009 Sun Microsystems, Inc. All Rights Reserved.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# This code is free software; you can redistribute it and/or modify it
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# under the terms of the GNU General Public License version 2 only, as
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# published by the Free Software Foundation. Sun designates this
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# particular file as subject to the "Classpath" exception as provided
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# by Sun in the LICENSE file that accompanied this code.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# This code is distributed in the hope that it will be useful, but WITHOUT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# version 2 for more details (a copy is included in the LICENSE file that
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# accompanied this code).
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# You should have received a copy of the GNU General Public License version
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# 2 along with this work; if not, write to the Free Software Foundation,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# CA 95054 USA or visit www.sun.com if you need additional information or
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# have any questions.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Makefile wrapper around Ant build.xml file
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# On Solaris, the 'make' utility from Sun will not work with these makefiles.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# This little rule is only understood by Sun's make, and is harmless
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# when seen by the GNU make tool. If using Sun's make, this causes the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# make command to fail.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUN_MAKE_TEST:sh = @echo "ERROR: PLEASE USE GNU VERSION OF MAKE"; exit 33
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Note: jdk/make/common/Defs.gmk uses LANGUAGE_VERSION (-source NN)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# and the somewhat misnamed CLASS_VERSION (-target NN)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ANT_OPTIONS += -Djavac.target=$(TARGET_CLASS_VERSION)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ANT_OPTIONS += -Djavac.target=$(JAVAC_TARGET_ARG)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ANT_OPTIONS += -Djavac.source=$(SOURCE_LANGUAGE_VERSION)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ANT_OPTIONS += -Djavac.source=$(JAVAC_SOURCE_ARG)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Figure out the platform we are using
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Where is /java in case we need it
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Where is /java/devtools in case we need it
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Add in path to devtools
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ANT_OPTIONS += -Dbootstrap.dir=$(ALT_LANGTOOLS_DIST)/bootstrap
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ANT_JAVA_HOME = JAVA_HOME=$(ALT_JDK_IMPORT_PATH)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(error "$(ANT) not found; please update ANT_HOME")
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ifneq ($(shell which $(ANT) > /dev/null; echo $$?), 0)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(error "\"ant\" not found; please set ANT_HOME or put \"ant\" on your PATH")
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Default target and expected 'do everything' target
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# All ant targets of interest
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinANT_TARGETS = all source build dist clobber clean sanity
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Create a make target for each
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein cd .. && $(ANT_JAVA_HOME) $(ANT) $(ANT_OPTIONS) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Help target
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @echo "----------------------------------------------------------"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @echo "Help information for this Makefile:"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @echo " Targets (see ant project information for descriptions):"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @echo " Environment or command line variables (all optional):"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "if set makes sure ant property javac.debug is true")
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "if SOURCE_LANGUAGE_VERSION not set uses this to set ant property javac.source")
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "if TARGET_CLASS_VERSION not set uses this to set ant property javac.target")
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "if set uses this to set ant property javac.source")
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "if set to OPT means optimized build will set javac.debug to false")
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @echo "----------------------------------------------------------"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @echo "Ant project file help information:"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @$(ANT_JAVA_HOME) cd .. && $(ANT) $(ANT_OPTIONS) -p
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @echo "----------------------------------------------------------"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Targets for Sun's internal JPRT build system
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinjprt_build_product jprt_build_debug jprt_build_fastdebug: all
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Declare these phony (not filenames)