source: branches/libc-0.6/src/gcc/libffi/configure.in

Last change on this file was 1392, checked in by bird, 21 years ago

This commit was generated by cvs2svn to compensate for changes in r1391,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 7.1 KB
Line 
1dnl Process this with autoconf to create configure
2AC_INIT(fficonfig.h.in)
3AM_CONFIG_HEADER(fficonfig.h)
4
5# This works around the fact that libtool configuration may change LD
6# for this particular configuration, but some shells, instead of
7# keeping the changes in LD private, export them just because LD is
8# exported.
9ORIGINAL_LD_FOR_MULTILIBS=$LD
10
11dnl Default to --enable-multilib
12AC_ARG_ENABLE(multilib,
13[ --enable-multilib build many library versions (default)],
14[case "${enableval}" in
15 yes) multilib=yes ;;
16 no) multilib=no ;;
17 *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
18 esac], [multilib=yes])dnl
19
20dnl We may get other options which we don't document:
21dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
22
23if test "${srcdir}" = "."; then
24 if test "${with_target_subdir}" != "."; then
25 libffi_basedir="${with_multisrctop}../"
26 else
27 libffi_basedir="${with_multisrctop}"
28 fi
29else
30 libffi_basedir=
31fi
32AC_SUBST(libffi_basedir)
33AC_CONFIG_AUX_DIR(${libffi_basedir}..)
34
35AC_CANONICAL_HOST
36
37AM_PROG_LIBTOOL
38
39AM_INIT_AUTOMAKE(libffi,2.00-beta,no-define)
40
41AC_EXEEXT
42AM_MAINTAINER_MODE
43
44AC_PROG_CC
45AC_PROG_LIBTOOL
46
47TARGETDIR="unknown"
48case "$host" in
49mips-sgi-irix5.* | mips-sgi-irix6.*) TARGET=MIPS; TARGETDIR=mips;;
50i*86-*-linux*) TARGET=X86; TARGETDIR=x86;;
51i*86-*-sco3.2v5*) TARGET=X86; TARGETDIR=x86;;
52i*86-*-solaris*) TARGET=X86; TARGETDIR=x86;;
53i*86-*-beos*) TARGET=X86; TARGETDIR=x86;;
54i*86-*-freebsd*) TARGET=X86; TARGETDIR=x86;;
55i*86-*-netbsdelf*) TARGET=X86; TARGETDIR=x86;;
56i*86-*-win32*) TARGET=X86_WIN32; TARGETDIR=x86;;
57i*86-*-cygwin*) TARGET=X86_WIN32; TARGETDIR=x86;;
58i*86-*-mingw*) TARGET=X86_WIN32; TARGETDIR=x86;;
59sparc-sun-4*) TARGET=SPARC; TARGETDIR=sparc;;
60sparc*-sun-*) TARGET=SPARC; TARGETDIR=sparc;;
61sparc-*-linux* | sparc-*-netbsdelf*) TARGET=SPARC; TARGETDIR=sparc;;
62sparc64-*-linux* | sparc64-*-netbsd*) TARGET=SPARC; TARGETDIR=sparc;;
63alpha*-*-linux* | alpha*-*-osf* | alpha*-*-freebsd* | alpha*-*-netbsd*) TARGET=ALPHA; TARGETDIR=alpha;;
64ia64*-*-*) TARGET=IA64; TARGETDIR=ia64;;
65m68k-*-linux*) TARGET=M68K; TARGETDIR=m68k;;
66mips64*-*);;
67mips*-*-linux*) TARGET=MIPS_LINUX; TARGETDIR=mips;;
68powerpc-*-linux* | powerpc-*-sysv*) TARGET=POWERPC; TARGETDIR=powerpc;;
69powerpc-*-beos*) TARGET=POWERPC; TARGETDIR=powerpc;;
70powerpc-*-darwin*) TARGET=POWERPC_DARWIN; TARGETDIR=powerpc;;
71powerpc-*-aix*) TARGET=POWERPC_AIX; TARGETDIR=powerpc;;
72rs6000-*-aix*) TARGET=POWERPC_AIX; TARGETDIR=powerpc;;
73arm*-*-linux-*) TARGET=ARM; TARGETDIR=arm;;
74s390-*-linux-*) TARGET=S390; TARGETDIR=s390;;
75s390x-*-linux-*) TARGET=S390; TARGETDIR=s390;;
76x86_64-*-linux*) TARGET=X86_64; TARGETDIR=x86;;
77sh-*-linux* | sh[[34]]*-*-linux*) TARGET=SH; TARGETDIR=sh;;
78esac
79
80if test $TARGETDIR = unknown; then
81 AC_ERROR("libffi has not been ported to $host.")
82fi
83
84AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes)
85AM_CONDITIONAL(MIPS_SGI, test ${TARGET}${ac_cv_prog_gcc} = MIPSno)
86AM_CONDITIONAL(MIPS_LINUX, test x$TARGET = xMIPS_LINUX)
87AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
88AM_CONDITIONAL(X86, test x$TARGET = xX86)
89AM_CONDITIONAL(X86_WIN32, test x$TARGET = xX86_WIN32)
90AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
91AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
92AM_CONDITIONAL(M68K, test x$TARGET = xM68K)
93AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC)
94AM_CONDITIONAL(POWERPC_AIX, test x$TARGET = xPOWERPC_AIX)
95AM_CONDITIONAL(POWERPC_DARWIN, test x$TARGET = xPOWERPC_DARWIN)
96AM_CONDITIONAL(ARM, test x$TARGET = xARM)
97AM_CONDITIONAL(S390, test x$TARGET = xS390)
98AM_CONDITIONAL(X86_64, test x$TARGET = xX86_64)
99AM_CONDITIONAL(SH, test x$TARGET = xSH)
100
101if test x$TARGET = xMIPS_LINUX; then
102 TARGET=MIPS
103fi
104
105AC_HEADER_STDC
106AC_CHECK_FUNCS(memcpy)
107AC_FUNC_ALLOCA
108
109dnl AC_CHECK_SIZEOF(char)
110AC_COMPILE_CHECK_SIZEOF(short)
111AC_COMPILE_CHECK_SIZEOF(int)
112AC_COMPILE_CHECK_SIZEOF(long)
113AC_COMPILE_CHECK_SIZEOF(long long)
114AC_COMPILE_CHECK_SIZEOF(float)
115AC_COMPILE_CHECK_SIZEOF(double)
116AC_COMPILE_CHECK_SIZEOF(long double)
117
118AC_COMPILE_CHECK_SIZEOF(void *)
119AC_C_BIGENDIAN_CROSS
120
121if test x$TARGET = xSPARC; then
122 AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs],
123 libffi_cv_as_sparc_ua_pcrel, [
124 save_CFLAGS="$CFLAGS"
125 save_LDFLAGS="$LDFLAGS"
126 CFLAGS="$CFLAGS -fpic"
127 LDFLAGS="$LDFLAGS -shared"
128 AC_TRY_LINK([asm (".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo); .text");],,
129 [libffi_cv_as_sparc_ua_pcrel=yes],
130 [libffi_cv_as_sparc_ua_pcrel=no])
131 CFLAGS="$save_CFLAGS"
132 LDFLAGS="$save_LDFLAGS"])
133 if test "x$libffi_cv_as_sparc_ua_pcrel" = xyes; then
134 AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
135 [Define if your assembler and linker support unaligned PC relative relocs.])
136 fi
137
138 AC_CACHE_CHECK([assembler .register pseudo-op support],
139 libffi_cv_as_register_pseudo_op, [
140 libffi_cv_as_register_pseudo_op=unknown
141 # Check if we have .register
142 AC_TRY_COMPILE([asm (".register %g2, #scratch");],,
143 [libffi_cv_as_register_pseudo_op=yes],
144 [libffi_cv_as_register_pseudo_op=no])
145 ])
146 if test "x$libffi_cv_as_register_pseudo_op" = xyes; then
147 AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
148 [Define if your assembler supports .register.])
149 fi
150fi
151
152AC_SUBST(TARGET)
153AC_SUBST(TARGETDIR)
154
155AC_SUBST(SHELL)
156
157AC_ARG_ENABLE(debug,
158[ --enable-debug debugging mode],
159 if test "$enable_debug" = "yes"; then
160 AC_DEFINE(FFI_DEBUG)
161 fi)
162
163AC_ARG_ENABLE(structs,
164[ --disable-structs omit code for struct support],
165 if test "$enable_structs" = "no"; then
166 AC_DEFINE(FFI_NO_STRUCTS)
167 fi)
168
169AC_ARG_ENABLE(raw-api,
170[ --disable-raw-api make the raw api unavailable],
171 if test "$enable_raw_api" = "no"; then
172 AC_DEFINE(FFI_NO_RAW_API)
173 fi)
174
175AC_ARG_ENABLE(purify-safety,
176[ --enable-purify-safety purify-safe mode],
177 if test "$enable_purify_safety" = "yes"; then
178 AC_DEFINE(USING_PURIFY)
179 fi)
180
181if test -n "$with_cross_host" &&
182 test x"$with_cross_host" != x"no"; then
183 toolexecdir='$(exec_prefix)/$(target_alias)'
184 toolexeclibdir='$(toolexecdir)/lib'
185else
186 toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
187 toolexeclibdir='$(libdir)'
188fi
189toolexeclibdir=$toolexeclibdir/`$CC -print-multi-os-directory`
190AC_SUBST(toolexecdir)
191AC_SUBST(toolexeclibdir)
192
193if test "${multilib}" = "yes"; then
194 multilib_arg="--enable-multilib"
195else
196 multilib_arg=
197fi
198
199AC_OUTPUT(include/Makefile include/ffi.h Makefile,
200[
201if test -n "$CONFIG_FILES"; then
202 LD="${ORIGINAL_LD_FOR_MULTILIBS}"
203 ac_file=Makefile . ${srcdir}/${libffi_basedir}../config-ml.in
204fi
205],
206srcdir=${srcdir}
207host=${host}
208target=${target}
209with_multisubdir=${with_multisubdir}
210ac_configure_args="${multilib_arg} ${ac_configure_args}"
211CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
212libffi_basedir=${libffi_basedir}
213CC="${CC}"
214DEFS="$DEFS"
215ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
216test ! -d include && mkdir include
217test ! -f include/fficonfig.h && cp fficonfig.h include/fficonfig.h
218if cmp -s fficonfig.h include/fficonfig.h 2>/dev/null; then
219 echo fficonfig.h unchanged
220else
221 echo Moving fficonfig.h to include/fficonfig.h
222 cp fficonfig.h include/fficonfig.h
223fi
224)
225
226# Make target subdirectories if required.
227test -d src || mkdir src
228test -d src/${TARGETDIR} || mkdir src/${TARGETDIR}
Note: See TracBrowser for help on using the repository browser.