Makefile revision 0
b897c52f865b2fc4e220e2110b874e59c716456bBob Halley#
5fbced719b71e659322b4ce3e4a39c9b039674c7Bob Halley# Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
bf8267aa453e5d2a735ed732a043b77a0b355b20Mark Andrews#
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# This code is free software; you can redistribute it and/or modify it
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# under the terms of the GNU General Public License version 2 only, as
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# published by the Free Software Foundation. Sun designates this
15a44745412679c30a6d022733925af70a38b715David Lawrence# particular file as subject to the "Classpath" exception as provided
5a6e6c2c9b2f6cf426aa2a682aa800765e26d540Andreas Gustafsson# by Sun in the LICENSE file that accompanied this code.
5a6e6c2c9b2f6cf426aa2a682aa800765e26d540Andreas Gustafsson#
5a6e6c2c9b2f6cf426aa2a682aa800765e26d540Andreas Gustafsson# This code is distributed in the hope that it will be useful, but WITHOUT
5a6e6c2c9b2f6cf426aa2a682aa800765e26d540Andreas Gustafsson# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
2da2220fe7af2c45724b50b0187523b1fab0cf08Rob Austein# version 2 for more details (a copy is included in the LICENSE file that
2da2220fe7af2c45724b50b0187523b1fab0cf08Rob Austein# accompanied this code).
2da2220fe7af2c45724b50b0187523b1fab0cf08Rob Austein#
2da2220fe7af2c45724b50b0187523b1fab0cf08Rob Austein# You should have received a copy of the GNU General Public License version
5a6e6c2c9b2f6cf426aa2a682aa800765e26d540Andreas Gustafsson# 2 along with this work; if not, write to the Free Software Foundation,
5a6e6c2c9b2f6cf426aa2a682aa800765e26d540Andreas Gustafsson# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence#
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
cb3e854e181373807f7f011e5050c1a8013b4841Brian Wellington# CA 95054 USA or visit www.sun.com if you need additional information or
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence# have any questions.
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence#
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence
5a6e6c2c9b2f6cf426aa2a682aa800765e26d540Andreas Gustafsson# Makefile for langtools: wrapper around Ant build.xml file
5a6e6c2c9b2f6cf426aa2a682aa800765e26d540Andreas Gustafsson
5a6e6c2c9b2f6cf426aa2a682aa800765e26d540Andreas Gustafsson#
5a6e6c2c9b2f6cf426aa2a682aa800765e26d540Andreas Gustafsson# On Solaris, the 'make' utility from Sun will not work with these makefiles.
5a6e6c2c9b2f6cf426aa2a682aa800765e26d540Andreas Gustafsson# This little rule is only understood by Sun's make, and is harmless
5a6e6c2c9b2f6cf426aa2a682aa800765e26d540Andreas Gustafsson# when seen by the GNU make tool. If using Sun's make, this causes the
5a6e6c2c9b2f6cf426aa2a682aa800765e26d540Andreas Gustafsson# make command to fail.
6ca4964362ec37d6afbf614dbb9aaa2f525002f1Mark Andrews#
c968a9ca37964ae0bdc5d452ad784ec93bd04c57David LawrenceSUN_MAKE_TEST:sh = @echo "ERROR: PLEASE USE GNU VERSION OF MAKE"; exit 33
5a6e6c2c9b2f6cf426aa2a682aa800765e26d540Andreas Gustafsson
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence#
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence# Minimal platform defs
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence# Need FullPath because we can't rely on gnumake abspath, until we use v3.81
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence#
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence
b897c52f865b2fc4e220e2110b874e59c716456bBob HalleySYSTEM_UNAME := $(shell uname)
b897c52f865b2fc4e220e2110b874e59c716456bBob Halley
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsifeq ($(SYSTEM_UNAME), Windows_NT)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsDEV_NULL = NUL
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewselse
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsifneq (,$(findstring CYGWIN,$(SYSTEM_UNAME)))
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsDEV_NULL = NUL
9640c35421ba0bb4af6b6bfbff695d2a0ac560b3Mark AndrewsUSING_CYGWIN = true
7877ad5db24dbad945afc670b2010c70d0d7e2f5Mark Andrewselse
7877ad5db24dbad945afc670b2010c70d0d7e2f5Mark AndrewsDEV_NULL = /dev/null
b897c52f865b2fc4e220e2110b874e59c716456bBob Halleyendif
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsendif
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsifdef USING_CYGWIN
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsdefine FullPath
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews$(shell cygpath -a -s -m $1 2> $(DEV_NULL))
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsendef
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewselse
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsdefine FullPath
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews$(shell cd $1 2> $(DEV_NULL) && pwd)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsendef
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsendif
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews#
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# Makefile args
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews#
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsifdef QUIET
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews ANT_OPTIONS += -quiet
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsendif
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsifdef VERBOSE
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews ANT_OPTIONS += -verbose -diagnostics
e107074f370ee86275bd64ab8bcaa429fec1c7e2Mark Andrewsendif
e107074f370ee86275bd64ab8bcaa429fec1c7e2Mark Andrews
e107074f370ee86275bd64ab8bcaa429fec1c7e2Mark Andrewsifdef JDK_VERSION
e107074f370ee86275bd64ab8bcaa429fec1c7e2Mark Andrews ANT_OPTIONS += -Djdk.version=$(JDK_VERSION)
e107074f370ee86275bd64ab8bcaa429fec1c7e2Mark Andrewsendif
e107074f370ee86275bd64ab8bcaa429fec1c7e2Mark Andrews
e107074f370ee86275bd64ab8bcaa429fec1c7e2Mark Andrewsifdef FULL_VERSION
e107074f370ee86275bd64ab8bcaa429fec1c7e2Mark Andrews ANT_OPTIONS += -Dfull.version='$(FULL_VERSION)' # will contain spaces
e107074f370ee86275bd64ab8bcaa429fec1c7e2Mark Andrewsendif
e107074f370ee86275bd64ab8bcaa429fec1c7e2Mark Andrews
e107074f370ee86275bd64ab8bcaa429fec1c7e2Mark Andrewsifdef MILESTONE
e107074f370ee86275bd64ab8bcaa429fec1c7e2Mark Andrews ANT_OPTIONS += -Dmilestone=$(MILESTONE)
a809c57ab263613c79999653ad28fbe47fa4bfa3Mark Andrewsendif
a809c57ab263613c79999653ad28fbe47fa4bfa3Mark Andrews
e107074f370ee86275bd64ab8bcaa429fec1c7e2Mark Andrewsifdef BUILD_NUMBER
e107074f370ee86275bd64ab8bcaa429fec1c7e2Mark Andrews ANT_OPTIONS += -Dbuild.number=$(BUILD_NUMBER)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewselse
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews ifdef JDK_BUILD_NUMBER
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews ANT_OPTIONS += -Dbuild.number=$(JDK_BUILD_NUMBER)
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence endif
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrenceendif
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrenceifeq ($(VARIANT), DBG)
4b598d8ae578861d5f3fc1333c9f84c9c9c8be7cDavid Lawrence ANT_OPTIONS += -Djavac.debug=true
8959ca20706f210127d0af1df769fb945c92baeaMark Andrewselse
4b598d8ae578861d5f3fc1333c9f84c9c9c8be7cDavid Lawrence ifeq ($(VARIANT), OPT)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews ANT_OPTIONS += -Djavac.debug=false
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews endif
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsendif
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# Note: jdk/make/common/Defs.gmk uses LANGUAGE_VERSION (-source NN)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# and the somewhat misnamed CLASS_VERSION (-target NN)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsifdef TARGET_CLASS_VERSION
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews ANT_OPTIONS += -Djavac.target=$(TARGET_CLASS_VERSION)
f6161d8b90541b52946ae845bc8e2bec2647d6cbMark Andrewselse
5bae12051f80947fb9a5a6a3a54762e8bd08d95bMark Andrews ifdef JAVAC_TARGET_ARG
f6161d8b90541b52946ae845bc8e2bec2647d6cbMark Andrews ANT_OPTIONS += -Djavac.target=$(JAVAC_TARGET_ARG)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews endif
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsendif
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsifdef ALT_BOOTDIR
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews ANT_OPTIONS += -Dboot.java.home=$(ALT_BOOTDIR)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews ANT_JAVA_HOME = JAVA_HOME=$(ALT_BOOTDIR)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsendif
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsifdef ALT_OUTPUTDIR
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews OUTPUTDIR = $(ALT_OUTPUTDIR)
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence ANT_OPTIONS += -Dbuild.dir=$(ALT_OUTPUTDIR)/build
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence ANT_OPTIONS += -Ddist.dir=$(ALT_OUTPUTDIR)/dist
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrenceelse
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence OUTPUTDIR = ..
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrenceendif
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence#ABS_OUTPUTDIR = $(abspath $(OUTPUTDIR))
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid LawrenceABS_OUTPUTDIR = $(call FullPath,$(OUTPUTDIR))
4b598d8ae578861d5f3fc1333c9f84c9c9c8be7cDavid Lawrence
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid LawrenceANT_TMPDIR = $(ABS_OUTPUTDIR)/build/ant-tmp
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark AndrewsANT_OPTS = ANT_OPTS=-Djava.io.tmpdir='$(ANT_TMPDIR)'
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrewsifdef FINDBUGS_HOME
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews ANT_OPTIONS += -Dfindbugs.home=$(FINDBUGS_HOME)
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrewsendif
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrewsifdef ANT_HOME
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews ANT = $(ANT_HOME)/bin/ant
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews ifneq ($(shell test -x $(ANT) && echo OK), OK)
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews $(error $(ANT) not found -- please update ANT_HOME)
3b84724c44654f5c851b04acd71ba3fb6af133feMark Andrews endif
3b84724c44654f5c851b04acd71ba3fb6af133feMark Andrewselse
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews ANT = ant
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews ifneq ($(shell test -x "`which $(ANT)`" && echo OK), OK)
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews $(error 'ant' not found -- please set ANT_HOME or put 'ant' on your PATH)
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews endif
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrewsendif
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews# Default target and expected 'do everything' target
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrewsall: build
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews# Standard make clobber target
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrewsclobber: clean
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews# All ant targets of interest
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark AndrewsANT_TARGETS = build clean sanity post-sanity diagnostics # for now
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews# Create a make target for each
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews$(ANT_TARGETS):
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews @ mkdir -p $(OUTPUTDIR)/build $(ANT_TMPDIR)
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews $(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) -diagnostics > $(OUTPUTDIR)/build/ant-diagnostics.log
17f0452d8584cbcd6772b6d79eeadfa462162a51Mark Andrews $(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) $(ANT_OPTIONS) $@
4e71e9b6c86d4d437c1beb4070861a77464f98e6Andreas Gustafsson
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence#-------------------------------------------------------------------
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence#
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence# Targets for Sun's internal JPRT build system
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid LawrenceCD = cd
5a48c9f76003a649e16de34fe6206e3b67b97afbBob HalleyZIP = zip
e2653c8e8437a0af130346b471c337ca3aa8910cMark Andrews
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid LawrenceJPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(JPRT_BUILD_FLAVOR)-bundle.zip
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence
9640c35421ba0bb4af6b6bfbff695d2a0ac560b3Mark Andrewsjprt_build_product jprt_build_debug jprt_build_fastdebug: all
168cf0ede1cf13a095e48af6749d88fbc432f096Evan Hunt ( $(CD) $(OUTPUTDIR) && \
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence $(ZIP) -q -r $(JPRT_ARCHIVE_BUNDLE) build dist )
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence#-------------------------------------------------------------------
86cbec9012b1db3f85789155c38d10c63a96156fAndreas Gustafsson
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence# Declare these phony (not filenames)
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence.PHONY: $(ANT_TARGETS) all clobber \
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence jprt_build_product jprt_build_debug jprt_build_fastdebug
f4a7d04843eb62c92f2d4ff338da49ae86e3279bDavid Lawrence