Merge from mainline.
[official-gcc.git] / libjava / classpath / m4 / acinclude.m4
blob30ae333b596dc5fe88caf09e571169c39a4304a0
1 dnl Used by aclocal to generate configure
3 dnl -----------------------------------------------------------
4 AC_DEFUN([CLASSPATH_FIND_JAVAC],
6   user_specified_javac=
8   CLASSPATH_WITH_GCJ
9   CLASSPATH_WITH_JIKES
10   CLASSPATH_WITH_KJC
11   CLASSPATH_WITH_GCJX
12   CLASSPATH_WITH_ECJ
14   if test "x${user_specified_javac}" = x; then
15     AM_CONDITIONAL(FOUND_GCJ, test "x${GCJ}" != x)
16     AM_CONDITIONAL(FOUND_JIKES, test "x${JIKES}" != x)
17     AM_CONDITIONAL(FOUND_ECJ, test "x${ECJ}" != x)
18   else
19     AM_CONDITIONAL(FOUND_GCJ, test "x${user_specified_javac}" = xgcj)
20     AM_CONDITIONAL(FOUND_JIKES, test "x${user_specified_javac}" = xjikes)
21     AM_CONDITIONAL(FOUND_ECJ, test "x${user_specified_javac}" = xecj)
22   fi
23   AM_CONDITIONAL(FOUND_KJC, test "x${user_specified_javac}" = xkjc)
24   AM_CONDITIONAL(FOUND_GCJX, test "x${user_specified_javac}" = xgcjx)
26   if test "x${GCJ}" = x && test "x${JIKES}" = x && test "x${user_specified_javac}" != xkjc && test "x${user_specified_javac}" != xgcjx && test "x${user_specified_javac}" != xecj; then
27       AC_MSG_ERROR([cannot find javac, try --with-gcj, --with-jikes, --with-kjc, --with-ecj, or --with-gcjx])
28   fi
31 dnl -----------------------------------------------------------
32 AC_DEFUN([CLASSPATH_WITH_GCJ],
34   AC_ARG_WITH([gcj],
35               [AS_HELP_STRING(--with-gcj,bytecode compilation with gcj)],
36   [
37     if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
38       CLASSPATH_CHECK_GCJ(${withval})
39     else
40       if test "x${withval}" != xno; then
41         CLASSPATH_CHECK_GCJ
42       fi
43     fi
44     user_specified_javac=gcj
45   ],
46   [
47     CLASSPATH_CHECK_GCJ
48   ])
49   AC_SUBST(GCJ)
52 dnl -----------------------------------------------------------
53 AC_DEFUN([CLASSPATH_CHECK_GCJ],
55   if test "x$1" != x; then
56     if test -f "$1"; then
57       GCJ="$1"
58     else
59       AC_PATH_PROG(GCJ, "$1")
60     fi
61   else
62     AC_PATH_PROG(GCJ, "gcj")
63   fi  
64   dnl Test the given GCJ, but use it as C (!) compiler to check version
65   if test "x$GCJ" != x; then
66     AC_MSG_CHECKING([gcj version 4.0])
67     AC_LANG_PUSH([C])
68     AC_LANG_CONFTEST(
69     [[#if __GNUC__ <= 3
70     #error GCJ 4.0.0 or higher is required
71     #endif
72     ]])
73     $GCJ -E conftest.c > /dev/null
74     gcj_4_result=$?
75     if test "x$gcj_4_result" = "x0"; then
76       AC_MSG_RESULT([4.0 or higher found])
77     else
78       AC_MSG_WARN([4.0 or higher required])
79     fi
80     AC_LANG_POP
81   fi 
84 dnl -----------------------------------------------------------
85 AC_DEFUN([CLASSPATH_WITH_JIKES],
87   AC_ARG_WITH([jikes],
88               [AS_HELP_STRING(--with-jikes,bytecode compilation with jikes)],
89   [
90     if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
91       CLASSPATH_CHECK_JIKES(${withval})
92     else
93       if test "x${withval}" != xno; then
94         CLASSPATH_CHECK_JIKES
95       fi
96     fi
97     user_specified_javac=jikes
98   ],
99   [ 
100     CLASSPATH_CHECK_JIKES
101   ])
102   AC_SUBST(JIKES)
105 dnl -----------------------------------------------------------
106 AC_DEFUN([CLASSPATH_CHECK_JIKES],
108   if test "x$1" != x; then
109     if test -f "$1"; then
110       JIKES="$1"
111     else
112       AC_PATH_PROG(JIKES, "$1")
113     fi
114   else
115     AC_PATH_PROG(JIKES, "jikes")
116   fi
117   if test "x$JIKES" != "x"; then
118     dnl Require at least version 1.19
119     AC_MSG_CHECKING(jikes version)
120     JIKES_VERSION=`$JIKES --version | awk '/^Jikes Compiler/' | cut -d ' ' -f 5`
121     JIKES_VERSION_MAJOR=`echo "$JIKES_VERSION" | cut -d '.' -f 1`
122     JIKES_VERSION_MINOR=`echo "$JIKES_VERSION" | cut -d '.' -f 2`
123     if expr "$JIKES_VERSION_MAJOR" = 1 > /dev/null; then
124       if expr "$JIKES_VERSION_MINOR" \< 19 > /dev/null; then
125         JIKES=""
126       fi
127     fi
128     if test "x$JIKES" != "x"; then
129       AC_MSG_RESULT($JIKES_VERSION)
130     else
131       AC_MSG_WARN($JIKES_VERSION: jikes 1.19 or higher required)
132     fi
134     JIKESENCODING=
135     if test -n "`$JIKES --help 2>&1 | grep encoding`"; then
136       JIKESENCODING='-encoding UTF-8'
137     fi
138     AC_SUBST(JIKESENCODING)
140     JIKESWARNINGS="+Pno-switchcheck"
141     if test "x$JIKES_VERSION_MAJOR" = x"1" ; then
142       if ! test "x$JIKES_VERSION_MINOR" = x"19"; then
143         JIKESWARNINGS="$JIKESWARNINGS +Pno-shadow"
144       fi
145     fi
146     AC_SUBST(JIKESWARNINGS)
148   fi
151 dnl -----------------------------------------------------------
152 AC_DEFUN([CLASSPATH_WITH_KJC],
154   AC_ARG_WITH([kjc], 
155               [AS_HELP_STRING(--with-kjc,bytecode compilation with kjc)],
156   [
157     if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
158       CLASSPATH_CHECK_KJC(${withval})
159     else
160       if test "x${withval}" != xno; then
161         CLASSPATH_CHECK_KJC
162       fi
163     fi
164     user_specified_javac=kjc
165   ],
166   [ 
167     CLASSPATH_CHECK_KJC
168   ])
169   AC_SUBST(KJC)
172 dnl -----------------------------------------------------------
173 AC_DEFUN([CLASSPATH_CHECK_KJC],
175   if test "x$1" != x; then
176     if test -f "$1"; then
177       KJC="$1"
178     else
179       AC_PATH_PROG(KJC, "$1")
180     fi
181   else
182     AC_PATH_PROG(KJC, "kJC")
183   fi
186 dnl -----------------------------------------------------------
187 AC_DEFUN([CLASSPATH_WITH_GCJX],
189   AC_ARG_WITH([gcjx], 
190               [AS_HELP_STRING(--with-gcjx,bytecode compilation with gcjx)],
191   [
192     if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
193       CLASSPATH_CHECK_GCJX(${withval})
194     else
195       if test "x${withval}" != xno; then
196         CLASSPATH_CHECK_GCJX
197       fi
198     fi
199     user_specified_javac=gcjx
200   ],
201   [ 
202     CLASSPATH_CHECK_GCJX
203   ])
204   AC_SUBST(GCJX)
207 dnl -----------------------------------------------------------
208 AC_DEFUN([CLASSPATH_CHECK_GCJX],
210   if test "x$1" != x; then
211     if test -f "$1"; then
212       GCJX="$1"
213     else
214       AC_PATH_PROG(GCJX, "$1")
215     fi
216   else
217     AC_PATH_PROG(GCJX, "gcjx")
218   fi
221 dnl -----------------------------------------------------------
222 AC_DEFUN([CLASSPATH_WITH_JAVAH],
224   AC_ARG_WITH([javah],
225               [AS_HELP_STRING(--with-javah,specify path or name of a javah-like program)],
226   [
227     if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
228       CLASSPATH_CHECK_JAVAH(${withval})
229     else
230       CLASSPATH_CHECK_JAVAH
231     fi
232   ],
233   [ 
234     CLASSPATH_CHECK_JAVAH
235   ])
236   AM_CONDITIONAL(USER_SPECIFIED_JAVAH, test "x${USER_JAVAH}" != x)
237   AC_SUBST(USER_JAVAH)
240 dnl -----------------------------------------------------------
241 dnl Checking for a javah like program 
242 dnl -----------------------------------------------------------
243 AC_DEFUN([CLASSPATH_CHECK_JAVAH],
245   if test "x$1" != x; then
246     if test -f "$1"; then
247       USER_JAVAH="$1"
248     else
249       AC_PATH_PROG(USER_JAVAH, "$1")
250     fi
251   else
252     for javah_name in gcjh javah; do
253       AC_PATH_PROG(USER_JAVAH, "$javah_name")
254       if test "x${USER_JAVAH}" != x; then
255         break
256       fi
257     done
258   fi
259   
260 #  if test "x${USER_JAVAH}" = x; then
261 #    echo "configure: cannot find javah" 1>&2
262 #    exit 1
263 #  fi
266 dnl -----------------------------------------------------------
267 dnl CLASSPATH_WITH_CLASSLIB - checks for user specified classpath additions
268 dnl -----------------------------------------------------------
269 AC_DEFUN([CLASSPATH_WITH_CLASSLIB],
271   AC_ARG_WITH([classpath],
272               [AS_HELP_STRING(--with-classpath,specify path to a classes.zip like file)],
273   [
274     if test "x${withval}" = xyes; then
275       # set user classpath to CLASSPATH from env
276       AC_MSG_CHECKING(for classlib)
277       USER_CLASSLIB=${CLASSPATH}
278       AC_SUBST(USER_CLASSLIB)
279       AC_MSG_RESULT(${USER_CLASSLIB})
280       conditional_with_classlib=true      
281     elif test "x${withval}" != x && test "x${withval}" != xno; then
282       # set user classpath to specified value
283       AC_MSG_CHECKING(for classlib)
284       USER_CLASSLIB=${withval}
285       AC_SUBST(USER_CLASSLIB)
286       AC_MSG_RESULT(${withval})
287       conditional_with_classlib=true
288     fi
289   ],
290   [ conditional_with_classlib=false ])
291   AM_CONDITIONAL(USER_SPECIFIED_CLASSLIB, test "x${conditional_with_classlib}" = xtrue)
293   AC_ARG_WITH([vm-classes],
294               [AS_HELP_STRING(--with-vm-classes,specify path to VM override source files)], [vm_classes="$with_vm_classes"],
295               [vm_classes='${top_srcdir}/vm/reference'])
296   AC_SUBST(vm_classes)
299 dnl -----------------------------------------------------------
300 dnl CLASSPATH_WITH_GLIBJ - specify what to install
301 dnl -----------------------------------------------------------
302 AC_DEFUN([CLASSPATH_WITH_GLIBJ],
304   AC_PATH_PROG(ZIP, zip)
305   AC_ARG_WITH([fastjar],
306               [AS_HELP_STRING([--with-fastjar=PATH], [define to use a fastjar style tool])],
307               [
308                 AC_MSG_CHECKING([for user supplied fastjar])
309                 FASTJAR=${withval}
310                 AC_MSG_RESULT([${FASTJAR}])
311               ],
312               [AC_PATH_PROG(FASTJAR, fastjar)])
313 dnl We disable ZIP by default if we find fastjar.
314   if test x"${FASTJAR}" != x; then
315     ZIP=""
316   fi
317   
318   AC_ARG_WITH([glibj],
319               [AS_HELP_STRING([--with-glibj],[define what to install (zip|flat|both|none|build) [default=zip]])],
320               [
321                 if test "x${withval}" = xyes || test "x${withval}" = xzip; then
322                   install_class_files=no
323                   build_class_files=yes
324                   use_zip=yes
325                 elif test "x${withval}" = xboth; then
326                   install_class_files=yes
327                   build_class_files=yes
328                   use_zip=yes
329                 elif test "x${withval}" = xflat; then
330                   install_class_files=yes
331                   build_class_files=yes
332                   use_zip=no
333                 elif test "x${withval}" = xno || test "x${withval}" = xnone; then
334                   install_class_files=no
335                   build_class_files=no
336                   use_zip=no
337                 elif test "x${withval}" = xbuild; then
338                   install_class_files=no
339                   build_class_files=yes
340                   use_zip=no
341                 else
342                   AC_MSG_ERROR([unknown value given to --with-glibj])
343                 fi
344               ],
345               [
346                 install_class_files=no
347                 use_zip=yes
348               ])
349   AM_CONDITIONAL(INSTALL_GLIBJ_ZIP, test "x${use_zip}" = xyes)
350   AM_CONDITIONAL(INSTALL_CLASS_FILES, test "x${install_class_files}" = xyes)
351   AM_CONDITIONAL(BUILD_CLASS_FILES, test "x${build_class_files}" = xyes)
353   AC_ARG_ENABLE([examples],
354                 [AS_HELP_STRING(--enable-examples,enable build of the examples [default=yes])],
355                 [case "${enableval}" in
356                   yes) EXAMPLESDIR="examples" ;;
357                   no) EXAMPLESDIR="" ;;
358                   *) AC_MSG_ERROR(bad value ${enableval} for --enable-examples) ;;
359                 esac],
360                 [EXAMPLESDIR="examples"])
361   if test "x${use_zip}" = xno && test "x${install_class_files}" = xno; then
362     EXAMPLESDIR=""
363   fi
364   AC_SUBST(EXAMPLESDIR)
367 dnl -----------------------------------------------------------
368 dnl Enable generation of API documentation, with gjdoc if it
369 dnl has been compiled to an executable (or a suitable script
370 dnl is in your PATH) or using the argument as gjdoc executable.
371 dnl -----------------------------------------------------------
372 AC_DEFUN([CLASSPATH_WITH_GJDOC],
374   AC_ARG_WITH([gjdoc],
375               AS_HELP_STRING([--with-gjdoc],
376                              [generate documentation using gjdoc (default is NO)]),
377               [if test "x${withval}" = xno; then
378                  WITH_GJDOC=no;
379                elif test "x${withval}" = xyes -o "x{withval}" = x; then
380                  WITH_GJDOC=yes;
381                  AC_PATH_PROG(GJDOC, gjdoc, "no")
382                  if test "x${GJDOC}" = xno; then
383                    AC_MSG_ERROR("gjdoc executable not found");
384                  fi
385                else
386                  WITH_GJDOC=yes
387                  GJDOC="${withval}"
388                  AC_CHECK_FILE(${GJDOC}, AC_SUBST(GJDOC),
389                                AC_MSG_ERROR("Cannot use ${withval} as gjdoc executable since it doesn't exist"))
390                fi],
391               [WITH_GJDOC=no])
393   AM_CONDITIONAL(CREATE_API_DOCS, test "x${WITH_GJDOC}" = xyes)
396 dnl -----------------------------------------------------------
397 dnl Enable regeneration of parsers using jay
398 dnl http://www.informatik.uni-osnabrueck.de/alumni/bernd/jay/
399 dnl -----------------------------------------------------------
400 AC_DEFUN([REGEN_WITH_JAY],
402   AC_ARG_WITH([jay],
403               [AS_HELP_STRING(--with-jay,Regenerate the parsers with jay must be given the path to the jay executable)],
404   [
405     if test -d "${withval}"; then
406       JAY_DIR_PATH="${withval}"
407       AC_PATH_PROG(JAY, jay, "no", ${JAY_DIR_PATH})
408       if test "x${JAY}" = xno; then
409         AC_MSG_ERROR("jay executable not found");
410       fi
411     else
412       JAY_DIR_PATH=$(dirname "${withval}")
413       JAY="${withval}"
414       AC_SUBST(JAY)
415     fi
416     JAY_SKELETON="${JAY_DIR_PATH}/skeleton"
417     AC_CHECK_FILE(${JAY_SKELETON}, AC_SUBST(JAY_SKELETON),
418         AC_MSG_ERROR("Expected skeleton file in $(dirname ${withval})"))
419     JAY_FOUND=yes
420   ],
421   [
422     JAY_FOUND=no
423   ])
424   AM_CONDITIONAL(REGEN_PARSERS, test "x${JAY_FOUND}" = xyes)
427 dnl -----------------------------------------------------------
428 AC_DEFUN([CLASSPATH_WITH_ECJ],
430   AC_ARG_WITH([ecj],
431               [AS_HELP_STRING(--with-ecj,bytecode compilation with ecj)],
432   [
433     if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
434       CLASSPATH_CHECK_ECJ(${withval})
435     else
436       if test "x${withval}" != xno; then
437         CLASSPATH_CHECK_ECJ
438       fi
439     fi
440     user_specified_javac=ecj
441   ],
442   [ 
443     CLASSPATH_CHECK_ECJ
444   ])
445   AC_SUBST(ECJ)
448 dnl -----------------------------------------------------------
449 AC_DEFUN([CLASSPATH_CHECK_ECJ],
451   if test "x$1" != x; then
452     if test -f "$1"; then
453       ECJ="$1"
454     else
455       AC_PATH_PROG(ECJ, "$1")
456     fi
457   else
458     AC_PATH_PROG(ECJ, "ecj")
459   fi