/[classpath]/inetlib/acinclude.m4
ViewVC logotype

Diff of /inetlib/acinclude.m4

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by dog, Wed Jan 19 19:16:57 2005 UTC revision 1.6 by dog, Sat Apr 23 15:09:55 2005 UTC
# Line 1  Line 1 
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)  
 ])  

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26