1
dnl @synopsis AC_CHECK_CLASS
3
dnl AC_CHECK_CLASS tests the existence of a given Java class, either in
4
dnl a jar or in a '.class' file.
6
dnl *Warning*: its success or failure can depend on a proper setting of the
7
dnl CLASSPATH env. variable.
9
dnl Note: This is part of the set of autoconf M4 macros for Java programs.
10
dnl It is VERY IMPORTANT that you download the whole set, some
11
dnl macros depend on other. Unfortunately, the autoconf archive does not
12
dnl support the concept of set of macros, so I had to break it for
14
dnl The general documentation, as well as the sample configure.in, is
15
dnl included in the AC_PROG_JAVA macro.
17
dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr>
20
AC_DEFUN([AC_CHECK_CLASS],[
21
AC_REQUIRE([AC_PROG_JAVA])
22
ac_var_name=`echo $1 | sed 's/\./_/g'`
23
dnl Normaly I'd use a AC_CACHE_CHECK here but since the variable name is
24
dnl dynamic I need an extra level of extraction
25
AC_MSG_CHECKING([for $1 class])
26
AC_CACHE_VAL(ac_cv_class_$ac_var_name, [
27
if test x$ac_cv_prog_uudecode_base64 = xyes; then
29
dnl * Test.java: used to test dynamicaly if a class exists.
34
dnl public static void
35
dnl main( String[] argv )
38
dnl if (argv.length < 1)
40
dnl System.err.println ("Missing argument");
45
dnl lib = Class.forName (argv[0]);
47
dnl catch (ClassNotFoundException e)
56
cat << \EOF > Test.uue
57
begin-base64 644 Test.class
58
yv66vgADAC0AKQcAAgEABFRlc3QHAAQBABBqYXZhL2xhbmcvT2JqZWN0AQAE
59
bWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAPTGluZU51
60
bWJlclRhYmxlDAAKAAsBAANlcnIBABVMamF2YS9pby9QcmludFN0cmVhbTsJ
61
AA0ACQcADgEAEGphdmEvbGFuZy9TeXN0ZW0IABABABBNaXNzaW5nIGFyZ3Vt
62
ZW50DAASABMBAAdwcmludGxuAQAVKExqYXZhL2xhbmcvU3RyaW5nOylWCgAV
63
ABEHABYBABNqYXZhL2lvL1ByaW50U3RyZWFtDAAYABkBAARleGl0AQAEKEkp
64
VgoADQAXDAAcAB0BAAdmb3JOYW1lAQAlKExqYXZhL2xhbmcvU3RyaW5nOylM
65
amF2YS9sYW5nL0NsYXNzOwoAHwAbBwAgAQAPamF2YS9sYW5nL0NsYXNzBwAi
66
AQAgamF2YS9sYW5nL0NsYXNzTm90Rm91bmRFeGNlcHRpb24BAAY8aW5pdD4B
67
AAMoKVYMACMAJAoAAwAlAQAKU291cmNlRmlsZQEACVRlc3QuamF2YQAhAAEA
68
AwAAAAAAAgAJAAUABgABAAcAAABtAAMAAwAAACkqvgSiABCyAAwSD7YAFBBN
69
uAAaKgMyuAAeTKcACE0EuAAaAUwDuAAasQABABMAGgAdACEAAQAIAAAAKgAK
70
AAAACgAAAAsABgANAA4ADgATABAAEwASAB4AFgAiABgAJAAZACgAGgABACMA
71
JAABAAcAAAAhAAEAAQAAAAUqtwAmsQAAAAEACAAAAAoAAgAAAAQABAAEAAEA
75
if uudecode$EXEEXT Test.uue; then
78
echo "configure: __oline__: uudecode had trouble decoding base 64 file 'Test.uue'" >&AC_FD_CC
79
echo "configure: failed file was:" >&AC_FD_CC
80
cat Test.uue >&AC_FD_CC
81
ac_cv_prog_uudecode_base64=no
84
if AC_TRY_COMMAND($JAVA $JAVAFLAGS Test $1) >/dev/null 2>&1; then
85
eval "ac_cv_class_$ac_var_name=yes"
87
eval "ac_cv_class_$ac_var_name=no"
91
AC_TRY_COMPILE_JAVA([$1], , [eval "ac_cv_class_$ac_var_name=yes"],
92
[eval "ac_cv_class_$ac_var_name=no"])
94
eval "ac_var_val=$`eval echo ac_cv_class_$ac_var_name`"
95
eval "HAVE_$ac_var_name=$`echo ac_cv_class_$ac_var_val`"
96
HAVE_LAST_CLASS=$ac_var_val
97
if test x$ac_var_val = xyes; then
98
ifelse([$2], , :, [$2])
100
ifelse([$3], , :, [$3])
103
dnl for some reason the above statment didn't fall though here?
104
dnl do scripts have variable scoping?
105
eval "ac_var_val=$`eval echo ac_cv_class_$ac_var_name`"
106
AC_MSG_RESULT($ac_var_val)