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.19 by gbeauche, 2005-03-13T12:49:30Z

# Line 31 | Line 31 | AC_ARG_ENABLE(addressing,
31    [case "$enableval" in
32     real)        WANT_ADDRESSING_MODE="real";;
33     direct)      WANT_ADDRESSING_MODE="direct";;
34 <   direct,0x*)  WANT_ADDRESSING_MODE="direct"; NATMEM_OFFSET=`echo "$enableval" | sed -n '/direct,\(0[[xX]][[0-9A-Fa-f]]*\)/s//\1/p'`;;
34 >   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'`;;
35     esac],
36    [WANT_ADDRESSING_MODE="real"]
37   )
# Line 48 | Line 48 | AC_PROG_CXX
48   AC_PROG_MAKE_SET
49   AC_PROG_INSTALL
50   AC_PROG_EGREP
51 + AC_PATH_PROGS(FILE, [file false])
52 + AC_PATH_PROG(PERL, [perl])
53  
54   dnl Check for PowerPC target CPU.
55   HAVE_PPC=no
# Line 104 | Line 106 | if [[ "x$WANT_MON" = "xyes" ]]; then
106      WANT_MON=no
107    fi
108   fi
109 + AC_SUBST(MONSRCS)
110  
111   dnl Checks for libraries.
112   AC_CHECK_LIB(posix4, sem_init)
# Line 124 | Line 127 | fi
127   if [[ "x$WANT_SDL" = "xyes" ]]; then
128    AC_PATH_PROG(sdl_config, "sdl-config")
129    if [[ -n "$sdl_config" ]]; then
130 <    sdl_cflags=`$sdl_config --cflags`
131 <    if [[ "x$WANT_SDL_STATIC" = "xyes" ]]; then
132 <      sdl_libs=`$sdl_config --static-libs`
133 <    else
134 <      sdl_libs=`$sdl_config --libs`
135 <    fi
130 >    case $target_os in
131 >    # Special treatment for Cygwin so that we can still use the POSIX layer
132 >    *cygwin*)
133 >      sdl_cflags="-I`$sdl_config --prefix`/include/SDL"
134 >      sdl_libs="-L`$sdl_config --exec-prefix`/lib -lSDL"
135 >      ;;
136 >    *)
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
143 >      ;;
144 >    esac
145      CFLAGS="$CFLAGS $sdl_cflags"
146      CXXFLAGS="$CXXFLAGS $sdl_cflags"
147      LIBS="$LIBS $sdl_libs"
148    else
149      WANT_SDL=no
150 +    WANT_SDL_VIDEO=no
151 +    WANT_SDL_AUDIO=no
152    fi
153    SDL_SUPPORT=`echo "$SDL_SUPPORT" | sed -e "s/^ //"`
154   else
# Line 142 | Line 156 | else
156   fi
157  
158   dnl We need X11, if not using SDL.
159 < if [[ "x$WANT_SDL" = "xno" ]]; then
159 > if [[ "x$WANT_SDL_VIDEO" != "xyes" ]]; then
160    AC_PATH_XTRA
161    if [[ "x$no_x" = "xyes" ]]; then
162      AC_MSG_ERROR([You need X11 to run SheepShaver.])
# Line 155 | Line 169 | fi
169   dnl We need pthreads on non-PowerPC systems. Try libpthread first, then libc_r (FreeBSD), then PTL.
170   HAVE_PTHREADS=yes
171   case $EMULATED_PPC:$target_os in
172 < no:linux*)
172 > no:linux*|no:netbsd*)
173    dnl We do have our own pthread_cancel() implementation
174    AC_DEFINE(HAVE_PTHREAD_CANCEL, 1, [Define if you have the pthread_cancel function.])
175    ;;
# Line 240 | Line 254 | AC_SYS_LARGEFILE
254   dnl Checks for header files.
255   AC_HEADER_STDC
256   AC_HEADER_SYS_WAIT
257 + AC_CHECK_HEADERS(malloc.h)
258   AC_CHECK_HEADERS(mach/vm_map.h mach/mach_init.h sys/mman.h)
259   AC_CHECK_HEADERS(sys/time.h sys/times.h sys/socket.h)
260   AC_CHECK_HEADERS(unistd.h fcntl.h byteswap.h dirent.h)
# Line 249 | Line 264 | AC_CHECK_HEADERS(linux/if.h, [], [], [
264   #endif
265   ])
266   AC_CHECK_HEADERS(linux/if_tun.h net/if.h net/if_tun.h)
267 + AC_CHECK_HEADERS(fenv.h)
268  
269   dnl Checks for typedefs, structures, and compiler characteristics.
270   AC_C_BIGENDIAN
# Line 290 | Line 306 | AC_CHECK_FUNCS(sigaction signal)
306   AC_CHECK_FUNCS(mmap mprotect munmap)
307   AC_CHECK_FUNCS(vm_allocate vm_deallocate vm_protect)
308   AC_CHECK_FUNCS(posix_memalign memalign valloc)
309 + AC_CHECK_FUNCS(exp2f log2f exp2 log2 trunc)
310  
311   dnl Darwin seems to define mach_task_self() instead of task_self().
312   AC_CHECK_FUNCS(mach_task_self task_self)
# Line 301 | Line 318 | no:linux*)
318    ;;
319   *:*)
320    AC_SEARCH_LIBS(clock_gettime, [rt posix4])
321 <  AC_CHECK_FUNCS(clock_gettime)
321 >  AC_CHECK_FUNCS(clock_gettime clock_nanosleep)
322    ;;
323   esac
324  
325 + dnl Check for headers and functions related to pty support (sshpty.c)
326 + dnl From openssh-3.2.2p1 configure.ac
327 + AC_CHECK_HEADERS(strings.h login.h sys/bsdtty.h sys/stat.h util.h pty.h)
328 + AC_CHECK_FUNCS(_getpty vhangup strlcpy)
329 +
330 + case "$host" in
331 + *-*-hpux10.26)
332 +        disable_ptmx_check=yes
333 +        ;;
334 + *-*-linux*)
335 +        no_dev_ptmx=1
336 +        ;;
337 + mips-sony-bsd|mips-sony-newsos4)
338 +        AC_DEFINE(HAVE_NEWS4, 1, [Define if you are on NEWS-OS (additions from openssh-3.2.2p1, for sshpty.c).])
339 +        ;;
340 + *-*-sco3.2v4*)
341 +        no_dev_ptmx=1
342 +        ;;
343 + *-*-sco3.2v5*)
344 +        no_dev_ptmx=1
345 +        ;;
346 + *-*-cygwin*)
347 +        no_dev_ptmx=1
348 +        ;;
349 + esac
350 +
351 + if test -z "$no_dev_ptmx" ; then
352 +        if test "x$disable_ptmx_check" != "xyes" ; then
353 +                AC_CHECK_FILE([/dev/ptmx],
354 +                        [
355 +                                AC_DEFINE_UNQUOTED(HAVE_DEV_PTMX, 1, [Define if you have /dev/ptmx.])
356 +                                have_dev_ptmx=1
357 +                        ]
358 +                )
359 +        fi
360 + fi
361 + AC_CHECK_FILE([/dev/ptc],
362 +        [
363 +                AC_DEFINE_UNQUOTED(HAVE_DEV_PTS_AND_PTC, 1, [Define if you have /dev/ptc.])
364 +                have_dev_ptc=1
365 +        ]
366 + )
367 + dnl (end of code from openssh-3.2.2p1 configure.ac)
368 +
369   dnl AC_CHECK_FRAMEWORK($1=NAME, $2=INCLUDES)
370   AC_DEFUN(AC_CHECK_FRAMEWORK, [
371    AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1])dnl
# Line 340 | Line 401 | linux*)
401    AUDIOSRC=audio_oss_esd.cpp
402    SCSISRC=Linux/scsi_linux.cpp
403    if [[ "x$EMULATED_PPC" = "xno" ]]; then
404 <    EXTRASYSSRCS="Linux/paranoia.cpp Linux/sheepthreads.c Linux/asm_linux.S"
404 >    EXTRASYSSRCS="Linux/paranoia.cpp Linux/sheepthreads.c ppc_asm.S"
405 >  fi
406 >  ;;
407 > netbsd*)
408 >  if [[ "x$EMULATED_PPC" = "xno" ]]; then
409 >    EXTRASYSSRCS="NetBSD/paranoia.cpp NetBSD/sheepthreads.c ppc_asm.S"
410    fi
411    ;;
412   darwin*)
413    if [[ "x$EMULATED_PPC" = "xno" ]]; then
414 <    EXTRASYSSRCS="Darwin/paranoia.cpp Linux/asm_linux.S"
414 >    EXTRASYSSRCS="Darwin/paranoia.cpp ppc_asm.S"
415    fi
416    if [[ "x$ac_cv_framework_IOKit" = "xyes" ]]; then
417      EXTRASYSSRCS="$EXTRASYSSRCS ../MacOSX/sys_darwin.cpp"
# Line 354 | Line 420 | darwin*)
420      EXTFSSRC=../MacOSX/extfs_macosx.mm
421    fi
422    ;;
423 + cygwin*)
424 +  SERIALSRC="../dummy/serial_dummy.cpp"
425 +  ;;
426   esac
427  
428   dnl SDL overrides
# Line 367 | Line 436 | if [[ "x$WANT_SDL_VIDEO" = "xyes" ]]; th
436    if [[ "x$ac_cv_framework_Carbon" = "xyes" ]]; then
437      EXTRASYSSRCS="$EXTRASYSSRCS ../MacOSX/clip_macosx.cpp"
438    else
439 <    EXTRASYSSRCS="$EXTRASYSSRCS ../dummy/clip_dummy.cpp"
439 >    case "$target_os" in
440 >    cygwin*)
441 >      EXTRASYSSRCS="$EXTRASYSSRCS ../Windows/clip_windows.cpp"
442 >      ;;
443 >    *)
444 >      EXTRASYSSRCS="$EXTRASYSSRCS ../dummy/clip_dummy.cpp"
445 >      ;;
446 >    esac
447    fi
448   else
449    VIDEOSRCS="video_x.cpp"
# Line 379 | Line 455 | if [[ "x$WANT_SDL_AUDIO" = "xyes" ]]; th
455    AUDIOSRC="../SDL/audio_sdl.cpp"
456   fi
457  
458 < SYSSRCS="$VIDEOSRCS $EXTFSSRC $SERIALSRC $ETHERSRC $SCSISRC $AUDIOSRC $SEMSRC $UISRCS $MONSRCS $EXTRASYSSRCS"
458 > SYSSRCS="$VIDEOSRCS $EXTFSSRC $SERIALSRC $ETHERSRC $SCSISRC $AUDIOSRC $SEMSRC $UISRCS $EXTRASYSSRCS"
459  
460   dnl Define a macro that translates a yesno-variable into a C macro definition
461   dnl to be put into the config.h file
# Line 683 | Line 759 | fi
759   AC_TRANSLATE_DEFINE(HAVE_MACH_EXCEPTIONS, "$ac_cv_have_mach_exceptions",
760    [Define if your system supports Mach exceptions.])
761  
762 + dnl Check if Windows exceptions are supported.
763 + AC_CACHE_CHECK([whether your system supports Windows exceptions],
764 +  ac_cv_have_win32_exceptions, [
765 +  AC_LANG_SAVE
766 +  AC_LANG_CPLUSPLUS
767 +  AC_TRY_RUN([
768 +    #define HAVE_WIN32_EXCEPTIONS 1
769 +    #define CONFIGURE_TEST_SIGSEGV_RECOVERY
770 +    #include "vm_alloc.cpp"
771 +    #include "sigsegv.cpp"
772 +  ], [
773 +  sigsegv_recovery=win32
774 +  ac_cv_have_win32_exceptions=yes
775 +  ],
776 +  ac_cv_have_win32_exceptions=no,
777 +  dnl When cross-compiling, do not assume anything.
778 +  ac_cv_have_win32_exceptions=no
779 +  )
780 +  AC_LANG_RESTORE
781 +  ]
782 + )
783 + AC_TRANSLATE_DEFINE(HAVE_WIN32_EXCEPTIONS, "$ac_cv_have_win32_exceptions",
784 +  [Define if your system supports Windows exceptions.])
785 +
786   dnl Otherwise, check if extended signals are supported.
787   if [[ -z "$sigsegv_recovery" ]]; then
788    AC_CACHE_CHECK([whether your system supports extended signal handlers],
# Line 771 | Line 871 | fi
871  
872   dnl Check addressing mode to use
873   AC_MSG_CHECKING([for addressing mode to use])
874 + case "$os_target" in
875 + cygwin*)
876 +  WANT_ADDRESSING_MODE="direct,cygwin-hack"
877 +  NATMEM_OFFSET=
878 +  ;;
879 + esac
880   if [[ "$EMULATED_PPC" != "yes" ]]; then
881    if [[ "$WANT_ADDRESSING_MODE" != "real" ]]; then
882      AC_MSG_WARN([Running in native PowerPC mode, force use of Real Addressing.])
# Line 821 | Line 927 | int main(void)
927                  memset(m, 0, ranges[[i]].size);
928                  vm_release(m, ranges[[i]].size);
929                  if (i == n_ranges - 1) {
930 <                        printf("0x%08x\n", ofs);
930 >                        if (sizeof(void *) == 8 && ofs > 0xffffffff)
931 >                                printf("0x%lxul\n", ofs);
932 >                        else
933 >                                printf("0x%08x\n", ofs);
934                          return 0;
935                  }
936          }
# Line 833 | Line 942 | EOF
942    doit='$CXX conftest.$ac_ext -o conftest.$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS $LIBS $NATMEM_OFFSET_DEF >& AS_MESSAGE_LOG_FD'
943    if AC_TRY_EVAL(doit); then
944      NATMEM_OFFSET=`./conftest.$ac_exeext`
945 <    if [[ -z "$NATMEM_OFFSET" ]]; then
946 <      AC_MSG_ERROR([could not determine a sensible NATMEM_OFFSET value])
838 <    else
839 <      WANT_ADDRESSING_MODE="direct,$NATMEM_OFFSET"
840 <    fi
945 >  else
946 >    NATMEM_OFFSET=
947    fi
948    rm -f conftest*
949    AC_LANG_RESTORE
844 fi
845 AC_MSG_RESULT($WANT_ADDRESSING_MODE)
950  
951 < if [[ -z "$NATMEM_OFFSET" ]]; then
952 <  NATMEM_OFFSET=0
951 >  if [[ -z "$NATMEM_OFFSET" ]]; then
952 >    AC_MSG_ERROR([could not determine a sensible NATMEM_OFFSET value])
953 >  else
954 >    WANT_ADDRESSING_MODE="direct,$NATMEM_OFFSET"
955 >    AC_DEFINE_UNQUOTED(NATMEM_OFFSET, $NATMEM_OFFSET,
956 >      [Define constant offset for Mac address translation])
957 >  fi
958   fi
959 < AC_DEFINE_UNQUOTED(NATMEM_OFFSET, $NATMEM_OFFSET,
851 <  [Define constant offset for Mac address translation])
959 > AC_MSG_RESULT($WANT_ADDRESSING_MODE)
960  
961   dnl Platform specific binary postprocessor
962   AC_PATH_PROG(BLESS, "true")
# Line 883 | Line 991 | if $CXX -V -v 2>&1 | grep -q "Intel(R) C
991   fi
992   AC_MSG_RESULT($HAVE_ICC)
993  
994 < dnl Test if the compiler can generate ELF objects
994 > dnl Determine the generated object format
995   AC_CACHE_CHECK([whether the compiler can generate ELF objects],
996 <  ac_cv_elf_objects, [
996 >  ac_cv_object_format, [
997    echo 'int i;' > conftest.$ac_ext
998 <  ac_cv_elf_objects=no
998 >  ac_cv_object_format=no
999    if AC_TRY_EVAL(ac_compile); then
1000      case `/usr/bin/file conftest.$ac_objext` in
1001      *"ELF"*)
1002 <      ac_cv_elf_objects=yes
1002 >      ac_cv_object_format=elf
1003 >      ;;
1004 >    *)
1005 >      ac_cv_object_format=unknown
1006        ;;
1007      esac
1008    fi
1009    rm -rf conftest*
1010   ])
900 ELF_OBJECTS=$ac_cv_elf_objects
1011  
1012   dnl CPU emulator sources
1013   if [[ "x$EMULATED_PPC" = "xyes" ]]; then
1014    CPUSRCS="\
1015 +    ../kpx_cpu/src/mathlib/ieeefp.cpp \
1016      ../kpx_cpu/src/cpu/ppc/ppc-cpu.cpp \
1017      ../kpx_cpu/src/cpu/ppc/ppc-decode.cpp \
1018      ../kpx_cpu/src/cpu/ppc/ppc-execute.cpp \
# Line 912 | Line 1023 | if [[ "x$EMULATED_PPC" = "xyes" ]]; then
1023    if [[ "x$WANT_JIT" = "xyes" ]]; then
1024      AC_CACHE_CHECK([whether dyngen can be used],
1025        ac_cv_use_dyngen, [
1026 <      case $host_cpu:$ELF_OBJECTS in
1027 <      powerpc:yes)
1026 >      case $host_cpu:$ac_cv_object_format in
1027 >      powerpc:elf)
1028          ac_cv_use_dyngen=yes
1029          ;;
1030 <      x86_64:yes)
1030 >      x86_64:elf)
1031          ac_cv_use_dyngen=yes
1032          ;;
1033 <      i?86:yes)
1033 >      i?86:elf)
1034          ac_cv_use_dyngen=yes
1035          ;;
1036        *:*)
# Line 952 | Line 1063 | if [[ "x$EMULATED_PPC" = "xyes" ]]; then
1063          else
1064            DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -malign-functions=0"
1065          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)
1066          ;;
1067        esac
1068 <      DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -finline-limit=10000"
1068 >      DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -finline-limit=10000 -g0"
1069        if [[ "x$HAVE_GCC30" = "xyes" ]]; then
1070          DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -fno-reorder-blocks -fno-optimize-sibling-calls"
1071        fi
# Line 1007 | Line 1107 | if [[ "x$ac_cv_use_dyngen" = "xyes" ]];
1107      ac_cv_have_static_data_exec=no
1108      )
1109    ])
1110 + else
1111 +  ac_cv_use_dyngen=no
1112   fi
1113   AC_TRANSLATE_DEFINE(HAVE_STATIC_DATA_EXEC, "$ac_cv_have_static_data_exec",
1114    [Define if your system marks static data pages as executable.])
# Line 1016 | Line 1118 | if [[ "x$WANT_JIT" = "xyes" ]]; then
1118   fi
1119  
1120   dnl Generate Makefile.
1121 + AC_SUBST(PERL)
1122 + AC_SUBST(USE_DYNGEN, [$ac_cv_use_dyngen])
1123   AC_SUBST(DYNGENSRCS)
1124   AC_SUBST(DYNGEN_CC)
1125   AC_SUBST(DYNGEN_OP_FLAGS)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines