2003-10-13 11:03:14 -04:00
|
|
|
dnl Process this file with autoconf to produce a configure script.
|
2009-04-01 08:33:00 -04:00
|
|
|
|
2016-01-01 06:18:13 -05:00
|
|
|
AC_INIT([forked-daapd], [23.4])
|
2014-04-14 16:44:05 -04:00
|
|
|
AC_CONFIG_SRCDIR([config.h.in])
|
2010-06-21 11:50:09 -04:00
|
|
|
AC_CONFIG_MACRO_DIR([m4])
|
2014-04-14 16:44:05 -04:00
|
|
|
AC_CONFIG_HEADERS([config.h])
|
2014-12-31 04:12:28 -05:00
|
|
|
AM_INIT_AUTOMAKE([foreign -Wno-portability subdir-objects])
|
2003-10-13 11:03:14 -04:00
|
|
|
|
2007-01-16 20:06:16 -05:00
|
|
|
AC_USE_SYSTEM_EXTENSIONS
|
|
|
|
|
2003-10-13 11:03:14 -04:00
|
|
|
dnl Checks for programs.
|
|
|
|
AC_PROG_CC
|
2009-04-01 10:20:53 -04:00
|
|
|
AM_PROG_CC_C_O
|
2009-04-05 12:22:48 -04:00
|
|
|
LT_INIT([disable-static])
|
2006-10-18 23:08:13 -04:00
|
|
|
|
2011-03-31 11:33:12 -04:00
|
|
|
AC_CHECK_PROG(GPERF, [gperf], [gperf])
|
|
|
|
if test "x$GPERF" = x; then
|
|
|
|
AC_MSG_ERROR([GNU gperf not found, please install it])
|
|
|
|
fi
|
|
|
|
AC_SUBST(GPERF)
|
|
|
|
|
2009-06-02 09:51:38 -04:00
|
|
|
AC_CHECK_PROG(ANTLR, [antlr3], [antlr3])
|
|
|
|
if test "x$ANTLR" = x; then
|
2010-09-04 06:57:10 -04:00
|
|
|
if test -d $srcdir/src/pregen; then
|
|
|
|
for f in $srcdir/src/pregen/*; do
|
|
|
|
bf=`basename $f`
|
|
|
|
ln -sf pregen/$bf $srcdir/src/$bf
|
|
|
|
done
|
|
|
|
AC_MSG_NOTICE([antlr3 wrapper not found, using pre-generated files])
|
2009-06-02 09:51:38 -04:00
|
|
|
else
|
2010-09-04 06:57:10 -04:00
|
|
|
AC_MSG_ERROR([antlr3 wrapper not found and pre-generated files not available])
|
2009-06-02 09:51:38 -04:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
AC_SUBST(ANTLR)
|
2010-09-04 06:57:10 -04:00
|
|
|
AM_CONDITIONAL(COND_ANTLR, test "x$ANTLR" != x)
|
2009-06-02 09:51:38 -04:00
|
|
|
|
2010-02-02 15:00:06 -05:00
|
|
|
CFLAGS="$CFLAGS -Wall -D_LARGEFILE_SOURCE"
|
2009-04-05 12:31:00 -04:00
|
|
|
|
2006-02-26 03:46:24 -05:00
|
|
|
AC_CHECK_HEADERS([sys/wait.h])
|
2006-03-07 02:57:03 -05:00
|
|
|
AC_CHECK_HEADERS([sys/param.h])
|
2007-04-17 23:10:40 -04:00
|
|
|
AC_CHECK_HEADERS([sys/select.h])
|
2006-10-08 19:14:37 -04:00
|
|
|
AC_CHECK_HEADERS([dirent.h])
|
2015-01-14 15:50:25 -05:00
|
|
|
AC_CHECK_HEADERS([regex.h])
|
2010-02-02 14:59:46 -05:00
|
|
|
AC_CHECK_FUNCS(posix_fadvise)
|
2006-02-26 03:46:24 -05:00
|
|
|
AC_CHECK_FUNCS(strptime)
|
|
|
|
AC_CHECK_FUNCS(strtok_r)
|
2006-04-15 04:53:56 -04:00
|
|
|
AC_CHECK_FUNCS(timegm)
|
2014-06-16 17:31:44 -04:00
|
|
|
AC_CHECK_FUNCS(euidaccess)
|
2016-03-17 17:20:16 -04:00
|
|
|
AC_CHECK_FUNCS(pipe2)
|
2006-04-15 04:53:56 -04:00
|
|
|
|
2016-04-12 16:11:56 -04:00
|
|
|
AC_SEARCH_LIBS([inotify_add_watch], [inotify], [], AC_MSG_ERROR([inotify not found]))
|
|
|
|
|
2010-02-02 15:00:06 -05:00
|
|
|
dnl Large File Support (LFS)
|
|
|
|
AC_SYS_LARGEFILE
|
|
|
|
AC_TYPE_OFF_T
|
|
|
|
|
2003-10-13 11:03:14 -04:00
|
|
|
dnl Checks for libraries.
|
2010-06-21 11:50:09 -04:00
|
|
|
gl_LIBUNISTRING
|
|
|
|
|
|
|
|
if test x$HAVE_LIBUNISTRING != xyes; then
|
|
|
|
AC_MSG_ERROR([GNU libunistring is required])
|
|
|
|
fi
|
|
|
|
|
2010-05-03 12:19:41 -04:00
|
|
|
PKG_CHECK_MODULES(ZLIB, [ zlib ])
|
2009-04-18 08:14:26 -04:00
|
|
|
PKG_CHECK_MODULES(CONFUSE, [ libconfuse ])
|
2009-04-01 10:20:53 -04:00
|
|
|
PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.24 ])
|
2010-04-04 15:26:55 -04:00
|
|
|
PKG_CHECK_MODULES(SQLITE3, [ sqlite3 >= 3.5.0 ])
|
2010-04-26 12:24:09 -04:00
|
|
|
|
|
|
|
save_LIBS="$LIBS"
|
|
|
|
LIBS="$SQLITE3_LIBS"
|
2010-04-26 12:24:09 -04:00
|
|
|
dnl Check that SQLite3 has the unlock notify API built-in
|
|
|
|
AC_CHECK_LIB([sqlite3], [sqlite3_unlock_notify], [], AC_MSG_ERROR([SQLite3 was built without unlock notify support]))
|
2010-04-26 12:24:09 -04:00
|
|
|
dnl Check that SQLite3 has been built with threadsafe operations
|
|
|
|
AC_MSG_CHECKING([if SQLite3 was built with threadsafe operations support])
|
|
|
|
AC_LANG_PUSH([C])
|
|
|
|
AC_RUN_IFELSE(
|
|
|
|
[AC_LANG_PROGRAM([dnl
|
|
|
|
#include <sqlite3.h>
|
|
|
|
], [dnl
|
|
|
|
int ret = sqlite3_config(SQLITE_CONFIG_MULTITHREAD);
|
|
|
|
if (ret != SQLITE_OK)
|
|
|
|
return 1;
|
|
|
|
return 0;])],
|
|
|
|
[AC_MSG_RESULT([yes])], [AC_MSG_ERROR([SQLite3 was not built with threadsafe operations support])],
|
|
|
|
[AC_MSG_RESULT([runtime will tell])])
|
|
|
|
AC_LANG_POP([C])
|
|
|
|
LIBS="$save_LIBS"
|
|
|
|
|
2015-10-09 17:58:27 -04:00
|
|
|
PKG_CHECK_MODULES(LIBAV, [ libavformat libavcodec libswscale libavutil libavfilter ])
|
2014-01-02 16:49:18 -05:00
|
|
|
|
2015-10-09 17:58:27 -04:00
|
|
|
dnl Checks for misc libav and ffmpeg API differences
|
2010-12-04 09:22:39 -05:00
|
|
|
save_LIBS="$LIBS"
|
2014-10-16 16:16:25 -04:00
|
|
|
AC_CHECK_LIB([avcodec], [avcodec_find_best_pix_fmt_of_list],
|
2015-12-18 15:54:20 -05:00
|
|
|
AC_DEFINE(HAVE_FFMPEG, 1, [Define to 1 if you have ffmpeg/libav with avcodec_find_best_pix_fmt_of_list]),,[-lavutil])
|
2015-10-09 17:58:27 -04:00
|
|
|
|
|
|
|
AC_CHECK_LIB([avfilter], [av_buffersrc_add_frame_flags],
|
|
|
|
AC_DEFINE(HAVE_LIBAV_BUFFERSRC_ADD_FRAME_FLAGS, 1, [Define to 1 if you have ffmpeg/libav with av_buffersrc_add_frame_flags]))
|
|
|
|
AC_CHECK_LIB([avfilter], [av_buffersink_get_frame],
|
|
|
|
AC_DEFINE(HAVE_LIBAV_BUFFERSINK_GET_FRAME, 1, [Define to 1 if you have ffmpeg/libav with av_buffersink_get_frame]))
|
|
|
|
AC_CHECK_LIB([avfilter], [avfilter_graph_parse_ptr],
|
|
|
|
AC_DEFINE(HAVE_LIBAV_GRAPH_PARSE_PTR, 1, [Define to 1 if you have ffmpeg/libav with avfilter_graph_parse_ptr]))
|
2016-01-05 17:22:01 -05:00
|
|
|
AC_CHECK_LIB([avcodec], [av_packet_unref],
|
|
|
|
AC_DEFINE(HAVE_LIBAV_PACKET_UNREF, 1, [Define to 1 if you have ffmpeg/libav with av_packet_unref]),,[-lavutil])
|
2015-10-09 17:58:27 -04:00
|
|
|
AC_CHECK_LIB([avcodec], [av_packet_rescale_ts],
|
2015-12-18 15:54:20 -05:00
|
|
|
AC_DEFINE(HAVE_LIBAV_PACKET_RESCALE_TS, 1, [Define to 1 if you have ffmpeg/libav with av_packet_rescale_ts]),,[-lavutil])
|
2015-10-09 17:58:27 -04:00
|
|
|
AC_CHECK_LIB([avformat], [avformat_alloc_output_context2],
|
|
|
|
AC_DEFINE(HAVE_LIBAV_ALLOC_OUTPUT_CONTEXT2, 1, [Define to 1 if you have ffmpeg/libav with avformat_alloc_output_context2]))
|
|
|
|
AC_CHECK_LIB([avutil], [av_frame_alloc],
|
|
|
|
AC_DEFINE(HAVE_LIBAV_FRAME_ALLOC, 1, [Define to 1 if you have ffmpeg/libav with av_frame_alloc]))
|
|
|
|
AC_CHECK_LIB([avutil], [av_frame_get_best_effort_timestamp],
|
|
|
|
AC_DEFINE(HAVE_LIBAV_BEST_EFFORT_TIMESTAMP, 1, [Define to 1 if you have ffmpeg/libav with av_frame_get_best_effort_timestamp]))
|
2016-01-07 16:48:04 -05:00
|
|
|
AC_CHECK_LIB([avutil], [av_image_fill_arrays],
|
|
|
|
AC_DEFINE(HAVE_LIBAV_IMAGE_FILL_ARRAYS, 1, [Define to 1 if you have ffmpeg/libav with av_image_fill_arrays]))
|
2016-01-05 17:22:01 -05:00
|
|
|
AC_CHECK_LIB([avutil], [av_image_get_buffer_size],
|
|
|
|
AC_DEFINE(HAVE_LIBAV_IMAGE_GET_BUFFER_SIZE, 1, [Define to 1 if you have ffmpeg/libav with av_image_get_buffer_size]))
|
2015-10-09 17:58:27 -04:00
|
|
|
|
|
|
|
AC_CHECK_HEADERS([libavutil/channel_layout.h])
|
|
|
|
AC_CHECK_HEADERS([libavutil/mathematics.h])
|
2010-12-04 09:22:39 -05:00
|
|
|
LIBS="$save_LIBS"
|
2010-09-15 12:21:19 -04:00
|
|
|
|
2009-04-24 09:41:20 -04:00
|
|
|
PKG_CHECK_MODULES(MINIXML, [ mxml ])
|
2009-04-05 04:06:03 -04:00
|
|
|
|
2015-10-19 15:15:29 -04:00
|
|
|
PKG_CHECK_MODULES(LIBEVENT, [ libevent >= 2 ])
|
2015-04-24 16:11:08 -04:00
|
|
|
PKG_CHECK_EXISTS([ libevent >= 2.1.4 ], ,
|
|
|
|
AC_DEFINE(HAVE_LIBEVENT2_OLD, 1, [Define to 1 if you have libevent 2 (<2.1.4)])
|
|
|
|
)
|
2009-04-07 06:50:46 -04:00
|
|
|
|
2009-06-02 09:51:38 -04:00
|
|
|
AC_CHECK_HEADER(antlr3.h, , AC_MSG_ERROR([antlr3.h not found]))
|
|
|
|
AC_CHECK_LIB([antlr3c], [antlr3BaseRecognizerNew], [ANTLR3C_LIBS="-lantlr3c"], AC_MSG_ERROR([ANTLR3 C runtime (libantlr3c) not found]))
|
2011-06-24 12:13:52 -04:00
|
|
|
AC_CHECK_LIB([antlr3c], [antlr3NewAsciiStringInPlaceStream],
|
|
|
|
AC_DEFINE(ANTLR3C_NEW_INPUT, 0, [define if antlr3 C runtime uses new input routines]),
|
|
|
|
AC_DEFINE(ANTLR3C_NEW_INPUT, 1, [define if antlr3 C runtime uses new input routines]))
|
2009-06-02 09:51:38 -04:00
|
|
|
AC_SUBST(ANTLR3C_LIBS)
|
|
|
|
|
2011-02-06 11:25:26 -05:00
|
|
|
AM_PATH_LIBGCRYPT([1:1.2.0], , AC_MSG_ERROR([libgcrypt not found]))
|
|
|
|
AM_PATH_GPG_ERROR([1.6], , AC_MSG_ERROR([libgpg-error not found]))
|
2010-02-05 12:38:39 -05:00
|
|
|
|
2015-07-21 17:00:55 -04:00
|
|
|
case "$host" in
|
|
|
|
*-*-linux-*)
|
|
|
|
AC_CHECK_HEADERS([sys/eventfd.h])
|
|
|
|
AC_CHECK_FUNC(eventfd_write, AC_DEFINE(HAVE_EVENTFD, 1, [Define to 1 if you have eventfd]))
|
|
|
|
|
|
|
|
AC_CHECK_HEADER(sys/signalfd.h, , AC_MSG_ERROR([signalfd required; glibc 2.9+ recommended]))
|
|
|
|
|
|
|
|
AC_CHECK_HEADER(sys/timerfd.h, , AC_MSG_ERROR([timerfd required; glibc 2.8+ recommended]))
|
|
|
|
AC_CHECK_FUNC(timerfd_create, , AC_MSG_ERROR([timerfd required; glibc 2.8+ recommended]))
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
AC_CHECK_SIZEOF(void *)
|
|
|
|
|
|
|
|
AC_CHECK_HEADERS(getopt.h,,)
|
|
|
|
AC_CHECK_HEADERS(stdint.h,,)
|
|
|
|
|
|
|
|
dnl --- Begin configuring the options ---
|
|
|
|
dnl iTunes playlists with libplist
|
|
|
|
AC_ARG_ENABLE(itunes, AS_HELP_STRING([--enable-itunes], [enable iTunes library support (default=no)]))
|
|
|
|
AS_IF([test "x$enable_itunes" = "xyes"], [
|
|
|
|
CPPFLAGS="${CPPFLAGS} -DITUNES"
|
2009-12-09 13:16:20 -05:00
|
|
|
PKG_CHECK_MODULES(LIBPLIST, [ libplist >= 0.16 ])
|
2015-07-21 17:00:55 -04:00
|
|
|
])
|
|
|
|
AM_CONDITIONAL(COND_ITUNES, [test "x$enable_itunes" = "xyes"])
|
2009-11-22 05:09:59 -05:00
|
|
|
|
2015-07-21 17:00:55 -04:00
|
|
|
dnl Spotify with dynamic linking to libspotify
|
|
|
|
AC_ARG_ENABLE(spotify, AS_HELP_STRING([--enable-spotify], [enable Spotify library support (default=no)]))
|
|
|
|
AS_IF([test "x$enable_spotify" = "xyes"], [
|
|
|
|
CPPFLAGS="${CPPFLAGS} -DSPOTIFY"
|
2014-03-11 18:20:29 -04:00
|
|
|
AC_CHECK_HEADER(libspotify/api.h, , AC_MSG_ERROR([libspotify/api.h not found]))
|
2014-03-13 18:33:35 -04:00
|
|
|
AC_DEFINE(HAVE_SPOTIFY_H, 1, [Define to 1 if you have the <libspotify/api.h> header file.])
|
2015-07-21 17:00:55 -04:00
|
|
|
|
2014-03-13 18:33:35 -04:00
|
|
|
dnl Don't link to libspotify, but instead enable dynamic linking
|
|
|
|
SPOTIFY_CFLAGS="-rdynamic"
|
|
|
|
SPOTIFY_LIBS="-ldl"
|
|
|
|
AC_SUBST(SPOTIFY_CFLAGS)
|
|
|
|
AC_SUBST(SPOTIFY_LIBS)
|
2015-07-21 17:00:55 -04:00
|
|
|
])
|
|
|
|
AM_CONDITIONAL(COND_SPOTIFY, [test "x$enable_spotify" = "xyes"])
|
2014-03-11 18:20:29 -04:00
|
|
|
|
2015-07-21 17:00:55 -04:00
|
|
|
dnl LastFM support with libcurl
|
|
|
|
AC_ARG_ENABLE(lastfm, AS_HELP_STRING([--enable-lastfm], [enable LastFM support (default=no)]))
|
|
|
|
AS_IF([test "x$enable_lastfm" = "xyes"], [
|
|
|
|
CPPFLAGS="${CPPFLAGS} -DLASTFM"
|
2014-08-15 17:36:54 -04:00
|
|
|
PKG_CHECK_MODULES(LIBCURL, [ libcurl ])
|
2015-07-21 17:00:55 -04:00
|
|
|
AC_CHECK_LIB([mxml], [mxmlGetOpaque], AC_DEFINE(HAVE_MXML_GETOPAQUE, 1, [Define to 1 if your mxml has mxmlGetOpaque.]))
|
|
|
|
])
|
|
|
|
AM_CONDITIONAL(COND_LASTFM, [test "x$enable_lastfm" = "xyes"])
|
|
|
|
|
2016-01-17 14:59:16 -05:00
|
|
|
dnl ChromeCast support with libprotobuf-c
|
|
|
|
AC_ARG_ENABLE(chromecast, AS_HELP_STRING([--enable-chromecast], [enable ChromeCast support (default=no)]))
|
|
|
|
AS_IF([test "x$enable_chromecast" = "xyes"], [
|
|
|
|
AC_DEFINE(CHROMECAST, 1, [Define to 1 to enable Chromecast support])
|
2016-02-06 07:38:43 -05:00
|
|
|
PKG_CHECK_MODULES(LIBPROTOBUF_C, [ libprotobuf-c >= 1.0.0 ], , [ protobuf_old="yes" ])
|
2016-01-17 14:59:16 -05:00
|
|
|
PKG_CHECK_MODULES(GNUTLS, [ gnutls ])
|
2016-03-06 15:33:49 -05:00
|
|
|
PKG_CHECK_EXISTS([ json-c >= 0.11 ],
|
2016-03-06 13:49:24 -05:00
|
|
|
[ PKG_CHECK_MODULES(JSON_C, [ json-c ]) ],
|
2016-03-06 15:33:49 -05:00
|
|
|
[ PKG_CHECK_MODULES(JSON_C, [ json ], AC_DEFINE(HAVE_JSON_C_OLD, 1, [Define 1 to if you have json-c < 0.11])) ]
|
2016-03-06 13:49:24 -05:00
|
|
|
)
|
2016-01-17 14:59:16 -05:00
|
|
|
])
|
2016-02-06 07:38:43 -05:00
|
|
|
AS_IF([test "x$protobuf_old" = "xyes"], [
|
|
|
|
AC_DEFINE(HAVE_PROTOBUF_OLD, 1, [Define to 1 if you have libprotobuf < 1.0.0])
|
|
|
|
LDFLAGS="${LDFLAGS} -lprotobuf-c"
|
|
|
|
])
|
2016-01-17 14:59:16 -05:00
|
|
|
AM_CONDITIONAL(COND_CHROMECAST, [test "x$enable_chromecast" = "xyes"])
|
2016-02-06 07:38:43 -05:00
|
|
|
AM_CONDITIONAL(COND_PROTOBUF_OLD, [test "x$protobuf_old" = "xyes"])
|
2016-01-17 14:59:16 -05:00
|
|
|
|
2015-07-21 17:00:55 -04:00
|
|
|
dnl MPD support
|
2015-12-28 15:41:48 -05:00
|
|
|
AC_ARG_ENABLE(mpd, AS_HELP_STRING([--disable-mpd], [disable MPD client protocol support (default=no)]))
|
|
|
|
AS_IF([test "x$enable_mpd" != "xno"], [
|
2015-07-21 17:00:55 -04:00
|
|
|
CPPFLAGS="${CPPFLAGS} -DMPD"
|
|
|
|
])
|
2015-12-28 15:41:48 -05:00
|
|
|
AM_CONDITIONAL(COND_MPD, [test "x$enable_mpd" != "xno"])
|
2015-07-21 17:00:55 -04:00
|
|
|
dnl --- End options ---
|
|
|
|
|
|
|
|
dnl Selection of local audio sound system
|
2016-04-04 17:43:34 -04:00
|
|
|
dnl TODO exchange oss4 with Pulseaudio
|
2015-07-21 17:00:55 -04:00
|
|
|
case "$host" in
|
|
|
|
*-*-linux-*)
|
|
|
|
use_alsa=true
|
|
|
|
use_oss4=false
|
|
|
|
;;
|
|
|
|
*-*-kfreebsd*-*|*-*-freebsd*)
|
2016-04-04 17:43:34 -04:00
|
|
|
use_alsa=true
|
|
|
|
use_oss4=false
|
2015-07-21 17:00:55 -04:00
|
|
|
;;
|
|
|
|
esac
|
2014-08-15 17:36:54 -04:00
|
|
|
|
2016-04-04 17:43:34 -04:00
|
|
|
AC_ARG_WITH(alsa, AS_HELP_STRING([--with-alsa], [use ALSA (default yes)]), [
|
2015-07-21 17:00:55 -04:00
|
|
|
AS_IF([test "x$with_alsa" = "xyes"], [use_alsa=true], [use_alsa=false])
|
|
|
|
])
|
2015-03-31 11:31:14 -04:00
|
|
|
if test x$use_alsa = xtrue; then
|
|
|
|
CPPFLAGS="${CPPFLAGS} -DALSA"
|
2015-07-21 17:00:55 -04:00
|
|
|
PKG_CHECK_MODULES(ALSA, [ alsa ])
|
2015-03-31 11:31:14 -04:00
|
|
|
fi
|
2015-07-21 17:00:55 -04:00
|
|
|
AM_CONDITIONAL(COND_ALSA, test x$use_alsa = xtrue)
|
2015-03-31 11:31:14 -04:00
|
|
|
|
2003-10-13 11:03:14 -04:00
|
|
|
dnl Checks for header files.
|
|
|
|
AC_HEADER_STDC
|
2003-10-13 11:32:43 -04:00
|
|
|
AC_HEADER_SYS_WAIT
|
2009-04-01 12:31:02 -04:00
|
|
|
|
2010-09-28 12:35:25 -04:00
|
|
|
AC_OUTPUT(src/Makefile sqlext/Makefile Makefile)
|