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\"."