17 |
|
dnl Options. |
18 |
|
AC_ARG_ENABLE(jit, [ --enable-jit enable JIT compiler [default=yes]], [WANT_JIT=$enableval], [WANT_JIT=yes]) |
19 |
|
AC_ARG_ENABLE(ppc-emulator, [ --enable-ppc-emulator use the selected PowerPC emulator [default=auto]], [WANT_EMULATED_PPC=$enableval], [WANT_EMULATED_PPC=auto]) |
20 |
+ |
AC_ARG_ENABLE(fbdev-dga, [ --enable-fbdev-dga use direct frame buffer access via /dev/fb0 [default=yes]], [WANT_FBDEV_DGA=$enableval], [WANT_FBDEV_DGA=yes]) |
21 |
|
AC_ARG_ENABLE(xf86-dga, [ --enable-xf86-dga use the XFree86 DGA extension [default=yes]], [WANT_XF86_DGA=$enableval], [WANT_XF86_DGA=yes]) |
22 |
< |
AC_ARG_ENABLE(xf86-vidmode, [ --enable-xf86-vidmode use the XFree86 VidMode extension [default=no]], [WANT_XF86_VIDMODE=$enableval], [WANT_XF86_VIDMODE=no]) |
22 |
> |
AC_ARG_ENABLE(xf86-vidmode, [ --enable-xf86-vidmode use the XFree86 VidMode extension [default=yes]], [WANT_XF86_VIDMODE=$enableval], [WANT_XF86_VIDMODE=yes]) |
23 |
|
AC_ARG_ENABLE(vosf, [ --enable-vosf enable video on SEGV signals [default=yes]], [WANT_VOSF=$enableval], [WANT_VOSF=yes]) |
24 |
|
AC_ARG_WITH(esd, [ --with-esd support ESD for sound under Linux/FreeBSD [default=yes]], [WANT_ESD=$withval], [WANT_ESD=yes]) |
25 |
< |
AC_ARG_WITH(gtk, [ --with-gtk use GTK user interface [default=yes]], [WANT_GTK=$withval], [WANT_GTK=yes]) |
25 |
> |
AC_ARG_WITH(gtk, [ --with-gtk use GTK user interface [default=yes]], |
26 |
> |
[case "$withval" in |
27 |
> |
gtk1) WANT_GTK="gtk";; |
28 |
> |
gtk|gtk2) WANT_GTK="$withval";; |
29 |
> |
yes) WANT_GTK="gtk2 gtk";; |
30 |
> |
*) WANT_GTK="no";; |
31 |
> |
esac], |
32 |
> |
[WANT_GTK="gtk2 gtk"]) |
33 |
|
AC_ARG_WITH(mon, [ --with-mon use mon as debugger [default=yes]], [WANT_MON=$withval], [WANT_MON=yes]) |
34 |
|
AC_ARG_WITH(dgcc, [ --with-dgcc=COMPILER use C++ COMPILER to compile synthetic opcodes], [DYNGEN_CC=$withval]) |
35 |
|
|
39 |
|
[case "$enableval" in |
40 |
|
real) WANT_ADDRESSING_MODE="real";; |
41 |
|
direct) WANT_ADDRESSING_MODE="direct";; |
42 |
< |
direct,0x*) WANT_ADDRESSING_MODE="direct"; NATMEM_OFFSET=`echo "$enableval" | sed -n '/direct,\(0[[xX]][[0-9A-Fa-f]]*\)/s//\1/p'`;; |
42 |
> |
direct,0x*) WANT_ADDRESSING_MODE="direct"; NATMEM_OFFSET=`echo "$enableval" | sed -n '/direct,\(0[[xX]][[0-9A-Fa-f]]*\([[UuLl]]\{1,2\}\)\?\)$/s//\1/p'`;; |
43 |
|
esac], |
44 |
|
[WANT_ADDRESSING_MODE="real"] |
45 |
|
) |
56 |
|
AC_PROG_MAKE_SET |
57 |
|
AC_PROG_INSTALL |
58 |
|
AC_PROG_EGREP |
59 |
< |
AC_CHECK_PROGS(FILE, [file false]) |
59 |
> |
AC_PATH_PROGS(FILE, [file false]) |
60 |
> |
AC_PATH_PROG(PERL, [perl]) |
61 |
|
|
62 |
|
dnl Check for PowerPC target CPU. |
63 |
|
HAVE_PPC=no |
114 |
|
WANT_MON=no |
115 |
|
fi |
116 |
|
fi |
117 |
+ |
AC_SUBST(MONSRCS) |
118 |
|
|
119 |
|
dnl Checks for libraries. |
120 |
|
AC_CHECK_LIB(posix4, sem_init) |
123 |
|
WANT_SDL=no |
124 |
|
if [[ "x$WANT_SDL_VIDEO" = "xyes" ]]; then |
125 |
|
WANT_SDL=yes |
126 |
+ |
WANT_FBDEV_DGA=no |
127 |
|
WANT_XF86_DGA=no |
128 |
|
WANT_XF86_VIDMODE=no |
129 |
|
WANT_FBDEV_DGA=no |
156 |
|
LIBS="$LIBS $sdl_libs" |
157 |
|
else |
158 |
|
WANT_SDL=no |
159 |
+ |
WANT_SDL_VIDEO=no |
160 |
+ |
WANT_SDL_AUDIO=no |
161 |
|
fi |
162 |
|
SDL_SUPPORT=`echo "$SDL_SUPPORT" | sed -e "s/^ //"` |
163 |
|
else |
165 |
|
fi |
166 |
|
|
167 |
|
dnl We need X11, if not using SDL. |
168 |
< |
if [[ "x$WANT_SDL" = "xno" ]]; then |
168 |
> |
if [[ "x$WANT_SDL_VIDEO" != "xyes" ]]; then |
169 |
|
AC_PATH_XTRA |
170 |
|
if [[ "x$no_x" = "xyes" ]]; then |
171 |
|
AC_MSG_ERROR([You need X11 to run SheepShaver.]) |
178 |
|
dnl We need pthreads on non-PowerPC systems. Try libpthread first, then libc_r (FreeBSD), then PTL. |
179 |
|
HAVE_PTHREADS=yes |
180 |
|
case $EMULATED_PPC:$target_os in |
181 |
< |
no:linux*) |
181 |
> |
no:linux*|no:netbsd*) |
182 |
|
dnl We do have our own pthread_cancel() implementation |
183 |
|
AC_DEFINE(HAVE_PTHREAD_CANCEL, 1, [Define if you have the pthread_cancel function.]) |
184 |
|
;; |
207 |
|
;; |
208 |
|
esac |
209 |
|
|
210 |
+ |
dnl We use FBDev DGA if possible. |
211 |
+ |
if [[ "x$WANT_FBDEV_DGA" = "xyes" ]]; then |
212 |
+ |
AC_CHECK_HEADER(linux/fb.h, [ |
213 |
+ |
AC_DEFINE(ENABLE_FBDEV_DGA, 1, [Define if using Linux fbdev extension.]) |
214 |
+ |
], [ |
215 |
+ |
AC_MSG_WARN([Could not find Linux FBDev extension, ignoring --enable-fbdev-dga.]) |
216 |
+ |
WANT_FBDEV_DGA=no |
217 |
+ |
]) |
218 |
+ |
fi |
219 |
+ |
|
220 |
|
dnl We use XFree86 DGA if possible. |
221 |
|
if [[ "x$WANT_XF86_DGA" = "xyes" ]]; then |
222 |
|
AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension, [ |
241 |
|
|
242 |
|
dnl We use GTK+ if possible. |
243 |
|
UISRCS=../dummy/prefs_editor_dummy.cpp |
244 |
< |
if [[ "x$WANT_GTK" = "xyes" ]]; then |
244 |
> |
case "x$WANT_GTK" in |
245 |
> |
xgtk2*) |
246 |
> |
AM_PATH_GTK_2_0(1.3.15, [ |
247 |
> |
AC_DEFINE(ENABLE_GTK, 1, [Define if using GTK.]) |
248 |
> |
CFLAGS="$CFLAGS $GTK_CFLAGS" |
249 |
> |
CXXFLAGS="$CXXFLAGS $GTK_CFLAGS" |
250 |
> |
LIBS="$LIBS $GTK_LIBS" |
251 |
> |
UISRCS=prefs_editor_gtk.cpp |
252 |
> |
WANT_GTK=gtk2 |
253 |
> |
], [ |
254 |
> |
case "x${WANT_GTK}x" in |
255 |
> |
*gtkx) |
256 |
> |
AC_MSG_WARN([Could not find GTK+ 2.0, trying with GTK+ 1.2.]) |
257 |
> |
WANT_GTK=gtk |
258 |
> |
;; |
259 |
> |
*) |
260 |
> |
AC_MSG_WARN([Could not find GTK+, disabling user interface.]) |
261 |
> |
WANT_GTK=no |
262 |
> |
;; |
263 |
> |
esac |
264 |
> |
]) |
265 |
> |
;; |
266 |
> |
esac |
267 |
> |
if [[ "x$WANT_GTK" = "xgtk" ]]; then |
268 |
|
AM_PATH_GTK(1.2.0, [ |
269 |
|
AC_DEFINE(ENABLE_GTK, 1, [Define if using GTK.]) |
270 |
|
CFLAGS="$CFLAGS $GTK_CFLAGS" |
306 |
|
#endif |
307 |
|
]) |
308 |
|
AC_CHECK_HEADERS(linux/if_tun.h net/if.h net/if_tun.h) |
309 |
+ |
AC_CHECK_HEADERS(fenv.h) |
310 |
|
|
311 |
|
dnl Checks for typedefs, structures, and compiler characteristics. |
312 |
|
AC_C_BIGENDIAN |
348 |
|
AC_CHECK_FUNCS(mmap mprotect munmap) |
349 |
|
AC_CHECK_FUNCS(vm_allocate vm_deallocate vm_protect) |
350 |
|
AC_CHECK_FUNCS(posix_memalign memalign valloc) |
351 |
+ |
AC_CHECK_FUNCS(exp2f log2f exp2 log2 trunc) |
352 |
|
|
353 |
|
dnl Darwin seems to define mach_task_self() instead of task_self(). |
354 |
|
AC_CHECK_FUNCS(mach_task_self task_self) |
360 |
|
;; |
361 |
|
*:*) |
362 |
|
AC_SEARCH_LIBS(clock_gettime, [rt posix4]) |
363 |
< |
AC_CHECK_FUNCS(clock_gettime) |
363 |
> |
AC_CHECK_FUNCS(clock_gettime clock_nanosleep) |
364 |
|
;; |
365 |
|
esac |
366 |
|
|
443 |
|
AUDIOSRC=audio_oss_esd.cpp |
444 |
|
SCSISRC=Linux/scsi_linux.cpp |
445 |
|
if [[ "x$EMULATED_PPC" = "xno" ]]; then |
446 |
< |
EXTRASYSSRCS="Linux/paranoia.cpp Linux/sheepthreads.c Linux/asm_linux.S" |
446 |
> |
EXTRASYSSRCS="Linux/paranoia.cpp Linux/sheepthreads.c ppc_asm.S" |
447 |
> |
fi |
448 |
> |
;; |
449 |
> |
netbsd*) |
450 |
> |
if [[ "x$EMULATED_PPC" = "xno" ]]; then |
451 |
> |
EXTRASYSSRCS="NetBSD/paranoia.cpp NetBSD/sheepthreads.c ppc_asm.S" |
452 |
|
fi |
453 |
|
;; |
454 |
|
darwin*) |
455 |
|
if [[ "x$EMULATED_PPC" = "xno" ]]; then |
456 |
< |
EXTRASYSSRCS="Darwin/paranoia.cpp Linux/asm_linux.S" |
456 |
> |
EXTRASYSSRCS="Darwin/paranoia.cpp ppc_asm.S" |
457 |
|
fi |
458 |
|
if [[ "x$ac_cv_framework_IOKit" = "xyes" ]]; then |
459 |
|
EXTRASYSSRCS="$EXTRASYSSRCS ../MacOSX/sys_darwin.cpp" |
497 |
|
AUDIOSRC="../SDL/audio_sdl.cpp" |
498 |
|
fi |
499 |
|
|
500 |
< |
SYSSRCS="$VIDEOSRCS $EXTFSSRC $SERIALSRC $ETHERSRC $SCSISRC $AUDIOSRC $SEMSRC $UISRCS $MONSRCS $EXTRASYSSRCS" |
500 |
> |
SYSSRCS="$VIDEOSRCS $EXTFSSRC $SERIALSRC $ETHERSRC $SCSISRC $AUDIOSRC $SEMSRC $UISRCS $EXTRASYSSRCS" |
501 |
|
|
502 |
|
dnl Define a macro that translates a yesno-variable into a C macro definition |
503 |
|
dnl to be put into the config.h file |
969 |
|
memset(m, 0, ranges[[i]].size); |
970 |
|
vm_release(m, ranges[[i]].size); |
971 |
|
if (i == n_ranges - 1) { |
972 |
< |
printf("0x%08x\n", ofs); |
972 |
> |
if (sizeof(void *) == 8 && ofs > 0xffffffff) |
973 |
> |
printf("0x%lxul\n", ofs); |
974 |
> |
else |
975 |
> |
printf("0x%08x\n", ofs); |
976 |
|
return 0; |
977 |
|
} |
978 |
|
} |
1105 |
|
else |
1106 |
|
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -malign-functions=0" |
1107 |
|
fi |
1052 |
– |
saved_CPPFLAGS=$CPPFLAGS |
1053 |
– |
CPPFLAGS="$CPPFLAGS -mmmx" |
1054 |
– |
AC_CHECK_HEADERS(mmintrin.h, [DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -mmmx"]) |
1055 |
– |
CPPFLAGS="$CPPFLAGS -msse" |
1056 |
– |
AC_CHECK_HEADERS(xmmintrin.h, [DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -msse"]) |
1057 |
– |
CPPFLAGS="$CPPFLAGS -msse2" |
1058 |
– |
AC_CHECK_HEADERS(emmintrin.h, [DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -msse2"]) |
1059 |
– |
CPPFLAGS=$saved_CPPFLAGS |
1060 |
– |
;; |
1061 |
– |
x86_64) |
1062 |
– |
AC_CHECK_HEADERS(mmintrin.h xmmintrin.h emmintrin.h) |
1108 |
|
;; |
1109 |
|
esac |
1110 |
< |
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -finline-limit=10000" |
1110 |
> |
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -finline-limit=10000 -g0" |
1111 |
|
if [[ "x$HAVE_GCC30" = "xyes" ]]; then |
1112 |
|
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -fno-reorder-blocks -fno-optimize-sibling-calls" |
1113 |
|
fi |
1149 |
|
ac_cv_have_static_data_exec=no |
1150 |
|
) |
1151 |
|
]) |
1152 |
+ |
else |
1153 |
+ |
ac_cv_use_dyngen=no |
1154 |
|
fi |
1155 |
|
AC_TRANSLATE_DEFINE(HAVE_STATIC_DATA_EXEC, "$ac_cv_have_static_data_exec", |
1156 |
|
[Define if your system marks static data pages as executable.]) |
1160 |
|
fi |
1161 |
|
|
1162 |
|
dnl Generate Makefile. |
1163 |
+ |
AC_SUBST(PERL) |
1164 |
+ |
AC_SUBST(USE_DYNGEN, [$ac_cv_use_dyngen]) |
1165 |
|
AC_SUBST(DYNGENSRCS) |
1166 |
|
AC_SUBST(DYNGEN_CC) |
1167 |
|
AC_SUBST(DYNGEN_OP_FLAGS) |
1179 |
|
echo SheepShaver configuration summary: |
1180 |
|
echo |
1181 |
|
echo SDL support ...................... : $SDL_SUPPORT |
1182 |
+ |
echo FBDev DGA support ................ : $WANT_FBDEV_DGA |
1183 |
|
echo XFree86 DGA support .............. : $WANT_XF86_DGA |
1184 |
|
echo XFree86 VidMode support .......... : $WANT_XF86_VIDMODE |
1185 |
|
echo Using PowerPC emulator ........... : $EMULATED_PPC |