dnl Process this file with autoconf to produce a configure script. AC_INIT(config.h.in) AC_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE(forked-daapd, 0.10) AC_USE_SYSTEM_EXTENSIONS dnl Checks for programs. AC_PROG_CC AM_PROG_CC_C_O LT_INIT([disable-static]) AC_CHECK_PROG(ANTLR, [antlr3], [antlr3]) if test "x$ANTLR" = x; then AC_MSG_NOTICE([antlr3 wrapper not found, checking direct java invocation]) AC_CHECK_PROG(JAVA, [java], [java]) if test "x$JAVA" = x; then AC_MSG_FAILURE([java not found; check your java installation]) else if $JAVA org.antlr.Tool > /dev/null 2>&1; then AC_MSG_NOTICE([Direct java invocation working, using java org.antlr.Tool to invoke antlr]) ANTLR="$JAVA org.antlr.Tool" else AC_MSG_FAILURE([antlr3 wrapper not found and direct java invocation failed; check your antlr3/java installation]) fi fi fi AC_SUBST(ANTLR) CFLAGS="$CFLAGS -Wall -D_LARGEFILE_SOURCE" 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_HEADERS([sys/eventfd.h]) AC_CHECK_FUNCS(eventfd) AC_CHECK_FUNCS(posix_fadvise) AC_CHECK_FUNCS(strptime) AC_CHECK_FUNCS(strtok_r) AC_CHECK_FUNCS(timegm) dnl Large File Support (LFS) AC_SYS_LARGEFILE AC_TYPE_OFF_T 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(itunes, AC_HELP_STRING([--enable-itunes], [Enable iTunes library support]), use_itunes=true; CPPFLAGS="${CPPFLAGS} -DITUNES") AM_CONDITIONAL(COND_FLAC, test x$use_flac = xtrue) AM_CONDITIONAL(COND_MUSEPACK, test x$use_musepack = xtrue) AM_CONDITIONAL(COND_ITUNES, test x$use_itunes = xtrue) dnl Checks for libraries. PKG_CHECK_MODULES(CONFUSE, [ libconfuse ]) PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.24 ]) PKG_CHECK_MODULES(SQLITE3, [ sqlite3 >= 3.5.0 ], AC_DEFINE(HAVE_SQLITE3, 1, [define if sqlite3 is available])) save_LIBS="$LIBS" LIBS="$SQLITE3_LIBS" 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])) 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 ], [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" PKG_CHECK_MODULES(FFMPEG, [ libavcodec libavformat libswscale libavutil ]) PKG_CHECK_MODULES(MINIXML, [ mxml ]) AC_CHECK_HEADER(event.h, , AC_MSG_ERROR([event.h not found])) AC_CHECK_LIB([event_core], [event_init], [LIBEVENT_LIBS="-levent_core"], AC_MSG_ERROR([libevent not found])) AC_CHECK_HEADER(evhttp.h, , AC_MSG_ERROR([evhttp.h not found])) dnl save_LIBS="$LIBS" dnl LIBS=-levent_core dnl AC_CHECK_LIB([event_extra], [evhttp_new], [LIBEVENT_LIBS="$LIBEVENT_LIBS -levent_extra"], AC_MSG_ERROR([libevent not found])) dnl LIBS="$save_LIBS" AC_SUBST(LIBEVENT_LIBS) AC_CHECK_HEADER(avl.h, , AC_MSG_ERROR([avl.h not found])) AC_CHECK_LIB([avl], [avl_alloc_tree], [LIBAVL_LIBS="-lavl"], AC_MSG_ERROR([libavl not found])) AC_SUBST(LIBAVL_LIBS) 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])) AC_SUBST(ANTLR3C_LIBS) AM_PATH_LIBGCRYPT([], , AC_MSG_ERROR([libgcrypt not found])) 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_itunes = xtrue; then PKG_CHECK_MODULES(LIBPLIST, [ libplist >= 0.16 ]) fi case "$host" in *linux*) AC_CHECK_HEADER(sys/signalfd.h, , AC_MSG_ERROR([signalfd required; glibc 2.9+ recommended])) ;; esac AC_CHECK_SIZEOF(void *) AC_CHECK_HEADERS(getopt.h,,) AC_CHECK_HEADERS(stdint.h,,) dnl Checks for header files. AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_OUTPUT(src/Makefile Makefile)