changeset 2457:a597500577ef

Make JDK binary macros more idiot-proof. 2011-02-23 Andrew John Hughes <ahughes@redhat.com> * acinclude.m4: Make java, javah, rmic and jar macros more idiot-proof like the new native2ascii macro. (IT_FIND_JAVA): Improve output, check file exists and is executable and look for alternatives on the path if not. (IT_FIND_JAVAH): Likewise. (IT_FIND_JAR): Likewise. (IT_FIND_RMIC): Likewise. (IT_FIND_NATIVE2ASCII): Invert executable test for clarify.
author Andrew John Hughes <ahughes@redhat.com>
date Wed, 23 Feb 2011 18:38:54 +0000
parents 22d33e039c2f
children 5357369e2385
files ChangeLog acinclude.m4
diffstat 2 files changed, 112 insertions(+), 55 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Feb 23 18:22:42 2011 +0100
+++ b/ChangeLog	Wed Feb 23 18:38:54 2011 +0000
@@ -1,3 +1,17 @@
+2011-02-23  Andrew John Hughes  <ahughes@redhat.com>
+
+	* acinclude.m4:
+	Make java, javah, rmic and jar macros more
+	idiot-proof like the new native2ascii macro.
+	(IT_FIND_JAVA): Improve output, check file
+	exists and is executable and look for alternatives
+	on the path if not.
+	(IT_FIND_JAVAH): Likewise.
+	(IT_FIND_JAR): Likewise.
+	(IT_FIND_RMIC): Likewise.
+	(IT_FIND_NATIVE2ASCII): Invert executable test
+	for clarify.
+
 2011-02-23  Pavel Tisnovsky  <ptisnovs@redhat.com>
 
 	* Makefile.am: Renamed and moved patch.
--- a/acinclude.m4	Wed Feb 23 18:22:42 2011 +0100
+++ b/acinclude.m4	Wed Feb 23 18:38:54 2011 +0000
@@ -220,28 +220,41 @@
 
 AC_DEFUN([IT_FIND_JAVA],
 [
-  AC_MSG_CHECKING(for java)
+  JAVA_DEFAULT=${SYSTEM_JDK_DIR}/bin/java
+  AC_MSG_CHECKING([if a java binary was specified])
   AC_ARG_WITH([java],
               [AS_HELP_STRING(--with-java,specify location of the 1.5 java vm)],
   [
-    JAVA="${withval}"
+    if test "x${withval}" = "xyes"; then
+      JAVA=no
+    else
+      JAVA="${withval}"
+    fi
   ],
   [
-    JAVA=${SYSTEM_JDK_DIR}/bin/java
+    JAVA=no
   ])
-  if ! test -f "${JAVA}"; then
-    AC_PATH_PROG(JAVA, "${JAVA}")
-  fi
-  if test -z "${JAVA}"; then
-    AC_PATH_PROG(JAVA, "gij")
+  AC_MSG_RESULT(${JAVA})
+  if test "x${JAVA}" = "xno"; then
+    JAVA=${JAVA_DEFAULT}
   fi
-  if test -z "${JAVA}"; then
+  AC_MSG_CHECKING([if $JAVA is a valid executable])
+  if test -x "${JAVA}"; then
+    AC_MSG_RESULT([yes])
+  else
+    AC_MSG_RESULT([no])
+    JAVA=""
     AC_PATH_PROG(JAVA, "java")
+    if test -z "${JAVA}"; then
+      AC_PATH_PROG(JAVA, "gij")
+    fi
+    if test -z "${JAVA}"; then
+      AC_PATH_PROG(JAVA, "cacao")
+    fi
+    if test -z "${JAVA}"; then
+      AC_MSG_ERROR("A 1.5-compatible Java VM is required.")
+    fi
   fi
-  if test -z "${JAVA}"; then
-    AC_MSG_ERROR("A 1.5-compatible Java VM is required.")
-  fi
-  AC_MSG_RESULT(${JAVA})
   AC_SUBST(JAVA)
 ])
 
@@ -360,55 +373,75 @@
 
 AC_DEFUN([IT_FIND_JAVAH],
 [
-  AC_MSG_CHECKING([for javah])
+  JAVAH_DEFAULT=${SYSTEM_JDK_DIR}/bin/javah
+  AC_MSG_CHECKING([if a javah binary was specified])
   AC_ARG_WITH([javah],
               [AS_HELP_STRING(--with-javah,specify location of the Java header generator)],
   [
-    JAVAH="${withval}"
+    if test "x${withval}" = "xyes"; then
+      JAVAH=no
+    else
+      JAVAH="${withval}"
+    fi
   ],
   [
-    JAVAH=${SYSTEM_JDK_DIR}/bin/javah
+    JAVAH=no
   ])
-  if ! test -f "${JAVAH}"; then
-    AC_PATH_PROG(JAVAH, "${JAVAH}")
-  fi
-  if test -z "${JAVAH}"; then
-    AC_PATH_PROG(JAVAH, "gjavah")
+  AC_MSG_RESULT(${JAVAH})
+  if test "x${JAVAH}" = "xno"; then
+    JAVAH=${JAVAH_DEFAULT}
   fi
-  if test -z "${JAVAH}"; then
+  AC_MSG_CHECKING([if $JAVAH is a valid executable])
+  if test -x "${JAVAH}"; then
+    AC_MSG_RESULT([yes])
+  else
+    AC_MSG_RESULT([no])
+    JAVAH=""
     AC_PATH_PROG(JAVAH, "javah")
+    if test -z "${JAVAH}"; then
+      AC_PATH_PROG(JAVAH, "gjavah")
+    fi
+    if test -z "${JAVAH}"; then
+      AC_MSG_ERROR("A Java header generator was not found.")
+    fi
   fi
-  if test -z "${JAVAH}"; then
-    AC_MSG_ERROR("A Java header generator was not found.")
-  fi
-  AC_MSG_RESULT(${JAVAH})
   AC_SUBST(JAVAH)
 ])
 
 AC_DEFUN([IT_FIND_JAR],
 [
-  AC_MSG_CHECKING([for jar])
+  JAR_DEFAULT=${SYSTEM_JDK_DIR}/bin/jar
+  AC_MSG_CHECKING([if a jar binary was specified])
   AC_ARG_WITH([jar],
               [AS_HELP_STRING(--with-jar,specify location of Java archive tool (jar))],
   [
-    JAR="${withval}"
+    if test "x${withval}" = "xyes"; then
+      JAR=no
+    else
+      JAR="${withval}"
+    fi
   ],
   [
-    JAR=${SYSTEM_JDK_DIR}/bin/jar
+    JAR=no
   ])
-  if ! test -f "${JAR}"; then
-    AC_PATH_PROG(JAR, "${JAR}")
-  fi
-  if test -z "${JAR}"; then
-    AC_PATH_PROG(JAR, "gjar")
+  AC_MSG_RESULT(${JAR})
+  if test "x${JAR}" = "xno"; then
+    JAR=${JAR_DEFAULT}
   fi
-  if test -z "${JAR}"; then
+  AC_MSG_CHECKING([if $JAR is a valid executable])
+  if test -x "${JAR}"; then
+    AC_MSG_RESULT([yes])
+  else
+    AC_MSG_RESULT([no])
+    JAR=""
     AC_PATH_PROG(JAR, "jar")
+    if test -z "${JAR}"; then
+      AC_PATH_PROG(JAR, "gjar")
+    fi
+    if test -z "${JAR}"; then
+      AC_MSG_ERROR("No Java archive tool was found.")
+    fi
   fi
-  if test -z "${JAR}"; then
-    AC_MSG_ERROR("No Java archive tool was found.")
-  fi
-  AC_MSG_RESULT(${JAR})
   AC_MSG_CHECKING([whether jar supports @<file> argument])
   touch _config.txt
   cat >_config.list <<EOF
@@ -447,28 +480,38 @@
 
 AC_DEFUN([IT_FIND_RMIC],
 [
-  AC_MSG_CHECKING(for rmic)
+  RMIC_DEFAULT=${SYSTEM_JDK_DIR}/bin/rmic
+  AC_MSG_CHECKING([if a rmic binary was specified])
   AC_ARG_WITH([rmic],
               [AS_HELP_STRING(--with-rmic,specify location of the RMI compiler)],
   [
-    RMIC="${withval}"
+    if test "x${withval}" = "xyes"; then
+      RMIC=no
+    else
+      RMIC="${withval}"
+    fi
   ],
   [
-    RMIC=${SYSTEM_JDK_DIR}/bin/rmic
+    RMIC=no
   ])
-  if ! test -f "${RMIC}"; then
-    AC_PATH_PROG(RMIC, "${RMIC}")
-  fi
-  if test -z "${RMIC}"; then
-    AC_PATH_PROG(RMIC, "grmic")
+  AC_MSG_RESULT(${RMIC})
+  if test "x${RMIC}" = "xno"; then
+    RMIC=${RMIC_DEFAULT}
   fi
-  if test -z "${RMIC}"; then
+  AC_MSG_CHECKING([if $RMIC is a valid executable])
+  if test -x "${RMIC}"; then
+    AC_MSG_RESULT([yes])
+  else
+    AC_MSG_RESULT([no])
+    RMIC=""
     AC_PATH_PROG(RMIC, "rmic")
+    if test -z "${RMIC}"; then
+      AC_PATH_PROG(RMIC, "grmic")
+    fi
+    if test -z "${RMIC}"; then
+      AC_MSG_ERROR("An RMI compiler was not found.")
+    fi
   fi
-  if test -z "${RMIC}"; then
-    AC_MSG_ERROR("An RMI compiler was not found.")
-  fi
-  AC_MSG_RESULT(${RMIC})
   AC_SUBST(RMIC)
 ])
 
@@ -493,7 +536,9 @@
     NATIVE2ASCII=${NATIVE2ASCII_DEFAULT}
   fi
   AC_MSG_CHECKING([if $NATIVE2ASCII is a valid executable])
-  if ! test -x "${NATIVE2ASCII}"; then
+  if test -x "${NATIVE2ASCII}"; then
+    AC_MSG_RESULT([yes])
+  else
     AC_MSG_RESULT([no])
     NATIVE2ASCII=""
     AC_PATH_PROG(NATIVE2ASCII, "native2ascii")
@@ -503,8 +548,6 @@
     if test -z "${NATIVE2ASCII}"; then
       AC_MSG_ERROR("A native2ascii converter was not found.")
     fi
-  else
-    AC_MSG_RESULT([yes])
   fi
   AC_SUBST([NATIVE2ASCII])
 ])