1 |
dnl |
m4_include([m4/ac_check_class.m4]) |
2 |
dnl @synopsis AC_CHECK_CLASS |
m4_include([m4/ac_check_classpath.m4]) |
3 |
dnl |
m4_include([m4/ac_check_rqrd_class.m4]) |
4 |
dnl AC_CHECK_CLASS tests the existence of a given Java class, either in |
m4_include([m4/ac_java_options.m4]) |
5 |
dnl a jar or in a '.class' file. |
m4_include([m4/ac_prog_jar.m4]) |
6 |
dnl |
m4_include([m4/ac_prog_java.m4]) |
7 |
dnl *Warning*: its success or failure can depend on a proper setting of the |
m4_include([m4/ac_prog_java_works.m4]) |
8 |
dnl CLASSPATH env. variable. |
m4_include([m4/ac_prog_javac.m4]) |
9 |
dnl |
m4_include([m4/ac_prog_javac_works.m4]) |
10 |
dnl Note: This is part of the set of autoconf M4 macros for Java programs. |
m4_include([m4/ac_prog_javadoc.m4]) |
11 |
dnl It is VERY IMPORTANT that you download the whole set, some |
m4_include([m4/am_prog_gcj.m4]) |
12 |
dnl macros depend on other. Unfortunately, the autoconf archive does not |
m4_include([m4/inetlib_with_jsse.m4]) |
13 |
dnl support the concept of set of macros, so I had to break it for |
m4_include([m4/inetlib_with_sasl.m4]) |
14 |
dnl submission. |
m4_include([m4/inetlib_with_auth_callback.m4]) |
|
dnl The general documentation, as well as the sample configure.in, is |
|
|
dnl included in the AC_PROG_JAVA macro. |
|
|
dnl |
|
|
dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr> |
|
|
dnl @version $Id$ |
|
|
dnl |
|
|
AC_DEFUN(AC_CHECK_CLASS,[ |
|
|
AC_REQUIRE([AC_PROG_JAVA]) |
|
|
ac_var_name=`echo $1 | sed 's/\./_/g'` |
|
|
dnl Normaly I'd use a AC_CACHE_CHECK here but since the variable name is |
|
|
dnl dynamic I need an extra level of extraction |
|
|
AC_MSG_CHECKING([for class $1]) |
|
|
AC_CACHE_VAL(ac_cv_class_$ac_var_name, [ |
|
|
if test x$ac_cv_prog_uudecode_base64 = xyes; then |
|
|
dnl /** |
|
|
dnl * Test.java: used to test dynamicaly if a class exists. |
|
|
dnl */ |
|
|
dnl public class Test |
|
|
dnl { |
|
|
dnl |
|
|
dnl public static void |
|
|
dnl main( String[] argv ) |
|
|
dnl { |
|
|
dnl Class lib; |
|
|
dnl if (argv.length < 1) |
|
|
dnl { |
|
|
dnl System.err.println ("Missing argument"); |
|
|
dnl System.exit (77); |
|
|
dnl } |
|
|
dnl try |
|
|
dnl { |
|
|
dnl lib = Class.forName (argv[0]); |
|
|
dnl } |
|
|
dnl catch (ClassNotFoundException e) |
|
|
dnl { |
|
|
dnl System.exit (1); |
|
|
dnl } |
|
|
dnl lib = null; |
|
|
dnl System.exit (0); |
|
|
dnl } |
|
|
dnl |
|
|
dnl } |
|
|
cat << \EOF > Test.uue |
|
|
begin-base64 644 Test.class |
|
|
yv66vgADAC0AKQcAAgEABFRlc3QHAAQBABBqYXZhL2xhbmcvT2JqZWN0AQAE |
|
|
bWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAPTGluZU51 |
|
|
bWJlclRhYmxlDAAKAAsBAANlcnIBABVMamF2YS9pby9QcmludFN0cmVhbTsJ |
|
|
AA0ACQcADgEAEGphdmEvbGFuZy9TeXN0ZW0IABABABBNaXNzaW5nIGFyZ3Vt |
|
|
ZW50DAASABMBAAdwcmludGxuAQAVKExqYXZhL2xhbmcvU3RyaW5nOylWCgAV |
|
|
ABEHABYBABNqYXZhL2lvL1ByaW50U3RyZWFtDAAYABkBAARleGl0AQAEKEkp |
|
|
VgoADQAXDAAcAB0BAAdmb3JOYW1lAQAlKExqYXZhL2xhbmcvU3RyaW5nOylM |
|
|
amF2YS9sYW5nL0NsYXNzOwoAHwAbBwAgAQAPamF2YS9sYW5nL0NsYXNzBwAi |
|
|
AQAgamF2YS9sYW5nL0NsYXNzTm90Rm91bmRFeGNlcHRpb24BAAY8aW5pdD4B |
|
|
AAMoKVYMACMAJAoAAwAlAQAKU291cmNlRmlsZQEACVRlc3QuamF2YQAhAAEA |
|
|
AwAAAAAAAgAJAAUABgABAAcAAABtAAMAAwAAACkqvgSiABCyAAwSD7YAFBBN |
|
|
uAAaKgMyuAAeTKcACE0EuAAaAUwDuAAasQABABMAGgAdACEAAQAIAAAAKgAK |
|
|
AAAACgAAAAsABgANAA4ADgATABAAEwASAB4AFgAiABgAJAAZACgAGgABACMA |
|
|
JAABAAcAAAAhAAEAAQAAAAUqtwAmsQAAAAEACAAAAAoAAgAAAAQABAAEAAEA |
|
|
JwAAAAIAKA== |
|
|
==== |
|
|
EOF |
|
|
if uudecode$EXEEXT Test.uue; then |
|
|
: |
|
|
else |
|
|
echo "configure: __oline__: uudecode had trouble decoding base 64 file 'Test.uue'" >&AC_FD_CC |
|
|
echo "configure: failed file was:" >&AC_FD_CC |
|
|
cat Test.uue >&AC_FD_CC |
|
|
ac_cv_prog_uudecode_base64=no |
|
|
fi |
|
|
rm -f Test.uue |
|
|
if AC_TRY_COMMAND($JAVA -classpath ".:$CLASSPATH" $JAVAFLAGS Test $1) >/dev/null 2>&1; then |
|
|
eval "ac_cv_class_$ac_var_name=yes" |
|
|
else |
|
|
eval "ac_cv_class_$ac_var_name=no" |
|
|
fi |
|
|
rm -f Test.class |
|
|
else |
|
|
AC_TRY_COMPILE_JAVA([$1], , [eval "ac_cv_class_$ac_var_name=yes"], |
|
|
[eval "ac_cv_class_$ac_var_name=no"]) |
|
|
fi |
|
|
eval "ac_var_val=$`eval echo ac_cv_class_$ac_var_name`" |
|
|
eval "HAVE_$ac_var_name=$`echo ac_cv_class_$ac_var_val`" |
|
|
HAVE_LAST_CLASS=$ac_var_val |
|
|
if test x$ac_var_val = xyes; then |
|
|
ifelse([$2], , :, [$2]) |
|
|
else |
|
|
ifelse([$3], , :, [$3]) |
|
|
fi |
|
|
]) |
|
|
dnl for some reason the above statment didn't fall though here? |
|
|
dnl do scripts have variable scoping? |
|
|
eval "ac_var_val=$`eval echo ac_cv_class_$ac_var_name`" |
|
|
AC_MSG_RESULT($ac_var_val) |
|
|
]) |
|
|
dnl @synopsis AC_CHECK_CLASSPATH |
|
|
dnl |
|
|
dnl AC_CHECK_CLASSPATH just displays the CLASSPATH, for the edification |
|
|
dnl of the user. |
|
|
dnl |
|
|
dnl Note: This is part of the set of autoconf M4 macros for Java programs. |
|
|
dnl It is VERY IMPORTANT that you download the whole set, some |
|
|
dnl macros depend on other. Unfortunately, the autoconf archive does not |
|
|
dnl support the concept of set of macros, so I had to break it for |
|
|
dnl submission. |
|
|
dnl The general documentation, as well as the sample configure.in, is |
|
|
dnl included in the AC_PROG_JAVA macro. |
|
|
dnl |
|
|
dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr> |
|
|
dnl @version $Id$ |
|
|
dnl |
|
|
AC_DEFUN(AC_CHECK_CLASSPATH,[ |
|
|
if test "x$CLASSPATH" = x; then |
|
|
echo "You have no CLASSPATH, I hope it is good" |
|
|
else |
|
|
echo "You have CLASSPATH $CLASSPATH, hope it is correct" |
|
|
fi |
|
|
]) |
|
|
|
|
|
|
|
|
|
|
|
dnl @synopsis AC_CHECK_JUNIT |
|
|
dnl |
|
|
dnl AC_CHECK_JUNIT tests the availability of the Junit testing |
|
|
dnl framework, and set some variables for conditional compilation |
|
|
dnl of the test suite by automake. |
|
|
dnl |
|
|
dnl If available, JUNIT is set to a command launching the text |
|
|
dnl based user interface of Junit, @JAVA_JUNIT@ is set to $JAVA_JUNIT |
|
|
dnl and @TESTS_JUNIT@ is set to $TESTS_JUNIT, otherwise they are set |
|
|
dnl to empty values. |
|
|
dnl |
|
|
dnl You can use these variables in your Makefile.am file like this : |
|
|
dnl |
|
|
dnl # Some of the following classes are built only if junit is available |
|
|
dnl JAVA_JUNIT = Class1Test.java Class2Test.java AllJunitTests.java |
|
|
dnl |
|
|
dnl noinst_JAVA = Example1.java Example2.java @JAVA_JUNIT@ |
|
|
dnl |
|
|
dnl EXTRA_JAVA = $(JAVA_JUNIT) |
|
|
dnl |
|
|
dnl TESTS_JUNIT = AllJunitTests |
|
|
dnl |
|
|
dnl TESTS = StandaloneTest1 StandaloneTest2 @TESTS_JUNIT@ |
|
|
dnl |
|
|
dnl EXTRA_TESTS = $(TESTS_JUNIT) |
|
|
dnl |
|
|
dnl AllJunitTests : |
|
|
dnl echo "#! /bin/sh" > $@ |
|
|
dnl echo "exec @JUNIT@ my.package.name.AllJunitTests" >> $@ |
|
|
dnl chmod +x $@ |
|
|
dnl |
|
|
dnl @author Luc Maisonobe |
|
|
dnl @version $Id$ |
|
|
dnl |
|
|
AC_DEFUN([AC_CHECK_JUNIT],[ |
|
|
AC_CACHE_VAL(ac_cv_prog_JUNIT,[ |
|
|
AC_CHECK_CLASS(junit.textui.TestRunner) |
|
|
if test x"`eval 'echo $ac_cv_class_junit_textui_TestRunner'`" != xno ; then |
|
|
ac_cv_prog_JUNIT='$(CLASSPATH_ENV) $(JAVA) $(JAVAFLAGS) junit.textui.TestRunner' |
|
|
fi]) |
|
|
AC_MSG_CHECKING([for junit]) |
|
|
if test x"`eval 'echo $ac_cv_prog_JUNIT'`" != x ; then |
|
|
JUNIT="$ac_cv_prog_JUNIT" |
|
|
JAVA_JUNIT='$(JAVA_JUNIT)' |
|
|
TESTS_JUNIT='$(TESTS_JUNIT)' |
|
|
else |
|
|
JUNIT= |
|
|
JAVA_JUNIT= |
|
|
TESTS_JUNIT= |
|
|
fi |
|
|
AC_MSG_RESULT($JAVA_JUNIT) |
|
|
AC_SUBST(JUNIT) |
|
|
AC_SUBST(JAVA_JUNIT) |
|
|
AC_SUBST(TESTS_JUNIT)]) |
|
|
dnl @synopsis AC_CHECK_RQRD_CLASS |
|
|
dnl |
|
|
dnl AC_CHECK_RQRD_CLASS tests the existence of a given Java class, either in |
|
|
dnl a jar or in a '.class' file and fails if it doesn't exist. |
|
|
dnl Its success or failure can depend on a proper setting of the |
|
|
dnl CLASSPATH env. variable. |
|
|
dnl |
|
|
dnl Note: This is part of the set of autoconf M4 macros for Java programs. |
|
|
dnl It is VERY IMPORTANT that you download the whole set, some |
|
|
dnl macros depend on other. Unfortunately, the autoconf archive does not |
|
|
dnl support the concept of set of macros, so I had to break it for |
|
|
dnl submission. |
|
|
dnl The general documentation, as well as the sample configure.in, is |
|
|
dnl included in the AC_PROG_JAVA macro. |
|
|
dnl |
|
|
dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr> |
|
|
dnl @version $Id$ |
|
|
dnl |
|
|
|
|
|
AC_DEFUN(AC_CHECK_RQRD_CLASS,[ |
|
|
CLASS=`echo $1|sed 's/\./_/g'` |
|
|
AC_CHECK_CLASS($1) |
|
|
if test "$HAVE_LAST_CLASS" = "no"; then |
|
|
AC_MSG_ERROR([Required class $1 missing, exiting.]) |
|
|
fi |
|
|
]) |
|
|
dnl @synopsis AC_JAVA_OPTIONS |
|
|
dnl |
|
|
dnl AC_JAVA_OPTIONS adds configure command line options used for Java m4 |
|
|
dnl macros. This Macro is optional. |
|
|
dnl |
|
|
dnl Note: This is part of the set of autoconf M4 macros for Java programs. |
|
|
dnl It is VERY IMPORTANT that you download the whole set, some |
|
|
dnl macros depend on other. Unfortunately, the autoconf archive does not |
|
|
dnl support the concept of set of macros, so I had to break it for |
|
|
dnl submission. |
|
|
dnl The general documentation, as well as the sample configure.in, is |
|
|
dnl included in the AC_PROG_JAVA macro. |
|
|
dnl |
|
|
dnl @author Devin Weaver <ktohg@tritarget.com> |
|
|
dnl @version $Id$ |
|
|
dnl |
|
|
AC_DEFUN(AC_JAVA_OPTIONS,[ |
|
|
AC_ARG_WITH(java-prefix, |
|
|
[ --with-java-prefix=PREFIX prefix where Java runtime is installed (optional)], |
|
|
JAVAPREFIX="$withval") |
|
|
AC_ARG_WITH(javac-flags, |
|
|
[ --with-javac-flags=FLAGS flags to pass to the Java compiler (optional)], |
|
|
JAVACFLAGS="$withval") |
|
|
AC_ARG_WITH(java-flags, |
|
|
[ --with-java-flags=FLAGS flags to pass to the Java VM (optional)], |
|
|
JAVAFLAGS="$withval") |
|
|
AC_ARG_WITH(javac, |
|
|
[ --with-javac=Java compiler to use (optional)], |
|
|
JAVAC="$withval") |
|
|
AC_SUBST(JAVAPREFIX)dnl |
|
|
AC_SUBST(JAVACFLAGS)dnl |
|
|
AC_SUBST(JAVAFLAGS)dnl |
|
|
AC_SUBST(JAVA)dnl |
|
|
AC_SUBST(JAVAC)dnl |
|
|
]) |
|
|
dnl @synopsis AC_PROG_JAR |
|
|
dnl |
|
|
dnl AC_PROG_JAR tests for an existing jar program. It uses the environment |
|
|
dnl variable JAR then tests in sequence various common jar programs. |
|
|
dnl |
|
|
dnl If you want to force a specific compiler: |
|
|
dnl |
|
|
dnl - at the configure.in level, set JAR=yourcompiler before calling |
|
|
dnl AC_PROG_JAR |
|
|
dnl |
|
|
dnl - at the configure level, setenv JAR |
|
|
dnl |
|
|
dnl You can use the JAR variable in your Makefile.in, with @JAR@. |
|
|
dnl |
|
|
dnl Note: This macro depends on the autoconf M4 macros for Java programs. |
|
|
dnl It is VERY IMPORTANT that you download that whole set, some |
|
|
dnl macros depend on other. Unfortunately, the autoconf archive does not |
|
|
dnl support the concept of set of macros, so I had to break it for |
|
|
dnl submission. |
|
|
dnl |
|
|
dnl The general documentation of those macros, as well as the sample |
|
|
dnl configure.in, is included in the AC_PROG_JAVA macro. |
|
|
dnl |
|
|
dnl @author Egon Willighagen <egonw@sci.kun.nl> |
|
|
dnl @version $Id$ |
|
|
dnl |
|
|
AC_DEFUN([AC_PROG_JAR],[ |
|
|
AC_REQUIRE([AC_EXEEXT])dnl |
|
|
if test "x$JAVAPREFIX" = x; then |
|
|
test "x$JAR" = x && AC_CHECK_PROGS(JAR, jar$EXEEXT) |
|
|
else |
|
|
test "x$JAR" = x && AC_CHECK_PROGS(JAR, jar, $JAVAPREFIX) |
|
|
fi |
|
|
test "x$JAR" = x && AC_MSG_ERROR([no acceptable jar program found in \$PATH]) |
|
|
AC_PROVIDE([$0])dnl |
|
|
]) |
|
|
dnl @synopsis AC_PROG_JAVA |
|
|
dnl |
|
|
dnl Here is a summary of the main macros: |
|
|
dnl |
|
|
dnl AC_PROG_JAVAC: finds a Java compiler. |
|
|
dnl |
|
|
dnl AC_PROG_JAVA: finds a Java virtual machine. |
|
|
dnl |
|
|
dnl AC_CHECK_CLASS: finds if we have the given class (beware of CLASSPATH!). |
|
|
dnl |
|
|
dnl AC_CHECK_RQRD_CLASS: finds if we have the given class and stops otherwise. |
|
|
dnl |
|
|
dnl AC_TRY_COMPILE_JAVA: attempt to compile user given source. |
|
|
dnl |
|
|
dnl AC_TRY_RUN_JAVA: attempt to compile and run user given source. |
|
|
dnl |
|
|
dnl AC_JAVA_OPTIONS: adds Java configure options. |
|
|
dnl |
|
|
dnl AC_PROG_JAVA tests an existing Java virtual machine. It uses the |
|
|
dnl environment variable JAVA then tests in sequence various common Java |
|
|
dnl virtual machines. For political reasons, it starts with the free ones. |
|
|
dnl You *must* call [AC_PROG_JAVAC] before. |
|
|
dnl |
|
|
dnl If you want to force a specific VM: |
|
|
dnl |
|
|
dnl - at the configure.in level, set JAVA=yourvm before calling AC_PROG_JAVA |
|
|
dnl (but after AC_INIT) |
|
|
dnl |
|
|
dnl - at the configure level, setenv JAVA |
|
|
dnl |
|
|
dnl You can use the JAVA variable in your Makefile.in, with @JAVA@. |
|
|
dnl |
|
|
dnl *Warning*: its success or failure can depend on a proper setting of the |
|
|
dnl CLASSPATH env. variable. |
|
|
dnl |
|
|
dnl TODO: allow to exclude virtual machines (rationale: most Java programs |
|
|
dnl cannot run with some VM like kaffe). |
|
|
dnl |
|
|
dnl Note: This is part of the set of autoconf M4 macros for Java programs. |
|
|
dnl It is VERY IMPORTANT that you download the whole set, some |
|
|
dnl macros depend on other. Unfortunately, the autoconf archive does not |
|
|
dnl support the concept of set of macros, so I had to break it for |
|
|
dnl submission. |
|
|
dnl |
|
|
dnl A Web page, with a link to the latest CVS snapshot is at |
|
|
dnl <http://www.internatif.org/bortzmeyer/autoconf-Java/>. |
|
|
dnl |
|
|
dnl This is a sample configure.in |
|
|
dnl Process this file with autoconf to produce a configure script. |
|
|
dnl |
|
|
dnl AC_INIT(UnTag.java) |
|
|
dnl |
|
|
dnl dnl Checks for programs. |
|
|
dnl AC_CHECK_CLASSPATH |
|
|
dnl AC_PROG_JAVAC |
|
|
dnl AC_PROG_JAVA |
|
|
dnl |
|
|
dnl dnl Checks for classes |
|
|
dnl AC_CHECK_RQRD_CLASS(org.xml.sax.Parser) |
|
|
dnl AC_CHECK_RQRD_CLASS(com.jclark.xml.sax.Driver) |
|
|
dnl |
|
|
dnl AC_OUTPUT(Makefile) |
|
|
dnl |
|
|
dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr> |
|
|
dnl @version $Id$ |
|
|
dnl |
|
|
AC_DEFUN(AC_PROG_JAVA,[ |
|
|
AC_REQUIRE([AC_EXEEXT])dnl |
|
|
if test x$JAVAPREFIX = x; then |
|
|
test x$JAVA = x && AC_CHECK_PROGS(JAVA, java$EXEEXT kaffe$EXEEXT) |
|
|
else |
|
|
test x$JAVA = x && AC_CHECK_PROGS(JAVA, java$EXEEXT kaffe$EXEEXT, $JAVAPREFIX) |
|
|
fi |
|
|
test x$JAVA = x && AC_MSG_ERROR([no acceptable Java virtual machine found in \$PATH]) |
|
|
AC_PROG_JAVA_WORKS |
|
|
AC_PROVIDE([$0])dnl |
|
|
]) |
|
|
dnl @synopsis AC_PROG_JAVA_WORKS |
|
|
dnl |
|
|
dnl Internal use ONLY. |
|
|
dnl |
|
|
dnl Note: This is part of the set of autoconf M4 macros for Java programs. |
|
|
dnl It is VERY IMPORTANT that you download the whole set, some |
|
|
dnl macros depend on other. Unfortunately, the autoconf archive does not |
|
|
dnl support the concept of set of macros, so I had to break it for |
|
|
dnl submission. |
|
|
dnl The general documentation, as well as the sample configure.in, is |
|
|
dnl included in the AC_PROG_JAVA macro. |
|
|
dnl |
|
|
dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr> |
|
|
dnl @version $Id$ |
|
|
dnl |
|
|
AC_DEFUN(AC_PROG_JAVA_WORKS, [ |
|
|
AC_CHECK_PROG(uudecode, uudecode$EXEEXT, yes) |
|
|
if test x$uudecode = xyes; then |
|
|
AC_CACHE_CHECK([if uudecode can decode base 64 file], ac_cv_prog_uudecode_base64, [ |
|
|
dnl /** |
|
|
dnl * Test.java: used to test if java compiler works. |
|
|
dnl */ |
|
|
dnl public class Test |
|
|
dnl { |
|
|
dnl |
|
|
dnl public static void |
|
|
dnl main( String[] argv ) |
|
|
dnl { |
|
|
dnl System.exit (0); |
|
|
dnl } |
|
|
dnl |
|
|
dnl } |
|
|
cat << \EOF > Test.uue |
|
|
begin-base64 644 Test.class |
|
|
yv66vgADAC0AFQcAAgEABFRlc3QHAAQBABBqYXZhL2xhbmcvT2JqZWN0AQAE |
|
|
bWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAPTGluZU51 |
|
|
bWJlclRhYmxlDAAKAAsBAARleGl0AQAEKEkpVgoADQAJBwAOAQAQamF2YS9s |
|
|
YW5nL1N5c3RlbQEABjxpbml0PgEAAygpVgwADwAQCgADABEBAApTb3VyY2VG |
|
|
aWxlAQAJVGVzdC5qYXZhACEAAQADAAAAAAACAAkABQAGAAEABwAAACEAAQAB |
|
|
AAAABQO4AAyxAAAAAQAIAAAACgACAAAACgAEAAsAAQAPABAAAQAHAAAAIQAB |
|
|
AAEAAAAFKrcAErEAAAABAAgAAAAKAAIAAAAEAAQABAABABMAAAACABQ= |
|
|
==== |
|
|
EOF |
|
|
if uudecode$EXEEXT Test.uue; then |
|
|
ac_cv_prog_uudecode_base64=yes |
|
|
else |
|
|
echo "configure: __oline__: uudecode had trouble decoding base 64 file 'Test.uue'" >&AC_FD_CC |
|
|
echo "configure: failed file was:" >&AC_FD_CC |
|
|
cat Test.uue >&AC_FD_CC |
|
|
ac_cv_prog_uudecode_base64=no |
|
|
fi |
|
|
rm -f Test.uue]) |
|
|
fi |
|
|
if test x$ac_cv_prog_uudecode_base64 != xyes; then |
|
|
rm -f Test.class |
|
|
AC_MSG_WARN([I have to compile Test.class from scratch]) |
|
|
if test x$ac_cv_prog_javac_works = xno; then |
|
|
AC_MSG_ERROR([Cannot compile java source. $JAVAC does not work properly]) |
|
|
fi |
|
|
if test x$ac_cv_prog_javac_works = x; then |
|
|
AC_PROG_JAVAC |
|
|
fi |
|
|
fi |
|
|
AC_CACHE_CHECK(if $JAVA works, ac_cv_prog_java_works, [ |
|
|
JAVA_TEST=Test.java |
|
|
CLASS_TEST=Test.class |
|
|
TEST=Test |
|
|
changequote(, )dnl |
|
|
cat << \EOF > $JAVA_TEST |
|
|
/* [#]line __oline__ "configure" */ |
|
|
public class Test { |
|
|
public static void main (String args[]) { |
|
|
System.exit (0); |
|
|
} } |
|
|
EOF |
|
|
changequote([, ])dnl |
|
|
if test x$ac_cv_prog_uudecode_base64 != xyes; then |
|
|
if AC_TRY_COMMAND($JAVAC $JAVACFLAGS $JAVA_TEST) && test -s $CLASS_TEST; then |
|
|
: |
|
|
else |
|
|
echo "configure: failed program was:" >&AC_FD_CC |
|
|
cat $JAVA_TEST >&AC_FD_CC |
|
|
AC_MSG_ERROR(The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)) |
|
|
fi |
|
|
fi |
|
|
if AC_TRY_COMMAND($JAVA $JAVAFLAGS -classpath ".:$CLASSPATH" $TEST) >/dev/null 2>&1; then |
|
|
ac_cv_prog_java_works=yes |
|
|
else |
|
|
echo "configure: failed program was:" >&AC_FD_CC |
|
|
cat $JAVA_TEST >&AC_FD_CC |
|
|
AC_MSG_ERROR(The Java VM $JAVA failed (see config.log, check the CLASSPATH?)) |
|
|
fi |
|
|
rm -fr $JAVA_TEST $CLASS_TEST Test.uue |
|
|
]) |
|
|
AC_PROVIDE([$0])dnl |
|
|
] |
|
|
) |
|
|
dnl @synopsis AC_PROG_JAVAC |
|
|
dnl |
|
|
dnl AC_PROG_JAVAC tests an existing Java compiler. It uses the environment |
|
|
dnl variable JAVAC then tests in sequence various common Java compilers. For |
|
|
dnl political reasons, it starts with the free ones. |
|
|
dnl |
|
|
dnl If you want to force a specific compiler: |
|
|
dnl |
|
|
dnl - at the configure.in level, set JAVAC=yourcompiler before calling |
|
|
dnl AC_PROG_JAVAC |
|
|
dnl |
|
|
dnl - at the configure level, setenv JAVAC |
|
|
dnl |
|
|
dnl You can use the JAVAC variable in your Makefile.in, with @JAVAC@. |
|
|
dnl |
|
|
dnl *Warning*: its success or failure can depend on a proper setting of the |
|
|
dnl CLASSPATH env. variable. |
|
|
dnl |
|
|
dnl TODO: allow to exclude compilers (rationale: most Java programs cannot compile |
|
|
dnl with some compilers like guavac). |
|
|
dnl |
|
|
dnl Note: This is part of the set of autoconf M4 macros for Java programs. |
|
|
dnl It is VERY IMPORTANT that you download the whole set, some |
|
|
dnl macros depend on other. Unfortunately, the autoconf archive does not |
|
|
dnl support the concept of set of macros, so I had to break it for |
|
|
dnl submission. |
|
|
dnl The general documentation, as well as the sample configure.in, is |
|
|
dnl included in the AC_PROG_JAVA macro. |
|
|
dnl |
|
|
dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr> |
|
|
dnl @version $Id$ |
|
|
dnl |
|
|
AC_DEFUN(AC_PROG_JAVAC,[ |
|
|
AC_REQUIRE([AC_EXEEXT])dnl |
|
|
if test "x$JAVAPREFIX" = x; then |
|
|
test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, "gcj$EXEEXT -C" guavac$EXEEXT jikes$EXEEXT javac$EXEEXT) |
|
|
else |
|
|
test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, "gcj$EXEEXT -C" guavac$EXEEXT jikes$EXEEXT javac$EXEEXT, $JAVAPREFIX) |
|
|
fi |
|
|
test "x$JAVAC" = x && AC_MSG_ERROR([no acceptable Java compiler found in \$PATH]) |
|
|
AC_PROG_JAVAC_WORKS |
|
|
AC_PROVIDE([$0])dnl |
|
|
]) |
|
|
dnl @synopsis AC_PROG_JAVAC_WORKS |
|
|
dnl |
|
|
dnl Internal use ONLY. |
|
|
dnl |
|
|
dnl Note: This is part of the set of autoconf M4 macros for Java programs. |
|
|
dnl It is VERY IMPORTANT that you download the whole set, some |
|
|
dnl macros depend on other. Unfortunately, the autoconf archive does not |
|
|
dnl support the concept of set of macros, so I had to break it for |
|
|
dnl submission. |
|
|
dnl The general documentation, as well as the sample configure.in, is |
|
|
dnl included in the AC_PROG_JAVA macro. |
|
|
dnl |
|
|
dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr> |
|
|
dnl @version $Id$ |
|
|
dnl |
|
|
AC_DEFUN(AC_PROG_JAVAC_WORKS,[ |
|
|
AC_CACHE_CHECK([if $JAVAC works], ac_cv_prog_javac_works, [ |
|
|
JAVA_TEST=Test.java |
|
|
CLASS_TEST=Test.class |
|
|
cat << \EOF > $JAVA_TEST |
|
|
/* [#]line __oline__ "configure" */ |
|
|
public class Test { |
|
|
} |
|
|
EOF |
|
|
if AC_TRY_COMMAND($JAVAC $JAVACFLAGS $JAVA_TEST) >/dev/null 2>&1; then |
|
|
ac_cv_prog_javac_works=yes |
|
|
else |
|
|
AC_MSG_ERROR([The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)]) |
|
|
echo "configure: failed program was:" >&AC_FD_CC |
|
|
cat $JAVA_TEST >&AC_FD_CC |
|
|
fi |
|
|
rm -f $JAVA_TEST $CLASS_TEST |
|
|
]) |
|
|
AC_PROVIDE([$0])dnl |
|
|
]) |
|
|
dnl @synopsis AC_PROG_JAVADOC |
|
|
dnl |
|
|
dnl AC_PROG_JAVADOC tests for an existing javadoc generator. It uses the environment |
|
|
dnl variable JAVADOC then tests in sequence various common javadoc generator. |
|
|
dnl |
|
|
dnl If you want to force a specific compiler: |
|
|
dnl |
|
|
dnl - at the configure.in level, set JAVADOC=yourgenerator before calling |
|
|
dnl AC_PROG_JAVADOC |
|
|
dnl |
|
|
dnl - at the configure level, setenv JAVADOC |
|
|
dnl |
|
|
dnl You can use the JAVADOC variable in your Makefile.in, with @JAVADOC@. |
|
|
dnl |
|
|
dnl Note: This macro depends on the autoconf M4 macros for Java programs. |
|
|
dnl It is VERY IMPORTANT that you download that whole set, some |
|
|
dnl macros depend on other. Unfortunately, the autoconf archive does not |
|
|
dnl support the concept of set of macros, so I had to break it for |
|
|
dnl submission. |
|
|
dnl |
|
|
dnl The general documentation of those macros, as well as the sample |
|
|
dnl configure.in, is included in the AC_PROG_JAVA macro. |
|
|
dnl |
|
|
dnl @author Egon Willighagen <egonw@sci.kun.nl> |
|
|
dnl @version $Id$ |
|
|
dnl |
|
|
AC_DEFUN([AC_PROG_JAVADOC],[ |
|
|
AC_REQUIRE([AC_EXEEXT])dnl |
|
|
if test "x$JAVAPREFIX" = x; then |
|
|
test "x$JAVADOC" = x && AC_CHECK_PROGS(JAVADOC, javadoc$EXEEXT) |
|
|
else |
|
|
test "x$JAVADOC" = x && AC_CHECK_PROGS(JAVADOC, javadoc, $JAVAPREFIX) |
|
|
fi |
|
|
test "x$JAVADOC" = x && AC_MSG_ERROR([no acceptable javadoc generator found in \$PATH]) |
|
|
AC_PROVIDE([$0])dnl |
|
|
]) |
|
|
|
|
|
dnl @synopsis AC_PROG_JAVAH |
|
|
dnl |
|
|
dnl AC_PROG_JAVAH tests the availability of the javah header generator |
|
|
dnl and looks for the jni.h header file. If available, JAVAH is set to |
|
|
dnl the full path of javah and CPPFLAGS is updated accordingly. |
|
|
dnl |
|
|
dnl @author Luc Maisonobe |
|
|
dnl @version $Id$ |
|
|
dnl |
|
|
AC_DEFUN([AC_PROG_JAVAH],[ |
|
|
AC_REQUIRE([AC_CANONICAL_SYSTEM])dnl |
|
|
AC_REQUIRE([AC_PROG_CPP])dnl |
|
|
AC_PATH_PROG(JAVAH,javah) |
|
|
if test x"`eval 'echo $ac_cv_path_JAVAH'`" != x ; then |
|
|
AC_TRY_CPP([#include <jni.h>],,[ |
|
|
ac_save_CPPFLAGS="$CPPFLAGS" |
|
|
changequote(, )dnl |
|
|
ac_dir=`echo $ac_cv_path_JAVAH | sed 's,\(.*\)/[^/]*/[^/]*$,\1/include,'` |
|
|
ac_machdep=`echo $build_os | sed 's,[-0-9].*,,'` |
|
|
changequote([, ])dnl |
|
|
CPPFLAGS="$ac_save_CPPFLAGS -I$ac_dir -I$ac_dir/$ac_machdep" |
|
|
AC_TRY_CPP([#include <jni.h>], |
|
|
ac_save_CPPFLAGS="$CPPFLAGS", |
|
|
AC_MSG_WARN([unable to include <jni.h>])) |
|
|
CPPFLAGS="$ac_save_CPPFLAGS"]) |
|
|
fi]) |
|
|
dnl @synopsis AC_TRY_COMPILE_JAVA |
|
|
dnl |
|
|
dnl AC_TRY_COMPILE_JAVA attempt to compile user given source. |
|
|
dnl |
|
|
dnl *Warning*: its success or failure can depend on a proper setting of the |
|
|
dnl CLASSPATH env. variable. |
|
|
dnl |
|
|
dnl Note: This is part of the set of autoconf M4 macros for Java programs. |
|
|
dnl It is VERY IMPORTANT that you download the whole set, some |
|
|
dnl macros depend on other. Unfortunately, the autoconf archive does not |
|
|
dnl support the concept of set of macros, so I had to break it for |
|
|
dnl submission. |
|
|
dnl The general documentation, as well as the sample configure.in, is |
|
|
dnl included in the AC_PROG_JAVA macro. |
|
|
dnl |
|
|
dnl @author Devin Weaver <ktohg@tritarget.com> |
|
|
dnl @version $Id$ |
|
|
dnl |
|
|
AC_DEFUN(AC_TRY_COMPILE_JAVA,[ |
|
|
AC_REQUIRE([AC_PROG_JAVAC])dnl |
|
|
cat << \EOF > Test.java |
|
|
/* [#]line __oline__ "configure" */ |
|
|
ifelse([$1], , , [import $1;]) |
|
|
public class Test { |
|
|
[$2] |
|
|
} |
|
|
EOF |
|
|
if AC_TRY_COMMAND($JAVAC $JAVACFLAGS Test.java) && test -s Test.class |
|
|
then |
|
|
dnl Don't remove the temporary files here, so they can be examined. |
|
|
ifelse([$3], , :, [$3]) |
|
|
else |
|
|
echo "configure: failed program was:" >&AC_FD_CC |
|
|
cat Test.java >&AC_FD_CC |
|
|
ifelse([$4], , , [ rm -fr Test* |
|
|
$4 |
|
|
])dnl |
|
|
fi |
|
|
rm -fr Test*]) |
|
|
dnl @synopsis AC_TRY_RUN_JAVA |
|
|
dnl |
|
|
dnl AC_TRY_RUN_JAVA attempt to compile and run user given source. |
|
|
dnl |
|
|
dnl *Warning*: its success or failure can depend on a proper setting of the |
|
|
dnl CLASSPATH env. variable. |
|
|
dnl |
|
|
dnl Note: This is part of the set of autoconf M4 macros for Java programs. |
|
|
dnl It is VERY IMPORTANT that you download the whole set, some |
|
|
dnl macros depend on other. Unfortunately, the autoconf archive does not |
|
|
dnl support the concept of set of macros, so I had to break it for |
|
|
dnl submission. |
|
|
dnl The general documentation, as well as the sample configure.in, is |
|
|
dnl included in the AC_PROG_JAVA macro. |
|
|
dnl |
|
|
dnl @author Devin Weaver <ktohg@tritarget.com> |
|
|
dnl @version $Id$ |
|
|
dnl |
|
|
AC_DEFUN(AC_TRY_RUN_JAVA,[ |
|
|
AC_REQUIRE([AC_PROG_JAVAC])dnl |
|
|
AC_REQUIRE([AC_PROG_JAVA])dnl |
|
|
cat << \EOF > Test.java |
|
|
/* [#]line __oline__ "configure" */ |
|
|
ifelse([$1], , , [include $1;]) |
|
|
public class Test { |
|
|
[$2] |
|
|
} |
|
|
EOF |
|
|
if AC_TRY_COMMAND($JAVAC $JAVACFLAGS Test.java) && test -s Test.class && ($JAVA $JAVAFLAGS -classpath ".:$CLASSPATH" Test; exit) 2>/dev/null |
|
|
then |
|
|
dnl Don't remove the temporary files here, so they can be examined. |
|
|
ifelse([$3], , :, [$3]) |
|
|
else |
|
|
echo "configure: failed program was:" >&AC_FD_CC |
|
|
cat Test.java >&AC_FD_CC |
|
|
ifelse([$4], , , [ rm -fr Test* |
|
|
$4 |
|
|
])dnl |
|
|
fi |
|
|
rm -fr Test*]) |
|
|
dnl @synopsis AC_TRY_RUN_JAVA |
|
|
dnl |
|
|
dnl AC_TRY_RUN_JAVA attempt to compile and run user given source. |
|
|
dnl |
|
|
dnl *Warning*: its success or failure can depend on a proper setting of the |
|
|
dnl CLASSPATH env. variable. |
|
|
dnl |
|
|
dnl Note: This is part of the set of autoconf M4 macros for Java programs. |
|
|
dnl It is VERY IMPORTANT that you download the whole set, some |
|
|
dnl macros depend on other. Unfortunately, the autoconf archive does not |
|
|
dnl support the concept of set of macros, so I had to break it for |
|
|
dnl submission. |
|
|
dnl The general documentation, as well as the sample configure.in, is |
|
|
dnl included in the AC_PROG_JAVA macro. |
|
|
dnl |
|
|
dnl @author Devin Weaver <ktohg@tritarget.com> |
|
|
dnl @version $Id$ |
|
|
dnl |
|
|
AC_DEFUN([AC_TRY_RUN_JAVA],[ |
|
|
AC_REQUIRE([AC_PROG_JAVAC])dnl |
|
|
AC_REQUIRE([AC_PROG_JAVA])dnl |
|
|
cat << \EOF > Test.java |
|
|
/* [#]line __oline__ "configure" */ |
|
|
ifelse([$1], , , [include $1;]) |
|
|
public class Test { |
|
|
[$2] |
|
|
} |
|
|
EOF |
|
|
if AC_TRY_COMMAND($JAVAC $JAVACFLAGS Test.java) && test -s Test.class && ($JAVA $JAVAFLAGS -classpath ".:$CLASSPATH" Test; exit) 2>/dev/null |
|
|
then |
|
|
dnl Don't remove the temporary files here, so they can be examined. |
|
|
ifelse([$3], , :, [$3]) |
|
|
else |
|
|
echo "configure: failed program was:" >&AC_FD_CC |
|
|
cat Test.java >&AC_FD_CC |
|
|
ifelse([$4], , , [ rm -fr Test* |
|
|
$4 |
|
|
])dnl |
|
|
fi |
|
|
rm -fr Test*]) |
|
|
dnl @synopsis INETLIB_WITH_JSSE |
|
|
dnl |
|
|
AC_DEFUN([INETLIB_WITH_JSSE],[ |
|
|
AC_REQUIRE([AC_PROG_JAVAC])dnl |
|
|
AC_REQUIRE([AC_PROG_JAVA])dnl |
|
|
AC_MSG_CHECKING([for JSSE]) |
|
|
JSSE_JAR="" |
|
|
JSSE_CLASSPATH=. |
|
|
if test "x" != "x$CLASSPATH" ; then |
|
|
JSSE_CLASSPATH="$JSSE_CLASSPATH:$CLASSPATH" |
|
|
fi |
|
|
AC_ARG_WITH([jsse], |
|
|
AC_HELP_STRING([--with-jsse=FILE], [path to external JSSE library]), |
|
|
[ |
|
|
if test -r "${withval}" ; then |
|
|
JSSE_JAR="${withval}" |
|
|
JSSE_CLASSPATH="$JSSE_CLASSPATH:$JSSE_JAR" |
|
|
fi |
|
|
]) |
|
|
changequote(, )dnl |
|
|
cat << \EOF > Test.java |
|
|
/* [#]line __oline__ "configure" */ |
|
|
public class Test { |
|
|
public static void main(String[] args) { |
|
|
try { Class.forName("javax.net.ssl.SSLSocket"); } |
|
|
catch (Throwable e) { System.exit(1); } |
|
|
} |
|
|
} |
|
|
EOF |
|
|
changequote([, ])dnl |
|
|
if AC_TRY_COMMAND($JAVAC $JAVACFLAGS Test.java) && test -s Test.class && ($JAVA $JAVAFLAGS -classpath "$JSSE_CLASSPATH" Test; exit) 2>/dev/null |
|
|
then |
|
|
AC_MSG_RESULT(yes) |
|
|
else |
|
|
AC_MSG_ERROR([can't find JSSE classes; use --with-jsse]) |
|
|
fi |
|
|
rm Test.java Test.class |
|
|
AC_SUBST(JSSE_JAR) |
|
|
]) |
|
|
dnl @synopsis INETLIB_WITH_SASL |
|
|
dnl |
|
|
AC_DEFUN([INETLIB_WITH_SASL],[ |
|
|
AC_REQUIRE([AC_PROG_JAVAC])dnl |
|
|
AC_REQUIRE([AC_PROG_JAVA])dnl |
|
|
AC_MSG_CHECKING([for SASL]) |
|
|
SASL_JAR="" |
|
|
SASL_CLASSPATH=. |
|
|
if test "x" != "x$CLASSPATH" ; then |
|
|
SASL_CLASSPATH="$SASL_CLASSPATH:$CLASSPATH" |
|
|
fi |
|
|
AC_ARG_WITH([sasl], |
|
|
AC_HELP_STRING([--with-sasl=FILE], [path to external SASL library]), |
|
|
[ |
|
|
if test -r "${withval}" ; then |
|
|
SASL_JAR="${withval}" |
|
|
SASL_CLASSPATH="$SASL_CLASSPATH:$SASL_JAR" |
|
|
fi |
|
|
]) |
|
|
changequote(, )dnl |
|
|
cat << \EOF > Test.java |
|
|
/* [#]line __oline__ "configure" */ |
|
|
public class Test { |
|
|
public static void main(String[] args) { |
|
|
try { Class.forName("javax.security.sasl.SaslClient"); } |
|
|
catch (Throwable e) { System.exit(1); } |
|
|
} |
|
|
} |
|
|
EOF |
|
|
changequote([, ])dnl |
|
|
if AC_TRY_COMMAND($JAVAC $JAVACFLAGS Test.java) && test -s Test.class && ($JAVA $JAVAFLAGS -classpath "$SASL_CLASSPATH" Test) 2>/dev/null |
|
|
then |
|
|
AC_MSG_RESULT(yes) |
|
|
else |
|
|
AC_MSG_ERROR([can't find SASL classes; use --with-sasl]) |
|
|
fi |
|
|
rm Test.java Test.class |
|
|
AC_SUBST(SASL_JAR) |
|
|
]) |
|
|
dnl @synopsis INETLIB_WITH_AUTH_CALLBACK |
|
|
dnl |
|
|
AC_DEFUN([INETLIB_WITH_AUTH_CALLBACK],[ |
|
|
AC_REQUIRE([AC_PROG_JAVAC])dnl |
|
|
AC_REQUIRE([AC_PROG_JAVA])dnl |
|
|
AC_MSG_CHECKING([for javax.security.auth.callback]) |
|
|
AUTH_CALLBACK_JAR="" |
|
|
AUTH_CALLBACK_CLASSPATH=. |
|
|
if test "x" != "x$CLASSPATH" ; then |
|
|
AUTH_CALLBACK_CLASSPATH="$AUTH_CALLBACK_CLASSPATH:$CLASSPATH" |
|
|
fi |
|
|
AC_ARG_WITH([auth_callback], |
|
|
AC_HELP_STRING([--with-auth-callback=FILE], |
|
|
[path to external javax.security.auth.callback library]), |
|
|
[ |
|
|
if test -r "${withval}" ; then |
|
|
AUTH_CALLBACK_JAR="${withval}" |
|
|
AUTH_CALLBACK_CLASSPATH="$AUTH_CALLBACK_CLASSPATH:$AUTH_CALLBACK_JAR" |
|
|
fi |
|
|
]) |
|
|
changequote(, )dnl |
|
|
cat << \EOF > Test.java |
|
|
/* [#]line __oline__ "configure" */ |
|
|
public class Test { |
|
|
public static void main(String[] args) { |
|
|
try { Class.forName("javax.security.auth.callback.Callback"); } |
|
|
catch (Throwable e) { System.exit(1); } |
|
|
} |
|
|
} |
|
|
EOF |
|
|
changequote([, ])dnl |
|
|
if AC_TRY_COMMAND($JAVAC $JAVACFLAGS Test.java) && test -s Test.class && ($JAVA $JAVAFLAGS -classpath "$AUTH_CALLBACK_CLASSPATH" Test) 2>/dev/null |
|
|
then |
|
|
AC_MSG_RESULT(yes) |
|
|
else |
|
|
AC_MSG_ERROR([can't find javax.security.auth.callback classes; use --with-auth-callback]) |
|
|
fi |
|
|
rm Test.java Test.class |
|
|
AC_SUBST(AUTH_CALLBACK_JAR) |
|
|
]) |
|