aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraph <none@none>2014-09-04 12:43:33 -0400
committeraph <none@none>2014-09-04 12:43:33 -0400
commit32d6fc83d5dbed655e14164a83a3f7338d167099 (patch)
tree05b7f3d4d1146489ca00b2b32ec46a7839c5788d
parent2cb3ac79e63edad2b41621c76621b4fc9e453742 (diff)
parent3ddbedb876a9e5251cb0782d35f5f5d422917bc5 (diff)
-rw-r--r--.hgtags24
-rw-r--r--Makefile6
-rw-r--r--THIRD_PARTY_README18
-rw-r--r--common/autoconf/generated-configure.sh4
-rw-r--r--common/autoconf/jdk-options.m42
-rw-r--r--common/bin/hgforest.sh374
-rw-r--r--get_source.sh75
-rw-r--r--make/Jprt.gmk175
-rw-r--r--make/Main.gmk2
-rw-r--r--make/MakeHelpers.gmk2
-rw-r--r--make/common/NON_CORE_PKGS.gmk3
-rw-r--r--make/jprt.properties516
-rw-r--r--test/Makefile4
13 files changed, 836 insertions, 369 deletions
diff --git a/.hgtags b/.hgtags
index ed9788c..ce83748 100644
--- a/.hgtags
+++ b/.hgtags
@@ -273,6 +273,7 @@ c41935d79b8744af8b7b56cd4d4ab781027fb22e jdk8u5-b01
6f3357d3dbf83c1ef0098bcb853e3aa3b26f4cb8 jdk8u5-b02
794b4365b6884e9a15f0840792539f5821814127 jdk8u5-b03
c200d6cb184056e44afe7102913004b717896aa3 jdk8u5-b04
+eb537d7c31e069ac10de0901727515743f7535d2 jdk8u11-b00
eb537d7c31e069ac10de0901727515743f7535d2 jdk8u5-b05
75cdae18810a479cc3c0fe8eb9055d968ae31c63 jdk8u5-b06
b1585984f29320737ca0da5af029b1225a75c476 jdk8u5-b07
@@ -282,6 +283,20 @@ fae51c73a06d71304c9dbff22984ee501812b972 jdk8u5-b10
dd3bd272ceedbd69fabafc531b6b1e056659f733 jdk8u5-b11
3e05b6ae0a1e2bd7352462e9bf8e7262246fb77f jdk8u5-b12
d81e301cae70f1f95f4bb976ec053c915dee503a jdk8u5-b13
+19dd42ebf97c187fbf53884f45dca84274909c3e jdk8u5-b31
+397902f53444be14aa4e261cd47064fac82919c9 jdk8u11-b01
+6ffd41be920a3e63c5767f36ac725e9e3bf5ec50 jdk8u11-b02
+3078ab9b8d4ad37cf18bf6a1ed49c8015e70ec73 jdk8u11-b03
+7be4371ce4ed33cf779606ef3b6256f316898e08 jdk8u11-b04
+97c6d6a8e5bb3dfc24b9a32711aa0906ea110e23 jdk8u11-b05
+5ea1a19659427ea813ae4a00ae9d54338c7faec6 jdk8u11-b06
+fe460afb120e2312769454f4630cccd406ded3f6 jdk8u11-b07
+81f3392f551c45578cabe29552c670b87170d325 jdk8u11-b08
+390084098df7bffecd0eb2318facc6f0f9a46b70 jdk8u11-b09
+6d324f36e2448f486d0caa67f70e5a6cf5ac6c0d jdk8u11-b10
+f0b9fee1d40a6aae31be4780f70aba02148ec54c jdk8u11-b11
+e85bf9b28eb7f4098eeb25ba0e3afed34058ef09 jdk8u11-b12
+66b17e2403b04cfe98dc1cce270f15ed817d0336 jdk8u11-b31
ae6a3aec6aa29509a0fd5f53709889b99b1e27da jdk8u20-b06
cc868070f1959b849c8c3b867771fbdb07b9ba05 jdk8u20-b02
6a3d3b7feab4d4a8252c63b4ce7d0fab106cf2f7 jdk8u20-b03
@@ -298,3 +313,12 @@ cc4ca2ff0afcfb932da6fa4fffdd01f08e4ff71b jdk8u20-b10
548afd2496385263874c0ce970158764166b1156 jdk8u20-b14
12a1fd80b05aa9c5daab22ca5fab8e2c9c3df61c jdk8u20-b15
4095a7a49a9ea95f4c59f936acf45ca1f87b8fff jdk8u20-b16
+3a49a08a2e3991a10e6bec531e9dbfa7c503fcb4 jdk8u20-b17
+1695032e51faa36ed9c39b2817baa374ca361513 jdk8u20-b18
+2f40422f564b892a26cb04c62885bb5bc85984e3 jdk8u20-b19
+5b76ecd0cdcf899261da2c9965862771f6da4e26 jdk8u20-b20
+0dccc4aca1859b1ff7dca9db214f7f38c4ddbbce jdk8u20-b21
+6c1fb59fa5d7095d93a023553a949f873f324c6b jdk8u20-b22
+b14daf2459c5430dfe5d435483d6f424cff09584 jdk8u20-b23
+0dccc4aca1859b1ff7dca9db214f7f38c4ddbbce jdk8u40-b00
+f8736a40a35df0c8055c8a94b96e5381b381ad33 jdk8u40-b01
diff --git a/Makefile b/Makefile
index cd5f66b..7fe922b 100644
--- a/Makefile
+++ b/Makefile
@@ -66,7 +66,7 @@ else
# First, find out the valid targets
# Run the makefile with an arbitrary SPEC using -p -q (quiet dry-run and dump rules) to find
# available PHONY targets. Use this list as valid targets to pass on to the repeated calls.
- all_phony_targets=$(filter-out $(global_targets) bundles bundles-only final-images-only, $(strip $(shell \
+ all_phony_targets=$(filter-out $(global_targets), $(strip $(shell \
cd $(root_dir) && $(MAKE) -p -q FRC SPEC=$(firstword $(SPEC)) | \
grep ^.PHONY: | head -n 1 | cut -d " " -f 2-)))
@@ -79,10 +79,6 @@ else
endif
endif
-# Include this after a potential spec file has been included so that the bundles target
-# has access to the spec variables.
-include $(root_dir)/make/Jprt.gmk
-
# Here are "global" targets, i.e. targets that can be executed without specifying a single configuration.
# If you addd more global targets, please update the variable global_targets in MakeHelpers.
diff --git a/THIRD_PARTY_README b/THIRD_PARTY_README
index ce01810..6d1c60f 100644
--- a/THIRD_PARTY_README
+++ b/THIRD_PARTY_README
@@ -2,7 +2,7 @@ DO NOT TRANSLATE OR LOCALIZE.
-----------------------------
%% This notice is provided with respect to ASM Bytecode Manipulation
-Framework v5.0, which may be included with JRE 8, and JDK 8, and
+Framework v5.0.3, which may be included with JRE 8, and JDK 8, and
OpenJDK 8.
--- begin of LICENSE ---
@@ -1471,7 +1471,7 @@ source code repository. It is licensed under Mozilla Public License (MPL),
version 2.0.
The NSS libraries are supplied in executable form, built from unmodified
-NSS source code labeled with the "NSS_3.13.1_RTM" release tag.
+NSS source code labeled with the "NSS_3_16_RTM" HG tag.
The NSS source code is available in the OpenJDK source code repository at:
jdk/test/sun/security/pkcs11/nss/src
@@ -3349,14 +3349,14 @@ info@urwpp.de or design@bigelowandholmes.com
-------------------------------------------------------------------------------
-%% This notice is provided with respect to zlib v1.2.5, which may be included
+%% This notice is provided with respect to zlib v1.2.8, which may be included
with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
- version 1.2.5, July 18th, 2005
+ version 1.2.8, April 28th, 2013
- Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
+ Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
@@ -3382,11 +3382,11 @@ with JRE 8, JDK 8, and OpenJDK 8.
-------------------------------------------------------------------------------
%% This notice is provided with respect to the following which may be
-included with JRE 8, JDK 8, and OpenJDK 8, except where noted:
+included with JRE 8, JDK 8, and OpenJDK 8.
- Apache Commons Math 2.2
- Apache Derby 10.10.1.2 [included with JDK 8]
- Apache Jakarta BCEL 5.2
+ Apache Commons Math 3.2
+ Apache Derby 10.10.1.3
+ Apache Jakarta BCEL 5.1
Apache Jakarta Regexp 1.4
Apache Santuario XML Security for Java 1.5.4
Apache Xalan-Java 2.7.1
diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh
index 7492bef..2d39b7f 100644
--- a/common/autoconf/generated-configure.sh
+++ b/common/autoconf/generated-configure.sh
@@ -3858,7 +3858,7 @@ fi
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1397150809
+DATE_WHEN_GENERATED=1405022087
###############################################################################
#
@@ -7924,7 +7924,7 @@ $as_echo "$with_jvm_variants" >&6; }
fi
# Replace the commas with AND for use in the build directory name.
- ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/'`
+ ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/g'`
COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/minimal1,/1/' -e 's/kernel,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/' -e 's/core,/1/'`
if test "x$COUNT_VARIANTS" != "x,1"; then
BUILDING_MULTIPLE_JVM_VARIANTS=yes
diff --git a/common/autoconf/jdk-options.m4 b/common/autoconf/jdk-options.m4
index b350dc4..6be11d4 100644
--- a/common/autoconf/jdk-options.m4
+++ b/common/autoconf/jdk-options.m4
@@ -129,7 +129,7 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_VARIANTS],
fi
# Replace the commas with AND for use in the build directory name.
- ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/'`
+ ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/g'`
COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/minimal1,/1/' -e 's/kernel,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/' -e 's/core,/1/'`
if test "x$COUNT_VARIANTS" != "x,1"; then
BUILDING_MULTIPLE_JVM_VARIANTS=yes
diff --git a/common/bin/hgforest.sh b/common/bin/hgforest.sh
index cd60af4..13e9142 100644
--- a/common/bin/hgforest.sh
+++ b/common/bin/hgforest.sh
@@ -1,7 +1,6 @@
#!/bin/sh
-
#
-# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2014, 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
@@ -23,166 +22,375 @@
# questions.
#
-# Shell script for a fast parallel forest command
-command="$1"
-pull_extra_base="$2"
+# Shell script for a fast parallel forest/trees command
+
+usage() {
+ echo "usage: $0 [-h|--help] [-q|--quiet] [-v|--verbose] [-s|--sequential] [--] <command> [commands...]" > ${status_output}
+ echo "Environment variables which modify behaviour:"
+ echo " HGFOREST_QUIET : (boolean) If 'true' then standard output is redirected to /dev/null"
+ echo " HGFOREST_VERBOSE : (boolean) If 'true' then Mercurial asked to produce verbose output"
+ echo " HGFOREST_SEQUENTIAL : (boolean) If 'true' then repos are processed sequentially. Disables concurrency"
+ echo " HGFOREST_GLOBALOPTS : (string, must begin with space) Additional Mercurial global options"
+ echo " HGFOREST_REDIRECT : (file path) Redirect standard output to specified file"
+ echo " HGFOREST_FIFOS : (boolean) Default behaviour for FIFO detection. Does not override FIFOs disabled"
+ echo " HGFOREST_CONCURRENCY: (positive integer) Number of repos to process concurrently"
+ echo " HGFOREST_DEBUG : (boolean) If 'true' then temp files are retained"
+ exit 1
+}
+
+global_opts="${HGFOREST_GLOBALOPTS:-}"
+status_output="${HGFOREST_REDIRECT:-/dev/stdout}"
+qflag="${HGFOREST_QUIET:-false}"
+vflag="${HGFOREST_VERBOSE:-false}"
+sflag="${HGFOREST_SEQUENTIAL:-false}"
+while [ $# -gt 0 ]
+do
+ case $1 in
+ -h | --help )
+ usage
+ ;;
+
+ -q | --quiet )
+ qflag="true"
+ ;;
-if [ "" = "$command" ] ; then
- echo No command to hg supplied!
- exit 1
+ -v | --verbose )
+ vflag="true"
+ ;;
+
+ -s | --sequential )
+ sflag="true"
+ ;;
+
+ '--' ) # no more options
+ shift; break
+ ;;
+
+ -*) # bad option
+ usage
+ ;;
+
+ * ) # non option
+ break
+ ;;
+ esac
+ shift
+done
+
+# silence standard output?
+if [ ${qflag} = "true" ] ; then
+ global_opts="${global_opts} -q"
+ status_output="/dev/null"
+fi
+
+# verbose output?
+if [ ${vflag} = "true" ] ; then
+ global_opts="${global_opts} -v"
+fi
+
+# Make sure we have a command.
+if [ $# -lt 1 -o -z "${1:-}" ] ; then
+ echo "ERROR: No command to hg supplied!"
+ usage
fi
+command="$1"; shift
+command_args="${@:-}"
+
# Clean out the temporary directory that stores the pid files.
tmp=/tmp/forest.$$
rm -f -r ${tmp}
mkdir -p ${tmp}
+
+if [ "${HGFOREST_DEBUG:-false}" = "true" ] ; then
+ echo "DEBUG: temp files are in: ${tmp}"
+fi
+
+# Check if we can use fifos for monitoring sub-process completion.
+echo "1" > ${tmp}/read
+while_subshell=1
+while read line; do
+ while_subshell=0
+ break;
+done < ${tmp}/read
+rm ${tmp}/read
+
+on_windows=`uname -s | egrep -ic -e 'cygwin|msys'`
+
+if [ ${while_subshell} = "1" -o ${on_windows} = "1" ]; then
+ # cygwin has (2014-04-18) broken (single writer only) FIFOs
+ # msys has (2014-04-18) no FIFOs.
+ # older shells create a sub-shell for redirect to while
+ have_fifos="false"
+else
+ have_fifos="${HGFOREST_FIFOS:-true}"
+fi
+
safe_interrupt () {
if [ -d ${tmp} ]; then
if [ "`ls ${tmp}/*.pid`" != "" ]; then
- echo "Waiting for processes ( `cat ${tmp}/*.pid | tr '\n' ' '`) to terminate nicely!"
+ echo "Waiting for processes ( `cat ${tmp}/.*.pid ${tmp}/*.pid 2> /dev/null | tr '\n' ' '`) to terminate nicely!" > ${status_output}
sleep 1
# Pipe stderr to dev/null to silence kill, that complains when trying to kill
# a subprocess that has already exited.
kill -TERM `cat ${tmp}/*.pid | tr '\n' ' '` 2> /dev/null
wait
- echo Interrupt complete!
+ echo "Interrupt complete!" > ${status_output}
fi
+ rm -f -r ${tmp}
fi
- rm -f -r ${tmp}
- exit 1
+ exit 130
}
nice_exit () {
if [ -d ${tmp} ]; then
- if [ "`ls ${tmp}`" != "" ]; then
+ if [ "`ls -A ${tmp} 2> /dev/null`" != "" ]; then
wait
fi
+ if [ "${HGFOREST_DEBUG:-false}" != "true" ] ; then
+ rm -f -r ${tmp}
+ fi
fi
- rm -f -r ${tmp}
}
trap 'safe_interrupt' INT QUIT
trap 'nice_exit' EXIT
+subrepos="corba jaxp jaxws langtools jdk hotspot nashorn"
+subrepos_extra="jdk/src/closed jdk/make/closed jdk/test/closed hotspot/make/closed hotspot/src/closed hotspot/test/closed deploy install sponsors pubs"
+
# Only look in specific locations for possible forests (avoids long searches)
pull_default=""
repos=""
repos_extra=""
-if [ "${command}" = "clone" -o "${command}" = "fclone" ] ; then
- subrepos="corba jaxp jaxws langtools jdk hotspot nashorn"
- if [ -f .hg/hgrc ] ; then
- pull_default=`hg paths default`
- if [ "${pull_default}" = "" ] ; then
- echo "ERROR: Need initial clone with 'hg paths default' defined"
- exit 1
- fi
+if [ "${command}" = "clone" -o "${command}" = "fclone" -o "${command}" = "tclone" ] ; then
+ # we must be a clone
+ if [ ! -f .hg/hgrc ] ; then
+ echo "ERROR: Need initial repository to use this script" > ${status_output}
+ exit 1
fi
+
+ # the clone must know where it came from (have a default pull path).
+ pull_default=`hg paths default`
if [ "${pull_default}" = "" ] ; then
- echo "ERROR: Need initial repository to use this script"
+ echo "ERROR: Need initial clone with 'hg paths default' defined" > ${status_output}
exit 1
fi
+
+ # determine which sub repos need to be cloned.
for i in ${subrepos} ; do
if [ ! -f ${i}/.hg/hgrc ] ; then
repos="${repos} ${i}"
fi
done
- if [ "${pull_extra_base}" != "" ] ; then
- subrepos_extra="jdk/src/closed jdk/make/closed jdk/test/closed hotspot/make/closed hotspot/src/closed hotspot/test/closed deploy install sponsors pubs"
- pull_default_tail=`echo ${pull_default} | sed -e 's@^.*://[^/]*/\(.*\)@\1@'`
- pull_extra="${pull_extra_base}/${pull_default_tail}"
+
+ pull_default_tail=`echo ${pull_default} | sed -e 's@^.*://[^/]*/\(.*\)@\1@'`
+
+ if [ -n "${command_args}" ] ; then
+ # if there is an "extra sources" path then reparent "extra" repos to that path
+ if [ "x${pull_default}" = "x${pull_default_tail}" ] ; then
+ echo "ERROR: Need initial clone from non-local source" > ${status_output}
+ exit 1
+ fi
+ pull_extra="${command_args}/${pull_default_tail}"
+
+ # determine which extra subrepos need to be cloned.
for i in ${subrepos_extra} ; do
if [ ! -f ${i}/.hg/hgrc ] ; then
repos_extra="${repos_extra} ${i}"
fi
done
+ else
+ if [ "x${pull_default}" = "x${pull_default_tail}" ] ; then
+ # local source repo. Clone the "extra" subrepos that exist there.
+ for i in ${subrepos_extra} ; do
+ if [ -f ${pull_default}/${i}/.hg/hgrc -a ! -f ${i}/.hg/hgrc ] ; then
+ # sub-repo there in source but not here
+ repos_extra="${repos_extra} ${i}"
+ fi
+ done
+ fi
fi
- at_a_time=2
+
# Any repos to deal with?
if [ "${repos}" = "" -a "${repos_extra}" = "" ] ; then
+ echo "No repositories to process." > ${status_output}
exit
fi
+
+ # Repos to process concurrently. Clone does better with low concurrency.
+ at_a_time="${HGFOREST_CONCURRENCY:-2}"
else
- hgdirs=`ls -d ./.hg ./*/.hg ./*/*/.hg ./*/*/*/.hg ./*/*/*/*/.hg 2>/dev/null`
- # Derive repository names from the .hg directory locations
- for i in ${hgdirs} ; do
- repos="${repos} `echo ${i} | sed -e 's@/.hg$@@'`"
- done
- for i in ${repos} ; do
- if [ -h ${i}/.hg/store/lock -o -f ${i}/.hg/store/lock ] ; then
- locked="${i} ${locked}"
+ # Process command for all of the present repos
+ for i in . ${subrepos} ${subrepos_extra} ; do
+ if [ -d ${i}/.hg ] ; then
+ repos="${repos} ${i}"
fi
done
- at_a_time=8
+
# Any repos to deal with?
if [ "${repos}" = "" ] ; then
- echo "No repositories to process."
+ echo "No repositories to process." > ${status_output}
exit
fi
+
+ # any of the repos locked?
+ locked=""
+ for i in ${repos} ; do
+ if [ -h ${i}/.hg/store/lock -o -f ${i}/.hg/store/lock ] ; then
+ locked="${i} ${locked}"
+ fi
+ done
if [ "${locked}" != "" ] ; then
- echo "These repositories are locked: ${locked}"
- exit
+ echo "ERROR: These repositories are locked: ${locked}" > ${status_output}
+ exit 1
fi
+
+ # Repos to process concurrently.
+ at_a_time="${HGFOREST_CONCURRENCY:-8}"
fi
# Echo out what repositories we do a command on.
-echo "# Repositories: ${repos} ${repos_extra}"
-echo
-
-# Run the supplied command on all repos in parallel.
-n=0
-for i in ${repos} ${repos_extra} ; do
- n=`expr ${n} '+' 1`
- repopidfile=`echo ${i} | sed -e 's@./@@' -e 's@/@_@g'`
- reponame=`echo ${i} | sed -e :a -e 's/^.\{1,20\}$/ &/;ta'`
- pull_base="${pull_default}"
- for j in $repos_extra ; do
- if [ "$i" = "$j" ] ; then
- pull_base="${pull_extra}"
- fi
- done
+echo "# Repositories: ${repos} ${repos_extra}" > ${status_output}
+
+if [ "${command}" = "serve" ] ; then
+ # "serve" is run for all the repos as one command.
(
(
- if [ "${command}" = "clone" -o "${command}" = "fclone" ] ; then
- pull_newrepo="${pull_base}/${i}"
- # pull_newrepo="`echo ${pull_base}/${i} | sed -e 's@\([^:]/\)//*@\1@g'`"
- echo hg clone ${pull_newrepo} ${i}
- path="`dirname ${i}`"
- if [ "${path}" != "." ] ; then
- times=0
- while [ ! -d "${path}" ] ## nested repo, ensure containing dir exists
- do
- times=`expr ${times} '+' 1`
- if [ `expr ${times} '%' 10` -eq 0 ] ; then
- echo ${path} still not created, waiting...
+ cwd=`pwd`
+ serving=`basename ${cwd}`
+ (
+ echo "[web]"
+ echo "description = ${serving}"
+ echo "allow_push = *"
+ echo "push_ssl = False"
+
+ echo "[paths]"
+ for i in ${repos} ; do
+ if [ "${i}" != "." ] ; then
+ echo "/${serving}/${i} = ${i}"
+ else
+ echo "/${serving} = ${cwd}"
+ fi
+ done
+ ) > ${tmp}/serve.web-conf
+
+ echo "serving root repo ${serving}" > ${status_output}
+
+ echo "hg${global_opts} serve" > ${status_output}
+ (PYTHONUNBUFFERED=true hg${global_opts} serve -A ${status_output} -E ${status_output} --pid-file ${tmp}/serve.pid --web-conf ${tmp}/serve.web-conf; echo "$?" > ${tmp}/serve.pid.rc ) 2>&1 &
+ ) 2>&1 | sed -e "s@^@serve: @" > ${status_output}
+ ) &
+else
+ # Run the supplied command on all repos in parallel.
+
+ # n is the number of subprocess started or which might still be running.
+ n=0
+ if [ ${have_fifos} = "true" ]; then
+ # if we have fifos use them to detect command completion.
+ mkfifo ${tmp}/fifo
+ exec 3<>${tmp}/fifo
+ fi
+
+ # iterate over all of the subrepos.
+ for i in ${repos} ${repos_extra} ; do
+ n=`expr ${n} '+' 1`
+ repopidfile=`echo ${i} | sed -e 's@./@@' -e 's@/@_@g'`
+ reponame=`echo ${i} | sed -e :a -e 's/^.\{1,20\}$/ &/;ta'`
+ pull_base="${pull_default}"
+
+ # regular repo or "extra" repo?
+ for j in ${repos_extra} ; do
+ if [ "${i}" = "${j}" ] ; then
+ # it's an "extra"
+ pull_base="${pull_extra}"
+ fi
+ done
+
+ # remove trailing slash
+ pull_base="`echo ${pull_base} | sed -e 's@[/]*$@@'`"
+
+ # execute the command on the subrepo
+ (
+ (
+ if [ "${command}" = "clone" -o "${command}" = "fclone" -o "${command}" = "tclone" ] ; then
+ # some form of clone
+ clone_newrepo="${pull_base}/${i}"
+ parent_path="`dirname ${i}`"
+ if [ "${parent_path}" != "." ] ; then
+ times=0
+ while [ ! -d "${parent_path}" ] ; do ## nested repo, ensure containing dir exists
+ if [ "${sflag}" = "true" ] ; then
+ # Missing parent is fatal during sequential operation.
+ echo "ERROR: Missing parent path: ${parent_path}" > ${status_output}
+ exit 1
+ fi
+ times=`expr ${times} '+' 1`
+ if [ `expr ${times} '%' 10` -eq 0 ] ; then
+ echo "${parent_path} still not created, waiting..." > ${status_output}
+ fi
+ sleep 5
+ done
+ fi
+ # run the clone command.
+ echo "hg${global_opts} clone ${clone_newrepo} ${i}" > ${status_output}
+ (PYTHONUNBUFFERED=true hg${global_opts} clone ${clone_newrepo} ${i}; echo "$?" > ${tmp}/${repopidfile}.pid.rc ) 2>&1 &
+ else
+ # run the command.
+ echo "cd ${i} && hg${global_opts} ${command} ${command_args}" > ${status_output}
+ cd ${i} && (PYTHONUNBUFFERED=true hg${global_opts} ${command} ${command_args}; echo "$?" > ${tmp}/${repopidfile}.pid.rc ) 2>&1 &
+ fi
+
+ echo $! > ${tmp}/${repopidfile}.pid
+ ) 2>&1 | sed -e "s@^@${reponame}: @" > ${status_output}
+ # tell the fifo waiter that this subprocess is done.
+ if [ ${have_fifos} = "true" ]; then
+ echo "${i}" >&3
+ fi
+ ) &
+
+ if [ "${sflag}" = "true" ] ; then
+ # complete this task before starting another.
+ wait
+ else
+ if [ "${have_fifos}" = "true" ]; then
+ # check on count of running subprocesses and possibly wait for completion
+ if [ ${n} -ge ${at_a_time} ] ; then
+ # read will block until there are completed subprocesses
+ while read repo_done; do
+ n=`expr ${n} '-' 1`
+ if [ ${n} -lt ${at_a_time} ] ; then
+ # we should start more subprocesses
+ break;
fi
- sleep 5
- done
+ done <&3
fi
- (PYTHONUNBUFFERED=true hg clone ${pull_newrepo} ${i}; echo "$?" > ${tmp}/${repopidfile}.pid.rc )&
else
- echo "cd ${i} && hg $*"
- cd ${i} && (PYTHONUNBUFFERED=true hg "$@"; echo "$?" > ${tmp}/${repopidfile}.pid.rc )&
+ # Compare completions to starts
+ completed="`(ls -a1 ${tmp}/*.pid.rc 2> /dev/null | wc -l) || echo 0`"
+ while [ `expr ${n} '-' ${completed}` -ge ${at_a_time} ] ; do
+ # sleep a short time to give time for something to complete
+ sleep 1
+ completed="`(ls -a1 ${tmp}/*.pid.rc 2> /dev/null | wc -l) || echo 0`"
+ done
fi
- echo $! > ${tmp}/${repopidfile}.pid
- ) 2>&1 | sed -e "s@^@${reponame}: @") &
+ fi
+ done
+fi
- if [ `expr ${n} '%' ${at_a_time}` -eq 0 ] ; then
- sleep 2
- echo Waiting 5 secs before spawning next background command.
- sleep 3
- fi
-done
-# Wait for all hg commands to complete
+# Wait for all subprocesses to complete
wait
# Terminate with exit 0 only if all subprocesses were successful
ec=0
if [ -d ${tmp} ]; then
- for rc in ${tmp}/*.pid.rc ; do
+ rcfiles="`(ls -a ${tmp}/*.pid.rc 2> /dev/null) || echo ''`"
+ for rc in ${rcfiles} ; do
exit_code=`cat ${rc} | tr -d ' \n\r'`
if [ "${exit_code}" != "0" ] ; then
- echo "WARNING: ${rc} exited abnormally."
+ repo="`echo ${rc} | sed -e 's@^'${tmp}'@@' -e 's@/*\([^/]*\)\.pid\.rc$@\1@' -e 's@_@/@g'`"
+ echo "WARNING: ${repo} exited abnormally (${exit_code})" > ${status_output}
ec=1
fi
done
diff --git a/get_source.sh b/get_source.sh
index f83a376..5e874d1 100644
--- a/get_source.sh
+++ b/get_source.sh
@@ -1,7 +1,7 @@
#!/bin/sh
#
-# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2014, 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
@@ -25,9 +25,76 @@
# questions.
#
-# Get clones of all nested repositories
-sh ./common/bin/hgforest.sh clone "$@" || exit 1
+to_stderr() {
+ echo "$@" >&2
+}
+
+error() {
+ to_stderr "ERROR: $1"
+ exit ${2:-126}
+}
+
+warning() {
+ to_stderr "WARNING: $1"
+}
+
+version_field() {
+ # rev is typically omitted for minor and major releases
+ field=`echo ${1}.0 | cut -f ${2} -d .`
+ if expr 1 + $field >/dev/null 2> /dev/null; then
+ echo $field
+ else
+ echo -1
+ fi
+}
+
+# Version check
+
+# required
+reqdmajor=1
+reqdminor=4
+reqdrev=0
+
+# requested
+rqstmajor=2
+rqstminor=6
+rqstrev=3
+
+
+# installed
+hgwhere="`command -v hg`"
+if [ "x$hgwhere" = "x" ]; then
+ error "Could not locate Mercurial command"
+fi
+
+hgversion="`hg --version 2> /dev/null | sed -n -e 's@^Mercurial Distributed SCM (version \([^+]*\).*)\$@\1@p'`"
+if [ "x${hgversion}" = "x" ] ; then
+ error "Could not determine Mercurial version of $hgwhere"
+fi
+
+hgmajor="`version_field $hgversion 1`"
+hgminor="`version_field $hgversion 2`"
+hgrev="`version_field $hgversion 3`"
+
+if [ $hgmajor -eq -1 -o $hgminor -eq -1 -o $hgrev -eq -1 ] ; then
+ error "Could not determine Mercurial version of $hgwhere from \"$hgversion\""
+fi
+
+
+# Require
+if [ $hgmajor -lt $reqdmajor -o \( $hgmajor -eq $reqdmajor -a $hgminor -lt $reqdminor \) -o \( $hgmajor -eq $reqdmajor -a $hgminor -eq $reqdminor -a $hgrev -lt $reqdrev \) ] ; then
+ error "Mercurial version $reqdmajor.$reqdminor.$reqdrev or later is required. $hgwhere is version $hgversion"
+fi
+
+
+# Request
+if [ $hgmajor -lt $rqstmajor -o \( $hgmajor -eq $rqstmajor -a $hgminor -lt $rqstminor \) -o \( $hgmajor -eq $rqstmajor -a $hgminor -eq $rqstminor -a $hgrev -lt $rqstrev \) ] ; then
+ warning "Mercurial version $rqstmajor.$rqstminor.$rqstrev or later is recommended. $hgwhere is version $hgversion"
+fi
+
+
+# Get clones of all absent nested repositories (harmless if already exist)
+sh ./common/bin/hgforest.sh clone "$@" || exit $?
# Update all existing repositories to the latest sources
sh ./common/bin/hgforest.sh pull -u
-
diff --git a/make/Jprt.gmk b/make/Jprt.gmk
index c40e852..c1ebee5 100644
--- a/make/Jprt.gmk
+++ b/make/Jprt.gmk
@@ -23,151 +23,7 @@
# questions.
#
-# This file is included by the root NewerMakefile and contains targets
-# and utilities needed by JPRT.
-
-# Utilities used in this Makefile. Most of this makefile executes without
-# the context of a spec file from configure.
-CAT=cat
-CMP=cmp
-CP=cp
-ECHO=echo
-MKDIR=mkdir
-PRINTF=printf
-PWD=pwd
-# Insure we have a path that looks like it came from pwd
-# (This is mostly for Windows sake and drive letters)
-define UnixPath # path
-$(shell (cd "$1" && $(PWD)))
-endef
-
-BUILD_DIR_ROOT:=$(root_dir)/build
-
-ifdef OPENJDK
- OPEN_BUILD=true
-else
- OPEN_BUILD := $(if $(or $(wildcard $(root_dir)/jdk/src/closed), \
- $(wildcard $(root_dir)/jdk/make/closed), \
- $(wildcard $(root_dir)/jdk/test/closed), \
- $(wildcard $(root_dir)/hotspot/src/closed), \
- $(wildcard $(root_dir)/hotspot/make/closed), \
- $(wildcard $(root_dir)/hotspot/test/closed)), \
- false,true)
-endif
-
-HOTSPOT_AVAILABLE := $(if $(wildcard $(root_dir)/hotspot),true,false)
-
-###########################################################################
-# To help in adoption of the new configure&&make build process, a bridge
-# build will use the old settings to run configure and do the build.
-
-# Build with the configure bridge. After running configure, restart make
-# to parse the new spec file.
-BRIDGE_TARGETS := all
-# Add bootcycle-images target if legacy variable is set.
-ifeq ($(SKIP_BOOT_CYCLE),false)
- BRIDGE_TARGETS += bootcycle-images
-endif
-bridgeBuild: bridge2configure
- @cd $(root_dir) && $(MAKE) -f Makefile $(BRIDGE_TARGETS)
-
-# Bridge from old Makefile ALT settings to configure options
-bridge2configure: $(BUILD_DIR_ROOT)/.bridge2configureOpts
- bash ./configure $(strip $(shell $(CAT) $<))
-
-# Create a file with configure options created from old Makefile mechanisms.
-$(BUILD_DIR_ROOT)/.bridge2configureOpts: $(BUILD_DIR_ROOT)/.bridge2configureOptsLatest
- $(RM) $@
- $(CP) $< $@
-
-# Use this file to only change when obvious things have changed
-$(BUILD_DIR_ROOT)/.bridge2configureOptsLatest: FRC
- $(RM) $@.tmp
- $(MKDIR) -p $(BUILD_DIR_ROOT)
- @$(ECHO) " --with-debug-level=$(if $(DEBUG_LEVEL),$(DEBUG_LEVEL),release) " >> $@.tmp
- ifdef ARCH_DATA_MODEL
- @$(ECHO) " --with-target-bits=$(ARCH_DATA_MODEL) " >> $@.tmp
- endif
- ifeq ($(ARCH_DATA_MODEL),32)
- @$(ECHO) " --with-jvm-variants=client,server " >> $@.tmp
- endif
- ifdef ALT_PARALLEL_COMPILE_JOBS
- @$(ECHO) " --with-num-cores=$(ALT_PARALLEL_COMPILE_JOBS) " >> $@.tmp
- endif
- ifdef ALT_BOOTDIR
- @$(ECHO) " --with-boot-jdk=$(call UnixPath,$(ALT_BOOTDIR)) " >> $@.tmp
- endif
- ifdef ALT_CUPS_HEADERS_PATH
- @$(ECHO) " --with-cups-include=$(call UnixPath,$(ALT_CUPS_HEADERS_PATH)) " >> $@.tmp
- endif
- ifdef ALT_FREETYPE_HEADERS_PATH
- @$(ECHO) " --with-freetype=$(call UnixPath,$(ALT_FREETYPE_HEADERS_PATH)/..) " >> $@.tmp
- endif
- ifdef ENABLE_SJAVAC
- @$(ECHO) " --enable-sjavac" >> $@.tmp
- endif
- ifdef JDK_UPDATE_VERSION
- @$(ECHO) " --with-update-version=$(JDK_UPDATE_VERSION)" >> $@.tmp
- endif
- ifeq ($(HOTSPOT_AVAILABLE),false)
- ifdef ALT_JDK_IMPORT_PATH
- @$(ECHO) " --with-import-hotspot=$(call UnixPath,$(ALT_JDK_IMPORT_PATH)) " >> $@.tmp
- endif
- endif
- ifeq ($(OPEN_BUILD),true)
- @$(ECHO) " --enable-openjdk-only " >> $@.tmp
- else
-# Todo: move to closed?
- ifdef ALT_MOZILLA_HEADERS_PATH
- @$(ECHO) " --with-mozilla-headers=$(call UnixPath,$(ALT_MOZILLA_HEADERS_PATH)) " >> $@.tmp
- endif
- ifdef ALT_JUNIT_DIR
- @$(ECHO) " --with-junit-dir=$(call UnixPath,$(ALT_JUNIT_DIR)) " >> $@.tmp
- endif
- ifdef ANT_HOME
- @$(ECHO) " --with-ant-home=$(call UnixPath,$(ANT_HOME)) " >> $@.tmp
- endif
- ifdef ALT_JAVAFX_ZIP_DIR
- @$(ECHO) " --with-javafx-zip-dir=$(call UnixPath,$(ALT_JAVAFX_ZIP_DIR)) " >> $@.tmp
- endif
- ifdef ALT_JMC_ZIP_DIR
- @$(ECHO) " --with-jmc-zip-dir=$(call UnixPath,$(ALT_JMC_ZIP_DIR)) " >> $@.tmp
- endif
- ifdef ALT_WIXDIR
- @$(ECHO) " --with-wix=$(call UnixPath,$(ALT_WIXDIR)) " >> $@.tmp
- endif
- ifdef ALT_INSTALL_LZMA_PATH
- @$(ECHO) " --with-lzma-path=$(call UnixPath,$(ALT_INSTALL_LZMA_PATH)) " >> $@.tmp
- endif
- ifdef ALT_INSTALL_UPX_PATH
- @$(ECHO) " --with-upx-path=$(call UnixPath,$(ALT_INSTALL_UPX_PATH)) " >> $@.tmp
- endif
- ifdef ALT_INSTALL_UPX_FILENAME
- @$(ECHO) " --with-upx-filename=$(call UnixPath,$(ALT_INSTALL_UPX_FILENAME)) " >> $@.tmp
- endif
- ifdef ALT_CCSS_SIGNING_DIR
- @$(ECHO) " --with-ccss-signing=$(call UnixPath,$(ALT_CCSS_SIGNING_DIR)) " >> $@.tmp
- endif
- ifdef ALT_SLASH_JAVA
- @$(ECHO) " --with-java-devtools=$(call UnixPath,$(ALT_SLASH_JAVA)/devtools) " >> $@.tmp
- endif
- ifdef ALT_SPARKLE_FRAMEWORK_DIR
- @$(ECHO) " --with-sparkle-framework=$(call UnixPath,$(ALT_SPARKLE_FRAMEWORK_DIR)) " >> $@.tmp
- endif
- endif
- @if [ -f $@ ] ; then \
- if ! $(CMP) $@ $@.tmp > /dev/null ; then \
- $(CP) $@.tmp $@ ; \
- fi ; \
- else \
- $(CP) $@.tmp $@ ; \
- fi
- $(RM) $@.tmp
-
-PHONY_LIST += bridge2configure bridgeBuild
-
-###########################################################################
-# JPRT targets
+# This file is contains targets utilities needed by JPRT.
ifndef JPRT_ARCHIVE_BUNDLE
JPRT_ARCHIVE_BUNDLE=/tmp/jprt_bundles/j2sdk-image.zip
@@ -176,22 +32,9 @@ ifndef JPRT_ARCHIVE_INSTALL_BUNDLE
JPRT_ARCHIVE_INSTALL_BUNDLE=/tmp/jprt_bundles/product-install.zip
endif
-# These targets execute in a SPEC free context, before calling bridgeBuild
-# to generate the SPEC.
-jprt_build_product: DEBUG_LEVEL=release
-jprt_build_product: BUILD_DIRNAME=*-release
-jprt_build_product: jprt_build_generic
-
-jprt_build_fastdebug: DEBUG_LEVEL=fastdebug
-jprt_build_fastdebug: BUILD_DIRNAME=*-fastdebug
-jprt_build_fastdebug: jprt_build_generic
-
-jprt_build_debug: DEBUG_LEVEL=slowdebug
-jprt_build_debug: BUILD_DIRNAME=*-debug
-jprt_build_debug: jprt_build_generic
-
-jprt_build_generic: BRIDGE_TARGETS+=jprt_bundle
-jprt_build_generic: bridgeBuild
+ifeq ($(SKIP_BOOT_CYCLE), false)
+ jprt_bundle: bootcycle-images
+endif
# This target must be called in the context of a SPEC file
jprt_bundle: $(JPRT_ARCHIVE_BUNDLE)
@@ -238,14 +81,6 @@ final-images-only: start-make
@$(call TargetExit)
-# Keep track of phony targets
-PHONY_LIST += jprt_build_product jprt_build_fastdebug jprt_build_debug \
- jprt_build_generic bundles jprt_bundle \
- final-images final-images-only
-
###########################################################################
# Phony targets
-.PHONY: $(PHONY_LIST)
-
-# Force target
-FRC:
+.PHONY: jprt_bundle bundles bundles-only final-images final-images-only
diff --git a/make/Main.gmk b/make/Main.gmk
index 2988f78..acb4faa 100644
--- a/make/Main.gmk
+++ b/make/Main.gmk
@@ -242,4 +242,6 @@ clean-test:
.PHONY: clean-langtools clean-corba clean-jaxp clean-jaxws clean-hotspot clean-jdk clean-nashorn clean-images clean-docs clean-test clean-overlay-images clean-bootcycle-build
.PHONY: profiles profiles-only profiles-oscheck
+include $(root_dir)/make/Jprt.gmk
+
FRC: # Force target
diff --git a/make/MakeHelpers.gmk b/make/MakeHelpers.gmk
index 66f4ca4..c999535 100644
--- a/make/MakeHelpers.gmk
+++ b/make/MakeHelpers.gmk
@@ -50,7 +50,7 @@ BUILDTIMESDIR=$(OUTPUT_ROOT)/tmp/buildtimes
# Global targets are possible to run either with or without a SPEC. The prototypical
# global target is "help".
-global_targets=help jprt% bridgeBuild bridge2configure
+global_targets=help
##############################
# Functions
diff --git a/make/common/NON_CORE_PKGS.gmk b/make/common/NON_CORE_PKGS.gmk
index 7cd7d50..f171e7c 100644
--- a/make/common/NON_CORE_PKGS.gmk
+++ b/make/common/NON_CORE_PKGS.gmk
@@ -95,7 +95,8 @@ ifeq ($(PLATFORM), macosx)
endif
JDK_PKGS = jdk \
- jdk.net
+ jdk.net \
+ jdk.management.cmm
# non-core packages in rt.jar
NON_CORE_PKGS = $(DOMAPI_PKGS) \
diff --git a/make/jprt.properties b/make/jprt.properties
index ae20e82..f6f8e41 100644
--- a/make/jprt.properties
+++ b/make/jprt.properties
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2014, 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
@@ -23,131 +23,461 @@
# questions.
#
-# Properties for jprt
+##############
+#
+# Global settings
+#
+
+# The current release name
+my.jdk.update.version=20
+jprt.tools.default.release=jdk8u${my.jdk.update.version}
+
+# Check if this is the equivalent of a hotspot push job
+# Interpret -testset hotspot to mean exactly that
+my.is.hotspot.job.hotspot=true
+my.is.hotspot.job=${my.is.hotspot.job.${jprt.test.set}}
+
+# Disable syncing the source after builds and tests are done
+jprt.sync.push=${my.is.hotspot.job ? false : true}
+
+# Directories to be excluded from the source bundles
+jprt.bundle.exclude.src.dirs=build dist webrev
+
+# Use configure when building
+jprt.build.use.configure=true
+
+# Set make target to use for different build flavors
+jprt.build.flavor.debugOpen.target=jprt_bundle
+jprt.build.flavor.fastdebug.target=jprt_bundle
+jprt.build.flavor.product.target=jprt_bundle
+jprt.build.flavor.productOpen.target=jprt_bundle
+
+# Use these configure args to define debug level
+jprt.debug.build.configure.args=--with-debug-level=slowdebug
+jprt.fastdebug.build.configure.args=--with-debug-level=fastdebug
+jprt.product.build.configure.args=--with-debug-level=release
+jprt.debugOpen.build.configure.args=${jprt.debug.build.configure.args} --enable-openjdk-only
+jprt.fastdebugOpen.build.configure.args=${jprt.fastdebug.build.configure.args} --enable-openjdk-only
+jprt.productOpen.build.configure.args=${jprt.product.build.configure.args} --enable-openjdk-only
-# Locked down to jdk8
-jprt.tools.default.release=jdk8
+# Select build flavors and build targets
+jprt.build.flavors=${my.is.hotspot.job ? ${my.build.flavors.hotspot} : ${my.build.flavors.default}}
+jprt.build.targets=${my.is.hotspot.job ? ${my.build.targets.hotspot} : ${my.build.targets.default}}
-# Unix toolkit to use for building on windows
-jprt.windows.jdk8.build.unix.toolkit=cygwin
+# Select test targets - jprt default for jprt.test.set is "default"
+jprt.test.targets=${my.test.targets.${jprt.test.set}}
+jprt.make.rule.test.targets=${my.make.rule.test.targets.${jprt.test.set}}
-# The different build flavors we want, we override here so we just get these 2
-jprt.build.flavors=product,fastdebug
+# 7155453: Work-around to prevent popups on OSX from blocking test completion
+# but the work-around is added to all platforms to be consistent
+jprt.jbb.options=-Djava.awt.headless=true
+
+########
+#
+# Build options (generic)
+#
+
+# Configure args common to all builds
+# Also allows for additional, testset specific configure arguments to be set
+jprt.build.configure.args= \
+ --with-boot-jdk=$ALT_BOOTDIR \
+ --with-jobs=$ALT_PARALLEL_COMPILE_JOBS \
+ --with-update-version=${my.jdk.update.version} \
+ ${my.additional.build.configure.args.${jprt.test.set}}
+
+# i586 is often cross-compiled from 64-bit machines, so need to set target bits explicitly
+jprt.i586.build.configure.args= \
+ --with-target-bits=32
+
+# i586 platforms have both client and server, but to allow for overriding the exact configuration
+# on a per-build flavor basis the value is set for the individual build flavors
+# All other platforms only build server, which is the default setting from configure
+my.i586.default.build.configure.args= \
+ --with-jvm-variants=client,server
+jprt.i586.debug.build.configure.args= \
+ ${my.i586.default.build.configure.args} \
+ ${jprt.debug.build.configure.args}
+jprt.i586.fastdebug.build.configure.args= \
+ ${my.i586.default.build.configure.args} \
+ ${jprt.fastdebug.build.configure.args}
+jprt.i586.product.build.configure.args= \
+ ${my.i586.default.build.configure.args} \
+ ${jprt.product.build.configure.args}
+jprt.i586.debugOpen.build.configure.args= \
+ ${my.i586.default.build.configure.args} \
+ ${jprt.debugOpen.build.configure.args}
+jprt.i586.fastdebugOpen.build.configure.args= \
+ ${my.i586.default.build.configure.args} \
+ ${jprt.fastdebugOpen.build.configure.args}
+jprt.i586.productOpen.build.configure.args= \
+ ${my.i586.default.build.configure.args} \
+ ${jprt.productOpen.build.configure.args}
+
+########
+#
+# Build targets and options (default/jdk)
+#
+
+# The default build flavors
+my.build.flavors.default=fastdebug,product
# Standard list of jprt build targets for this source tree
-jprt.build.targets= \
- solaris_sparcv9_5.10-{product|fastdebug}, \
- solaris_x64_5.10-{product|fastdebug}, \
- linux_i586_2.6-{product|fastdebug}, \
- linux_x64_2.6-{product|fastdebug}, \
- macosx_x64_10.7-{product|fastdebug}, \
- windows_i586_6.1-{product|fastdebug}, \
+my.build.targets.default= \
+ solaris_sparcv9_5.10-{product|fastdebug}, \
+ solaris_x64_5.10-{product|fastdebug}, \
+ linux_i586_2.6-{product|fastdebug}, \
+ linux_x64_2.6-{product|fastdebug}, \
+ macosx_x64_10.7-{product|fastdebug}, \
+ windows_i586_6.1-{product|fastdebug}, \
windows_x64_6.1-{product|fastdebug}
-# User can select the test set with jprt submit "-testset name" option
-jprt.my.test.set=${jprt.test.set}
-
# Test target list (no fastdebug & limited c2 testing)
-jprt.my.test.target.set= \
- solaris_sparcv9_5.10-product-c2-TESTNAME, \
- solaris_x64_5.10-product-c2-TESTNAME, \
- linux_i586_2.6-product-{c1|c2}-TESTNAME, \
- linux_x64_2.6-product-c2-TESTNAME, \
- macosx_x64_10.7-product-c2-TESTNAME, \
- windows_i586_6.1-product-c1-TESTNAME, \
+my.test.target.set= \
+ solaris_sparcv9_5.10-product-c2-TESTNAME, \
+ solaris_x64_5.10-product-c2-TESTNAME, \
+ linux_i586_2.6-product-{c1|c2}-TESTNAME, \
+ linux_x64_2.6-product-c2-TESTNAME, \
+ macosx_x64_10.7-product-c2-TESTNAME, \
+ windows_i586_6.1-product-c1-TESTNAME, \
windows_x64_6.1-product-c2-TESTNAME
# Default vm test targets (testset=default)
-jprt.vm.default.test.targets= \
- ${jprt.my.test.target.set:TESTNAME=jvm98}, \
- ${jprt.my.test.target.set:TESTNAME=scimark}
+my.test.targets.default= \
+ ${my.test.target.set:TESTNAME=jvm98}, \
+ ${my.test.target.set:TESTNAME=scimark}
# Default jdk test targets (testset=default)
-jprt.make.rule.default.test.targets= \
- ${jprt.my.test.target.set:TESTNAME=langtools_jtreg}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_lang}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_math}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_util}
+my.make.rule.test.targets.default= \
+ ${my.test.target.set:TESTNAME=langtools_jtreg}, \
+ ${my.test.target.set:TESTNAME=jdk_lang}, \
+ ${my.test.target.set:TESTNAME=jdk_math}, \
+ ${my.test.target.set:TESTNAME=jdk_util}
-
# Default vm test targets (testset=core)
-jprt.vm.core.test.targets=
+my.test.targets.core=
# Core jdk test targets (testset=core)
-jprt.make.rule.core.test.targets= \
- ${jprt.my.test.target.set:TESTNAME=jdk_lang}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_math}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_util}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_io}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_net}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_nio}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_security1}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_security2}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_security3}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_rmi}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_text}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_time}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_other}, \
- ${jprt.my.test.target.set:TESTNAME=core_tools}
+my.make.rule.test.targets.core= \
+ ${my.test.target.set:TESTNAME=jdk_lang}, \
+ ${my.test.target.set:TESTNAME=jdk_math}, \
+ ${my.test.target.set:TESTNAME=jdk_util}, \
+ ${my.test.target.set:TESTNAME=jdk_io}, \
+ ${my.test.target.set:TESTNAME=jdk_net}, \
+ ${my.test.target.set:TESTNAME=jdk_nio}, \
+ ${my.test.target.set:TESTNAME=jdk_security1}, \
+ ${my.test.target.set:TESTNAME=jdk_security2}, \
+ ${my.test.target.set:TESTNAME=jdk_security3}, \
+ ${my.test.target.set:TESTNAME=jdk_rmi}, \
+ ${my.test.target.set:TESTNAME=jdk_text}, \
+ ${my.test.target.set:TESTNAME=jdk_time}, \
+ ${my.test.target.set:TESTNAME=jdk_other}, \
+ ${my.test.target.set:TESTNAME=core_tools}
# Svc vm test targets (testset=svc)
-jprt.vm.svc.test.targets=
+my.test.targets.svc=
# Core jdk test targets (testset=svc)
-jprt.make.rule.svc.test.targets= \
- ${jprt.my.test.target.set:TESTNAME=jdk_management}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_instrument}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_jmx}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_jdi}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_jfr}, \
- ${jprt.my.test.target.set:TESTNAME=svc_tools}
+my.make.rule.test.targets.svc= \
+ ${my.test.target.set:TESTNAME=jdk_management}, \
+ ${my.test.target.set:TESTNAME=jdk_instrument}, \
+ ${my.test.target.set:TESTNAME=jdk_jmx}, \
+ ${my.test.target.set:TESTNAME=jdk_jdi}, \
+ ${my.test.target.set:TESTNAME=jdk_jfr}, \
+ ${my.test.target.set:TESTNAME=svc_tools}
# All vm test targets (testset=all)
-jprt.vm.all.test.targets= \
- ${jprt.vm.default.test.targets}, \
- ${jprt.my.test.target.set:TESTNAME=runThese}, \
- ${jprt.my.test.target.set:TESTNAME=jbb_default}
+my.test.targets.all= \
+ ${my.test.targets.default}, \
+ ${my.test.target.set:TESTNAME=runThese}, \
+ ${my.test.target.set:TESTNAME=jbb_default}
# All jdk test targets (testset=all)
-jprt.make.rule.all.test.targets= \
- ${jprt.make.rule.core.test.targets}, \
- ${jprt.make.rule.svc.test.targets}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_awt}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_beans1}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_beans2}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_beans3}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_sound}, \
- ${jprt.my.test.target.set:TESTNAME=jdk_swing}
+my.make.rule.test.targets.all= \
+ ${my.make.rule.test.targets.core}, \
+ ${my.make.rule.test.targets.svc}, \
+ ${my.test.target.set:TESTNAME=jdk_awt}, \
+ ${my.test.target.set:TESTNAME=jdk_beans1}, \
+ ${my.test.target.set:TESTNAME=jdk_beans2}, \
+ ${my.test.target.set:TESTNAME=jdk_beans3}, \
+ ${my.test.target.set:TESTNAME=jdk_sound}, \
+ ${my.test.target.set:TESTNAME=jdk_swing}
# PIT vm test targets (testset=pit)
-jprt.vm.pit.test.targets= \
- ${jprt.vm.all.test.targets}
+my.test.targets.pit= \
+ ${my.test.targets.all}
# PIT jdk test targets (testset=pit)
-jprt.make.rule.pit.test.targets= \
- ${jprt.my.test.target.set:TESTNAME=langtools_jtreg}, \
- ${jprt.make.rule.core.test.targets}, \
- ${jprt.make.rule.svc.test.targets}
+my.make.rule.test.targets.pit= \
+ ${my.test.target.set:TESTNAME=langtools_jtreg}, \
+ ${my.make.rule.test.targets.core}, \
+ ${my.make.rule.test.targets.svc}
# JCK test targets in test/Makefile (no windows)
-jprt.my.jck.test.target.set= \
- solaris_sparcv9_5.10-product-c2-JCK7TESTRULE, \
- solaris_x64_5.10-product-c2-JCK7TESTRULE, \
- linux_i586_2.6-product-c1-JCK7TESTRULE, \
+my.test.target.set.jck= \
+ solaris_sparcv9_5.10-product-c2-JCK7TESTRULE, \
+ solaris_x64_5.10-product-c2-JCK7TESTRULE, \
+ linux_i586_2.6-product-c1-JCK7TESTRULE, \
linux_x64_2.6-product-c2-JCK7TESTRULE
-# JCK testset targets (e.g. jprt submit -testset jck ... )
-jprt.make.rule.jck.test.targets= \
- ${jprt.my.jck.test.target.set:JCK7TESTRULE=jck7devtools}, \
- ${jprt.my.jck.test.target.set:JCK7TESTRULE=jck7runtime}, \
- ${jprt.my.jck.test.target.set:JCK7TESTRULE=jck7compiler}
+# JCK testset targets
+my.make.rule.test.targets.jck= \
+ ${my.test.target.set.jck:JCK7TESTRULE=jck7devtools}, \
+ ${my.test.target.set.jck:JCK7TESTRULE=jck7runtime}, \
+ ${my.test.target.set.jck:JCK7TESTRULE=jck7compiler}
-# Select list to use (allow for testset to be empty too)
-jprt.make.rule..test.targets=${jprt.make.rule.default.test.targets}
-jprt.make.rule.test.targets=${jprt.make.rule.${jprt.my.test.set}.test.targets}
-jprt.vm..test.targets=${jprt.vm.default.test.targets}
-jprt.test.targets=${jprt.vm.${jprt.my.test.set}.test.targets}
-# Directories to be excluded from the source bundles
-jprt.bundle.exclude.src.dirs=build dist webrev
+#############
+#
+# Hotspot related settings (testset=hotspot)
+#
+
+# The hotspot build flavors
+my.build.flavors.hotspot= \
+ debugOpen,fastdebug,product,productOpen, \
+ ${my.additional.build.flavors.hotspot}
+
+# Platforms built for hotspot push jobs
+my.build.targets.hotspot= \
+ solaris_sparcv9_5.10-{product|fastdebug|optimized}, \
+ solaris_x64_5.10-{product|fastdebug}, \
+ linux_i586_2.6-{product|fastdebug}, \
+ linux_x64_2.6-{product|fastdebug|optimized}, \
+ macosx_x64_10.7-{product|fastdebug}, \
+ windows_i586_6.1-{product|fastdebug}, \
+ windows_x64_6.1-{product|fastdebug|optimized}, \
+ solaris_x64_5.10-{debugOpen}, \
+ linux_x64_2.6-{productOpen}, \
+ ${my.additional.build.targets.hotspot}
+
+# Tests to run on the various platforms for hotspot push jobs
+my.test.targets.hotspot.solaris.sparcv9= \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-jvm98, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-jvm98_nontiered, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-scimark, \
+ solaris_sparcv9_5.10-product-c2-runThese, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_SerialGC, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_ParallelGC, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_ParNewGC, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_CMS, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_G1, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_ParOldGC, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_SerialGC, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_ParallelGC, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_ParNewGC, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_CMS, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_G1, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_ParOldGC, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_default_nontiered, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_SerialGC, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_ParallelGC, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_CMS, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_G1, \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_ParOldGC
+
+my.test.targets.hotspot.solaris.x64= \
+ solaris_x64_5.10-{product|fastdebug}-c2-jvm98, \
+ solaris_x64_5.10-{product|fastdebug}-c2-jvm98_nontiered, \
+ solaris_x64_5.10-{product|fastdebug}-c2-scimark, \
+ solaris_x64_5.10-product-c2-runThese, \
+ solaris_x64_5.10-product-c2-runThese_Xcomp, \
+ solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_SerialGC, \
+ solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_ParallelGC, \
+ solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_ParNewGC, \
+ solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_CMS, \
+ solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_G1, \
+ solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_ParOldGC, \
+ solaris_x64_5.10-{product|fastdebug}-c2-GCOld_SerialGC, \
+ solaris_x64_5.10-{product|fastdebug}-c2-GCOld_ParallelGC, \
+ solaris_x64_5.10-{product|fastdebug}-c2-GCOld_ParNewGC, \
+ solaris_x64_5.10-{product|fastdebug}-c2-GCOld_CMS, \
+ solaris_x64_5.10-{product|fastdebug}-c2-GCOld_G1, \
+ solaris_x64_5.10-{product|fastdebug}-c2-GCOld_ParOldGC, \
+ solaris_x64_5.10-{product|fastdebug}-c2-jbb_default_nontiered, \
+ solaris_x64_5.10-{product|fastdebug}-c2-jbb_SerialGC, \
+ solaris_x64_5.10-{product|fastdebug}-c2-jbb_ParallelGC, \
+ solaris_x64_5.10-{product|fastdebug}-c2-GCOld_CMS, \
+ solaris_x64_5.10-{product|fastdebug}-c2-GCOld_G1, \
+ solaris_x64_5.10-{product|fastdebug}-c2-GCOld_ParOldGC
+
+my.test.targets.hotspot.linux.i586= \
+ linux_i586_2.6-{product|fastdebug}-{c1|c2}-jvm98, \
+ linux_i586_2.6-{product|fastdebug}-c2-jvm98_nontiered, \
+ linux_i586_2.6-{product|fastdebug}-{c1|c2}-scimark, \
+ linux_i586_2.6-product-c1-runThese_Xcomp, \
+ linux_i586_2.6-fastdebug-c1-runThese_Xshare, \
+ linux_i586_2.6-fastdebug-c2-runThese_Xcomp, \
+ linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_SerialGC, \
+ linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_ParallelGC, \
+ linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_ParNewGC, \
+ linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_CMS, \
+ linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_G1, \
+ linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_ParOldGC, \
+ linux_i586_2.6-product-{c1|c2}-GCOld_SerialGC, \
+ linux_i586_2.6-product-{c1|c2}-GCOld_ParallelGC, \
+ linux_i586_2.6-product-{c1|c2}-GCOld_ParNewGC, \
+ linux_i586_2.6-product-{c1|c2}-GCOld_CMS, \
+ linux_i586_2.6-product-{c1|c2}-GCOld_G1, \
+ linux_i586_2.6-product-{c1|c2}-GCOld_ParOldGC, \
+ linux_i586_2.6-{product|fastdebug}-c1-jbb_SerialGC, \
+ linux_i586_2.6-{product|fastdebug}-c2-jbb_default_nontiered, \
+ linux_i586_2.6-{product|fastdebug}-c1-jbb_ParallelGC, \
+ linux_i586_2.6-{product|fastdebug}-c1-jbb_CMS, \
+ linux_i586_2.6-{product|fastdebug}-c1-jbb_G1, \
+ linux_i586_2.6-{product|fastdebug}-c1-jbb_ParOldGC
+
+my.test.targets.hotspot.linux.x64= \
+ linux_x64_2.6-{product|fastdebug}-c2-jvm98, \
+ linux_x64_2.6-{product|fastdebug}-c2-jvm98_nontiered, \
+ linux_x64_2.6-{product|fastdebug}-c2-scimark, \
+ linux_x64_2.6-{product|fastdebug}-c2-GCBasher_SerialGC, \
+ linux_x64_2.6-{product|fastdebug}-c2-GCBasher_ParallelGC, \
+ linux_x64_2.6-{product|fastdebug}-c2-GCBasher_ParNewGC, \
+ linux_x64_2.6-{product|fastdebug}-c2-GCBasher_CMS, \
+ linux_x64_2.6-{product|fastdebug}-c2-GCBasher_G1, \
+ linux_x64_2.6-{product|fastdebug}-c2-GCBasher_ParOldGC, \
+ linux_x64_2.6-{product|fastdebug}-c2-GCOld_SerialGC, \
+ linux_x64_2.6-{product|fastdebug}-c2-GCOld_ParallelGC, \
+ linux_x64_2.6-{product|fastdebug}-c2-GCOld_ParNewGC, \
+ linux_x64_2.6-{product|fastdebug}-c2-GCOld_CMS, \
+ linux_x64_2.6-{product|fastdebug}-c2-GCOld_G1, \
+ linux_x64_2.6-{product|fastdebug}-c2-GCOld_ParOldGC, \
+ linux_x64_2.6-{product|fastdebug}-c2-jbb_default_nontiered, \
+ linux_x64_2.6-{product|fastdebug}-c2-jbb_ParallelGC, \
+ linux_x64_2.6-{product|fastdebug}-c2-jbb_G1, \
+ linux_x64_2.6-{product|fastdebug}-c2-jbb_ParOldGC
+
+my.test.targets.hotspot.macosx.x64= \
+ macosx_x64_10.7-{product|fastdebug}-c2-jvm98, \
+ macosx_x64_10.7-{product|fastdebug}-c2-jvm98_nontiered, \
+ macosx_x64_10.7-{product|fastdebug}-c2-scimark, \
+ macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_SerialGC, \
+ macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_ParallelGC, \
+ macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_ParNewGC, \
+ macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_CMS, \
+ macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_G1, \
+ macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_ParOldGC, \
+ macosx_x64_10.7-{product|fastdebug}-c2-GCOld_SerialGC, \
+ macosx_x64_10.7-{product|fastdebug}-c2-GCOld_ParallelGC, \
+ macosx_x64_10.7-{product|fastdebug}-c2-GCOld_ParNewGC, \
+ macosx_x64_10.7-{product|fastdebug}-c2-GCOld_CMS, \
+ macosx_x64_10.7-{product|fastdebug}-c2-GCOld_G1, \
+ macosx_x64_10.7-{product|fastdebug}-c2-GCOld_ParOldGC, \
+ macosx_x64_10.7-{product|fastdebug}-c2-jbb_default_nontiered, \
+ macosx_x64_10.7-{product|fastdebug}-c2-jbb_ParallelGC, \
+ macosx_x64_10.7-{product|fastdebug}-c2-jbb_G1, \
+ macosx_x64_10.7-{product|fastdebug}-c2-jbb_ParOldGC
+
+my.test.targets.hotspot.windows.i586= \
+ windows_i586_6.1-{product|fastdebug}-{c1|c2}-jvm98, \
+ windows_i586_6.1-{product|fastdebug}-c2-jvm98_nontiered, \
+ windows_i586_6.1-{product|fastdebug}-{c1|c2}-scimark, \
+ windows_i586_6.1-product-{c1|c2}-runThese, \
+ windows_i586_6.1-product-{c1|c2}-runThese_Xcomp, \
+ windows_i586_6.1-fastdebug-c1-runThese_Xshare, \
+ windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_SerialGC, \
+ windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_ParallelGC, \
+ windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_ParNewGC, \
+ windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_CMS, \
+ windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_G1, \
+ windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_ParOldGC, \
+ windows_i586_6.1-product-{c1|c2}-GCOld_SerialGC, \
+ windows_i586_6.1-product-{c1|c2}-GCOld_ParallelGC, \
+ windows_i586_6.1-product-{c1|c2}-GCOld_ParNewGC, \
+ windows_i586_6.1-product-{c1|c2}-GCOld_CMS, \
+ windows_i586_6.1-product-{c1|c2}-GCOld_G1, \
+ windows_i586_6.1-product-{c1|c2}-GCOld_ParOldGC, \
+ windows_i586_6.1-{product|fastdebug}-{c1|c2}-jbb_default, \
+ windows_i586_6.1-{product|fastdebug}-c2-jbb_default_nontiered, \
+ windows_i586_6.1-product-{c1|c2}-jbb_ParallelGC, \
+ windows_i586_6.1-product-{c1|c2}-jbb_CMS, \
+ windows_i586_6.1-product-{c1|c2}-jbb_G1, \
+ windows_i586_6.1-product-{c1|c2}-jbb_ParOldGC
+
+my.test.targets.hotspot.windows.x64= \
+ windows_x64_6.1-{product|fastdebug}-c2-jvm98, \
+ windows_x64_6.1-{product|fastdebug}-c2-jvm98_nontiered, \
+ windows_x64_6.1-{product|fastdebug}-c2-scimark, \
+ windows_x64_6.1-product-c2-runThese, \
+ windows_x64_6.1-product-c2-runThese_Xcomp, \
+ windows_x64_6.1-{product|fastdebug}-c2-GCBasher_SerialGC, \
+ windows_x64_6.1-{product|fastdebug}-c2-GCBasher_ParallelGC, \
+ windows_x64_6.1-{product|fastdebug}-c2-GCBasher_ParNewGC, \
+ windows_x64_6.1-{product|fastdebug}-c2-GCBasher_CMS, \
+ windows_x64_6.1-{product|fastdebug}-c2-GCBasher_G1, \
+ windows_x64_6.1-{product|fastdebug}-c2-GCBasher_ParOldGC, \
+ windows_x64_6.1-{product|fastdebug}-c2-GCOld_SerialGC, \
+ windows_x64_6.1-{product|fastdebug}-c2-GCOld_ParallelGC, \
+ windows_x64_6.1-{product|fastdebug}-c2-GCOld_ParNewGC, \
+ windows_x64_6.1-{product|fastdebug}-c2-GCOld_CMS, \
+ windows_x64_6.1-{product|fastdebug}-c2-GCOld_G1, \
+ windows_x64_6.1-{product|fastdebug}-c2-GCOld_ParOldGC, \
+ windows_x64_6.1-{product|fastdebug}-c2-jbb_default, \
+ windows_x64_6.1-{product|fastdebug}-c2-jbb_default_nontiered, \
+ windows_x64_6.1-product-c2-jbb_CMS, \
+ windows_x64_6.1-product-c2-jbb_ParallelGC, \
+ windows_x64_6.1-product-c2-jbb_G1, \
+ windows_x64_6.1-product-c2-jbb_ParOldGC
+
+# Some basic "smoke" tests for OpenJDK builds
+my.test.targets.hotspot.open= \
+ solaris_x64_5.10-{productOpen|fastdebugOpen}-c2-jvm98, \
+ linux_x64_2.6-{productOpen|fastdebugOpen}-c2-jvm98
+
+# The complete list of test targets for jprt
+my.test.targets.hotspot= \
+ ${my.test.targets.hotspot.open}, \
+ ${my.test.targets.hotspot.solaris.sparcv9}, \
+ ${my.test.targets.hotspot.solaris.x64}, \
+ ${my.test.targets.hotspot.linux.i586}, \
+ ${my.test.targets.hotspot.linux.x64}, \
+ ${my.test.targets.hotspot.macosx.x64}, \
+ ${my.test.targets.hotspot.windows.i586}, \
+ ${my.test.targets.hotspot.windows.x64}, \
+ ${my.test.targets.hotspot.solaris.sparcv9}, \
+ ${my.test.targets.hotspot.solaris.x64}, \
+ ${my.test.targets.hotspot.linux.x64}, \
+ ${my.test.targets.hotspot.windows.i586}, \
+ ${my.test.targets.hotspot.windows.x64}, \
+ ${my.additional.test.targets.hotspot}
+
+
+# Make file based test targets
+
+my.make.rule.test.targets.hotspot.clienttests= \
+ linux_i586_2.6-*-c1-hotspot_clienttest, \
+ windows_i586_6.1-*-c1-hotspot_clienttest
+
+my.make.rule.test.targets.hotspot.servertests= \
+ solaris_sparcv9_5.10-*-c2-hotspot_servertest, \
+ solaris_x64_5.10-*-c2-hotspot_servertest, \
+ linux_i586_2.6-*-c2-hotspot_servertest, \
+ linux_x64_2.6-*-c2-hotspot_servertest, \
+ macosx_x64_10.7-*-c2-hotspot_servertest, \
+ windows_i586_6.1-*-c2-hotspot_servertest, \
+ windows_x64_6.1-*-c2-hotspot_servertest
+
+my.make.rule.test.targets.hotspot.internalvmtests= \
+ solaris_sparcv9_5.10-fastdebug-c2-hotspot_internalvmtests, \
+ solaris_x64_5.10-fastdebug-c2-hotspot_internalvmtests, \
+ linux_i586_2.6-fastdebug-c2-hotspot_internalvmtests, \
+ linux_x64_2.6-fastdebug-c2-hotspot_internalvmtests, \
+ macosx_x64_10.7-fastdebug-c2-hotspot_internalvmtests, \
+ windows_i586_6.1-fastdebug-c2-hotspot_internalvmtests, \
+ windows_x64_6.1-fastdebug-c2-hotspot_internalvmtests
+
+my.make.rule.test.targets.hotspot.wbapitests= \
+ solaris_sparcv9_5.10-{product|fastdebug}-c2-hotspot_wbapitest, \
+ solaris_x64_5.10-{product|fastdebug}-c2-hotspot_wbapitest, \
+ linux_i586_2.6-{product|fastdebug}-c2-hotspot_wbapitest, \
+ linux_x64_2.6-{product|fastdebug}-c2-hotspot_wbapitest, \
+ windows_i586_6.1-{product|fastdebug}-c2-hotspot_wbapitest, \
+ windows_x64_6.1-{product|fastdebug}-c2-hotspot_wbapitest, \
+ linux_i586_2.6-{product|fastdebug}-c1-hotspot_wbapitest, \
+ windows_i586_6.1-{product|fastdebug}-c1-hotspot_wbapitest
+my.make.rule.test.targets.hotspot= \
+ ${my.make.rule.test.targets.hotspot.clienttests}, \
+ ${my.make.rule.test.targets.hotspot.servertests}, \
+ ${my.make.rule.test.targets.hotspot.internalvmtests}, \
+ ${my.make.rule.test.targets.hotspot.wbapitests}, \
+ ${my.additional.make.rule.test.targets.hotspot}
diff --git a/test/Makefile b/test/Makefile
index 08b91bf..7a66290 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -33,6 +33,7 @@ TOPDIR=..
# This makefile depends on the availability of sibling directories.
LANGTOOLS_DIR=$(TOPDIR)/langtools
JDK_DIR=$(TOPDIR)/jdk
+HOTSPOT_DIR=$(TOPDIR)/hotspot
# Macro to run a test target in a subdir
define SUBDIR_TEST # subdirectory target
@@ -62,6 +63,9 @@ langtools_% :
jdk_% core_%s svc_%:
@$(NO_STOPPING)$(call SUBDIR_TEST, $(JDK_DIR), TEST="$@" $@)
+hotspot_%:
+ @$(NO_STOPPING)$(call SUBDIR_TEST, $(HOTSPOT_DIR), TEST="$@" $@)
+
################################################################
# Phony targets (e.g. these are not filenames)