1m4_define([libdmapsharing_major], [2]) 2m4_define([libdmapsharing_minor], [9]) 3m4_define([libdmapsharing_micro], [41]) 4m4_define([libdmapsharing_version], [libdmapsharing_major.libdmapsharing_minor.libdmapsharing_micro]) 5 6AC_INIT(libdmapsharing, [libdmapsharing_version], [https://www.flyn.org/projects/libdmapsharing/]) 7 8API_VERSION=3.0 9AC_SUBST(API_VERSION) 10 11SO_VERSION=m4_eval(libdmapsharing_minor+libdmapsharing_major):m4_eval(libdmapsharing_micro):m4_eval(libdmapsharing_minor) 12AC_SUBST(SO_VERSION) 13 14AM_CONFIG_HEADER(config.h) 15AC_CONFIG_MACRO_DIRS([m4]) 16 17AC_HEADER_STDC 18AC_PROG_CC 19AC_PROG_CPP 20AC_PROG_LIBTOOL 21AM_PROG_CC_STDC 22 23GOBJECT_INTROSPECTION_CHECK([1.30.0]) 24GTK_DOC_CHECK(1.0) 25 26# Have pedansee? 27AC_PATH_PROG(PEDANSEE, pedansee) 28AM_CONDITIONAL(HAVE_PEDANSEE, test -n "$PEDANSEE") 29 30# Select debugging or measuring code coverage? 31AC_ARG_ENABLE(debug, [AC_HELP_STRING([--enable-debug],[enable debugging build])]) 32AC_ARG_ENABLE(coverage, [AC_HELP_STRING([--enable-coverage],[enable code-coverage build])]) 33if test "x$enable_debug" = "xyes"; then 34 CFLAGS="$CFLAGS -g" 35elif test "x$enable_coverage" = "xyes"; then 36 CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage" 37else 38 CFLAGS="$CFLAGS -O2" 39fi 40 41# Select more compiler warnings? 42AC_ARG_ENABLE(more-warnings, [AC_HELP_STRING([--enable-more-warnings],[maximum compiler warnings])]) 43if test "$GCC" = "yes" -a x$enable_more_warnings = "xyes"; then 44 WARN_CFLAGS="\ 45 -Wcomment -Wformat -Wnonnull -Wimplicit-int -Wimplicit \ 46 -Wmain -Wmissing-braces -Wparentheses -Wsequence-point \ 47 -Wreturn-type -Wswitch -Wtrigraphs -Wunused-function \ 48 -Wunused-label -Wunused-value \ 49 -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \ 50 -Wnested-externs -Wpointer-arith \ 51 -Wformat-security -Wall \ 52 -Werror -Wno-deprecated-declarations -std=gnu89" 53 54 if echo "$CFLAGS" | grep -q -- '-O' && echo "$CFLAGS" | grep -q -v -- '-O0'; then 55 WARN_CFLAGS="-Wuninitialized $WARN_CFLAGS" 56 fi 57 58 for option in $WARN_CFLAGS; do 59 AS_COMPILER_FLAG($option, has_option=yes, has_option=no) 60 if test x$has_option = xyes; then 61 OK_CFLAGS="$OK_CFLAGS $option" 62 fi 63 unset has_option 64 done 65 66 WARN_CFLAGS="$OK_CFLAGS" 67fi 68 69AC_SUBST(WARN_CFLAGS) 70 71# Build test code? 72AC_ARG_ENABLE(tests, [AC_HELP_STRING([--disable-tests],[do not build tests])], tests=$enableval, tests=yes) 73if test x$tests = xyes; then 74 PKG_CHECK_MODULES([CHECK], [check >= 0.9.4],have_check=yes,have_check=no) 75 AM_CONDITIONAL(HAVE_CHECK, test x"$have_check" = "xyes") 76 if test "x$have_check" = "xyes"; then 77 AC_DEFINE(HAVE_CHECK, 1, [Define if check support is enabled]) 78 else 79 AC_MSG_ERROR([Must have check library present when tests enabled]) 80 fi 81 82 AC_DEFINE(TESTS_ENABLED,1,[Defined when tests are to be built]) 83 AM_CONDITIONAL(TESTS_ENABLED, true) 84else 85 AM_CONDITIONAL(TESTS_ENABLED, false) 86 AM_CONDITIONAL(HAVE_CHECK, false) 87fi 88 89# Have libz? 90AC_CHECK_LIB(z, uncompress) 91 92# Have pkg-config? 93AC_CHECK_PROG(HAVE_PKGCONFIG, pkg-config, yes, no) 94if test "x$HAVE_PKGCONFIG" = "xno"; then 95 AC_MSG_ERROR([Must have pkgconfig installed]) 96fi 97 98# Have glib? 99PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.40, HAVE_GLIB=yes,HAVE_GLIB=no) 100if test "x$HAVE_GLIB" = "xno"; then 101 AC_MSG_ERROR([Must have glib-2.0 installed]) 102fi 103 104AC_DEFINE(GLIB_VERSION_MIN_REQUIRED, GLIB_VERSION_2_40, [minimum glib version]) 105AC_DEFINE(GLIB_VERSION_MAX_ALLOWED, GLIB_VERSION_2_40, [maximum glib version]) 106 107AC_SUBST(GLIB_CFLAGS) 108AC_SUBST(GLIB_LIBS) 109 110# Have gthread? 111PKG_CHECK_MODULES(GTHREAD, gthread-2.0, HAVE_GTHREAD=yes, HAVE_GTHREAD=no) 112if test "x$HAVE_GTHREAD" = "xno"; then 113 AC_MSG_ERROR([Must have gthread-2.0 installed]) 114fi 115 116AC_SUBST(GOBJECT_CFLAGS) 117AC_SUBST(GOBJECT_LIBS) 118 119# Have gobject? 120PKG_CHECK_MODULES(GOBJECT, gobject-2.0, HAVE_GOBJECT=yes, HAVE_GOBJECT=no) 121if test "x$HAVE_GOBJECT" = "xno"; then 122 AC_MSG_ERROR([Must have gobject-2.0 installed]) 123fi 124 125AC_SUBST(GOBJECT_CFLAGS) 126AC_SUBST(GOBJECT_LIBS) 127 128# Have gdkpixbuf? 129PKG_CHECK_MODULES(GDKPIXBUF, gdk-pixbuf-2.0, HAVE_GDKPIXBUF=yes, HAVE_GDKPIXBUF=no) 130if test x"$HAVE_GDKPIXBUF" = "xyes"; then 131 AC_DEFINE(HAVE_GDKPIXBUF, 1, [Define if gdk-pixbuf support is enabled]) 132else 133 AC_MSG_WARN([Gdk-pixbuf library not present; now-playing artwork might be affected]) 134fi 135 136AM_CONDITIONAL(USE_GDKPIXBUF, test x"$HAVE_GDKPIXBUF" = "xyes") 137 138AC_SUBST(GDKPIXBUF_CFLAGS) 139AC_SUBST(GDKPIXBUF_LIBS) 140 141# Have libsoup? 142PKG_CHECK_MODULES(SOUP, libsoup-2.4 >= 2.48.0, HAVE_LIBSOUP=yes, HAVE_LIBSOUP=no) 143if test x"$HAVE_LIBSOUP" = "xno"; then 144 AC_MSG_ERROR([Must have libsoup installed]) 145fi 146 147AC_SUBST(SOUP_CFLAGS) 148AC_SUBST(SOUP_LIBS) 149 150# Have GTK3? 151PKG_CHECK_MODULES(GTK, gtk+-3.0, HAVE_GTK=yes, HAVE_GTK=no) 152 153AC_SUBST(GTK_CFLAGS) 154AC_SUBST(GTK_LIBS) 155 156# Have libgee? 157PKG_CHECK_MODULES(GEE, gee-0.8, HAVE_GEE=yes, HAVE_GEE=no) 158 159AC_SUBST(GEE_CFLAGS) 160AC_SUBST(GEE_LIBS) 161 162# Have gstreamer-app? 163PKG_CHECK_MODULES( 164 GSTREAMERAPP, 165 gstreamer-app-1.0 166 gstreamer-plugins-base-1.0 >= 0.10.23.2, 167 HAVE_GSTREAMERAPP=yes, 168 HAVE_GSTREAMERAPP=no 169) 170 171if test x"$HAVE_GSTREAMERAPP" = "xyes"; then 172 AC_DEFINE(HAVE_GSTREAMERAPP, 1, [Define if GStreamer App support is enabled]) 173 GSTLIB="gstreamer-1.0 gstreamer-app-1.0" 174 AC_SUBST(GSTLIB) 175else 176 AC_MSG_WARN([GStreamer app element not present; transcoding will not be supported]) 177fi 178 179AM_CONDITIONAL(USE_GSTREAMERAPP, test x"$HAVE_GSTREAMERAPP" = "xyes") 180 181AC_SUBST(GSTREAMERAPP_CFLAGS) 182AC_SUBST(GSTREAMERAPP_LIBS) 183 184# Have Vala compiler? 185AM_PROG_VALAC([0.11.4]) 186AM_CONDITIONAL(HAVE_VALAC, test -x "$VALAC") 187 188# Have vala-gen-introspect? 189AC_PATH_PROG(VALA_GEN_INTROSPECT, vala-gen-introspect) 190AC_PATH_PROG(VAPIGEN, vapigen) 191AM_CONDITIONAL(BUILD_VAPI, test -n "$VALA_GEN_INTROSPECT" -a -n "$VAPIGEN" -a xyes = x"$found_introspection") 192if ! test -n "$VALA_GEN_INTROSPECT" -a -n "$VAPIGEN" -a xyes = x"$found_introspection"; then 193 AC_MSG_WARN([Will not build vapi]) 194fi 195 196AM_CONDITIONAL(BUILD_VALATESTS, test -x "$VALAC" -a "x$HAVE_GEE" = "xyes") 197if test -n "$BUILD_VALATESTS" ; then 198 AC_MSG_WARN([Will not build Vala tests]) 199fi 200 201AM_CONDITIONAL(BUILD_DPAPVIEW, test -x "$VALAC" -a "x$HAVE_GEE" = "xyes" -a "x$HAVE_GTK" = "xyes") 202if test -n "$BUILD_DPAPVIEW" ; then 203 AC_MSG_WARN([Will not build dpapview]) 204fi 205 206if test x${as_cv_unaligned_access} = xyes ; then 207 DMAP_HAVE_UNALIGNED_ACCESS_DEFINE="#define DMAP_HAVE_UNALIGNED_ACCESS 1" 208else 209 DMAP_HAVE_UNALIGNED_ACCESS_DEFINE="#define DMAP_HAVE_UNALIGNED_ACCESS 0" 210fi 211AC_SUBST(DMAP_HAVE_UNALIGNED_ACCESS_DEFINE) 212 213# Select mDNS library. 214AC_ARG_WITH( 215 mdns, 216 AC_HELP_STRING([--with-mdns=auto|avahi|dns_sd], 217 [Select the mDNS/DNS-SD implementation to use (default auto)]), 218 WITH_MDNS=$withval, 219 WITH_MDNS=auto 220) 221 222HAVE_AVAHI=no 223HAVE_DNS_SD=no # Apple's DNSSD library. 224USE_AVAHI=no 225USE_DNS_SD=no 226 227if test x"$WITH_MDNS" = xauto || test x"$WITH_MDNS" = xavahi; then 228 PKG_CHECK_MODULES( 229 AVAHI, 230 avahi-client >= 0.6 231 avahi-glib >= 0.6, 232 HAVE_AVAHI=yes, 233 HAVE_AVAHI=no 234 ) 235fi 236 237if test x"$HAVE_AVAHI" = xno; then 238 if test x"$WITH_MDNS" = xauto || test x"$WITH_MDNS" = xdns_sd; then 239 AC_CHECK_HEADERS(dns_sd.h, HAVE_DNS_SD=yes) 240 if test x"$HAVE_DNS_SD" = xyes; then 241 AC_CHECK_LIB(dns_sd, DNSServiceRegister, DNS_SD_LIBS="-ldns_sd",) 242 fi 243 fi 244fi 245 246if test x"$WITH_MDNS" = xauto; then 247 if test x"$HAVE_AVAHI" = xyes; then 248 MDNS_CFLAGS=$AVAHI_CFLAGS 249 MDNS_LIBS=$AVAHI_LIBS 250 USE_AVAHI=yes 251 AC_MSG_NOTICE([Detected Avahi; using it for mDNS/DNS-SD]) 252 elif test x"$HAVE_DNS_SD" = xyes; then 253 MDNS_CFLAGS=$DNS_SD_CFLAGS 254 MDNS_LIBS=$DNS_SD_LIBS 255 USE_DNS_SD=yes 256 AC_MSG_NOTICE([Detected Apple's DNSSD; using it for mDNS/DNS-SD]) 257 else 258 AC_MSG_ERROR([Must have avahi or dns_sd.h development files installed]) 259 fi 260elif test x"$WITH_MDNS" = xavahi; then 261 if test x"$HAVE_AVAHI" = xno; then 262 AC_MSG_ERROR([Avahi explicitly requested but not found. Install Avahi, or try --with-mdns=dns_sd]) 263 fi 264 265 MDNS_CFLAGS=$AVAHI_CFLAGS 266 MDNS_LIBS=$AVAHI_LIBS 267 USE_AVAHI=yes 268 AC_MSG_NOTICE([Using Avahi for mDNS/DNS-SD]) 269elif test x"$WITH_MDNS" = xdns_sd; then 270 if test x"$HAVE_DNS_SD" = xno; then 271 AC_MSG_ERROR([Apple DNSSD explicitly requested but not found. Install Apple DNSSD, or try --with-mdns=avahi]) 272 fi 273 274 MDNS_CFLAGS=$DNS_SD_CFLAGS 275 MDNS_LIBS=$DNS_SD_LIBS 276 USE_DNS_SD=yes 277 AC_MSG_NOTICE([Using Apple's DNSSD for mDNS/DNS-SD]) 278fi 279 280AM_CONDITIONAL(USE_AVAHI, test "x$USE_AVAHI" = "xyes") 281AM_CONDITIONAL(USE_DNS_SD, test "x$USE_DNS_SD" = "xyes") 282 283AC_SUBST(MDNS_CFLAGS) 284AC_SUBST(MDNS_LIBS) 285 286# Enable silent build when available (Automake 1.11) 287m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 288 289AM_INIT_AUTOMAKE 290 291AC_CONFIG_FILES([ 292 Makefile 293 doc/Makefile 294 libdmapsharing-${API_VERSION}-uninstalled.pc 295 libdmapsharing-${API_VERSION}.pc 296 libdmapsharing/Makefile 297 libdmapsharing/dmap-config.h 298 tests/Makefile 299 m4/Makefile 300 media/Makefile 301 vala/Makefile 302 vala/libdmapsharing-${API_VERSION}-daap/libdmapsharing-${API_VERSION}-uninstalled.files 303 vala/libdmapsharing-${API_VERSION}-dacp/libdmapsharing-${API_VERSION}-uninstalled.files 304 vala/libdmapsharing-${API_VERSION}-dmap/libdmapsharing-${API_VERSION}-uninstalled.files 305 vala/libdmapsharing-${API_VERSION}-dpap/libdmapsharing-${API_VERSION}-uninstalled.files 306]) 307 308AC_OUTPUT 309