181 lines
5.4 KiB
Plaintext
181 lines
5.4 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
dnl Written in 2002 by Christian Bauer
|
|
|
|
AC_INIT(main_unix.cpp)
|
|
AC_PREREQ(2.12)
|
|
AC_CONFIG_HEADER(config.h)
|
|
|
|
dnl Options.
|
|
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=yes]], [WANT_XF86_VIDMODE=$enableval], [WANT_XF86_VIDMODE=yes])
|
|
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])
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_CC
|
|
AC_PROG_CPP
|
|
AC_PROG_CXX
|
|
AC_PROG_MAKE_SET
|
|
AC_PROG_INSTALL
|
|
|
|
dnl Check for PowerPC target CPU.
|
|
HAVE_PPC=no
|
|
AC_MSG_CHECKING(for PowerPC target CPU)
|
|
AC_EGREP_CPP(yes,
|
|
[
|
|
#ifdef __powerpc__
|
|
yes
|
|
#endif
|
|
], [AC_MSG_RESULT(yes); HAVE_PPC=yes], AC_MSG_RESULT(no))
|
|
|
|
dnl We use mon if possible.
|
|
MONSRCS=
|
|
if [[ "x$WANT_MON" = "xyes" ]]; then
|
|
AC_MSG_CHECKING(for mon)
|
|
mon_srcdir=../../../mon/src
|
|
if grep mon_init $mon_srcdir/mon.h >/dev/null 2>/dev/null; then
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(ENABLE_MON)
|
|
MONSRCS="$mon_srcdir/mon.cpp $mon_srcdir/mon_6502.cpp $mon_srcdir/mon_z80.cpp $mon_srcdir/mon_cmd.cpp $mon_srcdir/mon_lowmem.cpp $mon_srcdir/mon_disass.cpp $mon_srcdir/mon_ppc.cpp $mon_srcdir/disass/floatformat.c $mon_srcdir/disass/i386-dis.c $mon_srcdir/disass/m68k-dis.c $mon_srcdir/disass/m68k-opc.c"
|
|
CXXFLAGS="$CXXFLAGS -I$mon_srcdir -I$mon_srcdir/disass"
|
|
AC_CHECK_LIB(readline, readline)
|
|
AC_CHECK_LIB(termcap, tputs)
|
|
AC_CHECK_HEADERS(readline.h history.h readline/readline.h readline/history.h)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_WARN([Could not find mon, ignoring --with-mon.])
|
|
WANT_MON=no
|
|
fi
|
|
fi
|
|
|
|
dnl Checks for libraries.
|
|
AC_CHECK_LIB(posix4, sem_init)
|
|
|
|
dnl We need X11.
|
|
AC_PATH_XTRA
|
|
if [[ "x$no_x" = "xyes" ]]; then
|
|
AC_MSG_ERROR([You need X11 to run SheepShaver.])
|
|
fi
|
|
CFLAGS="$CFLAGS $X_CFLAGS"
|
|
CXXFLAGS="$CXXFLAGS $X_CFLAGS"
|
|
LIBS="$LIBS $X_PRE_LIBS $X_LIBS -lX11 -lXext $X_EXTRA_LIBS"
|
|
|
|
dnl We need pthreads on non-PowerPC systems. Try libpthread first, then libc_r (FreeBSD), then PTL.
|
|
HAVE_PTHREADS=yes
|
|
if [[ "x$HAVE_PPC" = "xno" ]]; then
|
|
AC_CHECK_LIB(pthread, pthread_create, , [
|
|
AC_CHECK_LIB(c_r, pthread_create, , [
|
|
AC_CHECK_LIB(PTL, pthread_create, , [
|
|
AC_MSG_ERROR([You need pthreads to run Basilisk II.])
|
|
])
|
|
])
|
|
])
|
|
AC_CHECK_FUNCS(pthread_cancel)
|
|
fi
|
|
|
|
dnl If POSIX.4 semaphores are not available, we emulate them with pthread mutexes.
|
|
SEMSRC=
|
|
AC_CHECK_FUNCS(sem_init, , [
|
|
if [[ "x$HAVE_PTHREADS" = "xyes" ]]; then
|
|
SEMSRC=posix_sem.cpp
|
|
fi
|
|
])
|
|
|
|
dnl We use XFree86 DGA if possible.
|
|
if [[ "x$WANT_XF86_DGA" = "xyes" ]]; then
|
|
AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension, [
|
|
AC_DEFINE(ENABLE_XF86_DGA)
|
|
LIBS="$LIBS -lXxf86dga"
|
|
], [
|
|
AC_MSG_WARN([Could not find XFree86 DGA extension, ignoring --enable-xf86-dga.])
|
|
WANT_XF86_DGA=no
|
|
])
|
|
fi
|
|
|
|
dnl We use XFree86 VidMode if possible.
|
|
if [[ "x$WANT_XF86_VIDMODE" = "xyes" ]]; then
|
|
AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension, [
|
|
AC_DEFINE(ENABLE_XF86_VIDMODE)
|
|
LIBS="$LIBS -lXxf86vm"
|
|
], [
|
|
AC_MSG_WARN([Could not find XFree86 VidMode extension, ignoring --enable-xf86-vidmode.])
|
|
WANT_XF86_VIDMODE=no
|
|
])
|
|
fi
|
|
|
|
dnl We use GTK+ if possible.
|
|
UISRCS=
|
|
if [[ "x$WANT_GTK" = "xyes" ]]; then
|
|
AM_PATH_GTK(1.2.0, [
|
|
AC_DEFINE(ENABLE_GTK)
|
|
CFLAGS="$CFLAGS $GTK_CFLAGS"
|
|
CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
|
|
LIBS="$LIBS $GTK_LIBS"
|
|
UISRCS=prefs_editor_gtk.cpp
|
|
], [
|
|
AC_MSG_WARN([Could not find GTK+, disabling user interface.])
|
|
WANT_GTK=no
|
|
])
|
|
fi
|
|
|
|
dnl We use ESD if possible.
|
|
if [[ "x$WANT_ESD" = "xyes" ]]; then
|
|
AM_PATH_ESD(0.2.8, [
|
|
AC_DEFINE(ENABLE_ESD)
|
|
CFLAGS="$CFLAGS $ESD_CFLAGS"
|
|
CXXFLAGS="$CXXFLAGS $ESD_CFLAGS"
|
|
LIBS="$LIBS $ESD_LIBS"
|
|
], [
|
|
AC_MSG_WARN([Could not find ESD, disabling ESD support.])
|
|
WANT_ESD=no
|
|
])
|
|
fi
|
|
|
|
dnl Checks for header files.
|
|
AC_HEADER_STDC
|
|
AC_HEADER_SYS_WAIT
|
|
AC_CHECK_HEADERS(unistd.h fcntl.h sys/time.h)
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_BIGENDIAN
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AC_CHECK_SIZEOF(short, 2)
|
|
AC_CHECK_SIZEOF(int, 4)
|
|
AC_CHECK_SIZEOF(long, 4)
|
|
AC_CHECK_SIZEOF(long long, 8)
|
|
AC_TYPE_OFF_T
|
|
AC_CHECK_TYPE(loff_t, off_t)
|
|
AC_TYPE_SIZE_T
|
|
AC_HEADER_TIME
|
|
AC_STRUCT_TM
|
|
|
|
dnl Checks for library functions.
|
|
AC_CHECK_FUNCS(strdup cfmakeraw)
|
|
AC_CHECK_FUNCS(nanosleep clock_gettime timer_create)
|
|
|
|
dnl Select system-dependant sources.
|
|
if [[ "x$HAVE_PPC" = "xyes" ]]; then
|
|
SYSSRCS="Linux/paranoia.cpp Linux/sheepthreads.c Linux/asm_linux.S"
|
|
else
|
|
SYSSRCS="../emul_ppc/emul_ppc.cpp"
|
|
fi
|
|
SYSSRCS="$SYSSRCS $SEMSRCS $UISRCS $MONSRCS"
|
|
|
|
dnl Generate Makefile.
|
|
AC_SUBST(SYSSRCS)
|
|
AC_OUTPUT(Makefile)
|
|
|
|
dnl Print summary.
|
|
echo
|
|
echo SheepShaver configuration summary:
|
|
echo
|
|
echo XFree86 DGA support .............. : $WANT_XF86_DGA
|
|
echo XFree86 VidMode support .......... : $WANT_XF86_VIDMODE
|
|
echo ESD sound support ................ : $WANT_ESD
|
|
echo GTK user interface ............... : $WANT_GTK
|
|
echo mon debugger support ............. : $WANT_MON
|
|
echo
|
|
echo "Configuration done. Now type \"make\"."
|