ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/SheepShaver/src/Unix/configure.ac
(Generate patch)

Comparing SheepShaver/src/Unix/configure.ac (file contents):
Revision 1.8 by gbeauche, 2004-11-13T14:09:15Z vs.
Revision 1.20 by gbeauche, 2005-03-19T09:59:30Z

# Line 21 | Line 21 | AC_ARG_ENABLE(xf86-dga,     [  --enable-
21   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(vosf,         [  --enable-vosf           enable video on SEGV signals [default=yes]], [WANT_VOSF=$enableval], [WANT_VOSF=yes])
23   AC_ARG_WITH(esd,            [  --with-esd              support ESD for sound under Linux/FreeBSD [default=yes]], [WANT_ESD=$withval], [WANT_ESD=yes])
24 < AC_ARG_WITH(gtk,            [  --with-gtk              use GTK user interface [default=yes]], [WANT_GTK=$withval], [WANT_GTK=yes])
24 > AC_ARG_WITH(gtk,            [  --with-gtk              use GTK user interface [default=yes]],
25 >  [case "$withval" in
26 >   gtk1)      WANT_GTK="gtk";;
27 >   gtk|gtk2)  WANT_GTK="$withval";;
28 >   yes)       WANT_GTK="gtk2 gtk";;
29 >   *)         WANT_GTK="no";;
30 >   esac],
31 >  [WANT_GTK="gtk2 gtk"])
32   AC_ARG_WITH(mon,            [  --with-mon              use mon as debugger [default=yes]], [WANT_MON=$withval], [WANT_MON=yes])
33   AC_ARG_WITH(dgcc,           [  --with-dgcc=COMPILER    use C++ COMPILER to compile synthetic opcodes], [DYNGEN_CC=$withval])
34  
# Line 31 | Line 38 | AC_ARG_ENABLE(addressing,
38    [case "$enableval" in
39     real)        WANT_ADDRESSING_MODE="real";;
40     direct)      WANT_ADDRESSING_MODE="direct";;
41 <   direct,0x*)  WANT_ADDRESSING_MODE="direct"; NATMEM_OFFSET=`echo "$enableval" | sed -n '/direct,\(0[[xX]][[0-9A-Fa-f]]*\)/s//\1/p'`;;
41 >   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'`;;
42     esac],
43    [WANT_ADDRESSING_MODE="real"]
44   )
# Line 48 | Line 55 | AC_PROG_CXX
55   AC_PROG_MAKE_SET
56   AC_PROG_INSTALL
57   AC_PROG_EGREP
58 + AC_PATH_PROGS(FILE, [file false])
59 + AC_PATH_PROG(PERL, [perl])
60  
61   dnl Check for PowerPC target CPU.
62   HAVE_PPC=no
# Line 104 | Line 113 | if [[ "x$WANT_MON" = "xyes" ]]; then
113      WANT_MON=no
114    fi
115   fi
116 + AC_SUBST(MONSRCS)
117  
118   dnl Checks for libraries.
119   AC_CHECK_LIB(posix4, sem_init)
# Line 124 | Line 134 | fi
134   if [[ "x$WANT_SDL" = "xyes" ]]; then
135    AC_PATH_PROG(sdl_config, "sdl-config")
136    if [[ -n "$sdl_config" ]]; then
137 <    sdl_cflags=`$sdl_config --cflags`
138 <    if [[ "x$WANT_SDL_STATIC" = "xyes" ]]; then
139 <      sdl_libs=`$sdl_config --static-libs`
140 <    else
141 <      sdl_libs=`$sdl_config --libs`
142 <    fi
137 >    case $target_os in
138 >    # Special treatment for Cygwin so that we can still use the POSIX layer
139 >    *cygwin*)
140 >      sdl_cflags="-I`$sdl_config --prefix`/include/SDL"
141 >      sdl_libs="-L`$sdl_config --exec-prefix`/lib -lSDL"
142 >      ;;
143 >    *)
144 >      sdl_cflags=`$sdl_config --cflags`
145 >      if [[ "x$WANT_SDL_STATIC" = "xyes" ]]; then
146 >        sdl_libs=`$sdl_config --static-libs`
147 >      else
148 >        sdl_libs=`$sdl_config --libs`
149 >      fi
150 >      ;;
151 >    esac
152      CFLAGS="$CFLAGS $sdl_cflags"
153      CXXFLAGS="$CXXFLAGS $sdl_cflags"
154      LIBS="$LIBS $sdl_libs"
155    else
156      WANT_SDL=no
157 +    WANT_SDL_VIDEO=no
158 +    WANT_SDL_AUDIO=no
159    fi
160    SDL_SUPPORT=`echo "$SDL_SUPPORT" | sed -e "s/^ //"`
161   else
# Line 142 | Line 163 | else
163   fi
164  
165   dnl We need X11, if not using SDL.
166 < if [[ "x$WANT_SDL" = "xno" ]]; then
166 > if [[ "x$WANT_SDL_VIDEO" != "xyes" ]]; then
167    AC_PATH_XTRA
168    if [[ "x$no_x" = "xyes" ]]; then
169      AC_MSG_ERROR([You need X11 to run SheepShaver.])
# Line 155 | Line 176 | fi
176   dnl We need pthreads on non-PowerPC systems. Try libpthread first, then libc_r (FreeBSD), then PTL.
177   HAVE_PTHREADS=yes
178   case $EMULATED_PPC:$target_os in
179 < no:linux*)
179 > no:linux*|no:netbsd*)
180    dnl We do have our own pthread_cancel() implementation
181    AC_DEFINE(HAVE_PTHREAD_CANCEL, 1, [Define if you have the pthread_cancel function.])
182    ;;
# Line 208 | Line 229 | fi
229  
230   dnl We use GTK+ if possible.
231   UISRCS=../dummy/prefs_editor_dummy.cpp
232 < if [[ "x$WANT_GTK" = "xyes" ]]; then
232 > case "x$WANT_GTK" in
233 > xgtk2*)
234 >  AM_PATH_GTK_2_0(1.3.15, [
235 >    AC_DEFINE(ENABLE_GTK, 1, [Define if using GTK.])
236 >    CFLAGS="$CFLAGS $GTK_CFLAGS"
237 >    CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
238 >    LIBS="$LIBS $GTK_LIBS"
239 >    UISRCS=prefs_editor_gtk.cpp
240 >    WANT_GTK=gtk2
241 >  ], [
242 >    case "x${WANT_GTK}x" in
243 >    *gtkx)
244 >      AC_MSG_WARN([Could not find GTK+ 2.0, trying with GTK+ 1.2.])
245 >      WANT_GTK=gtk
246 >      ;;
247 >    *)
248 >      AC_MSG_WARN([Could not find GTK+, disabling user interface.])
249 >      WANT_GTK=no
250 >      ;;
251 >    esac
252 >  ])
253 >  ;;
254 > esac
255 > if [[ "x$WANT_GTK" = "xgtk" ]]; then
256    AM_PATH_GTK(1.2.0, [
257      AC_DEFINE(ENABLE_GTK, 1, [Define if using GTK.])
258      CFLAGS="$CFLAGS $GTK_CFLAGS"
# Line 240 | Line 284 | AC_SYS_LARGEFILE
284   dnl Checks for header files.
285   AC_HEADER_STDC
286   AC_HEADER_SYS_WAIT
287 + AC_CHECK_HEADERS(malloc.h)
288   AC_CHECK_HEADERS(mach/vm_map.h mach/mach_init.h sys/mman.h)
289   AC_CHECK_HEADERS(sys/time.h sys/times.h sys/socket.h)
290   AC_CHECK_HEADERS(unistd.h fcntl.h byteswap.h dirent.h)
# Line 249 | Line 294 | AC_CHECK_HEADERS(linux/if.h, [], [], [
294   #endif
295   ])
296   AC_CHECK_HEADERS(linux/if_tun.h net/if.h net/if_tun.h)
297 + AC_CHECK_HEADERS(fenv.h)
298  
299   dnl Checks for typedefs, structures, and compiler characteristics.
300   AC_C_BIGENDIAN
# Line 290 | Line 336 | AC_CHECK_FUNCS(sigaction signal)
336   AC_CHECK_FUNCS(mmap mprotect munmap)
337   AC_CHECK_FUNCS(vm_allocate vm_deallocate vm_protect)
338   AC_CHECK_FUNCS(posix_memalign memalign valloc)
339 + AC_CHECK_FUNCS(exp2f log2f exp2 log2 trunc)
340  
341   dnl Darwin seems to define mach_task_self() instead of task_self().
342   AC_CHECK_FUNCS(mach_task_self task_self)
# Line 301 | Line 348 | no:linux*)
348    ;;
349   *:*)
350    AC_SEARCH_LIBS(clock_gettime, [rt posix4])
351 <  AC_CHECK_FUNCS(clock_gettime)
351 >  AC_CHECK_FUNCS(clock_gettime clock_nanosleep)
352    ;;
353   esac
354  
355 + dnl Check for headers and functions related to pty support (sshpty.c)
356 + dnl From openssh-3.2.2p1 configure.ac
357 + AC_CHECK_HEADERS(strings.h login.h sys/bsdtty.h sys/stat.h util.h pty.h)
358 + AC_CHECK_FUNCS(_getpty vhangup strlcpy)
359 +
360 + case "$host" in
361 + *-*-hpux10.26)
362 +        disable_ptmx_check=yes
363 +        ;;
364 + *-*-linux*)
365 +        no_dev_ptmx=1
366 +        ;;
367 + mips-sony-bsd|mips-sony-newsos4)
368 +        AC_DEFINE(HAVE_NEWS4, 1, [Define if you are on NEWS-OS (additions from openssh-3.2.2p1, for sshpty.c).])
369 +        ;;
370 + *-*-sco3.2v4*)
371 +        no_dev_ptmx=1
372 +        ;;
373 + *-*-sco3.2v5*)
374 +        no_dev_ptmx=1
375 +        ;;
376 + *-*-cygwin*)
377 +        no_dev_ptmx=1
378 +        ;;
379 + esac
380 +
381 + if test -z "$no_dev_ptmx" ; then
382 +        if test "x$disable_ptmx_check" != "xyes" ; then
383 +                AC_CHECK_FILE([/dev/ptmx],
384 +                        [
385 +                                AC_DEFINE_UNQUOTED(HAVE_DEV_PTMX, 1, [Define if you have /dev/ptmx.])
386 +                                have_dev_ptmx=1
387 +                        ]
388 +                )
389 +        fi
390 + fi
391 + AC_CHECK_FILE([/dev/ptc],
392 +        [
393 +                AC_DEFINE_UNQUOTED(HAVE_DEV_PTS_AND_PTC, 1, [Define if you have /dev/ptc.])
394 +                have_dev_ptc=1
395 +        ]
396 + )
397 + dnl (end of code from openssh-3.2.2p1 configure.ac)
398 +
399   dnl AC_CHECK_FRAMEWORK($1=NAME, $2=INCLUDES)
400   AC_DEFUN(AC_CHECK_FRAMEWORK, [
401    AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1])dnl
# Line 340 | Line 431 | linux*)
431    AUDIOSRC=audio_oss_esd.cpp
432    SCSISRC=Linux/scsi_linux.cpp
433    if [[ "x$EMULATED_PPC" = "xno" ]]; then
434 <    EXTRASYSSRCS="Linux/paranoia.cpp Linux/sheepthreads.c Linux/asm_linux.S"
434 >    EXTRASYSSRCS="Linux/paranoia.cpp Linux/sheepthreads.c ppc_asm.S"
435 >  fi
436 >  ;;
437 > netbsd*)
438 >  if [[ "x$EMULATED_PPC" = "xno" ]]; then
439 >    EXTRASYSSRCS="NetBSD/paranoia.cpp NetBSD/sheepthreads.c ppc_asm.S"
440    fi
441    ;;
442   darwin*)
443    if [[ "x$EMULATED_PPC" = "xno" ]]; then
444 <    EXTRASYSSRCS="Darwin/paranoia.cpp Linux/asm_linux.S"
444 >    EXTRASYSSRCS="Darwin/paranoia.cpp ppc_asm.S"
445    fi
446    if [[ "x$ac_cv_framework_IOKit" = "xyes" ]]; then
447      EXTRASYSSRCS="$EXTRASYSSRCS ../MacOSX/sys_darwin.cpp"
# Line 354 | Line 450 | darwin*)
450      EXTFSSRC=../MacOSX/extfs_macosx.mm
451    fi
452    ;;
453 + cygwin*)
454 +  SERIALSRC="../dummy/serial_dummy.cpp"
455 +  ;;
456   esac
457  
458   dnl SDL overrides
# Line 367 | Line 466 | if [[ "x$WANT_SDL_VIDEO" = "xyes" ]]; th
466    if [[ "x$ac_cv_framework_Carbon" = "xyes" ]]; then
467      EXTRASYSSRCS="$EXTRASYSSRCS ../MacOSX/clip_macosx.cpp"
468    else
469 <    EXTRASYSSRCS="$EXTRASYSSRCS ../dummy/clip_dummy.cpp"
469 >    case "$target_os" in
470 >    cygwin*)
471 >      EXTRASYSSRCS="$EXTRASYSSRCS ../Windows/clip_windows.cpp"
472 >      ;;
473 >    *)
474 >      EXTRASYSSRCS="$EXTRASYSSRCS ../dummy/clip_dummy.cpp"
475 >      ;;
476 >    esac
477    fi
478   else
479    VIDEOSRCS="video_x.cpp"
# Line 379 | Line 485 | if [[ "x$WANT_SDL_AUDIO" = "xyes" ]]; th
485    AUDIOSRC="../SDL/audio_sdl.cpp"
486   fi
487  
488 < SYSSRCS="$VIDEOSRCS $EXTFSSRC $SERIALSRC $ETHERSRC $SCSISRC $AUDIOSRC $SEMSRC $UISRCS $MONSRCS $EXTRASYSSRCS"
488 > SYSSRCS="$VIDEOSRCS $EXTFSSRC $SERIALSRC $ETHERSRC $SCSISRC $AUDIOSRC $SEMSRC $UISRCS $EXTRASYSSRCS"
489  
490   dnl Define a macro that translates a yesno-variable into a C macro definition
491   dnl to be put into the config.h file
# Line 683 | Line 789 | fi
789   AC_TRANSLATE_DEFINE(HAVE_MACH_EXCEPTIONS, "$ac_cv_have_mach_exceptions",
790    [Define if your system supports Mach exceptions.])
791  
792 + dnl Check if Windows exceptions are supported.
793 + AC_CACHE_CHECK([whether your system supports Windows exceptions],
794 +  ac_cv_have_win32_exceptions, [
795 +  AC_LANG_SAVE
796 +  AC_LANG_CPLUSPLUS
797 +  AC_TRY_RUN([
798 +    #define HAVE_WIN32_EXCEPTIONS 1
799 +    #define CONFIGURE_TEST_SIGSEGV_RECOVERY
800 +    #include "vm_alloc.cpp"
801 +    #include "sigsegv.cpp"
802 +  ], [
803 +  sigsegv_recovery=win32
804 +  ac_cv_have_win32_exceptions=yes
805 +  ],
806 +  ac_cv_have_win32_exceptions=no,
807 +  dnl When cross-compiling, do not assume anything.
808 +  ac_cv_have_win32_exceptions=no
809 +  )
810 +  AC_LANG_RESTORE
811 +  ]
812 + )
813 + AC_TRANSLATE_DEFINE(HAVE_WIN32_EXCEPTIONS, "$ac_cv_have_win32_exceptions",
814 +  [Define if your system supports Windows exceptions.])
815 +
816   dnl Otherwise, check if extended signals are supported.
817   if [[ -z "$sigsegv_recovery" ]]; then
818    AC_CACHE_CHECK([whether your system supports extended signal handlers],
# Line 771 | Line 901 | fi
901  
902   dnl Check addressing mode to use
903   AC_MSG_CHECKING([for addressing mode to use])
904 + case "$os_target" in
905 + cygwin*)
906 +  WANT_ADDRESSING_MODE="direct,cygwin-hack"
907 +  NATMEM_OFFSET=
908 +  ;;
909 + esac
910   if [[ "$EMULATED_PPC" != "yes" ]]; then
911    if [[ "$WANT_ADDRESSING_MODE" != "real" ]]; then
912      AC_MSG_WARN([Running in native PowerPC mode, force use of Real Addressing.])
# Line 821 | Line 957 | int main(void)
957                  memset(m, 0, ranges[[i]].size);
958                  vm_release(m, ranges[[i]].size);
959                  if (i == n_ranges - 1) {
960 <                        printf("0x%08x\n", ofs);
960 >                        if (sizeof(void *) == 8 && ofs > 0xffffffff)
961 >                                printf("0x%lxul\n", ofs);
962 >                        else
963 >                                printf("0x%08x\n", ofs);
964                          return 0;
965                  }
966          }
# Line 833 | Line 972 | EOF
972    doit='$CXX conftest.$ac_ext -o conftest.$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS $LIBS $NATMEM_OFFSET_DEF >& AS_MESSAGE_LOG_FD'
973    if AC_TRY_EVAL(doit); then
974      NATMEM_OFFSET=`./conftest.$ac_exeext`
975 <    if [[ -z "$NATMEM_OFFSET" ]]; then
976 <      AC_MSG_ERROR([could not determine a sensible NATMEM_OFFSET value])
838 <    else
839 <      WANT_ADDRESSING_MODE="direct,$NATMEM_OFFSET"
840 <    fi
975 >  else
976 >    NATMEM_OFFSET=
977    fi
978    rm -f conftest*
979    AC_LANG_RESTORE
844 fi
845 AC_MSG_RESULT($WANT_ADDRESSING_MODE)
980  
981 < if [[ -z "$NATMEM_OFFSET" ]]; then
982 <  NATMEM_OFFSET=0
981 >  if [[ -z "$NATMEM_OFFSET" ]]; then
982 >    AC_MSG_ERROR([could not determine a sensible NATMEM_OFFSET value])
983 >  else
984 >    WANT_ADDRESSING_MODE="direct,$NATMEM_OFFSET"
985 >    AC_DEFINE_UNQUOTED(NATMEM_OFFSET, $NATMEM_OFFSET,
986 >      [Define constant offset for Mac address translation])
987 >  fi
988   fi
989 < AC_DEFINE_UNQUOTED(NATMEM_OFFSET, $NATMEM_OFFSET,
851 <  [Define constant offset for Mac address translation])
989 > AC_MSG_RESULT($WANT_ADDRESSING_MODE)
990  
991   dnl Platform specific binary postprocessor
992   AC_PATH_PROG(BLESS, "true")
# Line 883 | Line 1021 | if $CXX -V -v 2>&1 | grep -q "Intel(R) C
1021   fi
1022   AC_MSG_RESULT($HAVE_ICC)
1023  
1024 < dnl Test if the compiler can generate ELF objects
1024 > dnl Determine the generated object format
1025   AC_CACHE_CHECK([whether the compiler can generate ELF objects],
1026 <  ac_cv_elf_objects, [
1026 >  ac_cv_object_format, [
1027    echo 'int i;' > conftest.$ac_ext
1028 <  ac_cv_elf_objects=no
1028 >  ac_cv_object_format=no
1029    if AC_TRY_EVAL(ac_compile); then
1030      case `/usr/bin/file conftest.$ac_objext` in
1031      *"ELF"*)
1032 <      ac_cv_elf_objects=yes
1032 >      ac_cv_object_format=elf
1033 >      ;;
1034 >    *)
1035 >      ac_cv_object_format=unknown
1036        ;;
1037      esac
1038    fi
1039    rm -rf conftest*
1040   ])
900 ELF_OBJECTS=$ac_cv_elf_objects
1041  
1042   dnl CPU emulator sources
1043   if [[ "x$EMULATED_PPC" = "xyes" ]]; then
1044    CPUSRCS="\
1045 +    ../kpx_cpu/src/mathlib/ieeefp.cpp \
1046      ../kpx_cpu/src/cpu/ppc/ppc-cpu.cpp \
1047      ../kpx_cpu/src/cpu/ppc/ppc-decode.cpp \
1048      ../kpx_cpu/src/cpu/ppc/ppc-execute.cpp \
# Line 912 | Line 1053 | if [[ "x$EMULATED_PPC" = "xyes" ]]; then
1053    if [[ "x$WANT_JIT" = "xyes" ]]; then
1054      AC_CACHE_CHECK([whether dyngen can be used],
1055        ac_cv_use_dyngen, [
1056 <      case $host_cpu:$ELF_OBJECTS in
1057 <      powerpc:yes)
1056 >      case $host_cpu:$ac_cv_object_format in
1057 >      powerpc:elf)
1058          ac_cv_use_dyngen=yes
1059          ;;
1060 <      x86_64:yes)
1060 >      x86_64:elf)
1061          ac_cv_use_dyngen=yes
1062          ;;
1063 <      i?86:yes)
1063 >      i?86:elf)
1064          ac_cv_use_dyngen=yes
1065          ;;
1066        *:*)
# Line 952 | Line 1093 | if [[ "x$EMULATED_PPC" = "xyes" ]]; then
1093          else
1094            DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -malign-functions=0"
1095          fi
955        saved_CPPFLAGS=$CPPFLAGS
956        CPPFLAGS="$CPPFLAGS -mmmx"
957        AC_CHECK_HEADERS(mmintrin.h,  [DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -mmmx"])
958        CPPFLAGS="$CPPFLAGS -msse"
959        AC_CHECK_HEADERS(xmmintrin.h, [DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -msse"])
960        CPPFLAGS="$CPPFLAGS -msse2"
961        AC_CHECK_HEADERS(emmintrin.h, [DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -msse2"])
962        CPPFLAGS=$saved_CPPFLAGS
963        ;;
964      x86_64)
965        AC_CHECK_HEADERS(mmintrin.h xmmintrin.h emmintrin.h)
1096          ;;
1097        esac
1098 <      DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -finline-limit=10000"
1098 >      DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -finline-limit=10000 -g0"
1099        if [[ "x$HAVE_GCC30" = "xyes" ]]; then
1100          DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -fno-reorder-blocks -fno-optimize-sibling-calls"
1101        fi
# Line 1007 | Line 1137 | if [[ "x$ac_cv_use_dyngen" = "xyes" ]];
1137      ac_cv_have_static_data_exec=no
1138      )
1139    ])
1140 + else
1141 +  ac_cv_use_dyngen=no
1142   fi
1143   AC_TRANSLATE_DEFINE(HAVE_STATIC_DATA_EXEC, "$ac_cv_have_static_data_exec",
1144    [Define if your system marks static data pages as executable.])
# Line 1016 | Line 1148 | if [[ "x$WANT_JIT" = "xyes" ]]; then
1148   fi
1149  
1150   dnl Generate Makefile.
1151 + AC_SUBST(PERL)
1152 + AC_SUBST(USE_DYNGEN, [$ac_cv_use_dyngen])
1153   AC_SUBST(DYNGENSRCS)
1154   AC_SUBST(DYNGEN_CC)
1155   AC_SUBST(DYNGEN_OP_FLAGS)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines