ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/Windows/configure.ac
Revision: 1.7
Committed: 2007-01-13T18:21:30Z (17 years, 5 months ago) by gbeauche
Branch: MAIN
CVS Tags: HEAD
Changes since 1.6: +0 -1 lines
Log Message:
Remove the 33-bit addressing hack as it's overly complex for not much gain.
Rather, use an address override prefix (0x67) though Intel Core optimization
reference guide says to avoid LCP prefixes. In practise, impact on performance
is measurably marginal on e.g. Speedometer tests.

File Contents

# User Rev Content
1 gbeauche 1.3 dnl Process this file with autoconf to produce a configure script.
2     dnl Written in 2002 by Christian Bauer et al.
3    
4     AC_INIT([Basilisk II], 1.0, [Christian.Bauer@uni-mainz.de], BasiliskII)
5     AC_CONFIG_SRCDIR(main_windows.cpp)
6     AC_CONFIG_AUX_DIR(../Unix)
7     AC_PREREQ(2.52)
8     AC_CONFIG_HEADER(config.h)
9    
10     dnl Aliases for PACKAGE and VERSION macros.
11     AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE_NAME", [Define this program name.])
12     AC_DEFINE_UNQUOTED(VERSION, "$PACKAGE_VERSION", [Define this program version.])
13    
14 gbeauche 1.5 dnl SDL options.
15     AC_ARG_ENABLE(sdl-static, [ --enable-sdl-static use SDL static libraries for linking [default=no]], [WANT_SDL_STATIC=$enableval], [WANT_SDL_STATIC=no])
16    
17 gbeauche 1.3 dnl JIT compiler options.
18     AC_ARG_ENABLE(jit-compiler, [ --enable-jit-compiler enable JIT compiler [default=yes]], [WANT_JIT=$enableval], [WANT_JIT=yes])
19     AC_ARG_ENABLE(jit-debug, [ --enable-jit-debug activate native code disassemblers [default=no]], [WANT_JIT_DEBUG=$enableval], [WANT_JIT_DEBUG=no])
20    
21     dnl FPU emulation core.
22     AC_ARG_ENABLE(fpe,
23     [ --enable-fpe=FPE specify which fpu emulator to use [default=auto]],
24     [ case "$enableval" in
25     dnl default is always ieee, if architecture has this fp format
26     auto) FPE_CORE_TEST_ORDER="ieee uae";;
27     ieee) FPE_CORE_TEST_ORDER="ieee";;
28     uae) FPE_CORE_TEST_ORDER="uae";;
29     x86) FPE_CORE_TEST_ORDER="x86";;
30     *) AC_MSG_ERROR([--enable-fpe takes only one of the following values: auto, x86, ieee, uae]);;
31     esac
32     ],
33     [ FPE_CORE_TEST_ORDER="ieee uae"
34     ])
35    
36     dnl External packages.
37     AC_ARG_WITH(gtk, [ --with-gtk use GTK user interface [default=yes]], [WANT_GTK=$withval], [WANT_GTK=yes])
38    
39     dnl Addressing modes.
40     AC_ARG_ENABLE(addressing,
41     [ --enable-addressing=AM specify the addressing mode to use [default=fastest]],
42     [ case "$enableval" in
43     direct) ADDRESSING_TEST_ORDER="direct";;
44     banks) ADDRESSING_TEST_ORDER="banks";;
45     fastest)ADDRESSING_TEST_ORDER="direct banks";;
46     *) AC_MSG_ERROR([--enable-addressing takes only one of the following values: fastest, direct, banks]);;
47     esac
48     ],
49     [ ADDRESSING_TEST_ORDER="direct banks"
50     ])
51    
52     dnl Canonical system information.
53     AC_CANONICAL_HOST
54     AC_CANONICAL_TARGET
55    
56     dnl Target CPU type.
57     HAVE_I386=no
58     HAVE_POWERPC=no
59     HAVE_X86_64=no
60     case "$target_cpu" in
61     i386* | i486* | i586* | i686* | i786* ) HAVE_I386=yes;;
62     powerpc* ) HAVE_POWERPC=yes;;
63     x86_64* ) HAVE_X86_64=yes;;
64     esac
65    
66     dnl Checks for programs.
67     AC_PROG_CC
68     AC_PROG_CC_C_O
69     AC_PROG_CPP
70     AC_PROG_CXX
71     AC_PROG_MAKE_SET
72     AC_PROG_EGREP
73     AC_PROG_LN_S
74     AC_CHECK_TOOL(WINDRES, windres)
75    
76     dnl We use GTK+ if possible.
77     if [[ "x$WANT_GTK" = "xyes" ]]; then
78     AM_PATH_GTK_2_0(1.3.15, [], [
79     AC_MSG_WARN([Could not find GTK+ 2.0, disabling user interface.])
80     WANT_GTK=no
81     ])
82     fi
83     AC_SUBST(WANT_GTK)
84    
85     dnl We use 64-bit file size support if possible.
86     AC_SYS_LARGEFILE
87    
88     dnl Checks for header files.
89     AC_HEADER_STDC
90    
91     dnl Checks for typedefs, structures, and compiler characteristics.
92     AC_C_BIGENDIAN
93     AC_C_CONST
94     AC_C_INLINE
95     AC_CHECK_SIZEOF(short, 2)
96     AC_CHECK_SIZEOF(int, 4)
97     AC_CHECK_SIZEOF(long, 4)
98     AC_CHECK_SIZEOF(long long, 8)
99     AC_CHECK_SIZEOF(float, 4)
100     AC_CHECK_SIZEOF(double, 8)
101     AC_CHECK_SIZEOF(long double, 12)
102     AC_CHECK_SIZEOF(void *, 4)
103     AC_TYPE_OFF_T
104     AC_CHECK_TYPES(loff_t)
105     AC_CHECK_TYPES(caddr_t)
106     AC_TYPE_SIZE_T
107    
108 gbeauche 1.6 dnl Checks for library functions.
109     AC_CHECK_FUNCS(strdup strerror)
110    
111 gbeauche 1.3 dnl Define a macro that translates a yesno-variable into a C macro definition
112     dnl to be put into the config.h file
113     dnl $1 -- the macro to define
114     dnl $2 -- the value to translate
115     dnl $3 -- template name
116     AC_DEFUN([AC_TRANSLATE_DEFINE], [
117     if [[ "x$2" = "xyes" -o "x$2" = "xguessing yes" ]]; then
118     AC_DEFINE($1, 1, $3)
119     fi
120     ])
121    
122     dnl Check that VirtualAlloc(), VirtualProtect() work
123     AC_CACHE_CHECK([whether VirtualProtect works],
124     ac_cv_VirtualProtect_works, [
125     AC_LANG_SAVE
126     AC_LANG_CPLUSPLUS
127     ac_cv_VirtualProtect_works=yes
128     dnl First the tests that should segfault
129     for test_def in NONE_READ NONE_WRITE READ_WRITE; do
130     AC_TRY_RUN([
131     #define HAVE_WIN32_VM 1
132     #define CONFIGURE_TEST_VM_MAP
133     #define TEST_VM_PROT_$test_def
134     #include "../Unix/vm_alloc.cpp"
135     ], ac_cv_VirtualProtect_works=no, rm -f core,
136     dnl When cross-compiling, assume it works
137     ac_cv_VirtualProtect_works="yes"
138     )
139     done
140     AC_TRY_RUN([
141     #define HAVE_WIN32_VM 1
142     #define CONFIGURE_TEST_VM_MAP
143     #define TEST_VM_PROT_RDWR_WRITE
144     #include "../Unix/vm_alloc.cpp"
145     ], , ac_cv_VirtualProtect_works=no,
146     dnl When cross-compiling, assume it works
147     ac_cv_VirtualProtect_works="yes"
148     )
149     AC_LANG_RESTORE
150     ]
151     )
152     if [[ "x$ac_cv_VirtualProtect_works" = "xyes" ]]; then
153     AC_DEFINE(HAVE_WIN32_VM, 1, [Define if your system has a working Win32-based memory allocator.])
154     else
155     AC_MSG_ERROR([Sorry, Windows VM functions don't work as expected on your system.])
156     fi
157    
158     dnl Check if Windows exceptions are supported.
159     AC_CACHE_CHECK([whether your system supports Windows exceptions],
160     ac_cv_have_win32_exceptions, [
161     AC_LANG_SAVE
162     AC_LANG_CPLUSPLUS
163     AC_TRY_RUN([
164     #define HAVE_WIN32_EXCEPTIONS 1
165     #define CONFIGURE_TEST_SIGSEGV_RECOVERY
166     #include "../Unix/vm_alloc.cpp"
167     #include "../Unix/sigsegv.cpp"
168     ],
169     ac_cv_have_win32_exceptions=yes,
170     ac_cv_have_win32_exceptions=no,
171     dnl When cross-compiling, assume it works
172     ac_cv_have_win32_exceptions="yes"
173     )
174     AC_LANG_RESTORE
175     ]
176     )
177     if [[ "x$ac_cv_have_win32_exceptions" = "xyes" ]]; then
178     AC_DEFINE(HAVE_WIN32_EXCEPTIONS, 1, [Define if your system supports Windows exceptions.])
179     else
180     AC_MSG_ERROR([Sorry, Windows exceptions don't work as expected on your system.])
181     fi
182    
183 gbeauche 1.4 dnl Check if we can ignore the fault (instruction skipping in SIGSEGV handler)
184     AC_CACHE_CHECK([whether we can skip instruction in SIGSEGV handler],
185     ac_cv_have_skip_instruction, [
186     AC_LANG_SAVE
187     AC_LANG_CPLUSPLUS
188     AC_TRY_RUN([
189     #define HAVE_SIGSEGV_SKIP_INSTRUCTION 1
190     #define CONFIGURE_TEST_SIGSEGV_RECOVERY
191     #include "../Unix/vm_alloc.cpp"
192     #include "../Unix/sigsegv.cpp"
193     ], ac_cv_have_skip_instruction=yes, ac_cv_have_skip_instruction=no,
194     dnl When cross-compiling, do not assume anything.
195     ac_cv_have_skip_instruction=no
196     )
197     AC_LANG_RESTORE
198     ]
199     )
200     AC_TRANSLATE_DEFINE(HAVE_SIGSEGV_SKIP_INSTRUCTION, "$ac_cv_have_skip_instruction",
201     [Define if we can ignore the fault (instruction skipping in SIGSEGV handler).])
202    
203 gbeauche 1.3 dnl We really want VOSF (Video on SEGV Signals) screen updates acceleration
204     AC_DEFINE(ENABLE_VOSF, 1, [Define if using video enabled on SEGV signals.])
205    
206     dnl Determine the addressing mode to use
207     ADDRESSING_MODE=""
208     AC_MSG_CHECKING([for the addressing mode to use])
209     for am in $ADDRESSING_TEST_ORDER; do
210     case $am in
211     direct)
212     dnl Direct addressing mode (constant offset)
213     ADDRESSING_MODE="direct"
214     DEFINES="$DEFINES -DDIRECT_ADDRESSING"
215     break
216     ;;
217     banks)
218     dnl Default addressing mode
219     ADDRESSING_MODE="memory banks"
220     break
221     ;;
222     *)
223     AC_MSG_ERROR([Internal configure.ac script error for $am addressing mode])
224     esac
225     done
226     AC_MSG_RESULT($ADDRESSING_MODE)
227     if [[ "x$ADDRESSING_MODE" = "x" ]]; then
228     AC_MSG_WARN([Sorry, no suitable addressing mode in $ADDRESSING_TEST_ORDER])
229     ADDRESSING_MODE="memory banks"
230     fi
231    
232     dnl Banked Memory Addressing mode is not supported by the JIT compiler
233     if [[ "x$WANT_JIT" = "xyes" -a "x$ADDRESSING_MODE" = "xmemory banks" ]]; then
234     AC_MSG_ERROR([Sorry, the JIT Compiler requires Direct Addressing, at least])
235     fi
236    
237     dnl Check for GAS.
238     HAVE_GAS=no
239     AC_MSG_CHECKING(for GAS .p2align feature)
240     cat >conftest.S << EOF
241     .text
242     .p2align 5
243     EOF
244     if $CC conftest.S -c -o conftest.o >/dev/null 2>&1 ; then HAVE_GAS=yes; fi
245     AC_MSG_RESULT($HAVE_GAS)
246    
247     dnl Check for GCC 2.7 or higher.
248     HAVE_GCC27=no
249     AC_MSG_CHECKING(for GCC 2.7 or higher)
250     AC_EGREP_CPP(xyes,
251     [#if __GNUC__ - 1 > 1 || __GNUC_MINOR__ - 1 > 5
252     xyes
253     #endif
254     ], [AC_MSG_RESULT(yes); HAVE_GCC27=yes], AC_MSG_RESULT(no))
255    
256     dnl Check for GCC 3.0 or higher.
257     HAVE_GCC30=no
258     AC_MSG_CHECKING(for GCC 3.0 or higher)
259     AC_EGREP_CPP(xyes,
260     [#if __GNUC__ >= 3
261     xyes
262     #endif
263     ], [AC_MSG_RESULT(yes); HAVE_GCC30=yes], AC_MSG_RESULT(no))
264    
265 gbeauche 1.6 dnl Add -fno-strict-aliasing for slirp sources
266     if [[ "x$HAVE_GCC30" = "xyes" ]]; then
267     SAVED_CFLAGS="$CFLAGS"
268     CFLAGS="$CFLAGS -fno-strict-aliasing"
269     AC_CACHE_CHECK([whether the compiler supports -fno-strict-aliasing],
270     ac_cv_gcc_no_strict_aliasing, [
271     AC_TRY_COMPILE([],[],
272     [ac_cv_gcc_no_strict_aliasing=yes; AC_SUBST(SLIRP_CFLAGS, "-fno-strict-aliasing")],
273     [ac_cv_gcc_no_strict_aliasing=no])
274     ])
275     CFLAGS="$SAVED_CFLAGS"
276     fi
277    
278 gbeauche 1.3 dnl Select appropriate CPU source and REGPARAM define.
279     ASM_OPTIMIZATIONS=none
280     CPUSRCS="cpuemu1.cpp cpuemu2.cpp cpuemu3.cpp cpuemu4.cpp cpuemu5.cpp cpuemu6.cpp cpuemu7.cpp cpuemu8.cpp"
281    
282     dnl JITSRCS will be emptied later if the JIT is not available
283     dnl Other platforms should define their own set of noflags file variants
284     CAN_JIT=no
285     JITSRCS="compemu1.cpp compemu2.cpp compemu3.cpp compemu4.cpp compemu5.cpp compemu6.cpp compemu7.cpp compemu8.cpp"
286    
287     if [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_I386" = "xyes" ]]; then
288     dnl i386 CPU
289     DEFINES="$DEFINES -DUNALIGNED_PROFITABLE -DREGPARAM=\"__attribute__((regparm(3)))\""
290     if [[ "x$HAVE_GAS" = "xyes" ]]; then
291     ASM_OPTIMIZATIONS=i386
292     DEFINES="$DEFINES -DX86_ASSEMBLY -DOPTIMIZED_FLAGS -DSAHF_SETO_PROFITABLE"
293     JITSRCS="cpuemu1_nf.cpp cpuemu2_nf.cpp cpuemu3_nf.cpp cpuemu4_nf.cpp cpuemu5_nf.cpp cpuemu6_nf.cpp cpuemu7_nf.cpp cpuemu8_nf.cpp $JITSRCS"
294     CAN_JIT=yes
295     fi
296     elif [[ "x$HAVE_GCC30" = "xyes" -a "x$HAVE_X86_64" = "xyes" ]]; then
297     dnl x86-64 CPU
298     DEFINES="$DEFINES -DUNALIGNED_PROFITABLE"
299     if [[ "x$HAVE_GAS" = "xyes" ]]; then
300     ASM_OPTIMIZATIONS="x86-64"
301     DEFINES="$DEFINES -DX86_64_ASSEMBLY -DOPTIMIZED_FLAGS"
302     JITSRCS="cpuemu1_nf.cpp cpuemu2_nf.cpp cpuemu3_nf.cpp cpuemu4_nf.cpp cpuemu5_nf.cpp cpuemu6_nf.cpp cpuemu7_nf.cpp cpuemu8_nf.cpp $JITSRCS"
303     CAN_JIT=yes
304     fi
305     fi
306    
307     dnl Enable JIT compiler, if possible.
308     if [[ "x$WANT_JIT" = "xyes" -a "x$CAN_JIT" ]]; then
309     JITSRCS="$JITSRCS ../uae_cpu/compiler/compemu_support.cpp ../uae_cpu/compiler/compemu_fpp.cpp compstbl.o cpustbl_nf.o"
310     DEFINES="$DEFINES -DUSE_JIT -DUSE_JIT_FPU"
311    
312     if [[ "x$WANT_JIT_DEBUG" = "xyes" ]]; then
313     if [[ "x$WANT_MON" = "xyes" ]]; then
314     DEFINES="$DEFINES -DJIT_DEBUG=1"
315     else
316     AC_MSG_WARN([cxmon not found, ignoring --enable-jit-debug])
317     WANT_JIT_DEBUG=no
318     fi
319     fi
320    
321     dnl IEEE core is the only FPU emulator to use with the JIT compiler
322     case $FPE_CORE_TEST_ORDER in
323     ieee*) ;;
324     *) AC_MSG_WARN([Forcing use of the IEEE FPU core, as the JIT compiler supports only this one.]) ;;
325     esac
326     FPE_CORE_TEST_ORDER="ieee"
327     else
328     WANT_JIT=no
329     WANT_JIT_DEBUG=no
330     JITSRCS=""
331     fi
332    
333     dnl Utility macro used by next two tests.
334     dnl AC_EXAMINE_OBJECT(C source code,
335     dnl commands examining object file,
336     dnl [commands to run if compile failed]):
337     dnl
338     dnl Compile the source code to an object file; then convert it into a
339     dnl printable representation. All unprintable characters and
340     dnl asterisks (*) are replaced by dots (.). All white space is
341     dnl deleted. Newlines (ASCII 0x10) in the input are preserved in the
342     dnl output, but runs of newlines are compressed to a single newline.
343     dnl Finally, line breaks are forcibly inserted so that no line is
344     dnl longer than 80 columns and the file ends with a newline. The
345     dnl result of all this processing is in the file conftest.dmp, which
346     dnl may be examined by the commands in the second argument.
347     dnl
348     AC_DEFUN([gcc_AC_EXAMINE_OBJECT],
349     [AC_LANG_SAVE
350     AC_LANG_C
351     dnl Next bit cribbed from AC_TRY_COMPILE.
352     cat > conftest.$ac_ext <<EOF
353     [#line __oline__ "configure"
354     #include "confdefs.h"
355     $1
356     ]EOF
357     if AC_TRY_EVAL(ac_compile); then
358     od -c conftest.o |
359     sed ['s/^[0-7]*[ ]*/ /
360     s/\*/./g
361     s/ \\n/*/g
362     s/ [0-9][0-9][0-9]/./g
363     s/ \\[^ ]/./g'] |
364     tr -d '
365     ' | tr -s '*' '
366     ' | fold | sed '$a\
367     ' > conftest.dmp
368     $2
369     ifelse($3, , , else
370     $3
371     )dnl
372     fi
373     rm -rf conftest*
374     AC_LANG_RESTORE])
375    
376     dnl Floating point format probe.
377     dnl The basic concept is the same as the above: grep the object
378     dnl file for an interesting string. We have to watch out for
379     dnl rounding changing the values in the object, however; this is
380     dnl handled by ignoring the least significant byte of the float.
381     dnl
382     dnl Does not know about VAX G-float or C4x idiosyncratic format.
383     dnl It does know about PDP-10 idiosyncratic format, but this is
384     dnl not presently supported by GCC. S/390 "binary floating point"
385     dnl is in fact IEEE (but maybe we should have that in EBCDIC as well
386     dnl as ASCII?)
387     dnl
388     AC_DEFUN([gcc_AC_C_FLOAT_FORMAT],
389     [AC_CACHE_CHECK(floating point format, ac_cv_c_float_format,
390     [gcc_AC_EXAMINE_OBJECT(
391     [/* This will not work unless sizeof(double) == 8. */
392     extern char sizeof_double_must_be_8 [sizeof(double) == 8 ? 1 : -1];
393    
394     /* This structure must have no internal padding. */
395     struct possibility {
396     char prefix[8];
397     double candidate;
398     char postfix[8];
399     };
400    
401     #define C(cand) { "\nformat:", cand, ":tamrof\n" }
402     struct possibility table [] =
403     {
404     C( 3.25724264705901305206e+01), /* @@IEEEFP - IEEE 754 */
405     C( 3.53802595280598432000e+18), /* D__float - VAX */
406     C( 5.32201830133125317057e-19), /* D.PDP-10 - PDP-10 - the dot is 0x13a */
407     C( 1.77977764695171661377e+10), /* IBMHEXFP - s/390 format, ascii */
408     C(-5.22995989424860458374e+10) /* IBMHEXFP - s/390 format, EBCDIC */
409     };],
410     [if grep 'format:.@IEEEF.:tamrof' conftest.dmp >/dev/null 2>&1; then
411     ac_cv_c_float_format='IEEE (big-endian)'
412     elif grep 'format:.I@@PFE.:tamrof' conftest.dmp >/dev/null 2>&1; then
413     ac_cv_c_float_format='IEEE (big-endian)'
414     elif grep 'format:.FEEEI@.:tamrof' conftest.dmp >/dev/null 2>&1; then
415     ac_cv_c_float_format='IEEE (little-endian)'
416     elif grep 'format:.EFP@@I.:tamrof' conftest.dmp >/dev/null 2>&1; then
417     ac_cv_c_float_format='IEEE (little-endian)'
418     elif grep 'format:.__floa.:tamrof' conftest.dmp >/dev/null 2>&1; then
419     ac_cv_c_float_format='VAX D-float'
420     elif grep 'format:..PDP-1.:tamrof' conftest.dmp >/dev/null 2>&1; then
421     ac_cv_c_float_format='PDP-10'
422     elif grep 'format:.BMHEXF.:tamrof' conftest.dmp >/dev/null 2>&1; then
423     ac_cv_c_float_format='IBM 370 hex'
424     else
425     AC_MSG_ERROR(Unknown floating point format)
426     fi],
427     [AC_MSG_ERROR(compile failed)])
428     ])
429     # IEEE is the default format. If the float endianness isn't the same
430     # as the integer endianness, we have to set FLOAT_WORDS_BIG_ENDIAN
431     # (which is a tristate: yes, no, default). This is only an issue with
432     # IEEE; the other formats are only supported by a few machines each,
433     # all with the same endianness.
434     format=IEEE_FLOAT_FORMAT
435     fbigend=
436     case $ac_cv_c_float_format in
437     'IEEE (big-endian)' )
438     if test $ac_cv_c_bigendian = no; then
439     fbigend=1
440     fi
441     ;;
442     'IEEE (little-endian)' )
443     if test $ac_cv_c_bigendian = yes; then
444     fbigend=0
445     fi
446     ;;
447     'VAX D-float' )
448     format=VAX_FLOAT_FORMAT
449     ;;
450     'PDP-10' )
451     format=PDP10_FLOAT_FORMAT
452     ;;
453     'IBM 370 hex' )
454     format=IBM_FLOAT_FORMAT
455     ;;
456     esac
457     AC_DEFINE_UNQUOTED(HOST_FLOAT_FORMAT, $format,
458     [Define to the floating point format of the host machine.])
459     if test -n "$fbigend"; then
460     AC_DEFINE_UNQUOTED(HOST_FLOAT_WORDS_BIG_ENDIAN, $fbigend,
461     [Define to 1 if the host machine stores floating point numbers in
462     memory with the word containing the sign bit at the lowest address,
463     or to 0 if it does it the other way around.
464    
465     This macro should not be defined if the ordering is the same as for
466     multi-word integers.])
467     fi
468     ])
469    
470     dnl Select appropriate FPU source.
471     gcc_AC_C_FLOAT_FORMAT
472     AC_CHECK_HEADERS(ieee754.h ieeefp.h floatingpoint.h nan.h)
473    
474     for fpe in $FPE_CORE_TEST_ORDER; do
475     case $fpe in
476     ieee)
477     case $ac_cv_c_float_format in
478     IEEE*)
479     FPE_CORE="IEEE fpu core"
480     DEFINES="$DEFINES -DFPU_IEEE"
481     FPUSRCS="../uae_cpu/fpu/fpu_ieee.cpp"
482     dnl Math functions not mandated by C99 standard
483     AC_CHECK_FUNCS(isnanl isinfl)
484     dnl Math functions required by C99 standard, but probably not
485     dnl implemented everywhere. In that case, we fall back to the
486     dnl regular variant for doubles.
487     AC_CHECK_FUNCS(logl log10l expl powl fabsl sqrtl)
488     AC_CHECK_FUNCS(sinl cosl tanl sinhl coshl tanhl)
489     AC_CHECK_FUNCS(asinl acosl atanl asinhl acoshl atanhl)
490     AC_CHECK_FUNCS(floorl ceill)
491     break
492     ;;
493     esac
494     ;;
495     x86)
496     if [[ ":$HAVE_GCC27:$HAVE_I386:$HAVE_GAS:" = ":yes:yes:yes:" ]]; then
497     FPE_CORE="i387 fpu core"
498     DEFINES="$DEFINES -DFPU_X86"
499     FPUSRCS="../uae_cpu/fpu/fpu_x86.cpp"
500     break
501     fi
502     ;;
503     uae)
504     FPE_CORE="uae fpu core"
505     DEFINES="$DEFINES -DFPU_UAE"
506     FPUSRCS="../uae_cpu/fpu/fpu_uae.cpp"
507     break
508     ;;
509     *)
510     AC_MSG_ERROR([Internal configure.in script error for $fpe fpu core])
511     ;;
512     esac
513     done
514     if [[ "x$FPE_CORE" = "x" ]]; then
515     AC_MSG_ERROR([Sorry, no suitable FPU core found in $FPE_CORE_TEST_ORDER])
516     fi
517    
518     dnl Check for certain math functions
519     AC_CHECK_FUNCS(atanh)
520     AC_CHECK_FUNCS(isnan isinf finite isnormal signbit)
521    
522     dnl UAE CPU sources for all non-m68k-native architectures.
523     CPUINCLUDES="-I../uae_cpu"
524     CPUSRCS="../uae_cpu/basilisk_glue.cpp ../uae_cpu/memory.cpp ../uae_cpu/newcpu.cpp ../uae_cpu/readcpu.cpp $FPUSRCS cpustbl.cpp cpudefs.cpp $CPUSRCS $JITSRCS"
525    
526     dnl We really want SDL for now
527     AC_CHECK_TOOL(sdl_config, sdl-config, [AC_MSG_ERROR([Sorry, you currently need SDL for this port])])
528     SDL_CFLAGS=`$sdl_config --cflags`
529     AC_SUBST(SDL_CFLAGS)
530 gbeauche 1.5 if [[ "x$WANT_SDL_STATIC" = "xyes" ]]; then
531     SDL_LIBS=`$sdl_config --static-libs`
532     sdl_prefix=`$sdl_config --exec-prefix`
533     if [[ -n "$sdl_prefix" ]]; then
534     SDL_LIBS=`echo "$SDL_LIBS" | sed -e "s,-l\(SDLmain\|SDL\),$sdl_prefix/lib/lib\1.a,g"`
535     fi
536     SDL_LIBS="$SDL_LIBS -lwinmm"
537     else
538     SDL_LIBS=`$sdl_config --libs`
539     fi
540 gbeauche 1.3 AC_SUBST(SDL_LIBS)
541     AC_DEFINE(USE_SDL, 1, [Define to enble SDL support])
542     AC_DEFINE(USE_SDL_VIDEO, 1, [Define to enable SDL video graphics support])
543     AC_DEFINE(USE_SDL_AUDIO, 1, [Define to enable SDL audio support])
544    
545     dnl Remove the "-g" option if set for GCC.
546     if [[ "x$HAVE_GCC27" = "xyes" ]]; then
547     CFLAGS=`echo $CFLAGS | sed -e 's/-g\b//g'`
548     CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-g\b//g'`
549     fi
550    
551     dnl Generate Makefile.
552     AC_SUBST(DEFINES)
553     AC_SUBST(CPUINCLUDES)
554     AC_SUBST(CPUSRCS)
555     AC_CONFIG_FILES([Makefile])
556     AC_OUTPUT
557    
558     dnl Print summary.
559     echo
560     echo Basilisk II configuration summary:
561     echo
562     echo Use JIT compiler ....................... : $WANT_JIT
563     echo JIT debug mode ......................... : $WANT_JIT_DEBUG
564     echo Floating-Point emulation core .......... : $FPE_CORE
565     echo Assembly optimizations ................. : $ASM_OPTIMIZATIONS
566     echo Addressing mode ........................ : $ADDRESSING_MODE
567     echo GTK user interface ..................... : $WANT_GTK
568     echo
569     echo "Configuration done. Now type \"make\" (or \"gmake\")."