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

AC_INIT(config.h.in)
AC_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(mt-daapd,0.2.1.1)

AC_USE_SYSTEM_EXTENSIONS

dnl Checks for programs.
AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_LIBTOOL

AC_CHECK_HEADERS([sys/wait.h])
AC_CHECK_HEADERS([sys/param.h])
AC_CHECK_HEADERS([sys/select.h])
AC_CHECK_HEADERS([dirent.h])
AC_CHECK_FUNCS(strptime)
AC_CHECK_FUNCS(strtok_r)
AC_CHECK_FUNCS(timegm)
AC_CHECK_FUNCS(va_copy)
AC_CHECK_FUNCS(__va_copy)

AC_FUNC_SETPGRP

if test "x$prefix" != xNONE -a "x$prefix" != "x/usr"; then
    CONFFILE="$prefix/etc/mt-daapd.conf"
else 
    if test "x$prefix" = "xNONE"; then
        CONFFILE="/usr/local/etc/mt-daapd.conf"
    else
        CONFFILE="/etc/mt-daapd.conf"
    fi
fi


AC_DEFINE_UNQUOTED(CONFFILE,"${CONFFILE}",Where the config file is)

use_ffmpeg=true;
use_upnp=false;
use_iconv=true

AC_ARG_ENABLE(iconv, AC_HELP_STRING([--enable-iconv], [Enable iconv conversion]),
                        [ case "${enableval}" in
			yes) use_iconv=true;;
			no) use_iconv=false;;
			*) AC_MSG_ERROR(bad value ${enableval} for --enable-iconv);;
			esac ])

AC_ARG_ENABLE(oggvorbis, AC_HELP_STRING([--enable-oggvorbis], [Enable Ogg/Vorbis support]),
			   [ case "${enableval}" in
			   yes) use_oggvorbis=true;
                           CPPFLAGS="${CPPFLAGS} -DOGGVORBIS";;
			   no) use_oggvorbis=false;;
			   *) AC_MSG_ERROR(bad value ${enableval} for --enable-oggvorbis);;
			   esac ])

AC_ARG_ENABLE(flac, AC_HELP_STRING([--enable-flac], [Enable FLAC support]),
                      use_flac=true;
                      CPPFLAGS="${CPPFLAGS} -DFLAC")

AC_ARG_ENABLE(musepack, AC_HELP_STRING([--enable-musepack], [Enable Musepack support]),
                      use_musepack=true;
                      CPPFLAGS="${CPPFLAGS} -DMUSEPACK")

AC_ARG_ENABLE(ffmpeg, AC_HELP_STRING([--disable-ffmpeg], [Disable ffmpeg transcoding plugin]),
                      use_ffmpeg=false)

AC_ARG_ENABLE(upnp, AC_HELP_STRING([--enable-upnp], [Enable upnp support]),
                      CPPFLAGS="${CPPFLAGS} -DUPNP"; use_upnp=true;)

AM_CONDITIONAL(COND_OGGVORBIS, test x$use_oggvorbis = xtrue)
AM_CONDITIONAL(COND_FLAC, test x$use_flac = xtrue)
AM_CONDITIONAL(COND_MUSEPACK, test x$use_musepack = xtrue)
AM_CONDITIONAL(COND_FFMPEG,test x$use_ffmpeg = xtrue)
AM_CONDITIONAL(COND_UPNP,test x$use_upnp = xtrue)

AC_CHECK_FUNCS(strcasestr strsep)

dnl Checks for libraries.
if test x$use_iconv = xtrue; then
	AM_ICONV
fi

PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.24 ])
PKG_CHECK_MODULES(SQLITE3, [ sqlite3 ],
	AC_DEFINE(HAVE_SQLITE3, 1, [define if sqlite3 is available]))
PKG_CHECK_MODULES(ID3TAG, [ id3tag ])

if test x$use_oggvorbis = xtrue; then
	PKG_CHECK_MODULES(OGGVORBIS, [ ogg vorbis vorbisfile ])
fi

if test x$use_flac = xtrue; then
	PKG_CHECK_MODULES(FLAC, [ flac ])
fi

if test x$use_musepack = xtrue; then
	PKG_CHECK_MODULES(TAGLIB, [ taglib_c ])
fi

if test x$use_ffmpeg = xtrue; then
	PKG_CHECK_MODULES(FFMPEG, [ libavcodec libavformat ])
fi

AC_CHECK_HEADERS(getopt.h,,)
AC_CHECK_HEADERS(stdint.h,,)

AC_REPLACE_FUNCS(strcasestr)
AC_REPLACE_FUNCS(strsep)
AC_CHECK_FUNCS(atoll)

dnl Checks for header files.
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h syslog.h unistd.h \
	sys/filio.h termio.h)

dnl Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_TIME

dnl Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_TYPE_SIGNAL
AC_CHECK_FUNCS(select socket strdup strerror)

AC_CHECK_LIB(dl, dlsym, LIBDL=-ldl)
AC_SUBST(LIBDL)

dnl check to see if we need -lsocket (solaris)
V_NETLIBS=""
AC_CHECK_LIB(socket,socket,V_NETLIBS="-lsocket $V_NETLIBS",,)
AC_SUBST(V_NETLIBS)

AC_DEFINE_UNQUOTED(HOST, "$host", [host triplet])

AC_OUTPUT(src/Makefile src/plugins/Makefile tools/Makefile admin-root/Makefile admin-root/lib-js/Makefile admin-root/lib-js/script.aculo.us/Makefile contrib/Makefile contrib/init.d/Makefile Makefile)