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 |
155 |
|
LIBS="$LIBS $sdl_libs" |
156 |
|
else |
157 |
|
WANT_SDL=no |
158 |
+ |
WANT_SDL_VIDEO=no |
159 |
+ |
WANT_SDL_AUDIO=no |
160 |
|
fi |
161 |
|
SDL_SUPPORT=`echo "$SDL_SUPPORT" | sed -e "s/^ //"` |
162 |
|
else |
164 |
|
fi |
165 |
|
|
166 |
|
dnl We need X11, if not using SDL. |
167 |
< |
if [[ "x$WANT_SDL" = "xno" ]]; then |
167 |
> |
if [[ "x$WANT_SDL_VIDEO" != "xyes" ]]; then |
168 |
|
AC_PATH_XTRA |
169 |
|
if [[ "x$no_x" = "xyes" ]]; then |
170 |
|
AC_MSG_ERROR([You need X11 to run SheepShaver.]) |
177 |
|
dnl We need pthreads on non-PowerPC systems. Try libpthread first, then libc_r (FreeBSD), then PTL. |
178 |
|
HAVE_PTHREADS=yes |
179 |
|
case $EMULATED_PPC:$target_os in |
180 |
< |
no:linux*) |
180 |
> |
no:linux*|no:netbsd*) |
181 |
|
dnl We do have our own pthread_cancel() implementation |
182 |
|
AC_DEFINE(HAVE_PTHREAD_CANCEL, 1, [Define if you have the pthread_cancel function.]) |
183 |
|
;; |
206 |
|
;; |
207 |
|
esac |
208 |
|
|
209 |
+ |
dnl We use FBDev DGA if possible. |
210 |
+ |
if [[ "x$WANT_FBDEV_DGA" = "xyes" ]]; then |
211 |
+ |
AC_CHECK_HEADER(linux/fb.h, [ |
212 |
+ |
AC_DEFINE(ENABLE_FBDEV_DGA, 1, [Define if using Linux fbdev extension.]) |
213 |
+ |
], [ |
214 |
+ |
AC_MSG_WARN([Could not find Linux FBDev extension, ignoring --enable-fbdev-dga.]) |
215 |
+ |
WANT_FBDEV_DGA=no |
216 |
+ |
]) |
217 |
+ |
fi |
218 |
+ |
|
219 |
|
dnl We use XFree86 DGA if possible. |
220 |
|
if [[ "x$WANT_XF86_DGA" = "xyes" ]]; then |
221 |
|
AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension, [ |
240 |
|
|
241 |
|
dnl We use GTK+ if possible. |
242 |
|
UISRCS=../dummy/prefs_editor_dummy.cpp |
243 |
< |
if [[ "x$WANT_GTK" = "xyes" ]]; then |
243 |
> |
case "x$WANT_GTK" in |
244 |
> |
xgtk2*) |
245 |
> |
AM_PATH_GTK_2_0(1.3.15, [ |
246 |
> |
AC_DEFINE(ENABLE_GTK, 1, [Define if using GTK.]) |
247 |
> |
CFLAGS="$CFLAGS $GTK_CFLAGS" |
248 |
> |
CXXFLAGS="$CXXFLAGS $GTK_CFLAGS" |
249 |
> |
LIBS="$LIBS $GTK_LIBS" |
250 |
> |
UISRCS=prefs_editor_gtk.cpp |
251 |
> |
WANT_GTK=gtk2 |
252 |
> |
], [ |
253 |
> |
case "x${WANT_GTK}x" in |
254 |
> |
*gtkx) |
255 |
> |
AC_MSG_WARN([Could not find GTK+ 2.0, trying with GTK+ 1.2.]) |
256 |
> |
WANT_GTK=gtk |
257 |
> |
;; |
258 |
> |
*) |
259 |
> |
AC_MSG_WARN([Could not find GTK+, disabling user interface.]) |
260 |
> |
WANT_GTK=no |
261 |
> |
;; |
262 |
> |
esac |
263 |
> |
]) |
264 |
> |
;; |
265 |
> |
esac |
266 |
> |
if [[ "x$WANT_GTK" = "xgtk" ]]; then |
267 |
|
AM_PATH_GTK(1.2.0, [ |
268 |
|
AC_DEFINE(ENABLE_GTK, 1, [Define if using GTK.]) |
269 |
|
CFLAGS="$CFLAGS $GTK_CFLAGS" |
347 |
|
AC_CHECK_FUNCS(mmap mprotect munmap) |
348 |
|
AC_CHECK_FUNCS(vm_allocate vm_deallocate vm_protect) |
349 |
|
AC_CHECK_FUNCS(posix_memalign memalign valloc) |
350 |
+ |
AC_CHECK_FUNCS(exp2f log2f exp2 log2 trunc) |
351 |
|
|
352 |
|
dnl Darwin seems to define mach_task_self() instead of task_self(). |
353 |
|
AC_CHECK_FUNCS(mach_task_self task_self) |
359 |
|
;; |
360 |
|
*:*) |
361 |
|
AC_SEARCH_LIBS(clock_gettime, [rt posix4]) |
362 |
< |
AC_CHECK_FUNCS(clock_gettime) |
362 |
> |
AC_CHECK_FUNCS(clock_gettime clock_nanosleep) |
363 |
|
;; |
364 |
|
esac |
365 |
|
|
442 |
|
AUDIOSRC=audio_oss_esd.cpp |
443 |
|
SCSISRC=Linux/scsi_linux.cpp |
444 |
|
if [[ "x$EMULATED_PPC" = "xno" ]]; then |
445 |
< |
EXTRASYSSRCS="Linux/paranoia.cpp Linux/sheepthreads.c Linux/asm_linux.S" |
445 |
> |
EXTRASYSSRCS="Linux/paranoia.cpp Linux/sheepthreads.c ppc_asm.S" |
446 |
> |
fi |
447 |
> |
;; |
448 |
> |
netbsd*) |
449 |
> |
if [[ "x$EMULATED_PPC" = "xno" ]]; then |
450 |
> |
EXTRASYSSRCS="NetBSD/paranoia.cpp NetBSD/sheepthreads.c ppc_asm.S" |
451 |
|
fi |
452 |
|
;; |
453 |
|
darwin*) |
454 |
|
if [[ "x$EMULATED_PPC" = "xno" ]]; then |
455 |
< |
EXTRASYSSRCS="Darwin/paranoia.cpp Linux/asm_linux.S" |
455 |
> |
EXTRASYSSRCS="Darwin/paranoia.cpp ppc_asm.S" |
456 |
|
fi |
457 |
|
if [[ "x$ac_cv_framework_IOKit" = "xyes" ]]; then |
458 |
|
EXTRASYSSRCS="$EXTRASYSSRCS ../MacOSX/sys_darwin.cpp" |
968 |
|
memset(m, 0, ranges[[i]].size); |
969 |
|
vm_release(m, ranges[[i]].size); |
970 |
|
if (i == n_ranges - 1) { |
971 |
< |
printf("0x%08x\n", ofs); |
971 |
> |
if (sizeof(void *) == 8 && ofs > 0xffffffff) |
972 |
> |
printf("0x%lxul\n", ofs); |
973 |
> |
else |
974 |
> |
printf("0x%08x\n", ofs); |
975 |
|
return 0; |
976 |
|
} |
977 |
|
} |
1033 |
|
AC_MSG_RESULT($HAVE_ICC) |
1034 |
|
|
1035 |
|
dnl Determine the generated object format |
1036 |
< |
AC_CACHE_CHECK([whether the compiler can generate ELF objects], |
1036 |
> |
AC_CACHE_CHECK([the format of compiler generated objects], |
1037 |
|
ac_cv_object_format, [ |
1038 |
|
echo 'int i;' > conftest.$ac_ext |
1039 |
|
ac_cv_object_format=no |
1042 |
|
*"ELF"*) |
1043 |
|
ac_cv_object_format=elf |
1044 |
|
;; |
1045 |
+ |
*"Mach-O"*) |
1046 |
+ |
ac_cv_object_format=mach |
1047 |
+ |
;; |
1048 |
|
*) |
1049 |
|
ac_cv_object_format=unknown |
1050 |
|
;; |
1077 |
|
i?86:elf) |
1078 |
|
ac_cv_use_dyngen=yes |
1079 |
|
;; |
1080 |
+ |
powerpc:mach) |
1081 |
+ |
ac_cv_use_dyngen=yes |
1082 |
+ |
;; |
1083 |
|
*:*) |
1084 |
|
ac_cv_use_dyngen=no |
1085 |
|
;; |
1105 |
|
case $host_cpu in |
1106 |
|
i?86) |
1107 |
|
DYNGEN_OP_FLAGS="-fomit-frame-pointer -mpreferred-stack-boundary=2" |
1049 |
– |
if [[ "x$HAVE_GCC30" = "xyes" ]]; then |
1050 |
– |
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -falign-functions=0" |
1051 |
– |
else |
1052 |
– |
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -malign-functions=0" |
1053 |
– |
fi |
1054 |
– |
saved_CPPFLAGS=$CPPFLAGS |
1055 |
– |
CPPFLAGS="$CPPFLAGS -mmmx" |
1056 |
– |
AC_CHECK_HEADERS(mmintrin.h, [DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -mmmx"]) |
1057 |
– |
CPPFLAGS="$CPPFLAGS -msse" |
1058 |
– |
AC_CHECK_HEADERS(xmmintrin.h, [DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -msse"]) |
1059 |
– |
CPPFLAGS="$CPPFLAGS -msse2" |
1060 |
– |
AC_CHECK_HEADERS(emmintrin.h, [DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -msse2"]) |
1061 |
– |
CPPFLAGS=$saved_CPPFLAGS |
1108 |
|
;; |
1109 |
< |
x86_64) |
1110 |
< |
AC_CHECK_HEADERS(mmintrin.h xmmintrin.h emmintrin.h) |
1109 |
> |
powerpc) |
1110 |
> |
if [[ "x$ac_cv_object_format" = "xmach" ]]; then |
1111 |
> |
DYNGEN_OP_FLAGS="-mdynamic-no-pic" |
1112 |
> |
fi |
1113 |
|
;; |
1114 |
|
esac |
1115 |
< |
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -finline-limit=10000" |
1115 |
> |
if [[ "x$HAVE_GCC30" = "xyes" ]]; then |
1116 |
> |
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -falign-functions=0" |
1117 |
> |
else |
1118 |
> |
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -malign-functions=0" |
1119 |
> |
fi |
1120 |
> |
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -finline-limit=10000 -fno-exceptions -g0" |
1121 |
|
if [[ "x$HAVE_GCC30" = "xyes" ]]; then |
1122 |
|
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -fno-reorder-blocks -fno-optimize-sibling-calls" |
1123 |
|
fi |
1159 |
|
ac_cv_have_static_data_exec=no |
1160 |
|
) |
1161 |
|
]) |
1162 |
+ |
else |
1163 |
+ |
ac_cv_use_dyngen=no |
1164 |
|
fi |
1165 |
|
AC_TRANSLATE_DEFINE(HAVE_STATIC_DATA_EXEC, "$ac_cv_have_static_data_exec", |
1166 |
|
[Define if your system marks static data pages as executable.]) |
1170 |
|
fi |
1171 |
|
|
1172 |
|
dnl Generate Makefile. |
1173 |
+ |
AC_SUBST(PERL) |
1174 |
+ |
AC_SUBST(USE_DYNGEN, [$ac_cv_use_dyngen]) |
1175 |
|
AC_SUBST(DYNGENSRCS) |
1176 |
|
AC_SUBST(DYNGEN_CC) |
1177 |
|
AC_SUBST(DYNGEN_OP_FLAGS) |
1189 |
|
echo SheepShaver configuration summary: |
1190 |
|
echo |
1191 |
|
echo SDL support ...................... : $SDL_SUPPORT |
1192 |
+ |
echo FBDev DGA support ................ : $WANT_FBDEV_DGA |
1193 |
|
echo XFree86 DGA support .............. : $WANT_XF86_DGA |
1194 |
|
echo XFree86 VidMode support .......... : $WANT_XF86_VIDMODE |
1195 |
|
echo Using PowerPC emulator ........... : $EMULATED_PPC |