Merged with mainline at revision 128810.
[official-gcc.git] / libjava / classpath / m4 / acinclude.m4
blobe61ddd8038c95faa12020aff32096249bfc131b2
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_ECJ
12   CLASSPATH_WITH_JAVAC
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     AM_CONDITIONAL(FOUND_JAVAC, test "x${JAVAC}" != x)
19   else
20     AM_CONDITIONAL(FOUND_GCJ, test "x${user_specified_javac}" = xgcj)
21     AM_CONDITIONAL(FOUND_JIKES, test "x${user_specified_javac}" = xjikes)
22     AM_CONDITIONAL(FOUND_ECJ, test "x${user_specified_javac}" = xecj)
23     AM_CONDITIONAL(FOUND_JAVAC, test "x${user_specified_javac}" = xjavac)
24   fi
25   AM_CONDITIONAL(FOUND_KJC, test "x${user_specified_javac}" = xkjc)
27   ## GCJ LOCAL
28   if test "x${GCJ}" = x && test "x${JIKES}" = x && test "x${ECJ}" = x \
29      && test "x${JAVAC}" = x && test "x${user_specified_javac}" != xkjc
30   then
31       AC_MSG_ERROR([cannot find javac, try --with-ecj])
32   fi
33   ## END GCJ LOCAL
36 dnl -----------------------------------------------------------
37 AC_DEFUN([CLASSPATH_WITH_GCJ],
39   AC_ARG_WITH([gcj],
40               [AS_HELP_STRING(--with-gcj,bytecode compilation with gcj)],
41   [
42     if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
43       CLASSPATH_CHECK_GCJ(${withval})
44     else
45       if test "x${withval}" != xno; then
46         CLASSPATH_CHECK_GCJ
47       fi
48     fi
49     user_specified_javac=gcj
50   ],
51   [
52     CLASSPATH_CHECK_GCJ
53   ])
54   AC_SUBST(GCJ)
57 dnl -----------------------------------------------------------
58 AC_DEFUN([CLASSPATH_CHECK_GCJ],
60   if test "x$1" != x; then
61     if test -f "$1"; then
62       GCJ="$1"
63     else
64       AC_PATH_PROG(GCJ, "$1")
65     fi
66   else
67     AC_PATH_PROG(GCJ, "gcj")
68   fi  
69   dnl Test the given GCJ, but use it as C (!) compiler to check version
70   if test "x$GCJ" != x; then
71     AC_MSG_CHECKING([gcj version 4.0])
72     AC_LANG_PUSH([C])
73     AC_LANG_CONFTEST(
74     [[#if __GNUC__ <= 3
75     #error GCJ 4.0.0 or higher is required
76     #endif
77     ]])
78     $GCJ -E conftest.c > /dev/null
79     gcj_4_result=$?
80     if test "x$gcj_4_result" = "x0"; then
81       AC_MSG_RESULT([4.0 or higher found])
82     else
83       AC_MSG_WARN([4.0 or higher required])
84     fi
85     AC_LANG_POP
86   fi 
89 dnl -----------------------------------------------------------
90 AC_DEFUN([CLASSPATH_WITH_JIKES],
92   AC_ARG_WITH([jikes],
93               [AS_HELP_STRING(--with-jikes,bytecode compilation with jikes)],
94   [
95     if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
96       CLASSPATH_CHECK_JIKES(${withval})
97     else
98       if test "x${withval}" != xno; then
99         CLASSPATH_CHECK_JIKES
100       fi
101     fi
102     user_specified_javac=jikes
103   ],
104   [ 
105     CLASSPATH_CHECK_JIKES
106   ])
107   AC_SUBST(JIKES)
110 dnl -----------------------------------------------------------
111 AC_DEFUN([CLASSPATH_CHECK_JIKES],
113   if test "x$1" != x; then
114     if test -f "$1"; then
115       JIKES="$1"
116     else
117       AC_PATH_PROG(JIKES, "$1")
118     fi
119   else
120     AC_PATH_PROG(JIKES, "jikes")
121   fi
122   if test "x$JIKES" != "x"; then
123     dnl Require at least version 1.19
124     AC_MSG_CHECKING(jikes version)
125     JIKES_VERSION=`$JIKES --version | awk '/^Jikes Compiler/' | cut -d ' ' -f 5`
126     JIKES_VERSION_MAJOR=`echo "$JIKES_VERSION" | cut -d '.' -f 1`
127     JIKES_VERSION_MINOR=`echo "$JIKES_VERSION" | cut -d '.' -f 2`
128     if expr "$JIKES_VERSION_MAJOR" = 1 > /dev/null; then
129       if expr "$JIKES_VERSION_MINOR" \< 19 > /dev/null; then
130         JIKES=""
131       fi
132     fi
133     if test "x$JIKES" != "x"; then
134       AC_MSG_RESULT($JIKES_VERSION)
135     else
136       AC_MSG_WARN($JIKES_VERSION: jikes 1.19 or higher required)
137     fi
139     JIKESENCODING=
140     if test -n "`$JIKES --help 2>&1 | grep encoding`"; then
141       JIKESENCODING='-encoding UTF-8'
142     fi
143     AC_SUBST(JIKESENCODING)
145     JIKESWARNINGS="+Pno-switchcheck"
146     if test "x$JIKES_VERSION_MAJOR" = x"1" ; then
147       if ! test "x$JIKES_VERSION_MINOR" = x"19"; then
148         JIKESWARNINGS="$JIKESWARNINGS +Pno-shadow"
149       fi
150     fi
151     AC_SUBST(JIKESWARNINGS)
153   fi
156 dnl -----------------------------------------------------------
157 AC_DEFUN([CLASSPATH_WITH_KJC],
159   AC_ARG_WITH([kjc], 
160               [AS_HELP_STRING(--with-kjc,bytecode compilation with kjc)],
161   [
162     if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
163       CLASSPATH_CHECK_KJC(${withval})
164     else
165       if test "x${withval}" != xno; then
166         CLASSPATH_CHECK_KJC
167       fi
168     fi
169     user_specified_javac=kjc
170   ],
171   [ 
172     CLASSPATH_CHECK_KJC
173   ])
174   AC_SUBST(KJC)
177 dnl -----------------------------------------------------------
178 AC_DEFUN([CLASSPATH_CHECK_KJC],
180   if test "x$1" != x; then
181     if test -f "$1"; then
182       KJC="$1"
183     else
184       AC_PATH_PROG(KJC, "$1")
185     fi
186   else
187     AC_PATH_PROG(KJC, "kJC")
188   fi
191 dnl -----------------------------------------------------------
192 AC_DEFUN([CLASSPATH_WITH_JAVAH],
194   AC_ARG_WITH([javah],
195               [AS_HELP_STRING(--with-javah,specify path or name of a javah-like program)],
196   [
197     if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
198       CLASSPATH_CHECK_JAVAH(${withval})
199     else
200       CLASSPATH_CHECK_JAVAH
201     fi
202   ],
203   [ 
204     CLASSPATH_CHECK_JAVAH
205   ])
206   AC_SUBST(USER_JAVAH)
209 dnl -----------------------------------------------------------
210 dnl Checking for a javah like program 
211 dnl -----------------------------------------------------------
212 AC_DEFUN([CLASSPATH_CHECK_JAVAH],
214   if test "x$1" != x; then
215     if test -f "$1"; then
216       USER_JAVAH="$1"
217     else
218       AC_PATH_PROG(USER_JAVAH, "$1")
219     fi
220   else
221     AC_PATH_PROGS([USER_JAVAH],[gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh javah])
222   fi
223   
224   if test "x${USER_JAVAH}" = x; then
225     AC_MSG_ERROR([can not find javah])
226   fi
229 dnl -----------------------------------------------------------
230 dnl CLASSPATH_WITH_CLASSLIB - checks for user specified classpath additions
231 dnl -----------------------------------------------------------
232 AC_DEFUN([CLASSPATH_WITH_CLASSLIB],
234   AC_ARG_WITH([classpath],
235               [AS_HELP_STRING(--with-classpath,specify path to a classes.zip like file)],
236   [
237     if test "x${withval}" = xyes; then
238       # set user classpath to CLASSPATH from env
239       AC_MSG_CHECKING(for classlib)
240       USER_CLASSLIB=${CLASSPATH}
241       AC_SUBST(USER_CLASSLIB)
242       AC_MSG_RESULT(${USER_CLASSLIB})
243       conditional_with_classlib=true      
244     elif test "x${withval}" != x && test "x${withval}" != xno; then
245       # set user classpath to specified value
246       AC_MSG_CHECKING(for classlib)
247       USER_CLASSLIB=${withval}
248       AC_SUBST(USER_CLASSLIB)
249       AC_MSG_RESULT(${withval})
250       conditional_with_classlib=true
251     fi
252   ],
253   [ conditional_with_classlib=false ])
254   AM_CONDITIONAL(USER_SPECIFIED_CLASSLIB, test "x${conditional_with_classlib}" = xtrue)
256   AC_ARG_WITH([vm-classes],
257               [AS_HELP_STRING(--with-vm-classes,specify path to VM override source files)], [vm_classes="$with_vm_classes"],
258               [vm_classes='${top_srcdir}/vm/reference'])
259   AC_SUBST(vm_classes)
262 dnl -----------------------------------------------------------
263 dnl CLASSPATH_WITH_GLIBJ - specify what to install
264 dnl -----------------------------------------------------------
265 AC_DEFUN([CLASSPATH_WITH_GLIBJ],
267   AC_PATH_PROG(ZIP, zip)
268   AC_ARG_WITH([fastjar],
269               [AS_HELP_STRING([--with-fastjar=PATH], [define to use a fastjar style tool])],
270               [
271                 AC_MSG_CHECKING([for user supplied fastjar])
272                 FASTJAR=${withval}
273                 AC_MSG_RESULT([${FASTJAR}])
274               ],
275               [AC_PATH_PROG(FASTJAR, fastjar)])
276 dnl We disable ZIP by default if we find fastjar.
277   if test x"${FASTJAR}" != x; then
278     ZIP=""
279   fi
280   
281   AC_ARG_WITH([glibj],
282               [AS_HELP_STRING([--with-glibj],[define what to install (zip|flat|both|none|build) [default=zip]])],
283               [
284                 if test "x${withval}" = xyes || test "x${withval}" = xzip; then
285                   install_class_files=no
286                   build_class_files=yes
287                   use_zip=yes
288                 elif test "x${withval}" = xboth; then
289                   install_class_files=yes
290                   build_class_files=yes
291                   use_zip=yes
292                 elif test "x${withval}" = xflat; then
293                   install_class_files=yes
294                   build_class_files=yes
295                   use_zip=no
296                 elif test "x${withval}" = xno || test "x${withval}" = xnone; then
297                   install_class_files=no
298                   build_class_files=no
299                   use_zip=no
300                 elif test "x${withval}" = xbuild; then
301                   install_class_files=no
302                   build_class_files=yes
303                   use_zip=no
304                 else
305                   AC_MSG_ERROR([unknown value given to --with-glibj])
306                 fi
307               ],
308               [
309                 install_class_files=no
310                 use_zip=yes
311               ])
312   AM_CONDITIONAL(INSTALL_GLIBJ_ZIP, test "x${use_zip}" = xyes)
313   AM_CONDITIONAL(INSTALL_CLASS_FILES, test "x${install_class_files}" = xyes)
314   AM_CONDITIONAL(BUILD_CLASS_FILES, test "x${build_class_files}" = xyes)
316   AC_ARG_ENABLE([examples],
317                 [AS_HELP_STRING(--enable-examples,enable build of the examples [default=yes])],
318                 [case "${enableval}" in
319                   yes) EXAMPLESDIR="examples" ;;
320                   no) EXAMPLESDIR="" ;;
321                   *) AC_MSG_ERROR(bad value ${enableval} for --enable-examples) ;;
322                 esac],
323                 [EXAMPLESDIR="examples"])
324   if test "x${use_zip}" = xno && test "x${install_class_files}" = xno; then
325     EXAMPLESDIR=""
326   fi
327   AC_SUBST(EXAMPLESDIR)
330 dnl -----------------------------------------------------------
331 dnl Enable generation of API documentation, with gjdoc if it
332 dnl has been compiled to an executable (or a suitable script
333 dnl is in your PATH) or using the argument as gjdoc executable.
334 dnl -----------------------------------------------------------
335 AC_DEFUN([CLASSPATH_WITH_GJDOC],
337   AC_ARG_WITH([gjdoc],
338               AS_HELP_STRING([--with-gjdoc],
339                              [generate documentation using gjdoc (default is NO)]),
340               [if test "x${withval}" = xno; then
341                  WITH_GJDOC=no;
342                elif test "x${withval}" = xyes -o "x{withval}" = x; then
343                  WITH_GJDOC=yes;
344                  AC_PATH_PROG(GJDOC, gjdoc, "no")
345                  if test "x${GJDOC}" = xno; then
346                    AC_MSG_ERROR("gjdoc executable not found");
347                  fi
348                else
349                  WITH_GJDOC=yes
350                  GJDOC="${withval}"
351                  AC_CHECK_FILE(${GJDOC}, AC_SUBST(GJDOC),
352                                AC_MSG_ERROR("Cannot use ${withval} as gjdoc executable since it doesn't exist"))
353                fi],
354               [WITH_GJDOC=no])
356   AM_CONDITIONAL(CREATE_API_DOCS, test "x${WITH_GJDOC}" = xyes)
359 dnl -----------------------------------------------------------
360 dnl Enable regeneration of parsers using jay
361 dnl http://www.informatik.uni-osnabrueck.de/alumni/bernd/jay/
362 dnl -----------------------------------------------------------
363 AC_DEFUN([REGEN_WITH_JAY],
365   AC_ARG_WITH([jay],
366               [AS_HELP_STRING(--with-jay,Regenerate the parsers with jay must be given the path to the jay executable)],
367   [
368     if test -d "${withval}"; then
369       JAY_DIR_PATH="${withval}"
370       AC_PATH_PROG(JAY, jay, "no", ${JAY_DIR_PATH})
371       if test "x${JAY}" = xno; then
372         AC_MSG_ERROR("jay executable not found");
373       fi
374     else
375       JAY_DIR_PATH=`dirname "${withval}"`
376       JAY="${withval}"
377       AC_SUBST(JAY)
378     fi
379     JAY_SKELETON="${JAY_DIR_PATH}/skeleton"
380     AC_CHECK_FILE(${JAY_SKELETON}, AC_SUBST(JAY_SKELETON),
381         AC_MSG_ERROR("Expected skeleton file in `dirname ${withval}`"))
382     JAY_FOUND=yes
383   ],
384   [
385     JAY_FOUND=no
386   ])
387   AM_CONDITIONAL(REGEN_PARSERS, test "x${JAY_FOUND}" = xyes)
390 dnl -----------------------------------------------------------
391 AC_DEFUN([CLASSPATH_WITH_ECJ],
393   AC_ARG_WITH([ecj],
394               [AS_HELP_STRING(--with-ecj,bytecode compilation with ecj)],
395   [
396     if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
397       CLASSPATH_CHECK_ECJ(${withval})
398     else
399       if test "x${withval}" != xno; then
400         CLASSPATH_CHECK_ECJ
401       fi
402     fi
403     user_specified_javac=ecj
404   ],
405   [ 
406     CLASSPATH_CHECK_ECJ
407   ])
408   AC_SUBST(ECJ)
411 dnl -----------------------------------------------------------
412 AC_DEFUN([CLASSPATH_CHECK_ECJ],
414   if test "x$1" != x; then
415     if test -f "$1"; then
416       ECJ="$1"
417     else
418       AC_PATH_PROG(ECJ, "$1")
419     fi
420   else
421     AC_PATH_PROG(ECJ, "ecj")
422   fi
425 dnl -----------------------------------------------------------
426 dnl GCJ LOCAL: Calculate toolexeclibdir
427 dnl -----------------------------------------------------------
428 AC_DEFUN([CLASSPATH_TOOLEXECLIBDIR],
430   multi_os_directory=`$CC -print-multi-os-directory`
431   case $multi_os_directory in
432     .) toolexeclibdir=${libdir} ;; # Avoid trailing /.
433     *) toolexeclibdir=${libdir}/${multi_os_directory} ;;
434   esac
435   AC_SUBST(toolexeclibdir)
438 dnl -----------------------------------------------------------
439 AC_DEFUN([CLASSPATH_WITH_JAVAC],
441   AC_ARG_WITH([javac],
442               [AS_HELP_STRING(--with-javac,bytecode compilation with javac)],
443   [
444     if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
445       CLASSPATH_CHECK_JAVAC(${withval})
446     else
447       if test "x${withval}" != xno; then
448         CLASSPATH_CHECK_JAVAC
449       fi
450     fi
451     user_specified_javac=javac
452   ],
453   [ 
454     CLASSPATH_CHECK_JAVAC
455   ])
456   AC_SUBST(JAVAC)
459 dnl -----------------------------------------------------------
460 AC_DEFUN([CLASSPATH_CHECK_JAVAC],
462   if test "x$1" != x; then
463     JAVAC="$1"
464   else
465     AC_PATH_PROG(JAVAC, "javac")
466   fi