ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/SheepShaver/src/Unix/configure.in
Revision: 1.8
Committed: 2003-09-28T21:19:06Z (20 years, 9 months ago) by gbeauche
Branch: MAIN
Changes since 1.7: +3 -0 lines
Log Message:
Define HAVE_PTHREADS, if available

File Contents

# User Rev Content
1 cebix 1.1 dnl Process this file with autoconf to produce a configure script.
2     dnl Written in 2002 by Christian Bauer
3    
4     AC_INIT(main_unix.cpp)
5     AC_PREREQ(2.12)
6     AC_CONFIG_HEADER(config.h)
7    
8     dnl Options.
9 gbeauche 1.6 AC_ARG_ENABLE(ppc-emulator, [ --enable-ppc-emulator use the selected PowerPC emulator [default=auto]], [WANT_EMULATED_PPC=$enableval], [WANT_EMULATED_PPC=auto])
10 cebix 1.1 AC_ARG_ENABLE(xf86-dga, [ --enable-xf86-dga use the XFree86 DGA extension [default=yes]], [WANT_XF86_DGA=$enableval], [WANT_XF86_DGA=yes])
11     AC_ARG_ENABLE(xf86-vidmode, [ --enable-xf86-vidmode use the XFree86 VidMode extension [default=yes]], [WANT_XF86_VIDMODE=$enableval], [WANT_XF86_VIDMODE=yes])
12 gbeauche 1.5 AC_ARG_ENABLE(vosf, [ --enable-vosf enable video on SEGV signals [default=yes]], [WANT_VOSF=$enableval], [WANT_VOSF=yes])
13 cebix 1.1 AC_ARG_WITH(esd, [ --with-esd support ESD for sound under Linux/FreeBSD [default=yes]], [WANT_ESD=$withval], [WANT_ESD=yes])
14     AC_ARG_WITH(gtk, [ --with-gtk use GTK user interface [default=yes]], [WANT_GTK=$withval], [WANT_GTK=yes])
15     AC_ARG_WITH(mon, [ --with-mon use mon as debugger [default=yes]], [WANT_MON=$withval], [WANT_MON=yes])
16    
17     dnl Checks for programs.
18     AC_PROG_CC
19     AC_PROG_CPP
20     AC_PROG_CXX
21     AC_PROG_MAKE_SET
22     AC_PROG_INSTALL
23    
24     dnl Check for PowerPC target CPU.
25     HAVE_PPC=no
26     AC_MSG_CHECKING(for PowerPC target CPU)
27     AC_EGREP_CPP(yes,
28     [
29     #ifdef __powerpc__
30     yes
31     #endif
32     ], [AC_MSG_RESULT(yes); HAVE_PPC=yes], AC_MSG_RESULT(no))
33    
34 gbeauche 1.6 dnl We use native CPU if possible.
35     EMULATED_PPC=yes
36     case $WANT_EMULATED_PPC in
37     auto) [[ "x$HAVE_PPC" = "xyes" ]] && EMULATED_PPC=no;;
38     no) EMULATED_PPC=no;;
39     esac
40     if [[ "x$EMULATED_PPC" = "xyes" ]]; then
41     AC_DEFINE(EMULATED_PPC)
42     fi
43    
44 cebix 1.1 dnl We use mon if possible.
45     MONSRCS=
46     if [[ "x$WANT_MON" = "xyes" ]]; then
47     AC_MSG_CHECKING(for mon)
48     mon_srcdir=../../../mon/src
49     if grep mon_init $mon_srcdir/mon.h >/dev/null 2>/dev/null; then
50     AC_MSG_RESULT(yes)
51     AC_DEFINE(ENABLE_MON)
52     MONSRCS="$mon_srcdir/mon.cpp $mon_srcdir/mon_6502.cpp $mon_srcdir/mon_z80.cpp $mon_srcdir/mon_cmd.cpp $mon_srcdir/mon_lowmem.cpp $mon_srcdir/mon_disass.cpp $mon_srcdir/mon_ppc.cpp $mon_srcdir/disass/floatformat.c $mon_srcdir/disass/i386-dis.c $mon_srcdir/disass/m68k-dis.c $mon_srcdir/disass/m68k-opc.c"
53     CXXFLAGS="$CXXFLAGS -I$mon_srcdir -I$mon_srcdir/disass"
54 gbeauche 1.2 AC_CHECK_LIB(ncurses, tgetent, ,
55     AC_CHECK_LIB(termcap, tgetent, ,
56     AC_CHECK_LIB(termlib, tgetent, ,
57     AC_CHECK_LIB(terminfo, tgetent, ,
58     AC_CHECK_LIB(Hcurses, tgetent, ,
59     AC_CHECK_LIB(curses, tgetent))))))
60 cebix 1.1 AC_CHECK_LIB(readline, readline)
61     AC_CHECK_HEADERS(readline.h history.h readline/readline.h readline/history.h)
62     else
63     AC_MSG_RESULT(no)
64     AC_MSG_WARN([Could not find mon, ignoring --with-mon.])
65     WANT_MON=no
66     fi
67     fi
68    
69     dnl Checks for libraries.
70     AC_CHECK_LIB(posix4, sem_init)
71    
72     dnl We need X11.
73     AC_PATH_XTRA
74     if [[ "x$no_x" = "xyes" ]]; then
75     AC_MSG_ERROR([You need X11 to run SheepShaver.])
76     fi
77     CFLAGS="$CFLAGS $X_CFLAGS"
78     CXXFLAGS="$CXXFLAGS $X_CFLAGS"
79     LIBS="$LIBS $X_PRE_LIBS $X_LIBS -lX11 -lXext $X_EXTRA_LIBS"
80    
81     dnl We need pthreads on non-PowerPC systems. Try libpthread first, then libc_r (FreeBSD), then PTL.
82     HAVE_PTHREADS=yes
83 gbeauche 1.6 if [[ "x$EMULATED_PPC" = "xyes" ]]; then
84 cebix 1.1 AC_CHECK_LIB(pthread, pthread_create, , [
85     AC_CHECK_LIB(c_r, pthread_create, , [
86     AC_CHECK_LIB(PTL, pthread_create, , [
87     AC_MSG_ERROR([You need pthreads to run Basilisk II.])
88     ])
89     ])
90     ])
91     AC_CHECK_FUNCS(pthread_cancel)
92 gbeauche 1.8 if [[ "x$HAVE_PTHREADS" = "xyes" ]]; then
93     AC_DEFINE(HAVE_PTHREADS, 1, [Define if pthreads are available.])
94     fi
95 cebix 1.1 fi
96    
97     dnl If POSIX.4 semaphores are not available, we emulate them with pthread mutexes.
98     SEMSRC=
99     AC_CHECK_FUNCS(sem_init, , [
100 gbeauche 1.4 if test "x$HAVE_PTHREADS" = "xyes"; then
101 cebix 1.1 SEMSRC=posix_sem.cpp
102     fi
103     ])
104    
105     dnl We use XFree86 DGA if possible.
106     if [[ "x$WANT_XF86_DGA" = "xyes" ]]; then
107     AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension, [
108     AC_DEFINE(ENABLE_XF86_DGA)
109     LIBS="$LIBS -lXxf86dga"
110     ], [
111     AC_MSG_WARN([Could not find XFree86 DGA extension, ignoring --enable-xf86-dga.])
112     WANT_XF86_DGA=no
113     ])
114     fi
115    
116     dnl We use XFree86 VidMode if possible.
117     if [[ "x$WANT_XF86_VIDMODE" = "xyes" ]]; then
118     AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension, [
119     AC_DEFINE(ENABLE_XF86_VIDMODE)
120     LIBS="$LIBS -lXxf86vm"
121     ], [
122     AC_MSG_WARN([Could not find XFree86 VidMode extension, ignoring --enable-xf86-vidmode.])
123     WANT_XF86_VIDMODE=no
124     ])
125     fi
126    
127     dnl We use GTK+ if possible.
128     UISRCS=
129     if [[ "x$WANT_GTK" = "xyes" ]]; then
130     AM_PATH_GTK(1.2.0, [
131     AC_DEFINE(ENABLE_GTK)
132     CFLAGS="$CFLAGS $GTK_CFLAGS"
133     CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
134     LIBS="$LIBS $GTK_LIBS"
135     UISRCS=prefs_editor_gtk.cpp
136     ], [
137     AC_MSG_WARN([Could not find GTK+, disabling user interface.])
138     WANT_GTK=no
139     ])
140     fi
141    
142     dnl We use ESD if possible.
143     if [[ "x$WANT_ESD" = "xyes" ]]; then
144     AM_PATH_ESD(0.2.8, [
145     AC_DEFINE(ENABLE_ESD)
146     CFLAGS="$CFLAGS $ESD_CFLAGS"
147     CXXFLAGS="$CXXFLAGS $ESD_CFLAGS"
148     LIBS="$LIBS $ESD_LIBS"
149     ], [
150     AC_MSG_WARN([Could not find ESD, disabling ESD support.])
151     WANT_ESD=no
152     ])
153     fi
154    
155     dnl Checks for header files.
156     AC_HEADER_STDC
157     AC_HEADER_SYS_WAIT
158 gbeauche 1.6 AC_CHECK_HEADERS(mach/vm_map.h mach/mach_init.h sys/mman.h)
159     AC_CHECK_HEADERS(sys/time.h sys/times.h)
160     AC_CHECK_HEADERS(unistd.h fcntl.h byteswap.h)
161 cebix 1.1
162     dnl Checks for typedefs, structures, and compiler characteristics.
163     AC_C_BIGENDIAN
164     AC_C_CONST
165     AC_C_INLINE
166     AC_CHECK_SIZEOF(short, 2)
167     AC_CHECK_SIZEOF(int, 4)
168     AC_CHECK_SIZEOF(long, 4)
169     AC_CHECK_SIZEOF(long long, 8)
170 gbeauche 1.4 AC_CHECK_SIZEOF(float, 4)
171     AC_CHECK_SIZEOF(double, 8)
172 gbeauche 1.3 AC_CHECK_SIZEOF(void *, 4)
173 cebix 1.1 AC_TYPE_OFF_T
174     AC_CHECK_TYPE(loff_t, off_t)
175     AC_TYPE_SIZE_T
176 gbeauche 1.4 AC_TYPE_SIGNAL
177 cebix 1.1 AC_HEADER_TIME
178     AC_STRUCT_TM
179    
180     dnl Checks for library functions.
181     AC_CHECK_FUNCS(strdup cfmakeraw)
182     AC_CHECK_FUNCS(nanosleep clock_gettime timer_create)
183 gbeauche 1.4 AC_CHECK_FUNCS(sigaction signal)
184     AC_CHECK_FUNCS(mmap mprotect munmap)
185     AC_CHECK_FUNCS(vm_allocate vm_deallocate vm_protect)
186 cebix 1.1
187     dnl Select system-dependant sources.
188 gbeauche 1.6 if [[ "x$EMULATED_PPC" = "xno" ]]; then
189 cebix 1.1 SYSSRCS="Linux/paranoia.cpp Linux/sheepthreads.c Linux/asm_linux.S"
190     else
191 gbeauche 1.6 SYSSRCS="../kpx_cpu/sheepshaver_glue.cpp \
192     ../kpx_cpu/src/cpu/ppc/ppc-cpu.cpp \
193     ../kpx_cpu/src/cpu/ppc/ppc-decode.cpp \
194     ../kpx_cpu/src/cpu/ppc/ppc-execute.cpp"
195 gbeauche 1.7 CPPFLAGS="$CPPFLAGS -I../kpx_cpu/include -I../kpx_cpu/src"
196 cebix 1.1 fi
197     SYSSRCS="$SYSSRCS $SEMSRCS $UISRCS $MONSRCS"
198 gbeauche 1.4
199     dnl Define a macro that translates a yesno-variable into a C macro definition
200     dnl to be put into the config.h file
201     dnl $1 -- the macro to define
202     dnl $2 -- the value to translate
203     dnl $3 -- template name
204     AC_DEFUN(AC_TRANSLATE_DEFINE, [
205     if [[ "x$2" = "xyes" -o "x$2" = "xguessing yes" ]]; then
206     AC_DEFINE($1, 1, $3)
207     fi
208     ])
209    
210     dnl Various checks if the system supports vm_allocate() and the like functions.
211     have_mach_vm=no
212     if [[ "x$ac_cv_func_vm_allocate" = "xyes" -a "x$ac_cv_func_vm_deallocate" = "xyes" -a \
213     "x$ac_cv_func_vm_protect" = "xyes" ]]; then
214     have_mach_vm=yes
215     fi
216     AC_TRANSLATE_DEFINE(HAVE_MACH_VM, "$have_mach_vm",
217     [Define if your system has a working vm_allocate()-based memory allocator.])
218    
219     dnl Check that vm_allocate(), vm_protect() work
220     if [[ "x$have_mach_vm" = "xyes" ]]; then
221    
222     AC_CACHE_CHECK([whether vm_protect works],
223     ac_cv_vm_protect_works, [
224     AC_LANG_SAVE
225     AC_LANG_CPLUSPLUS
226     ac_cv_vm_protect_works=yes
227     dnl First the tests that should segfault
228     for test_def in NONE_READ NONE_WRITE READ_WRITE; do
229     AC_TRY_RUN([
230     #define CONFIGURE_TEST_VM_MAP
231     #define TEST_VM_PROT_$test_def
232     #include "vm_alloc.cpp"
233     ], ac_cv_vm_protect_works=no, rm -f core,
234     dnl When cross-compiling, do not assume anything
235     ac_cv_vm_protect_works="guessing no"
236     )
237     done
238     AC_TRY_RUN([
239     #define CONFIGURE_TEST_VM_MAP
240     #define TEST_VM_PROT_RDWR_WRITE
241     #include "vm_alloc.cpp"
242     ], , ac_cv_vm_protect_works=no,
243     dnl When cross-compiling, do not assume anything
244     ac_cv_vm_protect_works="guessing no"
245     )
246     AC_LANG_RESTORE
247     ]
248     )
249    
250     dnl Remove support for vm_allocate() if vm_protect() does not work
251     if [[ "x$have_mach_vm" = "xyes" ]]; then
252     case $ac_cv_vm_protect_works in
253     *yes) have_mach_vm=yes;;
254     *no) have_mach_vm=no;;
255     esac
256     fi
257     AC_TRANSLATE_DEFINE(HAVE_MACH_VM, "$have_mach_vm",
258     [Define if your system has a working vm_allocate()-based memory allocator.])
259    
260     fi dnl HAVE_MACH_VM
261    
262     dnl Various checks if the system supports mmap() and the like functions.
263     dnl ... and Mach memory allocators are not supported
264     have_mmap_vm=no
265     if [[ "x$ac_cv_func_mmap" = "xyes" -a "x$ac_cv_func_munmap" = "xyes" -a \
266     "x$ac_cv_func_mprotect" = "xyes" ]]; then
267     if [[ "x$have_mach_vm" = "xno" ]]; then
268     have_mmap_vm=yes
269     fi
270     fi
271     AC_TRANSLATE_DEFINE(HAVE_MMAP_VM, "$have_mmap_vm",
272     [Define if your system has a working mmap()-based memory allocator.])
273    
274     dnl Check that mmap() and associated functions work.
275     if [[ "x$have_mmap_vm" = "xyes" ]]; then
276    
277     dnl Check if we have a working anonymous mmap()
278     AC_CACHE_CHECK([whether mmap supports MAP_ANON],
279     ac_cv_mmap_anon, [
280     AC_LANG_SAVE
281     AC_LANG_CPLUSPLUS
282     AC_TRY_RUN([
283     #define HAVE_MMAP_ANON
284     #define CONFIGURE_TEST_VM_MAP
285     #define TEST_VM_MMAP_ANON
286     #include "vm_alloc.cpp"
287     ], ac_cv_mmap_anon=yes, ac_cv_mmap_anon=no,
288     dnl When cross-compiling, do not assume anything.
289     ac_cv_mmap_anon="guessing no"
290     )
291     AC_LANG_RESTORE
292     ]
293     )
294     AC_TRANSLATE_DEFINE(HAVE_MMAP_ANON, "$ac_cv_mmap_anon",
295     [Define if <sys/mman.h> defines MAP_ANON and mmap()'ing with MAP_ANON works.])
296    
297     AC_CACHE_CHECK([whether mmap supports MAP_ANONYMOUS],
298     ac_cv_mmap_anonymous, [
299     AC_LANG_SAVE
300     AC_LANG_CPLUSPLUS
301     AC_TRY_RUN([
302     #define HAVE_MMAP_ANONYMOUS
303     #define CONFIGURE_TEST_VM_MAP
304     #define TEST_VM_MMAP_ANON
305     #include "vm_alloc.cpp"
306     ], ac_cv_mmap_anonymous=yes, ac_cv_mmap_anonymous=no,
307     dnl When cross-compiling, do not assume anything.
308     ac_cv_mmap_anonymous="guessing no"
309     )
310     AC_LANG_RESTORE
311     ]
312     )
313     AC_TRANSLATE_DEFINE(HAVE_MMAP_ANONYMOUS, "$ac_cv_mmap_anonymous",
314     [Define if <sys/mman.h> defines MAP_ANONYMOUS and mmap()'ing with MAP_ANONYMOUS works.])
315    
316     AC_CACHE_CHECK([whether mprotect works],
317     ac_cv_mprotect_works, [
318     AC_LANG_SAVE
319     AC_LANG_CPLUSPLUS
320     ac_cv_mprotect_works=yes
321     dnl First the tests that should segfault
322     for test_def in NONE_READ NONE_WRITE READ_WRITE; do
323     AC_TRY_RUN([
324     #define CONFIGURE_TEST_VM_MAP
325     #define TEST_VM_PROT_$test_def
326     #include "vm_alloc.cpp"
327     ], ac_cv_mprotect_works=no, rm -f core,
328     dnl When cross-compiling, do not assume anything
329     ac_cv_mprotect_works="guessing no"
330     )
331     done
332     AC_TRY_RUN([
333     #define CONFIGURE_TEST_VM_MAP
334     #define TEST_VM_PROT_RDWR_WRITE
335     #include "vm_alloc.cpp"
336     ], , ac_cv_mprotect_works=no,
337     dnl When cross-compiling, do not assume anything
338     ac_cv_mprotect_works="guessing no"
339     )
340     AC_LANG_RESTORE
341     ]
342     )
343    
344     dnl Remove support for mmap() if mprotect() does not work
345     if [[ "x$have_mmap_vm" = "xyes" ]]; then
346     case $ac_cv_mprotect_works in
347     *yes) have_mmap_vm=yes;;
348     *no) have_mmap_vm=no;;
349     esac
350     fi
351     AC_TRANSLATE_DEFINE(HAVE_MMAP_VM, $have_mmap_vm,
352     [Define if your system has a working mmap()-based memory allocator.])
353    
354     fi dnl HAVE_MMAP_VM
355    
356     dnl Check if we can mmap 0x2000 bytes from 0x0000
357     AC_CACHE_CHECK([whether we can map Low Memory area 0x0000-0x2000],
358     ac_cv_can_map_lm, [
359     AC_LANG_SAVE
360     AC_LANG_CPLUSPLUS
361     AC_TRY_RUN([
362     #include "vm_alloc.cpp"
363     int main(void) { /* returns 0 if we could map the lowmem globals */
364     volatile char * lm = 0;
365     if (vm_init() < 0) exit(1);
366     if (vm_acquire_fixed(0, 0x2000) < 0) exit(1);
367     lm[0] = 'z';
368     if (vm_release((char *)lm, 0x2000) < 0) exit(1);
369     vm_exit(); exit(0);
370     }
371     ], ac_cv_can_map_lm=yes, ac_cv_can_map_lm=no,
372     dnl When cross-compiling, do not assume anything.
373     ac_cv_can_map_lm="guessing no"
374     )
375     AC_LANG_RESTORE
376     ]
377     )
378    
379     dnl Check signal handlers need to be reinstalled
380     AC_CACHE_CHECK([whether signal handlers need to be reinstalled],
381     ac_cv_signal_need_reinstall, [
382     AC_LANG_SAVE
383     AC_LANG_CPLUSPLUS
384     AC_TRY_RUN([
385     #include <stdlib.h>
386     #ifdef HAVE_UNISTD_H
387     #include <unistd.h>
388     #endif
389     #include <signal.h>
390     static int handled_signal = 0;
391     RETSIGTYPE sigusr1_handler(int) { handled_signal++; }
392     int main(void) { /* returns 0 if signals need not to be reinstalled */
393     signal(SIGUSR1, sigusr1_handler); raise(SIGUSR1); raise(SIGUSR1);
394     exit(handled_signal == 2);
395     }
396     ], ac_cv_signal_need_reinstall=yes, ac_cv_signal_need_reinstall=no,
397     dnl When cross-compiling, do not assume anything.
398     ac_cv_signal_need_reinstall="guessing yes"
399     )
400     AC_LANG_RESTORE
401     ]
402     )
403     AC_TRANSLATE_DEFINE(SIGNAL_NEED_REINSTALL, "$ac_cv_signal_need_reinstall",
404     [Define if your system requires signals to be reinstalled.])
405    
406     dnl Check if sigaction handlers need to be reinstalled
407     AC_CACHE_CHECK([whether sigaction handlers need to be reinstalled],
408     ac_cv_sigaction_need_reinstall, [
409     AC_LANG_SAVE
410     AC_LANG_CPLUSPLUS
411     AC_TRY_RUN([
412     #include <stdlib.h>
413     #ifdef HAVE_UNISTD_H
414     #include <unistd.h>
415     #endif
416     #include <signal.h>
417     static int handled_signal = 0;
418     RETSIGTYPE sigusr1_handler(int) { handled_signal++; }
419     typedef RETSIGTYPE (*signal_handler)(int);
420     static signal_handler mysignal(int sig, signal_handler handler) {
421     struct sigaction old_sa;
422     struct sigaction new_sa;
423     new_sa.sa_handler = handler;
424     return ((sigaction(sig,&new_sa,&old_sa) < 0) ? SIG_IGN : old_sa.sa_handler);
425     }
426     int main(void) { /* returns 0 if signals need not to be reinstalled */
427     mysignal(SIGUSR1, sigusr1_handler); raise(SIGUSR1); raise(SIGUSR1);
428     exit(handled_signal == 2);
429     }
430     ], ac_cv_sigaction_need_reinstall=yes, ac_cv_sigaction_need_reinstall=no,
431     dnl When cross-compiling, do not assume anything.
432     ac_cv_sigaction_need_reinstall="guessing yes"
433     )
434     AC_LANG_RESTORE
435     ]
436     )
437     AC_TRANSLATE_DEFINE(SIGACTION_NEED_REINSTALL, "$ac_cv_sigaction_need_reinstall",
438     [Define if your system requires sigactions to be reinstalled.])
439    
440     dnl Check if extended signals are supported.
441     AC_CACHE_CHECK([whether your system supports extended signal handlers],
442     ac_cv_have_extended_signals, [
443     AC_LANG_SAVE
444     AC_LANG_CPLUSPLUS
445     AC_TRY_RUN([
446     #define HAVE_SIGINFO_T 1
447     #define CONFIGURE_TEST_SIGSEGV_RECOVERY
448     #include "vm_alloc.cpp"
449     #include "sigsegv.cpp"
450     ], ac_cv_have_extended_signals=yes, ac_cv_have_extended_signals=no,
451     dnl When cross-compiling, do not assume anything.
452     ac_cv_have_extended_signals=no
453     )
454     AC_LANG_RESTORE
455     ]
456     )
457     AC_TRANSLATE_DEFINE(HAVE_SIGINFO_T, "$ac_cv_have_extended_signals",
458     [Define if your system support extended signals.])
459    
460     dnl Otherwise, check for subterfuges.
461     if [[ "x$ac_cv_have_extended_signals" = "xno" ]]; then
462     AC_CACHE_CHECK([whether we then have a subterfuge for your system],
463     ac_cv_have_sigcontext_hack, [
464     AC_LANG_SAVE
465     AC_LANG_CPLUSPLUS
466     AC_TRY_RUN([
467     #define HAVE_SIGCONTEXT_SUBTERFUGE 1
468     #define CONFIGURE_TEST_SIGSEGV_RECOVERY
469     #include "vm_alloc.cpp"
470     #include "sigsegv.cpp"
471     ], ac_cv_have_sigcontext_hack=yes, ac_cv_have_sigcontext_hack=no,
472     dnl When cross-compiling, do not assume anything.
473     ac_cv_have_sigcontext_hack=no
474     )
475     AC_LANG_RESTORE
476     ])
477     AC_TRANSLATE_DEFINE(HAVE_SIGCONTEXT_SUBTERFUGE, "$ac_cv_have_sigcontext_hack",
478     [Define if we know a hack to replace siginfo_t->si_addr member.])
479     fi
480    
481     dnl Check if we can ignore the fault (instruction skipping in SIGSEGV handler)
482     AC_CACHE_CHECK([whether we can skip instruction in SIGSEGV handler],
483     ac_cv_have_skip_instruction, [
484     AC_LANG_SAVE
485     AC_LANG_CPLUSPLUS
486     AC_TRY_RUN([
487     #define HAVE_SIGSEGV_SKIP_INSTRUCTION 1
488     #define CONFIGURE_TEST_SIGSEGV_RECOVERY
489     #include "vm_alloc.cpp"
490     #include "sigsegv.cpp"
491     ], ac_cv_have_skip_instruction=yes, ac_cv_have_skip_instruction=no,
492     dnl When cross-compiling, do not assume anything.
493     ac_cv_have_skip_instruction=no
494     )
495     AC_LANG_RESTORE
496     ]
497     )
498     AC_TRANSLATE_DEFINE(HAVE_SIGSEGV_SKIP_INSTRUCTION, "$ac_cv_have_skip_instruction",
499     [Define if we can ignore the fault (instruction skipping in SIGSEGV handler).])
500 cebix 1.1
501 gbeauche 1.5 dnl Can we do Video on SEGV Signals ?
502     CAN_VOSF=no
503     if [[ "$ac_cv_have_extended_signals" = "yes" -o "$ac_cv_have_sigcontext_hack" = "yes" ]]; then
504     CAN_VOSF=yes
505     fi
506    
507     dnl Enable VOSF screen updates with this feature is requested and feasible
508     if [[ "x$WANT_VOSF" = "xyes" -a "x$CAN_VOSF" = "xyes" ]]; then
509     AC_DEFINE(ENABLE_VOSF, 1, [Define if using video enabled on SEGV signals.])
510     else
511     WANT_VOSF=no
512     fi
513    
514 cebix 1.1 dnl Generate Makefile.
515     AC_SUBST(SYSSRCS)
516     AC_OUTPUT(Makefile)
517    
518     dnl Print summary.
519     echo
520     echo SheepShaver configuration summary:
521     echo
522     echo XFree86 DGA support .............. : $WANT_XF86_DGA
523     echo XFree86 VidMode support .......... : $WANT_XF86_VIDMODE
524 gbeauche 1.6 echo Using PowerPC emulator ........... : $EMULATED_PPC
525 gbeauche 1.5 echo Enable video on SEGV signals ..... : $WANT_VOSF
526 cebix 1.1 echo ESD sound support ................ : $WANT_ESD
527     echo GTK user interface ............... : $WANT_GTK
528     echo mon debugger support ............. : $WANT_MON
529     echo
530     echo "Configuration done. Now type \"make\"."