ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/MacOSX/configure.in
Revision: 1.11
Committed: 2003-08-02T06:22:54Z (20 years, 10 months ago) by nigel
Branch: MAIN
Changes since 1.10: +13 -7 lines
Log Message:
Added minor changes from latest Unix version

File Contents

# User Rev Content
1 nigel 1.10 dnl Mac OS X configuration driver
2 nigel 1.11 dnl $Id: configure.in,v 1.10 2003/06/03 12:40:02 nigel Exp $
3 nigel 1.1 dnl Process this file with autoconf to produce a configure script.
4     dnl Based on Unix/configure.in
5     dnl Written in 1999 by Christian Bauer et al.
6    
7 nigel 1.11 dnl autoconf on 10.1 doesn't understand these
8     dnl AC_INIT([Basilisk II], 1.0, [Christian.Bauer@uni-mainz.de], BasiliskII)
9     dnl AC_CONFIG_SRCDIR(main_macosx.mm)
10 nigel 1.1 AC_INIT(main_macosx.mm)
11     AC_PREREQ(2.12)
12     AC_CONFIG_HEADER(config.h)
13    
14 nigel 1.5 dnl Video options.
15 nigel 1.1 AC_ARG_ENABLE(multiwin,
16 nigel 1.8 [ --enable-multiwin allow multiple emulator windows [default=no]], [ENABLE_MULTIPLE=$enableval], [ENABLE_MULTIPLE=no])
17 nigel 1.1
18 nigel 1.5 dnl JIT compiler options.
19     AC_ARG_ENABLE(jit-compiler, [ --enable-jit-compiler enable JIT compiler [default=no]], [WANT_JIT=$enableval], [WANT_JIT=no])
20     AC_ARG_ENABLE(jit-debug, [ --enable-jit-debug activate native code disassemblers [default=no]], [WANT_JIT_DEBUG=$enableval], [WANT_JIT_DEBUG=no])
21    
22 nigel 1.1 dnl FPU emulation core.
23     AC_ARG_ENABLE(fpe,
24 nigel 1.5 [ --enable-fpe=FPE specify which fpu emulator to use [default=auto]],
25 nigel 1.1 [ case "$enableval" in
26 nigel 1.5 dnl default is always ieee, if architecture has this fp format
27     auto) FPE_CORE_TEST_ORDER="ieee uae";;
28     ieee) FPE_CORE_TEST_ORDER="ieee";;
29     uae) FPE_CORE_TEST_ORDER="uae";;
30     x86) FPE_CORE_TEST_ORDER="x86";;
31 nigel 1.10 *) AC_MSG_ERROR([--enable-fpe takes only one of the following values: auto, x86, ieee, uae]);;
32 nigel 1.1 esac
33     ],
34 nigel 1.5 [ FPE_CORE_TEST_ORDER="ieee uae"
35 nigel 1.1 ])
36    
37     dnl Addressing modes.
38     AC_ARG_ENABLE(addressing,
39     [ --enable-addressing=AM specify the addressing mode to use [default=fastest]],
40     [ case "$enableval" in
41     real) ADDRESSING_TEST_ORDER="real";;
42     direct) ADDRESSING_TEST_ORDER="direct";;
43     banks) ADDRESSING_TEST_ORDER="banks";;
44     fastest)ADDRESSING_TEST_ORDER="direct banks";;
45     *) AC_MSG_ERROR([--enable-addressing takes only one of the following values: fastest, real, direct, banks]);;
46     esac
47     ],
48     [ ADDRESSING_TEST_ORDER="direct banks"
49     ])
50    
51     dnl External packages.
52     AC_ARG_WITH(mon, [ --with-mon use mon as debugger [default=yes]], [WANT_MON=$withval], [WANT_MON=yes])
53    
54     dnl Canonical system information.
55     AC_CANONICAL_HOST
56     AC_CANONICAL_TARGET
57    
58     dnl Target OS type
59     OS_TYPE=darwin
60     DEFINES="$DEFINES -DOS_$OS_TYPE"
61    
62     dnl Target CPU type.
63     HAVE_I386=no
64     HAVE_M68K=no
65     HAVE_SPARC=no
66     HAVE_POWERPC=no
67 nigel 1.10 HAVE_X86_64=no
68 nigel 1.1 case "$target_cpu" in
69 nigel 1.10 i386* | i486* | i586* | i686* | i786* ) HAVE_I386=yes;;
70     m68k* ) HAVE_M68K=yes;;
71     sparc* ) HAVE_SPARC=yes;;
72     powerpc* ) HAVE_POWERPC=yes;;
73     x86_64* ) HAVE_X86_64=yes;;
74 nigel 1.1 esac
75    
76     dnl Checks for programs.
77     AC_PROG_CC
78     AC_PROG_CC_C_O
79     AC_PROG_CPP
80     AC_PROG_CXX
81     AC_PROG_MAKE_SET
82     AC_PROG_INSTALL
83    
84 nigel 1.8 dnl MacOS 10.2 (and later?) have a particular header for defining the OS version
85 nigel 1.7 AC_CHECK_HEADER(AvailabilityMacros.h)
86     if [[ "x$ac_cv_header_AvailabilityMacros_h" = "xyes" ]]; then
87 nigel 1.8 AC_DEFINE(AVAILABILITYMACROS, 1, [Header specific to 10.2 and later.])
88 nigel 1.7 fi
89    
90 nigel 1.1 dnl We use mon if possible.
91     MONSRCS=
92     if [[ "x$WANT_MON" = "xyes" ]]; then
93     AC_MSG_CHECKING(for mon)
94     mon_srcdir=../../../mon/src
95     if grep mon_init $mon_srcdir/mon.h >/dev/null 2>/dev/null; then
96     AC_MSG_RESULT(yes)
97 nigel 1.5 AC_DEFINE(ENABLE_MON, 1, [Define if using "mon".])
98     MONSRCS="$mon_srcdir/mon.cpp $mon_srcdir/mon_6502.cpp $mon_srcdir/mon_z80.cpp $mon_srcdir/mon_cmd.cpp $mon_srcdir/mon_disass.cpp $mon_srcdir/mon_ppc.cpp $mon_srcdir/mon_lowmem.cpp $mon_srcdir/disass/floatformat.c $mon_srcdir/disass/i386-dis.c $mon_srcdir/disass/m68k-dis.c $mon_srcdir/disass/m68k-opc.c"
99 nigel 1.1 CXXFLAGS="$CXXFLAGS -I$mon_srcdir -I$mon_srcdir/disass"
100 nigel 1.10 AC_CHECK_LIB(ncurses, tgetent, ,
101     AC_CHECK_LIB(termcap, tgetent, ,
102     AC_CHECK_LIB(termlib, tgetent, ,
103     AC_CHECK_LIB(terminfo, tgetent, ,
104     AC_CHECK_LIB(Hcurses, tgetent, ,
105     AC_CHECK_LIB(curses, tgetent))))))
106 nigel 1.1 AC_CHECK_LIB(readline, readline)
107     AC_CHECK_HEADERS(readline.h history.h readline/readline.h readline/history.h)
108     else
109     AC_MSG_RESULT(no)
110     AC_MSG_WARN([Could not find mon, ignoring --with-mon.])
111     WANT_MON=no
112     fi
113     fi
114    
115     dnl We want pthreads.
116     HAVE_PTHREADS=yes
117     AC_CHECK_FUNCS(pthread_cancel)
118 nigel 1.3 AC_CHECK_FUNCS(pthread_mutexattr_setprotocol)
119     AC_CHECK_FUNCS(pthread_mutexattr_settype)
120 nigel 1.5 AC_CHECK_FUNCS(pthread_mutexattr_setpshared)
121 nigel 1.1
122     dnl If POSIX.4 semaphores are not available, we emulate them with pthread mutexes.
123     SEMSRC=
124     AC_CHECK_FUNCS(sem_init, , [
125     if test "x$HAVE_PTHREADS" = "xyes"; then
126     SEMSRC=posix_sem.cpp
127     fi
128     ])
129    
130 nigel 1.5 dnl We want to enable multiple window support if possible
131 nigel 1.1 if [[ "x$WANT_MWIN" = "xyes" ]]; then
132     WANT_MWIN=yes
133     DEFINES="$DEFINES -DENABLE_MULTIPLE"
134     fi
135    
136 nigel 1.5 dnl We use 64-bit file size support if possible.
137     AC_SYS_LARGEFILE
138    
139 nigel 1.1 dnl Checks for header files.
140     AC_HEADER_STDC
141     AC_CHECK_HEADERS(unistd.h fcntl.h sys/time.h sys/mman.h)
142    
143     dnl Checks for typedefs, structures, and compiler characteristics.
144     AC_C_BIGENDIAN
145     AC_C_CONST
146     AC_C_INLINE
147     AC_CHECK_SIZEOF(short, 2)
148     AC_CHECK_SIZEOF(int, 4)
149     AC_CHECK_SIZEOF(long, 4)
150     AC_CHECK_SIZEOF(long long, 8)
151 nigel 1.5 AC_CHECK_SIZEOF(float, 4)
152     AC_CHECK_SIZEOF(double, 8)
153     AC_CHECK_SIZEOF(long double, 12)
154 nigel 1.1 AC_CHECK_SIZEOF(void *, 4)
155 nigel 1.10 AC_TYPE_OFF_T
156 nigel 1.8 dnl These two symbols are not defined in 10.1's autoconf files:
157     dnl AC_CHECK_TYPE(loff_t, off_t)
158     dnl AC_CHECK_TYPE(caddr_t, [char *])
159     dnl which causes problems for autoheader.
160     dnl We define loff_t as a typedef of off_t in sysdeps.h if we don't have LOFF_T
161 nigel 1.1 AC_TYPE_SIZE_T
162     AC_TYPE_SIGNAL
163     AC_HEADER_TIME
164     AC_STRUCT_TM
165    
166 nigel 1.5 dnl Check whether sys/socket.h defines type socklen_t.
167     dnl (extracted from ac-archive/Miscellaneous)
168     AC_CACHE_CHECK([for socklen_t],
169     ac_cv_type_socklen_t, [
170     AC_TRY_COMPILE([
171     #include <sys/types.h>
172     #include <sys/socket.h>
173     ], [socklen_t len = 42; return 0;],
174     ac_cv_type_socklen_t=yes, ac_cv_type_socklen_t=no,
175     dnl When cross-compiling, do not assume anything.
176     ac_cv_type_socklen_t="guessing no"
177     )
178     ])
179     if [[ "x$ac_cv_type_socklen_t" != "xyes" ]]; then
180     AC_DEFINE(socklen_t, int, [Define to 'int' if <sys/types.h> doesn't define.])
181     fi
182    
183 nigel 1.1 dnl Checks for library functions.
184     AC_CHECK_FUNCS(strdup cfmakeraw)
185     AC_CHECK_FUNCS(clock_gettime timer_create)
186     AC_CHECK_FUNCS(sigaction signal)
187     AC_CHECK_FUNCS(mmap mprotect munmap)
188     AC_CHECK_FUNCS(vm_allocate vm_deallocate vm_protect)
189    
190     dnl Darwin seems to define mach_task_self() instead of task_self().
191     AC_CHECK_FUNCS(mach_task_self task_self)
192    
193     dnl Select system-dependant source files.
194     DEFINES="$DEFINES -DBSD_COMP"
195     dnl Check for the CAM library
196 nigel 1.5 AC_CHECK_LIB(cam, cam_open_btl, HAVE_LIBCAM=yes, HAVE_LIBCAM=no)
197 nigel 1.1 if [[ "x$HAVE_LIBCAM" = "xno" ]]; then
198     AC_MSG_WARN([Cannot find libcam for SCSI management, disabling SCSI support.])
199 nigel 1.5 else
200     dnl Check for the sys kernel includes
201 nigel 1.1 AC_CHECK_HEADER(camlib.h)
202     if [[ "x$ac_cv_header_camlib_h" = "xno" ]]; then
203     dnl In this case I should fix this thing including a "patch"
204     dnl to access directly to the functions in the kernel :) --Orlando
205     AC_MSG_WARN([Cannot find includes for CAM library, disabling SCSI support.])
206     else
207     SCSISRC=FreeBSD/scsi_freebsd.cpp
208     LIBS="$LIBS -lcam"
209     DEFINES="$DEFINES -DCAM"
210     fi
211     fi
212    
213     dnl Use 68k CPU natively?
214     WANT_NATIVE_M68K=no
215    
216    
217     dnl Define a macro that translates a yesno-variable into a C macro definition
218     dnl to be put into the config.h file
219     dnl $1 -- the macro to define
220     dnl $2 -- the value to translate
221 nigel 1.5 dnl $3 -- template name
222 nigel 1.1 AC_DEFUN(AC_TRANSLATE_DEFINE, [
223     if [[ "x$2" = "xyes" -o "x$2" = "xguessing yes" ]]; then
224 nigel 1.5 AC_DEFINE($1, 1, $3)
225 nigel 1.1 fi
226     ])
227    
228     dnl Various checks if the system supports vm_allocate() and the like functions.
229     have_mach_vm=no
230     if [[ "x$ac_cv_func_vm_allocate" = "xyes" -a "x$ac_cv_func_vm_deallocate" = "xyes" -a \
231     "x$ac_cv_func_vm_protect" = "xyes" ]]; then
232     have_mach_vm=yes
233     fi
234 nigel 1.5 AC_TRANSLATE_DEFINE(HAVE_MACH_VM, "$have_mach_vm",
235     [Define if your system has a working vm_allocate()-based memory allocator.])
236 nigel 1.1
237     dnl Check that vm_allocate(), vm_protect() work
238     if [[ "x$have_mach_vm" = "xyes" ]]; then
239    
240 nigel 1.5 AC_CACHE_CHECK([whether vm_protect works],
241 nigel 1.1 ac_cv_vm_protect_works, [
242     AC_LANG_SAVE
243     AC_LANG_CPLUSPLUS
244     ac_cv_vm_protect_works=yes
245     dnl First the tests that should segfault
246     for test_def in NONE_READ NONE_WRITE READ_WRITE; do
247     AC_TRY_RUN([
248     #define CONFIGURE_TEST_VM_MAP
249     #define TEST_VM_PROT_$test_def
250 nigel 1.6 #include "../Unix/vm_alloc.cpp"
251 nigel 1.1 ], ac_cv_vm_protect_works=no, rm -f core,
252     dnl When cross-compiling, do not assume anything
253     ac_cv_vm_protect_works="guessing no"
254     )
255     done
256     AC_TRY_RUN([
257     #define CONFIGURE_TEST_VM_MAP
258     #define TEST_VM_PROT_RDWR_WRITE
259 nigel 1.6 #include "../Unix/vm_alloc.cpp"
260 nigel 1.1 ], , ac_cv_vm_protect_works=no,
261     dnl When cross-compiling, do not assume anything
262     ac_cv_vm_protect_works="guessing no"
263     )
264     AC_LANG_RESTORE
265     ]
266     )
267    
268     dnl Remove support for vm_allocate() if vm_protect() does not work
269     if [[ "x$have_mach_vm" = "xyes" ]]; then
270     case $ac_cv_vm_protect_works in
271     *yes) have_mach_vm=yes;;
272     *no) have_mach_vm=no;;
273     esac
274     fi
275 nigel 1.5 AC_TRANSLATE_DEFINE(HAVE_MACH_VM, "$have_mach_vm",
276     [Define if your system has a working vm_allocate()-based memory allocator.])
277 nigel 1.1
278     fi dnl HAVE_MACH_VM
279    
280     dnl Various checks if the system supports mmap() and the like functions.
281     dnl ... and Mach memory allocators are not supported
282     have_mmap_vm=no
283     if [[ "x$ac_cv_func_mmap" = "xyes" -a "x$ac_cv_func_munmap" = "xyes" -a \
284     "x$ac_cv_func_mprotect" = "xyes" ]]; then
285     if [[ "x$have_mach_vm" = "xno" ]]; then
286     have_mmap_vm=yes
287     fi
288     fi
289 nigel 1.5 AC_TRANSLATE_DEFINE(HAVE_MMAP_VM, "$have_mmap_vm",
290     [Define if your system has a working mmap()-based memory allocator.])
291 nigel 1.1
292     dnl Check that mmap() and associated functions work.
293     if [[ "x$have_mmap_vm" = "xyes" ]]; then
294    
295     dnl Check if we have a working anonymous mmap()
296 nigel 1.5 AC_CACHE_CHECK([whether mmap supports MAP_ANON],
297 nigel 1.1 ac_cv_mmap_anon, [
298     AC_LANG_SAVE
299     AC_LANG_CPLUSPLUS
300     AC_TRY_RUN([
301     #define HAVE_MMAP_ANON
302     #define CONFIGURE_TEST_VM_MAP
303     #define TEST_VM_MMAP_ANON
304 nigel 1.6 #include "../Unix/vm_alloc.cpp"
305 nigel 1.1 ], ac_cv_mmap_anon=yes, ac_cv_mmap_anon=no,
306     dnl When cross-compiling, do not assume anything.
307     ac_cv_mmap_anon="guessing no"
308     )
309     AC_LANG_RESTORE
310     ]
311     )
312 nigel 1.5 AC_TRANSLATE_DEFINE(HAVE_MMAP_ANON, "$ac_cv_mmap_anon",
313     [Define if <sys/mman.h> defines MAP_ANON and mmap()'ing with MAP_ANON works.])
314 nigel 1.1
315 nigel 1.5 AC_CACHE_CHECK([whether mmap supports MAP_ANONYMOUS],
316 nigel 1.1 ac_cv_mmap_anonymous, [
317     AC_LANG_SAVE
318     AC_LANG_CPLUSPLUS
319     AC_TRY_RUN([
320     #define HAVE_MMAP_ANONYMOUS
321     #define CONFIGURE_TEST_VM_MAP
322     #define TEST_VM_MMAP_ANON
323 nigel 1.6 #include "../Unix/vm_alloc.cpp"
324 nigel 1.1 ], ac_cv_mmap_anonymous=yes, ac_cv_mmap_anonymous=no,
325     dnl When cross-compiling, do not assume anything.
326     ac_cv_mmap_anonymous="guessing no"
327     )
328     AC_LANG_RESTORE
329     ]
330     )
331 nigel 1.5 AC_TRANSLATE_DEFINE(HAVE_MMAP_ANONYMOUS, "$ac_cv_mmap_anonymous",
332     [Define if <sys/mman.h> defines MAP_ANONYMOUS and mmap()'ing with MAP_ANONYMOUS works.])
333 nigel 1.1
334 nigel 1.5 AC_CACHE_CHECK([whether mprotect works],
335 nigel 1.1 ac_cv_mprotect_works, [
336     AC_LANG_SAVE
337     AC_LANG_CPLUSPLUS
338     ac_cv_mprotect_works=yes
339     dnl First the tests that should segfault
340     for test_def in NONE_READ NONE_WRITE READ_WRITE; do
341     AC_TRY_RUN([
342     #define CONFIGURE_TEST_VM_MAP
343     #define TEST_VM_PROT_$test_def
344 nigel 1.6 #include "../Unix/vm_alloc.cpp"
345 nigel 1.1 ], ac_cv_mprotect_works=no, rm -f core,
346     dnl When cross-compiling, do not assume anything
347     ac_cv_mprotect_works="guessing no"
348     )
349     done
350     AC_TRY_RUN([
351     #define CONFIGURE_TEST_VM_MAP
352     #define TEST_VM_PROT_RDWR_WRITE
353 nigel 1.6 #include "../Unix/vm_alloc.cpp"
354 nigel 1.1 ], , ac_cv_mprotect_works=no,
355     dnl When cross-compiling, do not assume anything
356     ac_cv_mprotect_works="guessing no"
357     )
358     AC_LANG_RESTORE
359     ]
360     )
361    
362     dnl Remove support for mmap() if mprotect() does not work
363     if [[ "x$have_mmap_vm" = "xyes" ]]; then
364     case $ac_cv_mprotect_works in
365     *yes) have_mmap_vm=yes;;
366     *no) have_mmap_vm=no;;
367     esac
368     fi
369 nigel 1.5 AC_TRANSLATE_DEFINE(HAVE_MMAP_VM, $have_mmap_vm,
370     [Define if your system has a working mmap()-based memory allocator.])
371 nigel 1.1
372     fi dnl HAVE_MMAP_VM
373    
374     dnl Check if we can mmap 0x2000 bytes from 0x0000
375 nigel 1.5 AC_CACHE_CHECK([whether we can map Low Memory area 0x0000-0x2000],
376 nigel 1.1 ac_cv_can_map_lm, [
377     AC_LANG_SAVE
378     AC_LANG_CPLUSPLUS
379     AC_TRY_RUN([
380 nigel 1.6 #include "../Unix/vm_alloc.cpp"
381 nigel 1.1 int main(void) { /* returns 0 if we could map the lowmem globals */
382 nigel 1.11 volatile char * lm = 0;
383 nigel 1.1 if (vm_init() < 0) exit(1);
384 nigel 1.11 if (vm_acquire_fixed(0, 0x2000) == VM_MAP_FAILED) exit(1);
385 nigel 1.1 lm[0] = 'z';
386     if (vm_release((char *)lm, 0x2000) < 0) exit(1);
387     vm_exit(); exit(0);
388     }
389     ], ac_cv_can_map_lm=yes, ac_cv_can_map_lm=no,
390     dnl When cross-compiling, do not assume anything.
391     ac_cv_can_map_lm="guessing no"
392     )
393     AC_LANG_RESTORE
394     ]
395     )
396    
397     dnl Check signal handlers need to be reinstalled
398 nigel 1.5 AC_CACHE_CHECK([whether signal handlers need to be reinstalled],
399 nigel 1.1 ac_cv_signal_need_reinstall, [
400     AC_LANG_SAVE
401     AC_LANG_CPLUSPLUS
402     AC_TRY_RUN([
403     #include <stdlib.h>
404     #ifdef HAVE_UNISTD_H
405     #include <unistd.h>
406     #endif
407     #include <signal.h>
408     static int handled_signal = 0;
409     RETSIGTYPE sigusr1_handler(int) { handled_signal++; }
410     int main(void) { /* returns 0 if signals need not to be reinstalled */
411     signal(SIGUSR1, sigusr1_handler); raise(SIGUSR1); raise(SIGUSR1);
412     exit(handled_signal == 2);
413     }
414     ], ac_cv_signal_need_reinstall=yes, ac_cv_signal_need_reinstall=no,
415     dnl When cross-compiling, do not assume anything.
416     ac_cv_signal_need_reinstall="guessing yes"
417     )
418     AC_LANG_RESTORE
419     ]
420     )
421 nigel 1.5 AC_TRANSLATE_DEFINE(SIGNAL_NEED_REINSTALL, "$ac_cv_signal_need_reinstall",
422     [Define if your system requires signals to be reinstalled.])
423 nigel 1.1
424     dnl Check if sigaction handlers need to be reinstalled
425 nigel 1.5 AC_CACHE_CHECK([whether sigaction handlers need to be reinstalled],
426 nigel 1.1 ac_cv_sigaction_need_reinstall, [
427     AC_LANG_SAVE
428     AC_LANG_CPLUSPLUS
429     AC_TRY_RUN([
430     #include <stdlib.h>
431     #ifdef HAVE_UNISTD_H
432     #include <unistd.h>
433     #endif
434     #include <signal.h>
435     static int handled_signal = 0;
436     RETSIGTYPE sigusr1_handler(int) { handled_signal++; }
437     typedef RETSIGTYPE (*signal_handler)(int);
438     static signal_handler mysignal(int sig, signal_handler handler) {
439     struct sigaction old_sa;
440     struct sigaction new_sa;
441     new_sa.sa_handler = handler;
442     return ((sigaction(sig,&new_sa,&old_sa) < 0) ? SIG_IGN : old_sa.sa_handler);
443     }
444     int main(void) { /* returns 0 if signals need not to be reinstalled */
445     mysignal(SIGUSR1, sigusr1_handler); raise(SIGUSR1); raise(SIGUSR1);
446     exit(handled_signal == 2);
447     }
448     ], ac_cv_sigaction_need_reinstall=yes, ac_cv_sigaction_need_reinstall=no,
449     dnl When cross-compiling, do not assume anything.
450     ac_cv_sigaction_need_reinstall="guessing yes"
451     )
452     AC_LANG_RESTORE
453     ]
454     )
455 nigel 1.5 AC_TRANSLATE_DEFINE(SIGACTION_NEED_REINSTALL, "$ac_cv_sigaction_need_reinstall",
456     [Define if your system requires sigactions to be reinstalled.])
457 nigel 1.1
458     dnl Check if extended signals are supported.
459 nigel 1.5 AC_CACHE_CHECK([whether your system supports extended signal handlers],
460 nigel 1.1 ac_cv_have_extended_signals, [
461     AC_LANG_SAVE
462     AC_LANG_CPLUSPLUS
463     AC_TRY_RUN([
464     #define HAVE_SIGINFO_T 1
465     #define CONFIGURE_TEST_SIGSEGV_RECOVERY
466 nigel 1.6 #include "../Unix/vm_alloc.cpp"
467     #include "../Unix/sigsegv.cpp"
468 nigel 1.1 ], ac_cv_have_extended_signals=yes, ac_cv_have_extended_signals=no,
469     dnl When cross-compiling, do not assume anything.
470     ac_cv_have_extended_signals=no
471     )
472     AC_LANG_RESTORE
473     ]
474     )
475 nigel 1.5 AC_TRANSLATE_DEFINE(HAVE_SIGINFO_T, "$ac_cv_have_extended_signals",
476     [Define if your system support extended signals.])
477    
478 nigel 1.6 dnl This program never returns (exits) on OS X
479 nigel 1.1 dnl Otherwise, check for subterfuges.
480 nigel 1.6 dnl if [[ "x$ac_cv_have_extended_signals" = "xno" ]]; then
481     dnl AC_CACHE_CHECK([whether we then have a subterfuge for your system],
482     dnl ac_cv_have_sigcontext_hack, [
483     dnl AC_LANG_SAVE
484     dnl AC_LANG_CPLUSPLUS
485     dnl AC_TRY_RUN([
486     dnl #define HAVE_SIGCONTEXT_SUBTERFUGE 1
487     dnl #define CONFIGURE_TEST_SIGSEGV_RECOVERY
488     dnl #include "../Unix/vm_alloc.cpp"
489     dnl #include "../Unix/sigsegv.cpp"
490     dnl ], ac_cv_have_sigcontext_hack=yes, ac_cv_have_sigcontext_hack=no,
491     dnl dnl When cross-compiling, do not assume anything.
492     dnl ac_cv_have_sigcontext_hack=no
493     dnl )
494     dnl AC_LANG_RESTORE
495     dnl ])
496     dnl AC_TRANSLATE_DEFINE(HAVE_SIGCONTEXT_SUBTERFUGE, "$ac_cv_have_sigcontext_hack",
497     dnl [Define if we know a hack to replace siginfo_t->si_addr member.])
498     dnl fi
499 nigel 1.1
500 nigel 1.5 dnl Check if we can ignore the fault (instruction skipping in SIGSEGV handler)
501     AC_CACHE_CHECK([whether we can skip instruction in SIGSEGV handler],
502     ac_cv_have_skip_instruction, [
503     AC_LANG_SAVE
504     AC_LANG_CPLUSPLUS
505     AC_TRY_RUN([
506     #define HAVE_SIGSEGV_SKIP_INSTRUCTION 1
507     #define CONFIGURE_TEST_SIGSEGV_RECOVERY
508 nigel 1.6 #include "../Unix/vm_alloc.cpp"
509     #include "../Unix/sigsegv.cpp"
510 nigel 1.5 ], ac_cv_have_skip_instruction=yes, ac_cv_have_skip_instruction=no,
511     dnl When cross-compiling, do not assume anything.
512     ac_cv_have_skip_instruction=no
513     )
514     AC_LANG_RESTORE
515     ]
516     )
517     AC_TRANSLATE_DEFINE(HAVE_SIGSEGV_SKIP_INSTRUCTION, "$ac_cv_have_skip_instruction",
518     [Define if we can ignore the fault (instruction skipping in SIGSEGV handler).])
519    
520 nigel 1.1 dnl Can we do Video on SEGV Signals ?
521     CAN_VOSF=no
522     if [[ "$ac_cv_have_extended_signals" = "yes" -o "$ac_cv_have_sigcontext_hack" = "yes" ]]; then
523     CAN_VOSF=yes
524     fi
525    
526     dnl Determine the addressing mode to use
527     if [[ "x$WANT_NATIVE_M68K" = "xyes" ]]; then
528     ADDRESSING_MODE="real"
529     else
530     ADDRESSING_MODE=""
531     AC_MSG_CHECKING([for the addressing mode to use])
532     for am in $ADDRESSING_TEST_ORDER; do
533     case $am in
534     real)
535     dnl Requires ability to mmap() Low Memory globals
536     if [[ "x$ac_cv_can_map_lm" = "xno" ]]; then
537     continue
538     fi
539     dnl Requires VOSF screen updates
540     if [[ "x$CAN_VOSF" = "xno" ]]; then
541     continue
542     fi
543     dnl Real addressing will probably work.
544     ADDRESSING_MODE="real"
545     WANT_VOSF=yes dnl we can use VOSF and we need it actually
546     DEFINES="$DEFINES -DREAL_ADDRESSING"
547     break
548     ;;
549     direct)
550     dnl Requires VOSF screen updates
551     if [[ "x$CAN_VOSF" = "xyes" ]]; then
552     ADDRESSING_MODE="direct"
553     WANT_VOSF=yes dnl we can use VOSF and we need it actually
554     DEFINES="$DEFINES -DDIRECT_ADDRESSING"
555     break
556     fi
557     ;;
558     banks)
559     dnl Default addressing mode
560     ADDRESSING_MODE="memory banks"
561     break
562     ;;
563     *)
564     AC_MSG_ERROR([Internal configure.in script error for $am addressing mode])
565     esac
566     done
567     AC_MSG_RESULT($ADDRESSING_MODE)
568     if [[ "x$ADDRESSING_MODE" = "x" ]]; then
569     AC_MSG_WARN([Sorry, no suitable addressing mode in $ADDRESSING_TEST_ORDER])
570     ADDRESSING_MODE="memory banks"
571     fi
572     fi
573    
574 nigel 1.5 dnl Banked Memory Addressing mode is not supported by the JIT compiler
575     if [[ "x$WANT_JIT" = "xyes" -a "x$ADDRESSING_MODE" = "xmemory banks" ]]; then
576     AC_MSG_ERROR([Sorry, the JIT Compiler requires Direct Addressing, at least])
577     fi
578    
579 nigel 1.1 dnl Enable VOSF screen updates with this feature is requested and feasible
580     if [[ "x$WANT_VOSF" = "xyes" -a "x$CAN_VOSF" = "xyes" ]]; then
581 nigel 1.5 AC_DEFINE(ENABLE_VOSF, 1, [Define if using video enabled on SEGV signals.])
582 nigel 1.1 else
583     WANT_VOSF=no
584     fi
585    
586     dnl Check for GAS.
587     HAVE_GAS=no
588     AC_MSG_CHECKING(for GAS .p2align feature)
589     cat >conftest.S << EOF
590     .text
591     .p2align 5
592     EOF
593     if $CC conftest.S -c -o conftest.o >/dev/null 2>&1 ; then HAVE_GAS=yes; fi
594     AC_MSG_RESULT($HAVE_GAS)
595    
596     dnl Check for GCC 2.7 or higher.
597     HAVE_GCC27=no
598     AC_MSG_CHECKING(for GCC 2.7 or higher)
599 nigel 1.11 AC_EGREP_CPP(xyes,
600 nigel 1.1 [#if __GNUC__ - 1 > 1 || __GNUC_MINOR__ - 1 > 5
601 nigel 1.11 xyes
602 nigel 1.1 #endif
603     ], [AC_MSG_RESULT(yes); HAVE_GCC27=yes], AC_MSG_RESULT(no))
604    
605     dnl Check for GCC 3.0 or higher.
606     HAVE_GCC30=no
607     AC_MSG_CHECKING(for GCC 3.0 or higher)
608 nigel 1.11 AC_EGREP_CPP(xyes,
609 nigel 1.1 [#if __GNUC__ >= 3
610 nigel 1.11 xyes
611 nigel 1.1 #endif
612     ], [AC_MSG_RESULT(yes); HAVE_GCC30=yes], AC_MSG_RESULT(no))
613    
614     dnl Set "-fomit-frame-pointer" on i386 GCC 2.7 or higher.
615 nigel 1.3 dnl Also set "-fno-exceptions" for C++ because exception handling requires
616     dnl the frame pointer.
617 nigel 1.1 if [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_I386" = "xyes" ]]; then
618     CFLAGS="$CFLAGS -fomit-frame-pointer"
619 nigel 1.3 CXXFLAGS="$CXXFLAGS -fomit-frame-pointer -fno-exceptions"
620 nigel 1.1 fi
621    
622     dnl (gb) Do not merge constants since it breaks fpu/fpu_x86.cpp.
623     dnl As of 2001/08/02, this affects the following compilers:
624     dnl Official: probably gcc-3.1 (mainline CVS)
625     dnl Mandrake: gcc-2.96 >= 0.59mdk, gcc-3.0.1 >= 0.1mdk
626     dnl Red Hat : gcc-2.96 >= 89, gcc-3.0 >= 1
627     if [[ "x$HAVE_GCC27" = "xyes" ]]; then
628     SAVED_CXXFLAGS="$CXXFLAGS"
629     CXXFLAGS="$CXXFLAGS -fno-merge-constants"
630     AC_CACHE_CHECK([whether GCC supports constants merging], ac_cv_gcc_constants_merging, [
631     AC_LANG_SAVE
632     AC_LANG_CPLUSPLUS
633     AC_TRY_COMPILE([],[],[ac_cv_gcc_constants_merging=yes],[ac_cv_gcc_constants_merging=no])
634     AC_LANG_RESTORE
635     ])
636     if [[ "x$ac_cv_gcc_constants_merging" != "xyes" ]]; then
637     CXXFLAGS="$SAVED_CXXFLAGS"
638     fi
639     fi
640    
641     dnl Select appropriate CPU source and REGPARAM define.
642     ASM_OPTIMIZATIONS=none
643     CPUSRCS="cpuemu1.cpp cpuemu2.cpp cpuemu3.cpp cpuemu4.cpp cpuemu5.cpp cpuemu6.cpp cpuemu7.cpp cpuemu8.cpp"
644 nigel 1.5
645     dnl (gb) JITSRCS will be emptied later if the JIT is not available
646     dnl Other platforms should define their own set of noflags file variants
647     CAN_JIT=no
648     JITSRCS="compemu1.cpp compemu2.cpp compemu3.cpp compemu4.cpp compemu5.cpp compemu6.cpp compemu7.cpp compemu8.cpp"
649    
650 nigel 1.10 if [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_I386" = "xyes" ]]; then
651 nigel 1.1 dnl i386 CPU
652 nigel 1.5 DEFINES="$DEFINES -DUNALIGNED_PROFITABLE -DREGPARAM=\"__attribute__((regparm(3)))\""
653 nigel 1.1 if [[ "x$HAVE_GAS" = "xyes" ]]; then
654     ASM_OPTIMIZATIONS=i386
655 nigel 1.5 DEFINES="$DEFINES -DX86_ASSEMBLY -DOPTIMIZED_FLAGS -DSAHF_SETO_PROFITABLE"
656 nigel 1.10 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"
657     CAN_JIT=yes
658     fi
659     elif [[ "x$HAVE_GCC30" = "xyes" -a "x$HAVE_X86_64" = "xyes" ]]; then
660     dnl x86-64 CPU
661     DEFINES="$DEFINES -DUNALIGNED_PROFITABLE"
662     if [[ "x$HAVE_GAS" = "xyes" ]]; then
663     ASM_OPTIMIZATIONS="x86-64"
664     DEFINES="$DEFINES -DX86_64_ASSEMBLY -DOPTIMIZED_FLAGS"
665 nigel 1.1 fi
666     elif [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_SPARC" = "xyes" -a "x$HAVE_GAS" = "xyes" ]]; then
667     dnl SPARC CPU
668     case "$target_os" in
669     solaris*)
670     AC_MSG_CHECKING(SPARC CPU architecture)
671     SPARC_TYPE=`Solaris/which_sparc`
672     AC_MSG_RESULT($SPARC_TYPE)
673     case "$SPARC_TYPE" in
674     SPARC_V8)
675     ASM_OPTIMIZATIONS="SPARC V8 architecture"
676     DEFINES="$DEFINES -DSPARC_V8_ASSEMBLY" dnl -DOPTIMIZED_FLAGS"
677     CFLAGS="$CFLAGS -Wa,-Av8"
678     CXXFLAGS="$CXXFLAGS -Wa,-Av8"
679     ;;
680     SPARC_V9)
681     ASM_OPTIMIZATIONS="SPARC V9 architecture"
682     DEFINES="$DEFINES -DSPARC_V9_ASSEMBLY" dnl -DOPTIMIZED_FLAGS"
683     CFLAGS="$CFLAGS -Wa,-Av9"
684     CXXFLAGS="$CXXFLAGS -Wa,-Av9"
685     ;;
686     esac
687     ;;
688     esac
689     elif [[ "x$WANT_NATIVE_M68K" = "xyes" ]]; then
690     dnl Native m68k, no emulation
691     CPUINCLUDES="-I../native_cpu"
692     CPUSRCS="asm_support.s"
693     fi
694    
695 nigel 1.5 dnl Enable JIT compiler, if possible.
696     if [[ "x$WANT_JIT" = "xyes" -a "x$CAN_JIT" ]]; then
697     JITSRCS="$JITSRCS ../uae_cpu/compiler/compemu_support.cpp ../uae_cpu/compiler/compemu_fpp.cpp compstbl.o cpustbl_nf.o"
698     DEFINES="$DEFINES -DUSE_JIT -DUSE_JIT_FPU"
699    
700     if [[ "x$WANT_JIT_DEBUG" = "xyes" ]]; then
701     if [[ "x$WANT_MON" = "xyes" ]]; then
702     DEFINES="$DEFINES -DJIT_DEBUG=1"
703     else
704     AC_MSG_WARN([cxmon not found, ignoring --enable-jit-debug])
705     WANT_JIT_DEBUG=no
706     fi
707     fi
708    
709     dnl IEEE core is the only FPU emulator to use with the JIT compiler
710     case $FPE_CORE_TEST_ORDER in
711     ieee*) ;;
712     *) AC_MSG_WARN([Forcing use of the IEEE FPU core, as the JIT compiler supports only this one.]) ;;
713     esac
714     FPE_CORE_TEST_ORDER="ieee"
715     else
716     WANT_JIT=no
717     WANT_JIT_DEBUG=no
718     JITSRCS=""
719     fi
720    
721     dnl Utility macro used by next two tests.
722     dnl AC_EXAMINE_OBJECT(C source code,
723     dnl commands examining object file,
724     dnl [commands to run if compile failed]):
725     dnl
726     dnl Compile the source code to an object file; then convert it into a
727     dnl printable representation. All unprintable characters and
728     dnl asterisks (*) are replaced by dots (.). All white space is
729     dnl deleted. Newlines (ASCII 0x10) in the input are preserved in the
730     dnl output, but runs of newlines are compressed to a single newline.
731     dnl Finally, line breaks are forcibly inserted so that no line is
732     dnl longer than 80 columns and the file ends with a newline. The
733     dnl result of all this processing is in the file conftest.dmp, which
734     dnl may be examined by the commands in the second argument.
735     dnl
736     AC_DEFUN([gcc_AC_EXAMINE_OBJECT],
737     [AC_LANG_SAVE
738     AC_LANG_C
739     dnl Next bit cribbed from AC_TRY_COMPILE.
740     cat > conftest.$ac_ext <<EOF
741     [#line __oline__ "configure"
742     #include "confdefs.h"
743     $1
744     ]EOF
745     if AC_TRY_EVAL(ac_compile); then
746     od -c conftest.o |
747     sed ['s/^[0-7]*[ ]*/ /
748     s/\*/./g
749     s/ \\n/*/g
750     s/ [0-9][0-9][0-9]/./g
751     s/ \\[^ ]/./g'] |
752     tr -d '
753     ' | tr -s '*' '
754     ' | fold | sed '$a\
755     ' > conftest.dmp
756     $2
757     ifelse($3, , , else
758     $3
759     )dnl
760     fi
761     rm -rf conftest*
762     AC_LANG_RESTORE])
763    
764     dnl Floating point format probe.
765     dnl The basic concept is the same as the above: grep the object
766     dnl file for an interesting string. We have to watch out for
767     dnl rounding changing the values in the object, however; this is
768     dnl handled by ignoring the least significant byte of the float.
769     dnl
770     dnl Does not know about VAX G-float or C4x idiosyncratic format.
771     dnl It does know about PDP-10 idiosyncratic format, but this is
772     dnl not presently supported by GCC. S/390 "binary floating point"
773     dnl is in fact IEEE (but maybe we should have that in EBCDIC as well
774     dnl as ASCII?)
775     dnl
776     AC_DEFUN([gcc_AC_C_FLOAT_FORMAT],
777     [AC_CACHE_CHECK(floating point format, ac_cv_c_float_format,
778     [gcc_AC_EXAMINE_OBJECT(
779     [/* This will not work unless sizeof(double) == 8. */
780     extern char sizeof_double_must_be_8 [sizeof(double) == 8 ? 1 : -1];
781    
782     /* This structure must have no internal padding. */
783     struct possibility {
784     char prefix[8];
785     double candidate;
786     char postfix[8];
787     };
788    
789     #define C(cand) { "\nformat:", cand, ":tamrof\n" }
790     struct possibility table [] =
791     {
792     C( 3.25724264705901305206e+01), /* @@IEEEFP - IEEE 754 */
793     C( 3.53802595280598432000e+18), /* D__float - VAX */
794     C( 5.32201830133125317057e-19), /* D.PDP-10 - PDP-10 - the dot is 0x13a */
795     C( 1.77977764695171661377e+10), /* IBMHEXFP - s/390 format, ascii */
796     C(-5.22995989424860458374e+10) /* IBMHEXFP - s/390 format, EBCDIC */
797     };],
798     [if grep 'format:.@IEEEF.:tamrof' conftest.dmp >/dev/null 2>&1; then
799     ac_cv_c_float_format='IEEE (big-endian)'
800     elif grep 'format:.I@@PFE.:tamrof' conftest.dmp >/dev/null 2>&1; then
801     ac_cv_c_float_format='IEEE (big-endian)'
802     elif grep 'format:.FEEEI@.:tamrof' conftest.dmp >/dev/null 2>&1; then
803     ac_cv_c_float_format='IEEE (little-endian)'
804     elif grep 'format:.EFP@@I.:tamrof' conftest.dmp >/dev/null 2>&1; then
805     ac_cv_c_float_format='IEEE (little-endian)'
806     elif grep 'format:.__floa.:tamrof' conftest.dmp >/dev/null 2>&1; then
807     ac_cv_c_float_format='VAX D-float'
808     elif grep 'format:..PDP-1.:tamrof' conftest.dmp >/dev/null 2>&1; then
809     ac_cv_c_float_format='PDP-10'
810     elif grep 'format:.BMHEXF.:tamrof' conftest.dmp >/dev/null 2>&1; then
811     ac_cv_c_float_format='IBM 370 hex'
812 nigel 1.1 else
813 nigel 1.5 AC_MSG_ERROR(Unknown floating point format)
814     fi],
815     [AC_MSG_ERROR(compile failed)])
816     ])
817     # IEEE is the default format. If the float endianness isn't the same
818     # as the integer endianness, we have to set FLOAT_WORDS_BIG_ENDIAN
819     # (which is a tristate: yes, no, default). This is only an issue with
820     # IEEE; the other formats are only supported by a few machines each,
821     # all with the same endianness.
822     format=IEEE_FLOAT_FORMAT
823     fbigend=
824     case $ac_cv_c_float_format in
825     'IEEE (big-endian)' )
826     if test $ac_cv_c_bigendian = no; then
827     fbigend=1
828     fi
829     ;;
830     'IEEE (little-endian)' )
831     if test $ac_cv_c_bigendian = yes; then
832     fbigend=0
833     fi
834     ;;
835     'VAX D-float' )
836     format=VAX_FLOAT_FORMAT
837     ;;
838     'PDP-10' )
839     format=PDP10_FLOAT_FORMAT
840     ;;
841     'IBM 370 hex' )
842     format=IBM_FLOAT_FORMAT
843     ;;
844     esac
845     AC_DEFINE_UNQUOTED(HOST_FLOAT_FORMAT, $format,
846     [Define to the floating point format of the host machine.])
847     if test -n "$fbigend"; then
848     AC_DEFINE_UNQUOTED(HOST_FLOAT_WORDS_BIG_ENDIAN, $fbigend,
849     [Define to 1 if the host machine stores floating point numbers in
850     memory with the word containing the sign bit at the lowest address,
851     or to 0 if it does it the other way around.
852    
853     This macro should not be defined if the ordering is the same as for
854     multi-word integers.])
855 nigel 1.1 fi
856 nigel 1.5 ])
857 nigel 1.1
858 nigel 1.5 dnl Select appropriate FPU source.
859     gcc_AC_C_FLOAT_FORMAT
860     AC_CHECK_HEADERS(ieee754.h ieeefp.h floatingpoint.h nan.h)
861    
862     for fpe in $FPE_CORE_TEST_ORDER; do
863     case $fpe in
864     ieee)
865     case $ac_cv_c_float_format in
866     IEEE*)
867     FPE_CORE="IEEE fpu core"
868     DEFINES="$DEFINES -DFPU_IEEE"
869 nigel 1.9 AC_DEFINE(FPU_IEEE, 1, [Floating Point Core emulation method is IEEE.])
870 nigel 1.5 FPUSRCS="../uae_cpu/fpu/fpu_ieee.cpp"
871     dnl Math functions not mandated by C99 standard
872     AC_CHECK_FUNCS(isnanl isinfl)
873     dnl Math functions required by C99 standard, but probably not
874     dnl implemented everywhere. In that case, we fall back to the
875     dnl regular variant for doubles.
876     AC_CHECK_FUNCS(logl log10l expl powl fabsl sqrtl)
877     AC_CHECK_FUNCS(sinl cosl tanl sinhl coshl tanhl)
878     AC_CHECK_FUNCS(asinl acosl atanl asinhl acoshl atanhl)
879     AC_CHECK_FUNCS(floorl ceill)
880     break
881     ;;
882     esac
883     ;;
884     x86)
885     if [[ ":$HAVE_GCC27:$HAVE_I386:$HAVE_GAS:" = ":yes:yes:yes:" ]]; then
886     FPE_CORE="i387 fpu core"
887     DEFINES="$DEFINES -DFPU_X86"
888     FPUSRCS="../uae_cpu/fpu/fpu_x86.cpp"
889     break
890     fi
891     ;;
892     uae)
893     FPE_CORE="uae fpu core"
894     DEFINES="$DEFINES -DFPU_UAE"
895 nigel 1.9 AC_DEFINE(FPU_UAE, 1, [Floating Point Core emulation is standard UAE.])
896 nigel 1.5 FPUSRCS="../uae_cpu/fpu/fpu_uae.cpp"
897     break
898     ;;
899     *)
900     AC_MSG_ERROR([Internal configure.in script error for $fpe fpu core])
901     ;;
902     esac
903     done
904     if [[ "x$FPE_CORE" = "x" ]]; then
905     AC_MSG_ERROR([Sorry, no suitable FPU core found in $FPE_CORE_TEST_ORDER])
906 nigel 1.1 fi
907    
908     dnl Check for certain math functions
909     AC_CHECK_FUNCS(atanh)
910 nigel 1.5 AC_CHECK_FUNCS(isnan isinf finite isnormal signbit)
911 nigel 1.1
912     dnl UAE CPU sources for all non-m68k-native architectures.
913     if [[ "x$WANT_NATIVE_M68K" = "xno" ]]; then
914     CPUINCLUDES="-I../uae_cpu"
915 nigel 1.5 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"
916 nigel 1.1 fi
917    
918     dnl Remove the "-g" option if set for GCC.
919     if [[ "x$HAVE_GCC27" = "xyes" ]]; then
920     CFLAGS=`echo $CFLAGS | sed -e 's/-g//g'`
921     CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-g//g'`
922     fi
923    
924 nigel 1.10 dnl Or if we have -IPA (MIPSPro compilers)
925     if [[ "x$HAVE_IPA" = "xyes" ]]; then
926     CFLAGS="`echo $CFLAGS | sed -e 's/-g//g'` -O3 -OPT:Olimit=0 -IPA"
927     CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-g//g'` -O3 -OPT:Olimit=0 -IPA"
928 nigel 1.1 CXXFLAGS="-LANG:std $CXXFLAGS"
929 nigel 1.10 LDFLAGS="$LDFLAGS -O3 -OPT:Olimit=0 -IPA"
930 nigel 1.1 fi
931    
932     dnl Generate Makefile.
933     AC_SUBST(DEFINES)
934     AC_SUBST(SYSSRCS)
935     AC_SUBST(CPUINCLUDES)
936     AC_SUBST(CPUSRCS)
937 nigel 1.11 dnl autoconf on 10.1 doesn't understand these
938     dnl AC_CONFIG_FILES([Makefile])
939     dnl AC_OUTPUT
940 nigel 1.1 AC_OUTPUT(Makefile)
941    
942     dnl Print summary.
943     echo
944     echo Basilisk II configuration summary:
945     echo
946 nigel 1.8 echo Multiple emulator windows .............. : $ENABLE_MULTIPLE
947 nigel 1.5 echo Enable video on SEGV signals ........... : $WANT_VOSF
948     echo mon debugger support ................... : $WANT_MON
949     echo Use JIT compiler ....................... : $WANT_JIT
950     echo JIT debug mode ......................... : $WANT_JIT_DEBUG
951     echo Floating-Point emulation core .......... : $FPE_CORE
952     echo Assembly optimizations ................. : $ASM_OPTIMIZATIONS
953     echo Addressing mode ........................ : $ADDRESSING_MODE
954 nigel 1.1 echo
955 nigel 1.2 echo "Configuration done. Now type \"make\" (or \"make ide\")."
956 nigel 1.5
957