mirror of
https://git.code.sf.net/p/fuse-emulator/fuse
synced 2026-01-27 01:41:34 +03:00
753 lines
24 KiB
Plaintext
753 lines
24 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
dnl $Id$
|
|
|
|
dnl This program is free software; you can redistribute it and/or modify
|
|
dnl it under the terms of the GNU General Public License as published by
|
|
dnl the Free Software Foundation; either version 2 of the License, or
|
|
dnl (at your option) any later version.
|
|
dnl
|
|
dnl This program is distributed in the hope that it will be useful,
|
|
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
dnl GNU General Public License for more details.
|
|
dnl
|
|
dnl You should have received a copy of the GNU General Public License along
|
|
dnl with this program; if not, write to the Free Software Foundation, Inc.,
|
|
dnl 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
dnl
|
|
dnl Author contact information:
|
|
dnl
|
|
dnl E-mail: philip-fuse@shadowmagic.org.uk
|
|
|
|
AC_INIT(fuse.c)
|
|
AM_CONFIG_HEADER(config.h)
|
|
AC_CANONICAL_SYSTEM
|
|
|
|
define(FUSE_VERSION, [1.0.0])
|
|
|
|
dnl Use automake to produce `Makefile.in'
|
|
AM_INIT_AUTOMAKE(fuse, FUSE_VERSION)
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_CC
|
|
AC_PROG_RANLIB
|
|
AC_PATH_PROG(PERL, perl)
|
|
AC_SUBST(PERL)
|
|
AM_PROG_LEX
|
|
AC_PROG_YACC
|
|
AC_PROG_LIBTOOL
|
|
|
|
dnl Check for Win32 resource tool
|
|
AC_MSG_CHECKING(whether to use windres)
|
|
AC_ARG_WITH(windres,
|
|
[ --without-windres don't use windres],
|
|
if test "$withval" = no; then windres=no; else windres=yes; fi,
|
|
windres=yes)
|
|
AC_MSG_RESULT($windres)
|
|
if test "$windres" = yes; then
|
|
AC_CHECK_TOOL(WINDRES, windres, no)
|
|
AC_SUBST(WINDRES)
|
|
if test "$WINDRES" != no; then
|
|
WINDRES_OBJ="windres.o"
|
|
define(FUSE_FULL_VERSION,
|
|
[ifelse(translit(FUSE_VERSION, [0-9]), [.], [FUSE_VERSION[.0.0]],
|
|
translit(FUSE_VERSION, [0-9]), [..], [FUSE_VERSION[.0]],
|
|
[FUSE_VERSION])])dnl
|
|
AC_DEFINE([VERSION_WIN32], [translit(FUSE_FULL_VERSION, [.], [,])], [Define version information for win32 executable])
|
|
FUSE_FULL[]_VERSION=FUSE_FULL_VERSION
|
|
AC_SUBST(FUSE_FULL[]_VERSION)
|
|
fi
|
|
fi
|
|
AC_SUBST(WINDRES_OBJ)
|
|
|
|
dnl Generate commandy.h
|
|
YFLAGS="$YFLAGS -d"
|
|
AC_SUBST(YFLAGS)
|
|
|
|
dnl Check for big endianness
|
|
AC_C_BIGENDIAN
|
|
|
|
dnl Checks for header files.
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS(
|
|
libgen.h \
|
|
siginfo.h \
|
|
strings.h \
|
|
sys/soundcard.h \
|
|
sys/audio.h \
|
|
sys/audioio.h \
|
|
zlib.h
|
|
)
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
AC_INLINE
|
|
|
|
dnl Checks for library functions.
|
|
AC_CHECK_FUNCS(dirname geteuid getopt_long mkstemp fsync)
|
|
|
|
dnl Allow the user to say that various libraries are in one place
|
|
AC_ARG_WITH(local-prefix,
|
|
[ --with-local-prefix=PFX local libraries installed in PFX (optional)],
|
|
CPPFLAGS="$CPPFLAGS -I$withval/include"; LDFLAGS="$LDFLAGS -L$withval/lib",
|
|
if test "$prefix" != "NONE"; then
|
|
CPPFLAGS="$CPPFLAGS -I$prefix/include"; LDFLAGS="$LDFLAGS -L$prefix/lib"
|
|
fi)
|
|
|
|
dnl Select a user interface
|
|
|
|
dnl Try various UI options; set the `ui' variable when we've got one
|
|
dnl we like, and then don't look at the other options
|
|
|
|
AC_PATH_XTRA
|
|
|
|
dnl Look for Win32 UI (default=no)
|
|
AC_MSG_CHECKING(whether Win32 UI requested)
|
|
AC_ARG_WITH(win32,
|
|
[ --with-win32 use Win32 for user interface],
|
|
if test "$withval" = no; then win32=no; else win32=yes; fi,
|
|
win32=no)
|
|
AC_MSG_RESULT($win32)
|
|
if test "$win32" = yes; then
|
|
AC_CHECK_HEADER(windows.h,
|
|
LIBS="$LIBS -mwindows -lcomctl32 -lwinmm -lpthread";
|
|
AC_DEFINE([UI_WIN32], 1, [Defined if Win32 UI in use])
|
|
AC_DEFINE([WINVER], 0x0400, [Minimal supported version of Windows is 95 or NT4])
|
|
AC_DEFINE([_WIN32_IE], 0x400, [Internet Explorer is 4.0 or higher is required])
|
|
UI=win32; UI_LIBS="ui/win32/libuiwin32.a",
|
|
AC_MSG_ERROR([Win32 UI not found]))
|
|
fi
|
|
|
|
dnl Look for svgalib (default=no)
|
|
AC_MSG_CHECKING(whether svgalib UI requested)
|
|
AC_ARG_WITH(svgalib,
|
|
[ --with-svgalib use svgalib for user interface],
|
|
if test "$withval" = no; then svgalib=no; else svgalib=yes; fi,
|
|
svgalib=no)
|
|
AC_MSG_RESULT($svgalib)
|
|
if test "$svgalib" = yes; then
|
|
AC_CHECK_HEADER(vga.h,
|
|
LIBS="$LIBS -lvga";
|
|
AC_DEFINE([UI_SVGA], 1, [Defined if svgalib UI in use])
|
|
AC_DEFINE([USE_WIDGET], 1,
|
|
[Defined if we're using a widget-based UI])
|
|
UI=svga; WIDGET=widget;
|
|
UI_LIBS="ui/svga/libuisvga.a ui/widget/libwidget.a",
|
|
AC_MSG_ERROR([svgalib not found]))
|
|
fi
|
|
|
|
dnl Look for framebuffer interface for SA1110 (default=no)
|
|
if test -z "$UI"; then
|
|
AC_MSG_CHECKING(whether framebuffer UI requested)
|
|
AC_ARG_WITH(fb,
|
|
[ --with-fb use framebuffer for user interface],
|
|
if test "$withval" = no; then fb=no; else fb=yes; fi,
|
|
fb=no)
|
|
AC_MSG_RESULT($fb)
|
|
if test "$fb" = yes; then
|
|
AC_DEFINE([UI_FB], 1, [Defined if framebuffer UI in use])
|
|
AC_DEFINE([USE_WIDGET], 1, [Defined if we're using a widget-based UI])
|
|
UI=fb; WIDGET=widget;
|
|
UI_LIBS="ui/fb/libuifb.a ui/widget/libwidget.a"
|
|
dnl Look for libgpm (default=yes)
|
|
AC_MSG_CHECKING(whether gpm requested)
|
|
AC_ARG_WITH(gpm,
|
|
[ --without-gpm don't use libgpm for e.g. Kempston mouse],
|
|
if test "$withval" = no; then gpm=no; else gpm=yes; fi,
|
|
gpm=yes)
|
|
AC_MSG_RESULT($gpm)
|
|
dnl Note: we use libdl to get libgpm at runtime
|
|
if test "$gpm" = yes; then
|
|
AC_CHECK_HEADER(gpm.h,
|
|
UI_LIBS="$UI_LIBS -ldl";
|
|
AC_DEFINE([HAVE_GPM_H], 1, [Defined if gpm in use]),
|
|
AC_MSG_ERROR([libgpm not found]))
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
dnl Look for Wii interface (default = 0)
|
|
if test -z "$UI"; then
|
|
AC_MSG_CHECKING(whether Wii UI requested)
|
|
AC_ARG_WITH(wii,
|
|
[ --with-wii use Wii FB for user interface],
|
|
if test "$withval" = no; then wii=no; else wii=yes; fi,
|
|
wii=no)
|
|
AC_MSG_RESULT($wii)
|
|
if test "$wii" = yes; then
|
|
AC_DEFINE([UI_WII], 1, [Defined if Wii UI in use])
|
|
AC_DEFINE([USE_WIDGET], 1, [Defined if we're using a widget-based UI])
|
|
AC_DEFINE([USE_JOYSTICK], 1, [Defined if we're using hardware joysticks])
|
|
UI=wii; WIDGET=widget;
|
|
UI_LIBS="ui/wii/libuiwii.a ui/widget/libwidget.a"
|
|
target_os=wii
|
|
dnl Look for libgpm (default=yes)
|
|
AC_MSG_CHECKING(whether gpm requested)
|
|
AC_ARG_WITH(gpm,
|
|
[ --without-gpm don't use libgpm for e.g. Kempston mouse],
|
|
if test "$withval" = no; then gpm=no; else gpm=yes; fi,
|
|
gpm=yes)
|
|
AC_MSG_RESULT($gpm)
|
|
dnl Note: we use libdl to get libgpm at runtime
|
|
if test "$gpm" = yes; then
|
|
AC_CHECK_HEADER(gpm.h,
|
|
UI_LIBS="$UI_LIBS -ldl";
|
|
AC_DEFINE([HAVE_GPM_H], 1, [Defined if gpm in use]),
|
|
AC_MSG_ERROR([libgpm not found]))
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
dnl Look for SDL (default=no)
|
|
if test -z "$UI"; then
|
|
AC_MSG_CHECKING(whether SDL UI requested)
|
|
AC_ARG_WITH(sdl,
|
|
[ --with-sdl use SDL for user interface],
|
|
if test "$withval" = no; then sdl=no; else sdl=yes; fi,
|
|
sdl=no)
|
|
AC_MSG_RESULT($sdl)
|
|
if test "$sdl" = yes; then
|
|
SDL_VERSION=1.2.4
|
|
AM_PATH_SDL($SDL_VERSION,
|
|
AC_DEFINE([UI_SDL], 1, [Defined if the SDL UI in use])
|
|
AC_DEFINE([USE_WIDGET], 1,
|
|
[Defined if we're using a widget-based UI])
|
|
UI=sdl; WIDGET=widget;
|
|
UI_LIBS="ui/sdl/libuisdl.a ui/widget/libwidget.a",
|
|
AC_MSG_ERROR([SDL version $SDL_VERSION not found]))
|
|
fi
|
|
fi
|
|
|
|
dnl Look for GTK+ (default=yes)
|
|
if test -z "$UI"; then
|
|
AC_MSG_CHECKING(whether GTK+ UI requested)
|
|
AC_ARG_WITH(gtk,
|
|
[ --without-gtk don't use GTK+ for user interface],
|
|
if test "$withval" = no; then gtk=no; else gtk=yes; fi,
|
|
gtk=yes)
|
|
AC_MSG_RESULT($gtk)
|
|
if test "$gtk" = yes; then
|
|
AM_PATH_GTK_2_0(2.18.0,
|
|
AC_DEFINE([UI_GTK], 1,
|
|
[Defined if GTK+ UI 2.x is in use])
|
|
AC_DEFINE([HAVE_LIB_GLIB], 1, [Defined if we've got glib])
|
|
UI=gtk; UI_LIBS="ui/gtk/libuigtk.la",
|
|
AC_MSG_WARN([GTK+ not found. Reverting to Xlib]))
|
|
fi
|
|
fi
|
|
|
|
if test "$UI" = gtk; then
|
|
AC_PATH_XTRA
|
|
fi
|
|
|
|
dnl Look for Xlib UI (default=yes)
|
|
if test -z "$UI"; then
|
|
if test "$with_x" = no; then
|
|
AC_MSG_ERROR([Please specify --with-svgalib or --with-fb, not --without-x.])
|
|
fi
|
|
AC_PATH_XTRA
|
|
CFLAGS="$CFLAGS $X_CFLAGS";
|
|
LDFLAGS="$LDFLAGS $X_LIBS";
|
|
LIBS="$LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS";
|
|
|
|
dnl This apparently needed for SVR4 systems to link correctly
|
|
dnl Basically the same as a part of AC_PATH_XTRA, but using `gethostname'
|
|
dnl instead of `gethostbyname'.
|
|
dnl Thanks to Erik Kunze for pointing out this problem
|
|
AC_CHECK_FUNC(gethostname)
|
|
if test $ac_cv_func_gethostname = no; then
|
|
AC_CHECK_LIB(nsl, gethostname, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl")
|
|
fi
|
|
AC_CHECK_FUNC(connect)
|
|
if test $ac_cv_func_connect = no; then
|
|
AC_CHECK_LIB(socket, connect, X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS", ,
|
|
$X_EXTRA_LIBS)
|
|
fi
|
|
|
|
dnl Check for the MIT-SHM extension
|
|
AC_CHECK_HEADERS( X11/extensions/XShm.h,,,[[
|
|
#include <sys/ipc.h>
|
|
#include <sys/shm.h>
|
|
#include <X11/Xlib.h>
|
|
]])
|
|
AC_CHECK_LIB( Xext, XShmAttach, LIBS="$LIBS -lXext" )
|
|
|
|
AC_DEFINE([UI_X], 1, [Defined if Xlib UI in use])
|
|
UI=xlib; WIDGET=widget;
|
|
AC_DEFINE([USE_WIDGET], 1, [Defined if we're using a widget-based UI])
|
|
UI_LIBS="ui/xlib/libuixlib.a ui/widget/libwidget.a"
|
|
fi
|
|
|
|
AC_SUBST(UI)
|
|
AC_SUBST(UI_LIBS)
|
|
AC_SUBST(WIDGET)
|
|
AM_CONDITIONAL(WIDGET, test x$WIDGET != x)
|
|
|
|
# If we're not using GTK+, must either find glib or use the replacement
|
|
# (as supplied by libspectrum)
|
|
if test "$UI" != gtk; then
|
|
AC_MSG_CHECKING(whether to use glib)
|
|
AC_ARG_WITH(glib,
|
|
[ --without-glib don't use glib],
|
|
if test "$withval" = no; then glib=no; else glib=yes; fi,
|
|
glib=yes)
|
|
AC_MSG_RESULT($glib)
|
|
if test "$glib" = yes; then
|
|
AM_PATH_GLIB_2_0(
|
|
2.20.0,
|
|
AC_DEFINE([HAVE_LIB_GLIB], 1, [Defined if we've got glib])
|
|
LIBS="$LIBS `pkg-config --libs glib-2.0`",
|
|
AC_MSG_WARN(glib not found - using libspectrum's replacement)
|
|
)
|
|
fi
|
|
fi
|
|
|
|
dnl Check that libspectrum is available
|
|
AC_ARG_WITH(libspectrum-prefix,
|
|
[ --with-libspectrum-prefix=PFX where libspectrum is installed (optional)],
|
|
LIBSPEC_CFLAGS=-I$withval/include; LIBSPEC_LIBS=-L$withval/lib,
|
|
LIBSPEC_CFLAGS=""; LIBSPEC_LIBS="")
|
|
ac_save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $LIBSPEC_CFLAGS $GTK_CFLAGS $GLIB_CFLAGS"
|
|
AC_CHECK_HEADERS(libspectrum.h,LIBSPEC_LIBS="$LIBSPEC_LIBS -lspectrum",
|
|
AC_MSG_ERROR(Sorry - I need libspectrum to be available))
|
|
CPPFLAGS="$ac_save_CPPFLAGS"
|
|
AC_SUBST(LIBSPEC_CFLAGS)
|
|
AC_SUBST(LIBSPEC_LIBS)
|
|
|
|
dnl Check if supplied libspectrum has support for compressed szx files
|
|
AC_MSG_CHECKING(whether libspectrum supports compressed szx snaps)
|
|
ac_save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $LIBSPEC_CFLAGS"
|
|
AC_TRY_COMPILE([#include <libspectrum.h>],[
|
|
int test = LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION;
|
|
],
|
|
AUTOLOAD_SNAPS=compressed; AC_MSG_RESULT(yes),
|
|
AUTOLOAD_SNAPS=uncompressed; AC_MSG_RESULT(no))
|
|
CPPFLAGS="$ac_save_CPPFLAGS"
|
|
AC_SUBST(AUTOLOAD_SNAPS)
|
|
AC_LINK_FILES([
|
|
lib/"$AUTOLOAD_SNAPS"/disk_plus3.szx
|
|
lib/"$AUTOLOAD_SNAPS"/tape_128.szx
|
|
lib/"$AUTOLOAD_SNAPS"/tape_16.szx
|
|
lib/"$AUTOLOAD_SNAPS"/tape_2048.szx
|
|
lib/"$AUTOLOAD_SNAPS"/tape_2068.szx
|
|
lib/"$AUTOLOAD_SNAPS"/tape_48.szx
|
|
lib/"$AUTOLOAD_SNAPS"/tape_plus2.szx
|
|
lib/"$AUTOLOAD_SNAPS"/tape_plus2a.szx
|
|
lib/"$AUTOLOAD_SNAPS"/tape_plus3.szx
|
|
lib/"$AUTOLOAD_SNAPS"/tape_plus3e.szx
|
|
lib/"$AUTOLOAD_SNAPS"/tape_pentagon.szx
|
|
lib/"$AUTOLOAD_SNAPS"/tape_scorpion.szx
|
|
lib/"$AUTOLOAD_SNAPS"/tape_se.szx
|
|
lib/"$AUTOLOAD_SNAPS"/tape_ts2068.szx],
|
|
[lib/disk_plus3.szx
|
|
lib/tape_128.szx
|
|
lib/tape_16.szx
|
|
lib/tape_2048.szx
|
|
lib/tape_2068.szx
|
|
lib/tape_48.szx
|
|
lib/tape_plus2.szx
|
|
lib/tape_plus2a.szx
|
|
lib/tape_plus3.szx
|
|
lib/tape_plus3e.szx
|
|
lib/tape_pentagon.szx
|
|
lib/tape_scorpion.szx
|
|
lib/tape_se.szx
|
|
lib/tape_ts2068.szx])
|
|
|
|
dnl Check if a version of libpng which supplies png_write_png is available
|
|
AC_MSG_CHECKING(whether PNG support requested)
|
|
AC_ARG_WITH(png,
|
|
[ --without-png don't use libpng],
|
|
if test "$withval" = no; then libpng=no; else libpng=yes; fi,
|
|
libpng=yes)
|
|
AC_MSG_RESULT($libpng)
|
|
if test "$libpng" = yes; then
|
|
AC_PATH_PROG([LIBPNG_CONFIG], [libpng-config])
|
|
if test -n "$LIBPNG_CONFIG"; then
|
|
PNG_CFLAGS=`libpng-config --cflags`
|
|
PNG_LIBS=`libpng-config --ldflags`
|
|
AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng])
|
|
else
|
|
ac_save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $PNG_CFLAGS"
|
|
ac_save_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$PNG_LIBS $LDFLAGS"
|
|
|
|
AC_CHECK_LIB( png, png_write_png,
|
|
[AC_CHECK_HEADER(
|
|
png.h,
|
|
[AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng]) PNG_LIBS='-lpng -lm -lz'],
|
|
[AC_CHECK_HEADERS(libpng/png.h,
|
|
[CPPFLAGS="$ac_save_CPPFLAGS $PNG_CFLAGS/libpng"
|
|
AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng]) PNG_LIBS='-lpng -lm -lz'],
|
|
[AC_MSG_WARN(png.h not found - saving screenshots disabled)
|
|
PNG_LIBS='']
|
|
)],
|
|
)],
|
|
[AC_MSG_WARN(png_write_png not found - saving screenshots disabled)
|
|
PNG_LIBS='']
|
|
)
|
|
|
|
CPPFLAGS="$ac_save_CPPFLAGS"
|
|
LDFLAGS="$ac_save_LDFLAGS"
|
|
fi
|
|
|
|
AC_SUBST(PNG_LIBS)
|
|
fi
|
|
|
|
dnl Check if a version of libasound which supplies pcm is available
|
|
AC_MSG_CHECKING(whether ALSA requested)
|
|
AC_ARG_WITH(alsa,
|
|
[ --without-alsa don't use libasound (ALSA)],
|
|
if test "$withval" = no; then libasound=no; else libasound=yes; fi,
|
|
libasound=yes)
|
|
AC_MSG_RESULT($libasound)
|
|
if test "$libasound" = yes; then
|
|
AC_CHECK_LIB( asound, snd_pcm_hw_params_set_period_size_near,
|
|
[AC_CHECK_HEADER(
|
|
alsa/asoundlib.h,
|
|
[alsa_available=yes],
|
|
[AC_MSG_WARN(alsa/asoundlib.h not found - no ALSA output)]
|
|
)],
|
|
[AC_MSG_WARN(snd_pcm_hw_params_set_period_size_near not found - no ALSA output)]
|
|
)
|
|
fi
|
|
|
|
dnl Check if a version of libao which supplies ao_open_live is available
|
|
AC_MSG_CHECKING(whether libao requested)
|
|
AC_ARG_WITH(libao,
|
|
[ --with-libao use libao for sound output],
|
|
if test "$withval" = no; then libao=no; else libao=yes; fi,
|
|
libao=no)
|
|
AC_MSG_RESULT($libao)
|
|
if test "$libao" = yes; then
|
|
AC_CHECK_LIB( ao, ao_open_live,
|
|
[AC_CHECK_HEADER(
|
|
ao/ao.h,
|
|
[ao_available=yes],
|
|
[AC_MSG_WARN(ao/ao.h not found - no libao sound output)]
|
|
)],
|
|
[AC_MSG_WARN(ao_open_live not found - no libao sound output)]
|
|
)
|
|
fi
|
|
|
|
dnl Check if DirectSound is available
|
|
AC_CHECK_HEADER(
|
|
dsound.h,
|
|
[dxsound_available=yes],
|
|
[AC_MSG_WARN(dsound.h not found - no DirectSound output)],
|
|
[#define DIRECTSOUND_VERSION 0x0700]
|
|
)
|
|
|
|
dnl Check if MS Windows Multimedia API sound is available
|
|
AC_CHECK_HEADER(
|
|
mmsystem.h,
|
|
[win32sound_available=yes],
|
|
[AC_MSG_WARN(mmsystem.h not found - no MS Windows Multimedia API sound output)],
|
|
[#include <windows.h>]
|
|
)
|
|
|
|
dnl Check if CoreAudio is available
|
|
AC_CHECK_HEADER(
|
|
CoreAudio/AudioHardware.h,
|
|
[coreaudio_available=yes],
|
|
[AC_MSG_WARN(CoreAudio/AudioHardware.h not found - no CoreAudio sound output)]
|
|
)
|
|
|
|
dnl
|
|
dnl Decide which sound routines to use
|
|
dnl
|
|
|
|
AC_MSG_CHECKING(which sound routines to use)
|
|
if test "$UI" = sdl; then
|
|
SOUND_LIBADD='sdlsound.$(OBJEXT)' SOUND_LIBS='' sound_fifo=yes
|
|
AC_MSG_RESULT(SDL)
|
|
elif test "$dxsound_available" = yes; then
|
|
SOUND_LIBADD='dxsound.$(OBJEXT)' SOUND_LIBS='-ldsound -lole32 -ldxguid'
|
|
AC_MSG_RESULT(DirectX)
|
|
AC_DEFINE([DIRECTSOUND_VERSION], 0x0700, [DirectX 7 or higher is required])
|
|
elif test "$win32sound_available" = yes; then
|
|
SOUND_LIBADD='win32sound.$(OBJEXT)' SOUND_LIBS='-lwinmm'
|
|
AC_MSG_RESULT(win32sound)
|
|
elif test "$alsa_available" = yes; then
|
|
SOUND_LIBADD='alsasound.$(OBJEXT)' SOUND_LIBS='-lasound'
|
|
AC_MSG_RESULT(ALSA)
|
|
elif test "$ao_available" = yes; then
|
|
SOUND_LIBADD='aosound.$(OBJEXT)' SOUND_LIBS='-lao'
|
|
AC_MSG_RESULT(libao)
|
|
elif test "$ac_cv_header_dsound_h" = yes; then
|
|
# Later selection between these two
|
|
SOUND_LIBADD='sunsound.$(OBJEXT) hpsound.$(OBJEXT)' SOUND_LIBS=''
|
|
AC_MSG_RESULT(Solaris or HP/UX)
|
|
elif test "$ac_cv_header_sys_soundcard_h" = yes; then
|
|
SOUND_LIBADD='osssound.$(OBJEXT)' SOUND_LIBS=''
|
|
AC_MSG_RESULT(OSS)
|
|
elif test "$ac_cv_header_sys_audioio_h" = yes; then
|
|
dnl OpenBSD
|
|
SOUND_LIBADD='sunsound.$(OBJEXT)' SOUND_LIBS=''
|
|
AC_MSG_RESULT(OpenBSD)
|
|
elif test "$coreaudio_available" = yes; then
|
|
SOUND_LIBADD='coreaudiosound.$(OBJEXT)' SOUND_LIBS='-framework CoreAudio -framework AudioUnit -framework CoreServices' sound_fifo=yes
|
|
AC_MSG_RESULT(CoreAudio)
|
|
elif test "$wii" = yes; then
|
|
SOUND_LIBADD='wiisound.$(OBJEXT)' SOUND_LIBS='' sound_fifo=yes
|
|
AC_MSG_RESULT(Wii)
|
|
else
|
|
SOUND_LIBADD='nullsound.$(OBJEXT)' SOUND_LIBS=''
|
|
AC_MSG_RESULT(none)
|
|
AC_DEFINE([NO_SOUND], 1, [Defined if no sound code is present])
|
|
fi
|
|
|
|
if test "$sound_fifo" = yes; then
|
|
dnl Strange construct used here as += doesn't seem to work on OS X
|
|
SOUND_LIBADD="$SOUND_LIBADD"' sfifo.$(OBJEXT)'
|
|
AC_DEFINE([SOUND_FIFO], 1, [Defined if the sound code uses a fifo])
|
|
fi
|
|
|
|
AC_SUBST(SOUND_LIBADD)
|
|
AC_SUBST(SOUND_LIBS)
|
|
|
|
dnl Are we supplying the ROMs or relying on another package?
|
|
AC_MSG_CHECKING(where to find the Spectrum ROM images)
|
|
AC_ARG_WITH(roms-dir,
|
|
[ --with-roms-dir=DIR location of the Spectrum ROM images],
|
|
,
|
|
unset withval
|
|
)
|
|
if test "$withval" = ""; then
|
|
echo 'we supply them'
|
|
else
|
|
echo "$withval"
|
|
AC_DEFINE_UNQUOTED(ROMSDIR, "$withval", [Location of the ROM images])
|
|
fi
|
|
|
|
AC_MSG_CHECKING(whether hardware joystick support requested)
|
|
AC_ARG_WITH(joystick,
|
|
[ --without-joystick use a real joystick for Kempston emulation etc.],
|
|
if test "$withval" = no; then stick=no; else stick=yes; fi,
|
|
stick=yes)
|
|
AC_MSG_RESULT($stick)
|
|
if test "$stick" = yes; then
|
|
dnl We prefer to use UI-specific joystick code. (Default.)
|
|
dnl If there is none, or you override this here, we use libjsw.
|
|
dnl (svgalib appears to dislike switched joysticks on the parallel port...)
|
|
case "$UI" in
|
|
svga|sdl|win32)
|
|
dnl Libraries such as svgalib provide their own joystick code.
|
|
AC_MSG_CHECKING([whether to use $UI's joystick support])
|
|
AC_ARG_ENABLE(ui-joystick,
|
|
[ --enable-ui-joystick use UI-specific joystick code (where supported)],
|
|
if test "$enableval" = no; then libjsw=yes; else libjsw=no; fi,
|
|
libjsw=no)
|
|
if test "$libjsw" = yes; then
|
|
AC_MSG_RESULT([no, use libjsw])
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE([USE_JOYSTICK], 1, [Defined if we're using hardware joysticks])
|
|
fi
|
|
;;
|
|
gtk|xlib)
|
|
dnl These UIs could use SDL library for handling joysticks
|
|
AC_MSG_CHECKING([whether to use $UI's joystick support])
|
|
AC_ARG_ENABLE(ui-joystick,
|
|
[ --enable-ui-joystick use UI-specific joystick code (where supported)],
|
|
if test "$enableval" = no; then libjsw=yes; else libjsw=no; fi,
|
|
libjsw=yes)
|
|
if test "$libjsw" = yes; then
|
|
AC_MSG_RESULT([no, use libjsw])
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
SDL_VERSION=1.2.4
|
|
AM_PATH_SDL($SDL_VERSION,
|
|
LIBS="$LIBS `sdl-config --libs`"
|
|
CPPFLAGS="$CPPFLAGS `sdl-config --cflags`"
|
|
AC_DEFINE([USE_JOYSTICK], 1, [Defined if we're using hardware joysticks]),
|
|
AC_MSG_WARN([SDL version $SDL_VERSION not found - joystick support disabled]))
|
|
fi
|
|
;;
|
|
*)
|
|
dnl Our only option is libjsw.
|
|
libjsw=yes
|
|
;;
|
|
esac
|
|
if test "$libjsw" = yes; then
|
|
dnl Look for libjsw. If missing, use QAOP<space>.
|
|
AC_CHECK_HEADERS(jsw.h,
|
|
LIBS="$LIBS -ljsw";
|
|
AC_DEFINE([USE_JOYSTICK], 1,
|
|
[Defined if we're using hardware joysticks]),
|
|
AC_MSG_WARN(jsw.h not found - joystick support disabled))
|
|
fi
|
|
fi
|
|
|
|
dnl See if libxml2 is available (for the config file handling)
|
|
AC_MSG_CHECKING(whether libxml2 support requested)
|
|
AC_ARG_WITH(libxml2,
|
|
[ --without-libxml2 use a libxml2 for settings],
|
|
if test "$withval" = no; then libxml2=no; else libxml2=yes; fi,
|
|
libxml2=yes)
|
|
AC_MSG_RESULT($libxml2)
|
|
if test "$libxml2" = yes; then
|
|
AM_PATH_XML2(2.0.0,AC_DEFINE([HAVE_LIB_XML2], 1,
|
|
[Defined if we've got libxml2]),
|
|
AC_WARN(libxml2 not found - config file will use ini format))
|
|
fi
|
|
|
|
dnl Work out which timer routines to use
|
|
AC_MSG_CHECKING(which timer routines to use)
|
|
if test "$UI" = sdl; then
|
|
TIMER_LIBADD='sdl.$(OBJEXT)'
|
|
AC_MSG_RESULT(SDL)
|
|
else
|
|
TIMER_LIBADD='native.$(OBJEXT)'
|
|
AC_MSG_RESULT(native)
|
|
fi
|
|
AC_SUBST(TIMER_LIBADD)
|
|
|
|
dnl See if Linux TAP devices are supported
|
|
AC_MSG_CHECKING(whether Linux TAP devices are supported)
|
|
ac_save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $LIBSPEC_CFLAGS"
|
|
AC_TRY_COMPILE([
|
|
#include <linux/if_tun.h>
|
|
#include <net/if.h>
|
|
#include <sys/ioctl.h>
|
|
],[
|
|
int test1 = IFF_TAP | IFF_NO_PI;
|
|
int test2 = TUNSETIFF;
|
|
],
|
|
AC_DEFINE([LINUX_TAP], 1, [Define to 1 if Linux TAP devices are supported.])
|
|
AC_MSG_RESULT(yes),
|
|
AC_MSG_RESULT(no))
|
|
|
|
CPPFLAGS="$ac_save_CPPFLAGS"
|
|
|
|
dnl Work out which standard routines we're missing
|
|
AC_MSG_CHECKING(which standard routines we're missing)
|
|
missing_routines=''
|
|
if test "$ac_cv_func_dirname" = no; then
|
|
missing_routines="$missing_routines"'dirname '
|
|
fi
|
|
AM_CONDITIONAL(COMPAT_DIRNAME, test "$ac_cv_func_dirname" = no)
|
|
if test "$ac_cv_func_getopt_long" = no; then
|
|
case "$target_os" in
|
|
amigaos|morphos)
|
|
dnl Our getopt_long replacement doesn't work, so don't use it
|
|
;;
|
|
*)
|
|
compat_getopt=yes
|
|
missing_routines="$missing_routines"'getopt_long '
|
|
;;
|
|
esac
|
|
fi
|
|
AM_CONDITIONAL(COMPAT_GETOPT, test "$compat_getopt" = yes)
|
|
if test "$ac_cv_func_mkstemp" = no; then
|
|
missing_routines="$missing_routines"'mkstemp '
|
|
fi
|
|
AM_CONDITIONAL(COMPAT_MKSTEMP, test "$ac_cv_func_mkstemp" = no)
|
|
if test "x$missing_routines" = x; then
|
|
missing_routines='(none)'
|
|
fi
|
|
AC_MSG_RESULT($missing_routines)
|
|
|
|
dnl Work out which compatibility routines to use
|
|
AC_MSG_CHECKING(which compatibility routines to use)
|
|
case "$target_os" in
|
|
amigaos)
|
|
COMPAT_OSNAME='amiga'
|
|
;;
|
|
morphos)
|
|
COMPAT_OSNAME='morphos'
|
|
;;
|
|
mingw32*)
|
|
COMPAT_OSNAME='win32'
|
|
;;
|
|
wii)
|
|
COMPAT_OSNAME='wii'
|
|
;;
|
|
*)
|
|
COMPAT_OSNAME='unix'
|
|
;;
|
|
esac
|
|
AC_MSG_RESULT($COMPAT_OSNAME)
|
|
COMPAT_SUBDIR="compat/$COMPAT_OSNAME"
|
|
AC_SUBST(COMPAT_SUBDIR)
|
|
AC_SUBST(COMPAT_OSNAME)
|
|
|
|
dnl Do we want the low memory compile?
|
|
AC_MSG_CHECKING(whether low memory compile requested)
|
|
AC_ARG_ENABLE(smallmem,
|
|
[ --enable-smallmem low memory compile needed],
|
|
if test "$enableval" = yes; then
|
|
smallmem=yes;
|
|
else
|
|
smallmem=no;
|
|
fi,
|
|
smallmem=no)
|
|
if test "$smallmem" = no; then
|
|
AC_DEFINE([HAVE_ENOUGH_MEMORY], 1, [Defined if we've got enough memory to compile z80_ops.c])
|
|
fi
|
|
AC_MSG_RESULT($smallmem)
|
|
|
|
dnl Do we want lots of warning messages?
|
|
AC_MSG_CHECKING(whether lots of warnings requested)
|
|
AC_ARG_ENABLE(warnings,
|
|
[ --enable-warnings give lots of warnings if using gcc],
|
|
if test "$enableval" = yes; then
|
|
warnings=yes;
|
|
else
|
|
warnings=no;
|
|
fi,
|
|
warnings=no)
|
|
AC_MSG_RESULT($warnings)
|
|
|
|
dnl If it appears we're using gcc as our compiler, turn on warnings
|
|
if test "$ac_cv_prog_gcc" = yes; then
|
|
CFLAGS="$CFLAGS -Wall"
|
|
dnl And possibly lots of warnings
|
|
if test "$warnings" = yes; then
|
|
CFLAGS="$CFLAGS -Wstrict-prototypes -Wmissing-prototypes -Winline -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Waggregate-return -W -Wsign-compare"
|
|
fi
|
|
fi
|
|
|
|
AC_OUTPUT(Makefile \
|
|
compat/amiga/Makefile \
|
|
compat/morphos/Makefile \
|
|
compat/unix/Makefile \
|
|
compat/wii/Makefile \
|
|
compat/win32/Makefile \
|
|
debugger/Makefile \
|
|
hacking/Makefile \
|
|
lib/Makefile \
|
|
machines/Makefile \
|
|
man/Makefile \
|
|
peripherals/Makefile \
|
|
peripherals/disk/Makefile \
|
|
peripherals/ide/Makefile \
|
|
peripherals/nic/Makefile \
|
|
peripherals/flash/Makefile \
|
|
perl/Makefile \
|
|
perl/Fuse/Makefile \
|
|
pokefinder/Makefile \
|
|
roms/Makefile \
|
|
sound/Makefile \
|
|
timer/Makefile \
|
|
ui/Makefile \
|
|
ui/fb/Makefile \
|
|
ui/wii/Makefile \
|
|
ui/gtk/Makefile \
|
|
ui/svga/Makefile \
|
|
ui/sdl/Makefile \
|
|
ui/scaler/Makefile \
|
|
ui/widget/Makefile \
|
|
ui/win32/fuse.manifest \
|
|
ui/win32/Makefile \
|
|
ui/win32/icons/Makefile \
|
|
ui/win32/installer/Makefile \
|
|
ui/xlib/Makefile \
|
|
unittests/Makefile \
|
|
z80/Makefile \
|
|
z80/tests/Makefile)
|