--- a/common/autoconf/basics.m4 Tue May 17 18:18:18 2016 +0200
+++ b/common/autoconf/basics.m4 Wed May 04 15:29:01 2016 +0200
@@ -484,6 +484,8 @@
BASIC_REQUIRE_PROGS(FILE, file)
BASIC_REQUIRE_PROGS(FIND, find)
BASIC_REQUIRE_PROGS(HEAD, head)
+ BASIC_REQUIRE_PROGS(GUNZIP, gunzip)
+ BASIC_REQUIRE_PROGS(GZIP, pigz gzip)
BASIC_REQUIRE_PROGS(LN, ln)
BASIC_REQUIRE_PROGS(LS, ls)
BASIC_REQUIRE_PROGS(MKDIR, mkdir)
@@ -496,7 +498,7 @@
BASIC_REQUIRE_PROGS(SH, sh)
BASIC_REQUIRE_PROGS(SORT, sort)
BASIC_REQUIRE_PROGS(TAIL, tail)
- BASIC_REQUIRE_PROGS(TAR, tar)
+ BASIC_REQUIRE_PROGS(TAR, gtar tar)
BASIC_REQUIRE_PROGS(TEE, tee)
BASIC_REQUIRE_PROGS(TOUCH, touch)
BASIC_REQUIRE_PROGS(TR, tr)
@@ -1007,11 +1009,36 @@
AC_SUBST(FIND_DELETE)
])
+AC_DEFUN([BASIC_CHECK_TAR],
+[
+ # Test which kind of tar was found
+ if test "x$($TAR --version | $GREP "GNU tar")" != "x"; then
+ TAR_TYPE="gnu"
+ elif test "x$($TAR -v | $GREP "bsdtar")" != "x"; then
+ TAR_TYPE="bsd"
+ elif test "x$OPENJDK_BUILD_OS" = "xsolaris"; then
+ TAR_TYPE="solaris"
+ fi
+ AC_MSG_CHECKING([what type of tar was found])
+ AC_MSG_RESULT([$TAR_TYPE])
+
+ if test "x$TAR_TYPE" = "xgnu"; then
+ TAR_INCLUDE_PARAM="T"
+ TAR_SUPPORTS_TRANSFORM="true"
+ else
+ TAR_INCLUDE_PARAM="I"
+ TAR_SUPPORTS_TRANSFORM="false"
+ fi
+ AC_SUBST(TAR_INCLUDE_PARAM)
+ AC_SUBST(TAR_SUPPORTS_TRANSFORM)
+])
+
AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
[
BASIC_CHECK_GNU_MAKE
BASIC_CHECK_FIND_DELETE
+ BASIC_CHECK_TAR
# These tools might not be installed by default,
# need hint on how to install them.
--- a/common/autoconf/compare.sh.in Tue May 17 18:18:18 2016 +0200
+++ b/common/autoconf/compare.sh.in Wed May 04 15:29:01 2016 +0200
@@ -48,6 +48,7 @@
export FILE="@FILE@"
export FIND="@FIND@"
export GREP="@GREP@"
+export GUNZIP="@GUNZIP@"
export LDD="@LDD@"
export LN="@LN@"
export MKDIR="@MKDIR@"
@@ -63,10 +64,11 @@
export SORT="@SORT@"
export STAT="@STAT@"
export STRIP="@STRIP@ @STRIPFLAGS@"
+export TAR="@TAR@"
export TEE="@TEE@"
export UNIQ="@UNIQ@"
export UNPACK200="@FIXPATH@ @BOOT_JDK@/bin/unpack200"
-export UNARCHIVE="@UNZIP@ -q"
+export UNARCHIVE="@UNZIP@ -q -o"
export SRC_ROOT="@TOPDIR@"
export OUTPUT_ROOT="@OUTPUT_ROOT@"
--- a/common/autoconf/generated-configure.sh Tue May 17 18:18:18 2016 +0200
+++ b/common/autoconf/generated-configure.sh Wed May 04 15:29:01 2016 +0200
@@ -949,6 +949,8 @@
LDD
ZIP
UNZIP
+TAR_SUPPORTS_TRANSFORM
+TAR_INCLUDE_PARAM
FIND_DELETE
OUTPUT_SYNC
OUTPUT_SYNC_SUPPORTED
@@ -981,6 +983,9 @@
HOTSPOT_BUILD_CPU
HOTSPOT_BUILD_OS_TYPE
HOTSPOT_BUILD_OS
+OPENJDK_BUILD_BUNDLE_PLATFORM
+OPENJDK_BUILD_CPU_BUNDLE
+OPENJDK_BUILD_OS_BUNDLE
OPENJDK_BUILD_OS_EXPORT_DIR
OPENJDK_BUILD_CPU_JLI_CFLAGS
OPENJDK_BUILD_CPU_OSARCH
@@ -995,6 +1000,9 @@
HOTSPOT_TARGET_OS
DEFINE_CROSS_COMPILE_ARCH
LP64
+OPENJDK_TARGET_BUNDLE_PLATFORM
+OPENJDK_TARGET_CPU_BUNDLE
+OPENJDK_TARGET_OS_BUNDLE
OPENJDK_TARGET_OS_EXPORT_DIR
OPENJDK_TARGET_CPU_JLI_CFLAGS
OPENJDK_TARGET_CPU_OSARCH
@@ -1064,6 +1072,8 @@
MKDIR
LS
LN
+GZIP
+GUNZIP
HEAD
FIND
FILE
@@ -1246,6 +1256,8 @@
FILE
FIND
HEAD
+GUNZIP
+GZIP
LN
LS
MKDIR
@@ -2184,6 +2196,8 @@
FILE Override default value for FILE
FIND Override default value for FIND
HEAD Override default value for HEAD
+ GUNZIP Override default value for GUNZIP
+ GZIP Override default value for GZIP
LN Override default value for LN
LS Override default value for LS
MKDIR Override default value for MKDIR
@@ -3686,6 +3700,8 @@
+
+
# Check if build directory is on local disk. If not possible to determine,
# we prefer to claim it's local.
# Argument 1: directory to test
@@ -5056,7 +5072,7 @@
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1463011468
+DATE_WHEN_GENERATED=1463500649
###############################################################################
#
@@ -8384,6 +8400,414 @@
# Publish this variable in the help.
+ if [ -z "${GUNZIP+x}" ]; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in gunzip
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GUNZIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GUNZIP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GUNZIP="$GUNZIP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GUNZIP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GUNZIP=$ac_cv_path_GUNZIP
+if test -n "$GUNZIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GUNZIP" >&5
+$as_echo "$GUNZIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$GUNZIP" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !GUNZIP! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!GUNZIP!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xGUNZIP" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of GUNZIP from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of GUNZIP from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in gunzip
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GUNZIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GUNZIP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GUNZIP="$GUNZIP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GUNZIP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GUNZIP=$ac_cv_path_GUNZIP
+if test -n "$GUNZIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GUNZIP" >&5
+$as_echo "$GUNZIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$GUNZIP" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if we try to supply an empty value
+ if test "x$GUNZIP" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Setting user supplied tool GUNZIP= (no value)" >&5
+$as_echo "$as_me: Setting user supplied tool GUNZIP= (no value)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GUNZIP" >&5
+$as_echo_n "checking for GUNZIP... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
+$as_echo "disabled" >&6; }
+ else
+ # Check if the provided tool contains a complete path.
+ tool_specified="$GUNZIP"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool GUNZIP=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool GUNZIP=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GUNZIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GUNZIP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GUNZIP="$GUNZIP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GUNZIP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GUNZIP=$ac_cv_path_GUNZIP
+if test -n "$GUNZIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GUNZIP" >&5
+$as_echo "$GUNZIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$GUNZIP" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool GUNZIP=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool GUNZIP=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GUNZIP" >&5
+$as_echo_n "checking for GUNZIP... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool GUNZIP=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+ fi
+
+
+
+ if test "x$GUNZIP" = x; then
+ as_fn_error $? "Could not find required tool for GUNZIP" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if [ -z "${GZIP+x}" ]; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in pigz gzip
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GZIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GZIP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GZIP="$GZIP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GZIP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GZIP=$ac_cv_path_GZIP
+if test -n "$GZIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GZIP" >&5
+$as_echo "$GZIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$GZIP" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !GZIP! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!GZIP!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xGZIP" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of GZIP from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of GZIP from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in pigz gzip
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GZIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GZIP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GZIP="$GZIP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GZIP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GZIP=$ac_cv_path_GZIP
+if test -n "$GZIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GZIP" >&5
+$as_echo "$GZIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$GZIP" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if we try to supply an empty value
+ if test "x$GZIP" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Setting user supplied tool GZIP= (no value)" >&5
+$as_echo "$as_me: Setting user supplied tool GZIP= (no value)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GZIP" >&5
+$as_echo_n "checking for GZIP... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
+$as_echo "disabled" >&6; }
+ else
+ # Check if the provided tool contains a complete path.
+ tool_specified="$GZIP"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool GZIP=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool GZIP=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GZIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GZIP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GZIP="$GZIP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GZIP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GZIP=$ac_cv_path_GZIP
+if test -n "$GZIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GZIP" >&5
+$as_echo "$GZIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$GZIP" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool GZIP=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool GZIP=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GZIP" >&5
+$as_echo_n "checking for GZIP... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool GZIP=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+ fi
+
+
+
+ if test "x$GZIP" = x; then
+ as_fn_error $? "Could not find required tool for GZIP" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
if [ -z "${LN+x}" ]; then
# The variable is not set by user, try to locate tool using the code snippet
for ac_prog in ln
@@ -10834,7 +11258,7 @@
if [ -z "${TAR+x}" ]; then
# The variable is not set by user, try to locate tool using the code snippet
- for ac_prog in tar
+ for ac_prog in gtar tar
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -10892,7 +11316,7 @@
$as_echo "$as_me: WARNING: Ignoring value of TAR from the environment. Use command line variables instead." >&2;}
fi
# Try to locate tool using the code snippet
- for ac_prog in tar
+ for ac_prog in gtar tar
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -15408,6 +15832,23 @@
fi
+ # The new version string in JDK 9 also defined new naming of OS and ARCH for bundles
+ # Macosx is osx and x86_64 is x64
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ OPENJDK_TARGET_OS_BUNDLE="osx"
+ else
+ OPENJDK_TARGET_OS_BUNDLE="$OPENJDK_TARGET_OS"
+ fi
+ if test "x$OPENJDK_TARGET_CPU" = xx86_64; then
+ OPENJDK_TARGET_CPU_BUNDLE="x64"
+ else
+ OPENJDK_TARGET_CPU_BUNDLE="$OPENJDK_TARGET_CPU"
+ fi
+ OPENJDK_TARGET_BUNDLE_PLATFORM="${OPENJDK_TARGET_OS_BUNDLE}-${OPENJDK_TARGET_CPU_BUNDLE}"
+
+
+
+
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
A_LP64="LP64:="
# -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in
@@ -15564,6 +16005,23 @@
fi
+ # The new version string in JDK 9 also defined new naming of OS and ARCH for bundles
+ # Macosx is osx and x86_64 is x64
+ if test "x$OPENJDK_BUILD_OS" = xmacosx; then
+ OPENJDK_BUILD_OS_BUNDLE="osx"
+ else
+ OPENJDK_BUILD_OS_BUNDLE="$OPENJDK_TARGET_OS"
+ fi
+ if test "x$OPENJDK_BUILD_CPU" = xx86_64; then
+ OPENJDK_BUILD_CPU_BUNDLE="x64"
+ else
+ OPENJDK_BUILD_CPU_BUNDLE="$OPENJDK_BUILD_CPU"
+ fi
+ OPENJDK_BUILD_BUNDLE_PLATFORM="${OPENJDK_BUILD_OS_BUNDLE}-${OPENJDK_BUILD_CPU_BUNDLE}"
+
+
+
+
if test "x$OPENJDK_BUILD_CPU_BITS" = x64; then
A_LP64="LP64:="
# -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in
@@ -20681,6 +21139,30 @@
+ # Test which kind of tar was found
+ if test "x$($TAR --version | $GREP "GNU tar")" != "x"; then
+ TAR_TYPE="gnu"
+ elif test "x$($TAR -v | $GREP "bsdtar")" != "x"; then
+ TAR_TYPE="bsd"
+ elif test "x$OPENJDK_BUILD_OS" = "xsolaris"; then
+ TAR_TYPE="solaris"
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking what type of tar was found" >&5
+$as_echo_n "checking what type of tar was found... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR_TYPE" >&5
+$as_echo "$TAR_TYPE" >&6; }
+
+ if test "x$TAR_TYPE" = "xgnu"; then
+ TAR_INCLUDE_PARAM="T"
+ TAR_SUPPORTS_TRANSFORM="true"
+ else
+ TAR_INCLUDE_PARAM="I"
+ TAR_SUPPORTS_TRANSFORM="false"
+ fi
+
+
+
+
# These tools might not be installed by default,
# need hint on how to install them.
--- a/common/autoconf/platform.m4 Tue May 17 18:18:18 2016 +0200
+++ b/common/autoconf/platform.m4 Wed May 04 15:29:01 2016 +0200
@@ -366,6 +366,23 @@
fi
AC_SUBST(OPENJDK_$1_OS_EXPORT_DIR)
+ # The new version string in JDK 9 also defined new naming of OS and ARCH for bundles
+ # Macosx is osx and x86_64 is x64
+ if test "x$OPENJDK_$1_OS" = xmacosx; then
+ OPENJDK_$1_OS_BUNDLE="osx"
+ else
+ OPENJDK_$1_OS_BUNDLE="$OPENJDK_TARGET_OS"
+ fi
+ if test "x$OPENJDK_$1_CPU" = xx86_64; then
+ OPENJDK_$1_CPU_BUNDLE="x64"
+ else
+ OPENJDK_$1_CPU_BUNDLE="$OPENJDK_$1_CPU"
+ fi
+ OPENJDK_$1_BUNDLE_PLATFORM="${OPENJDK_$1_OS_BUNDLE}-${OPENJDK_$1_CPU_BUNDLE}"
+ AC_SUBST(OPENJDK_$1_OS_BUNDLE)
+ AC_SUBST(OPENJDK_$1_CPU_BUNDLE)
+ AC_SUBST(OPENJDK_$1_BUNDLE_PLATFORM)
+
if test "x$OPENJDK_$1_CPU_BITS" = x64; then
A_LP64="LP64:="
# -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in
--- a/common/autoconf/spec.gmk.in Tue May 17 18:18:18 2016 +0200
+++ b/common/autoconf/spec.gmk.in Wed May 04 15:29:01 2016 +0200
@@ -89,6 +89,10 @@
HOTSPOT_TARGET_CPU_ARCH := @HOTSPOT_TARGET_CPU_ARCH@
HOTSPOT_TARGET_CPU_DEFINE := @HOTSPOT_TARGET_CPU_DEFINE@
+OPENJDK_TARGET_CPU_BUNDLE:=@OPENJDK_TARGET_CPU_BUNDLE@
+OPENJDK_TARGET_OS_BUNDLE:=@OPENJDK_TARGET_OS_BUNDLE@
+OPENJDK_TARGET_BUNDLE_PLATFORM:=@OPENJDK_TARGET_BUNDLE_PLATFORM@
+
# We are building on this build system.
# When not cross-compiling, it is the same as the target.
OPENJDK_BUILD_OS:=@OPENJDK_BUILD_OS@
@@ -268,6 +272,7 @@
HOTSPOT_OUTPUTDIR=$(BUILD_OUTPUT)/hotspot
JDK_OUTPUTDIR=$(BUILD_OUTPUT)/jdk
IMAGES_OUTPUTDIR=$(BUILD_OUTPUT)/images
+BUNDLES_OUTPUTDIR=$(BUILD_OUTPUT)/bundles
TESTMAKE_OUTPUTDIR=$(BUILD_OUTPUT)/test-make
MAKESUPPORT_OUTPUTDIR=$(BUILD_OUTPUT)/make-support
# This does not get overridden in a bootcycle build
@@ -632,6 +637,7 @@
EGREP:=@EGREP@
FGREP:=@FGREP@
GREP:=@GREP@
+GZIP:=@GZIP@
HEAD:=@HEAD@
LS:=@LS@
LN:=@LN@
@@ -679,6 +685,9 @@
DTRACE := @DTRACE@
FIXPATH:=@FIXPATH@
+TAR_INCLUDE_PARAM:=@TAR_INCLUDE_PARAM@
+TAR_SUPPORTS_TRANSFORM:=@TAR_SUPPORTS_TRANSFORM@
+
# Build setup
ENABLE_JFR=@ENABLE_JFR@
ENABLE_INTREE_EC=@ENABLE_INTREE_EC@
@@ -785,11 +794,46 @@
# Interim image
INTERIM_IMAGE_DIR := $(SUPPORT_OUTPUTDIR)/interim-image
+# Docs image
+DOCS_IMAGE_SUBDIR := docs
+DOCS_IMAGE_DIR := $(IMAGES_OUTPUTDIR)/$(DOCS_IMAGE_SUBDIR)
+
# Macosx bundles directory definitions
-JDK_MACOSX_BUNDLE_SUBDIR=jdk-bundle/jdk-$(VERSION_NUMBER).jdk/Contents
-JRE_MACOSX_BUNDLE_SUBDIR=jre-bundle/jre-$(VERSION_NUMBER).jre/Contents
+JDK_MACOSX_BUNDLE_SUBDIR=jdk-bundle
+JRE_MACOSX_BUNDLE_SUBDIR=jre-bundle
JDK_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR)
JRE_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR)
+JDK_MACOSX_CONTENTS_SUBDIR=jdk-$(VERSION_NUMBER).jdk/Contents
+JRE_MACOSX_CONTENTS_SUBDIR=jre-$(VERSION_NUMBER).jre/Contents
+JDK_MACOSX_CONTENTS_DIR=$(JDK_MACOSX_BUNDLE_DIR)/$(JDK_MACOSX_CONTENTS_SUBDIR)
+JRE_MACOSX_CONTENTS_DIR=$(JRE_MACOSX_BUNDLE_DIR)/$(JRE_MACOSX_CONTENTS_SUBDIR)
+
+# Bundle names
+BASE_NAME := $(VERSION_SHORT)+$(VERSION_BUILD)_$(OPENJDK_TARGET_BUNDLE_PLATFORM)
+ifeq ($(DEBUG_LEVEL), fastdebug)
+ DEBUG_PART := -debug
+else ifneq ($(DEBUG_LEVEL), release)
+ DEBUG_PART := -$(DEBUG_LEVEL)
+endif
+JDK_BUNDLE_NAME := jdk-$(BASE_NAME)_bin$(DEBUG_PART).tar.gz
+JRE_BUNDLE_NAME := jre-$(BASE_NAME)_bin$(DEBUG_PART).tar.gz
+JDK_SYMBOLS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin$(DEBUG_PART)-symbols.tar.gz
+JRE_SYMBOLS_BUNDLE_NAME := jre-$(BASE_NAME)_bin$(DEBUG_PART)-symbols.tar.gz
+ifeq ($(OPENJDK_TARGET_OS), windows)
+ DEMOS_BUNDLE_NAME := jdk-$(BASE_NAME)_demo$(DEBUG_PART).zip
+else
+ DEMOS_BUNDLE_NAME := jdk-$(BASE_NAME)_demo$(DEBUG_PART).tar.gz
+endif
+TEST_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests$(DEBUG_PART).tar.gz
+DOCS_BUNDLE_NAME := jdk-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz
+
+JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_BUNDLE_NAME)
+JRE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JRE_BUNDLE_NAME)
+JDK_SYMBOLS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_SYMBOLS_BUNDLE_NAME)
+JRE_SYMBOLS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JRE_SYMBOLS_BUNDLE_NAME)
+DEMOS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DEMOS_BUNDLE_NAME)
+TEST_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_BUNDLE_NAME)
+DOCS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_BUNDLE_NAME)
# This macro is called to allow inclusion of closed source counterparts.
# Unless overridden in closed sources, it expands to nothing.
--- a/common/bin/compare.sh Tue May 17 18:18:18 2016 +0200
+++ b/common/bin/compare.sh Wed May 04 15:29:01 2016 +0200
@@ -274,14 +274,19 @@
$MKDIR -p $WORK_DIR
+ FILE_TYPES_FILTER="$SED \
+ -e 's/BuildID[^,]*//' \
+ -e 's/last modified: .*//' \
+ "
+
echo -n File types...
found=""
for f in `cd $OTHER_DIR && $FIND . ! -type d`
do
if [ ! -f ${OTHER_DIR}/$f ]; then continue; fi
if [ ! -f ${THIS_DIR}/$f ]; then continue; fi
- OF=`cd ${OTHER_DIR} && $FILE -h $f | $SED 's/BuildID[^,]*//g'`
- TF=`cd ${THIS_DIR} && $FILE -h $f | $SED 's/BuildID[^,]*//g'`
+ OF=$(cd ${OTHER_DIR} && $FILE -h $f | eval $FILE_TYPES_FILTER)
+ TF=$(cd ${THIS_DIR} && $FILE -h $f | eval $FILE_TYPES_FILTER)
if [ "$OF" != "$TF" ]
then
if [ "`echo $OF | $GREP -c 'Zip archive data'`" -gt 0 ] \
@@ -320,7 +325,7 @@
! -name "*.obj" ! -name "*.o" ! -name "JavaControlPanelHelper" \
! -name "JavaUpdater" ! -name "JavaWSApplicationStub" \
! -name "jspawnhelper" ! -name "JavawsLauncher" ! -name "*.a" \
- ! -name "finish_installation" ! -name "Sparkle" \
+ ! -name "finish_installation" ! -name "Sparkle" ! -name "*.tar.gz" \
| $GREP -v "./bin/" | $SORT | $FILTER)
echo Other files with binary differences...
@@ -423,6 +428,10 @@
then
(cd $THIS_UNZIPDIR && $UNARCHIVE $THIS_ZIP)
(cd $OTHER_UNZIPDIR && $UNARCHIVE $OTHER_ZIP)
+ elif [ "$TYPE" = "gz" ]
+ then
+ (cd $THIS_UNZIPDIR && $GUNZIP -c $THIS_ZIP | $TAR xf -)
+ (cd $OTHER_UNZIPDIR && $GUNZIP -c $OTHER_ZIP | $TAR xf -)
else
(cd $THIS_UNZIPDIR && $JIMAGE extract $THIS_ZIP)
(cd $OTHER_UNZIPDIR && $JIMAGE extract $OTHER_ZIP)
@@ -526,10 +535,11 @@
OTHER_DIR=$2
WORK_DIR=$3
- ZIPS=$(cd $THIS_DIR && $FIND . -type f -name "*.zip" | $SORT | $FILTER )
+ ZIPS=$(cd $THIS_DIR && $FIND . -type f -name "*.zip" -o -name "*.tar.gz" \
+ | $SORT | $FILTER )
if [ -n "$ZIPS" ]; then
- echo Zip files...
+ echo Zip/tar.gz files...
return_value=0
for f in $ZIPS; do
@@ -913,7 +923,7 @@
FULLDUMP_MSG=" "
DIFF_FULLDUMP=
if [[ "$KNOWN_FULLDUMP_DIFF $ACCEPTED_FULLDUMP_DIFF" = *"$BIN_FILE"* ]]; then
- FULLDUMP_MSG=" ! "
+ FULLDUMP_MSG=" ! "
fi
fi
fi
--- a/common/conf/jib-profiles.js Tue May 17 18:18:18 2016 +0200
+++ b/common/conf/jib-profiles.js Wed May 04 15:29:01 2016 +0200
@@ -215,7 +215,7 @@
var common = {};
common.dependencies = ["boot_jdk", "gnumake", "jtreg"],
- common.default_make_targets = ["product-images", "test-image"],
+ common.default_make_targets = ["product-bundles", "test-bundles"],
common.default_make_targets_debug = common.default_make_targets;
common.default_make_targets_slowdebug = common.default_make_targets;
common.configure_args = ["--enable-jtreg-failure-handler"],
@@ -245,7 +245,7 @@
target_cpu: "x64",
dependencies: concat(common.dependencies, "devkit"),
configure_args: concat(common.configure_args, "--with-zlib=system"),
- default_make_targets: concat(common.default_make_targets, "docs-image")
+ default_make_targets: concat(common.default_make_targets, "docs-bundles")
},
"linux-x86": {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/Bundles.gmk Wed May 04 15:29:01 2016 +0200
@@ -0,0 +1,300 @@
+#
+# Copyright (c) 2016, 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.
+#
+
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+
+PRODUCT_TARGETS :=
+TEST_TARGETS :=
+DOCS_TARGETS :=
+
+# On Windows tar frequently complains that "file changed as we read it" for
+# some random source files. This seems to be cause by anti virus scanners and
+# is most likely safe to ignore. When it happens, tar returns '1'.
+ifeq ($(OPENJDK_BUILD_OS), windows)
+ TAR_IGNORE_EXIT_VALUE := || test "$$$$?" = "1"
+endif
+
+# Hook to include the corresponding custom file, if present.
+$(eval $(call IncludeCustomExtension, , Bundles-pre.gmk))
+################################################################################
+# BUNDLE : Name of bundle to create
+# FILES : Files in BASE_DIR to add to bundle
+# SPECIAL_INCLUDES : List of directories inside BASE_DIR to look for additional
+# files in. These files will not get proper dependency handling. Use when
+# files or directories may contain spaces.
+# BASE_DIR : Base directory for the root dir in the bundle.
+# SUBDIR : Optional name of root dir in bundle.
+SetupBundleFile = $(NamedParamsMacroTemplate)
+define SetupBundleFileBody
+
+ $1_RELATIVE_FILES := $$(patsubst $$($1_BASE_DIR)/%, ./%, $$($1_FILES))
+
+ ifneq ($$(filter %.tar.gz, $$($1_BUNDLE_NAME)), )
+ $1_TYPE := tar.gz
+ else ifneq ($$(filter %.zip, $$($1_BUNDLE_NAME)), )
+ $1_TYPE := zip
+ else
+ $$(error Unknown bundle type $$($1_BUNDLE_NAME))
+ endif
+
+ $$(call SetIfEmpty, $1_UNZIP_DEBUGINFO, false)
+
+ $(BUNDLES_OUTPUTDIR)/$$($1_BUNDLE_NAME): $$($1_FILES)
+ $$(eval $$(call ListPathsSafely, \
+ $1_RELATIVE_FILES, \
+ $(SUPPORT_OUTPUTDIR)/bundles/_$1_files))
+ $$(call MakeDir, $$(@D))
+ ifneq ($$($1_SPECIAL_INCLUDES), )
+ $$(foreach i, $$($1_SPECIAL_INCLUDES), \
+ ($(CD) $$($1_BASE_DIR) && $(FIND) ./$$i \
+ >> $(SUPPORT_OUTPUTDIR)/bundles/_$1_files ) ; )
+ endif
+ ifneq ($$($1_SUBDIR), )
+ ifeq ($$($1_TYPE)-$(TAR_SUPPORTS_TRANSFORM)-$$($1_UNZIP_DEBUGINFO), tar.gz-true-false)
+ $(CD) $$($1_BASE_DIR) \
+ && ( $(TAR) cf - -$(TAR_INCLUDE_PARAM) $(SUPPORT_OUTPUTDIR)/bundles/_$1_files \
+ --transform 's|^|$$($1_SUBDIR)/|' $(TAR_IGNORE_EXIT_VALUE) ) \
+ | $(GZIP) > $$@
+ else
+ # If a subdir has been specified, copy all files into a temporary
+ # location with this subdir before creating the tar file
+ $(RM) -r $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR)
+ $(MKDIR) -p $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR)
+ ( $(CD) $$($1_BASE_DIR) \
+ && $(TAR) cf - -$(TAR_INCLUDE_PARAM) $(SUPPORT_OUTPUTDIR)/bundles/_$1_files \
+ $(TAR_IGNORE_EXIT_VALUE) ) \
+ | ( $(CD) $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR) && $(TAR) xf - )
+ # Unzip any zipped debuginfo files
+ ifeq ($$($1_UNZIP_DEBUGINFO), true)
+ for f in `$(FIND) $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR) -name "*.diz"`; do \
+ $(CD) $$$${f%/*} && $(UNZIP) -q $$$${f} && $(RM) $$$${f}; \
+ done
+ endif
+ ifeq ($$($1_TYPE), tar.gz)
+ $(CD) $(SUPPORT_OUTPUTDIR)/bundles/$1 && \
+ ( $(TAR) cf - $$($1_SUBDIR) $(TAR_IGNORE_EXIT_VALUE) ) | $(GZIP) > $$@
+ else ifeq ($$($1_TYPE), zip)
+ $(CD) $(SUPPORT_OUTPUTDIR)/bundles/$1 && $(ZIP) -qr $$@ .
+ endif
+ endif
+ else
+ ifeq ($$($1_TYPE), tar.gz)
+ $(CD) $$($1_BASE_DIR) \
+ && ( $(TAR) cf - -$(TAR_INCLUDE_PARAM) $(SUPPORT_OUTPUTDIR)/bundles/_$1_files \
+ $(TAR_IGNORE_EXIT_VALUE) ) \
+ | $(GZIP) > $$@
+ else ifeq ($$($1_TYPE), zip)
+ $(CD) $$($1_BASE_DIR) \
+ && $(ZIP) -qr $$@ . -i@$(SUPPORT_OUTPUTDIR)/bundles/_$1_files
+ endif
+ endif
+
+ $1 += $(BUNDLES_OUTPUTDIR)/$$($1_BUNDLE_NAME)
+
+endef
+
+################################################################################
+
+# On Macosx, we bundle up the macosx specific images which already have the
+# correct base directories.
+ifeq ($(OPENJDK_TARGET_OS), macosx)
+ JDK_IMAGE_DIR := $(JDK_MACOSX_BUNDLE_DIR)
+ JRE_IMAGE_DIR := $(JRE_MACOSX_BUNDLE_DIR)
+ JDK_IMAGE_HOMEDIR := $(JDK_MACOSX_CONTENTS_DIR)/Home
+ JRE_IMAGE_HOMEDIR := $(JRE_MACOSX_CONTENTS_DIR)/Home
+ JDK_BUNDLE_SUBDIR :=
+ JRE_BUNDLE_SUBDIR :=
+else
+ JDK_IMAGE_HOMEDIR := $(JDK_IMAGE_DIR)
+ JRE_IMAGE_HOMEDIR := $(JRE_IMAGE_DIR)
+ JDK_BUNDLE_SUBDIR := jdk-$(VERSION_NUMBER)
+ JRE_BUNDLE_SUBDIR := jre-$(VERSION_NUMBER)
+ ifneq ($(DEBUG_LEVEL), release)
+ JDK_BUNDLE_SUBDIR := $(JDK_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
+ JRE_BUNDLE_SUBDIR := $(JRE_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
+ endif
+endif
+
+################################################################################
+
+ifneq ($(filter product-bundles, $(MAKECMDGOALS)), )
+ $(eval $(call FillCacheFind, $(IMAGES_OUTPUTDIR)))
+
+ SYMBOLS_EXCLUDE_PATTERN := %.debuginfo %.diz %.pdb %.map
+
+ ALL_JDK_FILES := $(call CacheFind, $(JDK_IMAGE_DIR))
+
+ # Create special filter rules when dealing with unzipped .dSYM directories on
+ # macosx
+ ifeq ($(OPENJDK_TARGET_OS), macosx)
+ ifeq ($(ZIP_DEBUGINFO_FILES), false)
+ JDK_SYMBOLS_EXCLUDE_PATTERN := $(addprefix %, \
+ $(call containing, .dSYM/, $(patsubst $(JDK_IMAGE_DIR)/%, %, $(ALL_JDK_FILES))))
+ endif
+ endif
+
+ JDK_BUNDLE_FILES := \
+ $(filter-out \
+ $(JDK_SYMBOLS_EXCLUDE_PATTERN) \
+ $(JDK_EXTRA_EXCLUDES) \
+ $(SYMBOLS_EXCLUDE_PATTERN) \
+ $(JDK_IMAGE_HOMEDIR)/demo/% $(JDK_IMAGE_HOMEDIR)/sample/% \
+ , \
+ $(ALL_JDK_FILES) \
+ )
+ DEMOS_BUNDLE_FILES := \
+ $(filter-out \
+ $(JDK_SYMBOLS_EXCLUDE_PATTERN) \
+ $(SYMBOLS_EXCLUDE_PATTERN) \
+ , \
+ $(filter \
+ $(JDK_IMAGE_HOMEDIR)/demo/% $(JDK_IMAGE_HOMEDIR)/sample/% \
+ $(JDK_IMAGE_HOMEDIR)/release \
+ , \
+ $(ALL_JDK_FILES) \
+ ) \
+ )
+ JDK_SYMBOLS_BUNDLE_FILES := \
+ $(filter \
+ $(JDK_SYMBOLS_EXCLUDE_PATTERN) \
+ $(SYMBOLS_EXCLUDE_PATTERN) \
+ , \
+ $(ALL_JDK_FILES) \
+ ) \
+ $(call CacheFind, $(SYMBOLS_IMAGE_DIR))
+
+ ALL_JRE_FILES := $(call CacheFind, $(JRE_IMAGE_DIR))
+
+ # Create special filter rules when dealing with unzipped .dSYM directories on
+ # macosx
+ ifeq ($(OPENJDK_TARGET_OS), macosx)
+ ifeq ($(ZIP_DEBUGINFO_FILES), false)
+ JRE_SYMBOLS_EXCLUDE_PATTERN := $(addprefix %, \
+ $(call containing, .dSYM/, $(patsubst $(JRE_IMAGE_DIR)/%, %, $(ALL_JRE_FILES))))
+ endif
+ endif
+
+ JRE_BUNDLE_FILES := $(filter-out \
+ $(JRE_SYMBOLS_EXCLUDE_PATTERN) \
+ $(SYMBOLS_EXCLUDE_PATTERN), \
+ $(ALL_JRE_FILES))
+ JRE_SYMBOLS_BUNDLE_FILES := $(filter \
+ $(JRE_SYMBOLS_EXCLUDE_PATTERN) \
+ $(SYMBOLS_EXCLUDE_PATTERN), \
+ $(ALL_JRE_FILES))
+
+ $(eval $(call SetupBundleFile, BUILD_JDK_BUNDLE, \
+ BUNDLE_NAME := $(JDK_BUNDLE_NAME), \
+ FILES := $(JDK_BUNDLE_FILES), \
+ SPECIAL_INCLUDES := $(JDK_SPECIAL_INCLUDES), \
+ BASE_DIR := $(JDK_IMAGE_DIR), \
+ SUBDIR := $(JDK_BUNDLE_SUBDIR), \
+ ))
+
+ PRODUCT_TARGETS += $(BUILD_JDK_BUNDLE)
+
+ $(eval $(call SetupBundleFile, BUILD_JRE_BUNDLE, \
+ BUNDLE_NAME := $(JRE_BUNDLE_NAME), \
+ FILES := $(JRE_BUNDLE_FILES), \
+ BASE_DIR := $(JRE_IMAGE_DIR), \
+ SUBDIR := $(JRE_BUNDLE_SUBDIR), \
+ ))
+
+ PRODUCT_TARGETS += $(BUILD_JRE_BUNDLE)
+
+ $(eval $(call SetupBundleFile, BUILD_JDK_SYMBOLS_BUNDLE, \
+ BUNDLE_NAME := $(JDK_SYMBOLS_BUNDLE_NAME), \
+ FILES := $(JDK_SYMBOLS_BUNDLE_FILES), \
+ BASE_DIR := $(JDK_IMAGE_DIR), \
+ SUBDIR := $(JDK_BUNDLE_SUBDIR), \
+ UNZIP_DEBUGINFO := true, \
+ ))
+
+ PRODUCT_TARGETS += $(BUILD_JDK_SYMBOLS_BUNDLE)
+
+ $(eval $(call SetupBundleFile, BUILD_JRE_SYMBOLS_BUNDLE, \
+ BUNDLE_NAME := $(JRE_SYMBOLS_BUNDLE_NAME), \
+ FILES := $(JRE_SYMBOLS_BUNDLE_FILES), \
+ BASE_DIR := $(JRE_IMAGE_DIR), \
+ SUBDIR := $(JRE_BUNDLE_SUBDIR), \
+ UNZIP_DEBUGINFO := true, \
+ ))
+
+ PRODUCT_TARGETS += $(BUILD_JRE_SYMBOLS_BUNDLE)
+
+ $(eval $(call SetupBundleFile, BUILD_DEMOS_BUNDLE, \
+ BUNDLE_NAME := $(DEMOS_BUNDLE_NAME), \
+ FILES := $(call DoubleDollar, $(DEMOS_BUNDLE_FILES)), \
+ BASE_DIR := $(JDK_IMAGE_DIR), \
+ SUBDIR := $(JDK_BUNDLE_SUBDIR), \
+ ))
+
+ PRODUCT_TARGETS += $(BUILD_DEMOS_BUNDLE)
+endif
+
+################################################################################
+
+ifneq ($(filter test-bundles, $(MAKECMDGOALS)), )
+ TEST_BUNDLE_FILES := $(call CacheFind, $(TEST_IMAGE_DIR))
+
+ $(eval $(call SetupBundleFile, BUILD_TEST_BUNDLE, \
+ BUNDLE_NAME := $(TEST_BUNDLE_NAME), \
+ FILES := $(call DoubleDollar, $(TEST_BUNDLE_FILES)), \
+ BASE_DIR := $(TEST_IMAGE_DIR), \
+ ))
+
+ TEST_TARGETS += $(BUILD_TEST_BUNDLE)
+endif
+
+################################################################################
+
+ifneq ($(filter docs-bundles, $(MAKECMDGOALS)), )
+ DOCS_BUNDLE_FILES := $(call CacheFind, $(DOCS_IMAGE_DIR))
+
+ $(eval $(call SetupBundleFile, BUILD_DOCS_BUNDLE, \
+ BUNDLE_NAME := $(DOCS_BUNDLE_NAME), \
+ FILES := $(DOCS_BUNDLE_FILES), \
+ BASE_DIR := $(DOCS_IMAGE_DIR), \
+ SUBDIR := docs, \
+ ))
+
+ DOCS_TARGETS += $(BUILD_DOCS_BUNDLE)
+endif
+
+################################################################################
+
+# Hook to include the corresponding custom file, if present.
+$(eval $(call IncludeCustomExtension, , Bundles.gmk))
+
+################################################################################
+
+product-bundles: $(PRODUCT_TARGETS)
+test-bundles: $(TEST_TARGETS)
+docs-bundles: $(DOCS_TARGETS)
+
+.PHONY: all default product-bundles test-bundles docs-bundles
--- a/make/Javadoc.gmk Tue May 17 18:18:18 2016 +0200
+++ b/make/Javadoc.gmk Wed May 04 15:29:01 2016 +0200
@@ -44,7 +44,7 @@
# Definitions for directories
#
-DOCSDIR := $(IMAGES_OUTPUTDIR)/docs
+DOCSDIR := $(DOCS_IMAGE_DIR)
DOCSTMPDIR = $(SUPPORT_OUTPUTDIR)/docs
HOTSPOT_DOCS_IMPORT_PATH=$(HOTSPOT_OUTPUTDIR)/docs
--- a/make/Jprt.gmk Tue May 17 18:18:18 2016 +0200
+++ b/make/Jprt.gmk Wed May 04 15:29:01 2016 +0200
@@ -32,14 +32,6 @@
ifdef JPRT_ARCHIVE_BUNDLE
override JPRT_ARCHIVE_BUNDLE := $(shell $(CYGPATH) -u $(JPRT_ARCHIVE_BUNDLE))
endif
- ifdef JPRT_ARCHIVE_INSTALL_BUNDLE
- override JPRT_ARCHIVE_INSTALL_BUNDLE := \
- $(shell $(CYGPATH) -u $(JPRT_ARCHIVE_INSTALL_BUNDLE))
- endif
- ifdef JPRT_ARCHIVE_MODULES_BUNDLE
- override JPRT_ARCHIVE_MODULES_BUNDLE := \
- $(shell $(CYGPATH) -u $(JPRT_ARCHIVE_MODULES_BUNDLE))
- endif
ifdef JPRT_ARCHIVE_TEST_BUNDLE
override JPRT_ARCHIVE_TEST_BUNDLE := \
$(shell $(CYGPATH) -u $(JPRT_ARCHIVE_TEST_BUNDLE))
@@ -55,12 +47,6 @@
ifndef JPRT_ARCHIVE_BUNDLE
JPRT_ARCHIVE_BUNDLE=/tmp/jprt_bundles/jdk-image.zip
endif
-ifndef JPRT_ARCHIVE_INSTALL_BUNDLE
- JPRT_ARCHIVE_INSTALL_BUNDLE=/tmp/jprt_bundles/product-install.zip
-endif
-ifndef JPRT_ARCHIVE_MODULES_BUNDLE
- JPRT_ARCHIVE_MODULES_BUNDLE=/tmp/jprt_bundles/modules.zip
-endif
ifndef JPRT_ARCHIVE_TEST_BUNDLE
JPRT_ARCHIVE_TEST_BUNDLE=/tmp/jprt_bundles/test-image.zip
endif
@@ -72,94 +58,51 @@
jprt_bundle: bootcycle-images
endif
-# This target must be called in the context of a SPEC file
-jprt_bundle: $(JPRT_ARCHIVE_BUNDLE) $(JPRT_ARCHIVE_TEST_BUNDLE) \
- $(JPRT_ARCHIVE_MODULES_BUNDLE)
-
-ifeq ($(GCOV_ENABLED), true)
- jprt_bundle: $(JPRT_ARCHIVE_SYMBOLS_BUNDLE)
-endif
+################################################################################
+# JPRT specific bundling targets
+JPRT_TARGET ?= $(DEFAULT_MAKE_TARGET)
+ifeq ($(JPRT_TARGET), $(DEFAULT_MAKE_TARGET))
+ jprt_bundle: $(DEFAULT_MAKE_TARGET) $(JPRT_ARCHIVE_BUNDLE) \
+ $(JPRT_ARCHIVE_TEST_BUNDLE)
-# This target must be called in the context of a SPEC file
-$(JPRT_ARCHIVE_BUNDLE): bundles
- $(MKDIR) -p $(@D)
- $(RM) $@
- $(CP) $(BUILD_OUTPUT)/bundles/$(JDK_IMAGE_SUBDIR).zip $@
+ SRC_JDK_IMAGE_DIR := $(JDK_IMAGE_DIR)
+ SRC_TEST_IMAGE_DIR := $(TEST_IMAGE_DIR)
-$(JPRT_ARCHIVE_MODULES_BUNDLE): bundles
- $(MKDIR) -p $(@D)
- $(RM) $@
- $(CP) $(BUILD_OUTPUT)/bundles/modules.zip $@
+ # This target must be called in the context of a SPEC file
+ $(JPRT_ARCHIVE_BUNDLE): product-images
+ $(call MakeDir, $(@D))
+ $(CD) $(SRC_JDK_IMAGE_DIR) && $(ZIP) -y -q -r $@ .
-$(JPRT_ARCHIVE_TEST_BUNDLE): bundles
- $(MKDIR) -p $(@D)
- $(RM) $@
- $(CP) $(BUILD_OUTPUT)/bundles/$(TEST_IMAGE_SUBDIR).zip $@
+ $(JPRT_ARCHIVE_TEST_BUNDLE): test-image
+ $(call MakeDir, $(@D))
+ $(CD) $(SRC_TEST_IMAGE_DIR) && $(ZIP) -y -q -r $@ .
-$(JPRT_ARCHIVE_SYMBOLS_BUNDLE): bundles
- $(MKDIR) -p $(@D)
- $(RM) $@
- $(CP) $(BUILD_OUTPUT)/bundles/$(SYMBOLS_IMAGE_SUBDIR).zip $@
+ ##############################################################################
+ # Optional symbols bundle
+ ifeq ($(GCOV_ENABLED), true)
+ jprt_bundle: $(JPRT_ARCHIVE_SYMBOLS_BUNDLE)
+ zip-bundles: $(SYMBOLS_ZIP_BUNDLE)
-SRC_JDK_IMAGE_DIR := $(JDK_IMAGE_DIR)
-SRC_JRE_IMAGE_DIR := $(JRE_IMAGE_DIR)
-SRC_TEST_IMAGE_DIR := $(TEST_IMAGE_DIR)
-SRC_JDK_MACOSX_BUNDLE_DIR := $(JDK_MACOSX_BUNDLE_DIR)
-SRC_JRE_MACOSX_BUNDLE_DIR := $(JRE_MACOSX_BUNDLE_DIR)
+ $(JPRT_ARCHIVE_SYMBOLS_BUNDLE): product-images
+ $(call MakeDir, $(@D))
+ $(CD) $(SYMBOLS_IMAGE_DIR) && $(ZIP) -y -q -r $@ .
+
+ endif
-# Bundle up the images
-JPRT_TARGET ?= default
-ifeq ($(JPRT_TARGET), default)
- bundles: $(JPRT_TARGET)
+ ##############################################################################
+
+else
+ # Just fake the main bundle to satisfy JPRT
+ jprt_bundle: $(JPRT_TARGET)
@$(call TargetEnter)
$(MKDIR) -p $(BUILD_OUTPUT)/bundles
- $(CD) $(SRC_JDK_IMAGE_DIR) && $(ZIP) -y -q -r \
- $(BUILD_OUTPUT)/bundles/$(JDK_IMAGE_SUBDIR).zip .
- $(CD) $(SRC_JRE_IMAGE_DIR) && $(ZIP) -y -q -r \
- $(BUILD_OUTPUT)/bundles/$(JRE_IMAGE_SUBDIR).zip .
- $(CD) $(SRC_TEST_IMAGE_DIR) && $(ZIP) -y -q -r \
- $(BUILD_OUTPUT)/bundles/$(TEST_IMAGE_SUBDIR).zip .
- $(CD) $(IMAGES_OUTPUTDIR)/jmods && $(ZIP) -y -q -r \
- $(BUILD_OUTPUT)/bundles/modules.zip .
- if [ -d $(BUILD_OUTPUT)/install/bundles ] ; then \
- $(CD) $(BUILD_OUTPUT)/install/bundles && $(ZIP) -y -q -r \
- $(JPRT_ARCHIVE_INSTALL_BUNDLE) . ; \
- fi
- if [ -d $(SYMBOLS_IMAGE_DIR) ] ; then \
- $(CD) $(SYMBOLS_IMAGE_DIR) && $(ZIP) -y -q -r \
- $(BUILD_OUTPUT)/bundles/$(SYMBOLS_IMAGE_SUBDIR).zip . ; \
- fi
- @$(call TargetExit)
-else
- # Just fake the bundles
- bundles: $(JPRT_TARGET)
- @$(call TargetEnter)
- $(MKDIR) -p $(BUILD_OUTPUT)/bundles
- $(CD) $(TOPDIR) && $(ZIP) -y -q -r \
- $(BUILD_OUTPUT)/bundles/$(JDK_IMAGE_SUBDIR).zip README
- $(CD) $(TOPDIR) && $(ZIP) -y -q -r \
- $(BUILD_OUTPUT)/bundles/$(JRE_IMAGE_SUBDIR).zip README
- $(CD) $(TOPDIR) && $(ZIP) -y -q -r \
- $(BUILD_OUTPUT)/bundles/$(TEST_IMAGE_SUBDIR).zip README
- $(CD) $(TOPDIR) && $(ZIP) -y -q -r \
- $(BUILD_OUTPUT)/bundles/modules.zip README
+ $(CD) $(TOPDIR) && $(TAR) cf - README | $(GZIP) > \
+ $(JPRT_ARCHIVE_BUNDLE)
@$(call TargetExit)
endif
-# Copy images to one unified location regardless of platform etc.
-final-images: $(JPRT_TARGET)
- @$(call TargetEnter)
- $(RM) -r $(BUILD_OUTPUT)/final-images
- $(MKDIR) -p $(BUILD_OUTPUT)/final-images/$(JDK_IMAGE_SUBDIR)
- $(MKDIR) -p $(BUILD_OUTPUT)/final-images/$(JRE_IMAGE_SUBDIR)
- $(CP) -R -P $(SRC_JDK_IMAGE_DIR)/* $(BUILD_OUTPUT)/final-images/$(JDK_IMAGE_SUBDIR)/
- $(CP) -R -P $(SRC_JRE_IMAGE_DIR)/* $(BUILD_OUTPUT)/final-images/$(JRE_IMAGE_SUBDIR)/
- ifeq ($(OPENJDK_TARGET_OS),macosx)
- $(MKDIR) -p $(BUILD_OUTPUT)/final-images/$(JDK_MACOSX_BUNDLE_SUBDIR)
- $(MKDIR) -p $(BUILD_OUTPUT)/final-images/$(JRE_MACOSX_BUNDLE_SUBDIR)
- $(CP) -R -P $(SRC_JDK_MACOSX_BUNDLE_DIR)/* $(BUILD_OUTPUT)/final-images/$(JDK_MACOSX_BUNDLE_SUBDIR)/
- $(CP) -R -P $(SRC_JRE_MACOSX_BUNDLE_DIR)/* $(BUILD_OUTPUT)/final-images/$(JRE_MACOSX_BUNDLE_SUBDIR)/
- endif
- @$(call TargetExit)
+ALL_TARGETS += jprt_bundle
-ALL_TARGETS += jprt_bundle bundles final-images
+################################################################################
+
+$(eval $(call IncludeCustomExtension, , Jprt.gmk))
--- a/make/MacBundles.gmk Tue May 17 18:18:18 2016 +0200
+++ b/make/MacBundles.gmk Wed May 04 15:29:01 2016 +0200
@@ -34,7 +34,7 @@
bundles: jre-bundle jdk-bundle
- # JDK_MACOSX_BUNDLE_DIR and JRE_MACOSX_BUNDLE_DIR are defined in SPEC.
+ # JDK_MACOSX_CONTENTS_DIR and JRE_MACOSX_CONTENTS_DIR are defined in SPEC.
MACOSX_PLIST_SRC := $(JDK_TOPDIR)/make/data/bundle
@@ -52,27 +52,27 @@
JDK_FILE_LIST := $(shell $(FIND) $(JDK_IMAGE_DIR))
JRE_FILE_LIST := $(shell $(FIND) $(JRE_IMAGE_DIR))
- JDK_TARGET_LIST := $(subst $(JDK_IMAGE_DIR)/,$(JDK_MACOSX_BUNDLE_DIR)/Home/,$(JDK_FILE_LIST))
- JRE_TARGET_LIST := $(subst $(JRE_IMAGE_DIR)/,$(JRE_MACOSX_BUNDLE_DIR)/Home/,$(JRE_FILE_LIST))
+ JDK_TARGET_LIST := $(subst $(JDK_IMAGE_DIR)/,$(JDK_MACOSX_CONTENTS_DIR)/Home/,$(JDK_FILE_LIST))
+ JRE_TARGET_LIST := $(subst $(JRE_IMAGE_DIR)/,$(JRE_MACOSX_CONTENTS_DIR)/Home/,$(JRE_FILE_LIST))
# Copy empty directories (jre/lib/applet).
- $(JDK_MACOSX_BUNDLE_DIR)/Home/%: $(JDK_IMAGE_DIR)/%
+ $(JDK_MACOSX_CONTENTS_DIR)/Home/%: $(JDK_IMAGE_DIR)/%
$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
$(MKDIR) -p $(@D)
if [ -d "$<" ]; then $(MKDIR) -p $@; else $(CP) -f -R -P '$<' '$@'; fi
- $(JRE_MACOSX_BUNDLE_DIR)/Home/%: $(JRE_IMAGE_DIR)/%
+ $(JRE_MACOSX_CONTENTS_DIR)/Home/%: $(JRE_IMAGE_DIR)/%
$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
$(MKDIR) -p $(@D)
if [ -d "$<" ]; then $(MKDIR) -p $@; else $(CP) -f -R -P '$<' '$@'; fi
- $(JDK_MACOSX_BUNDLE_DIR)/MacOS/libjli.dylib:
+ $(JDK_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib:
$(call LogInfo, Creating link $(patsubst $(OUTPUT_ROOT)/%,%,$@))
$(MKDIR) -p $(@D)
$(RM) $@
$(LN) -s ../Home/lib/jli/libjli.dylib $@
- $(JRE_MACOSX_BUNDLE_DIR)/MacOS/libjli.dylib:
+ $(JRE_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib:
$(call LogInfo, Creating link $(patsubst $(OUTPUT_ROOT)/%,%,$@))
$(MKDIR) -p $(@D)
$(RM) $@
@@ -80,7 +80,7 @@
$(eval $(call SetupTextFileProcessing, BUILD_JDK_PLIST, \
SOURCE_FILES := $(MACOSX_PLIST_SRC)/JDK-Info.plist, \
- OUTPUT_FILE := $(JDK_MACOSX_BUNDLE_DIR)/Info.plist, \
+ OUTPUT_FILE := $(JDK_MACOSX_CONTENTS_DIR)/Info.plist, \
REPLACEMENTS := \
@@ID@@ => $(BUNDLE_ID).jdk ; \
@@NAME@@ => $(BUNDLE_NAME) ; \
@@ -92,7 +92,7 @@
$(eval $(call SetupTextFileProcessing, BUILD_JRE_PLIST, \
SOURCE_FILES := $(MACOSX_PLIST_SRC)/JRE-Info.plist, \
- OUTPUT_FILE := $(JRE_MACOSX_BUNDLE_DIR)/Info.plist, \
+ OUTPUT_FILE := $(JRE_MACOSX_CONTENTS_DIR)/Info.plist, \
REPLACEMENTS := \
@@ID@@ => $(BUNDLE_ID).jre ; \
@@NAME@@ => $(BUNDLE_NAME) ; \
@@ -102,13 +102,13 @@
@@VENDOR@@ => $(BUNDLE_VENDOR) , \
))
- jdk-bundle: $(JDK_TARGET_LIST) $(JDK_MACOSX_BUNDLE_DIR)/MacOS/libjli.dylib \
+ jdk-bundle: $(JDK_TARGET_LIST) $(JDK_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib \
$(BUILD_JDK_PLIST)
- $(SETFILE) -a B $(dir $(JDK_MACOSX_BUNDLE_DIR))
+ $(SETFILE) -a B $(dir $(JDK_MACOSX_CONTENTS_DIR))
- jre-bundle: $(JRE_TARGET_LIST) $(JRE_MACOSX_BUNDLE_DIR)/MacOS/libjli.dylib \
+ jre-bundle: $(JRE_TARGET_LIST) $(JRE_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib \
$(BUILD_JRE_PLIST)
- $(SETFILE) -a B $(dir $(JRE_MACOSX_BUNDLE_DIR))
+ $(SETFILE) -a B $(dir $(JRE_MACOSX_CONTENTS_DIR))
else # Not macosx
--- a/make/Main.gmk Tue May 17 18:18:18 2016 +0200
+++ b/make/Main.gmk Wed May 04 15:29:01 2016 +0200
@@ -454,6 +454,20 @@
test-hotspot-internal test-jdk-jtreg-native test-make
################################################################################
+# Bundles
+
+product-bundles:
+ +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk product-bundles)
+
+test-bundles:
+ +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk test-bundles)
+
+docs-bundles:
+ +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk docs-bundles)
+
+ALL_TARGETS += product-bundles test-bundles docs-bundles
+
+################################################################################
# Install targets
install:
@@ -678,6 +692,12 @@
install: product-images
+ product-bundles: product-images
+
+ test-bundles: test-image
+
+ docs-bundles: docs-image
+
generate-summary: jmods
endif
@@ -758,12 +778,16 @@
test-image: prepare-test-image test-image-hotspot-jtreg-native \
test-image-jdk-jtreg-native test-image-failure-handler test-image-hotspot-gtest
-# all-images is the top-most target, it builds all our deliverables ("images").
+# all-images builds all our deliverables as images.
all-images: product-images test-image docs-image
+# all-bundles packages all our deliverables as tar.gz bundles.
+all-bundles: product-bundles test-bundles docs-bundles
+
ALL_TARGETS += buildtools gensrc gendata copy java rmic libs launchers jmods \
jdk.jdwp.agent-gensrc $(ALL_MODULES) demos samples exploded-image \
- create-buildjdk mac-bundles product-images docs-image test-image all-images
+ create-buildjdk mac-bundles product-images docs-image test-image all-images \
+ all-bundles
################################################################################
@@ -774,9 +798,10 @@
jdk: exploded-image
images: product-images
docs: docs-image
+bundles: all-bundles
all: all-images
-ALL_TARGETS += default jdk images docs all
+ALL_TARGETS += default jdk images docs bundles all
################################################################################
################################################################################
--- a/make/common/MakeBase.gmk Tue May 17 18:18:18 2016 +0200
+++ b/make/common/MakeBase.gmk Wed May 04 15:29:01 2016 +0200
@@ -145,7 +145,7 @@
$$(strip $2),$$(subst $$(SPACE),$$(NEWLINE),$$(strip $$($$(strip $1)))))
endef
-else # HAS_FILE_FUNCTION
+else # HAS_FILE_FUNCTION = false
$(eval compress_paths = \
$(strip $(shell $(CAT) $(SRC_ROOT)/make/common/support/ListPathsSafely-pre-compress.incl)))
@@ -172,8 +172,8 @@
# Param 2 - File to print to
# Param 3 - Set to true to append to file instead of overwriting
define ListPathsSafely
- ifneq (,$$(word 10001,$$($1)))
- $$(error Cannot list safely more than 10000 paths. $1 has $$(words $$($1)) paths!)
+ ifneq (,$$(word 30001,$$($$(strip $1))))
+ $$(error Cannot list safely more than 30000 paths. $1 has $$(words $$($$(strip $1))) paths!)
endif
$$(call MakeDir, $$(dir $2))
ifneq ($$(strip $3), true)
@@ -229,6 +229,106 @@
$$(call ListPathsSafely_IfPrintf,$1,$2,9251,9500)
$$(call ListPathsSafely_IfPrintf,$1,$2,9501,9750)
$$(call ListPathsSafely_IfPrintf,$1,$2,9751,10000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,10001,10250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,10251,10500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,10501,10750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,10751,11000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,11001,11250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,11251,11500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,11501,11750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,11751,12000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,12001,12250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,12251,12500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,12501,12750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,12751,13000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,13001,13250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,13251,13500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,13501,13750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,13751,14000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,14001,14250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,14251,14500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,14501,14750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,14751,15000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,15001,15250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,15251,15500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,15501,15750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,15751,16000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,16001,16250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,16251,16500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,16501,16750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,16751,17000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,17001,17250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,17251,17500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,17501,17750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,17751,18000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,18001,18250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,18251,18500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,18501,18750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,18751,19000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,19001,19250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,19251,19500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,19501,19750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,19751,20000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,20001,20250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,20251,20500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,20501,20750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,20751,21000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,21001,21250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,21251,21500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,21501,21750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,21751,22000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,22001,22250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,22251,22500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,22501,22750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,22751,23000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,23001,23250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,23251,23500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,23501,23750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,23751,24000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,24001,24250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,24251,24500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,24501,24750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,24751,25000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,25001,25250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,25251,25500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,25501,25750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,25751,26000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,26001,26250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,26251,26500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,26501,26750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,26751,27000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,27001,27250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,27251,27500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,27501,27750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,27751,28000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,28001,28250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,28251,28500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,28501,28750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,28751,29000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,29001,29250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,29251,29500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,29501,29750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,29751,30000)
endef
endif # HAS_FILE_FUNCTION
@@ -420,8 +520,12 @@
# set. Some files get their write permissions removed after being copied to the
# output dir. When these are copied again to images, xattr would fail. By only clearing
# attributes when they are present, failing on this is avoided.
+ #
+ # If copying a soft link to a directory, need to delete the target first to avoid
+ # weird errors.
define install-file
$(MKDIR) -p '$(@D)'
+ $(RM) '$@'
$(CP) -fRP '$<' '$@'
if [ -n "`$(XATTR) -l '$@'`" ]; then $(XATTR) -c '$@'; fi
endef