dnl ***
dnl *** Process this file with autoconf to produce a configure script.
dnl ***

dnl Require autoconf 2.60 or later
AC_PREREQ([2.60])

dnl Initialize
AC_INIT([XMMS-SID], [0.8.0rc1], [ccr@tnsp.org])
AC_COPYRIGHT([[(C) 2003-2007 Matti 'ccr' H�m�l�inen]])
AC_CONFIG_SRCDIR([src/xmms-sid.h])
AM_INIT_AUTOMAKE
AC_CONFIG_HEADERS([src/config.h])
AM_GNU_GETTEXT_VERSION([0.16.1])
AM_GNU_GETTEXT([external])


dnl ***
dnl *** Define some templates
dnl ***
AH_TEMPLATE([HAVE_SONG_POSITION],[Define if you have XMMS patched with the songpos patch.])
AH_TEMPLATE([HAVE_XMMSEXTRA],[Define if you have XMMS version 1.2.5 or later and you want XMMS-SID to support some extra features.])
AH_TEMPLATE([HAVE_SIDPLAY1],[Define if you have and want to use libSIDPlay 1])
AH_TEMPLATE([HAVE_SIDPLAY2],[Define if you have and want to use libSIDPlay 2])
AH_TEMPLATE([HAVE_RESID_BUILDER],[Define if you have reSID with libSIDPlay 2])
AH_TEMPLATE([HAVE_HARDSID_BUILDER],[Define if you have HardSID with libSIDPlay 2])
AH_TEMPLATE([HAVE_THEMETUNE],[Define if you want to build code to play XMMS-SID theme SID-tune. The tune needs to be installed too, though.])


dnl ***
dnl *** Some general checks
dnl ***
AC_PREFIX_PROGRAM([xmms])
AC_DISABLE_STATIC
AC_LIBTOOL_DLOPEN
AC_LIB_RPATH
AM_PROG_LIBTOOL
AC_SYS_LARGEFILE


dnl ***
dnl *** Checks for programs
dnl ***
AC_PROG_CC
AC_PROG_CPP
AC_PROG_CXX
AC_PROG_CXXCPP
AC_PROG_INSTALL


dnl ***
dnl *** Checks for generic libraries
dnl ***
AC_CHECK_HEADER([pthread.h],,AC_MSG_ERROR([[*** POSIX thread support not found. Strange, maybe you don't have some development packages installed?]]))
AM_PATH_GLIB([1.2.5],,AC_MSG_ERROR([[*** GLib >= 1.2.5 not found. You either don't have GLib at all or your GLib is too old. Latest GLib can be found from Gtk+ homepages (http://www.gtk.org/)]]))
AM_PATH_GTK([1.2.5],,AC_MSG_ERROR([[*** Gtk+ >= 1.2.5 not found. You either don't have Gtk+ at all or your Gtk+ is too old. Latest Gtk+ can be found from Gtk+ homepages (http://www.gtk.org/)]]), gthread)


dnl ***
dnl *** Checks for header files, types and functions
dnl ***
AC_HEADER_STDC
AC_CHECK_HEADERS([stdlib.h string.h unistd.h])

AC_TYPE_SIZE_T
AC_C_CONST
AC_C_INLINE
AC_CHECK_FUNCS([memset],[],[[*** memset function not found. Your libc has failed you.]])


dnl ***
dnl *** Enable or disable themetune support/installation
dnl ***
AC_ARG_ENABLE([themetune],
[
  --disable-themetune   Disable XMMS-SID theme song-related code and
                        installation of the SID-tune file. The tune is
                        not under GNU GPL, refer to README for license.
],[
if test "x$enableval" = "xyes"; then
	OPT_THEMETUNE=yes
else
	if test "x$enableval" = "xno"; then
		OPT_THEMETUNE=no
	else
		OPT_THEMETUNE=no
	fi
fi
],[OPT_THEMETUNE=yes])
AC_DEFINE([HAVE_THEMETUNE],[test "x$OPT_THEMETUNE" = "xyes"])


dnl ***
dnl *** libSIDPlay 1 options
dnl ***
AC_ARG_WITH([sidplay1],
[
  --with-sidplay1=PREFIX   Enable SIDPlay1 with install-PREFIX],
[
if test "x$withval" = "xyes"; then
xs_sidplay1=yes
xs_sidplay1_library=""
xs_sidplay1_includes=""
else
	if test "x$withval" = "xno"; then
		xs_sidplay1=no
	else
		xs_sidplay1=yes
		xs_sidplay1_includes="$withval/include"
		xs_sidplay1_library="$withval/lib"
	fi
fi
],[
	xs_sidplay1=try
	xs_sidplay1_library=""
	xs_sidplay1_includes=""
])


AC_ARG_WITH([sidplay1-inc],
[  --with-sidplay1-inc=DIR    Where the SIDPlay1 headers are located],
[xs_sidplay1_includes="$withval"],)

AC_ARG_WITH([sidplay1-lib],
[  --with-sidplay1-lib=DIR    Where the SIDPlay1 library is installed],
[xs_sidplay1_library="$withval"],)


dnl ***
dnl *** libSIDPlay 2 options
dnl ***
AC_ARG_WITH([sidplay2],
[
  --with-sidplay2=PREFIX   Enable SIDPlay2 with install-PREFIX],
[
if test "x$withval" = "xyes"; then
	xs_sidplay2=yes
	xs_sidplay2_library=""
	xs_sidplay2_includes=""
else
	if test "x$withval" = "xno"; then
		xs_sidplay2=no
	else
		xs_sidplay2=yes
		xs_sidplay2_includes="$withval/include"
		xs_sidplay2_library="$withval/lib"
	fi
fi
],[
	xs_sidplay2=try
	xs_sidplay2_library=""
	xs_sidplay2_includes=""
])


AC_ARG_WITH([sidplay2-inc],
[  --with-sidplay2-inc=DIR    Where the SIDPlay2 headers are located],
[xs_sidplay2_includes="$withval"],)


AC_ARG_WITH([sidplay2-lib],
[  --with-sidplay2-lib=DIR    Where the SIDPlay2 library is installed],
[xs_sidplay2_library="$withval"],)


dnl ***
dnl *** Determine if libraries are wanted and available
dnl ***
OPT_SIDPLAY1="no"
if test "x$xs_sidplay1" = "xtry"; then
	XS_PATH_LIBSIDPLAY1
else
	if test "x$xs_sidplay1" = "xyes"; then
		XS_PATH_LIBSIDPLAY1
		if test "x$xs_have_sidplay1" = "xno"; then
			AC_MSG_ERROR([libSIDPlay1 library and/or headers were not found!])
		fi
	fi
fi
if test "x$xs_have_sidplay1" = "xyes"; then
	AC_DEFINE([HAVE_SIDPLAY1])
	OPT_SIDPLAY1="yes"
fi



OPT_SIDPLAY2="no"
LIBSIDPLAY2_REQUIRED_VERSION="2.1.0"
if test "x$xs_sidplay2" = "xtry"; then
	XS_PATH_LIBSIDPLAY2
else
	if test "x$xs_sidplay2" = "xyes"; then
		XS_PATH_LIBSIDPLAY2
		if test "x$xs_have_sidplay2" = "xno"; then
			AC_MSG_ERROR([libSIDPlay2 library and/or headers were not found!])
		fi
	fi
fi
if test "x$xs_have_sidplay2" = "xyes"; then
	AC_DEFINE([HAVE_SIDPLAY2])
	OPT_SIDPLAY2="yes"
	BUILDERS_FIND
	BUILDERS_FIND_RESID
	BUILDERS_FIND_HARDSID
	if test "x$builders_available" = "xno"; then
		AC_MSG_ERROR([No builder modules were found in the sidbuilders directory!]);
	fi
fi


dnl ***
dnl *** Check if we have some emulator library available?
dnl ***
if test "x$OPT_SIDPLAY1" = "xno"; then
if test "x$OPT_SIDPLAY2" = "xno"; then
	AC_MSG_ERROR([Either libSIDPlay1 or libSIDPlay2 is required! Please read INSTALL for more information!])
fi
fi


dnl ***
dnl *** Song position patch check
dnl ***
AC_MSG_CHECKING([for song position patch])
tmp_CPPFLAGS=$CPPFLAGS
if test -d "$prefix"; then
	CPPFLAGS="$CPPFLAGS -I${prefix}/include"
fi

AC_EGREP_HEADER([set_song_position],[xmms/plugin.h],[
	OPT_SONGPOS="yes"
	AC_DEFINE([HAVE_SONG_POSITION])
	AC_MSG_RESULT([yes])
],[
	OPT_SONGPOS="no"
	AC_MSG_RESULT([no])
])
CPPFLAGS=$tmp_CPPFLAGS


dnl ***
dnl *** Check XMMS version
dnl ***
AM_PATH_XMMS([1.2.0],, [
AC_MSG_ERROR([*** XMMS >= 1.2.0 not found. You need XMMS v1.2.0 or later to use XMMS-SID plugin.])
])
libdir=$XMMS_INPUT_PLUGIN_DIR

XMMS_TEST_VERSION([$XMMS_VERSION], [1.2.5], [
	AC_DEFINE([HAVE_XMMSEXTRA])
	OPT_XMMSEXTRA="yes"
], [
	OPT_XMMSEXTRA="no"
])


dnl ***
dnl *** And finally, output the all generatable files!
dnl ***
AC_CONFIG_FILES([
Makefile
xmms-sid.spec
po/Makefile.in
])
AC_OUTPUT


dnl ***
dnl *** Show the result message
dnl ***
AC_MSG_RESULT([
	XMMS-SID has been configured successfully:

	Installation directory        : $libdir
	XMMS >= v1.2.5 extra features : $OPT_XMMSEXTRA
	Song-position patch           : $OPT_SONGPOS
	libSIDPlay 1 support          : $OPT_SIDPLAY1
	libSIDPlay 2 support          : $OPT_SIDPLAY2
		Included builders     : $xs_builders
	XMMS-SID theme SID-tune       : $OPT_THEMETUNE
	Translations (i18n/nls)       : $USE_NLS
])
