~lttng/lttng-ust/lttng-ust

« back to all changes in this revision

Viewing changes to m4/ax_check_class.m4

  • Committer: Mathieu Desnoyers
  • Author(s): Michael Jeanson
  • Date: 2017-05-09 18:52:23 UTC
  • Revision ID: git-v1:093c3f9bbdda113147ab03be62aaa37bd1c786b4
Move m4 scripts to m4 dir

Harmonize build system configuration across our projects.

Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# ===========================================================================
 
2
#      http://www.gnu.org/software/autoconf-archive/ax_check_class.html
 
3
# ===========================================================================
 
4
#
 
5
# SYNOPSIS
 
6
#
 
7
#   AX_CHECK_CLASS
 
8
#
 
9
# DESCRIPTION
 
10
#
 
11
#   AX_CHECK_CLASS tests the existence of a given Java class, either in a
 
12
#   jar or in a '.class' file.
 
13
#
 
14
#   *Warning*: its success or failure can depend on a proper setting of the
 
15
#   CLASSPATH env. variable.
 
16
#
 
17
#   Note: This is part of the set of autoconf M4 macros for Java programs.
 
18
#   It is VERY IMPORTANT that you download the whole set, some macros depend
 
19
#   on other. Unfortunately, the autoconf archive does not support the
 
20
#   concept of set of macros, so I had to break it for submission. The
 
21
#   general documentation, as well as the sample configure.in, is included
 
22
#   in the AX_PROG_JAVA macro.
 
23
#
 
24
# LICENSE
 
25
#
 
26
#   Copyright (c) 2008 Stephane Bortzmeyer <bortzmeyer@pasteur.fr>
 
27
#
 
28
#   This program is free software; you can redistribute it and/or modify it
 
29
#   under the terms of the GNU General Public License as published by the
 
30
#   Free Software Foundation; either version 2 of the License, or (at your
 
31
#   option) any later version.
 
32
#
 
33
#   This program is distributed in the hope that it will be useful, but
 
34
#   WITHOUT ANY WARRANTY; without even the implied warranty of
 
35
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 
36
#   Public License for more details.
 
37
#
 
38
#   You should have received a copy of the GNU General Public License along
 
39
#   with this program. If not, see <http://www.gnu.org/licenses/>.
 
40
#
 
41
#   As a special exception, the respective Autoconf Macro's copyright owner
 
42
#   gives unlimited permission to copy, distribute and modify the configure
 
43
#   scripts that are the output of Autoconf when processing the Macro. You
 
44
#   need not follow the terms of the GNU General Public License when using
 
45
#   or distributing such scripts, even though portions of the text of the
 
46
#   Macro appear in them. The GNU General Public License (GPL) does govern
 
47
#   all other use of the material that constitutes the Autoconf Macro.
 
48
#
 
49
#   This special exception to the GPL applies to versions of the Autoconf
 
50
#   Macro released by the Autoconf Archive. When you make and distribute a
 
51
#   modified version of the Autoconf Macro, you may extend this special
 
52
#   exception to the GPL to apply to your modified version as well.
 
53
 
 
54
#serial 7
 
55
 
 
56
AU_ALIAS([AC_CHECK_CLASS], [AX_CHECK_CLASS])
 
57
AC_DEFUN([AX_CHECK_CLASS],[
 
58
AC_REQUIRE([AX_PROG_JAVA])
 
59
ac_var_name=`echo $1 | sed 's/\./_/g'`
 
60
dnl Normaly I'd use a AC_CACHE_CHECK here but since the variable name is
 
61
dnl dynamic I need an extra level of extraction
 
62
AC_MSG_CHECKING([for $1 class])
 
63
AC_CACHE_VAL(ax_cv_class_$ac_var_name, [
 
64
if test x$ac_cv_prog_uudecode_base64 = xyes; then
 
65
dnl /**
 
66
dnl  * Test.java: used to test dynamicaly if a class exists.
 
67
dnl  */
 
68
dnl public class Test
 
69
dnl {
 
70
dnl
 
71
dnl public static void
 
72
dnl main( String[] argv )
 
73
dnl {
 
74
dnl     Class lib;
 
75
dnl     if (argv.length < 1)
 
76
dnl      {
 
77
dnl             System.err.println ("Missing argument");
 
78
dnl             System.exit (77);
 
79
dnl      }
 
80
dnl     try
 
81
dnl      {
 
82
dnl             lib = Class.forName (argv[0]);
 
83
dnl      }
 
84
dnl     catch (ClassNotFoundException e)
 
85
dnl      {
 
86
dnl             System.exit (1);
 
87
dnl      }
 
88
dnl     lib = null;
 
89
dnl     System.exit (0);
 
90
dnl }
 
91
dnl
 
92
dnl }
 
93
cat << \EOF > Test.uue
 
94
begin-base64 644 Test.class
 
95
yv66vgADAC0AKQcAAgEABFRlc3QHAAQBABBqYXZhL2xhbmcvT2JqZWN0AQAE
 
96
bWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAPTGluZU51
 
97
bWJlclRhYmxlDAAKAAsBAANlcnIBABVMamF2YS9pby9QcmludFN0cmVhbTsJ
 
98
AA0ACQcADgEAEGphdmEvbGFuZy9TeXN0ZW0IABABABBNaXNzaW5nIGFyZ3Vt
 
99
ZW50DAASABMBAAdwcmludGxuAQAVKExqYXZhL2xhbmcvU3RyaW5nOylWCgAV
 
100
ABEHABYBABNqYXZhL2lvL1ByaW50U3RyZWFtDAAYABkBAARleGl0AQAEKEkp
 
101
VgoADQAXDAAcAB0BAAdmb3JOYW1lAQAlKExqYXZhL2xhbmcvU3RyaW5nOylM
 
102
amF2YS9sYW5nL0NsYXNzOwoAHwAbBwAgAQAPamF2YS9sYW5nL0NsYXNzBwAi
 
103
AQAgamF2YS9sYW5nL0NsYXNzTm90Rm91bmRFeGNlcHRpb24BAAY8aW5pdD4B
 
104
AAMoKVYMACMAJAoAAwAlAQAKU291cmNlRmlsZQEACVRlc3QuamF2YQAhAAEA
 
105
AwAAAAAAAgAJAAUABgABAAcAAABtAAMAAwAAACkqvgSiABCyAAwSD7YAFBBN
 
106
uAAaKgMyuAAeTKcACE0EuAAaAUwDuAAasQABABMAGgAdACEAAQAIAAAAKgAK
 
107
AAAACgAAAAsABgANAA4ADgATABAAEwASAB4AFgAiABgAJAAZACgAGgABACMA
 
108
JAABAAcAAAAhAAEAAQAAAAUqtwAmsQAAAAEACAAAAAoAAgAAAAQABAAEAAEA
 
109
JwAAAAIAKA==
 
110
====
 
111
EOF
 
112
                if $UUDECODE Test.uue; then
 
113
                        :
 
114
                else
 
115
                        echo "configure: __oline__: uudecode had trouble decoding base 64 file 'Test.uue'" >&AS_MESSAGE_LOG_FD
 
116
                        echo "configure: failed file was:" >&AS_MESSAGE_LOG_FD
 
117
                        cat Test.uue >&AS_MESSAGE_LOG_FD
 
118
                        ac_cv_prog_uudecode_base64=no
 
119
                fi
 
120
        rm -f Test.uue
 
121
        if AC_TRY_COMMAND($JAVA -classpath ".:$CLASSPATH" $JAVAFLAGS Test $1) >/dev/null 2>&1; then
 
122
                eval "ac_cv_class_$ac_var_name=yes"
 
123
        else
 
124
                eval "ac_cv_class_$ac_var_name=no"
 
125
        fi
 
126
        rm -f Test.class
 
127
else
 
128
        AX_TRY_COMPILE_JAVA([$1], , [eval "ac_cv_class_$ac_var_name=yes"],
 
129
                [eval "ac_cv_class_$ac_var_name=no"])
 
130
fi
 
131
eval "ac_var_val=$`eval echo ac_cv_class_$ac_var_name`"
 
132
eval "HAVE_$ac_var_name=$`echo ac_cv_class_$ac_var_val`"
 
133
HAVE_LAST_CLASS=$ac_var_val
 
134
if test x$ac_var_val = xyes; then
 
135
        ifelse([$2], , :, [$2])
 
136
else
 
137
        ifelse([$3], , :, [$3])
 
138
fi
 
139
])
 
140
dnl for some reason the above statment didn't fall though here?
 
141
dnl do scripts have variable scoping?
 
142
eval "ac_var_val=$`eval echo ac_cv_class_$ac_var_name`"
 
143
AC_MSG_RESULT($ac_var_val)
 
144
])