ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/Unix/configure.in
Revision: 1.61
Committed: 2002-07-31T16:46:14Z (22 years, 3 months ago) by cebix
Branch: MAIN
Changes since 1.60: +44 -0 lines
Log Message:
- it is now possible to make the serial drivers pipe their input/output
  to programs by using a '|' followed by a command line as the modem or
  printer port setting (instead of a device name like '/dev/ttyS0')
  [Brian Johnson]
- the option "--config FILE" tells B2 to use a different config file

File Contents

# User Rev Content
1 cebix 1.1 dnl Process this file with autoconf to produce a configure script.
2 cebix 1.50 dnl Written in 2002 by Christian Bauer et al.
3 cebix 1.1
4     AC_INIT(main_unix.cpp)
5     AC_PREREQ(2.12)
6     AC_CONFIG_HEADER(config.h)
7    
8     dnl Options.
9 cebix 1.17 AC_ARG_ENABLE(xf86-dga, [ --enable-xf86-dga use the XFree86 DGA extension [default=yes]], [WANT_XF86_DGA=$enableval], [WANT_XF86_DGA=yes])
10     AC_ARG_ENABLE(xf86-vidmode, [ --enable-xf86-vidmode use the XFree86 VidMode extension [default=yes]], [WANT_XF86_VIDMODE=$enableval], [WANT_XF86_VIDMODE=yes])
11     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])
12 cebix 1.42 AC_ARG_ENABLE(vosf, [ --enable-vosf enable video on SEGV signals [default=yes]], [WANT_VOSF=$enableval], [WANT_VOSF=yes])
13 gbeauche 1.32
14 gbeauche 1.35 dnl FPU emulation core.
15     AC_ARG_ENABLE(fpe,
16     [ --enable-fpe=which specify which fpu emulator to use [default=opt]],
17     [ case "$enableval" in
18     default) FPE_CORE="default";; dnl fpu_x86.cpp if i386 architecture, fpu_uae.cpp otherwise
19     uae) FPE_CORE="uae";;
20     *) AC_MSG_ERROR([--enable-fpe takes only one of the following values: default, uae]);;
21     esac
22     ],
23     [ FPE_CORE="default"
24     ])
25    
26 gbeauche 1.32 dnl Addressing modes.
27 gbeauche 1.23 AC_ARG_ENABLE(addressing,
28 gbeauche 1.32 [ --enable-addressing=AM specify the addressing mode to use [default=fastest]],
29 gbeauche 1.23 [ case "$enableval" in
30 cebix 1.24 real) ADDRESSING_TEST_ORDER="real";;
31     direct) ADDRESSING_TEST_ORDER="direct";;
32     banks) ADDRESSING_TEST_ORDER="banks";;
33 gbeauche 1.32 fastest)ADDRESSING_TEST_ORDER="direct banks";;
34     *) AC_MSG_ERROR([--enable-addressing takes only one of the following values: fastest, real, direct, banks]);;
35 gbeauche 1.23 esac
36     ],
37     [ ADDRESSING_TEST_ORDER="direct banks"
38     ])
39 gbeauche 1.32
40     dnl External packages.
41 cebix 1.17 AC_ARG_WITH(esd, [ --with-esd support ESD for sound under Linux/FreeBSD [default=yes]], [WANT_ESD=$withval], [WANT_ESD=yes])
42     AC_ARG_WITH(gtk, [ --with-gtk use GTK user interface [default=yes]], [WANT_GTK=$withval], [WANT_GTK=yes])
43     AC_ARG_WITH(mon, [ --with-mon use mon as debugger [default=yes]], [WANT_MON=$withval], [WANT_MON=yes])
44 cebix 1.1
45 gbeauche 1.23 dnl Canonical system information.
46     AC_CANONICAL_HOST
47     AC_CANONICAL_TARGET
48    
49     dnl Target OS type (target is host if not cross-compiling).
50     case "$target_os" in
51     linux*) OS_TYPE=linux;;
52     netbsd*) OS_TYPE=netbsd;;
53     freebsd*) OS_TYPE=freebsd;;
54     solaris*) OS_TYPE=solaris;;
55 gbeauche 1.44 darwin*) OS_TYPE=darwin;;
56     *) OS_TYPE=`echo $target_os | sed -e 's/-/_/g' | sed -e 's/\./_/g'`;;
57 gbeauche 1.23 esac
58     DEFINES="$DEFINES -DOS_$OS_TYPE"
59    
60     dnl Target CPU type.
61     HAVE_I386=no
62     HAVE_M68K=no
63     HAVE_SPARC=no
64 cebix 1.33 HAVE_POWERPC=no
65 gbeauche 1.23 case "$target_cpu" in
66     i386* | i486* | i586* | i686* | i786* ) CPU_TYPE=i386 HAVE_I386=yes;;
67     m68k* ) CPU_TYPE=m68k HAVE_M68K=yes;;
68     sparc* ) CPU_TYPE=sparc HAVE_SPARC=yes;;
69 cebix 1.33 powerpc* ) CPU_TYPE=powerpc HAVE_POWERPC=yes;;
70 gbeauche 1.44 *) CPU_TYPE=`echo $target_cpu | sed -e 's/-/_/g'`;;
71 gbeauche 1.23 esac
72     DEFINES="$DEFINES -DCPU_$CPU_TYPE"
73    
74 cebix 1.1 dnl Checks for programs.
75     AC_PROG_CC
76 gbeauche 1.23 AC_PROG_CC_C_O
77 cebix 1.4 AC_PROG_CPP
78 cebix 1.1 AC_PROG_CXX
79     AC_PROG_MAKE_SET
80     AC_PROG_INSTALL
81    
82 cebix 1.11 dnl We use mon if possible.
83     MONSRCS=
84 cebix 1.18 if [[ "x$WANT_MON" = "xyes" ]]; then
85     AC_MSG_CHECKING(for mon)
86 cebix 1.24 mon_srcdir=../../../mon/src
87     if grep mon_init $mon_srcdir/mon.h >/dev/null 2>/dev/null; then
88 cebix 1.18 AC_MSG_RESULT(yes)
89 cebix 1.19 AC_DEFINE(ENABLE_MON)
90 cebix 1.51 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"
91 cebix 1.24 CXXFLAGS="$CXXFLAGS -I$mon_srcdir -I$mon_srcdir/disass"
92 gbeauche 1.58 AC_CHECK_LIB(ncurses, tgetent, ,
93     AC_CHECK_LIB(termcap, tgetent, ,
94     AC_CHECK_LIB(termlib, tgetent, ,
95     AC_CHECK_LIB(terminfo, tgetent, ,
96     AC_CHECK_LIB(Hcurses, tgetent, ,
97     AC_CHECK_LIB(curses, tgetent))))))
98 cebix 1.18 AC_CHECK_LIB(readline, readline)
99 cebix 1.19 AC_CHECK_HEADERS(readline.h history.h readline/readline.h readline/history.h)
100 cebix 1.18 else
101     AC_MSG_RESULT(no)
102     AC_MSG_WARN([Could not find mon, ignoring --with-mon.])
103     WANT_MON=no
104     fi
105 cebix 1.11 fi
106    
107 cebix 1.1 dnl Checks for libraries.
108 cebix 1.10 AC_CHECK_LIB(posix4, sem_init)
109 cebix 1.45 AC_CHECK_LIB(rt, timer_create)
110 cebix 1.10
111     dnl We need X11.
112 cebix 1.1 AC_PATH_XTRA
113     if [[ "x$no_x" = "xyes" ]]; then
114     AC_MSG_ERROR([You need X11 to run Basilisk II.])
115     fi
116     CFLAGS="$CFLAGS $X_CFLAGS"
117     CXXFLAGS="$CXXFLAGS $X_CFLAGS"
118     LIBS="$LIBS $X_PRE_LIBS $X_LIBS -lX11 -lXext $X_EXTRA_LIBS"
119    
120 cebix 1.19 dnl We want pthreads. Try libpthread first, then libc_r (FreeBSD), then PTL.
121     HAVE_PTHREADS=yes
122 cebix 1.10 AC_CHECK_LIB(pthread, pthread_create, , [
123     AC_CHECK_LIB(c_r, pthread_create, , [
124     AC_CHECK_LIB(PTL, pthread_create, , [
125 cebix 1.19 HAVE_PTHREADS=no
126 cebix 1.10 ])
127     ])
128     ])
129 cebix 1.19 if [[ "x$HAVE_PTHREADS" = "xyes" ]]; then
130     AC_DEFINE(HAVE_PTHREADS)
131     fi
132     AC_CHECK_FUNCS(pthread_cancel)
133 cebix 1.53 AC_CHECK_FUNCS(pthread_mutexattr_setprotocol)
134     AC_CHECK_FUNCS(pthread_mutexattr_settype)
135 cebix 1.10
136     dnl If POSIX.4 semaphores are not available, we emulate them with pthread mutexes.
137 cebix 1.19 SEMSRC=
138 cebix 1.10 AC_CHECK_FUNCS(sem_init, , [
139 cebix 1.26 if test "x$HAVE_PTHREADS" = "xyes"; then
140 cebix 1.19 SEMSRC=posix_sem.cpp
141     fi
142 cebix 1.10 ])
143 cebix 1.1
144 cebix 1.10 dnl We use DGA (XFree86 or fbdev) if possible.
145 cebix 1.8 if [[ "x$WANT_XF86_DGA" = "xyes" ]]; then
146 cebix 1.10 AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension, [
147 cebix 1.19 AC_DEFINE(ENABLE_XF86_DGA)
148 cebix 1.1 LIBS="$LIBS -lXxf86dga"
149 cebix 1.8 if [[ "x$WANT_FBDEV_DGA" = "xyes" ]]; then
150     AC_MSG_WARN([Cannot have both --enable-xf86-dga and --enable-fbdev-dga, ignoring --enable-fbdev-dga.])
151     WANT_FBDEV_DGA=no
152     fi
153 cebix 1.10 ], [
154     AC_MSG_WARN([Could not find XFree86 DGA extension, ignoring --enable-xf86-dga.])
155 cebix 1.13 WANT_XF86_DGA=no
156 cebix 1.10 ])
157 cebix 1.8 fi
158     if [[ "x$WANT_FBDEV_DGA" = "xyes" ]]; then
159 cebix 1.19 AC_DEFINE(ENABLE_FBDEV_DGA)
160 cebix 1.1 fi
161    
162 cebix 1.17 dnl We use XFree86 VidMode if possible.
163     if [[ "x$WANT_XF86_VIDMODE" = "xyes" ]]; then
164     AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension, [
165 cebix 1.19 AC_DEFINE(ENABLE_XF86_VIDMODE)
166 cebix 1.17 LIBS="$LIBS -lXxf86vm"
167     ], [
168     AC_MSG_WARN([Could not find XFree86 VidMode extension, ignoring --enable-xf86-vidmode.])
169     WANT_XF86_VIDMODE=no
170     ])
171     fi
172    
173 cebix 1.1 dnl We use GTK+ if possible.
174 cebix 1.10 UISRCS=../dummy/prefs_editor_dummy.cpp
175 cebix 1.14 if [[ "x$WANT_GTK" = "xyes" ]]; then
176 cebix 1.10 AM_PATH_GTK(1.2.0, [
177 cebix 1.19 AC_DEFINE(ENABLE_GTK)
178 cebix 1.10 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
179     LIBS="$LIBS $GTK_LIBS"
180     UISRCS=prefs_editor_gtk.cpp
181 cebix 1.52 B2_PATH_GNOMEUI([
182     AC_DEFINE(HAVE_GNOMEUI)
183     CXXFLAGS="$CXXFLAGS $GNOMEUI_CFLAGS"
184     LIBS="$LIBS $GNOMEUI_LIBS"
185     ], [])
186 cebix 1.10 ], [
187     AC_MSG_WARN([Could not find GTK+, disabling user interface.])
188 cebix 1.14 WANT_GTK=no
189 cebix 1.10 ])
190 cebix 1.1 fi
191    
192 cebix 1.10 dnl We use ESD if possible.
193     if [[ "x$WANT_ESD" = "xyes" ]]; then
194     AM_PATH_ESD(0.2.8, [
195 cebix 1.19 AC_DEFINE(ENABLE_ESD)
196 cebix 1.10 CFLAGS="$CFLAGS $ESD_CFLAGS"
197     CXXFLAGS="$CXXFLAGS $ESD_CFLAGS"
198     LIBS="$LIBS $ESD_LIBS"
199     ], [
200     AC_MSG_WARN([Could not find ESD, disabling ESD support.])
201     WANT_ESD=no
202     ])
203 gbeauche 1.56 fi
204    
205     dnl We use 64-bit file size support if possible.
206     dnl FIXME: Use AC_SYS_LARGEFILE from autoconf 2.5+
207     if [[ "x$OS_TYPE" = "xlinux" ]]; then
208     AC_DEFINE(_USE_LARGEFILE_SOURCE, 1, [Get more functions for correct standard I/O])
209     AC_DEFINE(_FILE_OFFSET_BITS, 64, [Get 64-bit file size support])
210 cebix 1.1 fi
211    
212     dnl Checks for header files.
213     AC_HEADER_STDC
214 gbeauche 1.44 AC_CHECK_HEADERS(unistd.h fcntl.h sys/time.h sys/mman.h)
215 cebix 1.1
216     dnl Checks for typedefs, structures, and compiler characteristics.
217     AC_C_BIGENDIAN
218     AC_C_CONST
219     AC_C_INLINE
220     AC_CHECK_SIZEOF(short, 2)
221     AC_CHECK_SIZEOF(int, 4)
222     AC_CHECK_SIZEOF(long, 4)
223     AC_CHECK_SIZEOF(long long, 8)
224 gbeauche 1.23 AC_CHECK_SIZEOF(void *, 4)
225 cebix 1.1 AC_TYPE_OFF_T
226     AC_CHECK_TYPE(loff_t, off_t)
227 gbeauche 1.55 AC_CHECK_TYPE(caddr_t, [char *])
228 cebix 1.1 AC_TYPE_SIZE_T
229 gbeauche 1.23 AC_TYPE_SIGNAL
230 cebix 1.1 AC_HEADER_TIME
231     AC_STRUCT_TM
232 gbeauche 1.54
233     dnl Check whether sys/socket.h defines type socklen_t.
234     dnl (extracted from ac-archive/Miscellaneous)
235     AC_CACHE_CHECK("for socklen_t",
236     ac_cv_type_socklen_t, [
237     AC_TRY_COMPILE([
238     #include <sys/types.h>
239     #include <sys/socket.h>
240     ], [socklen_t len = 42; return 0;],
241     ac_cv_type_socklen_t=yes, ac_cv_type_socklen_t=no,
242     dnl When cross-compiling, do not assume anything.
243     ac_cv_type_socklen_t="guessing no"
244     )
245     ])
246     if [[ "x$ac_cv_type_socklen_t" != "xyes" ]]; then
247     AC_DEFINE(socklen_t, int)
248     fi
249 cebix 1.1
250     dnl Checks for library functions.
251     AC_CHECK_FUNCS(strdup cfmakeraw)
252 cebix 1.21 AC_CHECK_FUNCS(clock_gettime timer_create)
253 gbeauche 1.40 AC_CHECK_FUNCS(sigaction signal)
254 gbeauche 1.44 AC_CHECK_FUNCS(mmap mprotect munmap)
255     AC_CHECK_FUNCS(vm_allocate vm_deallocate vm_protect)
256    
257     dnl Darwin seems to define mach_task_self() instead of task_self().
258     AC_CHECK_FUNCS(mach_task_self task_self)
259 cebix 1.1
260 cebix 1.61 dnl Check for headers and functions related to pty support (sshpty.c)
261     dnl From openssh-3.2.2p1 configure.ac
262    
263     AC_CHECK_HEADERS(strings.h login.h sys/bsdtty.h sys/stat.h util.h pty.h)
264     AC_CHECK_FUNCS(_getpty vhangup strlcpy)
265    
266     case "$host" in
267     *-*-hpux10.26)
268     disable_ptmx_check=yes
269     ;;
270     *-*-linux*)
271     no_dev_ptmx=1
272     ;;
273     mips-sony-bsd|mips-sony-newsos4)
274     AC_DEFINE(HAVE_NEWS4)
275     ;;
276     *-*-sco3.2v4*)
277     no_dev_ptmx=1
278     ;;
279     *-*-sco3.2v5*)
280     no_dev_ptmx=1
281     ;;
282     esac
283    
284     if test -z "$no_dev_ptmx" ; then
285     if test "x$disable_ptmx_check" != "xyes" ; then
286     AC_CHECK_FILE("/dev/ptmx",
287     [
288     AC_DEFINE_UNQUOTED(HAVE_DEV_PTMX)
289     have_dev_ptmx=1
290     ]
291     )
292     fi
293     fi
294     AC_CHECK_FILE("/dev/ptc",
295     [
296     AC_DEFINE_UNQUOTED(HAVE_DEV_PTS_AND_PTC)
297     have_dev_ptc=1
298     ]
299     )
300    
301     dnl (end of code from openssh-3.2.2p1 configure.ac)
302    
303    
304 cebix 1.1 dnl Select system-dependant source files.
305 cebix 1.19 SERIALSRC=serial_unix.cpp
306     ETHERSRC=../dummy/ether_dummy.cpp
307     SCSISRC=../dummy/scsi_dummy.cpp
308     AUDIOSRC=../dummy/audio_dummy.cpp
309     EXTRASYSSRCS=
310 cebix 1.27 CAN_NATIVE_M68K=no
311 gbeauche 1.23 case "$target_os" in
312     linux*)
313 cebix 1.38 ETHERSRC=ether_unix.cpp
314     AUDIOSRC=audio_oss_esd.cpp
315 gbeauche 1.23 SCSISRC=Linux/scsi_linux.cpp
316     ;;
317 cebix 1.38 freebsd*)
318     ETHERSRC=ether_unix.cpp
319 gbeauche 1.23 AUDIOSRC=audio_oss_esd.cpp
320     DEFINES="$DEFINES -DBSD_COMP"
321 cebix 1.38 CXXFLAGS="$CXXFLAGS -fpermissive"
322 gbeauche 1.23 dnl Check for the CAM library
323     AC_CHECK_LIB(cam, cam_open_btl, HAVE_LIBCAM=yes, HAVE_LIBCAM=no)
324     if [[ "x$HAVE_LIBCAM" = "xno" ]]; then
325     AC_MSG_WARN([Cannot find libcam for SCSI management, disabling SCSI support.])
326     else
327     dnl Check for the sys kernel includes
328 cebix 1.38 AC_CHECK_HEADER(camlib.h)
329     if [[ "x$ac_cv_header_camlib_h" = "xno" ]]; then
330 gbeauche 1.23 dnl In this case I should fix this thing including a "patch"
331     dnl to access directly to the functions in the kernel :) --Orlando
332 cebix 1.38 AC_MSG_WARN([Cannot find includes for CAM library, disabling SCSI support.])
333 gbeauche 1.23 else
334     SCSISRC=FreeBSD/scsi_freebsd.cpp
335     LIBS="$LIBS -lcam"
336     DEFINES="$DEFINES -DCAM"
337     fi
338     fi
339     ;;
340     netbsd*)
341 cebix 1.27 CAN_NATIVE_M68K=yes
342 gbeauche 1.23 ;;
343     solaris*)
344     AUDIOSRC=Solaris/audio_solaris.cpp
345     DEFINES="$DEFINES -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS"
346     ;;
347     irix*)
348 cebix 1.48 ETHERSRC=ether_unix.cpp
349 cebix 1.30 AUDIOSRC=Irix/audio_irix.cpp
350 gbeauche 1.23 EXTRASYSSRCS=Irix/unaligned.c
351 cebix 1.28 dnl IRIX headers work fine, but somehow don't define or use "STDC_HEADERS"
352     DEFINES="$DEFINES -DCRTSCTS=CNEW_RTSCTS -DB230400=B115200 -DSTDC_HEADERS"
353 cebix 1.30 LIBS="$LIBS -laudio"
354 cebix 1.48 WANT_ESD=no
355 cebix 1.37
356     dnl Check if our compiler supports -Ofast (MIPSPro)
357     HAVE_OFAST=no
358     ocflags="$CFLAGS"
359     CFLAGS=`echo $CFLAGS | sed -e 's/ -g / -Ofast /;s/^-g /-Ofast /;s/-g$/ -Ofast/;s/^-g$/-Ofast/'`
360     AC_MSG_CHECKING(if "-Ofast" works)
361     dnl Do a test compile of an empty function
362     AC_TRY_COMPILE(,, [AC_MSG_RESULT(yes); HAVE_OFAST=yes], AC_MSG_RESULT(no))
363     CFLAGS="$ocflags"
364    
365 gbeauche 1.23 ;;
366     esac
367    
368 cebix 1.27 dnl Use 68k CPU natively?
369     WANT_NATIVE_M68K=no
370     if [[ "x$HAVE_M68K" = "xyes" -a "x$CAN_NATIVE_M68K" = "xyes" ]]; then
371     AC_DEFINE(ENABLE_NATIVE_M68K)
372     WANT_NATIVE_M68K=yes
373     fi
374    
375 gbeauche 1.23 if [[ "x$HAVE_PTHREADS" = "xno" ]]; then
376     dnl Serial, ethernet and audio support needs pthreads
377     AC_MSG_WARN([You don't have pthreads, disabling serial, ethernet and audio support.])
378     SERIALSRC=../dummy/serial_dummy.cpp
379     ETHERSRC=../dummy/ether_dummy.cpp
380     AUDIOSRC=../dummy/audio_dummy.cpp
381     fi
382     SYSSRCS="$SERIALSRC $ETHERSRC $SCSISRC $AUDIOSRC $SEMSRC $UISRCS $MONSRCS $EXTRASYSSRCS"
383    
384     dnl Define a macro that translates a yesno-variable into a C macro definition
385     dnl to be put into the config.h file
386     dnl $1 -- the macro to define
387     dnl $2 -- the value to translate
388     AC_DEFUN(AC_TRANSLATE_DEFINE, [
389 gbeauche 1.44 if [[ "x$2" = "xyes" -o "x$2" = "xguessing yes" ]]; then
390 gbeauche 1.23 AC_DEFINE($1)
391     fi
392     ])
393    
394 gbeauche 1.44 dnl Various checks if the system supports vm_allocate() and the like functions.
395     have_mach_vm=no
396     if [[ "x$ac_cv_func_vm_allocate" = "xyes" -a "x$ac_cv_func_vm_deallocate" = "xyes" -a \
397     "x$ac_cv_func_vm_protect" = "xyes" ]]; then
398     have_mach_vm=yes
399     fi
400     AC_TRANSLATE_DEFINE(HAVE_MACH_VM, "$have_mach_vm")
401    
402     dnl Check that vm_allocate(), vm_protect() work
403     if [[ "x$have_mach_vm" = "xyes" ]]; then
404    
405     AC_CACHE_CHECK("whether vm_protect works",
406     ac_cv_vm_protect_works, [
407     AC_LANG_SAVE
408     AC_LANG_CPLUSPLUS
409     ac_cv_vm_protect_works=yes
410     dnl First the tests that should segfault
411     for test_def in NONE_READ NONE_WRITE READ_WRITE; do
412     AC_TRY_RUN([
413     #define CONFIGURE_TEST_VM_MAP
414     #define TEST_VM_PROT_$test_def
415     #include "vm_alloc.cpp"
416     ], ac_cv_vm_protect_works=no, rm -f core,
417     dnl When cross-compiling, do not assume anything
418     ac_cv_vm_protect_works="guessing no"
419     )
420     done
421     AC_TRY_RUN([
422     #define CONFIGURE_TEST_VM_MAP
423     #define TEST_VM_PROT_RDWR_WRITE
424     #include "vm_alloc.cpp"
425     ], , ac_cv_vm_protect_works=no,
426     dnl When cross-compiling, do not assume anything
427     ac_cv_vm_protect_works="guessing no"
428     )
429     AC_LANG_RESTORE
430     ]
431     )
432    
433     dnl Remove support for vm_allocate() if vm_protect() does not work
434     if [[ "x$have_mach_vm" = "xyes" ]]; then
435     case $ac_cv_vm_protect_works in
436     *yes) have_mach_vm=yes;;
437     *no) have_mach_vm=no;;
438     esac
439     fi
440     AC_TRANSLATE_DEFINE(HAVE_MACH_VM, "$have_mach_vm")
441    
442     fi dnl HAVE_MACH_VM
443    
444     dnl Various checks if the system supports mmap() and the like functions.
445     dnl ... and Mach memory allocators are not supported
446     have_mmap_vm=no
447     if [[ "x$ac_cv_func_mmap" = "xyes" -a "x$ac_cv_func_munmap" = "xyes" -a \
448     "x$ac_cv_func_mprotect" = "xyes" ]]; then
449     if [[ "x$have_mach_vm" = "xno" ]]; then
450     have_mmap_vm=yes
451     fi
452     fi
453     AC_TRANSLATE_DEFINE(HAVE_MMAP_VM, "$have_mmap_vm")
454    
455     dnl Check that mmap() and associated functions work.
456     if [[ "x$have_mmap_vm" = "xyes" ]]; then
457    
458     dnl Check if we have a working anonymous mmap()
459     AC_CACHE_CHECK("whether mmap supports MAP_ANON",
460     ac_cv_mmap_anon, [
461     AC_LANG_SAVE
462     AC_LANG_CPLUSPLUS
463     AC_TRY_RUN([
464     #define HAVE_MMAP_ANON
465     #define CONFIGURE_TEST_VM_MAP
466     #define TEST_VM_MMAP_ANON
467     #include "vm_alloc.cpp"
468     ], ac_cv_mmap_anon=yes, ac_cv_mmap_anon=no,
469     dnl When cross-compiling, do not assume anything.
470     ac_cv_mmap_anon="guessing no"
471     )
472     AC_LANG_RESTORE
473     ]
474     )
475     AC_TRANSLATE_DEFINE(HAVE_MMAP_ANON, "$ac_cv_mmap_anon")
476    
477     AC_CACHE_CHECK("whether mmap supports MAP_ANONYMOUS",
478     ac_cv_mmap_anonymous, [
479     AC_LANG_SAVE
480     AC_LANG_CPLUSPLUS
481     AC_TRY_RUN([
482     #define HAVE_MMAP_ANONYMOUS
483     #define CONFIGURE_TEST_VM_MAP
484     #define TEST_VM_MMAP_ANON
485     #include "vm_alloc.cpp"
486     ], ac_cv_mmap_anonymous=yes, ac_cv_mmap_anonymous=no,
487     dnl When cross-compiling, do not assume anything.
488     ac_cv_mmap_anonymous="guessing no"
489     )
490     AC_LANG_RESTORE
491     ]
492     )
493     AC_TRANSLATE_DEFINE(HAVE_MMAP_ANONYMOUS, "$ac_cv_mmap_anonymous")
494    
495     AC_CACHE_CHECK("whether mprotect works",
496     ac_cv_mprotect_works, [
497     AC_LANG_SAVE
498     AC_LANG_CPLUSPLUS
499     ac_cv_mprotect_works=yes
500     dnl First the tests that should segfault
501     for test_def in NONE_READ NONE_WRITE READ_WRITE; do
502     AC_TRY_RUN([
503     #define CONFIGURE_TEST_VM_MAP
504     #define TEST_VM_PROT_$test_def
505     #include "vm_alloc.cpp"
506     ], ac_cv_mprotect_works=no, rm -f core,
507     dnl When cross-compiling, do not assume anything
508     ac_cv_mprotect_works="guessing no"
509     )
510     done
511     AC_TRY_RUN([
512     #define CONFIGURE_TEST_VM_MAP
513     #define TEST_VM_PROT_RDWR_WRITE
514     #include "vm_alloc.cpp"
515     ], , ac_cv_mprotect_works=no,
516     dnl When cross-compiling, do not assume anything
517     ac_cv_mprotect_works="guessing no"
518     )
519     AC_LANG_RESTORE
520     ]
521     )
522    
523     dnl Remove support for mmap() if mprotect() does not work
524     if [[ "x$have_mmap_vm" = "xyes" ]]; then
525     case $ac_cv_mprotect_works in
526     *yes) have_mmap_vm=yes;;
527     *no) have_mmap_vm=no;;
528     esac
529     fi
530     AC_TRANSLATE_DEFINE(HAVE_MMAP_VM, $have_mmap_vm)
531    
532     fi dnl HAVE_MMAP_VM
533    
534 gbeauche 1.23 dnl Check if we can mmap 0x2000 bytes from 0x0000
535     AC_CACHE_CHECK("whether we can map Low Memory area 0x0000-0x2000",
536     ac_cv_can_map_lm, [
537     AC_LANG_SAVE
538     AC_LANG_CPLUSPLUS
539     AC_TRY_RUN([
540 gbeauche 1.44 #include "vm_alloc.cpp"
541     int main(void) { /* returns 0 if we could map the lowmem globals */
542     volatile char * lm;
543     if (vm_init() < 0) exit(1);
544     if ((lm = (volatile char *)vm_acquire_fixed(0, 0x2000)) == VM_MAP_FAILED) exit(1);
545     lm[0] = 'z';
546     if (vm_release((char *)lm, 0x2000) < 0) exit(1);
547     vm_exit(); exit(0);
548 gbeauche 1.23 }
549 gbeauche 1.44 ], ac_cv_can_map_lm=yes, ac_cv_can_map_lm=no,
550     dnl When cross-compiling, do not assume anything.
551     ac_cv_can_map_lm="guessing no"
552 gbeauche 1.23 )
553     AC_LANG_RESTORE
554     ]
555     )
556    
557 gbeauche 1.40 dnl Check signal handlers need to be reinstalled
558     AC_CACHE_CHECK("whether signal handlers need to be reinstalled",
559 gbeauche 1.44 ac_cv_signal_need_reinstall, [
560     AC_LANG_SAVE
561     AC_LANG_CPLUSPLUS
562     AC_TRY_RUN([
563     #include <stdlib.h>
564     #ifdef HAVE_UNISTD_H
565     #include <unistd.h>
566     #endif
567     #include <signal.h>
568     static int handled_signal = 0;
569     RETSIGTYPE sigusr1_handler(int) { handled_signal++; }
570     int main(void) { /* returns 0 if signals need not to be reinstalled */
571     signal(SIGUSR1, sigusr1_handler); raise(SIGUSR1); raise(SIGUSR1);
572     exit(handled_signal == 2);
573     }
574     ], ac_cv_signal_need_reinstall=yes, ac_cv_signal_need_reinstall=no,
575     dnl When cross-compiling, do not assume anything.
576     ac_cv_signal_need_reinstall="guessing yes"
577     )
578     AC_LANG_RESTORE
579     ]
580 gbeauche 1.40 )
581     AC_TRANSLATE_DEFINE(SIGNAL_NEED_REINSTALL, "$ac_cv_signal_need_reinstall")
582    
583     dnl Check if sigaction handlers need to be reinstalled
584     AC_CACHE_CHECK("whether sigaction handlers need to be reinstalled",
585     ac_cv_sigaction_need_reinstall, [
586     AC_LANG_SAVE
587     AC_LANG_CPLUSPLUS
588     AC_TRY_RUN([
589     #include <stdlib.h>
590     #ifdef HAVE_UNISTD_H
591     #include <unistd.h>
592     #endif
593     #include <signal.h>
594     static int handled_signal = 0;
595     RETSIGTYPE sigusr1_handler(int) { handled_signal++; }
596     typedef RETSIGTYPE (*signal_handler)(int);
597     static signal_handler mysignal(int sig, signal_handler handler) {
598     struct sigaction old_sa;
599     struct sigaction new_sa;
600     new_sa.sa_handler = handler;
601     return ((sigaction(sig,&new_sa,&old_sa) < 0) ? SIG_IGN : old_sa.sa_handler);
602     }
603     int main(void) { /* returns 0 if signals need not to be reinstalled */
604     mysignal(SIGUSR1, sigusr1_handler); raise(SIGUSR1); raise(SIGUSR1);
605     exit(handled_signal == 2);
606     }
607 gbeauche 1.44 ], ac_cv_sigaction_need_reinstall=yes, ac_cv_sigaction_need_reinstall=no,
608     dnl When cross-compiling, do not assume anything.
609     ac_cv_sigaction_need_reinstall="guessing yes"
610 gbeauche 1.40 )
611     AC_LANG_RESTORE
612     ]
613     )
614     AC_TRANSLATE_DEFINE(SIGACTION_NEED_REINSTALL, "$ac_cv_sigaction_need_reinstall")
615    
616 gbeauche 1.23 dnl Check if extended signals are supported.
617     AC_CACHE_CHECK("whether your system supports extended signal handlers",
618     ac_cv_have_extended_signals, [
619     AC_LANG_SAVE
620     AC_LANG_CPLUSPLUS
621     AC_TRY_RUN([
622 gbeauche 1.40 #define HAVE_SIGINFO_T 1
623 gbeauche 1.44 #define CONFIGURE_TEST_SIGSEGV_RECOVERY
624     #include "vm_alloc.cpp"
625 gbeauche 1.40 #include "sigsegv.cpp"
626 gbeauche 1.44 ], ac_cv_have_extended_signals=yes, ac_cv_have_extended_signals=no,
627     dnl When cross-compiling, do not assume anything.
628     ac_cv_have_extended_signals=no
629 gbeauche 1.23 )
630     AC_LANG_RESTORE
631     ]
632     )
633     AC_TRANSLATE_DEFINE(HAVE_SIGINFO_T, "$ac_cv_have_extended_signals")
634 gbeauche 1.60
635 gbeauche 1.23 dnl Otherwise, check for subterfuges.
636     if [[ "x$ac_cv_have_extended_signals" = "xno" ]]; then
637 gbeauche 1.40 AC_CACHE_CHECK("whether we then have a subterfuge for your system",
638     ac_cv_have_sigcontext_hack, [
639     AC_LANG_SAVE
640     AC_LANG_CPLUSPLUS
641     AC_TRY_RUN([
642     #define HAVE_SIGCONTEXT_SUBTERFUGE 1
643 gbeauche 1.44 #define CONFIGURE_TEST_SIGSEGV_RECOVERY
644     #include "vm_alloc.cpp"
645 gbeauche 1.40 #include "sigsegv.cpp"
646 gbeauche 1.44 ], ac_cv_have_sigcontext_hack=yes, ac_cv_have_sigcontext_hack=no,
647     dnl When cross-compiling, do not assume anything.
648     ac_cv_have_sigcontext_hack=no
649 gbeauche 1.40 )
650     AC_LANG_RESTORE
651     ])
652     AC_TRANSLATE_DEFINE(HAVE_SIGCONTEXT_SUBTERFUGE, "$ac_cv_have_sigcontext_hack")
653 gbeauche 1.23 fi
654 gbeauche 1.60
655     dnl Check if we can ignore the fault (instruction skipping in SIGSEGV handler)
656     AC_CACHE_CHECK("whether we can skip instruction in SIGSEGV handler",
657     ac_cv_have_skip_instruction, [
658     AC_LANG_SAVE
659     AC_LANG_CPLUSPLUS
660     AC_TRY_RUN([
661     #define HAVE_SIGSEGV_SKIP_INSTRUCTION 1
662     #define CONFIGURE_TEST_SIGSEGV_RECOVERY
663     #include "vm_alloc.cpp"
664     #include "sigsegv.cpp"
665     ], ac_cv_have_skip_instruction=yes, ac_cv_have_skip_instruction=no,
666     dnl When cross-compiling, do not assume anything.
667     ac_cv_have_skip_instruction=no
668     )
669     AC_LANG_RESTORE
670     ]
671     )
672     AC_TRANSLATE_DEFINE(HAVE_SIGSEGV_SKIP_INSTRUCTION, "$ac_cv_have_skip_instruction")
673 gbeauche 1.23
674     dnl Can we do Video on SEGV Signals ?
675     CAN_VOSF=no
676     if [[ "$ac_cv_have_extended_signals" = "yes" -o "$ac_cv_have_sigcontext_hack" = "yes" ]]; then
677     CAN_VOSF=yes
678     fi
679    
680     dnl Determine the addressing mode to use
681 cebix 1.27 if [[ "x$WANT_NATIVE_M68K" = "xyes" ]]; then
682     ADDRESSING_MODE="real"
683     else
684     ADDRESSING_MODE=""
685     AC_MSG_CHECKING([for the addressing mode to use])
686     for am in $ADDRESSING_TEST_ORDER; do
687     case $am in
688     real)
689 gbeauche 1.32 dnl Requires ability to mmap() Low Memory globals
690 cebix 1.27 if [[ "x$ac_cv_can_map_lm" = "xno" ]]; then
691     continue
692     fi
693 gbeauche 1.32 dnl Requires VOSF screen updates
694     if [[ "x$CAN_VOSF" = "xno" ]]; then
695     continue
696 cebix 1.1 fi
697 gbeauche 1.32 dnl Real addressing will probably work.
698 cebix 1.27 ADDRESSING_MODE="real"
699     WANT_VOSF=yes dnl we can use VOSF and we need it actually
700     DEFINES="$DEFINES -DREAL_ADDRESSING"
701     break
702     ;;
703     direct)
704 gbeauche 1.32 dnl Requires VOSF screen updates
705 cebix 1.27 if [[ "x$CAN_VOSF" = "xyes" ]]; then
706     ADDRESSING_MODE="direct"
707     WANT_VOSF=yes dnl we can use VOSF and we need it actually
708     DEFINES="$DEFINES -DDIRECT_ADDRESSING"
709     break
710 cebix 1.1 fi
711 cebix 1.27 ;;
712     banks)
713     dnl Default addressing mode
714     ADDRESSING_MODE="memory banks"
715 gbeauche 1.23 break
716 cebix 1.27 ;;
717     *)
718     AC_MSG_ERROR([Internal configure.in script error for $am addressing mode])
719     esac
720     done
721     AC_MSG_RESULT($ADDRESSING_MODE)
722     if [[ "x$ADDRESSING_MODE" = "x" ]]; then
723     AC_MSG_WARN([Sorry, no suitable addressing mode in $ADDRESSING_TEST_ORDER])
724 gbeauche 1.23 ADDRESSING_MODE="memory banks"
725 cebix 1.27 fi
726 cebix 1.8 fi
727 gbeauche 1.23
728 gbeauche 1.32 dnl Enable VOSF screen updates with this feature is requested and feasible
729     if [[ "x$WANT_VOSF" = "xyes" -a "x$CAN_VOSF" = "xyes" ]]; then
730     AC_DEFINE(ENABLE_VOSF)
731     else
732 gbeauche 1.23 WANT_VOSF=no
733 cebix 1.19 fi
734 cebix 1.9
735 cebix 1.3 dnl Check for GAS.
736 cebix 1.1 HAVE_GAS=no
737     AC_MSG_CHECKING(for GAS .p2align feature)
738     cat >conftest.S << EOF
739     .text
740     .p2align 5
741     EOF
742     if $CC conftest.S -c -o conftest.o >/dev/null 2>&1 ; then HAVE_GAS=yes; fi
743     AC_MSG_RESULT($HAVE_GAS)
744    
745 cebix 1.3 dnl Check for GCC 2.7 or higher.
746 cebix 1.1 HAVE_GCC27=no
747     AC_MSG_CHECKING(for GCC 2.7 or higher)
748     AC_EGREP_CPP(yes,
749     [#if __GNUC__ - 1 > 1 || __GNUC_MINOR__ - 1 > 5
750     yes
751     #endif
752     ], [AC_MSG_RESULT(yes); HAVE_GCC27=yes], AC_MSG_RESULT(no))
753    
754 gbeauche 1.46 dnl Check for GCC 3.0 or higher.
755     HAVE_GCC30=no
756     AC_MSG_CHECKING(for GCC 3.0 or higher)
757     AC_EGREP_CPP(yes,
758     [#if __GNUC__ >= 3
759     yes
760     #endif
761     ], [AC_MSG_RESULT(yes); HAVE_GCC30=yes], AC_MSG_RESULT(no))
762    
763 cebix 1.19 dnl Set "-fomit-frame-pointer" on i386 GCC 2.7 or higher.
764 cebix 1.53 dnl Also set "-fno-exceptions" for C++ because exception handling requires
765     dnl the frame pointer.
766 cebix 1.19 if [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_I386" = "xyes" ]]; then
767 cebix 1.1 CFLAGS="$CFLAGS -fomit-frame-pointer"
768 cebix 1.53 CXXFLAGS="$CXXFLAGS -fomit-frame-pointer -fno-exceptions"
769 cebix 1.1 fi
770    
771 gbeauche 1.46 dnl (gb) Do not merge constants since it breaks fpu/fpu_x86.cpp.
772     dnl As of 2001/08/02, this affects the following compilers:
773     dnl Official: probably gcc-3.1 (mainline CVS)
774     dnl Mandrake: gcc-2.96 >= 0.59mdk, gcc-3.0.1 >= 0.1mdk
775     dnl Red Hat : gcc-2.96 >= 89, gcc-3.0 >= 1
776     if [[ "x$HAVE_GCC27" = "xyes" ]]; then
777     SAVED_CXXFLAGS="$CXXFLAGS"
778 gbeauche 1.47 CXXFLAGS="$CXXFLAGS -fno-merge-constants"
779 gbeauche 1.46 AC_CACHE_CHECK([whether GCC supports constants merging], ac_cv_gcc_constants_merging, [
780     AC_LANG_SAVE
781     AC_LANG_CPLUSPLUS
782     AC_TRY_COMPILE([],[],[ac_cv_gcc_constants_merging=yes],[ac_cv_gcc_constants_merging=no])
783     AC_LANG_RESTORE
784     ])
785     if [[ "x$ac_cv_gcc_constants_merging" != "xyes" ]]; then
786     CXXFLAGS="$SAVED_CXXFLAGS"
787     fi
788     fi
789    
790 cebix 1.3 dnl Select appropriate CPU source and REGPARAM define.
791 gbeauche 1.23 ASM_OPTIMIZATIONS=none
792 cebix 1.9 CPUSRCS="cpuemu1.cpp cpuemu2.cpp cpuemu3.cpp cpuemu4.cpp cpuemu5.cpp cpuemu6.cpp cpuemu7.cpp cpuemu8.cpp"
793 cebix 1.41 FPUSRCS="../uae_cpu/fpu/fpu_uae.cpp"
794 cebix 1.38 if [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_I386" = "xyes" -a "x$OS_TYPE" != "xfreebsd" ]]; then
795 cebix 1.9 dnl i386 CPU
796 cebix 1.1 DEFINES="$DEFINES -DREGPARAM=\"__attribute__((regparm(3)))\""
797     if [[ "x$HAVE_GAS" = "xyes" ]]; then
798 gbeauche 1.23 ASM_OPTIMIZATIONS=i386
799 gbeauche 1.31 DEFINES="$DEFINES -DX86_ASSEMBLY -DUNALIGNED_PROFITABLE -DOPTIMIZED_FLAGS"
800 gbeauche 1.34 CPUSRCS="cpufast1.s cpufast2.s cpufast3.s cpufast4.s cpufast5.s cpufast6.s cpufast7.s cpufast8.s"
801 gbeauche 1.22 FPUSRCS="../uae_cpu/fpu_x86.cpp"
802 cebix 1.1 fi
803 cebix 1.9 elif [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_SPARC" = "xyes" -a "x$HAVE_GAS" = "xyes" ]]; then
804     dnl SPARC CPU
805 gbeauche 1.23 case "$target_os" in
806     solaris*)
807 cebix 1.9 AC_MSG_CHECKING(SPARC CPU architecture)
808     SPARC_TYPE=`Solaris/which_sparc`
809     AC_MSG_RESULT($SPARC_TYPE)
810     case "$SPARC_TYPE" in
811     SPARC_V8)
812 cebix 1.26 ASM_OPTIMIZATIONS="SPARC V8 architecture"
813 gbeauche 1.31 DEFINES="$DEFINES -DSPARC_V8_ASSEMBLY" dnl -DOPTIMIZED_FLAGS"
814 cebix 1.9 CFLAGS="$CFLAGS -Wa,-Av8"
815     CXXFLAGS="$CXXFLAGS -Wa,-Av8"
816     ;;
817     SPARC_V9)
818 cebix 1.26 ASM_OPTIMIZATIONS="SPARC V9 architecture"
819 gbeauche 1.31 DEFINES="$DEFINES -DSPARC_V9_ASSEMBLY" dnl -DOPTIMIZED_FLAGS"
820 cebix 1.9 CFLAGS="$CFLAGS -Wa,-Av9"
821     CXXFLAGS="$CXXFLAGS -Wa,-Av9"
822     ;;
823     esac
824     ;;
825     esac
826 cebix 1.27 elif [[ "x$WANT_NATIVE_M68K" = "xyes" ]]; then
827 cebix 1.19 dnl Native m68k, no emulation
828 cebix 1.27 CPUINCLUDES="-I../native_cpu"
829     CPUSRCS="asm_support.s"
830 cebix 1.1 fi
831 cebix 1.9
832 gbeauche 1.35 dnl Select appropriate FPU source.
833     dnl 1. Optimized X86 assembly core if target is i386 architecture
834     SAVED_DEFINES=$DEFINES
835     if [[ "x$FPE_CORE" = "xdefault" ]]; then
836     if [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_I386" = "xyes" -a "x$HAVE_GAS" = "xyes" ]]; then
837     DEFINES="$DEFINES -DFPU_X86"
838     FPE_CORE_STR="i386 optimized core"
839     FPUSRCS="../uae_cpu/fpu/fpu_x86.cpp"
840 gbeauche 1.46 FPE_CORE="i386"
841 gbeauche 1.36 else
842     FPE_CORE="uae"
843 gbeauche 1.35 fi
844     fi
845    
846     dnl 2. JIT-FPU only supports IEEE-based implementation.
847     if [[ "x$WANT_JIT_FPU" = "xyes" -a "x$FPE_CORE" != "xieee" ]]; then
848     AC_MSG_WARN([Sorry, JIT-FPU supports only the "ieee" FPE implementation])
849     FPE_CORE="ieee"
850     dnl Restore previous variables. FPE_CORE_STR and FPUSRCS are overwritten
851     DEFINES=$SAVED_DEFINES
852     fi
853    
854     dnl 3. Choose either IEEE-based implementation or the old UAE core
855     if [[ "x$FPE_CORE" = "xieee" ]]; then
856     AC_CHECK_HEADERS(fenv.h)
857     AC_CHECK_FUNCS(feclearexcept fegetexceptflag feraiseexcept fesetexceptflag fetestexcept)
858     AC_CHECK_FUNCS(fegetround fesetround)
859     DEFINES="$DEFINES -DFPU_IEEE"
860     FPE_CORE_STR="ieee-based fpu core"
861     FPUSRCS="../uae_cpu/fpu/fpu_ieee.cpp"
862     elif [[ "x$FPE_CORE" = "xuae" ]]; then
863     DEFINES="$DEFINES -DFPU_UAE"
864     FPE_CORE_STR="original uae core"
865     FPUSRCS="../uae_cpu/fpu/fpu_uae.cpp"
866     fi
867    
868     dnl Check for certain math functions
869     AC_CHECK_FUNCS(atanh)
870     AC_CHECK_FUNCS(isnan isinf) dnl C99
871     AC_CHECK_FUNCS(isnanl isinfl) dnl IEEE ?
872    
873 cebix 1.19 dnl UAE CPU sources for all non-m68k-native architectures.
874     if [[ "x$WANT_NATIVE_M68K" = "xno" ]]; then
875 cebix 1.20 CPUINCLUDES="-I../uae_cpu"
876 gbeauche 1.22 CPUSRCS="../uae_cpu/basilisk_glue.cpp ../uae_cpu/memory.cpp ../uae_cpu/newcpu.cpp ../uae_cpu/readcpu.cpp $FPUSRCS cpustbl.cpp cpudefs.cpp $CPUSRCS"
877 cebix 1.19 fi
878 cebix 1.1
879 gbeauche 1.23 dnl Remove the "-g" option if set for GCC.
880     if [[ "x$HAVE_GCC27" = "xyes" ]]; then
881 gbeauche 1.43 CFLAGS=`echo $CFLAGS | sed -e 's/-g//g'`
882     CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-g//g'`
883 cebix 1.37 fi
884    
885     dnl Or if we have -Ofast
886     if [[ "x$HAVE_OFAST" = "xyes" ]]; then
887 gbeauche 1.43 CFLAGS="`echo $CFLAGS | sed -e 's/-g//g'` -Ofast"
888     CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-g//g'` -Ofast"
889 cebix 1.37 CXXFLAGS="-LANG:std $CXXFLAGS"
890 cebix 1.59 LDFLAGS="$LDFLAGS -ipa"
891 gbeauche 1.23 fi
892    
893 cebix 1.3 dnl Generate Makefile.
894 cebix 1.1 AC_SUBST(DEFINES)
895     AC_SUBST(SYSSRCS)
896     AC_SUBST(CPUINCLUDES)
897     AC_SUBST(CPUSRCS)
898     AC_OUTPUT(Makefile)
899 cebix 1.12
900     dnl Print summary.
901     echo
902     echo Basilisk II configuration summary:
903     echo
904     echo XFree86 DGA support .............. : $WANT_XF86_DGA
905 cebix 1.17 echo XFree86 VidMode support .......... : $WANT_XF86_VIDMODE
906 cebix 1.12 echo fbdev DGA support ................ : $WANT_FBDEV_DGA
907 gbeauche 1.23 echo Enable video on SEGV signals ..... : $WANT_VOSF
908 cebix 1.12 echo ESD sound support ................ : $WANT_ESD
909 cebix 1.14 echo GTK user interface ............... : $WANT_GTK
910 cebix 1.12 echo mon debugger support ............. : $WANT_MON
911 cebix 1.19 echo Running m68k code natively ....... : $WANT_NATIVE_M68K
912 gbeauche 1.35 echo Floating-Point emulation core .... : $FPE_CORE_STR
913 gbeauche 1.23 echo Assembly optimizations ........... : $ASM_OPTIMIZATIONS
914     echo Addressing mode .................. : $ADDRESSING_MODE
915 cebix 1.12 echo
916 cebix 1.19 echo "Configuration done. Now type \"make\" (or \"gmake\")."