OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libffi/] [configure.ac] - Blame information for rev 22

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 14 jlechner
dnl Process this with autoconf to create configure
2
 
3
AC_PREREQ(2.59)
4
 
5
AC_INIT([libffi], [2.1], [http://gcc.gnu.org/bugs.html])
6
AC_CONFIG_HEADERS([fficonfig.h])
7
 
8
AM_ENABLE_MULTILIB(, ..)
9
 
10
AC_CANONICAL_SYSTEM
11
target_alias=${target_alias-$host_alias}
12
 
13
. ${srcdir}/configure.host
14
 
15
AM_INIT_AUTOMAKE
16
 
17
# The same as in boehm-gc and libstdc++. Have to borrow it from there.
18
# We must force CC to /not/ be precious variables; otherwise
19
# the wrong, non-multilib-adjusted value will be used in multilibs.
20
# As a side effect, we have to subst CFLAGS ourselves.
21
 
22
m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
23
m4_define([_AC_ARG_VAR_PRECIOUS],[])
24
AC_PROG_CC
25
m4_rename([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
26
 
27
AC_SUBST(CFLAGS)
28
 
29
AM_PROG_AS
30
AM_PROG_CC_C_O
31
AC_PROG_LIBTOOL
32
 
33
AM_MAINTAINER_MODE
34
 
35
AC_CHECK_HEADERS(sys/mman.h)
36
AC_CHECK_FUNCS(mmap)
37
AC_FUNC_MMAP_BLACKLIST
38
 
39
dnl The -no-testsuite modules omit the test subdir.
40
AM_CONDITIONAL(TESTSUBDIR, test -d $srcdir/testsuite)
41
 
42
TARGETDIR="unknown"
43
case "$host" in
44
i*86-*-linux*) TARGET=X86; TARGETDIR=x86;;
45
i*86-*-gnu*) TARGET=X86; TARGETDIR=x86;;
46
i*86-*-solaris2.1[[0-9]]*) TARGET=X86_64; TARGETDIR=x86;;
47
i*86-*-solaris*) TARGET=X86; TARGETDIR=x86;;
48
i*86-*-beos*) TARGET=X86; TARGETDIR=x86;;
49
i*86-*-freebsd* | i*86-*-kfreebsd*-gnu) TARGET=X86; TARGETDIR=x86;;
50
i*86-*-netbsdelf* | i*86-*-knetbsd*-gnu) TARGET=X86; TARGETDIR=x86;;
51
i*86-*-rtems*) TARGET=X86; TARGETDIR=x86;;
52
i*86-*-win32*) TARGET=X86_WIN32; TARGETDIR=x86;;
53
i*86-*-cygwin*) TARGET=X86_WIN32; TARGETDIR=x86;;
54
i*86-*-mingw*) TARGET=X86_WIN32; TARGETDIR=x86;;
55
frv-*-*) TARGET=FRV; TARGETDIR=frv;;
56
sparc-sun-4*) TARGET=SPARC; TARGETDIR=sparc;;
57
sparc*-sun-*) TARGET=SPARC; TARGETDIR=sparc;;
58
sparc-*-linux* | sparc-*-netbsdelf* | sparc-*-knetbsd*-gnu) TARGET=SPARC; TARGETDIR=sparc;;
59
sparc*-*-rtems*) TARGET=SPARC; TARGETDIR=sparc;;
60
sparc64-*-linux* | sparc64-*-netbsd* | sparc64-*-knetbsd*-gnu) TARGET=SPARC; TARGETDIR=sparc;;
61
alpha*-*-linux* | alpha*-*-osf* | alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu | alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu) TARGET=ALPHA; TARGETDIR=alpha;;
62
ia64*-*-*) TARGET=IA64; TARGETDIR=ia64;;
63
m32r*-*-linux* ) TARGET=M32R; TARGETDIR=m32r;;
64
m68k-*-linux*) TARGET=M68K; TARGETDIR=m68k;;
65
mips64*-*);;
66
mips-sgi-irix5.* | mips-sgi-irix6.*) TARGET=MIPS_IRIX; TARGETDIR=mips;;
67
mips*-*-linux*) TARGET=MIPS_LINUX; TARGETDIR=mips;;
68
powerpc*-*-linux* | powerpc-*-sysv*) TARGET=POWERPC; TARGETDIR=powerpc;;
69
powerpc-*-beos*) TARGET=POWERPC; TARGETDIR=powerpc;;
70
powerpc-*-darwin*) TARGET=POWERPC_DARWIN; TARGETDIR=powerpc;;
71
powerpc-*-aix*) TARGET=POWERPC_AIX; TARGETDIR=powerpc;;
72
powerpc-*-freebsd*) TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc;;
73
powerpc*-*-rtems*) TARGET=POWERPC; TARGETDIR=powerpc;;
74
rs6000-*-aix*) TARGET=POWERPC_AIX; TARGETDIR=powerpc;;
75
arm*-*-linux-*) TARGET=ARM; TARGETDIR=arm;;
76
arm*-*-netbsdelf* | arm*-*-knetbsd*-gnu) TARGET=ARM; TARGETDIR=arm;;
77
arm*-*-rtems*) TARGET=ARM; TARGETDIR=arm;;
78
cris-*-*) TARGET=LIBFFI_CRIS; TARGETDIR=cris;;
79
s390-*-linux-*) TARGET=S390; TARGETDIR=s390;;
80
s390x-*-linux-*) TARGET=S390; TARGETDIR=s390;;
81
x86_64-*-linux* | x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu) TARGET=X86_64; TARGETDIR=x86;;
82
sh-*-linux* | sh[[34]]*-*-linux*) TARGET=SH; TARGETDIR=sh;;
83
sh-*-rtems*) TARGET=SH; TARGETDIR=sh;;
84
sh64-*-linux* | sh5*-*-linux*) TARGET=SH64; TARGETDIR=sh64;;
85
hppa-*-linux* | parisc-*-linux*) TARGET=PA; TARGETDIR=pa;;
86
esac
87
 
88
AC_SUBST(AM_RUNTESTFLAGS)
89
 
90
if test $TARGETDIR = unknown; then
91
  AC_MSG_ERROR(["libffi has not been ported to $host."])
92
fi
93
 
94
AM_CONDITIONAL(MIPS_IRIX, test x$TARGET = xMIPS_IRIX)
95
AM_CONDITIONAL(MIPS_LINUX, test x$TARGET = xMIPS_LINUX)
96
AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
97
AM_CONDITIONAL(X86, test x$TARGET = xX86)
98
AM_CONDITIONAL(X86_WIN32, test x$TARGET = xX86_WIN32)
99
AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
100
AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
101
AM_CONDITIONAL(M32R, test x$TARGET = xM32R)
102
AM_CONDITIONAL(M68K, test x$TARGET = xM68K)
103
AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC)
104
AM_CONDITIONAL(POWERPC_AIX, test x$TARGET = xPOWERPC_AIX)
105
AM_CONDITIONAL(POWERPC_DARWIN, test x$TARGET = xPOWERPC_DARWIN)
106
AM_CONDITIONAL(POWERPC_FREEBSD, test x$TARGET = xPOWERPC_FREEBSD)
107
AM_CONDITIONAL(ARM, test x$TARGET = xARM)
108
AM_CONDITIONAL(LIBFFI_CRIS, test x$TARGET = xLIBFFI_CRIS)
109
AM_CONDITIONAL(FRV, test x$TARGET = xFRV)
110
AM_CONDITIONAL(S390, test x$TARGET = xS390)
111
AM_CONDITIONAL(X86_64, test x$TARGET = xX86_64)
112
AM_CONDITIONAL(SH, test x$TARGET = xSH)
113
AM_CONDITIONAL(SH64, test x$TARGET = xSH64)
114
AM_CONDITIONAL(PA, test x$TARGET = xPA)
115
 
116
case x$TARGET in
117
  xMIPS*) TARGET=MIPS ;;
118
  *) ;;
119
esac
120
 
121
AC_HEADER_STDC
122
AC_CHECK_FUNCS(memcpy)
123
AC_FUNC_ALLOCA
124
 
125
AC_CHECK_SIZEOF(double)
126
AC_CHECK_SIZEOF(long double)
127
 
128
# Also AC_SUBST this variable for ffi.h.
129
HAVE_LONG_DOUBLE=0
130
if test $ac_cv_sizeof_double != $ac_cv_sizeof_long_double; then
131
  if test $ac_cv_sizeof_long_double != 0; then
132
    HAVE_LONG_DOUBLE=1
133
    AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the long double type and it is bigger than a double])
134
  fi
135
fi
136
AC_SUBST(HAVE_LONG_DOUBLE)
137
 
138
AC_C_BIGENDIAN
139
 
140
if test x$TARGET = xSPARC; then
141
    AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs],
142
        libffi_cv_as_sparc_ua_pcrel, [
143
        save_CFLAGS="$CFLAGS"
144
        save_LDFLAGS="$LDFLAGS"
145
        CFLAGS="$CFLAGS -fpic"
146
        LDFLAGS="$LDFLAGS -shared"
147
        AC_TRY_LINK([asm (".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo); .text");],,
148
                    [libffi_cv_as_sparc_ua_pcrel=yes],
149
                    [libffi_cv_as_sparc_ua_pcrel=no])
150
        CFLAGS="$save_CFLAGS"
151
        LDFLAGS="$save_LDFLAGS"])
152
    if test "x$libffi_cv_as_sparc_ua_pcrel" = xyes; then
153
        AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
154
                  [Define if your assembler and linker support unaligned PC relative relocs.])
155
    fi
156
 
157
    AC_CACHE_CHECK([assembler .register pseudo-op support],
158
       libffi_cv_as_register_pseudo_op, [
159
       libffi_cv_as_register_pseudo_op=unknown
160
       # Check if we have .register
161
       AC_TRY_COMPILE([asm (".register %g2, #scratch");],,
162
                       [libffi_cv_as_register_pseudo_op=yes],
163
                       [libffi_cv_as_register_pseudo_op=no])
164
    ])
165
    if test "x$libffi_cv_as_register_pseudo_op" = xyes; then
166
       AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
167
               [Define if your assembler supports .register.])
168
    fi
169
fi
170
 
171
AC_CACHE_CHECK([whether .eh_frame section should be read-only],
172
    libffi_cv_ro_eh_frame, [
173
        libffi_cv_ro_eh_frame=no
174
        echo 'extern void foo (void); void bar (void) { foo (); foo (); }' > conftest.c
175
        if $CC $CFLAGS -S -fpic -fexceptions -o conftest.s conftest.c > /dev/null 2>&1; then
176
            if grep '.section.*eh_frame.*"a"' conftest.s > /dev/null; then
177
                libffi_cv_ro_eh_frame=yes
178
            elif grep '.section.*eh_frame.*#alloc' conftest.c \
179
                 | grep -v '#write' > /dev/null; then
180
                libffi_cv_ro_eh_frame=yes
181
            fi
182
        fi
183
        rm -f conftest.*
184
    ])
185
if test "x$libffi_cv_ro_eh_frame" = xyes; then
186
    AC_DEFINE(HAVE_RO_EH_FRAME, 1,
187
              [Define if .eh_frame sections should be read-only.])
188
    AC_DEFINE(EH_FRAME_FLAGS, "a",
189
              [Define to the flags needed for the .section .eh_frame directive.])
190
else
191
    AC_DEFINE(EH_FRAME_FLAGS, "aw",
192
              [Define to the flags needed for the .section .eh_frame directive.])
193
fi
194
 
195
AC_CACHE_CHECK([for __attribute__((visibility("hidden")))],
196
    libffi_cv_hidden_visibility_attribute, [
197
        echo 'int __attribute__ ((visibility ("hidden"))) foo (void) { return 1; }' > conftest.c
198
        libffi_cv_hidden_visibility_attribute=no
199
        if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
200
            if grep '\.hidden.*foo' conftest.s >/dev/null; then
201
                libffi_cv_hidden_visibility_attribute=yes
202
            fi
203
        fi
204
        rm -f conftest.*
205
    ])
206
if test $libffi_cv_hidden_visibility_attribute = yes; then
207
    AC_DEFINE(HAVE_HIDDEN_VISIBILITY_ATTRIBUTE, 1,
208
              [Define if __attribute__((visibility("hidden"))) is supported.])
209
fi
210
 
211
AH_BOTTOM([
212
#ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
213
#ifdef LIBFFI_ASM
214
#define FFI_HIDDEN(name) .hidden name
215
#else
216
#define FFI_HIDDEN __attribute__ ((visibility ("hidden")))
217
#endif
218
#else
219
#ifdef LIBFFI_ASM
220
#define FFI_HIDDEN(name)
221
#else
222
#define FFI_HIDDEN
223
#endif
224
#endif
225
])
226
 
227
AC_SUBST(TARGET)
228
AC_SUBST(TARGETDIR)
229
 
230
AC_SUBST(SHELL)
231
 
232
AC_ARG_ENABLE(debug,
233
[  --enable-debug          debugging mode],
234
  if test "$enable_debug" = "yes"; then
235
    AC_DEFINE(FFI_DEBUG, 1, [Define this if you want extra debugging.])
236
  fi)
237
 
238
AC_ARG_ENABLE(structs,
239
[  --disable-structs       omit code for struct support],
240
  if test "$enable_structs" = "no"; then
241
    AC_DEFINE(FFI_NO_STRUCTS, 1, [Define this is you do not want support for aggregate types.])
242
  fi)
243
 
244
AC_ARG_ENABLE(raw-api,
245
[  --disable-raw-api       make the raw api unavailable],
246
  if test "$enable_raw_api" = "no"; then
247
    AC_DEFINE(FFI_NO_RAW_API, 1, [Define this is you do not want support for the raw API.])
248
  fi)
249
 
250
AC_ARG_ENABLE(purify-safety,
251
[  --enable-purify-safety  purify-safe mode],
252
  if test "$enable_purify_safety" = "yes"; then
253
    AC_DEFINE(USING_PURIFY, 1, [Define this if you are using Purify and want to suppress spurious messages.])
254
  fi)
255
 
256
if test -n "$with_cross_host" &&
257
   test x"$with_cross_host" != x"no"; then
258
  toolexecdir='$(exec_prefix)/$(target_alias)'
259
  toolexeclibdir='$(toolexecdir)/lib'
260
else
261
  toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
262
  toolexeclibdir='$(libdir)'
263
fi
264
multi_os_directory=`$CC -print-multi-os-directory`
265
case $multi_os_directory in
266
  .) ;; # Avoid trailing /.
267
  *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
268
esac
269
AC_SUBST(toolexecdir)
270
AC_SUBST(toolexeclibdir)
271
 
272
if test "${multilib}" = "yes"; then
273
  multilib_arg="--enable-multilib"
274
else
275
  multilib_arg=
276
fi
277
 
278
AC_CONFIG_COMMANDS(include, [test -d include || mkdir include])
279
AC_CONFIG_COMMANDS(src, [
280
test -d src || mkdir src
281
test -d src/$TARGETDIR || mkdir src/$TARGETDIR
282
], [TARGETDIR="$TARGETDIR"])
283
 
284
AC_CONFIG_LINKS(include/ffitarget.h:src/$TARGETDIR/ffitarget.h)
285
 
286
AC_CONFIG_FILES(include/Makefile include/ffi.h Makefile testsuite/Makefile)
287
 
288
AC_OUTPUT

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.