8008420: Tweaks to make all NEWBUILD=false round 2
Reviewed-by: jjh
Contributed-by: james.laskey@oracle.com
## Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.## This code is free software; you can redistribute it and/or modify it# under the terms of the GNU General Public License version 2 only, as# published by the Free Software Foundation. Oracle designates this# particular file as subject to the "Classpath" exception as provided# by Oracle in the LICENSE file that accompanied this code.## This code is distributed in the hope that it will be useful, but WITHOUT# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License# version 2 for more details (a copy is included in the LICENSE file that# accompanied this code).## You should have received a copy of the GNU General Public License version# 2 along with this work; if not, write to the Free Software Foundation,# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.## Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA# or visit www.oracle.com if you need additional information or have any# questions.## Makefile for nashorn: wrapper around Ant build.xml file## On Solaris, the standard 'make' utility will not work with these makefiles.# This little rule is only understood by Solaris make, and is harmless# when seen by the GNU make tool. If using Solaris make, this causes the# make command to fail.#SUN_MAKE_TEST:sh = @echo "ERROR: PLEASE USE GNU VERSION OF MAKE"; exit 33## Minimal platform defs# Need FullPath because we can't rely on gnumake abspath, until we use v3.81#SYSTEM_UNAME := $(shell uname)# Where is unwanted output to be delivered?# On Windows, MKS uses the special file "NUL", cygwin uses the customary unix file.ifeq ($(SYSTEM_UNAME), Windows_NT)DEV_NULL = NULelseDEV_NULL = /dev/null endififneq (,$(findstring CYGWIN,$(SYSTEM_UNAME)))USING_CYGWIN = trueendififdef USING_CYGWINdefine FullPath$(shell cygpath -a -s -m $1 2> $(DEV_NULL))endefelsedefine FullPath$(shell cd $1 2> $(DEV_NULL) && pwd)endefendif## Makefile args#ifdef QUIET ANT_OPTIONS += -quietendififdef VERBOSE ANT_OPTIONS += -verbose -debugendififdef JDK_VERSION ANT_OPTIONS += -Djdk.version=$(JDK_VERSION)endif ifdef FULL_VERSION ANT_OPTIONS += -Dfull.version='$(FULL_VERSION)' # will contain spacesendif ifdef MILESTONEifneq ($(MILESTONE),fcs) ANT_OPTIONS += -Dmilestone=$(MILESTONE)else ANT_OPTIONS += -Drelease=$(JDK_VERSION)endifendififdef BUILD_NUMBER ANT_OPTIONS += -Dbuild.number=$(BUILD_NUMBER)else ifdef JDK_BUILD_NUMBER ANT_OPTIONS += -Dbuild.number=$(JDK_BUILD_NUMBER) endifendififeq ($(VARIANT), DBG) ANT_OPTIONS += -Djavac.debug=trueelse ifeq ($(VARIANT), OPT) ANT_OPTIONS += -Djavac.debug=false endifendififeq ($(DEBUG_CLASSFILES), true) ANT_OPTIONS += -Djavac.debug=true ANT_OPTIONS += -Ddebug.classfiles=trueendif# Note: jdk/make/common/Defs.gmk uses LANGUAGE_VERSION (-source NN)# and the somewhat misnamed CLASS_VERSION (-target NN)ifdef TARGET_CLASS_VERSION ANT_OPTIONS += -Djavac.target=$(TARGET_CLASS_VERSION)else ifdef JAVAC_TARGET_ARG ANT_OPTIONS += -Djavac.target=$(JAVAC_TARGET_ARG) endifendif ifdef SOURCE_LANGUAGE_VERSION ANT_OPTIONS += -Djavac.source=$(SOURCE_LANGUAGE_VERSION)else ifdef JAVAC_SOURCE_ARG ANT_OPTIONS += -Djavac.source=$(JAVAC_SOURCE_ARG) endifendif # To facilitate bootstrapping, much of langtools can be compiled with (just)# a boot JDK. However, some source files need to be compiled against # new JDK API. In a bootstrap build, an import JDK may not be available,# so build.xml can also build against the source files in a jdk repo,# in which case it will automatically generate stub files for the new JDK API.ifdef JDK_TOPDIR ANT_OPTIONS += -Dimport.jdk=$(JDK_TOPDIR)else ifdef ALT_JDK_TOPDIR ANT_OPTIONS += -Dimport.jdk=$(ALT_JDK_TOPDIR) else ifdef ALT_JDK_IMPORT_PATH ANT_OPTIONS += -Dimport.jdk=$(ALT_JDK_IMPORT_PATH) endif endifendififdef ALT_OUTPUTDIR OUTPUTDIR = $(ALT_OUTPUTDIR) ANT_OPTIONS += -Dbuild.dir=$(ALT_OUTPUTDIR)/build ANT_OPTIONS += -Ddist.dir=$(ALT_OUTPUTDIR)/distelse OUTPUTDIR = ..endif#ABS_OUTPUTDIR = $(abspath $(OUTPUTDIR))ABS_OUTPUTDIR = $(call FullPath,$(OUTPUTDIR))ANT_TMPDIR = $(ABS_OUTPUTDIR)/build/ant-tmpANT_OPTS = ANT_OPTS=-Djava.io.tmpdir='$(ANT_TMPDIR)'ifdef FINDBUGS_HOME ANT_OPTIONS += -Dfindbugs.home=$(FINDBUGS_HOME)endififdef ANT_HOME ANT = $(ANT_HOME)/bin/ant ifneq ($(shell test -x $(ANT) && echo OK), OK) $(error $(ANT) not found -- please update ANT_HOME) endifelse ANT = ant ifneq ($(shell test -x "`which $(ANT)`" && echo OK), OK) $(error 'ant' not found -- please set ANT_HOME or put 'ant' on your PATH) endifendif# Default target and expected 'do everything' targetall: test# Standard make clobber targetclobber: clean# All ant targets of interestANT_TARGETS = clean externals update-externals jar javadoc shelldoc docs test test262 test262parallel octane sunspider perf alltests# Create diagnostics log (careful, ant 1.8.0 -diagnostics always does an exit 1)$(OUTPUTDIR)/build/ant-diagnostics.log: @mkdir -p $(OUTPUTDIR)/build $(ANT_TMPDIR) @$(RM) $@ $(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) -diagnostics > $@ ; \ $(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) -version >> $@# Create a make target for each$(ANT_TARGETS): $(OUTPUTDIR)/build/ant-diagnostics.log @ mkdir -p $(OUTPUTDIR)/build $(ANT_TMPDIR) $(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) $(ANT_OPTIONS) $@#-------------------------------------------------------------------## Targets for Oracle's internal JPRT build systemCD = cdZIP = zipJPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(JPRT_BUILD_FLAVOR)-bundle.zipjprt_build_product jprt_build_debug jprt_build_fastdebug: all ( $(CD) $(OUTPUTDIR) && \ $(ZIP) -q -r $(JPRT_ARCHIVE_BUNDLE) build dist )#-------------------------------------------------------------------# Declare these phony (not filenames).PHONY: $(ANT_TARGETS) all clobber \ jprt_build_product jprt_build_debug jprt_build_fastdebug