--- SheepShaver/src/Unix/configure.ac 2004/11/22 22:51:54 1.9 +++ SheepShaver/src/Unix/configure.ac 2005/02/20 18:26:39 1.17 @@ -31,7 +31,7 @@ AC_ARG_ENABLE(addressing, [case "$enableval" in real) WANT_ADDRESSING_MODE="real";; direct) WANT_ADDRESSING_MODE="direct";; - direct,0x*) WANT_ADDRESSING_MODE="direct"; NATMEM_OFFSET=`echo "$enableval" | sed -n '/direct,\(0[[xX]][[0-9A-Fa-f]]*\)/s//\1/p'`;; + 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'`;; esac], [WANT_ADDRESSING_MODE="real"] ) @@ -48,7 +48,8 @@ AC_PROG_CXX AC_PROG_MAKE_SET AC_PROG_INSTALL AC_PROG_EGREP -AC_CHECK_PROGS(FILE, [file false]) +AC_PATH_PROGS(FILE, [file false]) +AC_PATH_PROG(PERL, [perl]) dnl Check for PowerPC target CPU. HAVE_PPC=no @@ -105,6 +106,7 @@ if [[ "x$WANT_MON" = "xyes" ]]; then WANT_MON=no fi fi +AC_SUBST(MONSRCS) dnl Checks for libraries. AC_CHECK_LIB(posix4, sem_init) @@ -145,6 +147,8 @@ if [[ "x$WANT_SDL" = "xyes" ]]; then LIBS="$LIBS $sdl_libs" else WANT_SDL=no + WANT_SDL_VIDEO=no + WANT_SDL_AUDIO=no fi SDL_SUPPORT=`echo "$SDL_SUPPORT" | sed -e "s/^ //"` else @@ -152,7 +156,7 @@ else fi dnl We need X11, if not using SDL. -if [[ "x$WANT_SDL" = "xno" ]]; then +if [[ "x$WANT_SDL_VIDEO" != "xyes" ]]; then AC_PATH_XTRA if [[ "x$no_x" = "xyes" ]]; then AC_MSG_ERROR([You need X11 to run SheepShaver.]) @@ -165,7 +169,7 @@ fi dnl We need pthreads on non-PowerPC systems. Try libpthread first, then libc_r (FreeBSD), then PTL. HAVE_PTHREADS=yes case $EMULATED_PPC:$target_os in -no:linux*) +no:linux*|no:netbsd*) dnl We do have our own pthread_cancel() implementation AC_DEFINE(HAVE_PTHREAD_CANCEL, 1, [Define if you have the pthread_cancel function.]) ;; @@ -260,6 +264,7 @@ AC_CHECK_HEADERS(linux/if.h, [], [], [ #endif ]) AC_CHECK_HEADERS(linux/if_tun.h net/if.h net/if_tun.h) +AC_CHECK_HEADERS(fenv.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_BIGENDIAN @@ -301,6 +306,7 @@ AC_CHECK_FUNCS(sigaction signal) AC_CHECK_FUNCS(mmap mprotect munmap) AC_CHECK_FUNCS(vm_allocate vm_deallocate vm_protect) AC_CHECK_FUNCS(posix_memalign memalign valloc) +AC_CHECK_FUNCS(exp2f log2f exp2 log2 trunc) dnl Darwin seems to define mach_task_self() instead of task_self(). AC_CHECK_FUNCS(mach_task_self task_self) @@ -395,12 +401,17 @@ linux*) AUDIOSRC=audio_oss_esd.cpp SCSISRC=Linux/scsi_linux.cpp if [[ "x$EMULATED_PPC" = "xno" ]]; then - EXTRASYSSRCS="Linux/paranoia.cpp Linux/sheepthreads.c Linux/asm_linux.S" + EXTRASYSSRCS="Linux/paranoia.cpp Linux/sheepthreads.c ppc_asm.S" + fi + ;; +netbsd*) + if [[ "x$EMULATED_PPC" = "xno" ]]; then + EXTRASYSSRCS="NetBSD/paranoia.cpp NetBSD/sheepthreads.c ppc_asm.S" fi ;; darwin*) if [[ "x$EMULATED_PPC" = "xno" ]]; then - EXTRASYSSRCS="Darwin/paranoia.cpp Linux/asm_linux.S" + EXTRASYSSRCS="Darwin/paranoia.cpp ppc_asm.S" fi if [[ "x$ac_cv_framework_IOKit" = "xyes" ]]; then EXTRASYSSRCS="$EXTRASYSSRCS ../MacOSX/sys_darwin.cpp" @@ -444,7 +455,7 @@ if [[ "x$WANT_SDL_AUDIO" = "xyes" ]]; th AUDIOSRC="../SDL/audio_sdl.cpp" fi -SYSSRCS="$VIDEOSRCS $EXTFSSRC $SERIALSRC $ETHERSRC $SCSISRC $AUDIOSRC $SEMSRC $UISRCS $MONSRCS $EXTRASYSSRCS" +SYSSRCS="$VIDEOSRCS $EXTFSSRC $SERIALSRC $ETHERSRC $SCSISRC $AUDIOSRC $SEMSRC $UISRCS $EXTRASYSSRCS" dnl Define a macro that translates a yesno-variable into a C macro definition dnl to be put into the config.h file @@ -916,7 +927,10 @@ int main(void) memset(m, 0, ranges[[i]].size); vm_release(m, ranges[[i]].size); if (i == n_ranges - 1) { - printf("0x%08x\n", ofs); + if (sizeof(void *) == 8 && ofs > 0xffffffff) + printf("0x%lxul\n", ofs); + else + printf("0x%08x\n", ofs); return 0; } } @@ -1062,7 +1076,7 @@ if [[ "x$EMULATED_PPC" = "xyes" ]]; then AC_CHECK_HEADERS(mmintrin.h xmmintrin.h emmintrin.h) ;; esac - DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -finline-limit=10000" + DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -finline-limit=10000 -g0" if [[ "x$HAVE_GCC30" = "xyes" ]]; then DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -fno-reorder-blocks -fno-optimize-sibling-calls" fi @@ -1104,6 +1118,8 @@ if [[ "x$ac_cv_use_dyngen" = "xyes" ]]; ac_cv_have_static_data_exec=no ) ]) +else + ac_cv_use_dyngen=no fi AC_TRANSLATE_DEFINE(HAVE_STATIC_DATA_EXEC, "$ac_cv_have_static_data_exec", [Define if your system marks static data pages as executable.]) @@ -1113,6 +1129,8 @@ if [[ "x$WANT_JIT" = "xyes" ]]; then fi dnl Generate Makefile. +AC_SUBST(PERL) +AC_SUBST(USE_DYNGEN, [$ac_cv_use_dyngen]) AC_SUBST(DYNGENSRCS) AC_SUBST(DYNGEN_CC) AC_SUBST(DYNGEN_OP_FLAGS)