# HG changeset patch # User hseigel # Date 1431105808 14400 # Node ID 56cccb06d21c9a8034946345c4a3efbcb5e1f04b # Parent f74e62472ff3f6574a8222f434764f933d97d296# Parent 18a84ba736c81af139b5c501217aa61df0f02a07 Merge diff -r f74e62472ff3 -r 56cccb06d21c common/autoconf/basics_windows.m4 --- a/common/autoconf/basics_windows.m4 Sat May 02 18:35:36 2015 -0700 +++ b/common/autoconf/basics_windows.m4 Fri May 08 13:23:28 2015 -0400 @@ -320,8 +320,8 @@ WINDOWS_ENV_VENDOR='cygwin' WINDOWS_ENV_VERSION="$CYGWIN_VERSION" - CYGWIN_VERSION_OK=`$ECHO $CYGWIN_VERSION | $GREP ^1.7.` - if test "x$CYGWIN_VERSION_OK" = x; then + CYGWIN_VERSION_OLD=`$ECHO $CYGWIN_VERSION | $GREP -e '^1\.[0-6]'` + if test "x$CYGWIN_VERSION_OLD" != x; then AC_MSG_NOTICE([Your cygwin is too old. You are running $CYGWIN_VERSION, but at least cygwin 1.7 is required. Please upgrade.]) AC_MSG_ERROR([Cannot continue]) fi diff -r f74e62472ff3 -r 56cccb06d21c common/autoconf/boot-jdk.m4 --- a/common/autoconf/boot-jdk.m4 Sat May 02 18:35:36 2015 -0700 +++ b/common/autoconf/boot-jdk.m4 Fri May 08 13:23:28 2015 -0400 @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2015, 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 @@ -306,7 +306,6 @@ BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC, javac) BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAH, javah) BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR, jar) - BOOTJDK_CHECK_TOOL_IN_BOOTJDK(NATIVE2ASCII, native2ascii) BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JARSIGNER, jarsigner) # Finally, set some other options... diff -r f74e62472ff3 -r 56cccb06d21c common/autoconf/bootcycle-spec.gmk.in --- a/common/autoconf/bootcycle-spec.gmk.in Sat May 02 18:35:36 2015 -0700 +++ b/common/autoconf/bootcycle-spec.gmk.in Fri May 08 13:23:28 2015 -0400 @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2015, 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 @@ -57,6 +57,5 @@ JAVAC_CMD:=$(BOOT_JDK)/bin/javac JAVAH_CMD:=$(BOOT_JDK)/bin/javah JAR_CMD:=$(BOOT_JDK)/bin/jar -NATIVE2ASCII_CMD:=$(BOOT_JDK)/bin/native2ascii JARSIGNER_CMD:=$(BOOT_JDK)/bin/jarsigner SJAVAC_SERVER_JAVA_CMD:=$(JAVA_CMD) diff -r f74e62472ff3 -r 56cccb06d21c common/autoconf/flags.m4 --- a/common/autoconf/flags.m4 Sat May 02 18:35:36 2015 -0700 +++ b/common/autoconf/flags.m4 Fri May 08 13:23:28 2015 -0400 @@ -65,12 +65,6 @@ fi AC_SUBST(POST_STRIP_CMD) - if test "x$OPENJDK_TARGET_OS" = xsolaris; then - # FIXME: break out into MCSFLAGS - POST_MCS_CMD="$MCS -d -a \"JDK $FULL_VERSION\"" - fi - AC_SUBST(POST_MCS_CMD) - if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then CC_OUT_OPTION=-Fo EXE_OUT_OPTION=-out: diff -r f74e62472ff3 -r 56cccb06d21c common/autoconf/generated-configure.sh --- a/common/autoconf/generated-configure.sh Sat May 02 18:35:36 2015 -0700 +++ b/common/autoconf/generated-configure.sh Fri May 08 13:23:28 2015 -0400 @@ -737,7 +737,6 @@ LD_OUT_OPTION EXE_OUT_OPTION CC_OUT_OPTION -POST_MCS_CMD POST_STRIP_CMD ARFLAGS COMPILER_TARGET_BITS_FLAG @@ -759,7 +758,6 @@ OBJCOPY ac_ct_NM ac_ct_STRIP -MCS GNM NM STRIP @@ -820,7 +818,6 @@ JAVAC_FLAGS BOOT_JDK_SOURCETARGET JARSIGNER -NATIVE2ASCII JAR JAVAH JAVAC @@ -1189,7 +1186,6 @@ JAVAC JAVAH JAR -NATIVE2ASCII JARSIGNER CC CFLAGS @@ -1207,7 +1203,6 @@ STRIP NM GNM -MCS OBJCOPY OBJDUMP BUILD_CC @@ -2070,8 +2065,6 @@ JAVAC Override default value for JAVAC JAVAH Override default value for JAVAH JAR Override default value for JAR - NATIVE2ASCII - Override default value for NATIVE2ASCII JARSIGNER Override default value for JARSIGNER CC C compiler command CFLAGS C compiler flags @@ -2090,7 +2083,6 @@ STRIP Override default value for STRIP NM Override default value for NM GNM Override default value for GNM - MCS Override default value for MCS OBJCOPY Override default value for OBJCOPY OBJDUMP Override default value for OBJDUMP BUILD_CC Override default value for BUILD_CC @@ -3599,7 +3591,7 @@ # ... then the rest # -# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2015, 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 @@ -4367,7 +4359,7 @@ #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: -DATE_WHEN_GENERATED=1430331133 +DATE_WHEN_GENERATED=1430918902 ############################################################################### # @@ -14052,8 +14044,8 @@ WINDOWS_ENV_VENDOR='cygwin' WINDOWS_ENV_VERSION="$CYGWIN_VERSION" - CYGWIN_VERSION_OK=`$ECHO $CYGWIN_VERSION | $GREP ^1.7.` - if test "x$CYGWIN_VERSION_OK" = x; then + CYGWIN_VERSION_OLD=`$ECHO $CYGWIN_VERSION | $GREP -e '^1\.0-6'` + if test "x$CYGWIN_VERSION_OLD" != x; then { $as_echo "$as_me:${as_lineno-$LINENO}: Your cygwin is too old. You are running $CYGWIN_VERSION, but at least cygwin 1.7 is required. Please upgrade." >&5 $as_echo "$as_me: Your cygwin is too old. You are running $CYGWIN_VERSION, but at least cygwin 1.7 is required. Please upgrade." >&6;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -26059,133 +26051,6 @@ # Publish this variable in the help. - if test "x$NATIVE2ASCII" = x; then - # The variable is not set by user, try to locate tool using the code snippet - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for native2ascii in Boot JDK" >&5 -$as_echo_n "checking for native2ascii in Boot JDK... " >&6; } - NATIVE2ASCII=$BOOT_JDK/bin/native2ascii - if test ! -x $NATIVE2ASCII; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 -$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} - as_fn_error $? "Could not find native2ascii in the Boot JDK" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } - - - else - # The variable is set, but is it from the command line or the environment? - - # Try to remove the string !NATIVE2ASCII! from our list. - try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!NATIVE2ASCII!/} - 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 "xNATIVE2ASCII" != xBASH; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of NATIVE2ASCII from the environment. Use command line variables instead." >&5 -$as_echo "$as_me: WARNING: Ignoring value of NATIVE2ASCII from the environment. Use command line variables instead." >&2;} - fi - # Try to locate tool using the code snippet - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for native2ascii in Boot JDK" >&5 -$as_echo_n "checking for native2ascii in Boot JDK... " >&6; } - NATIVE2ASCII=$BOOT_JDK/bin/native2ascii - if test ! -x $NATIVE2ASCII; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 -$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} - as_fn_error $? "Could not find native2ascii in the Boot JDK" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } - - - 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 the provided tool contains a complete path. - tool_specified="$NATIVE2ASCII" - 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 NATIVE2ASCII=$tool_basename" >&5 -$as_echo "$as_me: Will search for user supplied tool NATIVE2ASCII=$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_NATIVE2ASCII+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $NATIVE2ASCII in - [\\/]* | ?:[\\/]*) - ac_cv_path_NATIVE2ASCII="$NATIVE2ASCII" # 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_NATIVE2ASCII="$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 -NATIVE2ASCII=$ac_cv_path_NATIVE2ASCII -if test -n "$NATIVE2ASCII"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NATIVE2ASCII" >&5 -$as_echo "$NATIVE2ASCII" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "x$NATIVE2ASCII" = 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 NATIVE2ASCII=$tool_specified" >&5 -$as_echo "$as_me: Will use user supplied tool NATIVE2ASCII=$tool_specified" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NATIVE2ASCII" >&5 -$as_echo_n "checking for NATIVE2ASCII... " >&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 NATIVE2ASCII=$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 - - - - # Use user overridden value if available, otherwise locate tool in the Boot JDK. - - # Publish this variable in the help. - - if test "x$JARSIGNER" = x; then # The variable is not set by user, try to locate tool using the code snippet @@ -28232,7 +28097,7 @@ # For solaris we really need solaris tools, and not the GNU equivalent. # The build tools on Solaris reside in /usr/ccs (C Compilation System), # so add that to path before starting to probe. - # FIXME: This was originally only done for AS,NM,GNM,STRIP,MCS,OBJCOPY,OBJDUMP. + # FIXME: This was originally only done for AS,NM,GNM,STRIP,OBJCOPY,OBJDUMP. if test "x$OPENJDK_BUILD_OS" = xsolaris; then PATH="/usr/ccs/bin:$PATH" fi @@ -36672,479 +36537,6 @@ fi fi - - - - # Publish this variable in the help. - - - if test "x$MCS" = x; then - # The variable is not set by user, try to locate tool using the code snippet - for ac_prog in mcs -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_MCS+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MCS in - [\\/]* | ?:[\\/]*) - ac_cv_path_MCS="$MCS" # 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_MCS="$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 -MCS=$ac_cv_path_MCS -if test -n "$MCS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MCS" >&5 -$as_echo "$MCS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$MCS" && break -done - - else - # The variable is set, but is it from the command line or the environment? - - # Try to remove the string !MCS! from our list. - try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!MCS!/} - 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 "xMCS" != xBASH; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of MCS from the environment. Use command line variables instead." >&5 -$as_echo "$as_me: WARNING: Ignoring value of MCS from the environment. Use command line variables instead." >&2;} - fi - # Try to locate tool using the code snippet - for ac_prog in mcs -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_MCS+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MCS in - [\\/]* | ?:[\\/]*) - ac_cv_path_MCS="$MCS" # 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_MCS="$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 -MCS=$ac_cv_path_MCS -if test -n "$MCS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MCS" >&5 -$as_echo "$MCS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$MCS" && 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 the provided tool contains a complete path. - tool_specified="$MCS" - 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 MCS=$tool_basename" >&5 -$as_echo "$as_me: Will search for user supplied tool MCS=$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_MCS+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MCS in - [\\/]* | ?:[\\/]*) - ac_cv_path_MCS="$MCS" # 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_MCS="$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 -MCS=$ac_cv_path_MCS -if test -n "$MCS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MCS" >&5 -$as_echo "$MCS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "x$MCS" = 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 MCS=$tool_specified" >&5 -$as_echo "$as_me: Will use user supplied tool MCS=$tool_specified" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCS" >&5 -$as_echo_n "checking for MCS... " >&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 MCS=$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 - - - - # Only process if variable expands to non-empty - - if test "x$MCS" != x; then - if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then - - # First separate the path from the arguments. This will split at the first - # space. - complete="$MCS" - path="${complete%% *}" - tmp="$complete EOL" - arguments="${tmp#* }" - - # Input might be given as Windows format, start by converting to - # unix format. - new_path=`$CYGPATH -u "$path"` - - # Now try to locate executable using which - new_path=`$WHICH "$new_path" 2> /dev/null` - # bat and cmd files are not always considered executable in cygwin causing which - # to not find them - if test "x$new_path" = x \ - && test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \ - && test "x`$LS \"$path\" 2>/dev/null`" != x; then - new_path=`$CYGPATH -u "$path"` - fi - if test "x$new_path" = x; then - # Oops. Which didn't find the executable. - # The splitting of arguments from the executable at a space might have been incorrect, - # since paths with space are more likely in Windows. Give it another try with the whole - # argument. - path="$complete" - arguments="EOL" - new_path=`$CYGPATH -u "$path"` - new_path=`$WHICH "$new_path" 2> /dev/null` - # bat and cmd files are not always considered executable in cygwin causing which - # to not find them - if test "x$new_path" = x \ - && test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \ - && test "x`$LS \"$path\" 2>/dev/null`" != x; then - new_path=`$CYGPATH -u "$path"` - fi - if test "x$new_path" = x; then - # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of MCS, which resolves as \"$complete\", is not found." >&5 -$as_echo "$as_me: The path of MCS, which resolves as \"$complete\", is not found." >&6;} - has_space=`$ECHO "$complete" | $GREP " "` - if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of MCS" "$LINENO" 5 - fi - fi - - # Cygwin tries to hide some aspects of the Windows file system, such that binaries are - # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered - # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then - # "foo.exe" is OK but "foo" is an error. - # - # This test is therefore slightly more accurate than "test -f" to check for file presence. - # It is also a way to make sure we got the proper file name for the real test later on. - test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null` - if test "x$test_shortpath" = x; then - # Short path failed, file does not exist as specified. - # Try adding .exe or .cmd - if test -f "${new_path}.exe"; then - input_to_shortpath="${new_path}.exe" - elif test -f "${new_path}.cmd"; then - input_to_shortpath="${new_path}.cmd" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of MCS, which resolves as \"$new_path\", is invalid." >&5 -$as_echo "$as_me: The path of MCS, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 -$as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of MCS" "$LINENO" 5 - fi - else - input_to_shortpath="$new_path" - fi - - # Call helper function which possibly converts this using DOS-style short mode. - # If so, the updated path is stored in $new_path. - new_path="$input_to_shortpath" - - input_path="$input_to_shortpath" - # Check if we need to convert this using DOS-style short mode. If the path - # contains just simple characters, use it. Otherwise (spaces, weird characters), - # take no chances and rewrite it. - # Note: m4 eats our [], so we need to use [ and ] instead. - has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]` - if test "x$has_forbidden_chars" != x; then - # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \) - shortmode_path=`$CYGPATH -s -m -a "$input_path"` - path_after_shortmode=`$CYGPATH -u "$shortmode_path"` - if test "x$path_after_shortmode" != "x$input_to_shortpath"; then - # Going to short mode and back again did indeed matter. Since short mode is - # case insensitive, let's make it lowercase to improve readability. - shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - # Now convert it back to Unix-style (cygpath) - input_path=`$CYGPATH -u "$shortmode_path"` - new_path="$input_path" - fi - fi - - test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/` - if test "x$test_cygdrive_prefix" = x; then - # As a simple fix, exclude /usr/bin since it's not a real path. - if test "x`$ECHO $input_to_shortpath | $GREP ^/usr/bin/`" = x; then - # The path is in a Cygwin special directory (e.g. /home). We need this converted to - # a path prefixed by /cygdrive for fixpath to work. - new_path="$CYGWIN_ROOT_PATH$input_path" - fi - fi - - # remove trailing .exe if any - new_path="${new_path/%.exe/}" - - elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then - - # First separate the path from the arguments. This will split at the first - # space. - complete="$MCS" - path="${complete%% *}" - tmp="$complete EOL" - arguments="${tmp#* }" - - # Input might be given as Windows format, start by converting to - # unix format. - new_path="$path" - - windows_path="$new_path" - if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then - unix_path=`$CYGPATH -u "$windows_path"` - new_path="$unix_path" - elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then - unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'` - new_path="$unix_path" - fi - - - # Now try to locate executable using which - new_path=`$WHICH "$new_path" 2> /dev/null` - - if test "x$new_path" = x; then - # Oops. Which didn't find the executable. - # The splitting of arguments from the executable at a space might have been incorrect, - # since paths with space are more likely in Windows. Give it another try with the whole - # argument. - path="$complete" - arguments="EOL" - new_path="$path" - - windows_path="$new_path" - if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then - unix_path=`$CYGPATH -u "$windows_path"` - new_path="$unix_path" - elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then - unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'` - new_path="$unix_path" - fi - - - new_path=`$WHICH "$new_path" 2> /dev/null` - # bat and cmd files are not always considered executable in MSYS causing which - # to not find them - if test "x$new_path" = x \ - && test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \ - && test "x`$LS \"$path\" 2>/dev/null`" != x; then - new_path="$path" - - windows_path="$new_path" - if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then - unix_path=`$CYGPATH -u "$windows_path"` - new_path="$unix_path" - elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then - unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'` - new_path="$unix_path" - fi - - fi - - if test "x$new_path" = x; then - # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of MCS, which resolves as \"$complete\", is not found." >&5 -$as_echo "$as_me: The path of MCS, which resolves as \"$complete\", is not found." >&6;} - has_space=`$ECHO "$complete" | $GREP " "` - if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of MCS" "$LINENO" 5 - fi - fi - - # Now new_path has a complete unix path to the binary - if test "x`$ECHO $new_path | $GREP ^/bin/`" != x; then - # Keep paths in /bin as-is, but remove trailing .exe if any - new_path="${new_path/%.exe/}" - # Do not save /bin paths to all_fixpath_prefixes! - else - # Not in mixed or Windows style, start by that. - new_path=`cmd //c echo $new_path` - - input_path="$new_path" - # Check if we need to convert this using DOS-style short mode. If the path - # contains just simple characters, use it. Otherwise (spaces, weird characters), - # take no chances and rewrite it. - # Note: m4 eats our [], so we need to use [ and ] instead. - has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]` - if test "x$has_forbidden_chars" != x; then - # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \) - new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - fi - - # Output is in $new_path - - windows_path="$new_path" - if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then - unix_path=`$CYGPATH -u "$windows_path"` - new_path="$unix_path" - elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then - unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'` - new_path="$unix_path" - fi - - # remove trailing .exe if any - new_path="${new_path/%.exe/}" - - # Save the first 10 bytes of this path to the storage, so fixpath can work. - all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}") - fi - - else - # We're on a unix platform. Hooray! :) - # First separate the path from the arguments. This will split at the first - # space. - complete="$MCS" - path="${complete%% *}" - tmp="$complete EOL" - arguments="${tmp#* }" - - # Cannot rely on the command "which" here since it doesn't always work. - is_absolute_path=`$ECHO "$path" | $GREP ^/` - if test -z "$is_absolute_path"; then - # Path to executable is not absolute. Find it. - IFS_save="$IFS" - IFS=: - for p in $PATH; do - if test -f "$p/$path" && test -x "$p/$path"; then - new_path="$p/$path" - break - fi - done - IFS="$IFS_save" - else - # This is an absolute path, we can use it without further modifications. - new_path="$path" - fi - - if test "x$new_path" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of MCS, which resolves as \"$complete\", is not found." >&5 -$as_echo "$as_me: The path of MCS, which resolves as \"$complete\", is not found." >&6;} - has_space=`$ECHO "$complete" | $GREP " "` - if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 -$as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of MCS" "$LINENO" 5 - fi - fi - - # Now join together the path and the arguments once again - if test "x$arguments" != xEOL; then - new_complete="$new_path ${arguments% *}" - else - new_complete="$new_path" - fi - - if test "x$complete" != "x$new_complete"; then - MCS="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting MCS to \"$new_complete\"" >&5 -$as_echo "$as_me: Rewriting MCS to \"$new_complete\"" >&6;} - fi - fi - elif test "x$OPENJDK_TARGET_OS" != xwindows; then # FIXME: we should unify this with the solaris case above. @@ -41632,12 +41024,6 @@ fi - if test "x$OPENJDK_TARGET_OS" = xsolaris; then - # FIXME: break out into MCSFLAGS - POST_MCS_CMD="$MCS -d -a \"JDK $FULL_VERSION\"" - fi - - if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then CC_OUT_OPTION=-Fo EXE_OUT_OPTION=-out: diff -r f74e62472ff3 -r 56cccb06d21c common/autoconf/spec.gmk.in --- a/common/autoconf/spec.gmk.in Sat May 02 18:35:36 2015 -0700 +++ b/common/autoconf/spec.gmk.in Fri May 08 13:23:28 2015 -0400 @@ -391,7 +391,6 @@ NM:=@NM@ GNM:=@GNM@ STRIP:=@STRIP@ -MCS:=@MCS@ LIPO:=@LIPO@ @@ -440,7 +439,6 @@ OBJ_SUFFIX:=@OBJ_SUFFIX@ POST_STRIP_CMD:=@POST_STRIP_CMD@ -POST_MCS_CMD:=@POST_MCS_CMD@ JAVA_FLAGS:=@JAVA_FLAGS@ JAVA_FLAGS_BIG:=@JAVA_FLAGS_BIG@ @@ -455,7 +453,6 @@ JAVAC_CMD:=@JAVAC@ JAVAH_CMD:=@JAVAH@ JAR_CMD:=@JAR@ -NATIVE2ASCII_CMD:=@NATIVE2ASCII@ JARSIGNER_CMD:=@JARSIGNER@ SJAVAC_SERVER_JAVA_CMD:=@SJAVAC_SERVER_JAVA@ # These variables are meant to be used. They are defined with = instead of := to make @@ -465,7 +462,6 @@ JAVAC=@FIXPATH@ $(JAVAC_CMD) JAVAH=@FIXPATH@ $(JAVAH_CMD) JAR=@FIXPATH@ $(JAR_CMD) -NATIVE2ASCII=@FIXPATH@ $(NATIVE2ASCII_CMD) $(JAVA_TOOL_FLAGS_SMALL) JARSIGNER=@FIXPATH@ $(JARSIGNER_CMD) # A specific java binary with specific options can be used to run # the long running background sjavac servers and other long running tasks. @@ -692,10 +688,10 @@ SYMBOLS_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(SYMBOLS_IMAGE_SUBDIR) # Macosx bundles directory definitions -JDK_BUNDLE_SUBDIR=jdk-bundle/jdk$(JDK_VERSION).jdk/Contents -JRE_BUNDLE_SUBDIR=jre-bundle/jre$(JDK_VERSION).jre/Contents -JDK_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_BUNDLE_SUBDIR) -JRE_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_BUNDLE_SUBDIR) +JDK_MACOSX_BUNDLE_SUBDIR=jdk-bundle/jdk$(JDK_VERSION).jdk/Contents +JRE_MACOSX_BUNDLE_SUBDIR=jre-bundle/jre$(JDK_VERSION).jre/Contents +JDK_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR) +JRE_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR) # This macro is called to allow inclusion of closed source counterparts. # Unless overridden in closed sources, it expands to nothing. diff -r f74e62472ff3 -r 56cccb06d21c common/autoconf/toolchain.m4 --- a/common/autoconf/toolchain.m4 Sat May 02 18:35:36 2015 -0700 +++ b/common/autoconf/toolchain.m4 Fri May 08 13:23:28 2015 -0400 @@ -210,7 +210,7 @@ # For solaris we really need solaris tools, and not the GNU equivalent. # The build tools on Solaris reside in /usr/ccs (C Compilation System), # so add that to path before starting to probe. - # FIXME: This was originally only done for AS,NM,GNM,STRIP,MCS,OBJCOPY,OBJDUMP. + # FIXME: This was originally only done for AS,NM,GNM,STRIP,OBJCOPY,OBJDUMP. if test "x$OPENJDK_BUILD_OS" = xsolaris; then PATH="/usr/ccs/bin:$PATH" fi @@ -569,9 +569,6 @@ BASIC_FIXUP_EXECUTABLE(NM) BASIC_PATH_PROGS(GNM, gnm) BASIC_FIXUP_EXECUTABLE(GNM) - - BASIC_PATH_PROGS(MCS, mcs) - BASIC_FIXUP_EXECUTABLE(MCS) elif test "x$OPENJDK_TARGET_OS" != xwindows; then # FIXME: we should unify this with the solaris case above. BASIC_CHECK_TOOLS(STRIP, strip) diff -r f74e62472ff3 -r 56cccb06d21c make/CompileJavaModules.gmk --- a/make/CompileJavaModules.gmk Sat May 02 18:35:36 2015 -0700 +++ b/make/CompileJavaModules.gmk Fri May 08 13:23:28 2015 -0400 @@ -53,17 +53,7 @@ java.base_EXCLUDE_FILES += sun/text/resources/BreakIteratorRules.java ifeq ($(OPENJDK_TARGET_OS), macosx) - JAVA_BASE_UNIX_DIR := $(JDK_TOPDIR)/src/java.base/unix/classes - # TODO: make JavaCompilation handle overrides automatically instead of excluding here - # These files are overridden in macosx - java.base_EXCLUDE_FILES += \ - $(JAVA_BASE_UNIX_DIR)/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java \ - $(JAVA_BASE_UNIX_DIR)/java/net/DefaultInterface.java \ - $(JAVA_BASE_UNIX_DIR)/java/lang/ClassLoaderHelper.java \ - $(JAVA_BASE_UNIX_DIR)/sun/nio/ch/DefaultSelectorProvider.java \ - # - # This is just skipped on macosx - java.base_EXCLUDE_FILES += $(JAVA_BASE_UNIX_DIR)/sun/nio/fs/GnomeFileTypeDetector.java + java.base_EXCLUDE_FILES += sun/nio/fs/GnomeFileTypeDetector.java endif ifneq ($(OPENJDK_TARGET_OS), solaris) @@ -247,13 +237,6 @@ javax/swing/plaf/nimbus/TabbedPanePainter.java \ # -ifeq ($(OPENJDK_TARGET_OS), macosx) - # These files are duplicated in MACOSX_SRC_DIRS - java.desktop_EXCLUDE_FILES += \ - $(JDK_TOPDIR)/src/java.desktop/unix/classes/sun/java2d/BackBufferCapsProvider.java \ - # -endif - ################################################################################ java.scripting_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*' @@ -418,7 +401,6 @@ endif ifeq ($(OPENJDK_TARGET_OS),aix) - # These files are duplicated in AIX_SRC_DIRS jdk.sctp_EXCLUDE_FILES += $(SCTP_IMPL_CLASSES) endif diff -r f74e62472ff3 -r 56cccb06d21c make/Images.gmk --- a/make/Images.gmk Sat May 02 18:35:36 2015 -0700 +++ b/make/Images.gmk Fri May 08 13:23:28 2015 -0400 @@ -254,30 +254,13 @@ $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) $(install-file) - define install-ja-manpage - $(MKDIR) -p $(@D) - $(CAT) $< \ - | $(NATIVE2ASCII) -encoding eucJP \ - | $(SED) 's/@@VERSION@@/$(THIS_JDK_VERSION)/g' \ - | $(NATIVE2ASCII) -reverse -encoding $1 \ - > $@ - endef - $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% - $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) - $(call install-ja-manpage, UTF-8) + $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) + $(install-file) $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% - $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) - $(call install-ja-manpage, UTF-8) - - $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% - $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) - $(call install-ja-manpage, PCK) - - $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% - $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) - $(call install-ja-manpage, PCK) + $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) + $(install-file) ifeq ($(OPENJDK_TARGET_OS), solaris) $(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% diff -r f74e62472ff3 -r 56cccb06d21c make/Jprt.gmk --- a/make/Jprt.gmk Sat May 02 18:35:36 2015 -0700 +++ b/make/Jprt.gmk Fri May 08 13:23:28 2015 -0400 @@ -1,5 +1,5 @@ # -# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2012, 2015, 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 @@ -91,8 +91,8 @@ SRC_JDK_IMAGE_DIR := $(JDK_IMAGE_DIR) SRC_JRE_IMAGE_DIR := $(JRE_IMAGE_DIR) SRC_TEST_IMAGE_DIR := $(TEST_IMAGE_DIR) -SRC_JDK_BUNDLE_DIR := $(JDK_BUNDLE_DIR) -SRC_JRE_BUNDLE_DIR := $(JRE_BUNDLE_DIR) +SRC_JDK_MACOSX_BUNDLE_DIR := $(JDK_MACOSX_BUNDLE_DIR) +SRC_JRE_MACOSX_BUNDLE_DIR := $(JRE_MACOSX_BUNDLE_DIR) # Bundle up the images bundles: all @@ -123,10 +123,10 @@ $(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_BUNDLE_SUBDIR) - $(MKDIR) -p $(BUILD_OUTPUT)/final-images/$(JRE_BUNDLE_SUBDIR) - $(CP) -R -P $(SRC_JDK_BUNDLE_DIR)/* $(BUILD_OUTPUT)/final-images/$(JDK_BUNDLE_SUBDIR)/ - $(CP) -R -P $(SRC_JRE_BUNDLE_DIR)/* $(BUILD_OUTPUT)/final-images/$(JRE_BUNDLE_SUBDIR)/ + $(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) diff -r f74e62472ff3 -r 56cccb06d21c make/MacBundles.gmk --- a/make/MacBundles.gmk Sat May 02 18:35:36 2015 -0700 +++ b/make/MacBundles.gmk Fri May 08 13:23:28 2015 -0400 @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2015, 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 @@ -33,32 +33,13 @@ bundles: jre-bundle jdk-bundle - # JDK_BUNDLE_DIR and JRE_BUNDLE_DIR are defined in SPEC. + # JDK_MACOSX_BUNDLE_DIR and JRE_MACOSX_BUNDLE_DIR are defined in SPEC. MACOSX_PLIST_SRC := $(JDK_TOPDIR)/make/data/bundle - # All these OPENJDK checks are needed since there is no coherency between - # these values in open and closed. Should probably be fixed. - ifndef OPENJDK - BUNDLE_ID := $(MACOSX_BUNDLE_ID_BASE).$(JDK_MINOR_VERSION)u$(JDK_UPDATE_VERSION) - else - BUNDLE_ID := $(MACOSX_BUNDLE_ID_BASE) - endif - BUNDLE_ID_JRE := $(BUNDLE_ID).jre - BUNDLE_ID_JDK := $(BUNDLE_ID).jdk - + BUNDLE_ID := $(MACOSX_BUNDLE_ID_BASE).$(JDK_MINOR_VERSION)u$(JDK_UPDATE_VERSION) BUNDLE_NAME := $(MACOSX_BUNDLE_NAME_BASE) $(JDK_MINOR_VERSION) - BUNDLE_NAME_JRE := $(BUNDLE_NAME) - BUNDLE_NAME_JDK := $(BUNDLE_NAME) - - ifndef OPENJDK - BUNDLE_INFO := $(MACOSX_BUNDLE_NAME_BASE) $(JDK_VERSION) - else - BUNDLE_INFO := $(MACOSX_BUNDLE_NAME_BASE) ($(JDK_VERSION)) - endif - BUNDLE_INFO_JRE := $(BUNDLE_INFO) - BUNDLE_INFO_JDK := $(BUNDLE_INFO) - + BUNDLE_INFO := $(MACOSX_BUNDLE_NAME_BASE) $(JDK_VERSION) BUNDLE_PLATFORM_VERSION := $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION) BUNDLE_VERSION := $(JDK_VERSION) ifeq ($(COMPANY_NAME), N/A) @@ -67,65 +48,66 @@ BUNDLE_VENDOR := $(COMPANY_NAME) endif - JDK_FILE_LIST := $(shell $(FIND) $(JDK_IMAGE_DIR)) JRE_FILE_LIST := $(shell $(FIND) $(JRE_IMAGE_DIR)) - JDK_TARGET_LIST := $(subst $(JDK_IMAGE_DIR)/,$(JDK_BUNDLE_DIR)/Home/,$(JDK_FILE_LIST)) - JRE_TARGET_LIST := $(subst $(JRE_IMAGE_DIR)/,$(JRE_BUNDLE_DIR)/Home/,$(JRE_FILE_LIST)) + 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)) # Copy empty directories (jre/lib/applet). - $(JDK_BUNDLE_DIR)/Home/%: $(JDK_IMAGE_DIR)/% + $(JDK_MACOSX_BUNDLE_DIR)/Home/%: $(JDK_IMAGE_DIR)/% $(ECHO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) $(MKDIR) -p $(@D) if [ -d "$<" ]; then $(MKDIR) -p $@; else $(CP) -f -R -P '$<' '$@'; fi - $(JRE_BUNDLE_DIR)/Home/%: $(JRE_IMAGE_DIR)/% + $(JRE_MACOSX_BUNDLE_DIR)/Home/%: $(JRE_IMAGE_DIR)/% $(ECHO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) $(MKDIR) -p $(@D) if [ -d "$<" ]; then $(MKDIR) -p $@; else $(CP) -f -R -P '$<' '$@'; fi - $(JDK_BUNDLE_DIR)/MacOS/libjli.dylib: + $(JDK_MACOSX_BUNDLE_DIR)/MacOS/libjli.dylib: $(ECHO) Creating link $(patsubst $(OUTPUT_ROOT)/%,%,$@) $(MKDIR) -p $(@D) $(RM) $@ $(LN) -s ../Home/lib/jli/libjli.dylib $@ - $(JRE_BUNDLE_DIR)/MacOS/libjli.dylib: + $(JRE_MACOSX_BUNDLE_DIR)/MacOS/libjli.dylib: $(ECHO) Creating link $(patsubst $(OUTPUT_ROOT)/%,%,$@) $(MKDIR) -p $(@D) $(RM) $@ $(LN) -s ../Home/lib/jli/libjli.dylib $@ - $(JDK_BUNDLE_DIR)/Info.plist: $(SPEC) - $(ECHO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) - $(MKDIR) -p $(@D) - $(SED) -e "s/@@ID@@/$(BUNDLE_ID_JDK)/g" \ - -e "s/@@NAME@@/$(BUNDLE_NAME_JDK)/g" \ - -e "s/@@INFO@@/$(BUNDLE_INFO_JDK)/g" \ - -e "s/@@PLATFORM_VERSION@@/$(BUNDLE_PLATFORM_VERSION)/g" \ - -e "s/@@VERSION@@/$(BUNDLE_VERSION)/g" \ - -e "s/@@VENDOR@@/$(BUNDLE_VENDOR)/g" \ - < $(MACOSX_PLIST_SRC)/JDK-Info.plist > $@ + $(eval $(call SetupTextFileProcessing, BUILD_JDK_PLIST, \ + SOURCE_FILES := $(MACOSX_PLIST_SRC)/JDK-Info.plist, \ + OUTPUT_FILE := $(JDK_MACOSX_BUNDLE_DIR)/Info.plist, \ + REPLACEMENTS := \ + @@ID@@ => $(BUNDLE_ID).jdk ; \ + @@NAME@@ => $(BUNDLE_NAME) ; \ + @@INFO@@ => $(BUNDLE_INFO) ; \ + @@PLATFORM_VERSION@@ => $(BUNDLE_PLATFORM_VERSION) ; \ + @@VERSION@@ => $(BUNDLE_VERSION) ; \ + @@VENDOR@@ => $(BUNDLE_VENDOR) , \ + )) - $(JRE_BUNDLE_DIR)/Info.plist: $(SPEC) - $(ECHO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) - $(MKDIR) -p $(@D) - $(SED) -e "s/@@ID@@/$(BUNDLE_ID_JRE)/g" \ - -e "s/@@NAME@@/$(BUNDLE_NAME_JRE)/g" \ - -e "s/@@INFO@@/$(BUNDLE_INFO_JRE)/g" \ - -e "s/@@PLATFORM_VERSION@@/$(BUNDLE_PLATFORM_VERSION)/g" \ - -e "s/@@VERSION@@/$(BUNDLE_VERSION)/g" \ - -e "s/@@VENDOR@@/$(BUNDLE_VENDOR)/g" \ - < $(MACOSX_PLIST_SRC)/JRE-Info.plist > $@ + $(eval $(call SetupTextFileProcessing, BUILD_JRE_PLIST, \ + SOURCE_FILES := $(MACOSX_PLIST_SRC)/JRE-Info.plist, \ + OUTPUT_FILE := $(JRE_MACOSX_BUNDLE_DIR)/Info.plist, \ + REPLACEMENTS := \ + @@ID@@ => $(BUNDLE_ID).jre ; \ + @@NAME@@ => $(BUNDLE_NAME) ; \ + @@INFO@@ => $(BUNDLE_INFO) ; \ + @@PLATFORM_VERSION@@ => $(BUNDLE_PLATFORM_VERSION) ; \ + @@VERSION@@ => $(BUNDLE_VERSION) ; \ + @@VENDOR@@ => $(BUNDLE_VENDOR) , \ + )) - jdk-bundle: $(JDK_TARGET_LIST) $(JDK_BUNDLE_DIR)/MacOS/libjli.dylib \ - $(JDK_BUNDLE_DIR)/Info.plist - $(SETFILE) -a B $(dir $(JDK_BUNDLE_DIR)) + jdk-bundle: $(JDK_TARGET_LIST) $(JDK_MACOSX_BUNDLE_DIR)/MacOS/libjli.dylib \ + $(BUILD_JDK_PLIST) + $(SETFILE) -a B $(dir $(JDK_MACOSX_BUNDLE_DIR)) - jre-bundle: $(JRE_TARGET_LIST) $(JRE_BUNDLE_DIR)/MacOS/libjli.dylib \ - $(JRE_BUNDLE_DIR)/Info.plist - $(SETFILE) -a B $(dir $(JRE_BUNDLE_DIR)) + jre-bundle: $(JRE_TARGET_LIST) $(JRE_MACOSX_BUNDLE_DIR)/MacOS/libjli.dylib \ + $(BUILD_JRE_PLIST) + $(SETFILE) -a B $(dir $(JRE_MACOSX_BUNDLE_DIR)) else # Not macosx diff -r f74e62472ff3 -r 56cccb06d21c make/StripBinaries.gmk --- a/make/StripBinaries.gmk Sat May 02 18:35:36 2015 -0700 +++ b/make/StripBinaries.gmk Fri May 08 13:23:28 2015 -0400 @@ -42,7 +42,6 @@ $(CP) $< $@.tmp $(CHMOD) u+w $@.tmp $(POST_STRIP_CMD) $@.tmp - $(if $(POST_MCS_CMD), $(POST_MCS_CMD) $@.tmp) $(CHMOD) go-w $@.tmp $(MV) $@.tmp $@ endef diff -r f74e62472ff3 -r 56cccb06d21c make/common/JavaCompilation.gmk --- a/make/common/JavaCompilation.gmk Sat May 02 18:35:36 2015 -0700 +++ b/make/common/JavaCompilation.gmk Fri May 08 13:23:28 2015 -0400 @@ -276,7 +276,7 @@ $$($1_GREP_EXCLUDE_OUTPUT) # If the vardeps file is part of the newer prereq list, it means that # either the jar file does not exist, or we need to recreate it from - # from scratch anyway since a simple update will not catch all the + # from scratch anyway since a simple update will not catch all the # potential changes. $$(if $$(filter $$($1_VARDEPS_FILE) $$($1_MANIFEST), $$?), \ $$(if $$($1_MANIFEST), \ @@ -321,8 +321,8 @@ $$(foreach i,$$($1_SRC),$$(eval $$(call remove_string,$$i,$2_TARGET))) # To allow for automatic overrides, do not create a rule for a target file that # already has one - ifeq ($$(findstring $$($2_TARGET), $$($1_COPY_LIST)), ) - $1_COPY_LIST += $$($2_TARGET) + ifneq ($$($1_COPY_$$($2_TARGET)), 1) + $1_COPY_$$($2_TARGET) := 1 # Now we can setup the depency that will trigger the copying. $$($1_BIN)$$($2_TARGET) : $2 $(MKDIR) -p $$(@D) @@ -365,7 +365,11 @@ # Remove the source prefix. $$(foreach i,$$($1_SRC),$$(eval $$(call remove_string,$$i,$2_TARGET))) # Now we can setup the depency that will trigger the copying. - $$($1_BIN)$$($2_TARGET) : $2 + # To allow for automatic overrides, do not create a rule for a target file that + # already has one + ifneq ($$($1_CLEAN_$$($2_TARGET)), 1) + $1_CLEAN_$$($2_TARGET) := 1 + $$($1_BIN)$$($1_MODULE_SUBDIR)$$($2_TARGET) : $2 $(MKDIR) -p $$(@D) export LC_ALL=C ; ( $(CAT) $$< && $(ECHO) "" ) \ | $(SED) -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' \ @@ -378,8 +382,9 @@ | $(SORT) > $$@ $(CHMOD) -f ug+w $$@ - # And do not forget this target - $1_ALL_COPY_CLEAN_TARGETS += $$($1_BIN)$$($2_TARGET) + # And do not forget this target + $1_ALL_COPY_CLEAN_TARGETS += $$($1_BIN)$$($2_TARGET) + endif endef define remove_string @@ -396,7 +401,8 @@ # SETUP:=must point to a previously setup java compiler, for example: SETUP:=BOOTJAVAC # JVM:=path to ..bin/java # ADD_JAVAC_FLAGS:=javac flags to append to the default ones. -# SRC:=one or more directories to search for sources +# SRC:=one or more directories to search for sources. The order of the source roots +# is significant. The first found file of a certain name has priority. # BIN:=store classes here # INCLUDES:=myapp.foo means will only compile java files in myapp.foo or any of its sub-packages. # EXCLUDES:=myapp.foo means will do not compile java files in myapp.foo or any of its sub-packages. @@ -432,7 +438,7 @@ # Handle addons and overrides. $1_SRC:=$$(call ADD_SRCS,$$($1_SRC)) # Make sure the dirs exist. - $$(foreach d,$$($1_SRC), $$(if $$(wildcard $$d),,$$(error SRC specified to SetupJavaCompilation $1 contains missing directory $$d))) + $$(foreach d,$$($1_SRC), $$(if $$(wildcard $$d),,$$(error SRC specified to SetupJavaCompilation $1 contains missing directory >$$d<))) $$(call MakeDir,$$($1_BIN)) # Add all source roots to the find cache since we are likely going to run find # on these more than once. The cache will only be updated if necessary. @@ -450,15 +456,6 @@ $1_SRCS := $$(filter $$($1_INCLUDE_FILES), $$($1_SRCS)) endif - # Now we have a list of all java files to compile: $$($1_SRCS) - - # Create the corresponding smart javac wrapper command line. - $1_SJAVAC_ARGS:=$$(addprefix -x ,$$(addsuffix /*,$$($1_EXCLUDES))) \ - $$(addprefix -i ,$$(addsuffix /*,$$($1_INCLUDES))) \ - $$(addprefix -xf *,$$(strip $$($1_EXCLUDE_FILES))) \ - $$(addprefix -if *,$$(strip $$($1_INCLUDE_FILES))) \ - -src "$$(subst $$(SPACE),$$(PATH_SEP),$$(strip $$($1_SRC)))" - # Prepend the source/bin path to the filter expressions. ifneq ($$($1_INCLUDES),) $1_SRC_INCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_INCLUDES)))) @@ -469,6 +466,25 @@ $1_SRCS := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_SRCS)) endif + # Remove duplicate source files by keeping the first found of each duplicate. + # This allows for automatic overrides with custom or platform specific versions + # source files. + # + # For the smart javac wrapper case, add each removed file to an extra exclude + # file list to prevent sjavac from finding duplicate sources. + $1_SRCS := $$(strip $$(foreach s, $$($1_SRCS), \ + $$(eval relative_src := $$(call remove-prefixes, $$($1_SRC), $$(s))) \ + $$(if $$($1_$$(relative_src)), \ + $$(eval $1_SJAVAC_EXCLUDE_FILES += $$(s)), \ + $$(eval $1_$$(relative_src) := 1) $$(s)))) + + # Create the corresponding smart javac wrapper command line. + $1_SJAVAC_ARGS:=$$(addprefix -x ,$$(addsuffix /*,$$($1_EXCLUDES))) \ + $$(addprefix -i ,$$(addsuffix /*,$$($1_INCLUDES))) \ + $$(addprefix -xf *,$$(strip $$($1_EXCLUDE_FILES) $$($1_SJAVAC_EXCLUDE_FILES))) \ + $$(addprefix -if *,$$(strip $$($1_INCLUDE_FILES))) \ + -src "$$(subst $$(SPACE),$$(PATH_SEP),$$(strip $$($1_SRC)))" + # All files below META-INF are always copied. $1_ALL_COPIES := $$(filter $$(addsuffix /META-INF%,$$($1_SRC)),$$($1_ALL_SRCS)) # Find all files to be copied from source to bin. diff -r f74e62472ff3 -r 56cccb06d21c make/common/MakeBase.gmk --- a/make/common/MakeBase.gmk Sat May 02 18:35:36 2015 -0700 +++ b/make/common/MakeBase.gmk Fri May 08 13:23:28 2015 -0400 @@ -45,6 +45,11 @@ # Functions ############################## +### Debug functions + +# Prints the name and value of a variable +PrintVar = \ + $(info $(strip $1) >$($(strip $1))<) ### Functions for timers @@ -558,6 +563,13 @@ $(and $(findstring $(strip $1),$(strip $2)),\ $(findstring $(strip $2),$(strip $1))) +# Remove a whole list of prefixes +# $1 - List of prefixes +# $2 - List of elements to process +remove-prefixes = \ + $(strip $(if $1,$(patsubst $(firstword $1)%,%,\ + $(call remove-prefixes,$(filter-out $(firstword $1),$1),$2)),$2)) + ################################################################################ ifneq ($(DISABLE_CACHE_FIND), true) diff -r f74e62472ff3 -r 56cccb06d21c make/common/Modules.gmk --- a/make/common/Modules.gmk Sat May 02 18:35:36 2015 -0700 +++ b/make/common/Modules.gmk Fri May 08 13:23:28 2015 -0400 @@ -43,7 +43,7 @@ # Find all modules with java sources by looking in the source dirs define FindJavaModules - $(filter-out $(JAVA_MODULES_FILTER), $(sort $(notdir \ + $(filter-out $(MODULES_FILTER), $(sort $(notdir \ $(patsubst %/,%, $(dir $(patsubst %/,%, $(dir $(patsubst %/,%, $(dir \ $(wildcard $(patsubst %,%/*/share/classes/*, $(ALL_TOP_SRC_DIRS)) \ $(patsubst %,%/*/$(OPENJDK_TARGET_OS)/classes/*, $(ALL_TOP_SRC_DIRS)) \ @@ -52,7 +52,8 @@ # Find all modules with source for the target platform. define FindAllModules - $(sort $(filter-out closed demo sample, $(notdir $(patsubst %/,%, $(dir \ + $(sort $(filter-out $(MODULES_FILTER) closed demo sample, \ + $(notdir $(patsubst %/,%, $(dir \ $(wildcard $(patsubst %, %/*/share, $(ALL_TOP_SRC_DIRS)) \ $(patsubst %, %/*/$(OPENJDK_TARGET_OS), $(ALL_TOP_SRC_DIRS)) \ $(patsubst %, %/*/$(OPENJDK_TARGET_OS_TYPE), $(ALL_TOP_SRC_DIRS)))))))) diff -r f74e62472ff3 -r 56cccb06d21c make/jprt.properties --- a/make/jprt.properties Sat May 02 18:35:36 2015 -0700 +++ b/make/jprt.properties Fri May 08 13:23:28 2015 -0400 @@ -428,15 +428,6 @@ windows_i586_6.2-*-default-hotspot_basicvmtest, \ windows_x64_6.2-*-default-hotspot_basicvmtest -my.make.rule.test.targets.hotspot.internalvmtests= \ - solaris_sparcv9_5.11-fastdebug-c2-hotspot_internalvmtests, \ - solaris_x64_5.11-fastdebug-c2-hotspot_internalvmtests, \ - linux_i586_2.6-fastdebug-c2-hotspot_internalvmtests, \ - linux_x64_2.6-fastdebug-c2-hotspot_internalvmtests, \ - macosx_x64_10.9-fastdebug-c2-hotspot_internalvmtests, \ - windows_i586_6.2-fastdebug-c2-hotspot_internalvmtests, \ - windows_x64_6.2-fastdebug-c2-hotspot_internalvmtests - my.make.rule.test.targets.hotspot.reg.group= \ solaris_sparcv9_5.11-fastdebug-c2-GROUP, \ solaris_x64_5.11-fastdebug-c2-GROUP, \ @@ -465,7 +456,6 @@ # Other Makefile based Hotspot tests my.make.rule.test.targets.hotspot.other= \ ${my.make.rule.test.targets.hotspot.basicvmtests}, \ - ${my.make.rule.test.targets.hotspot.internalvmtests}, \ ${my.additional.make.rule.test.targets.hotspot.other} # All the makefile based tests to run diff -r f74e62472ff3 -r 56cccb06d21c test/make/TestJavaCompilation.gmk --- a/test/make/TestJavaCompilation.gmk Sat May 02 18:35:36 2015 -0700 +++ b/test/make/TestJavaCompilation.gmk Fri May 08 13:23:28 2015 -0400 @@ -231,6 +231,117 @@ .PHONY: clean-jar3 create-jar3 update-jar3 ################################################################################ +# Test SetupJavaCompilation overrides of java files + +$(eval $(call SetupJavaCompiler,BOOT_JAVAC, \ + JAVAC := $(JAVAC), \ +)) + +JAVA_SRC_ROOT1 := $(OUTPUT_DIR)/javaroot1 +JAVA_SRC_ROOT2 := $(OUTPUT_DIR)/javaroot2 + +# Since this makefile calls itself a number of times, protect this macro from +# being executed more than once. +# Param 1 - File name +# Param 2 - Package name +# Param 3 - Class name +# Param 4 - Message +CreateJavaSrc = \ + $(if $(wildcard $1),,$(shell \ + $(MKDIR) -p $(dir $1); \ + $(ECHO) "package $2;" > $1; \ + $(ECHO) "public class $3 {" >> $1; \ + $(ECHO) " public static void main(String[] args) {" >> $1; \ + $(ECHO) " System.out.print(\"$4\");" >> $1; \ + $(ECHO) " }" >> $1; \ + $(ECHO) "}" >> $1; \ + )) + +# Since this makefile calls itself a number of times, protect this macro from +# being executed more than once. +# Param 1 - File name +# Param 2 - Message +CreateTextFile = \ + $(if $(wildcard $1),,$(shell \ + $(MKDIR) -p $(dir $1); \ + $(PRINTF) '$2' > $1; \ + )) + +$(call CreateJavaSrc,$(JAVA_SRC_ROOT1)/a/A.java,a,A,javaroot1) +$(call CreateJavaSrc,$(JAVA_SRC_ROOT2)/a/A.java,a,A,javaroot2) +$(call CreateTextFile,$(JAVA_SRC_ROOT1)/a/b.txt,javaroot1\n) +$(call CreateTextFile,$(JAVA_SRC_ROOT2)/a/b.txt,javaroot2\n) +$(call CreateTextFile,$(JAVA_SRC_ROOT1)/a/c.properties,#javaroot1\nname=value1\n) +$(call CreateTextFile,$(JAVA_SRC_ROOT2)/a/c.properties,#javaroot2\nname=value2\n) + +# Due to a bug in gnu make 3.81, need to add the src roots with trailing slash, +# otherwise $(wildcard ) will not find the directories and the sanity check in +# SetupJavaCompilation will fail. +$(eval $(call SetupJavaCompilation, BUILD_ROOT1_FIRST, \ + SETUP := BOOT_JAVAC, \ + SRC := $(JAVA_SRC_ROOT1)/ $(JAVA_SRC_ROOT2)/, \ + COPY := .txt .java, \ + CLEAN := .properties, \ + BIN := $(OUTPUT_DIR)/root1first/, \ +)) + +$(BUILD_ROOT1_FIRST): + +verify-root1-first: $(BUILD_ROOT1_FIRST) + $(JAVA_SMALL) -cp $(OUTPUT_DIR)/root1first a.A > $(OUTPUT_DIR)/root1first.output + if [ "`$(CAT) $(OUTPUT_DIR)/root1first.output`" != "javaroot1" ]; then \ + $(ECHO) "The wrong class was compiled. Expected >javaroot1<"; \ + $(ECHO) "Got >`$(CAT) $(OUTPUT_DIR)/root1first.output`<"; \ + false; \ + fi + if [ "`$(CAT) $(OUTPUT_DIR)/root1first/a/b.txt`" != "javaroot1" ]; then \ + $(ECHO) "The wrong file was copied. Expected >javaroot1<"; \ + $(ECHO) "Got >`$(CAT) $(OUTPUT_DIR)/root1first/a/b.txt`<"; \ + false; \ + fi + if [ ! -e "$(OUTPUT_DIR)/root1first/a/A.java" ]; then \ + $(ECHO) "Missed copying $(OUTPUT_DIR)/root1first/a/A.java"; \ + false; \ + fi + if [ "`$(CAT) $(OUTPUT_DIR)/root1first/a/c.properties`" != "name=value1" ]; then \ + $(ECHO) "The wrong file was cleaned. Expected >name=value1<"; \ + $(ECHO) "Got >`$(CAT) $(OUTPUT_DIR)/root1first/a/c.properties`<"; \ + false; \ + fi + +$(eval $(call SetupJavaCompilation, BUILD_ROOT2_FIRST, \ + SETUP := BOOT_JAVAC, \ + SRC := $(JAVA_SRC_ROOT2)/ $(JAVA_SRC_ROOT1)/, \ + COPY := .txt, \ + CLEAN := .properties, \ + BIN := $(OUTPUT_DIR)/root2first/, \ +)) + +$(BUILD_ROOT2_FIRST): + +verify-root2-first: $(BUILD_ROOT2_FIRST) + $(JAVA_SMALL) -cp $(OUTPUT_DIR)/root2first a.A > $(OUTPUT_DIR)/root2first.output + if [ "`$(CAT) $(OUTPUT_DIR)/root2first.output`" != "javaroot2" ]; then \ + $(ECHO) "The wrong class was compiled. Expected >javaroot2<"; \ + $(ECHO) "Got >`$(CAT) $(OUTPUT_DIR)/root2first.output`<"; \ + false; \ + fi + if [ "`$(CAT) $(OUTPUT_DIR)/root2first/a/b.txt`" != "javaroot2" ]; then \ + $(ECHO) "The wrong file was cleaned. Expected >javaroot2<"; \ + $(ECHO) "Got >`$(CAT) $(OUTPUT_DIR)/root2first/a/b.txt`<"; \ + false; \ + fi + if [ "`$(CAT) $(OUTPUT_DIR)/root2first/a/c.properties`" != "name=value2" ]; then \ + $(ECHO) "The wrong file was cleaned. Expected >name=value2<"; \ + $(ECHO) "Got >`$(CAT) $(OUTPUT_DIR)/root2first/a/c.properties`<"; \ + false; \ + fi + +TEST_TARGETS += verify-root1-first verify-root2-first + +.PHONY: verify-root1-first verify-root2-first + +################################################################################ all: $(TEST_TARGETS) diff -r f74e62472ff3 -r 56cccb06d21c test/make/TestMakeBase.gmk --- a/test/make/TestMakeBase.gmk Sat May 02 18:35:36 2015 -0700 +++ b/test/make/TestMakeBase.gmk Fri May 08 13:23:28 2015 -0400 @@ -33,6 +33,16 @@ $(SRC_ROOT)/make/common/MakeBase.gmk \ # +# Assert two strings are equal +# 1 - Tested value +# 2 - Exepected value +# 3 - Error message +define assert-equals + ifneq ($$(strip $1),$$(strip $2)) + $$(error $3 - Expected >$$(strip $2)< - Got >$$(strip $1)<) + endif +endef + # On macosx, file system timestamps only have 1 second resultion so must add # sleeps to properly test dependencies. ifeq ($(OPENJDK_BUILD_OS), macosx) @@ -77,6 +87,17 @@ endif ################################################################################ +# Test remove-prefixes + +$(eval $(call assert-equals, \ + $(call remove-prefixes, pre, prefix postfix), fix postfix, \ + Prefixes not properly removed)) + +$(eval $(call assert-equals, \ + $(call remove-prefixes, pre post, prefix postfix), fix fix, \ + Prefixes not properly removed)) + +################################################################################ # Test ShellQuote SHELL_QUOTE_VALUE := foo '""' "''" bar