--- SheepShaver/src/Unix/configure.in 2004/06/24 15:37:25 1.26 +++ SheepShaver/src/Unix/configure.in 2004/06/27 22:12:52 1.30 @@ -15,12 +15,15 @@ AC_ARG_ENABLE(ppc-emulator, [ --enable- AC_ARG_ENABLE(xf86-dga, [ --enable-xf86-dga use the XFree86 DGA extension [default=yes]], [WANT_XF86_DGA=$enableval], [WANT_XF86_DGA=yes]) AC_ARG_ENABLE(xf86-vidmode, [ --enable-xf86-vidmode use the XFree86 VidMode extension [default=no]], [WANT_XF86_VIDMODE=$enableval], [WANT_XF86_VIDMODE=no]) AC_ARG_ENABLE(vosf, [ --enable-vosf enable video on SEGV signals [default=yes]], [WANT_VOSF=$enableval], [WANT_VOSF=yes]) -AC_ARG_ENABLE(sdl-video, [ --enable-sdl-video use SDL for video graphics [default=no]], [WANT_SDL_VIDEO=$enableval], [WANT_SDL_VIDEO=no]) AC_ARG_WITH(esd, [ --with-esd support ESD for sound under Linux/FreeBSD [default=yes]], [WANT_ESD=$withval], [WANT_ESD=yes]) AC_ARG_WITH(gtk, [ --with-gtk use GTK user interface [default=yes]], [WANT_GTK=$withval], [WANT_GTK=yes]) AC_ARG_WITH(mon, [ --with-mon use mon as debugger [default=yes]], [WANT_MON=$withval], [WANT_MON=yes]) AC_ARG_WITH(dgcc, [ --with-dgcc=COMPILER use C++ COMPILER to compile synthetic opcodes], [DYNGEN_CC=$withval]) +dnl SDL options. +AC_ARG_ENABLE(sdl-static, [ --enable-sdl-static use SDL static libraries for linking [default=no]], [WANT_SDL_STATIC=$enableval], [WANT_SDL_STATIC=no]) +AC_ARG_ENABLE(sdl-video, [ --enable-sdl-video use SDL for video graphics [default=no]], [WANT_SDL_VIDEO=$enableval], [WANT_SDL_VIDEO=no]) + dnl Checks for programs. AC_PROG_CC AC_PROG_CPP @@ -101,7 +104,11 @@ if [[ "x$WANT_SDL" = "xyes" ]]; then AC_PATH_PROG(sdl_config, "sdl-config") if [[ -n "$sdl_config" ]]; then sdl_cflags=`$sdl_config --cflags` - sdl_libs=`$sdl_config --libs` + if [[ "x$WANT_SDL_STATIC" = "xyes" ]]; then + sdl_libs=`$sdl_config --static-libs` + else + sdl_libs=`$sdl_config --libs` + fi CFLAGS="$CFLAGS $sdl_cflags" CXXFLAGS="$CXXFLAGS $sdl_cflags" LIBS="$LIBS $sdl_libs" @@ -245,7 +252,7 @@ if [[ "x$ac_cv_signal_sa_restorer" = "xy fi dnl Checks for library functions. -AC_CHECK_FUNCS(strdup cfmakeraw) +AC_CHECK_FUNCS(strdup strlcpy cfmakeraw) AC_CHECK_FUNCS(nanosleep) AC_CHECK_FUNCS(sigaction signal) AC_CHECK_FUNCS(mmap mprotect munmap) @@ -266,6 +273,28 @@ no:linux*) ;; esac +dnl AC_CHECK_FRAMEWORK($1=NAME, $2=INCLUDES) +AC_DEFUN(AC_CHECK_FRAMEWORK, [ + AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1])dnl + AC_CACHE_CHECK([whether compiler supports framework $1], + ac_Framework, [ + saved_LIBS="$LIBS" + LIBS="$LIBS -framework $1" + AC_TRY_LINK( + [$2], [int main(void) { return 0; }], + [AS_VAR_SET(ac_Framework, yes)], [AS_VAR_SET(ac_Framework, no); LIBS="$saved_LIBS"] + ) + ]) + AS_IF([test AS_VAR_GET(ac_Framework) = yes], + [AC_DEFINE(AS_TR_CPP(HAVE_FRAMEWORK_$1), 1, [Define if framework $1 is available.])] + ) + AS_VAR_POPDEF([ac_Framework])dnl +]) + +dnl Check for some MacOS X frameworks +AC_CHECK_FRAMEWORK(Carbon, [#include ]) +AC_CHECK_FRAMEWORK(IOKit, [#include ]) + dnl Select system-dependant sources. SERIALSRC=serial_unix.cpp ETHERSRC=../dummy/ether_dummy.cpp @@ -285,6 +314,9 @@ darwin*) if [[ "x$EMULATED_PPC" = "xno" ]]; then EXTRASYSSRCS="Darwin/paranoia.cpp Linux/asm_linux.S" fi + if [[ "x$ac_cv_framework_IOKit" = "xyes" ]]; then + EXTRASYSSRCS="$EXTRASYSSRCS ../MacOSX/sys_darwin.cpp" + fi ;; esac @@ -293,10 +325,18 @@ if [[ "x$WANT_SDL" = "xyes" ]]; then AC_DEFINE(USE_SDL, 1, [Define to enble SDL support]) fi if [[ "x$WANT_SDL_VIDEO" = "xyes" ]]; then - VIDEOSRCS="../SDL/video_sdl.cpp ../dummy/clip_dummy.cpp" + VIDEOSRCS="../SDL/video_sdl.cpp" AC_DEFINE(USE_SDL_VIDEO, 1, [Define to enable SDL video graphics support]) + KEYCODES="../SDL/keycodes" + if [[ "x$ac_cv_framework_Carbon" = "xyes" ]]; then + EXTRASYSSRCS="$EXTRASYSSRCS ../MacOSX/clip_macosx.cpp" + else + EXTRASYSSRCS="$EXTRASYSSRCS ../dummy/clip_dummy.cpp" + fi else - VIDEOSRCS="video_x.cpp clip_unix.cpp" + VIDEOSRCS="video_x.cpp" + KEYCODES="keycodes" + EXTRASYSSRCS="$EXTRASYSSRCS clip_unix.cpp" fi SYSSRCS="$VIDEOSRCS $SERIALSRC $ETHERSRC $SCSISRC $AUDIOSRC $SEMSRC $UISRCS $MONSRCS $EXTRASYSSRCS" @@ -680,14 +720,6 @@ dnl Can we do Video on SEGV Signals ? CAN_VOSF=no if [[ -n "$sigsegv_recovery" ]]; then CAN_VOSF=yes - case $target_os in - darwin*) - dnl Signal handlers in darwin are way too slow since the whole - dnl machine state (GPRs, FPRs, VRs) is forcibly saved. - dnl In other words, VOSF is slower than static window refreshes. - CAN_VOSF=no - ;; - esac fi dnl Enable VOSF screen updates with this feature is requested and feasible @@ -698,7 +730,7 @@ else fi dnl Platform specific binary postprocessor -BLESS=/bin/true +AC_PATH_PROG(BLESS, "true") if [[ "x$ac_cv_pagezero_hack" = "xyes" ]]; then BLESS=Darwin/lowmem LDFLAGS="$LDFLAGS -pagezero_size 0x3000" @@ -869,6 +901,7 @@ AC_SUBST(DYNGEN_OP_FLAGS) AC_SUBST(SYSSRCS) AC_SUBST(CPUSRCS) AC_SUBST(BLESS) +AC_SUBST(KEYCODES) AC_OUTPUT(Makefile) dnl Print summary.