common/autoconf/boot-jdk.m4
changeset 14111 2a82ecb35fc7
parent 13697 5262b00bc10c
child 20363 fa7663fc5d50
child 22460 0273c023680c
equal deleted inserted replaced
14104:8d9d430b4244 14111:2a82ecb35fc7
    60               AC_MSG_NOTICE([(Your Boot JDK must be version 7 or 8)])
    60               AC_MSG_NOTICE([(Your Boot JDK must be version 7 or 8)])
    61               BOOT_JDK_FOUND=no
    61               BOOT_JDK_FOUND=no
    62             else
    62             else
    63               # We're done! :-)
    63               # We're done! :-)
    64               BOOT_JDK_FOUND=yes
    64               BOOT_JDK_FOUND=yes
    65               SPACESAFE(BOOT_JDK,[the path to the Boot JDK])
    65               BASIC_FIXUP_PATH(BOOT_JDK)
    66               AC_MSG_CHECKING([for Boot JDK])
    66               AC_MSG_CHECKING([for Boot JDK])
    67               AC_MSG_RESULT([$BOOT_JDK ($BOOT_JDK_VERSION)])
    67               AC_MSG_RESULT([$BOOT_JDK])
       
    68               AC_MSG_CHECKING([Boot JDK version])
       
    69               BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' '  '`
       
    70               AC_MSG_RESULT([$BOOT_JDK_VERSION])
    68             fi # end check jdk version
    71             fi # end check jdk version
    69           fi # end check rt.jar
    72           fi # end check rt.jar
    70         fi # end check javac
    73         fi # end check javac
    71       fi # end check java
    74       fi # end check java
    72     fi # end check boot jdk found
    75     fi # end check boot jdk found
    91 
    94 
    92 # Test: Is $JAVA_HOME set?
    95 # Test: Is $JAVA_HOME set?
    93 AC_DEFUN([BOOTJDK_CHECK_JAVA_HOME],
    96 AC_DEFUN([BOOTJDK_CHECK_JAVA_HOME],
    94 [
    97 [
    95     if test "x$JAVA_HOME" != x; then
    98     if test "x$JAVA_HOME" != x; then
    96         if test "x$OPENJDK_TARGET_OS" = xwindows; then
    99         JAVA_HOME_PROCESSED="$JAVA_HOME"
    97           # On Windows, JAVA_HOME is likely in DOS-style
   100         BASIC_FIXUP_PATH(JAVA_HOME_PROCESSED)
    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
   101         if test ! -d "$JAVA_HOME_PROCESSED"; then
   103             AC_MSG_NOTICE([Your JAVA_HOME points to a non-existing directory!])
   102             AC_MSG_NOTICE([Your JAVA_HOME points to a non-existing directory!])
   104         else
   103         else
   105           # Aha, the user has set a JAVA_HOME
   104           # Aha, the user has set a JAVA_HOME
   106           # let us use that as the Boot JDK.
   105           # let us use that as the Boot JDK.
   123     if test "x$BINARY" != x; then
   122     if test "x$BINARY" != x; then
   124         # So there is a java(c) binary, it might be part of a JDK.
   123         # So there is a java(c) binary, it might be part of a JDK.
   125         # Lets find the JDK/JRE directory by following symbolic links.
   124         # Lets find the JDK/JRE directory by following symbolic links.
   126         # Linux/GNU systems often have links from /usr/bin/java to 
   125         # Linux/GNU systems often have links from /usr/bin/java to 
   127         # /etc/alternatives/java to the real JDK binary.
   126         # /etc/alternatives/java to the real JDK binary.
   128         SET_FULL_PATH_SPACESAFE(BINARY)
   127         BASIC_REMOVE_SYMBOLIC_LINKS(BINARY)
   129         REMOVE_SYMBOLIC_LINKS(BINARY)
       
   130         BOOT_JDK=`dirname "$BINARY"`
   128         BOOT_JDK=`dirname "$BINARY"`
   131         BOOT_JDK=`cd "$BOOT_JDK/.."; pwd`
   129         BOOT_JDK=`cd "$BOOT_JDK/.."; pwd`
   132         if test -x "$BOOT_JDK/bin/javac" && test -x "$BOOT_JDK/bin/java"; then
   130         if test -x "$BOOT_JDK/bin/javac" && test -x "$BOOT_JDK/bin/java"; then
   133             # Looks like we found ourselves an JDK
   131             # Looks like we found ourselves an JDK
   134             BOOT_JDK_FOUND=maybe
   132             BOOT_JDK_FOUND=maybe
   153 # $2 = String to append to the found JDK directory to get the proper JDK home
   151 # $2 = String to append to the found JDK directory to get the proper JDK home
   154 AC_DEFUN([BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY],
   152 AC_DEFUN([BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY],
   155 [
   153 [
   156   BOOT_JDK_PREFIX="$1"
   154   BOOT_JDK_PREFIX="$1"
   157   BOOT_JDK_SUFFIX="$2"
   155   BOOT_JDK_SUFFIX="$2"
   158   BEST_JDK_FOUND=`$LS "$BOOT_JDK_PREFIX" 2> /dev/null | $GREP jdk | $SORT -r | $HEAD -n 1 `
   156   ALL_JDKS_FOUND=`$LS "$BOOT_JDK_PREFIX" 2> /dev/null | $SORT -r`
   159   if test "x$BEST_JDK_FOUND" != x; then
   157   if test "x$ALL_JDKS_FOUND" != x; then
   160     BOOT_JDK="${BOOT_JDK_PREFIX}/${BEST_JDK_FOUND}${BOOT_JDK_SUFFIX}"
   158     for JDK_TO_TRY in $ALL_JDKS_FOUND ; do
   161     if test -d "$BOOT_JDK"; then
   159       BOOTJDK_DO_CHECK([
   162       BOOT_JDK_FOUND=maybe
   160         BOOT_JDK="${BOOT_JDK_PREFIX}/${JDK_TO_TRY}${BOOT_JDK_SUFFIX}"
   163       AC_MSG_NOTICE([Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX)])
   161         if test -d "$BOOT_JDK"; then
   164     fi
   162           BOOT_JDK_FOUND=maybe
       
   163           AC_MSG_NOTICE([Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)])
       
   164         fi
       
   165       ])
       
   166     done
   165   fi
   167   fi
   166 ])
   168 ])
   167 
   169 
   168 # Call BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY, but use the given
   170 # Call BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY, but use the given
   169 # environmental variable as base for where to look.
   171 # environmental variable as base for where to look.
   170 # $1 Name of an environmal variable, assumed to point to the Program Files directory.
   172 # $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],
   173 AC_DEFUN([BOOTJDK_FIND_BEST_JDK_IN_WINDOWS_VIRTUAL_DIRECTORY],
   172 [
   174 [
   173   if test "x[$]$1" != x; then
   175   if test "x[$]$1" != x; then
   174     BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY([`$CYGPATH -u "[$]$1"`/Java])
   176     VIRTUAL_DIR="[$]$1/Java"
       
   177     BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(VIRTUAL_DIR)
       
   178     BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY($VIRTUAL_DIR)
   175   fi
   179   fi
   176 ])
   180 ])
   177 
   181 
   178 # Test: Is there a JDK installed in default, well-known locations?
   182 # Test: Is there a JDK installed in default, well-known locations?
   179 AC_DEFUN([BOOTJDK_CHECK_WELL_KNOWN_LOCATIONS],
   183 AC_DEFUN([BOOTJDK_CHECK_WELL_KNOWN_LOCATIONS],
   185     BOOTJDK_DO_CHECK([BOOTJDK_FIND_BEST_JDK_IN_WINDOWS_VIRTUAL_DIRECTORY([ProgramFiles])])
   189     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])])
   190     BOOTJDK_DO_CHECK([BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY([/cygdrive/c/Program Files/Java])])
   187   elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
   191   elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
   188     BOOTJDK_DO_CHECK([BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY([/Library/Java/JavaVirtualMachines],[/Contents/Home])])
   192     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])])
   193     BOOTJDK_DO_CHECK([BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY([/System/Library/Java/JavaVirtualMachines],[/Contents/Home])])
       
   194   elif test "x$OPENJDK_TARGET_OS" = xlinux; then
       
   195     BOOTJDK_DO_CHECK([BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY([/usr/lib/jvm])])
   190   fi
   196   fi
   191 ])
   197 ])
   192 
   198 
   193 # Check that a command-line tool in the Boot JDK is correct
   199 # Check that a command-line tool in the Boot JDK is correct
   194 # $1 = name of variable to assign
   200 # $1 = name of variable to assign