common/autoconf/boot-jdk.m4
changeset 13697 5262b00bc10c
parent 13133 701e61c32ece
child 14111 2a82ecb35fc7
equal deleted inserted replaced
13694:ffe6bce5a521 13697:5262b00bc10c
    21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22 # or visit www.oracle.com if you need additional information or have any
    22 # or visit www.oracle.com if you need additional information or have any
    23 # questions.
    23 # questions.
    24 #
    24 #
    25 
    25 
    26 # Fixes paths on windows to be mixed mode short.
    26 # Execute the check given as argument, and verify the result
    27 AC_DEFUN([BOOTJDK_WIN_FIX_PATH],
    27 # If the Boot JDK was previously found, do nothing
    28 [
    28 # $1 A command line (typically autoconf macro) to execute
    29     if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
    29 AC_DEFUN([BOOTJDK_DO_CHECK],
    30         AC_PATH_PROG(CYGPATH, cygpath)
    30 [
    31         tmp="[$]$1"
    31   if test "x$BOOT_JDK_FOUND" = xno; then
    32         # Convert to C:/ mixed style path without spaces.
    32     # Now execute the test
    33         tmp=`$CYGPATH -s -m "$tmp"`
    33     $1
    34         $1="$tmp"
    34 
    35     fi
    35     # If previous step claimed to have found a JDK, check it to see if it seems to be valid.
    36 ])
    36     if test "x$BOOT_JDK_FOUND" = xmaybe; then
    37 
    37       # Do we have a bin/java?
    38 AC_DEFUN([BOOTJDK_MISSING_ERROR],
    38       if test ! -x "$BOOT_JDK/bin/java"; then
    39 [
    39         AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring])
    40     AC_MSG_NOTICE([This might be fixed by explicitely setting --with-boot-jdk])
    40         BOOT_JDK_FOUND=no
    41     AC_MSG_ERROR([Cannot continue])
    41       else
    42 ])
    42         # Do we have a bin/javac?
    43 
    43         if test ! -x "$BOOT_JDK/bin/javac"; then
    44 ###############################################################################
    44           AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring])
    45 #
    45           AC_MSG_NOTICE([(This might be an JRE instead of an JDK)])
    46 # We need a Boot JDK to bootstrap the build. 
    46           BOOT_JDK_FOUND=no
    47 #
    47         else 
    48 
    48           # Do we have an rt.jar? (On MacOSX it is called classes.jar)
    49 AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
    49           if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then
    50 [
    50             AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring])
    51 BOOT_JDK_FOUND=no
    51             BOOT_JDK_FOUND=no
    52 AC_ARG_WITH(boot-jdk, [AS_HELP_STRING([--with-boot-jdk],
    52           else
    53     [path to Boot JDK (used to bootstrap build) @<:@probed@:>@])])
    53             # Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
    54                     
    54             BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
       
    55 
       
    56             # Extra M4 quote needed to protect [] in grep expression.
       
    57             [FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep  '\"1\.[78]\.'`]
       
    58             if test "x$FOUND_VERSION_78" = x; then
       
    59               AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring])
       
    60               AC_MSG_NOTICE([(Your Boot JDK must be version 7 or 8)])
       
    61               BOOT_JDK_FOUND=no
       
    62             else
       
    63               # We're done! :-)
       
    64               BOOT_JDK_FOUND=yes
       
    65               SPACESAFE(BOOT_JDK,[the path to the Boot JDK])
       
    66               AC_MSG_CHECKING([for Boot JDK])
       
    67               AC_MSG_RESULT([$BOOT_JDK ($BOOT_JDK_VERSION)])
       
    68             fi # end check jdk version
       
    69           fi # end check rt.jar
       
    70         fi # end check javac
       
    71       fi # end check java
       
    72     fi # end check boot jdk found
       
    73   fi
       
    74 ])
       
    75 
       
    76 # Test: Is bootjdk explicitely set by command line arguments?
       
    77 AC_DEFUN([BOOTJDK_CHECK_ARGUMENTS],
       
    78 [
    55 if test "x$with_boot_jdk" != x; then
    79 if test "x$with_boot_jdk" != x; then
    56     BOOT_JDK=$with_boot_jdk
    80     BOOT_JDK=$with_boot_jdk
    57     BOOT_JDK_FOUND=yes
    81     BOOT_JDK_FOUND=maybe
    58 fi
    82     AC_MSG_NOTICE([Found potential Boot JDK using configure arguments])
    59 if test "x$BOOT_JDK_FOUND" = xno; then
    83 fi
    60     BDEPS_CHECK_MODULE(BOOT_JDK, boot-jdk, xxx, [BOOT_JDK_FOUND=yes], [BOOT_JDK_FOUND=no])
    84 ])
    61 fi
    85 
    62 
    86 # Test: Is bootjdk available from builddeps?
    63 if test "x$BOOT_JDK_FOUND" = xno; then
    87 AC_DEFUN([BOOTJDK_CHECK_BUILDDEPS],
       
    88 [
       
    89     BDEPS_CHECK_MODULE(BOOT_JDK, bootjdk, xxx, [BOOT_JDK_FOUND=maybe], [BOOT_JDK_FOUND=no])
       
    90 ])
       
    91 
       
    92 # Test: Is $JAVA_HOME set?
       
    93 AC_DEFUN([BOOTJDK_CHECK_JAVA_HOME],
       
    94 [
    64     if test "x$JAVA_HOME" != x; then
    95     if test "x$JAVA_HOME" != x; then
    65         if test ! -d "$JAVA_HOME"; then
    96         if test "x$OPENJDK_TARGET_OS" = xwindows; then
       
    97           # On Windows, JAVA_HOME is likely in DOS-style
       
    98           JAVA_HOME_PROCESSED="`$CYGPATH -u "$JAVA_HOME"`"
       
    99         else
       
   100           JAVA_HOME_PROCESSED="$JAVA_HOME"
       
   101         fi
       
   102         if test ! -d "$JAVA_HOME_PROCESSED"; then
    66             AC_MSG_NOTICE([Your JAVA_HOME points to a non-existing directory!])
   103             AC_MSG_NOTICE([Your JAVA_HOME points to a non-existing directory!])
    67             BOOTJDK_MISSING_ERROR
   104         else
       
   105           # Aha, the user has set a JAVA_HOME
       
   106           # let us use that as the Boot JDK.
       
   107           BOOT_JDK="$JAVA_HOME_PROCESSED"
       
   108           BOOT_JDK_FOUND=maybe
       
   109           AC_MSG_NOTICE([Found potential Boot JDK using JAVA_HOME])
    68         fi
   110         fi
    69         # Aha, the user has set a JAVA_HOME
   111     fi
    70         # let us use that as the Boot JDK.
   112 ])
    71         BOOT_JDK="$JAVA_HOME"
   113 
    72         BOOT_JDK_FOUND=yes
   114 # Test: Is there a java or javac in the PATH, which is a symlink to the JDK?
    73         # To be on the safe side, lets check that it is a JDK.
   115 AC_DEFUN([BOOTJDK_CHECK_JAVA_IN_PATH_IS_SYMLINK],
    74         if test -x "$BOOT_JDK/bin/javac" && test -x "$BOOT_JDK/bin/java"; then
   116 [
    75             JAVAC="$BOOT_JDK/bin/javac"
       
    76             JAVA="$BOOT_JDK/bin/java"
       
    77             BOOT_JDK_FOUND=yes
       
    78         else
       
    79             AC_MSG_NOTICE([Your JAVA_HOME points to a JRE! The build needs a JDK! Please point JAVA_HOME to a JDK. JAVA_HOME=[$]JAVA_HOME])
       
    80             BOOTJDK_MISSING_ERROR
       
    81         fi            
       
    82     fi
       
    83 fi
       
    84 
       
    85 if test "x$BOOT_JDK_FOUND" = xno; then
       
    86     AC_PATH_PROG(JAVAC_CHECK, javac)
   117     AC_PATH_PROG(JAVAC_CHECK, javac)
    87     AC_PATH_PROG(JAVA_CHECK, java)
   118     AC_PATH_PROG(JAVA_CHECK, java)
    88     BINARY="$JAVAC_CHECK"
   119     BINARY="$JAVAC_CHECK"
    89     if test "x$JAVAC_CHECK" = x; then
   120     if test "x$JAVAC_CHECK" = x; then
    90         BINARY="$JAVA_CHECK"
   121         BINARY="$JAVA_CHECK"
    92     if test "x$BINARY" != x; then
   123     if test "x$BINARY" != x; then
    93         # So there is a java(c) binary, it might be part of a JDK.
   124         # So there is a java(c) binary, it might be part of a JDK.
    94         # Lets find the JDK/JRE directory by following symbolic links.
   125         # Lets find the JDK/JRE directory by following symbolic links.
    95         # Linux/GNU systems often have links from /usr/bin/java to 
   126         # Linux/GNU systems often have links from /usr/bin/java to 
    96         # /etc/alternatives/java to the real JDK binary.
   127         # /etc/alternatives/java to the real JDK binary.
    97 	WHICHCMD_SPACESAFE(BINARY,[path to javac])
   128         SET_FULL_PATH_SPACESAFE(BINARY)
    98         REMOVE_SYMBOLIC_LINKS(BINARY)
   129         REMOVE_SYMBOLIC_LINKS(BINARY)
    99         BOOT_JDK=`dirname $BINARY`
   130         BOOT_JDK=`dirname "$BINARY"`
   100         BOOT_JDK=`cd $BOOT_JDK/..; pwd`
   131         BOOT_JDK=`cd "$BOOT_JDK/.."; pwd`
   101         if test -x $BOOT_JDK/bin/javac && test -x $BOOT_JDK/bin/java; then
   132         if test -x "$BOOT_JDK/bin/javac" && test -x "$BOOT_JDK/bin/java"; then
   102             JAVAC=$BOOT_JDK/bin/javac
   133             # Looks like we found ourselves an JDK
   103             JAVA=$BOOT_JDK/bin/java
   134             BOOT_JDK_FOUND=maybe
   104             BOOT_JDK_FOUND=yes
   135             AC_MSG_NOTICE([Found potential Boot JDK using java(c) in PATH])
   105         fi
   136         fi
   106     fi
   137     fi
   107 fi
   138 ])
   108 
   139 
   109 if test "x$BOOT_JDK_FOUND" = xno; then
   140 # Test: Is there a /usr/libexec/java_home? (Typically on MacOSX)
   110     # Try the MacOSX way.
   141 AC_DEFUN([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME],
       
   142 [
   111     if test -x /usr/libexec/java_home; then
   143     if test -x /usr/libexec/java_home; then
   112         BOOT_JDK=`/usr/libexec/java_home`
   144         BOOT_JDK=`/usr/libexec/java_home`
   113         if test -x $BOOT_JDK/bin/javac && test -x $BOOT_JDK/bin/java; then
   145         BOOT_JDK_FOUND=maybe
   114             JAVAC=$BOOT_JDK/bin/javac
   146         AC_MSG_NOTICE([Found potential Boot JDK using /usr/libexec/java_home])
   115             JAVA=$BOOT_JDK/bin/java
   147     fi
   116             BOOT_JDK_FOUND=yes
   148 ])
   117         fi
   149 
   118     fi
   150 # Look for a jdk in the given path. If there are multiple, try to select the newest.
   119 fi
   151 # If found, set BOOT_JDK and BOOT_JDK_FOUND.
   120 
   152 # $1 = Path to directory containing jdk installations.
       
   153 # $2 = String to append to the found JDK directory to get the proper JDK home
       
   154 AC_DEFUN([BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY],
       
   155 [
       
   156   BOOT_JDK_PREFIX="$1"
       
   157   BOOT_JDK_SUFFIX="$2"
       
   158   BEST_JDK_FOUND=`$LS "$BOOT_JDK_PREFIX" 2> /dev/null | $GREP jdk | $SORT -r | $HEAD -n 1 `
       
   159   if test "x$BEST_JDK_FOUND" != x; then
       
   160     BOOT_JDK="${BOOT_JDK_PREFIX}/${BEST_JDK_FOUND}${BOOT_JDK_SUFFIX}"
       
   161     if test -d "$BOOT_JDK"; then
       
   162       BOOT_JDK_FOUND=maybe
       
   163       AC_MSG_NOTICE([Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX)])
       
   164     fi
       
   165   fi
       
   166 ])
       
   167 
       
   168 # Call BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY, but use the given
       
   169 # environmental variable as base for where to look.
       
   170 # $1 Name of an environmal variable, assumed to point to the Program Files directory.
       
   171 AC_DEFUN([BOOTJDK_FIND_BEST_JDK_IN_WINDOWS_VIRTUAL_DIRECTORY],
       
   172 [
       
   173   if test "x[$]$1" != x; then
       
   174     BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY([`$CYGPATH -u "[$]$1"`/Java])
       
   175   fi
       
   176 ])
       
   177 
       
   178 # Test: Is there a JDK installed in default, well-known locations?
       
   179 AC_DEFUN([BOOTJDK_CHECK_WELL_KNOWN_LOCATIONS],
       
   180 [
       
   181   if test "x$OPENJDK_TARGET_OS" = xwindows; then
       
   182     BOOTJDK_DO_CHECK([BOOTJDK_FIND_BEST_JDK_IN_WINDOWS_VIRTUAL_DIRECTORY([ProgramW6432])])
       
   183     BOOTJDK_DO_CHECK([BOOTJDK_FIND_BEST_JDK_IN_WINDOWS_VIRTUAL_DIRECTORY([PROGRAMW6432])])
       
   184     BOOTJDK_DO_CHECK([BOOTJDK_FIND_BEST_JDK_IN_WINDOWS_VIRTUAL_DIRECTORY([PROGRAMFILES])])
       
   185     BOOTJDK_DO_CHECK([BOOTJDK_FIND_BEST_JDK_IN_WINDOWS_VIRTUAL_DIRECTORY([ProgramFiles])])
       
   186     BOOTJDK_DO_CHECK([BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY([/cygdrive/c/Program Files/Java])])
       
   187   elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
       
   188     BOOTJDK_DO_CHECK([BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY([/Library/Java/JavaVirtualMachines],[/Contents/Home])])
       
   189     BOOTJDK_DO_CHECK([BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY([/System/Library/Java/JavaVirtualMachines],[/Contents/Home])])
       
   190   fi
       
   191 ])
       
   192 
       
   193 # Check that a command-line tool in the Boot JDK is correct
       
   194 # $1 = name of variable to assign
       
   195 # $2 = name of binary
       
   196 AC_DEFUN([BOOTJDK_CHECK_TOOL_IN_BOOTJDK],
       
   197 [
       
   198   AC_MSG_CHECKING([for $2 in Boot JDK])
       
   199   $1=$BOOT_JDK/bin/$2
       
   200   if test ! -x [$]$1; then
       
   201       AC_MSG_RESULT(not found)
       
   202       AC_MSG_NOTICE([Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk])
       
   203       AC_MSG_ERROR([Could not find $2 in the Boot JDK])
       
   204   fi
       
   205   AC_MSG_RESULT(ok)
       
   206 ])
       
   207 
       
   208 ###############################################################################
       
   209 #
       
   210 # We need a Boot JDK to bootstrap the build. 
       
   211 #
       
   212 
       
   213 AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
       
   214 [
       
   215 BOOT_JDK_FOUND=no
       
   216 AC_ARG_WITH(boot-jdk, [AS_HELP_STRING([--with-boot-jdk],
       
   217     [path to Boot JDK (used to bootstrap build) @<:@probed@:>@])])
       
   218 
       
   219 # We look for the Boot JDK through various means, going from more certain to
       
   220 # more of a guess-work. After each test, BOOT_JDK_FOUND is set to "yes" if
       
   221 # we detected something (if so, the path to the jdk is in BOOT_JDK). But we 
       
   222 # must check if this is indeed valid; otherwise we'll continue looking.
       
   223 
       
   224 # Test: Is bootjdk explicitely set by command line arguments?
       
   225 BOOTJDK_DO_CHECK([BOOTJDK_CHECK_ARGUMENTS])
       
   226 if test "x$with_boot_jdk" != x && test "x$BOOT_JDK_FOUND" = xno; then
       
   227   # Having specified an argument which is incorrect will produce an instant failure;
       
   228   # we should not go on looking
       
   229   AC_MSG_ERROR([The path given by --with-boot-jdk does not contain a valid Boot JDK])
       
   230 fi
       
   231 
       
   232 # Test: Is bootjdk available from builddeps?
       
   233 BOOTJDK_DO_CHECK([BOOTJDK_CHECK_BUILDDEPS])
       
   234 
       
   235 # Test: Is $JAVA_HOME set?
       
   236 BOOTJDK_DO_CHECK([BOOTJDK_CHECK_JAVA_HOME])
       
   237 
       
   238 # Test: Is there a /usr/libexec/java_home? (Typically on MacOSX)
       
   239 BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME])
       
   240 
       
   241 # Test: Is there a java or javac in the PATH, which is a symlink to the JDK?
       
   242 BOOTJDK_DO_CHECK([BOOTJDK_CHECK_JAVA_IN_PATH_IS_SYMLINK])
       
   243 
       
   244 # Test: Is there a JDK installed in default, well-known locations?
       
   245 BOOTJDK_DO_CHECK([BOOTJDK_CHECK_WELL_KNOWN_LOCATIONS])
       
   246 
       
   247 # If we haven't found anything yet, we've truly lost. Give up.
   121 if test "x$BOOT_JDK_FOUND" = xno; then
   248 if test "x$BOOT_JDK_FOUND" = xno; then
   122     AC_PATH_PROG(JAVA_CHECK, java)
   249   HELP_MSG_MISSING_DEPENDENCY([openjdk])
   123     if test "x$JAVA_CHECK" != x; then
   250   AC_MSG_NOTICE([Could not find a valid Boot JDK. $HELP_MSG])
   124         # There is a java in the path. But apparently we have not found a javac 
   251   AC_MSG_NOTICE([This might be fixed by explicitely setting --with-boot-jdk])
   125         # in the path, since that would have been tested earlier.
   252   AC_MSG_ERROR([Cannot continue])
   126         if test "x$OPENJDK_TARGET_OS" = xwindows; then
   253 fi
   127             # Now if this is a windows platform. The default installation of a JDK
   254 
   128             # actually puts the JRE in the path and keeps the JDK out of the path!
   255 # Setup proper paths for what we found
   129             # Go look in the default installation location.
       
   130             BOOT_JDK=/cygdrive/c/Program\ Files/Java/`ls /cygdrive/c/Program\ Files/Java | grep jdk | sort -r | head --lines 1`
       
   131             if test -d "$BOOT_JDK"; then
       
   132                 BOOT_JDK_FOUND=yes
       
   133             fi
       
   134         fi
       
   135         if test "x$BOOT_JDK_FOUND" = xno; then
       
   136             HELP_MSG_MISSING_DEPENDENCY([openjdk])
       
   137             AC_MSG_NOTICE([Found a JRE, not not a JDK! Please remove the JRE from your path and put a JDK there instead. $HELP_MSG])
       
   138             BOOTJDK_MISSING_ERROR
       
   139         fi
       
   140     else
       
   141         HELP_MSG_MISSING_DEPENDENCY([openjdk])
       
   142         AC_MSG_NOTICE([Could not find a JDK. $HELP_MSG])
       
   143         BOOTJDK_MISSING_ERROR
       
   144     fi
       
   145 fi
       
   146 
       
   147 BOOTJDK_WIN_FIX_PATH(BOOT_JDK)
       
   148 
       
   149 # Now see if we can find the rt.jar, or its nearest equivalent.
       
   150 BOOT_RTJAR="$BOOT_JDK/jre/lib/rt.jar"
   256 BOOT_RTJAR="$BOOT_JDK/jre/lib/rt.jar"
   151 SPACESAFE(BOOT_RTJAR,[the path to the Boot JDK rt.jar (or nearest equivalent)])
   257 if test ! -f "$BOOT_RTJAR"; then
   152 
   258     # On MacOSX it is called classes.jar
       
   259     BOOT_RTJAR="$BOOT_JDK/../Classes/classes.jar"
       
   260     if test -f "$BOOT_RTJAR"; then
       
   261       # Remove the .. 
       
   262       BOOT_RTJAR="`cd ${BOOT_RTJAR%/*} && pwd`/${BOOT_RTJAR##*/}"
       
   263     fi
       
   264 fi
   153 BOOT_TOOLSJAR="$BOOT_JDK/lib/tools.jar"
   265 BOOT_TOOLSJAR="$BOOT_JDK/lib/tools.jar"
   154 SPACESAFE(BOOT_TOOLSJAR,[the path to the Boot JDK tools.jar (or nearest equivalent)])
   266 BOOT_JDK="$BOOT_JDK"
   155 
       
   156 if test ! -f $BOOT_RTJAR; then
       
   157     # On MacOSX it is called classes.jar
       
   158     BOOT_RTJAR=$BOOT_JDK/../Classes/classes.jar
       
   159     if test ! -f $BOOT_RTJAR; then
       
   160         AC_MSG_NOTICE([Cannot find the rt.jar or its equivalent!])
       
   161         AC_MSG_NOTICE([This typically means that configure failed to automatically find a suitable Boot JDK])
       
   162         BOOTJDK_MISSING_ERROR
       
   163     fi
       
   164     # Remove the .. 
       
   165     BOOT_RTJAR="`cd ${BOOT_RTJAR%/*} && pwd`/${BOOT_RTJAR##*/}"
       
   166     # The tools.jar is part of classes.jar
       
   167     BOOT_TOOLSJAR="$BOOT_RTJAR"
       
   168 fi
       
   169 
       
   170 AC_SUBST(BOOT_JDK)
       
   171 AC_SUBST(BOOT_RTJAR)
   267 AC_SUBST(BOOT_RTJAR)
   172 AC_SUBST(BOOT_TOOLSJAR)
   268 AC_SUBST(BOOT_TOOLSJAR)
   173 AC_MSG_CHECKING([for Boot JDK])
   269 AC_SUBST(BOOT_JDK)
   174 AC_MSG_RESULT([$BOOT_JDK])
   270 
   175 AC_MSG_CHECKING([for Boot rt.jar])
   271 # Setup tools from the Boot JDK.
   176 AC_MSG_RESULT([$BOOT_RTJAR])
   272 BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA,java)
   177 AC_MSG_CHECKING([for Boot tools.jar])
   273 BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC,javac)
   178 AC_MSG_RESULT([$BOOT_TOOLSJAR])
   274 BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAH,javah)
   179 
   275 BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAP,javap)
   180 # Use the java tool from the Boot JDK.
   276 BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR,jar)
   181 AC_MSG_CHECKING([for java in Boot JDK])
   277 BOOTJDK_CHECK_TOOL_IN_BOOTJDK(RMIC,rmic)
   182 JAVA=$BOOT_JDK/bin/java
   278 BOOTJDK_CHECK_TOOL_IN_BOOTJDK(NATIVE2ASCII,native2ascii)
   183 if test ! -x $JAVA; then
   279 
   184     AC_MSG_NOTICE([Could not find a working java])
   280 # Finally, set some other options...
   185     BOOTJDK_MISSING_ERROR
       
   186 fi
       
   187 BOOT_JDK_VERSION=`$JAVA -version 2>&1 | head -n 1`
       
   188 AC_MSG_RESULT([yes $BOOT_JDK_VERSION])
       
   189 AC_SUBST(JAVA)
       
   190 
       
   191 # Extra M4 quote needed to protect [] in grep expression.
       
   192 [FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep  '\"1\.[78]\.'`]
       
   193 if test "x$FOUND_VERSION_78" = x; then
       
   194     HELP_MSG_MISSING_DEPENDENCY([openjdk])
       
   195     AC_MSG_NOTICE([Your boot-jdk must be version 7 or 8. $HELP_MSG])
       
   196     BOOTJDK_MISSING_ERROR
       
   197 fi
       
   198 
   281 
   199 # When compiling code to be executed by the Boot JDK, force jdk7 compatibility.
   282 # When compiling code to be executed by the Boot JDK, force jdk7 compatibility.
   200 BOOT_JDK_SOURCETARGET="-source 7 -target 7"
   283 BOOT_JDK_SOURCETARGET="-source 7 -target 7"
   201 AC_SUBST(BOOT_JDK_SOURCETARGET)
   284 AC_SUBST(BOOT_JDK_SOURCETARGET)
   202 
       
   203 # Use the javac tool from the Boot JDK.
       
   204 AC_MSG_CHECKING([for javac in Boot JDK])
       
   205 JAVAC=$BOOT_JDK/bin/javac
       
   206 if test ! -x $JAVAC; then
       
   207     AC_MSG_ERROR([Could not find a working javac])
       
   208 fi
       
   209 AC_MSG_RESULT(yes)
       
   210 AC_SUBST(JAVAC)
       
   211 AC_SUBST(JAVAC_FLAGS)
   285 AC_SUBST(JAVAC_FLAGS)
   212 
       
   213 # Use the javah tool from the Boot JDK.
       
   214 AC_MSG_CHECKING([for javah in Boot JDK])
       
   215 JAVAH=$BOOT_JDK/bin/javah
       
   216 if test ! -x $JAVAH; then
       
   217     AC_MSG_NOTICE([Could not find a working javah])
       
   218     BOOTJDK_MISSING_ERROR
       
   219 fi
       
   220 AC_MSG_RESULT(yes)
       
   221 AC_SUBST(JAVAH)
       
   222 
       
   223 # Use the jar tool from the Boot JDK.
       
   224 AC_MSG_CHECKING([for jar in Boot JDK])
       
   225 JAR=$BOOT_JDK/bin/jar
       
   226 if test ! -x $JAR; then
       
   227     AC_MSG_NOTICE([Could not find a working jar])
       
   228     BOOTJDK_MISSING_ERROR
       
   229 fi
       
   230 AC_SUBST(JAR)
       
   231 AC_MSG_RESULT(yes)
       
   232 
       
   233 # Use the rmic tool from the Boot JDK.
       
   234 AC_MSG_CHECKING([for rmic in Boot JDK])
       
   235 RMIC=$BOOT_JDK/bin/rmic
       
   236 if test ! -x $RMIC; then
       
   237     AC_MSG_NOTICE([Could not find a working rmic])
       
   238     BOOTJDK_MISSING_ERROR
       
   239 fi
       
   240 AC_SUBST(RMIC)
       
   241 AC_MSG_RESULT(yes)
       
   242 
       
   243 # Use the native2ascii tool from the Boot JDK.
       
   244 AC_MSG_CHECKING([for native2ascii in Boot JDK])
       
   245 NATIVE2ASCII=$BOOT_JDK/bin/native2ascii
       
   246 if test ! -x $NATIVE2ASCII; then
       
   247     AC_MSG_NOTICE([Could not find a working native2ascii])
       
   248     BOOTJDK_MISSING_ERROR
       
   249 fi
       
   250 AC_MSG_RESULT(yes)
       
   251 AC_SUBST(NATIVE2ASCII)
       
   252 ])
   286 ])
   253 
   287 
   254 AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
   288 AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
   255 [
   289 [
   256 ##############################################################################
   290 ##############################################################################