Blob Blame History Raw
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
m4_define([champlain_major_version], [0])
m4_define([champlain_minor_version], [12])
m4_define([champlain_micro_version], [16])
m4_define([champlain_version],
          [champlain_major_version.champlain_minor_version.champlain_micro_version])
m4_define([champlain_minor_api_version], [m4_eval(champlain_minor_version + champlain_minor_version%2)])
m4_define([champlain_api_version],
          [champlain_major_version.champlain_minor_api_version])
AC_PREREQ([2.64])
AC_INIT([libchamplain],
        [champlain_version],
        [http://bugzilla.gnome.org/enter_bug.cgi?product=libchamplain],
        [libchamplain],
        [https://wiki.gnome.org/Projects/libchamplain])
AC_CONFIG_SRCDIR([champlain/champlain.h])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])

AM_INIT_AUTOMAKE([-Wno-portability no-dist-gzip dist-xz])

LT_PREREQ([2.2.6])
LT_INIT([dlopen])

m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])

# Checks for programs.
AC_PROG_CC
AM_PROG_CC_C_O

# Before making a release, the LIBRARY_VERSION string should be modified.
# The string is of the form C:R:A.
# - If interfaces have been changed or added, but binary compatibility has
#   been preserved, change to C+1:0:A+1
# - If binary compatibility has been broken (eg removed or changed interfaces)
#   change to C+1:0:0
# - If the interface is the same as the previous version, change to C:R+1:A
LIBRARY_VERSION=10:0:10
CHAMPLAIN_API_VERSION=champlain_api_version
CHAMPLAIN_API_VERSION_NORM=champlain_major_version[_]champlain_minor_api_version
CHAMPLAIN_MAJOR_VERSION=champlain_major_version
CHAMPLAIN_MINOR_VERSION=champlain_minor_version
CHAMPLAIN_MICRO_VERSION=champlain_micro_version
CHAMPLAIN_VERSION=champlain_version
CHAMPLAIN_MAJORMINOR=champlain_api_version
AC_SUBST(CHAMPLAIN_API_VERSION)
AC_SUBST(CHAMPLAIN_API_VERSION_NORM)
AC_SUBST(CHAMPLAIN_MAJOR_VERSION)
AC_SUBST(CHAMPLAIN_MINOR_VERSION)
AC_SUBST(CHAMPLAIN_MICRO_VERSION)
AC_SUBST(CHAMPLAIN_VERSION)
AC_SUBST(CHAMPLAIN_MAJORMINOR)

AC_SUBST(LIBRARY_VERSION)

# Checks for libraries.

AC_CHECK_LIBM
AC_SUBST(LIBM)

PKG_CHECK_MODULES(DEPS,
  [   glib-2.0 >= 2.16
      gobject-2.0 >= 2.10
      gdk-3.0 >= 2.90
      clutter-1.0 >= 1.12
      cairo >= 1.4
      gio-2.0 >= 2.16
      sqlite3 >= 3.0
      libsoup-2.4 >= 2.42
  ]
)
AC_SUBST(DEPS_CFLAGS)
AC_SUBST(DEPS_LIBS)

AM_PATH_GLIB_2_0(2.16.0,,gobject gthread gio)

# check for gtk-doc
GTK_DOC_CHECK(1.9)

GNOME_COMPILE_WARNINGS([maximum])
GNOME_MAINTAINER_MODE_DEFINES

GOBJECT_INTROSPECTION_CHECK([0.6.3])

# -----------------------------------------------------------
# Enable debug
# -----------------------------------------------------------

AC_ARG_ENABLE(debug,
  AS_HELP_STRING([--disable-debug],[compile without debug code]),
    enable_debug=$enableval, enable_debug=yes )

if test x$enable_debug = xyes; then
  AC_DEFINE(ENABLE_DEBUG, [], [Enable debug code])
fi

# -----------------------------------------------------------
# Enable gtk
# -----------------------------------------------------------

AC_ARG_ENABLE(gtk,
  AS_HELP_STRING([--disable-gtk],[Do not compile Gtk+ embedded view]),
    enable_gtk=$enableval, enable_gtk=yes )

if test x$enable_gtk = xyes; then
  PKG_CHECK_MODULES(GTK,
    [   gtk+-3.0 >= 2.90
        clutter-gtk-1.0 >= 0.90
    ]
  )
  AC_SUBST(GTK_CFLAGS)
  AC_SUBST(GTK_LIBS)
fi

AM_CONDITIONAL(ENABLE_GTK, test "x$enable_gtk" = "xyes")

# -----------------------------------------------------------
# Enable memphis
# -----------------------------------------------------------

AC_ARG_ENABLE(memphis,
  AS_HELP_STRING([--disable-memphis],[Disable support of local rendering using libmemphis]),
    enable_memphis=$enableval, enable_memphis=no)

if test "x$enable_memphis" = "xyes"; then
  PKG_CHECK_MODULES(MEMPHIS, [memphis-0.2 >= 0.2.1])
fi

AC_SUBST(MEMPHIS_CFLAGS)
AC_SUBST(MEMPHIS_LIBS)

AM_CONDITIONAL(ENABLE_MEMPHIS, test "x$enable_memphis" = "xyes")

# -----------------------------------------------------------
# Enable vala bindings (default to "no")
# -----------------------------------------------------------

AC_ARG_ENABLE(vala,
  AS_HELP_STRING([--enable-vala], [Build Vala bindings [default=no]]),
    enable_vala=$enableval, enable_vala=no )

if test "x$enable_vala" = "xyes"; then
  if test "x$enable_introspection" = "xno"; then
    AC_MSG_ERROR([Cannot build vala bindings without gobject introspection])    
  fi

  AC_PATH_PROG(VAPIGEN, vapigen, vapigen)
  AC_SUBST(VAPIGEN)
fi

AM_CONDITIONAL(ENABLE_VALA, test "x$enable_vala" = "xyes")

# -----------------------------------------------------------
# Enable vala demos (default to "no")
# -----------------------------------------------------------

AC_ARG_ENABLE(vala-demos,
  AS_HELP_STRING([--enable-vala-demos],[Build vala demos [default=no]]),
    enable_vala_demos=$enableval, enable_vala_demos=no )

if test "x$enable_vala_demos" = "xyes"; then
  AM_PROG_VALAC([0.11.0])

  if test "x$VALAC" = "x" ; then
    AC_MSG_ERROR([Cannot find the "valac" compiler in your PATH])
  fi
fi

AM_CONDITIONAL(ENABLE_VALA_DEMOS, test "x$enable_vala_demos" = "xyes")

# -----------------------------------------------------------
# Generate features header file
# -----------------------------------------------------------

CHAMPLAIN_CONFIG_COMMANDS([champlain/champlain-features.h],
[
  echo '/* Generated by configure.  Do not edit. */'
  echo '#ifndef CHAMPLAIN_FEATURES_H'
  echo '#define CHAMPLAIN_FEATURES_H'
  echo ''
  if test "x$enable_memphis" = "xyes"; then
    echo '#define CHAMPLAIN_HAS_MEMPHIS 1'
    echo ''
  fi
  echo '#endif'
],[
  enable_memphis="$enable_memphis"
])

# ----------------------------------------------------------

AC_CONFIG_FILES([Makefile
                 build/Makefile
                 champlain/Makefile
                 champlain/champlain-version.h
                 demos/Makefile
                 demos/icons/Makefile
                 docs/Makefile
                 docs/reference/Makefile
                 docs/reference/version.xml
                 docs/reference-gtk/Makefile
                 docs/reference-gtk/version.xml
                 champlain-$CHAMPLAIN_API_VERSION.pc:champlain.pc.in
                 champlain-$CHAMPLAIN_API_VERSION-uninstalled.pc:champlain-uninstalled.pc.in
                 champlain-gtk-$CHAMPLAIN_API_VERSION.pc:champlain-gtk.pc.in
                 champlain-gtk-$CHAMPLAIN_API_VERSION-uninstalled.pc:champlain-gtk-uninstalled.pc.in
                 champlain-gtk/Makefile])
AC_OUTPUT

echo ""
echo "libchamplain $VERSION"
echo ""
echo "                 Prefix: ${prefix}"
echo "         Compiler flags: ${CFLAGS} ${CPPFLAGS}"
echo "          Documentation: ${enable_gtk_doc}"
echo "                  Debug: ${enable_debug}"
echo "              Gtk+ View: ${enable_gtk}"
echo ""
echo "Extra renderers:"
echo "       Memphis renderer: ${enable_memphis}"
echo ""
echo "Bindings:"
echo "  gobject-introspection: ${enable_introspection}"
echo "   Vala vapi generation: ${enable_vala}"
echo "             Vala demos: ${enable_vala_demos}"
echo ""