ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/Unix/configure.ac
Revision: 1.44
Committed: 2005-05-14T08:42:39Z (19 years, 6 months ago) by gbeauche
Branch: MAIN
Changes since 1.43: +1 -0 lines
Log Message:
ethernet/slirp works on netbsd too

File Contents

# Content
1 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_unix.cpp)
6 AC_PREREQ(2.52)
7 AC_CONFIG_HEADER(config.h)
8
9 dnl Aliases for PACKAGE and VERSION macros.
10 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE_NAME", [Define this program name.])
11 AC_DEFINE_UNQUOTED(VERSION, "$PACKAGE_VERSION", [Define this program version.])
12
13 dnl Some systems do not put corefiles in the currect directory, avoid saving
14 dnl cores for the configure tests since some are intended to dump core.
15 ulimit -c 0
16
17 dnl Video options.
18 AC_ARG_ENABLE(xf86-dga, [ --enable-xf86-dga use the XFree86 DGA extension [default=yes]], [WANT_XF86_DGA=$enableval], [WANT_XF86_DGA=yes])
19 AC_ARG_ENABLE(xf86-vidmode, [ --enable-xf86-vidmode use the XFree86 VidMode extension [default=yes]], [WANT_XF86_VIDMODE=$enableval], [WANT_XF86_VIDMODE=yes])
20 AC_ARG_ENABLE(fbdev-dga, [ --enable-fbdev-dga use direct frame buffer access via /dev/fb [default=yes]], [WANT_FBDEV_DGA=$enableval], [WANT_FBDEV_DGA=yes])
21 AC_ARG_ENABLE(vosf, [ --enable-vosf enable video on SEGV signals [default=yes]], [WANT_VOSF=$enableval], [WANT_VOSF=yes])
22
23 dnl SDL options.
24 AC_ARG_ENABLE(sdl-static, [ --enable-sdl-static use SDL static libraries for linking [default=no]], [WANT_SDL_STATIC=$enableval], [WANT_SDL_STATIC=no])
25 AC_ARG_ENABLE(sdl-video, [ --enable-sdl-video use SDL for video graphics [default=no]], [WANT_SDL_VIDEO=$enableval], [WANT_SDL_VIDEO=no])
26 AC_ARG_ENABLE(sdl-audio, [ --enable-sdl-audio use SDL for audio [default=no]], [WANT_SDL_AUDIO=$enableval], [WANT_SDL_AUDIO=no])
27
28 dnl JIT compiler options.
29 AC_ARG_ENABLE(jit-compiler, [ --enable-jit-compiler enable JIT compiler [default=no]], [WANT_JIT=$enableval], [WANT_JIT=no])
30 AC_ARG_ENABLE(jit-debug, [ --enable-jit-debug activate native code disassemblers [default=no]], [WANT_JIT_DEBUG=$enableval], [WANT_JIT_DEBUG=no])
31
32 dnl FPU emulation core.
33 AC_ARG_ENABLE(fpe,
34 [ --enable-fpe=FPE specify which fpu emulator to use [default=auto]],
35 [ case "$enableval" in
36 dnl default is always ieee, if architecture has this fp format
37 auto) FPE_CORE_TEST_ORDER="ieee uae";;
38 ieee) FPE_CORE_TEST_ORDER="ieee";;
39 uae) FPE_CORE_TEST_ORDER="uae";;
40 x86) FPE_CORE_TEST_ORDER="x86";;
41 *) AC_MSG_ERROR([--enable-fpe takes only one of the following values: auto, x86, ieee, uae]);;
42 esac
43 ],
44 [ FPE_CORE_TEST_ORDER="ieee uae"
45 ])
46
47 dnl Addressing modes.
48 AC_ARG_ENABLE(addressing,
49 [ --enable-addressing=AM specify the addressing mode to use [default=fastest]],
50 [ case "$enableval" in
51 real) ADDRESSING_TEST_ORDER="real";;
52 direct) ADDRESSING_TEST_ORDER="direct";;
53 banks) ADDRESSING_TEST_ORDER="banks";;
54 fastest)ADDRESSING_TEST_ORDER="direct banks";;
55 *) AC_MSG_ERROR([--enable-addressing takes only one of the following values: fastest, real, direct, banks]);;
56 esac
57 ],
58 [ ADDRESSING_TEST_ORDER="direct banks"
59 ])
60
61 dnl External packages.
62 AC_ARG_WITH(esd, [ --with-esd support ESD for sound under Linux/FreeBSD [default=yes]], [WANT_ESD=$withval], [WANT_ESD=yes])
63 AC_ARG_WITH(gtk, [ --with-gtk use GTK user interface [default=yes]], [WANT_GTK=$withval], [WANT_GTK=yes])
64 AC_ARG_WITH(mon, [ --with-mon use mon as debugger [default=yes]], [WANT_MON=$withval], [WANT_MON=yes])
65
66 dnl Canonical system information.
67 AC_CANONICAL_HOST
68 AC_CANONICAL_TARGET
69
70 dnl Target OS type (target is host if not cross-compiling).
71 case "$target_os" in
72 linux*) OS_TYPE=linux;;
73 netbsd*) OS_TYPE=netbsd;;
74 freebsd*) OS_TYPE=freebsd;;
75 solaris*) OS_TYPE=solaris;;
76 darwin*) OS_TYPE=darwin;;
77 *) OS_TYPE=`echo $target_os | sed -e 's/-/_/g' | sed -e 's/\./_/g'`;;
78 esac
79 DEFINES="$DEFINES -DOS_$OS_TYPE"
80
81 dnl Target CPU type.
82 HAVE_I386=no
83 HAVE_M68K=no
84 HAVE_SPARC=no
85 HAVE_POWERPC=no
86 HAVE_X86_64=no
87 case "$target_cpu" in
88 i386* | i486* | i586* | i686* | i786* ) HAVE_I386=yes;;
89 m68k* ) HAVE_M68K=yes;;
90 sparc* ) HAVE_SPARC=yes;;
91 powerpc* ) HAVE_POWERPC=yes;;
92 x86_64* ) HAVE_X86_64=yes;;
93 esac
94
95 dnl Checks for programs.
96 AC_PROG_CC
97 AC_PROG_CC_C_O
98 AC_PROG_CPP
99 AC_PROG_CXX
100 AC_PROG_MAKE_SET
101 AC_PROG_INSTALL
102 AC_PROG_EGREP
103
104 dnl We use mon if possible.
105 MONSRCS=
106 if [[ "x$WANT_MON" = "xyes" ]]; then
107 AC_MSG_CHECKING(for mon)
108 mon_srcdir=../../../mon/src
109 if grep mon_init $mon_srcdir/mon.h >/dev/null 2>/dev/null; then
110 AC_MSG_RESULT(yes)
111 AC_DEFINE(ENABLE_MON, 1, [Define if using "mon".])
112 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"
113 CXXFLAGS="$CXXFLAGS -I$mon_srcdir -I$mon_srcdir/disass"
114 AC_CHECK_LIB(ncurses, tgetent, ,
115 AC_CHECK_LIB(termcap, tgetent, ,
116 AC_CHECK_LIB(termlib, tgetent, ,
117 AC_CHECK_LIB(terminfo, tgetent, ,
118 AC_CHECK_LIB(Hcurses, tgetent, ,
119 AC_CHECK_LIB(curses, tgetent))))))
120 AC_CHECK_LIB(readline, readline)
121 else
122 AC_MSG_RESULT(no)
123 AC_MSG_WARN([Could not find mon, ignoring --with-mon.])
124 WANT_MON=no
125 fi
126 fi
127
128 dnl Checks for libraries.
129 AC_CHECK_LIB(posix4, sem_init)
130 AC_CHECK_LIB(rt, timer_create)
131 AC_CHECK_LIB(rt, shm_open)
132
133 dnl Do we need SDL?
134 WANT_SDL=no
135 if [[ "x$WANT_SDL_VIDEO" = "xyes" ]]; then
136 WANT_SDL=yes
137 WANT_XF86_DGA=no
138 WANT_XF86_VIDMODE=no
139 WANT_FBDEV_DGA=no
140 SDL_SUPPORT="$SDL_SUPPORT video"
141 fi
142 if [[ "x$WANT_SDL_AUDIO" = "xyes" ]]; then
143 WANT_SDL=yes
144 SDL_SUPPORT="$SDL_SUPPORT audio"
145 fi
146 if [[ "x$WANT_SDL" = "xyes" ]]; then
147 AC_PATH_PROG(sdl_config, "sdl-config")
148 if [[ -n "$sdl_config" ]]; then
149 case $target_os in
150 # Special treatment for Cygwin so that we can still use the POSIX layer
151 *cygwin*)
152 sdl_cflags="-I`$sdl_config --prefix`/include/SDL"
153 sdl_libs="-L`$sdl_config --exec-prefix`/lib -lSDL"
154 ;;
155 *)
156 sdl_cflags=`$sdl_config --cflags`
157 if [[ "x$WANT_SDL_STATIC" = "xyes" ]]; then
158 sdl_libs=`$sdl_config --static-libs`
159 else
160 sdl_libs=`$sdl_config --libs`
161 fi
162 ;;
163 esac
164 CFLAGS="$CFLAGS $sdl_cflags"
165 CXXFLAGS="$CXXFLAGS $sdl_cflags"
166 LIBS="$LIBS $sdl_libs"
167 else
168 WANT_SDL=no
169 fi
170 SDL_SUPPORT=`echo "$SDL_SUPPORT" | sed -e "s/^ //"`
171 else
172 SDL_SUPPORT="none"
173 fi
174
175 dnl We need X11, if not using SDL.
176 if [[ "x$WANT_SDL" = "xno" ]]; then
177 AC_PATH_XTRA
178 if [[ "x$no_x" = "xyes" ]]; then
179 AC_MSG_ERROR([You need X11 to run Basilisk II.])
180 fi
181 CFLAGS="$CFLAGS $X_CFLAGS"
182 CXXFLAGS="$CXXFLAGS $X_CFLAGS"
183 LIBS="$LIBS $X_PRE_LIBS $X_LIBS -lX11 -lXext $X_EXTRA_LIBS"
184 fi
185
186 dnl We want pthreads. Try libpthread first, then libc_r (FreeBSD), then PTL.
187 HAVE_PTHREADS=yes
188 AC_CHECK_LIB(pthread, pthread_create, , [
189 AC_CHECK_LIB(c_r, pthread_create, , [
190 AC_CHECK_LIB(PTL, pthread_create, , [
191 HAVE_PTHREADS=no
192 ])
193 ])
194 ])
195 if [[ "x$HAVE_PTHREADS" = "xyes" ]]; then
196 AC_DEFINE(HAVE_PTHREADS, 1, [Define if pthreads are available.])
197 fi
198 AC_CHECK_FUNCS(pthread_cancel)
199 AC_CHECK_FUNCS(pthread_mutexattr_setprotocol)
200 AC_CHECK_FUNCS(pthread_mutexattr_settype)
201 AC_CHECK_FUNCS(pthread_mutexattr_setpshared)
202
203 dnl If POSIX.4 semaphores are not available, we emulate them with pthread mutexes.
204 SEMSRC=
205 AC_CHECK_FUNCS(sem_init, , [
206 if test "x$HAVE_PTHREADS" = "xyes"; then
207 SEMSRC=posix_sem.cpp
208 fi
209 ])
210
211 dnl We use DGA (XFree86 or fbdev) if possible.
212 if [[ "x$WANT_XF86_DGA" = "xyes" ]]; then
213 AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension, [
214 AC_DEFINE(ENABLE_XF86_DGA, 1, [Define if using XFree86 DGA extension.])
215 LIBS="$LIBS -lXxf86dga"
216 if [[ "x$WANT_FBDEV_DGA" = "xyes" ]]; then
217 AC_MSG_WARN([Cannot have both --enable-xf86-dga and --enable-fbdev-dga, ignoring --enable-fbdev-dga.])
218 WANT_FBDEV_DGA=no
219 fi
220 ], [
221 AC_MSG_WARN([Could not find XFree86 DGA extension, ignoring --enable-xf86-dga.])
222 WANT_XF86_DGA=no
223 ])
224 fi
225 if [[ "x$WANT_FBDEV_DGA" = "xyes" ]]; then
226 AC_DEFINE(ENABLE_FBDEV_DGA, 1, [Define if using DGA with framebuffer device.])
227 fi
228
229 dnl We use XFree86 VidMode if possible.
230 if [[ "x$WANT_XF86_VIDMODE" = "xyes" ]]; then
231 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension, [
232 AC_DEFINE(ENABLE_XF86_VIDMODE, 1, [Define if using XFree86 DGA extension.])
233 LIBS="$LIBS -lXxf86vm"
234 ], [
235 AC_MSG_WARN([Could not find XFree86 VidMode extension, ignoring --enable-xf86-vidmode.])
236 WANT_XF86_VIDMODE=no
237 ])
238 fi
239
240 dnl We use GTK+ if possible.
241 UISRCS=../dummy/prefs_editor_dummy.cpp
242 if [[ "x$WANT_GTK" = "xyes" ]]; then
243 AM_PATH_GTK(1.2.0, [
244 AC_DEFINE(ENABLE_GTK, 1, [Define if using GTK.])
245 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
246 LIBS="$LIBS $GTK_LIBS"
247 UISRCS=prefs_editor_gtk.cpp
248 dnl somehow, <gnome-i18n.h> would redefine gettext() to nothing if
249 dnl ENABLE_NLS is not set, thusly conflicting with C++ <string> which
250 dnl includes <libintl.h>
251 AM_GNU_GETTEXT
252 B2_PATH_GNOMEUI([
253 AC_DEFINE(HAVE_GNOMEUI, 1, [Define if libgnomeui is available.])
254 CXXFLAGS="$CXXFLAGS $GNOMEUI_CFLAGS"
255 LIBS="$LIBS $GNOMEUI_LIBS"
256 ], [])
257 ], [
258 AC_MSG_WARN([Could not find GTK+, disabling user interface.])
259 WANT_GTK=no
260 ])
261 fi
262
263 dnl We use ESD if possible.
264 if [[ "x$WANT_ESD" = "xyes" ]]; then
265 AM_PATH_ESD(0.2.8, [
266 AC_DEFINE(ENABLE_ESD, 1, [Define is using ESD.])
267 CFLAGS="$CFLAGS $ESD_CFLAGS"
268 CXXFLAGS="$CXXFLAGS $ESD_CFLAGS"
269 LIBS="$LIBS $ESD_LIBS"
270 ], [
271 AC_MSG_WARN([Could not find ESD, disabling ESD support.])
272 WANT_ESD=no
273 ])
274 fi
275
276 dnl We use 64-bit file size support if possible.
277 AC_SYS_LARGEFILE
278
279 dnl Checks for header files.
280 AC_HEADER_STDC
281 AC_CHECK_HEADERS(unistd.h fcntl.h sys/types.h sys/time.h sys/mman.h mach/mach.h)
282 AC_CHECK_HEADERS(readline.h history.h readline/readline.h readline/history.h)
283 AC_CHECK_HEADERS(sys/socket.h sys/ioctl.h sys/filio.h sys/bitypes.h sys/wait.h)
284 AC_CHECK_HEADERS(sys/poll.h sys/select.h)
285 AC_CHECK_HEADERS(arpa/inet.h)
286 AC_CHECK_HEADERS(linux/if.h linux/if_tun.h net/if.h net/if_tun.h, [], [], [
287 #ifdef HAVE_SYS_TYPES_H
288 #include <sys/types.h>
289 #endif
290 #ifdef HAVE_SYS_SOCKET_H
291 #include <sys/socket.h>
292 #endif
293 ])
294 AC_CHECK_HEADERS(AvailabilityMacros.h)
295
296 dnl Checks for typedefs, structures, and compiler characteristics.
297 AC_C_BIGENDIAN
298 AC_C_CONST
299 AC_C_INLINE
300 AC_CHECK_SIZEOF(short, 2)
301 AC_CHECK_SIZEOF(int, 4)
302 AC_CHECK_SIZEOF(long, 4)
303 AC_CHECK_SIZEOF(long long, 8)
304 AC_CHECK_SIZEOF(float, 4)
305 AC_CHECK_SIZEOF(double, 8)
306 AC_CHECK_SIZEOF(long double, 12)
307 AC_CHECK_SIZEOF(void *, 4)
308 AC_TYPE_OFF_T
309 AC_CHECK_TYPES(loff_t)
310 AC_CHECK_TYPES(caddr_t)
311 AC_TYPE_SIZE_T
312 AC_TYPE_SIGNAL
313 AC_HEADER_TIME
314 AC_STRUCT_TM
315
316 dnl Check whether sys/socket.h defines type socklen_t.
317 dnl (extracted from ac-archive/Miscellaneous)
318 AC_CACHE_CHECK([for socklen_t],
319 ac_cv_type_socklen_t, [
320 AC_TRY_COMPILE([
321 #include <sys/types.h>
322 #include <sys/socket.h>
323 ], [socklen_t len = 42; return 0;],
324 ac_cv_type_socklen_t=yes, ac_cv_type_socklen_t=no,
325 dnl When cross-compiling, do not assume anything.
326 ac_cv_type_socklen_t="guessing no"
327 )
328 ])
329 if [[ "x$ac_cv_type_socklen_t" != "xyes" ]]; then
330 AC_DEFINE(socklen_t, int, [Define to 'int' if <sys/types.h> doesn't define.])
331 fi
332
333 dnl Checks for library functions.
334 AC_CHECK_FUNCS(strdup strerror cfmakeraw)
335 AC_CHECK_FUNCS(clock_gettime timer_create)
336 AC_CHECK_FUNCS(sigaction signal)
337 AC_CHECK_FUNCS(mmap mprotect munmap)
338 AC_CHECK_FUNCS(vm_allocate vm_deallocate vm_protect)
339 AC_CHECK_FUNCS(poll inet_aton)
340
341 dnl Darwin seems to define mach_task_self() instead of task_self().
342 AC_CHECK_FUNCS(mach_task_self task_self)
343
344 dnl Check for headers and functions related to pty support (sshpty.c)
345 dnl From openssh-3.2.2p1 configure.ac
346
347 AC_CHECK_HEADERS(strings.h login.h sys/bsdtty.h sys/stat.h util.h pty.h)
348 AC_CHECK_FUNCS(_getpty vhangup strlcpy)
349
350 case "$host" in
351 *-*-hpux10.26)
352 disable_ptmx_check=yes
353 ;;
354 *-*-linux*)
355 no_dev_ptmx=1
356 ;;
357 mips-sony-bsd|mips-sony-newsos4)
358 AC_DEFINE(HAVE_NEWS4, 1, [Define if you are on NEWS-OS (additions from openssh-3.2.2p1, for sshpty.c).])
359 ;;
360 *-*-sco3.2v4*)
361 no_dev_ptmx=1
362 ;;
363 *-*-sco3.2v5*)
364 no_dev_ptmx=1
365 ;;
366 *-*-cygwin*)
367 no_dev_ptmx=1
368 ;;
369 esac
370
371 if test -z "$no_dev_ptmx" ; then
372 if test "x$disable_ptmx_check" != "xyes" ; then
373 AC_CHECK_FILE([/dev/ptmx],
374 [
375 AC_DEFINE_UNQUOTED(HAVE_DEV_PTMX, 1, [Define if you have /dev/ptmx.])
376 have_dev_ptmx=1
377 ]
378 )
379 fi
380 fi
381 AC_CHECK_FILE([/dev/ptc],
382 [
383 AC_DEFINE_UNQUOTED(HAVE_DEV_PTS_AND_PTC, 1, [Define if you have /dev/ptc.])
384 have_dev_ptc=1
385 ]
386 )
387
388 dnl (end of code from openssh-3.2.2p1 configure.ac)
389
390
391 dnl AC_CHECK_FRAMEWORK($1=NAME, $2=INCLUDES)
392 AC_DEFUN(AC_CHECK_FRAMEWORK, [
393 AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1])dnl
394 AC_CACHE_CHECK([whether compiler supports framework $1],
395 ac_Framework, [
396 saved_LIBS="$LIBS"
397 LIBS="$LIBS -framework $1"
398 AC_TRY_LINK(
399 [$2], [int main(void) { return 0; }],
400 [AS_VAR_SET(ac_Framework, yes)], [AS_VAR_SET(ac_Framework, no); LIBS="$saved_LIBS"]
401 )
402 ])
403 AS_IF([test AS_VAR_GET(ac_Framework) = yes],
404 [AC_DEFINE(AS_TR_CPP(HAVE_FRAMEWORK_$1), 1, [Define if framework $1 is available.])]
405 )
406 AS_VAR_POPDEF([ac_Framework])dnl
407 ])
408
409 dnl Check for some MacOS X frameworks
410 AC_CHECK_FRAMEWORK(Carbon, [#include <Carbon/Carbon.h>])
411 AC_CHECK_FRAMEWORK(IOKit, [#include <IOKit/IOKitLib.h>])
412
413 dnl Select system-dependant source files.
414 SERIALSRC=serial_unix.cpp
415 ETHERSRC=../dummy/ether_dummy.cpp
416 SCSISRC=../dummy/scsi_dummy.cpp
417 AUDIOSRC=../dummy/audio_dummy.cpp
418 EXTFSSRC=extfs_unix.cpp
419 EXTRASYSSRCS=
420 CAN_NATIVE_M68K=no
421 case "$target_os" in
422 linux*)
423 ETHERSRC=ether_unix.cpp
424 AUDIOSRC=audio_oss_esd.cpp
425 SCSISRC=Linux/scsi_linux.cpp
426 ;;
427 freebsd*)
428 ETHERSRC=ether_unix.cpp
429 AUDIOSRC=audio_oss_esd.cpp
430 DEFINES="$DEFINES -DBSD_COMP"
431 CXXFLAGS="$CXXFLAGS -fpermissive"
432 dnl Check for the CAM library
433 AC_CHECK_LIB(cam, cam_open_btl, HAVE_LIBCAM=yes, HAVE_LIBCAM=no)
434 if [[ "x$HAVE_LIBCAM" = "xno" ]]; then
435 AC_MSG_WARN([Cannot find libcam for SCSI management, disabling SCSI support.])
436 else
437 dnl Check for the sys kernel includes
438 AC_CHECK_HEADER(camlib.h)
439 if [[ "x$ac_cv_header_camlib_h" = "xno" ]]; then
440 dnl In this case I should fix this thing including a "patch"
441 dnl to access directly to the functions in the kernel :) --Orlando
442 AC_MSG_WARN([Cannot find includes for CAM library, disabling SCSI support.])
443 else
444 SCSISRC=FreeBSD/scsi_freebsd.cpp
445 LIBS="$LIBS -lcam"
446 DEFINES="$DEFINES -DCAM"
447 fi
448 fi
449 ;;
450 netbsd*)
451 CAN_NATIVE_M68K=yes
452 ETHERSRC=ether_unix.cpp
453 ;;
454 solaris*)
455 AUDIOSRC=Solaris/audio_solaris.cpp
456 DEFINES="$DEFINES -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS"
457 ;;
458 irix*)
459 ETHERSRC=ether_unix.cpp
460 AUDIOSRC=Irix/audio_irix.cpp
461 EXTRASYSSRCS=Irix/unaligned.c
462 dnl IRIX headers work fine, but somehow don't define or use "STDC_HEADERS"
463 DEFINES="$DEFINES -DCRTSCTS=CNEW_RTSCTS -DB230400=B115200 -DSTDC_HEADERS"
464 LIBS="$LIBS -laudio"
465 WANT_ESD=no
466
467 dnl Check if our compiler supports -IPA (MIPSPro)
468 HAVE_IPA=no
469 ocflags="$CFLAGS"
470 CFLAGS=`echo "$CFLAGS -IPA" | sed -e "s/-g//g"`
471 AC_MSG_CHECKING(if "-IPA" works)
472 dnl Do a test compile of an empty function
473 AC_TRY_COMPILE(,, [AC_MSG_RESULT(yes); HAVE_IPA=yes], AC_MSG_RESULT(no))
474 CFLAGS="$ocflags"
475 ;;
476 darwin*)
477 if [[ "x$ac_cv_framework_IOKit" = "xyes" ]]; then
478 EXTRASYSSRCS="../MacOSX/sys_darwin.cpp"
479 fi
480 if [[ "x$ac_cv_framework_Carbon" = "xyes" ]]; then
481 EXTFSSRC=../MacOSX/extfs_macosx.mm
482 fi
483 ;;
484 cygwin*)
485 SERIALSRC="../dummy/serial_dummy.cpp"
486 EXTRASYSSRCS="../Windows/BasiliskII.rc"
487 ;;
488 esac
489
490 dnl Is the slirp library supported?
491 if [[ "x$ETHERSRC" = "xether_unix.cpp" ]]; then
492 AC_DEFINE(HAVE_SLIRP, 1, [Define if slirp library is supported])
493 SLIRP_SRCS="\
494 ../slirp/bootp.c ../slirp/ip_output.c ../slirp/tcp_input.c \
495 ../slirp/cksum.c ../slirp/mbuf.c ../slirp/tcp_output.c \
496 ../slirp/debug.c ../slirp/misc.c ../slirp/tcp_subr.c \
497 ../slirp/if.c ../slirp/sbuf.c ../slirp/tcp_timer.c \
498 ../slirp/ip_icmp.c ../slirp/slirp.c ../slirp/tftp.c \
499 ../slirp/ip_input.c ../slirp/socket.c ../slirp/udp.c"
500 fi
501 AC_SUBST(SLIRP_SRCS)
502
503 dnl SDL overrides
504 if [[ "x$WANT_SDL" = "xyes" ]]; then
505 AC_DEFINE(USE_SDL, 1, [Define to enble SDL support])
506 fi
507 if [[ "x$WANT_SDL_VIDEO" = "xyes" ]]; then
508 AC_DEFINE(USE_SDL_VIDEO, 1, [Define to enable SDL video graphics support])
509 VIDEOSRCS="../SDL/video_sdl.cpp"
510 KEYCODES="../SDL/keycodes"
511 if [[ "x$ac_cv_framework_Carbon" = "xyes" ]]; then
512 EXTRASYSSRCS="$EXTRASYSSRCS ../MacOSX/clip_macosx.cpp"
513 else
514 case "$target_os" in
515 cygwin*)
516 EXTRASYSSRCS="$EXTRASYSSRCS ../Windows/clip_windows.cpp"
517 ;;
518 *)
519 EXTRASYSSRCS="$EXTRASYSSRCS ../dummy/clip_dummy.cpp"
520 ;;
521 esac
522 fi
523 else
524 VIDEOSRCS="video_x.cpp"
525 KEYCODES="keycodes"
526 EXTRASYSSRCS="$EXTRASYSSRCS clip_unix.cpp"
527 fi
528 if [[ "x$WANT_SDL_AUDIO" = "xyes" ]]; then
529 AC_DEFINE(USE_SDL_AUDIO, 1, [Define to enable SDL audio support])
530 AUDIOSRC="../SDL/audio_sdl.cpp"
531 fi
532
533 dnl Use 68k CPU natively?
534 WANT_NATIVE_M68K=no
535 if [[ "x$HAVE_M68K" = "xyes" -a "x$CAN_NATIVE_M68K" = "xyes" ]]; then
536 AC_DEFINE(ENABLE_NATIVE_M68K, 1, [Define if using native 68k mode.])
537 WANT_NATIVE_M68K=yes
538 fi
539
540 if [[ "x$HAVE_PTHREADS" = "xno" ]]; then
541 dnl Serial, ethernet and audio support needs pthreads
542 AC_MSG_WARN([You don't have pthreads, disabling serial, ethernet and audio support.])
543 SERIALSRC=../dummy/serial_dummy.cpp
544 ETHERSRC=../dummy/ether_dummy.cpp
545 AUDIOSRC=../dummy/audio_dummy.cpp
546 fi
547 SYSSRCS="$VIDEOSRCS $EXTFSSRC $SERIALSRC $ETHERSRC $SCSISRC $AUDIOSRC $SEMSRC $UISRCS $MONSRCS $EXTRASYSSRCS"
548
549 dnl Define a macro that translates a yesno-variable into a C macro definition
550 dnl to be put into the config.h file
551 dnl $1 -- the macro to define
552 dnl $2 -- the value to translate
553 dnl $3 -- template name
554 AC_DEFUN(AC_TRANSLATE_DEFINE, [
555 if [[ "x$2" = "xyes" -o "x$2" = "xguessing yes" ]]; then
556 AC_DEFINE($1, 1, $3)
557 fi
558 ])
559
560 dnl Check that the host supports TUN/TAP devices
561 AC_CACHE_CHECK([whether TUN/TAP is supported],
562 ac_cv_tun_tap_support, [
563 AC_TRY_COMPILE([
564 #if defined(HAVE_LINUX_IF_H) && defined(HAVE_LINUX_IF_TUN_H)
565 #include <linux/if.h>
566 #include <linux/if_tun.h>
567 #endif
568 #if defined(HAVE_NET_IF_H) && defined(HAVE_NET_IF_TUN_H)
569 #include <net/if.h>
570 #include <net/if_tun.h>
571 #endif
572 ], [
573 struct ifreq ifr;
574 memset(&ifr, 0, sizeof(ifr));
575 ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
576 ],
577 ac_cv_tun_tap_support=yes, ac_cv_tun_tap_support=no
578 )
579 ])
580 AC_TRANSLATE_DEFINE(ENABLE_TUNTAP, "$ac_cv_tun_tap_support",
581 [Define if your system supports TUN/TAP devices.])
582
583 dnl Various checks if the system supports vm_allocate() and the like functions.
584 have_mach_vm=no
585 if [[ "x$ac_cv_func_vm_allocate" = "xyes" -a "x$ac_cv_func_vm_deallocate" = "xyes" -a \
586 "x$ac_cv_func_vm_protect" = "xyes" ]]; then
587 have_mach_vm=yes
588 fi
589 AC_TRANSLATE_DEFINE(HAVE_MACH_VM, "$have_mach_vm",
590 [Define if your system has a working vm_allocate()-based memory allocator.])
591
592 dnl Check that vm_allocate(), vm_protect() work
593 if [[ "x$have_mach_vm" = "xyes" ]]; then
594
595 AC_CACHE_CHECK([whether vm_protect works],
596 ac_cv_vm_protect_works, [
597 AC_LANG_SAVE
598 AC_LANG_CPLUSPLUS
599 ac_cv_vm_protect_works=yes
600 dnl First the tests that should segfault
601 for test_def in NONE_READ NONE_WRITE READ_WRITE; do
602 AC_TRY_RUN([
603 #define CONFIGURE_TEST_VM_MAP
604 #define TEST_VM_PROT_$test_def
605 #include "vm_alloc.cpp"
606 ], ac_cv_vm_protect_works=no, rm -f core,
607 dnl When cross-compiling, do not assume anything
608 ac_cv_vm_protect_works="guessing no"
609 )
610 done
611 AC_TRY_RUN([
612 #define CONFIGURE_TEST_VM_MAP
613 #define TEST_VM_PROT_RDWR_WRITE
614 #include "vm_alloc.cpp"
615 ], , ac_cv_vm_protect_works=no,
616 dnl When cross-compiling, do not assume anything
617 ac_cv_vm_protect_works="guessing no"
618 )
619 AC_LANG_RESTORE
620 ]
621 )
622
623 dnl Remove support for vm_allocate() if vm_protect() does not work
624 if [[ "x$have_mach_vm" = "xyes" ]]; then
625 case $ac_cv_vm_protect_works in
626 *yes) have_mach_vm=yes;;
627 *no) have_mach_vm=no;;
628 esac
629 fi
630 AC_TRANSLATE_DEFINE(HAVE_MACH_VM, "$have_mach_vm",
631 [Define if your system has a working vm_allocate()-based memory allocator.])
632
633 fi dnl HAVE_MACH_VM
634
635 dnl Various checks if the system supports mmap() and the like functions.
636 dnl ... and Mach memory allocators are not supported
637 have_mmap_vm=no
638 if [[ "x$ac_cv_func_mmap" = "xyes" -a "x$ac_cv_func_munmap" = "xyes" -a \
639 "x$ac_cv_func_mprotect" = "xyes" ]]; then
640 if [[ "x$have_mach_vm" = "xno" ]]; then
641 have_mmap_vm=yes
642 fi
643 fi
644 AC_TRANSLATE_DEFINE(HAVE_MMAP_VM, "$have_mmap_vm",
645 [Define if your system has a working mmap()-based memory allocator.])
646
647 dnl Check that mmap() and associated functions work.
648 if [[ "x$have_mmap_vm" = "xyes" ]]; then
649
650 dnl Check if we have a working anonymous mmap()
651 AC_CACHE_CHECK([whether mmap supports MAP_ANON],
652 ac_cv_mmap_anon, [
653 AC_LANG_SAVE
654 AC_LANG_CPLUSPLUS
655 AC_TRY_RUN([
656 #define HAVE_MMAP_ANON
657 #define CONFIGURE_TEST_VM_MAP
658 #define TEST_VM_MMAP_ANON
659 #include "vm_alloc.cpp"
660 ], ac_cv_mmap_anon=yes, ac_cv_mmap_anon=no,
661 dnl When cross-compiling, do not assume anything.
662 ac_cv_mmap_anon="guessing no"
663 )
664 AC_LANG_RESTORE
665 ]
666 )
667 AC_TRANSLATE_DEFINE(HAVE_MMAP_ANON, "$ac_cv_mmap_anon",
668 [Define if <sys/mman.h> defines MAP_ANON and mmap()'ing with MAP_ANON works.])
669
670 AC_CACHE_CHECK([whether mmap supports MAP_ANONYMOUS],
671 ac_cv_mmap_anonymous, [
672 AC_LANG_SAVE
673 AC_LANG_CPLUSPLUS
674 AC_TRY_RUN([
675 #define HAVE_MMAP_ANONYMOUS
676 #define CONFIGURE_TEST_VM_MAP
677 #define TEST_VM_MMAP_ANON
678 #include "vm_alloc.cpp"
679 ], ac_cv_mmap_anonymous=yes, ac_cv_mmap_anonymous=no,
680 dnl When cross-compiling, do not assume anything.
681 ac_cv_mmap_anonymous="guessing no"
682 )
683 AC_LANG_RESTORE
684 ]
685 )
686 AC_TRANSLATE_DEFINE(HAVE_MMAP_ANONYMOUS, "$ac_cv_mmap_anonymous",
687 [Define if <sys/mman.h> defines MAP_ANONYMOUS and mmap()'ing with MAP_ANONYMOUS works.])
688
689 AC_CACHE_CHECK([whether mprotect works],
690 ac_cv_mprotect_works, [
691 AC_LANG_SAVE
692 AC_LANG_CPLUSPLUS
693 ac_cv_mprotect_works=yes
694 dnl First the tests that should segfault
695 for test_def in NONE_READ NONE_WRITE READ_WRITE; do
696 AC_TRY_RUN([
697 #define CONFIGURE_TEST_VM_MAP
698 #define TEST_VM_PROT_$test_def
699 #include "vm_alloc.cpp"
700 ], ac_cv_mprotect_works=no, rm -f core,
701 dnl When cross-compiling, do not assume anything
702 ac_cv_mprotect_works="guessing no"
703 )
704 done
705 AC_TRY_RUN([
706 #define CONFIGURE_TEST_VM_MAP
707 #define TEST_VM_PROT_RDWR_WRITE
708 #include "vm_alloc.cpp"
709 ], , ac_cv_mprotect_works=no,
710 dnl When cross-compiling, do not assume anything
711 ac_cv_mprotect_works="guessing no"
712 )
713 AC_LANG_RESTORE
714 ]
715 )
716
717 dnl Remove support for mmap() if mprotect() does not work
718 if [[ "x$have_mmap_vm" = "xyes" ]]; then
719 case $ac_cv_mprotect_works in
720 *yes) have_mmap_vm=yes;;
721 *no) have_mmap_vm=no;;
722 esac
723 fi
724 AC_TRANSLATE_DEFINE(HAVE_MMAP_VM, $have_mmap_vm,
725 [Define if your system has a working mmap()-based memory allocator.])
726
727 fi dnl HAVE_MMAP_VM
728
729 dnl Check if we can modify the __PAGEZERO segment for use as Low Memory
730 AC_CACHE_CHECK([whether __PAGEZERO can be Low Memory area 0x0000-0x2000],
731 ac_cv_pagezero_hack, [
732 ac_cv_pagezero_hack=no
733 if AC_TRY_COMMAND([Darwin/testlmem.sh 0x2000]); then
734 ac_cv_pagezero_hack=yes
735 dnl might as well skip the test for mmap-able low memory
736 ac_cv_can_map_lm=no
737 fi
738 ])
739 AC_TRANSLATE_DEFINE(PAGEZERO_HACK, "$ac_cv_pagezero_hack",
740 [Define if the __PAGEZERO Mach-O Low Memory Globals hack works on this system.])
741
742 dnl Check if we can mmap 0x2000 bytes from 0x0000
743 AC_CACHE_CHECK([whether we can map Low Memory area 0x0000-0x2000],
744 ac_cv_can_map_lm, [
745 AC_LANG_SAVE
746 AC_LANG_CPLUSPLUS
747 AC_TRY_RUN([
748 #include "vm_alloc.cpp"
749 int main(void) { /* returns 0 if we could map the lowmem globals */
750 volatile char * lm = 0;
751 if (vm_init() < 0) exit(1);
752 if (vm_acquire_fixed(0, 0x2000) < 0) exit(1);
753 lm[0] = 'z';
754 if (vm_release((char *)lm, 0x2000) < 0) exit(1);
755 vm_exit(); exit(0);
756 }
757 ], ac_cv_can_map_lm=yes, ac_cv_can_map_lm=no,
758 dnl When cross-compiling, do not assume anything.
759 ac_cv_can_map_lm="guessing no"
760 )
761 AC_LANG_RESTORE
762 ]
763 )
764
765 dnl Check if we have POSIX shared memory support
766 AC_CACHE_CHECK([whether POSIX shared memory is working],
767 ac_cv_have_posix_shm, [
768 AC_LANG_SAVE
769 AC_LANG_CPLUSPLUS
770 AC_TRY_RUN([
771 #define HAVE_POSIX_SHM
772 #include "vm_alloc.cpp"
773 int main(void) { /* returns 0 if we have working POSIX shm */
774 if (vm_init() < 0) exit(2);
775 char *m1 = (char *)vm_acquire(32768, VM_MAP_DEFAULT | VM_MAP_33BIT);
776 if (m1 == VM_MAP_FAILED) exit(3);
777 vm_exit(); exit(0);
778 }
779 ], ac_cv_have_posix_shm=yes, ac_cv_have_posix_shm=no,
780 dnl When cross-compiling, do not assume anything.
781 ac_cv_have_posix_shm="guessing no"
782 )
783 AC_LANG_RESTORE
784 ]
785 )
786 AC_TRANSLATE_DEFINE(HAVE_POSIX_SHM, "$ac_cv_have_posix_shm",
787 [Define if your system supports POSIX shared memory.])
788
789 dnl Check if we have working 33-bit memory addressing
790 AC_CACHE_CHECK([whether 33-bit memory addressing is working],
791 ac_cv_have_33bit_addressing, [
792 AC_LANG_SAVE
793 AC_LANG_CPLUSPLUS
794 AC_TRY_RUN([
795 #define USE_33BIT_ADDRESSING 1
796 #include "vm_alloc.cpp"
797 int main(void) { /* returns 0 if we have working 33-bit addressing */
798 if (sizeof(void *) < 8) exit(1);
799 if (vm_init() < 0) exit(2);
800 char *m1 = (char *)vm_acquire(32768, VM_MAP_DEFAULT | VM_MAP_33BIT);
801 if (m1 == VM_MAP_FAILED) exit(3);
802 char *m2 = m1 + (1L << 32);
803 m1[0] = 0x12; if (m2[0] != 0x12) exit(4);
804 m2[0] = 0x34; if (m1[0] != 0x34) exit(5);
805 vm_exit(); exit(0);
806 }
807 ], ac_cv_have_33bit_addressing=yes, ac_cv_have_33bit_addressing=no,
808 dnl When cross-compiling, do not assume anything.
809 ac_cv_have_33bit_addressing="guessing no"
810 )
811 AC_LANG_RESTORE
812 ]
813 )
814
815 dnl Check signal handlers need to be reinstalled
816 AC_CACHE_CHECK([whether signal handlers need to be reinstalled],
817 ac_cv_signal_need_reinstall, [
818 AC_LANG_SAVE
819 AC_LANG_CPLUSPLUS
820 AC_TRY_RUN([
821 #include <stdlib.h>
822 #ifdef HAVE_UNISTD_H
823 #include <unistd.h>
824 #endif
825 #include <signal.h>
826 static int handled_signal = 0;
827 RETSIGTYPE sigusr1_handler(int) { handled_signal++; }
828 int main(void) { /* returns 0 if signals need not to be reinstalled */
829 signal(SIGUSR1, sigusr1_handler); raise(SIGUSR1); raise(SIGUSR1);
830 exit(handled_signal == 2);
831 }
832 ], ac_cv_signal_need_reinstall=yes, ac_cv_signal_need_reinstall=no,
833 dnl When cross-compiling, do not assume anything.
834 ac_cv_signal_need_reinstall="guessing yes"
835 )
836 AC_LANG_RESTORE
837 ]
838 )
839 AC_TRANSLATE_DEFINE(SIGNAL_NEED_REINSTALL, "$ac_cv_signal_need_reinstall",
840 [Define if your system requires signals to be reinstalled.])
841
842 dnl Check if sigaction handlers need to be reinstalled
843 AC_CACHE_CHECK([whether sigaction handlers need to be reinstalled],
844 ac_cv_sigaction_need_reinstall, [
845 AC_LANG_SAVE
846 AC_LANG_CPLUSPLUS
847 AC_TRY_RUN([
848 #include <stdlib.h>
849 #ifdef HAVE_UNISTD_H
850 #include <unistd.h>
851 #endif
852 #include <signal.h>
853 static int handled_signal = 0;
854 RETSIGTYPE sigusr1_handler(int) { handled_signal++; }
855 typedef RETSIGTYPE (*signal_handler)(int);
856 static signal_handler mysignal(int sig, signal_handler handler) {
857 struct sigaction old_sa;
858 struct sigaction new_sa;
859 new_sa.sa_handler = handler;
860 return ((sigaction(sig,&new_sa,&old_sa) < 0) ? SIG_IGN : old_sa.sa_handler);
861 }
862 int main(void) { /* returns 0 if signals need not to be reinstalled */
863 mysignal(SIGUSR1, sigusr1_handler); raise(SIGUSR1); raise(SIGUSR1);
864 exit(handled_signal == 2);
865 }
866 ], ac_cv_sigaction_need_reinstall=yes, ac_cv_sigaction_need_reinstall=no,
867 dnl When cross-compiling, do not assume anything.
868 ac_cv_sigaction_need_reinstall="guessing yes"
869 )
870 AC_LANG_RESTORE
871 ]
872 )
873 AC_TRANSLATE_DEFINE(SIGACTION_NEED_REINSTALL, "$ac_cv_sigaction_need_reinstall",
874 [Define if your system requires sigactions to be reinstalled.])
875
876 dnl Check if Mach exceptions supported.
877 AC_CACHE_CHECK([whether your system supports Mach exceptions],
878 ac_cv_have_mach_exceptions, [
879 AC_LANG_SAVE
880 AC_LANG_CPLUSPLUS
881 AC_TRY_RUN([
882 #define HAVE_MACH_EXCEPTIONS 1
883 #define CONFIGURE_TEST_SIGSEGV_RECOVERY
884 #include "vm_alloc.cpp"
885 #include "sigsegv.cpp"
886 ], [
887 sigsegv_recovery=mach
888 ac_cv_have_mach_exceptions=yes
889 ],
890 ac_cv_have_mach_exceptions=no,
891 dnl When cross-compiling, do not assume anything.
892 ac_cv_have_mach_exceptions=no
893 )
894 AC_LANG_RESTORE
895 ]
896 )
897 AC_TRANSLATE_DEFINE(HAVE_MACH_EXCEPTIONS, "$ac_cv_have_mach_exceptions",
898 [Define if your system supports Mach exceptions.])
899
900 dnl Check if Windows exceptions are supported.
901 AC_CACHE_CHECK([whether your system supports Windows exceptions],
902 ac_cv_have_win32_exceptions, [
903 AC_LANG_SAVE
904 AC_LANG_CPLUSPLUS
905 AC_TRY_RUN([
906 #define HAVE_WIN32_EXCEPTIONS 1
907 #define CONFIGURE_TEST_SIGSEGV_RECOVERY
908 #include "vm_alloc.cpp"
909 #include "sigsegv.cpp"
910 ], [
911 sigsegv_recovery=win32
912 ac_cv_have_win32_exceptions=yes
913 ],
914 ac_cv_have_win32_exceptions=no,
915 dnl When cross-compiling, do not assume anything.
916 ac_cv_have_win32_exceptions=no
917 )
918 AC_LANG_RESTORE
919 ]
920 )
921 AC_TRANSLATE_DEFINE(HAVE_WIN32_EXCEPTIONS, "$ac_cv_have_win32_exceptions",
922 [Define if your system supports Windows exceptions.])
923
924 dnl Otherwise, check if extended signals are supported.
925 if [[ -z "$sigsegv_recovery" ]]; then
926 AC_CACHE_CHECK([whether your system supports extended signal handlers],
927 ac_cv_have_extended_signals, [
928 AC_LANG_SAVE
929 AC_LANG_CPLUSPLUS
930 AC_TRY_RUN([
931 #define HAVE_SIGINFO_T 1
932 #define CONFIGURE_TEST_SIGSEGV_RECOVERY
933 #include "vm_alloc.cpp"
934 #include "sigsegv.cpp"
935 ], [
936 sigsegv_recovery=siginfo
937 ac_cv_have_extended_signals=yes
938 ],
939 ac_cv_have_extended_signals=no,
940 dnl When cross-compiling, do not assume anything.
941 ac_cv_have_extended_signals=no
942 )
943 AC_LANG_RESTORE
944 ]
945 )
946 AC_TRANSLATE_DEFINE(HAVE_SIGINFO_T, "$ac_cv_have_extended_signals",
947 [Define if your system support extended signals.])
948 fi
949
950 dnl Otherwise, check for subterfuges.
951 if [[ -z "$sigsegv_recovery" ]]; then
952 AC_CACHE_CHECK([whether we then have a subterfuge for your system],
953 ac_cv_have_sigcontext_hack, [
954 AC_LANG_SAVE
955 AC_LANG_CPLUSPLUS
956 AC_TRY_RUN([
957 #define HAVE_SIGCONTEXT_SUBTERFUGE 1
958 #define CONFIGURE_TEST_SIGSEGV_RECOVERY
959 #include "vm_alloc.cpp"
960 #include "sigsegv.cpp"
961 ], [
962 sigsegv_recovery=sigcontext
963 ac_cv_have_sigcontext_hack=yes
964 ],
965 ac_cv_have_sigcontext_hack=no,
966 dnl When cross-compiling, do not assume anything.
967 ac_cv_have_sigcontext_hack=no
968 )
969 AC_LANG_RESTORE
970 ])
971 AC_TRANSLATE_DEFINE(HAVE_SIGCONTEXT_SUBTERFUGE, "$ac_cv_have_sigcontext_hack",
972 [Define if we know a hack to replace siginfo_t->si_addr member.])
973 fi
974
975 dnl Check if we can ignore the fault (instruction skipping in SIGSEGV handler)
976 AC_CACHE_CHECK([whether we can skip instruction in SIGSEGV handler],
977 ac_cv_have_skip_instruction, [
978 AC_LANG_SAVE
979 AC_LANG_CPLUSPLUS
980 AC_TRY_RUN([
981 #define HAVE_SIGSEGV_SKIP_INSTRUCTION 1
982 #define CONFIGURE_TEST_SIGSEGV_RECOVERY
983 #include "vm_alloc.cpp"
984 #include "sigsegv.cpp"
985 ], ac_cv_have_skip_instruction=yes, ac_cv_have_skip_instruction=no,
986 dnl When cross-compiling, do not assume anything.
987 ac_cv_have_skip_instruction=no
988 )
989 AC_LANG_RESTORE
990 ]
991 )
992 AC_TRANSLATE_DEFINE(HAVE_SIGSEGV_SKIP_INSTRUCTION, "$ac_cv_have_skip_instruction",
993 [Define if we can ignore the fault (instruction skipping in SIGSEGV handler).])
994
995 dnl Can we do Video on SEGV Signals ?
996 CAN_VOSF=no
997 if [[ -n "$sigsegv_recovery" ]]; then
998 CAN_VOSF=yes
999 fi
1000
1001 dnl A dummy program that returns always true
1002 AC_PATH_PROG([BLESS], "true")
1003
1004 dnl Determine the addressing mode to use
1005 if [[ "x$WANT_NATIVE_M68K" = "xyes" ]]; then
1006 ADDRESSING_MODE="real"
1007 else
1008 ADDRESSING_MODE=""
1009 AC_MSG_CHECKING([for the addressing mode to use])
1010 for am in $ADDRESSING_TEST_ORDER; do
1011 case $am in
1012 real)
1013 dnl Requires ability to mmap() Low Memory globals
1014 if [[ "x$ac_cv_can_map_lm$ac_cv_pagezero_hack" = "xnono" ]]; then
1015 continue
1016 fi
1017 dnl Requires VOSF screen updates
1018 if [[ "x$CAN_VOSF" = "xno" ]]; then
1019 continue
1020 fi
1021 dnl Real addressing will probably work.
1022 ADDRESSING_MODE="real"
1023 WANT_VOSF=yes dnl we can use VOSF and we need it actually
1024 DEFINES="$DEFINES -DREAL_ADDRESSING"
1025 if [[ "x$ac_cv_pagezero_hack" = "xyes" ]]; then
1026 BLESS=Darwin/lowmem
1027 LDFLAGS="$LDFLAGS -pagezero_size 0x2000"
1028 fi
1029 break
1030 ;;
1031 direct)
1032 dnl Requires VOSF screen updates
1033 if [[ "x$CAN_VOSF" = "xyes" ]]; then
1034 ADDRESSING_MODE="direct"
1035 WANT_VOSF=yes dnl we can use VOSF and we need it actually
1036 DEFINES="$DEFINES -DDIRECT_ADDRESSING"
1037 break
1038 fi
1039 ;;
1040 banks)
1041 dnl Default addressing mode
1042 ADDRESSING_MODE="memory banks"
1043 break
1044 ;;
1045 *)
1046 AC_MSG_ERROR([Internal configure.in script error for $am addressing mode])
1047 esac
1048 done
1049 AC_MSG_RESULT($ADDRESSING_MODE)
1050 if [[ "x$ADDRESSING_MODE" = "x" ]]; then
1051 AC_MSG_WARN([Sorry, no suitable addressing mode in $ADDRESSING_TEST_ORDER])
1052 ADDRESSING_MODE="memory banks"
1053 fi
1054 fi
1055
1056 dnl Banked Memory Addressing mode is not supported by the JIT compiler
1057 if [[ "x$WANT_JIT" = "xyes" -a "x$ADDRESSING_MODE" = "xmemory banks" ]]; then
1058 AC_MSG_ERROR([Sorry, the JIT Compiler requires Direct Addressing, at least])
1059 fi
1060
1061 dnl Enable VOSF screen updates with this feature is requested and feasible
1062 if [[ "x$WANT_VOSF" = "xyes" -a "x$CAN_VOSF" = "xyes" ]]; then
1063 AC_DEFINE(ENABLE_VOSF, 1, [Define if using video enabled on SEGV signals.])
1064 else
1065 WANT_VOSF=no
1066 fi
1067
1068 dnl Check for GAS.
1069 HAVE_GAS=no
1070 AC_MSG_CHECKING(for GAS .p2align feature)
1071 cat >conftest.S << EOF
1072 .text
1073 .p2align 5
1074 EOF
1075 if $CC conftest.S -c -o conftest.o >/dev/null 2>&1 ; then HAVE_GAS=yes; fi
1076 AC_MSG_RESULT($HAVE_GAS)
1077
1078 dnl Check for GCC 2.7 or higher.
1079 HAVE_GCC27=no
1080 AC_MSG_CHECKING(for GCC 2.7 or higher)
1081 AC_EGREP_CPP(xyes,
1082 [#if __GNUC__ - 1 > 1 || __GNUC_MINOR__ - 1 > 5
1083 xyes
1084 #endif
1085 ], [AC_MSG_RESULT(yes); HAVE_GCC27=yes], AC_MSG_RESULT(no))
1086
1087 dnl Check for GCC 3.0 or higher.
1088 HAVE_GCC30=no
1089 AC_MSG_CHECKING(for GCC 3.0 or higher)
1090 AC_EGREP_CPP(xyes,
1091 [#if __GNUC__ >= 3
1092 xyes
1093 #endif
1094 ], [AC_MSG_RESULT(yes); HAVE_GCC30=yes], AC_MSG_RESULT(no))
1095
1096 dnl Check for ICC.
1097 AC_MSG_CHECKING(for ICC)
1098 HAVE_ICC=no
1099 if $CXX -V -v 2>&1 | grep -q "Intel(R) C++ Compiler"; then
1100 HAVE_ICC=yes
1101 fi
1102 AC_MSG_RESULT($HAVE_ICC)
1103
1104 dnl Set "-fomit-frame-pointer" on i386 GCC 2.7 or higher.
1105 dnl Also set "-fno-exceptions" for C++ because exception handling requires
1106 dnl the frame pointer.
1107 if [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_I386" = "xyes" ]]; then
1108 CFLAGS="$CFLAGS -fomit-frame-pointer"
1109 CXXFLAGS="$CXXFLAGS -fomit-frame-pointer -fno-exceptions"
1110 fi
1111
1112 dnl (gb) Do not merge constants since it breaks fpu/fpu_x86.cpp.
1113 dnl As of 2001/08/02, this affects the following compilers:
1114 dnl Official: probably gcc-3.1 (mainline CVS)
1115 dnl Mandrake: gcc-2.96 >= 0.59mdk, gcc-3.0.1 >= 0.1mdk
1116 dnl Red Hat : gcc-2.96 >= 89, gcc-3.0 >= 1
1117 if [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_ICC" = "xno" ]]; then
1118 SAVED_CXXFLAGS="$CXXFLAGS"
1119 CXXFLAGS="$CXXFLAGS -fno-merge-constants"
1120 AC_CACHE_CHECK([whether GCC supports constants merging], ac_cv_gcc_constants_merging, [
1121 AC_LANG_SAVE
1122 AC_LANG_CPLUSPLUS
1123 AC_TRY_COMPILE([],[],[ac_cv_gcc_constants_merging=yes],[ac_cv_gcc_constants_merging=no])
1124 AC_LANG_RESTORE
1125 ])
1126 if [[ "x$ac_cv_gcc_constants_merging" != "xyes" ]]; then
1127 CXXFLAGS="$SAVED_CXXFLAGS"
1128 fi
1129 fi
1130
1131 dnl Store motion was introduced in 3.3-hammer branch and any gcc >= 3.4
1132 dnl However, there are some corner cases exposed on x86-64
1133 if [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_ICC" = "xno" ]]; then
1134 SAVED_CXXFLAGS="$CXXFLAGS"
1135 CXXFLAGS="$CXXFLAGS -fno-gcse-sm"
1136 AC_CACHE_CHECK([whether GCC supports store motion], ac_cv_gcc_store_motion, [
1137 AC_LANG_SAVE
1138 AC_LANG_CPLUSPLUS
1139 AC_TRY_COMPILE([],[],[ac_cv_gcc_store_motion=yes],[ac_cv_gcc_store_motion=no])
1140 AC_LANG_RESTORE
1141 ])
1142 if [[ "x$ac_cv_gcc_store_motion" != "xyes" ]]; then
1143 CXXFLAGS="$SAVED_CXXFLAGS"
1144 fi
1145 fi
1146
1147 dnl Add -fno-strict-aliasing for slirp sources
1148 if [[ "x$HAVE_GCC30" = "xyes" ]]; then
1149 SAVED_CFLAGS="$CFLAGS"
1150 CFLAGS="$CFLAGS -fno-strict-aliasing"
1151 AC_CACHE_CHECK([whether the compiler supports -fno-strict-aliasing],
1152 ac_cv_gcc_no_strict_aliasing, [
1153 AC_TRY_COMPILE([],[],
1154 [ac_cv_gcc_no_strict_aliasing=yes; AC_SUBST(SLIRP_CFLAGS, "$CFLAGS")],
1155 [ac_cv_gcc_no_strict_aliasing=no])
1156 ])
1157 CFLAGS="$SAVED_CFLAGS"
1158 fi
1159
1160 dnl Select appropriate CPU source and REGPARAM define.
1161 ASM_OPTIMIZATIONS=none
1162 CPUSRCS="cpuemu1.cpp cpuemu2.cpp cpuemu3.cpp cpuemu4.cpp cpuemu5.cpp cpuemu6.cpp cpuemu7.cpp cpuemu8.cpp"
1163
1164 dnl (gb) JITSRCS will be emptied later if the JIT is not available
1165 dnl Other platforms should define their own set of noflags file variants
1166 CAN_JIT=no
1167 JITSRCS="compemu1.cpp compemu2.cpp compemu3.cpp compemu4.cpp compemu5.cpp compemu6.cpp compemu7.cpp compemu8.cpp"
1168
1169 if [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_I386" = "xyes" ]]; then
1170 dnl i386 CPU
1171 DEFINES="$DEFINES -DUNALIGNED_PROFITABLE -DREGPARAM=\"__attribute__((regparm(3)))\""
1172 if [[ "x$HAVE_GAS" = "xyes" ]]; then
1173 ASM_OPTIMIZATIONS=i386
1174 DEFINES="$DEFINES -DX86_ASSEMBLY -DOPTIMIZED_FLAGS -DSAHF_SETO_PROFITABLE"
1175 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"
1176 CAN_JIT=yes
1177 fi
1178 elif [[ "x$HAVE_GCC30" = "xyes" -a "x$HAVE_X86_64" = "xyes" ]]; then
1179 dnl x86-64 CPU
1180 DEFINES="$DEFINES -DUNALIGNED_PROFITABLE"
1181 if [[ "x$HAVE_GAS" = "xyes" ]]; then
1182 ASM_OPTIMIZATIONS="x86-64"
1183 DEFINES="$DEFINES -DX86_64_ASSEMBLY -DOPTIMIZED_FLAGS"
1184 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"
1185 CAN_JIT=yes
1186 WANT_33BIT_ADDRESSING=yes
1187 fi
1188 elif [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_SPARC" = "xyes" -a "x$HAVE_GAS" = "xyes" ]]; then
1189 dnl SPARC CPU
1190 case "$target_os" in
1191 solaris*)
1192 AC_MSG_CHECKING(SPARC CPU architecture)
1193 SPARC_TYPE=`Solaris/which_sparc`
1194 AC_MSG_RESULT($SPARC_TYPE)
1195 case "$SPARC_TYPE" in
1196 SPARC_V8)
1197 ASM_OPTIMIZATIONS="SPARC V8 architecture"
1198 DEFINES="$DEFINES -DSPARC_V8_ASSEMBLY" dnl -DOPTIMIZED_FLAGS"
1199 CFLAGS="$CFLAGS -Wa,-Av8"
1200 CXXFLAGS="$CXXFLAGS -Wa,-Av8"
1201 ;;
1202 SPARC_V9)
1203 ASM_OPTIMIZATIONS="SPARC V9 architecture"
1204 DEFINES="$DEFINES -DSPARC_V9_ASSEMBLY" dnl -DOPTIMIZED_FLAGS"
1205 CFLAGS="$CFLAGS -Wa,-Av9"
1206 CXXFLAGS="$CXXFLAGS -Wa,-Av9"
1207 ;;
1208 esac
1209 ;;
1210 esac
1211 elif [[ "x$WANT_NATIVE_M68K" = "xyes" ]]; then
1212 dnl Native m68k, no emulation
1213 CPUINCLUDES="-I../native_cpu"
1214 CPUSRCS="asm_support.s"
1215 fi
1216
1217 dnl Enable JIT compiler, if possible.
1218 if [[ "x$WANT_JIT" = "xyes" -a "x$CAN_JIT" ]]; then
1219 JITSRCS="$JITSRCS ../uae_cpu/compiler/compemu_support.cpp ../uae_cpu/compiler/compemu_fpp.cpp compstbl.o cpustbl_nf.o"
1220 DEFINES="$DEFINES -DUSE_JIT -DUSE_JIT_FPU"
1221
1222 if [[ "x$WANT_JIT_DEBUG" = "xyes" ]]; then
1223 if [[ "x$WANT_MON" = "xyes" ]]; then
1224 DEFINES="$DEFINES -DJIT_DEBUG=1"
1225 else
1226 AC_MSG_WARN([cxmon not found, ignoring --enable-jit-debug])
1227 WANT_JIT_DEBUG=no
1228 fi
1229 fi
1230
1231 dnl IEEE core is the only FPU emulator to use with the JIT compiler
1232 case $FPE_CORE_TEST_ORDER in
1233 ieee*) ;;
1234 *) AC_MSG_WARN([Forcing use of the IEEE FPU core, as the JIT compiler supports only this one.]) ;;
1235 esac
1236 FPE_CORE_TEST_ORDER="ieee"
1237 else
1238 WANT_JIT=no
1239 WANT_JIT_DEBUG=no
1240 JITSRCS=""
1241 fi
1242
1243 dnl Use 33-bit memory addressing?
1244 if [[ "$ac_cv_have_33bit_addressing:$WANT_33BIT_ADDRESSING" = "yes:yes" ]]; then
1245 use_33bit_addressing=yes
1246 fi
1247 AC_TRANSLATE_DEFINE(USE_33BIT_ADDRESSING, "$use_33bit_addressing",
1248 [Define to use 33-bit memory addressing on 64-bit JIT capable systems.])
1249
1250 dnl Utility macro used by next two tests.
1251 dnl AC_EXAMINE_OBJECT(C source code,
1252 dnl commands examining object file,
1253 dnl [commands to run if compile failed]):
1254 dnl
1255 dnl Compile the source code to an object file; then convert it into a
1256 dnl printable representation. All unprintable characters and
1257 dnl asterisks (*) are replaced by dots (.). All white space is
1258 dnl deleted. Newlines (ASCII 0x10) in the input are preserved in the
1259 dnl output, but runs of newlines are compressed to a single newline.
1260 dnl Finally, line breaks are forcibly inserted so that no line is
1261 dnl longer than 80 columns and the file ends with a newline. The
1262 dnl result of all this processing is in the file conftest.dmp, which
1263 dnl may be examined by the commands in the second argument.
1264 dnl
1265 AC_DEFUN([gcc_AC_EXAMINE_OBJECT],
1266 [AC_LANG_SAVE
1267 AC_LANG_C
1268 dnl Next bit cribbed from AC_TRY_COMPILE.
1269 cat > conftest.$ac_ext <<EOF
1270 [#line __oline__ "configure"
1271 #include "confdefs.h"
1272 $1
1273 ]EOF
1274 if AC_TRY_EVAL(ac_compile); then
1275 od -c conftest.o |
1276 sed ['s/^[0-7]*[ ]*/ /
1277 s/\*/./g
1278 s/ \\n/*/g
1279 s/ [0-9][0-9][0-9]/./g
1280 s/ \\[^ ]/./g'] |
1281 tr -d '
1282 ' | tr -s '*' '
1283 ' | fold | sed '$a\
1284 ' > conftest.dmp
1285 $2
1286 ifelse($3, , , else
1287 $3
1288 )dnl
1289 fi
1290 rm -rf conftest*
1291 AC_LANG_RESTORE])
1292
1293 dnl Floating point format probe.
1294 dnl The basic concept is the same as the above: grep the object
1295 dnl file for an interesting string. We have to watch out for
1296 dnl rounding changing the values in the object, however; this is
1297 dnl handled by ignoring the least significant byte of the float.
1298 dnl
1299 dnl Does not know about VAX G-float or C4x idiosyncratic format.
1300 dnl It does know about PDP-10 idiosyncratic format, but this is
1301 dnl not presently supported by GCC. S/390 "binary floating point"
1302 dnl is in fact IEEE (but maybe we should have that in EBCDIC as well
1303 dnl as ASCII?)
1304 dnl
1305 AC_DEFUN([gcc_AC_C_FLOAT_FORMAT],
1306 [AC_CACHE_CHECK(floating point format, ac_cv_c_float_format,
1307 [gcc_AC_EXAMINE_OBJECT(
1308 [/* This will not work unless sizeof(double) == 8. */
1309 extern char sizeof_double_must_be_8 [sizeof(double) == 8 ? 1 : -1];
1310
1311 /* This structure must have no internal padding. */
1312 struct possibility {
1313 char prefix[8];
1314 double candidate;
1315 char postfix[8];
1316 };
1317
1318 #define C(cand) { "\nformat:", cand, ":tamrof\n" }
1319 struct possibility table [] =
1320 {
1321 C( 3.25724264705901305206e+01), /* @@IEEEFP - IEEE 754 */
1322 C( 3.53802595280598432000e+18), /* D__float - VAX */
1323 C( 5.32201830133125317057e-19), /* D.PDP-10 - PDP-10 - the dot is 0x13a */
1324 C( 1.77977764695171661377e+10), /* IBMHEXFP - s/390 format, ascii */
1325 C(-5.22995989424860458374e+10) /* IBMHEXFP - s/390 format, EBCDIC */
1326 };],
1327 [if grep 'format:.@IEEEF.:tamrof' conftest.dmp >/dev/null 2>&1; then
1328 ac_cv_c_float_format='IEEE (big-endian)'
1329 elif grep 'format:.I@@PFE.:tamrof' conftest.dmp >/dev/null 2>&1; then
1330 ac_cv_c_float_format='IEEE (big-endian)'
1331 elif grep 'format:.FEEEI@.:tamrof' conftest.dmp >/dev/null 2>&1; then
1332 ac_cv_c_float_format='IEEE (little-endian)'
1333 elif grep 'format:.EFP@@I.:tamrof' conftest.dmp >/dev/null 2>&1; then
1334 ac_cv_c_float_format='IEEE (little-endian)'
1335 elif grep 'format:.__floa.:tamrof' conftest.dmp >/dev/null 2>&1; then
1336 ac_cv_c_float_format='VAX D-float'
1337 elif grep 'format:..PDP-1.:tamrof' conftest.dmp >/dev/null 2>&1; then
1338 ac_cv_c_float_format='PDP-10'
1339 elif grep 'format:.BMHEXF.:tamrof' conftest.dmp >/dev/null 2>&1; then
1340 ac_cv_c_float_format='IBM 370 hex'
1341 else
1342 AC_MSG_ERROR(Unknown floating point format)
1343 fi],
1344 [AC_MSG_ERROR(compile failed)])
1345 ])
1346 # IEEE is the default format. If the float endianness isn't the same
1347 # as the integer endianness, we have to set FLOAT_WORDS_BIG_ENDIAN
1348 # (which is a tristate: yes, no, default). This is only an issue with
1349 # IEEE; the other formats are only supported by a few machines each,
1350 # all with the same endianness.
1351 format=IEEE_FLOAT_FORMAT
1352 fbigend=
1353 case $ac_cv_c_float_format in
1354 'IEEE (big-endian)' )
1355 if test $ac_cv_c_bigendian = no; then
1356 fbigend=1
1357 fi
1358 ;;
1359 'IEEE (little-endian)' )
1360 if test $ac_cv_c_bigendian = yes; then
1361 fbigend=0
1362 fi
1363 ;;
1364 'VAX D-float' )
1365 format=VAX_FLOAT_FORMAT
1366 ;;
1367 'PDP-10' )
1368 format=PDP10_FLOAT_FORMAT
1369 ;;
1370 'IBM 370 hex' )
1371 format=IBM_FLOAT_FORMAT
1372 ;;
1373 esac
1374 AC_DEFINE_UNQUOTED(HOST_FLOAT_FORMAT, $format,
1375 [Define to the floating point format of the host machine.])
1376 if test -n "$fbigend"; then
1377 AC_DEFINE_UNQUOTED(HOST_FLOAT_WORDS_BIG_ENDIAN, $fbigend,
1378 [Define to 1 if the host machine stores floating point numbers in
1379 memory with the word containing the sign bit at the lowest address,
1380 or to 0 if it does it the other way around.
1381
1382 This macro should not be defined if the ordering is the same as for
1383 multi-word integers.])
1384 fi
1385 ])
1386
1387 dnl Select appropriate FPU source.
1388 gcc_AC_C_FLOAT_FORMAT
1389 AC_CHECK_HEADERS(ieee754.h ieeefp.h floatingpoint.h nan.h)
1390
1391 for fpe in $FPE_CORE_TEST_ORDER; do
1392 case $fpe in
1393 ieee)
1394 case $ac_cv_c_float_format in
1395 IEEE*)
1396 FPE_CORE="IEEE fpu core"
1397 DEFINES="$DEFINES -DFPU_IEEE"
1398 FPUSRCS="../uae_cpu/fpu/fpu_ieee.cpp"
1399 dnl Math functions not mandated by C99 standard
1400 AC_CHECK_FUNCS(isnanl isinfl)
1401 dnl Math functions required by C99 standard, but probably not
1402 dnl implemented everywhere. In that case, we fall back to the
1403 dnl regular variant for doubles.
1404 AC_CHECK_FUNCS(logl log10l expl powl fabsl sqrtl)
1405 AC_CHECK_FUNCS(sinl cosl tanl sinhl coshl tanhl)
1406 AC_CHECK_FUNCS(asinl acosl atanl asinhl acoshl atanhl)
1407 AC_CHECK_FUNCS(floorl ceill)
1408 break
1409 ;;
1410 esac
1411 ;;
1412 x86)
1413 if [[ ":$HAVE_GCC27:$HAVE_I386:$HAVE_GAS:" = ":yes:yes:yes:" ]]; then
1414 FPE_CORE="i387 fpu core"
1415 DEFINES="$DEFINES -DFPU_X86"
1416 FPUSRCS="../uae_cpu/fpu/fpu_x86.cpp"
1417 break
1418 fi
1419 ;;
1420 uae)
1421 FPE_CORE="uae fpu core"
1422 DEFINES="$DEFINES -DFPU_UAE"
1423 FPUSRCS="../uae_cpu/fpu/fpu_uae.cpp"
1424 break
1425 ;;
1426 *)
1427 AC_MSG_ERROR([Internal configure.in script error for $fpe fpu core])
1428 ;;
1429 esac
1430 done
1431 if [[ "x$FPE_CORE" = "x" ]]; then
1432 AC_MSG_ERROR([Sorry, no suitable FPU core found in $FPE_CORE_TEST_ORDER])
1433 fi
1434
1435 dnl Check for certain math functions
1436 AC_CHECK_FUNCS(atanh)
1437 AC_CHECK_FUNCS(isnan isinf finite isnormal signbit)
1438
1439 dnl UAE CPU sources for all non-m68k-native architectures.
1440 if [[ "x$WANT_NATIVE_M68K" = "xno" ]]; then
1441 CPUINCLUDES="-I../uae_cpu"
1442 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"
1443 fi
1444
1445 dnl Remove the "-g" option if set for GCC.
1446 if [[ "x$HAVE_GCC27" = "xyes" ]]; then
1447 CFLAGS=`echo $CFLAGS | sed -e 's/-g\b//g'`
1448 CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-g\b//g'`
1449 fi
1450
1451 dnl Or if we have -IPA (MIPSPro compilers)
1452 if [[ "x$HAVE_IPA" = "xyes" ]]; then
1453 CFLAGS="`echo $CFLAGS | sed -e 's/-g//g'` -O3 -OPT:Olimit=0 -IPA"
1454 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-g//g'` -O3 -OPT:Olimit=0 -IPA"
1455 CXXFLAGS="-LANG:std $CXXFLAGS"
1456 LDFLAGS="$LDFLAGS -O3 -OPT:Olimit=0 -IPA"
1457 fi
1458
1459 dnl Generate Makefile.
1460 AC_SUBST(DEFINES)
1461 AC_SUBST(SYSSRCS)
1462 AC_SUBST(CPUINCLUDES)
1463 AC_SUBST(CPUSRCS)
1464 AC_SUBST(BLESS)
1465 AC_SUBST(KEYCODES)
1466 AC_CONFIG_FILES([Makefile])
1467 AC_OUTPUT
1468
1469 dnl Print summary.
1470 echo
1471 echo Basilisk II configuration summary:
1472 echo
1473 echo SDL support ............................ : $SDL_SUPPORT
1474 echo XFree86 DGA support .................... : $WANT_XF86_DGA
1475 echo XFree86 VidMode support ................ : $WANT_XF86_VIDMODE
1476 echo fbdev DGA support ...................... : $WANT_FBDEV_DGA
1477 echo Enable video on SEGV signals ........... : $WANT_VOSF
1478 echo ESD sound support ...................... : $WANT_ESD
1479 echo GTK user interface ..................... : $WANT_GTK
1480 echo mon debugger support ................... : $WANT_MON
1481 echo Running m68k code natively ............. : $WANT_NATIVE_M68K
1482 echo Use JIT compiler ....................... : $WANT_JIT
1483 echo JIT debug mode ......................... : $WANT_JIT_DEBUG
1484 echo Floating-Point emulation core .......... : $FPE_CORE
1485 echo Assembly optimizations ................. : $ASM_OPTIMIZATIONS
1486 echo Addressing mode ........................ : $ADDRESSING_MODE
1487 echo Bad memory access recovery type ........ : $sigsegv_recovery
1488 echo
1489 echo "Configuration done. Now type \"make\" (or \"gmake\")."