dnl $Id$ dnl dnl Process this file with autoconf to produce a configure script. AC_INIT(config.h.in) AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE(mt-daapd,0.2.1.1) ACLOCAL="$ACLOCAL -I m4 $ACLOCAL_FLAGS" AC_USE_SYSTEM_EXTENSIONS dnl Checks for programs. AC_PROG_CC dnl AC_PROG_YACC dnl AM_PROG_LEX 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) AM_CONDITIONAL(COND_REND_OSX,false) 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) rend_posix=true rend_avahi=false db_sqlite=false db_sqlite3=false use_ffmpeg=false; use_upnp=false; use_ssl=false use_iconv=true STATIC_LIBS=no CPPFLAGS="${CPPFLAGS} -g -Wall" dnl fix freebsd's broken (?) libpthread AC_CHECK_LIB(c_r,pthread_creat,LIBS="${LIBS} -lc_r", [ AC_CHECK_LIB(pthread,pthread_create,LIBS="${LIBS} -lpthread") ]) AC_ARG_ENABLE(iconv, [ --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(sqlite,[ --enable-sqlite Enable the sqlite db backend], [ case "${enableval}" in yes) db_sqlite=true; have_sql=true;; no) db_sqlite=false;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-sqlite);; esac ]) AC_ARG_ENABLE(sqlite3,[ --enable-sqlite3 Enable sqlite3 db backend], [ case "${enableval}" in yes) db_sqlite3=true; have_sql=true;; no) db_sqlite3=false;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-sqlite3);; esac ]) AC_ARG_ENABLE(mdns,[ --enable-mdns Enable mDNS support], [ case "${enableval}" in yes) ;; no) rend_posix=false; rend_howl=false; rend_avahi=false; CPPFLAGS="${CPPFLAGS} -DWITHOUT_MDNS";; *) AC_MSG_ERROR(bad value ${enableval} for --disable-mdns);; esac ]) AC_ARG_ENABLE(nslu2,[ --enable-nslu2 Build for NSLU2/uNSLUng], CFLAGS="${CFLAGS} -DNSLU2") AC_ARG_ENABLE(avahi,[ --enable-avahi Use avahi 0.6 or later], [ case "${enableval}" in yes) PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6 ]); rend_avahi=true; rend_howl=false; rend_posix=false; LDFLAGS="${LDFLAGS} $AVAHI_LIBS"; CPPFLAGS="${CPPFLAGS} $AVAHI_CFLAGS -DWITH_AVAHI";; no) rend_avahi=false;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-avahi);; esac ]) AC_ARG_ENABLE(howl,[ --enable-howl Use howl 0.9.2 or later], [ case "${enableval}" in yes) rend_howl=true; rend_posix=false; rend_avahi=false; LIBS="${LIBS} -lhowl"; CPPFLAGS="${CPPFLAGS} -DWITH_HOWL";; no) rend_howl=false;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-howl);; esac ]) AC_ARG_ENABLE(oggvorbis,[ --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,[ --enable-flac Enable FLAC support], use_flac=true; CPPFLAGS="${CPPFLAGS} -DFLAC") AC_ARG_ENABLE(musepack,[ --enable-musepack Enable Musepack support], use_musepack=true; CPPFLAGS="${CPPFLAGS} -DMUSEPACK") AC_ARG_ENABLE(gdbm,[ --enable-gdbm Enable gdbm support], use_gdbm=true; CPPFLAGS="${CPPFLAGS} -DGDBM") AC_ARG_ENABLE(ffmpeg,[ --enable-ffmpeg Enable ffmpeg transcode support], use_ffmpeg=true;) AC_ARG_ENABLE(upnp,[ --enable-upnp Enable upnp support], CPPFLAGS="${CPPFLAGS} -DUPNP"; use_upnp=true;) AC_ARG_ENABLE(mem-debug,[ --enable-mem-debug Enable memory debugging], CPPFLAGS="${CPPFLAGS} -DDEBUG_MEM") AC_ARG_ENABLE(ssl,[ --enable-ssl Enable SSL support in web server], CPPFLAGS="${CPPFLAGS} -DUSE_SSL"; use_ssl=true; ) AM_CONDITIONAL(COND_REND_HOWL, test x$rend_howl = xtrue) AM_CONDITIONAL(COND_REND_POSIX, test x$rend_posix = xtrue) AM_CONDITIONAL(COND_REND_AVAHI, test x$rend_avahi = xtrue) 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_SQLITE,test x$db_sqlite = xtrue) AM_CONDITIONAL(COND_SQLITE3,test x$db_sqlite3 = xtrue) AM_CONDITIONAL(COND_GDBM,test x$use_gdbm = xtrue) AM_CONDITIONAL(COND_FFMPEG,test x$use_ffmpeg = xtrue) AM_CONDITIONAL(COND_UPNP,test x$use_upnp = xtrue) AM_CONDITIONAL(COND_SSL,test x$use_ssl = xtrue) #AM_CONDITIONAL(COND_NEED_STRCASESTR,false) #AM_CONDITIONAL(COND_NEED_STRSEP,false) AC_CHECK_FUNCS(strcasestr strsep) if test x$have_sql = xtrue; then CPPFLAGS="${CPPFLAGS} -DHAVE_SQL" fi if test x$db_sqlite = xtrue -o x$db_sqlite3 = xtrue; then AM_CONDITIONAL(COND_SQL,true) fi if test x$db_sqlite = xfalse -a x$db_sqlite3 = xfalse; then echo "Must use either --enable-sqlite or --enable-sqlite3" exit; fi dnl Darwin's stupid cpp preprocessor.... echo Host type is $host CPPFLAGS="$CPPFLAGS -DHOST='\"$host\"'" dnl dnl The apple mDNS stuff wants these compile flags. dnl case $host in *solaris*) CPPFLAGS="$CPPFLAGS -DNOT_HAVE_DAEMON -DNOT_HAVE_SA_LEN " CPPFLAGS="$CPPFLAGS -DNOT_HAVE_SOCKLEN_T -DNOT_HAVE_IF_NAMETOINDEX " CPPFLAGS="$CPPFLAGS -DLOG_PERROR=0 -D_XPG4_2 -D__EXTENSIONS__ " CPPFLAGS="$CPPFLAGS -DHAVE_BROKEN_RECVIF_NAME " CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS" LIBS="${LIBS} -lnsl -lsocket -lresolv";; *freebsd*) CPPFLAGS="$CPPFLAGS -DFREEBSD";; *linux*) CPPFLAGS="$CPPFLAGS -DNOT_HAVE_SA_LEN -DUSES_NETLINK -DHAVE_LINUX" LDFLAGS="${LDFLAGS} -Wl,--export-dynamic";; *openbsd*) CPPFLAGS="$CPPFLAGS -DHAVE_BROKEN_RECVDSTADDR";; *darwin*) CPPFLAGS="$CPPFLAGS -no-cpp-precomp -DMAC" LDFLAGS="$LDFLAGS -framework CoreFoundation" AM_CONDITIONAL(COND_REND_OSX,true) AM_CONDITIONAL(COND_REND_HOWL,false) AM_CONDITIONAL(COND_REND_POSIX,false);; esac dnl Checks for libraries. AC_ARG_WITH(static-libs, [--with-static-libs[[=DIR]] use static libs in DIR],[ if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval STATIC_LIBS="$withval" fi ]) AC_ARG_WITH(howl-includes, [--with-howl-includes[[=DIR]] use howl include files in DIR],[ if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval CPPFLAGS="${CPPFLAGS} -I$withval" fi ]) AC_ARG_WITH(howl-libs, [--with-howl-libs[[=DIR]] use howl lib files in DIR],[ if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval LDFLAGS="${LDFLAGS} -L$withval -R$withval" fi ]) AC_ARG_WITH(ssl-includes, [--with-ssl-includes[[=DIR]] use ssl include files in DIR],[ if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval CPPFLAGS="${CPPFLAGS} -I$withval" fi ]) AC_ARG_WITH(ssl-libs, [--with-ssl-libs[[=DIR]] use ssl lib files in DIR],[ if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval LDFLAGS="${LDFLAGS} -L$withval -R$withval" fi ]) AC_ARG_WITH(gdbm-includes, [--with-gdbm-includes[[=DIR]] use gdbm include files in DIR],[ if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval CPPFLAGS="${CPPFLAGS} -I$withval" fi ]) AC_ARG_WITH(gdbm-libs, [--with-gdbm-libs[[=DIR]] use gdbm lib files in DIR],[ if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval LDFLAGS="${LDFLAGS} -L$withval -R$withval" fi ]) AC_ARG_WITH(sqlite-includes, [--with-sqlite-includes[[=DIR]] use sqlite include files in DIR],[ if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval CPPFLAGS="${CPPFLAGS} -I$withval -R$withval" fi ]) AC_ARG_WITH(sqlite-libs, [--with-sqlite-libs[[=DIR]] use sqlite lib files in DIR],[ if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval LDFLAGS="${LDFLAGS} -L$withval -R$withval" fi ]) AC_ARG_WITH(sqlite3-includes, [--with-sqlite3-includes[[=DIR]] use sqlite3 include files in DIR],[ if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval CPPFLAGS="${CPPFLAGS} -I$withval" fi ]) AC_ARG_WITH(sqlite3-libs, [--with-sqlite3-libs[[=DIR]] use sqlite3 lib files in DIR],[ if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval LDFLAGS="${LDFLAGS} -L$withval -R$withval" fi ]) AC_ARG_WITH(ffmpeg-includes, [--with-ffmpeg-includes[[=DIR]] use ffmpeg include files in DIR],[ if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval CPPFLAGS="${CPPFLAGS} -I$withval" fi ]) AC_ARG_WITH(ffmpeg-libs, [--with-ffmpeg-libs[[=DIR]] use ffmpeg lib files in DIR],[ if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval LDFLAGS="${LDFLAGS} -L$withval -R$withval" fi ]) AC_ARG_WITH(id3tag, [--with-id3tag[[=DIR]] use id3tag in DIR],[ if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval CPPFLAGS="${CPPFLAGS} -I$withval/include" LDFLAGS="${LDFLAGS} -L$withval/lib -R$withval/lib" fi ]) AC_CHECK_HEADERS(getopt.h,,) AC_CHECK_HEADERS(stdint.h,,) AC_CHECK_HEADERS(id3tag.h,, [ AC_MSG_ERROR([id3tag.h not found... try --with-id3tag=dir])]) oldcflags=$CFLAGS CFLAGS="$CFLAGS -lz" OLDLIBS=$LIBS AC_CHECK_LIB(id3tag,id3_file_open,,echo "no libid3tag. Try --with-id3tag=dir";exit) LIBS=$OLDLIBS if test "$STATIC_LIBS" != "no"; then LIBS="${LIBS} ${STATIC_LIBS}/libid3tag.a ${STATIC_LIBS}/libz.a" else LIBS="${LIBS} -lid3tag -lz" fi CFLAGS=$oldcflags if test x$use_gdbm = xtrue; then AC_CHECK_HEADERS(gdbm.h,, [ AC_MSG_ERROR([gdbm.h not found... Must have gdbm headers installed])]) AC_CHECK_LIB(gdbm,gdbm_open,,echo "Must have gdbm libraries installed";exit) if test x"$STATIC_LIBS" != x"no"; then LIBS="${LIBS} ${STATIC_LIBS}/libgdbm.a" else LIBS="${LIBS} -lgdbm" fi fi if test x$use_ssl = xtrue; then AC_CHECK_HEADERS(openssl/ssl.h,, [ AC_MSG_ERROR([ssl.h not found... Must have ssl headers installed])]) AC_CHECK_LIB(ssl,SSL_library_init,,echo "Must have openssl libraries installed";exit) if test x"$STATIC_LIBS" != x"no"; then LIBS="${LIBS} ${STATIC_LIBS}/libssl.a ${STATIC_LIBS}/libcrypto.a" else LIBS="${LIBS} -lssl -lcrypto" fi fi OLDLIBS=$LIBS if test x$db_sqlite = xtrue; then AC_CHECK_HEADERS(sqlite.h,, [ AC_MSG_ERROR([sqlite.h not found... Must have sqlite headers installed])]) AC_CHECK_LIB(sqlite,sqlite_open,,echo "Must have sqlite libraries installed";exit) LIBS=$OLDLIBS if test x"$STATIC_LIBS" != x"no"; then LIBS="${LIBS} ${STATIC_LIBS}/libsqlite.a" else LIBS="${LIBS} -lsqlite" fi fi OLDLIBS=$LIBS if test x$db_sqlite3 = xtrue; then AC_CHECK_HEADERS(sqlite3.h,, [ AC_MSG_ERROR([sqlite3.h not found... Must have sqlite3 headers installed])]) AC_CHECK_LIB(sqlite3,sqlite3_open,,echo "Must have sqlite3 libraries installed";exit) LIBS=$OLDLIBS if test x"$STATIC_LIBS" != x"no"; then LIBS="${LIBS} ${STATIC_LIBS}/libsqlite3.a" else LIBS="${LIBS} -lsqlite3" fi fi if test x$use_oggvorbis = xtrue; then AC_CHECK_HEADERS(ogg/ogg.h,, [ AC_MSG_ERROR([ogg/ogg.h not found... Must have libogg installed for Ogg/Vorbis support])]) AC_CHECK_LIB(ogg,ogg_sync_init,,echo "Must have libogg for Ogg/Vorbis support";exit) if test x"$STATIC_LIBS" != x"no"; then LIBS="${LIBS} ${STATIC_LIBS}/libogg.a" else LIBS="${LIBS} -logg" fi AC_CHECK_HEADERS(vorbis/codec.h,, [ AC_MSG_ERROR([vorbis/codec.h not found... Must have libvorbis installed for Ogg/Vorbis support])]) AC_CHECK_LIB(vorbis,vorbis_info_init,,echo "Must have libvorbis for Ogg/Vorbis support";exit) if test x"$STATIC_LIBS" != x"no"; then LIBS="${LIBS} ${STATIC_LIBS}/libvorbis.a" else LIBS="${LIBS} -lvorbis" fi AC_CHECK_LIB(vorbisfile,ov_open,,echo "Must have libvorbisfile for Ogg/Vorbis support";exit) if test x"$STATIC_LIBS" != x"no"; then LIBS="${LIBS} ${STATIC_LIBS}/libvorbisfile.a" else LIBS="${LIBS} -lvorbisfile" fi fi if test x$use_flac = xtrue; then AC_CHECK_HEADERS(FLAC/metadata.h,, [ AC_MSG_ERROR([FLAC/metadata.h not found... Must have libFLAC installed for FLAC support])]) AC_CHECK_LIB(FLAC,FLAC__metadata_chain_read,,echo "Must have libFLAC for FLAC support";exit) if test x"$STATIC_LIBS" != x"no"; then LIBS="${LIBS} ${STATIC_LIBS}/libFLAC.a" else LIBS="${LIBS} -lFLAC" fi fi if test x$use_ffmpeg = xtrue; then AC_CHECK_HEADERS(avcodec.h,, [ AC_MSG_ERROR([avcodec.h not found... Must have ffmpeg installed])]) dnl AC_CHECK_LIB(avcodec,avcodec_find_decoder,,echo "Must have libavcodec";exit) if test x"$STATIC_LIBS" != x"no"; then LIBS="${LIBS} ${STATIC_LIBS}/libavcodec.a ${STATIC_LIBS}/libavformat.a ${STATIC_LIBS}/libavutil.a" else LIBS="${LIBS} -lavcodec -lavformat -lavutil" fi fi if test x$use_musepack = xtrue; then AC_PATH_PROG(TAGLIB_CONFIG, taglib-config, no) AC_CHECK_HEADERS(taglib/tag_c.h,, [ AC_MSG_ERROR([taglib/tag_c.h not found... TagLib must be installed for Musepack support])]) if test "x$TAGLIB_CONFIG" = "xno" ; then AC_MSG_ERROR(['TagLib must be installed for Musepack support']) fi dnl if test ! -e "`taglib-config --prefix`/lib/libtag_c.so.0"; then dnl AC_MSG_ERROR(['Taglib C bindings are not installed']) dnl fi if test x"$STATIC_LIBS" != x"no"; then LIBS="${LIBS} ${STATIC_LIBS}/libtag_c.a" else LIBS="${LIBS} -ltag_c" fi fi 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) dnl check to see if we need -lsocket (solaris) AC_CHECK_LIB(dl,dlsym) V_NETLIBS="" AC_CHECK_LIB(socket,socket,V_NETLIBS="-lsocket $V_NETLIBS",,) AC_SUBST(V_NETLIBS) if test x$use_iconv = xtrue; then dnl add the iconv stuff AM_ICONV LDFLAGS="${LDFLAGS} ${LIBICONV}" fi AC_OUTPUT(src/Makefile src/plugins/Makefile admin-root/Makefile admin-root/lib-js/Makefile admin-root/lib-js/script.aculo.us/Makefile contrib/Makefile contrib/init.d/Makefile src/mdns/Makefile Makefile)