diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 286 |
1 files changed, 286 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..17651fe --- /dev/null +++ b/configure.ac @@ -0,0 +1,286 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. +# This file is part of Libmediaart. + +AC_PREREQ([2.64]) + +# Making releases: +# LIBMEDIAART_MICRO_VERSION += 1; +# LIBMEDIAART_INTERFACE_AGE += 1; +# LIBMEDIAART_BINARY_AGE += 1; +# if any functions have been added, set LIBMEDIAART_INTERFACE_AGE to 0. +# if backwards compatibility has been broken, +# set LIBMEDIAART_BINARY_AGE and LIBMEDIAART_INTERFACE_AGE to 0. +m4_define([libmediaart_major_version], [0]) +m4_define([libmediaart_minor_version], [1]) +m4_define([libmediaart_micro_version], [0]) +m4_define([libmediaart_interface_age], [0]) +m4_define([libmediaart_binary_age], + [m4_eval(100 * libmediaart_minor_version + libmediaart_micro_version)]) +m4_define([libmediaart_version], + [libmediaart_major_version.libmediaart_minor_version.libmediaart_micro_version]) +# This is the X.Y used in -lliblibmediaart-FOO-X.Y +m4_define([libmediaart_api_version], [0.2]) + +# libtool version related macros +m4_define([libmediaart_lt_release], [libmediaart_major_version.libmediaart_minor_version]) +m4_define([libmediaart_lt_current], + [m4_eval(100 * libmediaart_minor_version + libmediaart_micro_version - libmediaart_interface_age)]) +m4_define([libmediaart_lt_revision], [libmediaart_interface_age]) +m4_define([libmediaart_lt_age], [m4_eval(libmediaart_binary_age - libmediaart_interface_age)]) +m4_define([libmediaart_lt_current_minus_age], + [m4_eval(libmediaart_lt_current - libmediaart_lt_age)]) + +# Define a string for the earliest version that this release has +# backwards binary compatibility with for all interfaces a module +# might. Unless we add module-only API with lower stability +# guarantees, this should be unchanged until we break binary compat +# for Libmediaart. +# +# LIBMEDIAART_BINARY_VERSION=$LIBMEDIAART_MAJOR_VERSION.$LIBMEDIAART_MINOR_VERSION.$LT_CURRENT +m4_define([libmediaart_binary_version], [0.2.0]) + +AC_INIT([libmediaart], + [libmediaart_version], + [http://bugzilla.gnome.org/], + [libmediaart], + [https://wiki.gnome.org/MediaArtStorageSpec]) + +AC_CONFIG_SRCDIR([libmediaart/mediaart.h]) +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_HEADERS([config.h]) + +AM_INIT_AUTOMAKE([1.11 no-define tar-ustar -Wno-portability]) + +AM_SILENT_RULES([yes]) + +LIBMEDIAART_MAJOR_VERSION=libmediaart_major_version +LIBMEDIAART_MINOR_VERSION=libmediaart_minor_version +LIBMEDIAART_MICRO_VERSION=libmediaart_micro_version +LIBMEDIAART_INTERFACE_AGE=libmediaart_interface_age +LIBMEDIAART_BINARY_AGE=libmediaart_binary_age +LIBMEDIAART_VERSION=libmediaart_version +LIBMEDIAART_API_VERSION=libmediaart_api_version +LIBMEDIAART_BINARY_VERSION=libmediaart_binary_version + +AC_SUBST(LIBMEDIAART_MAJOR_VERSION) +AC_SUBST(LIBMEDIAART_MINOR_VERSION) +AC_SUBST(LIBMEDIAART_MICRO_VERSION) +AC_SUBST(LIBMEDIAART_INTERFACE_AGE) +AC_SUBST(LIBMEDIAART_BINARY_AGE) +AC_SUBST(LIBMEDIAART_API_VERSION) +AC_SUBST(LIBMEDIAART_VERSION) +AC_SUBST(LIBMEDIAART_BINARY_VERSION) + +AC_DEFINE(LIBMEDIAART_MAJOR_VERSION, [libmediaart_major_version], + [Define to the Libmediaart major version]) +AC_DEFINE(LIBMEDIAART_MINOR_VERSION, [libmediaart_minor_version], + [Define to the Libmediaart minor version]) +AC_DEFINE(LIBMEDIAART_MICRO_VERSION, [libmediaart_micro_version], + [Define to the Libmediaart micro version]) +AC_DEFINE(LIBMEDIAART_INTERFACE_AGE, [libmediaart_interface_age], + [Define to the Libmediaart interface age]) +AC_DEFINE(LIBMEDIAART_BINARY_AGE, [libmediaart_binary_age], + [Define to the Libmediaart binary age]) + +# libtool versioning +LT_RELEASE=libmediaart_lt_release +LT_CURRENT=libmediaart_lt_current +LT_REVISION=libmediaart_lt_revision +LT_AGE=libmediaart_lt_age +LT_CURRENT_MINUS_AGE=libmediaart_lt_current_minus_age +AC_SUBST(LT_RELEASE) +AC_SUBST(LT_CURRENT) +AC_SUBST(LT_REVISION) +AC_SUBST(LT_AGE) +AC_SUBST(LT_CURRENT_MINUS_AGE) + +# Checks for programs. +AC_PROG_CXX +AC_PROG_AWK +AC_PROG_CC +AC_PROG_CPP +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_MAKE_SET +AC_PROG_RANLIB +AC_PROG_MKDIR_P +AC_PROG_YACC + +# Initialize libtool +LT_PREREQ([2.2]) +LT_INIT([disable-static]) + +# Get text +AM_GNU_GETTEXT_VERSION([0.17]) +AM_GNU_GETTEXT([external]) + +# Checks for programs. +AC_PROG_CXX +AC_PROG_AWK +AC_PROG_CC +AC_PROG_CPP +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_MAKE_SET +AC_PROG_RANLIB + +# Checks for libraries. + +# Checks for header files. +AC_CHECK_HEADERS([stdlib.h string.h unistd.h utime.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_TYPE_SIZE_T + +# Checks for library functions. +AC_CHECK_FUNCS([strstr utime]) + + +CFLAGS="$CFLAGS" + +# Library required versions +GLIB_REQUIRED=2.35.1 +GDKPIXBUF_REQUIRED=2.12.0 +QT_REQUIRED=4.7.1 +TRACKER_REQUIRED=0.16.0 + +# Check requirements for libmediaart +LIBMEDIAART_REQUIRED="glib-2.0 >= $GLIB_REQUIRED tracker-sparql-0.16 >= $TRACKER_REQUIRED" +PKG_CHECK_MODULES(LIBMEDIAART, [$LIBMEDIAART_REQUIRED]) + +LIBMEDIAART_LIBS="$LIBMEDIAART_LIBS -lz -lm" + +#################################################################### +# General CFLAGS/LIBS +#################################################################### +BUILD_CFLAGS="${WARN_CFLAGS} -DG_LOG_DOMAIN=\\\"libmediaart\\\" -DLIBMEDIAART_COMPILATION" +BUILD_LIBS="${GCOV_LIBS}" + +AC_SUBST(BUILD_VALAFLAGS) +AC_SUBST(BUILD_CFLAGS) +AC_SUBST(BUILD_LIBS) + +################################################################## +# Check for tracker-extract: GdkPixbuf for MP3 album art +################################################################## + +AC_ARG_ENABLE(gdkpixbuf, + AS_HELP_STRING([--enable-gdkpixbuf], + [enable GdkPixbuf support, (MP3 album art) [[default=auto]]]),, + [enable_gdkpixbuf=auto]) + +################################################################## +# Check for libmediaart-extract: Qt for MP3 album art +################################################################## + +AC_ARG_ENABLE(qt, + AS_HELP_STRING([--enable-qt], + [enable Qt support, (MP3 album art) [[default=auto]]]),, + [enable_qt=auto]) + +selected_for_media_art="no (disabled)" + +################################################################## +# Check for tracker-extract: Choose between GdkPixbuf/Qt +################################################################## + +if test "x$enable_qt" != "xno" && test "x$enable_gdkpixbuf" != "xyes"; then + PKG_CHECK_MODULES(QT, + [QtGui >= $QT_REQUIRED], + [have_qt=yes], + [have_qt=no]) + + LIBMEDIAART_CFLAGS="$LIBMEDIAART_CFLAGS $QT_CFLAGS" + LIBMEDIAART_LIBS="$LIBMEDIAART_LIBS $QT_LIBS" + + if test "x$have_qt" = "xyes"; then + AC_DEFINE(HAVE_QT, [], [Define if we have Qt]) + selected_for_media_art="yes (qt)" + fi +else + have_qt="no (disabled)" +fi + +if test "x$enable_qt" = "xyes"; then + if test "x$have_qt" != "xyes"; then + AC_MSG_ERROR([Couldn't find Qt >= $QT_REQUIRED.]) + fi +fi + +AM_CONDITIONAL(HAVE_QT, test "x$have_qt" = "xyes") + +if test "x$enable_gdkpixbuf" != "xno" && test "x$enable_quill" != "xyes"; then + PKG_CHECK_MODULES(GDKPIXBUF, + [gdk-pixbuf-2.0 >= $GDKPIXBUF_REQUIRED], + [have_gdkpixbuf=yes], + [have_gdkpixbuf=no]) + + LIBMEDIAART_CFLAGS="$LIBMEDIAART_CFLAGS $GDKPIXBUF_CFLAGS" + LIBMEDIAART_LIBS="$LIBMEDIAART_LIBS $GDKPIXBUF_LIBS" + + if test "x$have_gdkpixbuf" = "xyes"; then + AC_DEFINE(HAVE_GDKPIXBUF, [], [Define if we have GdkPixbuf]) + selected_for_media_art="yes (GdkPixbuf)" + fi +else + have_gdkpixbuf="no (disabled)" +fi + +if test "x$enable_gdkpixbuf" = "xyes"; then + if test "x$have_gdkpixbuf" != "xyes"; then + AC_MSG_ERROR([Couldn't find GdkPixbuf >= $GDKPIXBUF_REQUIRED.]) + fi +fi + +AM_CONDITIONAL(HAVE_GDKPIXBUF, test "x$have_gdkpixbuf" = "xyes") + +#################################################################### +# Should we build GLib based unit tests +#################################################################### + +AC_ARG_ENABLE(unit_tests, + AS_HELP_STRING([--enable-unit-tests], + [enable unit tests [[default=yes]]]), , + [enable_unit_tests=yes]) + +if test "x$enable_unit_tests" != "xno" ; then + have_unit_tests=yes + + AC_DEFINE(HAVE_UNIT_TEST, 1, [Define if we have GLib unit test framework]) + + AC_PATH_PROG(gtester, gtester) + if test -z $gtester; then + AC_MSG_ERROR([Could not find 'gtester']) + fi +else + have_unit_tests=no +fi + +AM_CONDITIONAL(HAVE_UNIT_TESTS, test "x$have_unit_tests" = "xyes") + +################################################################## +# Write generated files +################################################################## + +AC_CONFIG_FILES([ + Makefile + libmediaart/Makefile + tests/Makefile +]) + +AC_OUTPUT + +echo " +Build Configuration: + + Prefix: ${prefix} + Source code location: ${srcdir} + Compiler: ${CC} + Compiler Warnings: $enable_compile_warnings + + Enable functional tests: $enable_functional_tests + Enable unit tests: $have_unit_tests + + Support media art processing: $selected_for_media_art +" |