source: trunk/src/gcc/libjava/acinclude.m4@ 283

Last change on this file since 283 was 2, checked in by bird, 23 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 9.2 KB
Line 
1AC_DEFUN([AC_COMPILE_CHECK_SIZEOF],
2[changequote(<<, >>)dnl
3dnl The name to #define.
4define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl
5dnl The cache variable name.
6define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
7changequote([, ])dnl
8AC_MSG_CHECKING(size of $1)
9AC_CACHE_VAL(AC_CV_NAME,
10[for ac_size in 4 8 1 2 16 12 $2 ; do # List sizes in rough order of prevalence.
11 AC_TRY_COMPILE([#include "confdefs.h"
12#include <sys/types.h>
13$2
14], [switch (0) case 0: case (sizeof ($1) == $ac_size):;], AC_CV_NAME=$ac_size)
15 if test x$AC_CV_NAME != x ; then break; fi
16done
17])
18if test x$AC_CV_NAME = x ; then
19 AC_MSG_ERROR([cannot determine a size for $1])
20fi
21AC_MSG_RESULT($AC_CV_NAME)
22AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The number of bytes in type $1])
23undefine([AC_TYPE_NAME])dnl
24undefine([AC_CV_NAME])dnl
25])
26
27AC_DEFUN(LIBGCJ_CONFIGURE,
28[
29dnl Default to --enable-multilib
30AC_ARG_ENABLE(multilib,
31[ --enable-multilib build many library versions (default)],
32[case "${enableval}" in
33 yes) multilib=yes ;;
34 no) multilib=no ;;
35 *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
36 esac], [multilib=yes])dnl
37
38dnl We may get other options which we don't document:
39dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
40
41# When building with srcdir == objdir, links to the source files will
42# be created in directories within the target_subdir. We have to
43# adjust toplevel_srcdir accordingly, so that configure finds
44# install-sh and other auxiliary files that live in the top-level
45# source directory.
46if test "${srcdir}" = "."; then
47 if test -z "${with_target_subdir}"; then
48 toprel=".."
49 else
50 if test "${with_target_subdir}" != "."; then
51 toprel="${with_multisrctop}../.."
52 else
53 toprel="${with_multisrctop}.."
54 fi
55 fi
56else
57 toprel=".."
58fi
59
60libgcj_basedir=$srcdir/$toprel/$1/libjava
61AC_SUBST(libgcj_basedir)
62
63AC_CONFIG_AUX_DIR(${srcdir}/$toprel)
64if :; then :; else
65 # This overrides the previous occurrence for automake, but not for
66 # autoconf, which is exactly what we want.
67 AC_CONFIG_AUX_DIR(..)
68fi
69
70# This works around an automake problem.
71mkinstalldirs="`cd $ac_aux_dir && pwd`/mkinstalldirs"
72AC_SUBST(mkinstalldirs)
73
74AC_CANONICAL_SYSTEM
75
76dnl This shouldn't be needed, as long as top-level dependencies are
77dnl defined correctly and shared-library paths are set up so that
78dnl execution tests succeed. FIXME.
79define([AC_PROG_CC_WORKS],[])
80define([AC_PROG_CXX_WORKS],[])
81
82AC_PROG_CC
83
84# We use the libstdc++-v3 version of LIB_AC_PROG_CXX, but use
85# glibjava_CXX instead of glibcpp_CXX. That's because we're passed a
86# different definition of CXX than other directories, since we don't
87# depend on libstdc++-v3 having already been built.
88AC_DEFUN(LIB_AC_PROG_CXX,
89[AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
90dnl Fool anybody using AC_PROG_CXX.
91AC_PROVIDE([AC_PROG_CXX])
92# Use glibjava_CXX so that we do not cause CXX to be cached with the
93# flags that come in CXX while configuring libjava. They're different
94# from those used for all other target libraries. If CXX is set in
95# the environment, respect that here.
96glibjava_CXX=$CXX
97AC_CHECK_PROGS(glibjava_CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
98AC_SUBST(CXX)
99CXX=$glibjava_CXX
100test -z "$glibjava_CXX" && AC_MSG_ERROR([no acceptable c++ found in \$PATH])
101
102AC_PROG_CXX_GNU
103
104if test $ac_cv_prog_gxx = yes; then
105 GXX=yes
106dnl Check whether -g works, even if CXXFLAGS is set, in case the package
107dnl plays around with CXXFLAGS (such as to build both debugging and
108dnl normal versions of a library), tasteless as that idea is.
109 ac_test_CXXFLAGS="${CXXFLAGS+set}"
110 ac_save_CXXFLAGS="$CXXFLAGS"
111 CXXFLAGS=
112 AC_PROG_CXX_G
113 if test "$ac_test_CXXFLAGS" = set; then
114 CXXFLAGS="$ac_save_CXXFLAGS"
115 elif test $ac_cv_prog_cxx_g = yes; then
116 CXXFLAGS="-g -O2"
117 else
118 CXXFLAGS="-O2"
119 fi
120else
121 GXX=
122 test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
123fi
124])
125
126LIB_AC_PROG_CXX
127
128dnl version is pulled out to make it a bit easier to change using sed.
129version=0.0.7
130dnl Still use "libjava" here to placate dejagnu.
131AM_INIT_AUTOMAKE(libjava, $version)
132
133# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't
134# run it explicitly here, it will be run implicitly before
135# LIBGCJ_CONFIGURE, which doesn't work because that means that it will
136# be run before AC_CANONICAL_HOST.
137AC_CANONICAL_BUILD
138
139AC_CHECK_TOOL(AS, as)
140AC_CHECK_TOOL(AR, ar)
141AC_CHECK_TOOL(RANLIB, ranlib, :)
142
143AC_PROG_INSTALL
144
145AM_MAINTAINER_MODE
146
147# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
148# at least currently, we never actually build a program, so we never
149# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
150# fails, because we are probably configuring with a cross compiler
151# which cant create executables. So we include AC_EXEEXT to keep
152# automake happy, but we don't execute it, since we don't care about
153# the result.
154if false; then
155 # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
156 # to nothing, so nothing would remain between `then' and `fi' if it
157 # were not for the `:' below.
158 :
159 AC_EXEEXT
160fi
161
162# configure.host sets the following important variables
163# libgcj_cflags - host specific C compiler flags
164# libgcj_cxxflags - host specific C++ compiler flags
165# libgcj_javaflags - host specific Java compiler flags
166
167libgcj_cflags=
168libgcj_cxxflags=
169libgcj_javaflags=
170
171. [$]{srcdir}/configure.host