mirror of
https://github.com/kanjitalk755/macemu.git
synced 2025-01-12 16:30:44 +00:00
Cygwin support. Only generate NATMEM_OFFSET definitions in Direct Addressing
mode. Merge sshpty.c support detection code from Basilisk II.
This commit is contained in:
parent
aa6e44d380
commit
a9928fe707
@ -48,6 +48,7 @@ AC_PROG_CXX
|
|||||||
AC_PROG_MAKE_SET
|
AC_PROG_MAKE_SET
|
||||||
AC_PROG_INSTALL
|
AC_PROG_INSTALL
|
||||||
AC_PROG_EGREP
|
AC_PROG_EGREP
|
||||||
|
AC_CHECK_PROGS(FILE, [file false])
|
||||||
|
|
||||||
dnl Check for PowerPC target CPU.
|
dnl Check for PowerPC target CPU.
|
||||||
HAVE_PPC=no
|
HAVE_PPC=no
|
||||||
@ -124,12 +125,21 @@ fi
|
|||||||
if [[ "x$WANT_SDL" = "xyes" ]]; then
|
if [[ "x$WANT_SDL" = "xyes" ]]; then
|
||||||
AC_PATH_PROG(sdl_config, "sdl-config")
|
AC_PATH_PROG(sdl_config, "sdl-config")
|
||||||
if [[ -n "$sdl_config" ]]; then
|
if [[ -n "$sdl_config" ]]; then
|
||||||
sdl_cflags=`$sdl_config --cflags`
|
case $target_os in
|
||||||
if [[ "x$WANT_SDL_STATIC" = "xyes" ]]; then
|
# Special treatment for Cygwin so that we can still use the POSIX layer
|
||||||
sdl_libs=`$sdl_config --static-libs`
|
*cygwin*)
|
||||||
else
|
sdl_cflags="-I`$sdl_config --prefix`/include/SDL"
|
||||||
sdl_libs=`$sdl_config --libs`
|
sdl_libs="-L`$sdl_config --exec-prefix`/lib -lSDL"
|
||||||
fi
|
;;
|
||||||
|
*)
|
||||||
|
sdl_cflags=`$sdl_config --cflags`
|
||||||
|
if [[ "x$WANT_SDL_STATIC" = "xyes" ]]; then
|
||||||
|
sdl_libs=`$sdl_config --static-libs`
|
||||||
|
else
|
||||||
|
sdl_libs=`$sdl_config --libs`
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
CFLAGS="$CFLAGS $sdl_cflags"
|
CFLAGS="$CFLAGS $sdl_cflags"
|
||||||
CXXFLAGS="$CXXFLAGS $sdl_cflags"
|
CXXFLAGS="$CXXFLAGS $sdl_cflags"
|
||||||
LIBS="$LIBS $sdl_libs"
|
LIBS="$LIBS $sdl_libs"
|
||||||
@ -240,6 +250,7 @@ AC_SYS_LARGEFILE
|
|||||||
dnl Checks for header files.
|
dnl Checks for header files.
|
||||||
AC_HEADER_STDC
|
AC_HEADER_STDC
|
||||||
AC_HEADER_SYS_WAIT
|
AC_HEADER_SYS_WAIT
|
||||||
|
AC_CHECK_HEADERS(malloc.h)
|
||||||
AC_CHECK_HEADERS(mach/vm_map.h mach/mach_init.h sys/mman.h)
|
AC_CHECK_HEADERS(mach/vm_map.h mach/mach_init.h sys/mman.h)
|
||||||
AC_CHECK_HEADERS(sys/time.h sys/times.h sys/socket.h)
|
AC_CHECK_HEADERS(sys/time.h sys/times.h sys/socket.h)
|
||||||
AC_CHECK_HEADERS(unistd.h fcntl.h byteswap.h dirent.h)
|
AC_CHECK_HEADERS(unistd.h fcntl.h byteswap.h dirent.h)
|
||||||
@ -305,6 +316,50 @@ no:linux*)
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
dnl Check for headers and functions related to pty support (sshpty.c)
|
||||||
|
dnl From openssh-3.2.2p1 configure.ac
|
||||||
|
AC_CHECK_HEADERS(strings.h login.h sys/bsdtty.h sys/stat.h util.h pty.h)
|
||||||
|
AC_CHECK_FUNCS(_getpty vhangup strlcpy)
|
||||||
|
|
||||||
|
case "$host" in
|
||||||
|
*-*-hpux10.26)
|
||||||
|
disable_ptmx_check=yes
|
||||||
|
;;
|
||||||
|
*-*-linux*)
|
||||||
|
no_dev_ptmx=1
|
||||||
|
;;
|
||||||
|
mips-sony-bsd|mips-sony-newsos4)
|
||||||
|
AC_DEFINE(HAVE_NEWS4, 1, [Define if you are on NEWS-OS (additions from openssh-3.2.2p1, for sshpty.c).])
|
||||||
|
;;
|
||||||
|
*-*-sco3.2v4*)
|
||||||
|
no_dev_ptmx=1
|
||||||
|
;;
|
||||||
|
*-*-sco3.2v5*)
|
||||||
|
no_dev_ptmx=1
|
||||||
|
;;
|
||||||
|
*-*-cygwin*)
|
||||||
|
no_dev_ptmx=1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test -z "$no_dev_ptmx" ; then
|
||||||
|
if test "x$disable_ptmx_check" != "xyes" ; then
|
||||||
|
AC_CHECK_FILE([/dev/ptmx],
|
||||||
|
[
|
||||||
|
AC_DEFINE_UNQUOTED(HAVE_DEV_PTMX, 1, [Define if you have /dev/ptmx.])
|
||||||
|
have_dev_ptmx=1
|
||||||
|
]
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_CHECK_FILE([/dev/ptc],
|
||||||
|
[
|
||||||
|
AC_DEFINE_UNQUOTED(HAVE_DEV_PTS_AND_PTC, 1, [Define if you have /dev/ptc.])
|
||||||
|
have_dev_ptc=1
|
||||||
|
]
|
||||||
|
)
|
||||||
|
dnl (end of code from openssh-3.2.2p1 configure.ac)
|
||||||
|
|
||||||
dnl AC_CHECK_FRAMEWORK($1=NAME, $2=INCLUDES)
|
dnl AC_CHECK_FRAMEWORK($1=NAME, $2=INCLUDES)
|
||||||
AC_DEFUN(AC_CHECK_FRAMEWORK, [
|
AC_DEFUN(AC_CHECK_FRAMEWORK, [
|
||||||
AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1])dnl
|
AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1])dnl
|
||||||
@ -354,6 +409,9 @@ darwin*)
|
|||||||
EXTFSSRC=../MacOSX/extfs_macosx.mm
|
EXTFSSRC=../MacOSX/extfs_macosx.mm
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
cygwin*)
|
||||||
|
SERIALSRC="../dummy/serial_dummy.cpp"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
dnl SDL overrides
|
dnl SDL overrides
|
||||||
@ -367,7 +425,14 @@ if [[ "x$WANT_SDL_VIDEO" = "xyes" ]]; then
|
|||||||
if [[ "x$ac_cv_framework_Carbon" = "xyes" ]]; then
|
if [[ "x$ac_cv_framework_Carbon" = "xyes" ]]; then
|
||||||
EXTRASYSSRCS="$EXTRASYSSRCS ../MacOSX/clip_macosx.cpp"
|
EXTRASYSSRCS="$EXTRASYSSRCS ../MacOSX/clip_macosx.cpp"
|
||||||
else
|
else
|
||||||
EXTRASYSSRCS="$EXTRASYSSRCS ../dummy/clip_dummy.cpp"
|
case "$target_os" in
|
||||||
|
cygwin*)
|
||||||
|
EXTRASYSSRCS="$EXTRASYSSRCS ../Windows/clip_windows.cpp"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
EXTRASYSSRCS="$EXTRASYSSRCS ../dummy/clip_dummy.cpp"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
VIDEOSRCS="video_x.cpp"
|
VIDEOSRCS="video_x.cpp"
|
||||||
@ -683,6 +748,30 @@ fi
|
|||||||
AC_TRANSLATE_DEFINE(HAVE_MACH_EXCEPTIONS, "$ac_cv_have_mach_exceptions",
|
AC_TRANSLATE_DEFINE(HAVE_MACH_EXCEPTIONS, "$ac_cv_have_mach_exceptions",
|
||||||
[Define if your system supports Mach exceptions.])
|
[Define if your system supports Mach exceptions.])
|
||||||
|
|
||||||
|
dnl Check if Windows exceptions are supported.
|
||||||
|
AC_CACHE_CHECK([whether your system supports Windows exceptions],
|
||||||
|
ac_cv_have_win32_exceptions, [
|
||||||
|
AC_LANG_SAVE
|
||||||
|
AC_LANG_CPLUSPLUS
|
||||||
|
AC_TRY_RUN([
|
||||||
|
#define HAVE_WIN32_EXCEPTIONS 1
|
||||||
|
#define CONFIGURE_TEST_SIGSEGV_RECOVERY
|
||||||
|
#include "vm_alloc.cpp"
|
||||||
|
#include "sigsegv.cpp"
|
||||||
|
], [
|
||||||
|
sigsegv_recovery=win32
|
||||||
|
ac_cv_have_win32_exceptions=yes
|
||||||
|
],
|
||||||
|
ac_cv_have_win32_exceptions=no,
|
||||||
|
dnl When cross-compiling, do not assume anything.
|
||||||
|
ac_cv_have_win32_exceptions=no
|
||||||
|
)
|
||||||
|
AC_LANG_RESTORE
|
||||||
|
]
|
||||||
|
)
|
||||||
|
AC_TRANSLATE_DEFINE(HAVE_WIN32_EXCEPTIONS, "$ac_cv_have_win32_exceptions",
|
||||||
|
[Define if your system supports Windows exceptions.])
|
||||||
|
|
||||||
dnl Otherwise, check if extended signals are supported.
|
dnl Otherwise, check if extended signals are supported.
|
||||||
if [[ -z "$sigsegv_recovery" ]]; then
|
if [[ -z "$sigsegv_recovery" ]]; then
|
||||||
AC_CACHE_CHECK([whether your system supports extended signal handlers],
|
AC_CACHE_CHECK([whether your system supports extended signal handlers],
|
||||||
@ -771,6 +860,12 @@ fi
|
|||||||
|
|
||||||
dnl Check addressing mode to use
|
dnl Check addressing mode to use
|
||||||
AC_MSG_CHECKING([for addressing mode to use])
|
AC_MSG_CHECKING([for addressing mode to use])
|
||||||
|
case "$os_target" in
|
||||||
|
cygwin*)
|
||||||
|
WANT_ADDRESSING_MODE="direct,cygwin-hack"
|
||||||
|
NATMEM_OFFSET=
|
||||||
|
;;
|
||||||
|
esac
|
||||||
if [[ "$EMULATED_PPC" != "yes" ]]; then
|
if [[ "$EMULATED_PPC" != "yes" ]]; then
|
||||||
if [[ "$WANT_ADDRESSING_MODE" != "real" ]]; then
|
if [[ "$WANT_ADDRESSING_MODE" != "real" ]]; then
|
||||||
AC_MSG_WARN([Running in native PowerPC mode, force use of Real Addressing.])
|
AC_MSG_WARN([Running in native PowerPC mode, force use of Real Addressing.])
|
||||||
@ -833,23 +928,22 @@ EOF
|
|||||||
doit='$CXX conftest.$ac_ext -o conftest.$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS $LIBS $NATMEM_OFFSET_DEF >& AS_MESSAGE_LOG_FD'
|
doit='$CXX conftest.$ac_ext -o conftest.$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS $LIBS $NATMEM_OFFSET_DEF >& AS_MESSAGE_LOG_FD'
|
||||||
if AC_TRY_EVAL(doit); then
|
if AC_TRY_EVAL(doit); then
|
||||||
NATMEM_OFFSET=`./conftest.$ac_exeext`
|
NATMEM_OFFSET=`./conftest.$ac_exeext`
|
||||||
if [[ -z "$NATMEM_OFFSET" ]]; then
|
else
|
||||||
AC_MSG_ERROR([could not determine a sensible NATMEM_OFFSET value])
|
NATMEM_OFFSET=
|
||||||
else
|
|
||||||
WANT_ADDRESSING_MODE="direct,$NATMEM_OFFSET"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
rm -f conftest*
|
rm -f conftest*
|
||||||
AC_LANG_RESTORE
|
AC_LANG_RESTORE
|
||||||
|
|
||||||
|
if [[ -z "$NATMEM_OFFSET" ]]; then
|
||||||
|
AC_MSG_ERROR([could not determine a sensible NATMEM_OFFSET value])
|
||||||
|
else
|
||||||
|
WANT_ADDRESSING_MODE="direct,$NATMEM_OFFSET"
|
||||||
|
AC_DEFINE_UNQUOTED(NATMEM_OFFSET, $NATMEM_OFFSET,
|
||||||
|
[Define constant offset for Mac address translation])
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
AC_MSG_RESULT($WANT_ADDRESSING_MODE)
|
AC_MSG_RESULT($WANT_ADDRESSING_MODE)
|
||||||
|
|
||||||
if [[ -z "$NATMEM_OFFSET" ]]; then
|
|
||||||
NATMEM_OFFSET=0
|
|
||||||
fi
|
|
||||||
AC_DEFINE_UNQUOTED(NATMEM_OFFSET, $NATMEM_OFFSET,
|
|
||||||
[Define constant offset for Mac address translation])
|
|
||||||
|
|
||||||
dnl Platform specific binary postprocessor
|
dnl Platform specific binary postprocessor
|
||||||
AC_PATH_PROG(BLESS, "true")
|
AC_PATH_PROG(BLESS, "true")
|
||||||
if [[ "x$ac_cv_pagezero_hack" = "xyes" ]]; then
|
if [[ "x$ac_cv_pagezero_hack" = "xyes" ]]; then
|
||||||
@ -883,25 +977,28 @@ if $CXX -V -v 2>&1 | grep -q "Intel(R) C++ Compiler"; then
|
|||||||
fi
|
fi
|
||||||
AC_MSG_RESULT($HAVE_ICC)
|
AC_MSG_RESULT($HAVE_ICC)
|
||||||
|
|
||||||
dnl Test if the compiler can generate ELF objects
|
dnl Determine the generated object format
|
||||||
AC_CACHE_CHECK([whether the compiler can generate ELF objects],
|
AC_CACHE_CHECK([whether the compiler can generate ELF objects],
|
||||||
ac_cv_elf_objects, [
|
ac_cv_object_format, [
|
||||||
echo 'int i;' > conftest.$ac_ext
|
echo 'int i;' > conftest.$ac_ext
|
||||||
ac_cv_elf_objects=no
|
ac_cv_object_format=no
|
||||||
if AC_TRY_EVAL(ac_compile); then
|
if AC_TRY_EVAL(ac_compile); then
|
||||||
case `/usr/bin/file conftest.$ac_objext` in
|
case `/usr/bin/file conftest.$ac_objext` in
|
||||||
*"ELF"*)
|
*"ELF"*)
|
||||||
ac_cv_elf_objects=yes
|
ac_cv_object_format=elf
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
ac_cv_object_format=unknown
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
])
|
])
|
||||||
ELF_OBJECTS=$ac_cv_elf_objects
|
|
||||||
|
|
||||||
dnl CPU emulator sources
|
dnl CPU emulator sources
|
||||||
if [[ "x$EMULATED_PPC" = "xyes" ]]; then
|
if [[ "x$EMULATED_PPC" = "xyes" ]]; then
|
||||||
CPUSRCS="\
|
CPUSRCS="\
|
||||||
|
../kpx_cpu/src/mathlib/ieeefp.cpp \
|
||||||
../kpx_cpu/src/cpu/ppc/ppc-cpu.cpp \
|
../kpx_cpu/src/cpu/ppc/ppc-cpu.cpp \
|
||||||
../kpx_cpu/src/cpu/ppc/ppc-decode.cpp \
|
../kpx_cpu/src/cpu/ppc/ppc-decode.cpp \
|
||||||
../kpx_cpu/src/cpu/ppc/ppc-execute.cpp \
|
../kpx_cpu/src/cpu/ppc/ppc-execute.cpp \
|
||||||
@ -912,14 +1009,14 @@ if [[ "x$EMULATED_PPC" = "xyes" ]]; then
|
|||||||
if [[ "x$WANT_JIT" = "xyes" ]]; then
|
if [[ "x$WANT_JIT" = "xyes" ]]; then
|
||||||
AC_CACHE_CHECK([whether dyngen can be used],
|
AC_CACHE_CHECK([whether dyngen can be used],
|
||||||
ac_cv_use_dyngen, [
|
ac_cv_use_dyngen, [
|
||||||
case $host_cpu:$ELF_OBJECTS in
|
case $host_cpu:$ac_cv_object_format in
|
||||||
powerpc:yes)
|
powerpc:elf)
|
||||||
ac_cv_use_dyngen=yes
|
ac_cv_use_dyngen=yes
|
||||||
;;
|
;;
|
||||||
x86_64:yes)
|
x86_64:elf)
|
||||||
ac_cv_use_dyngen=yes
|
ac_cv_use_dyngen=yes
|
||||||
;;
|
;;
|
||||||
i?86:yes)
|
i?86:elf)
|
||||||
ac_cv_use_dyngen=yes
|
ac_cv_use_dyngen=yes
|
||||||
;;
|
;;
|
||||||
*:*)
|
*:*)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user