Makefile revision 395
ece9652d971886b99a269656ea4782319637e75avboxsync#
ece9652d971886b99a269656ea4782319637e75avboxsync# Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
ece9652d971886b99a269656ea4782319637e75avboxsync# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
ece9652d971886b99a269656ea4782319637e75avboxsync#
ece9652d971886b99a269656ea4782319637e75avboxsync# This code is free software; you can redistribute it and/or modify it
ece9652d971886b99a269656ea4782319637e75avboxsync# under the terms of the GNU General Public License version 2 only, as
c7814cf6e1240a519cbec0441e033d0e2470ed00vboxsync# published by the Free Software Foundation. Sun designates this
ece9652d971886b99a269656ea4782319637e75avboxsync# particular file as subject to the "Classpath" exception as provided
ece9652d971886b99a269656ea4782319637e75avboxsync# by Sun in the LICENSE file that accompanied this code.
ece9652d971886b99a269656ea4782319637e75avboxsync#
ece9652d971886b99a269656ea4782319637e75avboxsync# This code is distributed in the hope that it will be useful, but WITHOUT
ece9652d971886b99a269656ea4782319637e75avboxsync# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
ece9652d971886b99a269656ea4782319637e75avboxsync# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
ece9652d971886b99a269656ea4782319637e75avboxsync# version 2 for more details (a copy is included in the LICENSE file that
ece9652d971886b99a269656ea4782319637e75avboxsync# accompanied this code).
ece9652d971886b99a269656ea4782319637e75avboxsync#
ece9652d971886b99a269656ea4782319637e75avboxsync# You should have received a copy of the GNU General Public License version
ece9652d971886b99a269656ea4782319637e75avboxsync# 2 along with this work; if not, write to the Free Software Foundation,
ece9652d971886b99a269656ea4782319637e75avboxsync# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
ece9652d971886b99a269656ea4782319637e75avboxsync#
ece9652d971886b99a269656ea4782319637e75avboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
ece9652d971886b99a269656ea4782319637e75avboxsync# CA 95054 USA or visit www.sun.com if you need additional information or
ece9652d971886b99a269656ea4782319637e75avboxsync# have any questions.
ece9652d971886b99a269656ea4782319637e75avboxsync#
ece9652d971886b99a269656ea4782319637e75avboxsync
ece9652d971886b99a269656ea4782319637e75avboxsync# Makefile for langtools: wrapper around Ant build.xml file
ece9652d971886b99a269656ea4782319637e75avboxsync
36ec4b6f42e209d010ade084a96f46ce763345eavboxsync#
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsync# On Solaris, the 'make' utility from Sun will not work with these makefiles.
36ec4b6f42e209d010ade084a96f46ce763345eavboxsync# This little rule is only understood by Sun's make, and is harmless
796561faea8c2b07290fef332968d6048bbe1b1dvboxsync# when seen by the GNU make tool. If using Sun's make, this causes the
e35d51bc86d234abdf08fe247ea901501faa022fvboxsync# make command to fail.
fdd5745be4d1941123673bf7f8f3651d703822b6vboxsync#
796561faea8c2b07290fef332968d6048bbe1b1dvboxsyncSUN_MAKE_TEST:sh = @echo "ERROR: PLEASE USE GNU VERSION OF MAKE"; exit 33
796561faea8c2b07290fef332968d6048bbe1b1dvboxsync
796561faea8c2b07290fef332968d6048bbe1b1dvboxsync#
796561faea8c2b07290fef332968d6048bbe1b1dvboxsync# Minimal platform defs
796561faea8c2b07290fef332968d6048bbe1b1dvboxsync# Need FullPath because we can't rely on gnumake abspath, until we use v3.81
e35d51bc86d234abdf08fe247ea901501faa022fvboxsync#
e35d51bc86d234abdf08fe247ea901501faa022fvboxsync
e35d51bc86d234abdf08fe247ea901501faa022fvboxsyncSYSTEM_UNAME := $(shell uname)
aafe9fe588edab292546a0e4c1f7eb377fd35df4vboxsync
aafe9fe588edab292546a0e4c1f7eb377fd35df4vboxsyncifeq ($(SYSTEM_UNAME), Windows_NT)
aafe9fe588edab292546a0e4c1f7eb377fd35df4vboxsyncDEV_NULL = NUL
36ec4b6f42e209d010ade084a96f46ce763345eavboxsyncelse
47c2a6d84685d16b7ef87c307331e5588d892ef0vboxsyncifneq (,$(findstring CYGWIN,$(SYSTEM_UNAME)))
47c2a6d84685d16b7ef87c307331e5588d892ef0vboxsyncDEV_NULL = NUL
47c2a6d84685d16b7ef87c307331e5588d892ef0vboxsyncUSING_CYGWIN = true
47c2a6d84685d16b7ef87c307331e5588d892ef0vboxsyncelse
e35d51bc86d234abdf08fe247ea901501faa022fvboxsyncDEV_NULL = /dev/null
36ec4b6f42e209d010ade084a96f46ce763345eavboxsyncendif
47c2a6d84685d16b7ef87c307331e5588d892ef0vboxsyncendif
36ec4b6f42e209d010ade084a96f46ce763345eavboxsync
599595881adeaefb423b996cf29e21e5831c26d7vboxsyncifdef USING_CYGWIN
36ec4b6f42e209d010ade084a96f46ce763345eavboxsyncdefine FullPath
36ec4b6f42e209d010ade084a96f46ce763345eavboxsync$(shell cygpath -a -s -m $1 2> $(DEV_NULL))
83365ff77c1571f994b3a15bfbdee077d2ea8a07vboxsyncendef
36ec4b6f42e209d010ade084a96f46ce763345eavboxsyncelse
36ec4b6f42e209d010ade084a96f46ce763345eavboxsyncdefine FullPath
36ec4b6f42e209d010ade084a96f46ce763345eavboxsync$(shell cd $1 2> $(DEV_NULL) && pwd)
36ec4b6f42e209d010ade084a96f46ce763345eavboxsyncendef
36ec4b6f42e209d010ade084a96f46ce763345eavboxsyncendif
36ec4b6f42e209d010ade084a96f46ce763345eavboxsync
36ec4b6f42e209d010ade084a96f46ce763345eavboxsync#
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsync# Makefile args
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsync#
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsync
ece9652d971886b99a269656ea4782319637e75avboxsyncifdef QUIET
b09004e17d8096e3983fb0ecf5aad272877037ccvboxsync ANT_OPTIONS += -quiet
b09004e17d8096e3983fb0ecf5aad272877037ccvboxsyncendif
b09004e17d8096e3983fb0ecf5aad272877037ccvboxsync
b09004e17d8096e3983fb0ecf5aad272877037ccvboxsyncifdef VERBOSE
b09004e17d8096e3983fb0ecf5aad272877037ccvboxsync ANT_OPTIONS += -verbose -diagnostics
b09004e17d8096e3983fb0ecf5aad272877037ccvboxsyncendif
992ef02987d71b2b9f73a50265997c7f8e384886vboxsync
b09004e17d8096e3983fb0ecf5aad272877037ccvboxsyncifdef JDK_VERSION
b09004e17d8096e3983fb0ecf5aad272877037ccvboxsync ANT_OPTIONS += -Djdk.version=$(JDK_VERSION)
992ef02987d71b2b9f73a50265997c7f8e384886vboxsyncendif
992ef02987d71b2b9f73a50265997c7f8e384886vboxsync
ece9652d971886b99a269656ea4782319637e75avboxsyncifdef FULL_VERSION
ece9652d971886b99a269656ea4782319637e75avboxsync ANT_OPTIONS += -Dfull.version='$(FULL_VERSION)' # will contain spaces
e7f5b62e52275099a4d14501306063e23876b771vboxsyncendif
1c19381e9455f78f30a14a20d19f1dab7da19334vboxsync
36ec4b6f42e209d010ade084a96f46ce763345eavboxsyncifdef MILESTONE
ece9652d971886b99a269656ea4782319637e75avboxsyncifneq ($(MILESTONE),fcs)
ece9652d971886b99a269656ea4782319637e75avboxsync ANT_OPTIONS += -Dmilestone=$(MILESTONE)
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsyncelse
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsync ANT_OPTIONS += -Drelease=$(JDK_VERSION)
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsyncendif
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsyncendif
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsync
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsyncifdef BUILD_NUMBER
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsync ANT_OPTIONS += -Dbuild.number=$(BUILD_NUMBER)
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsyncelse
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsync ifdef JDK_BUILD_NUMBER
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsync ANT_OPTIONS += -Dbuild.number=$(JDK_BUILD_NUMBER)
e7f5b62e52275099a4d14501306063e23876b771vboxsync endif
e7f5b62e52275099a4d14501306063e23876b771vboxsyncendif
e7f5b62e52275099a4d14501306063e23876b771vboxsync
992ef02987d71b2b9f73a50265997c7f8e384886vboxsyncifeq ($(VARIANT), DBG)
992ef02987d71b2b9f73a50265997c7f8e384886vboxsync ANT_OPTIONS += -Djavac.debug=true
ece9652d971886b99a269656ea4782319637e75avboxsyncelse
e7f5b62e52275099a4d14501306063e23876b771vboxsync ifeq ($(VARIANT), OPT)
ece9652d971886b99a269656ea4782319637e75avboxsync ANT_OPTIONS += -Djavac.debug=false
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsync endif
e7f5b62e52275099a4d14501306063e23876b771vboxsyncendif
e7f5b62e52275099a4d14501306063e23876b771vboxsync
e7f5b62e52275099a4d14501306063e23876b771vboxsyncifeq ($(DEBUG_CLASSFILES), true)
e7f5b62e52275099a4d14501306063e23876b771vboxsync ANT_OPTIONS += -Djavac.debug=true
e7f5b62e52275099a4d14501306063e23876b771vboxsync ANT_OPTIONS += -Ddebug.classfiles=true
992ef02987d71b2b9f73a50265997c7f8e384886vboxsyncendif
ece9652d971886b99a269656ea4782319637e75avboxsync
ece9652d971886b99a269656ea4782319637e75avboxsync# Note: jdk/make/common/Defs.gmk uses LANGUAGE_VERSION (-source NN)
08edd51145a38b2daffd73601db32bcd9a903514vboxsync# and the somewhat misnamed CLASS_VERSION (-target NN)
ece9652d971886b99a269656ea4782319637e75avboxsyncifdef TARGET_CLASS_VERSION
ece9652d971886b99a269656ea4782319637e75avboxsync ANT_OPTIONS += -Djavac.target=$(TARGET_CLASS_VERSION)
ece9652d971886b99a269656ea4782319637e75avboxsyncelse
ece9652d971886b99a269656ea4782319637e75avboxsync ifdef JAVAC_TARGET_ARG
ece9652d971886b99a269656ea4782319637e75avboxsync ANT_OPTIONS += -Djavac.target=$(JAVAC_TARGET_ARG)
ece9652d971886b99a269656ea4782319637e75avboxsync endif
ece9652d971886b99a269656ea4782319637e75avboxsyncendif
ece9652d971886b99a269656ea4782319637e75avboxsync
ece9652d971886b99a269656ea4782319637e75avboxsyncifdef SOURCE_LANGUAGE_VERSION
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsync ANT_OPTIONS += -Djavac.source=$(SOURCE_LANGUAGE_VERSION)
e7f5b62e52275099a4d14501306063e23876b771vboxsyncelse
ece9652d971886b99a269656ea4782319637e75avboxsync ifdef JAVAC_SOURCE_ARG
ece9652d971886b99a269656ea4782319637e75avboxsync ANT_OPTIONS += -Djavac.source=$(JAVAC_SOURCE_ARG)
ece9652d971886b99a269656ea4782319637e75avboxsync endif
ece9652d971886b99a269656ea4782319637e75avboxsyncendif
ece9652d971886b99a269656ea4782319637e75avboxsync
ece9652d971886b99a269656ea4782319637e75avboxsyncifdef ALT_BOOTDIR
ece9652d971886b99a269656ea4782319637e75avboxsync ANT_OPTIONS += -Dboot.java.home=$(ALT_BOOTDIR)
ece9652d971886b99a269656ea4782319637e75avboxsync ANT_JAVA_HOME = JAVA_HOME=$(ALT_BOOTDIR)
ece9652d971886b99a269656ea4782319637e75avboxsyncendif
0be1c98f1388ddc063a7e830f53e2018f658b348vboxsync
0be1c98f1388ddc063a7e830f53e2018f658b348vboxsyncifdef ALT_OUTPUTDIR
0be1c98f1388ddc063a7e830f53e2018f658b348vboxsync OUTPUTDIR = $(ALT_OUTPUTDIR)
f910333674d7dd65ca746ec010ef354fd239cea4vboxsync ANT_OPTIONS += -Dbuild.dir=$(ALT_OUTPUTDIR)/build
e7f5b62e52275099a4d14501306063e23876b771vboxsync ANT_OPTIONS += -Ddist.dir=$(ALT_OUTPUTDIR)/dist
79c6e4760808b57244846404a5a799fedba4353bvboxsyncelse
0be1c98f1388ddc063a7e830f53e2018f658b348vboxsync OUTPUTDIR = ..
f910333674d7dd65ca746ec010ef354fd239cea4vboxsyncendif
f910333674d7dd65ca746ec010ef354fd239cea4vboxsync#ABS_OUTPUTDIR = $(abspath $(OUTPUTDIR))
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsyncABS_OUTPUTDIR = $(call FullPath,$(OUTPUTDIR))
f910333674d7dd65ca746ec010ef354fd239cea4vboxsync
e7f5b62e52275099a4d14501306063e23876b771vboxsyncANT_TMPDIR = $(ABS_OUTPUTDIR)/build/ant-tmp
0be1c98f1388ddc063a7e830f53e2018f658b348vboxsyncANT_OPTS = ANT_OPTS=-Djava.io.tmpdir='$(ANT_TMPDIR)'
e7f5b62e52275099a4d14501306063e23876b771vboxsync
f910333674d7dd65ca746ec010ef354fd239cea4vboxsyncifdef FINDBUGS_HOME
f910333674d7dd65ca746ec010ef354fd239cea4vboxsync ANT_OPTIONS += -Dfindbugs.home=$(FINDBUGS_HOME)
e7f5b62e52275099a4d14501306063e23876b771vboxsyncendif
e7f5b62e52275099a4d14501306063e23876b771vboxsync
f910333674d7dd65ca746ec010ef354fd239cea4vboxsyncifdef ANT_HOME
f910333674d7dd65ca746ec010ef354fd239cea4vboxsync ANT = $(ANT_HOME)/bin/ant
f910333674d7dd65ca746ec010ef354fd239cea4vboxsync ifneq ($(shell test -x $(ANT) && echo OK), OK)
f910333674d7dd65ca746ec010ef354fd239cea4vboxsync $(error $(ANT) not found -- please update ANT_HOME)
f910333674d7dd65ca746ec010ef354fd239cea4vboxsync endif
e7f5b62e52275099a4d14501306063e23876b771vboxsyncelse
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync ANT = ant
f910333674d7dd65ca746ec010ef354fd239cea4vboxsync ifneq ($(shell test -x "`which $(ANT)`" && echo OK), OK)
f910333674d7dd65ca746ec010ef354fd239cea4vboxsync $(error 'ant' not found -- please set ANT_HOME or put 'ant' on your PATH)
f910333674d7dd65ca746ec010ef354fd239cea4vboxsync endif
f910333674d7dd65ca746ec010ef354fd239cea4vboxsyncendif
e49c9560a28711a6b95871372673b6f8cc7384b6vboxsync
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync# Default target and expected 'do everything' target
f910333674d7dd65ca746ec010ef354fd239cea4vboxsyncall: build
f910333674d7dd65ca746ec010ef354fd239cea4vboxsync
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync# Standard make clobber target
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsyncclobber: clean
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync# All ant targets of interest
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsyncANT_TARGETS = build clean sanity post-sanity diagnostics # for now
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync# Create a make target for each
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync$(ANT_TARGETS):
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync @ mkdir -p $(OUTPUTDIR)/build $(ANT_TMPDIR)
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync $(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) -diagnostics > $(OUTPUTDIR)/build/ant-diagnostics.log
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync $(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) $(ANT_OPTIONS) $@
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync#-------------------------------------------------------------------
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync#
992ef02987d71b2b9f73a50265997c7f8e384886vboxsync# Targets for Sun's internal JPRT build system
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsyncCD = cd
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsyncZIP = zip
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync
992ef02987d71b2b9f73a50265997c7f8e384886vboxsyncJPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(JPRT_BUILD_FLAVOR)-bundle.zip
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsyncjprt_build_product jprt_build_debug jprt_build_fastdebug: all
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync ( $(CD) $(OUTPUTDIR) && \
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync $(ZIP) -q -r $(JPRT_ARCHIVE_BUNDLE) build dist )
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync#-------------------------------------------------------------------
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync# Declare these phony (not filenames)
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync.PHONY: $(ANT_TARGETS) all clobber \
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync jprt_build_product jprt_build_debug jprt_build_fastdebug
6cb1a01aaf746e26c5190a7b0fca706393bdf3aevboxsync