diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 500 |
1 files changed, 500 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..c06d286 --- /dev/null +++ b/configure.ac @@ -0,0 +1,500 @@ +AC_PREREQ(2.59) + +m4_define(eom_major_version, 2011) +m4_define(eom_minor_version, 11) +m4_define(eom_micro_version, 09) +m4_define(eom_version, eom_major_version.eom_minor_version.eom_micro_version) + +AC_INIT([eom], eom_version, [http://bugzilla.gnome.org/enter_bug.cgi?product=eom], [eom]) +AM_INIT_AUTOMAKE([1.9 foreign no-dist-gzip dist-bzip2]) + +# Support silencing the build output if supported (automake-1.11+) +m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) + +AC_DEFINE(EOM_MAJOR_VERSION, eom_major_version, [EOM major version]) +AC_SUBST(EOM_MAJOR_VERSION, eom_major_version) +AC_DEFINE(EOM_MINOR_VERSION, eom_minor_version, [EOM minor version]) +AC_SUBST(EOM_MINOR_VERSION, eom_minor_version) +AC_DEFINE(EOM_MICRO_VERSION, eom_micro_version, [EOM micro version]) +AC_SUBST(EOM_MICRO_VERSION, eom_micro_version) + +EOM_API_VERSION=2.20 +AC_SUBST(EOM_API_VERSION) + +AC_CONFIG_HEADERS([config.h]) + +AM_MAINTAINER_MODE + +MATE_COMMON_INIT +MATE_MAINTAINER_MODE_DEFINES +MATE_COMPILE_WARNINGS +MATE_DEBUG_CHECK + +# Disable building static archives by default +AC_DISABLE_STATIC +AC_PROG_LIBTOOL + +AC_ISC_POSIX +AC_PROG_CC +AM_PROG_CC_C_O +AC_PATH_PROG([GLIB_GENMARSHAL], [glib-genmarshal]) +AC_PATH_PROG([GLIB_MKENUMS],[glib-mkenums]) + +GTK_DOC_CHECK(1.9) + +AC_CHECK_FUNCS(strptime) + +# **************************************************************** +# Support for nl_langinfo (_NL_MEASUREMENT_MEASUREMENT) (optional) +# **************************************************************** +AC_MSG_CHECKING([for _NL_MEASUREMENT_MEASUREMENT]) +AC_TRY_LINK([#include <langinfo.h>], [ +char c; +c = *((unsigned char *) nl_langinfo(_NL_MEASUREMENT_MEASUREMENT)); +], have_langinfo_measurement=yes, have_langinfo_measurement=no) +AC_MSG_RESULT($have_langinfo_measurement) +if test "$have_langinfo_measurement" = "yes"; then + AC_DEFINE([HAVE__NL_MEASUREMENT_MEASUREMENT], [1], + [Define if _NL_MEASUREMENT_MEASUREMENT is available]) +fi + +# *********** +# Translation +# *********** + +AM_GLIB_GNU_GETTEXT +IT_PROG_INTLTOOL([0.40.0]) + +GETTEXT_PACKAGE=AC_PACKAGE_NAME +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext package.]) + +AC_SUBST(CFLAGS) +AC_SUBST(LDFLAGS) + +# *************** +# mate-doc-utils +# *************** + +PKG_PROG_PKG_CONFIG +MATE_DOC_INIT + +# ********** +# MATE Libs +# ********** + +GTK_REQUIRED=2.18.0 +GLIB_REQUIRED=2.25.9 +MATE_DESKTOP_REQUIRED=2.25.1 +GDKPIXBUF_REQUIRED=2.4.0 +MATECONF_REQUIRED=2.5.90 +GTK_PRINT_REQUIRED=2.10.0 +MATE_ICON_THEME_REQUIRED=2.19.1 +SHARED_MIME_INFO_REQUIRED=0.20 +EXEMPI_REQUIRED=1.99.5 + +EOM_MODULES="gtk+-2.0 >= $GTK_REQUIRED \ + glib-2.0 >= $GLIB_REQUIRED \ + gio-2.0 >= $GLIB_REQUIRED \ + gthread-2.0 >= $GLIB_REQUIRED \ + mate-desktop-2.0 >= $MATE_DESKTOP_REQUIRED \ + gdk-pixbuf-2.0 >= $GDKPIXBUF_REQUIRED \ + mateconf-2.0 >= $MATECONF_REQUIRED \ + gtk+-unix-print-2.0 >= $GTK_PRINT_REQUIRED \ + mate-icon-theme >= $MATE_ICON_THEME_REQUIRED \ + shared-mime-info >= $SHARED_MIME_INFO_REQUIRED" + +# *************** +# ZLIB (required) +# *************** + +have_zlib=yes +AC_CHECK_HEADERS([zlib.h], + [AC_CHECK_LIB([z], [inflate], + [AC_CHECK_LIB([z], [crc32], [], [have_zlib=no])], + [have_zlib=no])], + [have_zlib=no]) + +if test x$have_zlib = xno; then + AC_MSG_ERROR([No sufficient zlib library found on your system.]) +fi + +# *************** +# EXIF (optional) +# *************** + +LIBEXIF_REQUIRED=0.6.14 + +AC_ARG_WITH([libexif], AC_HELP_STRING([--without-libexif], [disable EXIF support])) +have_exif=no +if test x$with_libexif != xno; then + PKG_CHECK_MODULES(EXIF, libexif >= $LIBEXIF_REQUIRED, have_exif=yes, have_exif=no) + if test "x$have_exif" = "xyes"; then + AC_CHECK_HEADER([libexif/exif-data.h],[],[have_exif=no]) + fi +fi +if test "x$have_exif" = "xyes"; then + AC_DEFINE(HAVE_EXIF, 1, [EXIF Support.]) + EOM_MODULES="$EOM_MODULES libexif >= $LIBEXIF_REQUIRED" +fi + +AM_CONDITIONAL([HAVE_EXIF], [test "x$have_exif" = "xyes"]) + +# ********************* +# Little CMS (optional) +# ********************* + +AC_ARG_WITH([cms], AC_HELP_STRING([--without-cms], [disable colour management support])) +have_lcms=no +if test x$with_cms != xno; then + PKG_CHECK_MODULES(LCMS, lcms, have_lcms=yes, have_lcms=no) +fi +if test "x$have_lcms" = "xyes"; then + AC_DEFINE(HAVE_LCMS, 1, [Little CMS Support.]) + EOM_MODULES="$EOM_MODULES lcms" +fi + +AM_CONDITIONAL([HAVE_LCMS], [test "x$have_lcms" = "xyes"]) + +# ********************* +# Exempi (optional) +# ********************* +AC_ARG_WITH(xmp, AC_HELP_STRING([--without-xmp], [disable special XMP support])) +have_exempi=no +if test x$with_xmp != xno; then + PKG_CHECK_MODULES(EXEMPI, exempi-2.0 >= $EXEMPI_REQUIRED, have_exempi=yes, have_exempi=no) +fi +if test "x$have_exempi" = "xyes"; then + AC_DEFINE(HAVE_EXEMPI,1, [XMP support.]) + EOM_MODULES="$EOM_MODULES exempi-2.0 >= $EXEMPI_REQUIRED" +fi + +AM_CONDITIONAL([HAVE_EXEMPI], [test "x$have_exempi" = "xyes"]) + +# Build EXIF-related documentation if we really have support for it +if test "x$have_exif" = "xyes" || test "x$have_exempi" = "xyes"; then + EOM_DOC_EXIF_START="" + EOM_DOC_EXIF_STOP="" +else + EOM_DOC_EXIF_START="<!--" + EOM_DOC_EXIF_STOP="-->" +fi + +AC_SUBST([EOM_DOC_EXIF_START]) +AC_SUBST([EOM_DOC_EXIF_STOP]) + +# ******************** +# Jpeg (semi-optional) +# ******************** + +AC_ARG_WITH(libjpeg, AC_HELP_STRING([--without-libjpeg], [disable special JPEG support])) + have_jpeg=no + have_libjpeg_80=no + if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then + AC_CHECK_LIB(jpeg, jpeg_destroy_decompress, + have_jpeg=yes, + have_jpeg=no + AC_MSG_WARN(*** JPEG loader will not be built (JPEG library not found) ***)) + if test "$have_jpeg" = yes; then + AC_MSG_CHECKING([for jpeglib.h]) + AC_TRY_CPP( +[#include <stdio.h> +#undef PACKAGE +#undef VERSION +#undef HAVE_STDLIB_H +#include <jpeglib.h>], + have_jpeg=yes, + have_jpeg=no) + AC_MSG_RESULT($have_jpeg) + if test "$have_jpeg" = yes; then + LIBJPEG='-ljpeg' + AC_DEFINE(HAVE_JPEG, 1, [Jpeg Support.]) + AC_DEFINE(HAVE_LIBJPEG, 1, [libjpeg is Present.]) + AC_CHECK_LIB(jpeg, jpeg_simple_progression, + AC_DEFINE(HAVE_PROGRESSIVE_JPEG, 1, [Jpeg Progressive Saving Support.]), + AC_MSG_WARN(JPEG library does not support progressive saving.)) + AC_MSG_CHECKING([[libjpeg version is 8 or greater]]) + AC_PREPROC_IFELSE([ AC_LANG_SOURCE( + [[ +#include <stdio.h> +#include <jpeglib.h> +#if JPEG_LIB_VERSION < 80 +#error "wrong version" +#endif +int main(int c, char**v) { return 0; } + ]]) ], + [AC_MSG_RESULT(yes) + have_libjpeg_80=yes], + [AC_MSG_RESULT(no) + have_libjpeg_80=no]) + + else + AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***) + fi + fi + fi + + if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then + AC_MSG_ERROR([ +*** Checks for JPEG loader failed. You can build without it by passing +*** --without-libjpeg to configure but some programs using GTK+ may +*** not work properly]) + fi +AC_SUBST(LIBJPEG) +AM_CONDITIONAL(ENABLE_JPEG, test x$have_jpeg = xyes) +AM_CONDITIONAL(HAVE_LIBJPEG_80, test "x$have_libjpeg_80" = xyes) + +# **************** +# D-Bus activation +# **************** + +DBUS_GLIB_REQUIRED=0.71 + +AC_ARG_WITH([dbus], AC_HELP_STRING([--without-dbus], [disable dbus based activation])) +have_dbus=no +if test x$with_dbus != xno; then + PKG_CHECK_MODULES([DBUS], [dbus-glib-1 >= $DBUS_GLIB_REQUIRED], have_dbus=yes, have_dbus=no) +fi +if test x$have_dbus = xyes; then + AC_PATH_PROG([DBUS_BINDING_TOOL], [dbus-binding-tool], [no]) + + if test x$DBUS_BINDING_TOOL = "xno" ; then + AC_MSG_ERROR([dbus-binding-tool executable not found in your path - should be installed with dbus glib bindings]) + fi + + AC_DEFINE(HAVE_DBUS, 1, [DBUS based activation.]) + EOM_MODULES="$EOM_MODULES dbus-glib-1 >= $DBUS_GLIB_REQUIRED" +fi + +AM_CONDITIONAL([HAVE_DBUS], [test "x$have_dbus" = "xyes"]) + +# ************************************ +# libXML2 (required for toolbareditor) +# ************************************ + +LIBXML2_REQUIRED=2.0 +PKG_CHECK_MODULES(LIBXML2, [libxml-2.0 >= $LIBXML2_REQUIRED]) + +# *************** +# RSVG (optional for scaling svg image) +# *************** + +LIBRSVG_REQUIRED=2.26.0 + +AC_ARG_WITH([librsvg], AC_HELP_STRING([--without-librsvg], [disable RSVG support])) +have_rsvg=no +if test x$with_librsvg != xno; then + PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= $LIBRSVG_REQUIRED, have_rsvg=yes, have_rsvg=no) +fi +if test "x$have_rsvg" = "xyes"; then + AC_DEFINE(HAVE_RSVG, 1, [RSVG Support.]) + EOM_MODULES="$EOM_MODULES librsvg-2.0 >= $LIBRSVG_REQUIRED" +fi + +AM_CONDITIONAL([HAVE_RSVG], [test "x$have_rsvg" = "xyes"]) + +# **************** +# CFLAGS/LIBS init +# **************** + +PKG_CHECK_MODULES(EOM, $EOM_MODULES) +AC_SUBST(EOM_CFLAGS) +AC_SUBST(EOM_LIBS) + +# ******************************************************* +# libX11 (required for TotemScrSaver and Color Profiling) +# ******************************************************* + +# Check GDK rendering target +gdk_target=`$PKG_CONFIG --variable=target gdk-2.0` + +if test "x$have_lcms" = "xyes" || test "$gdk_target" = "x11"; then + PKG_CHECK_MODULES(X11, [x11], have_x11=yes, have_x11=no) + + if test "x$have_x11" != "xyes"; then + # Fallback for X11 releases without .pc-files + AC_PATH_XTRA + if test x$no_x = xyes ; then + AC_MSG_ERROR([X development libraries (libX11) not found]) + else + X11_LIBS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS" + AC_SUBST(X11_LIBS) + have_x11=yes + fi + fi +fi + +# ***** +# MateConf +# ***** + +AM_MATECONF_SOURCE_2 + +AC_PATH_PROG([MATECONFTOOL], [mateconftool-2], [no]) + +if test "$MATECONFTOOL" = "no"; then + AC_MSG_ERROR([mateconftool-2 not found]) +fi + +# ************ +# Sun Keyboard +# ************ + +AC_CHECK_HEADERS(X11/Sunkeysym.h, AC_DEFINE(HAVE_SUNKEYSYM_H, 1, [Sun Keyboard Support])) + +# ************** +# Python Support +# ************** + +AC_MSG_CHECKING([whether Python support is requested]) + +AC_ARG_ENABLE([python], + AS_HELP_STRING([--enable-python],[Enable python support]), + [enable_python=$enableval have_python=$enableval], + [enable_python=autodetect have_python=yes]) + +AC_MSG_RESULT([$enable_python]) + +if test "x$have_python" != "xno"; then + AM_PATH_PYTHON([2.3],[],[no]) + if test "x$PYTHON" = "x:"; then + have_python=no + fi +fi + +if test "x$have_python" != "xno"; then + PY_PREFIX=`$PYTHON -c 'import sys ; print sys.prefix'` + PY_EXEC_PREFIX=`$PYTHON -c 'import sys ; print sys.exec_prefix'` + PYTHON_LIBS="-lpython$PYTHON_VERSION" + PYTHON_LIB_LOC="-L$PY_EXEC_PREFIX/lib/python$PYTHON_VERSION/config" + PYTHON_CFLAGS="-I$PY_PREFIX/include/python$PYTHON_VERSION" + PYTHON_MAKEFILE="$PY_EXEC_PREFIX/lib/python$PYTHON_VERSION/config/Makefile" + PYTHON_BASEMODLIBS=`sed -n -e 's/^BASEMODLIBS=\(.*\)/\1/p' $PYTHON_MAKEFILE` + PYTHON_OTHER_LIBS=`sed -n -e 's/^LIBS=\(.*\)/\1/p' $PYTHON_MAKEFILE` + PYTHON_EXTRA_LIBS="$PYTHON_BASEMODLIBS $PYTHON_OTHER_LIBS" + AC_SUBST([PYTHON_LIBS]) + AC_SUBST([PYTHON_LIB_LOC]) + AC_SUBST([PYTHON_CFLAGS]) + AC_SUBST([PYTHON_EXTRA_LIBS]) +fi + +if test "x$have_python" != "xyes"; then + if test "x$enable_python" = "xyes"; then + AC_MSG_ERROR([Python not found]) + elif test "x$enable_python" = "xautodetect"; then + enable_python=no + AC_MSG_WARN([Python not found, disabling python support]) + fi +fi + +if test "x$have_python" != "xno"; then + PYGOBJECT_REQUIRED=2.15.1 + PYGTK_REQUIRED=2.13.0 + + PKG_CHECK_MODULES([PYGTK], [ + pygobject-2.0 >= $PYGOBJECT_REQUIRED + pygtk-2.0 >= $PYGTK_REQUIRED], + [], + [ + have_python=no + if test "x$enable_python" = "xyes"; then + AC_MSG_ERROR([$PYGTK_PKG_ERRORS]) + elif test "x$enable_python" = "xautodetect"; then + enable_python=no + AC_MSG_WARN([$PYGTK_PKG_ERRORS]) + AC_MSG_WARN([Disabling python support]) + fi + ]) + + AC_SUBST([PYGTK_CFLAGS]) + AC_SUBST([PYGTK_LIBS]) +fi + +if test "x$have_python" != "xno"; then + AC_MSG_CHECKING([for pygobject defs]) + PYGOBJECT_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygobject-2.0` + AC_MSG_RESULT([$PYGOBJECT_DEFSDIR]) + + AC_MSG_CHECKING([for pygtk defs]) + PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0` + AC_MSG_RESULT([$PYGTK_DEFSDIR]) + + AC_MSG_CHECKING([for pygobject codegen]) + PYGOBJECT_CODEGEN="$PYTHON `$PKG_CONFIG --variable=codegendir pygobject-2.0`/codegen.py" + AC_MSG_RESULT([$PYGOBJECT_CODEGEN]) + + AC_MSG_CHECKING([for pygobject h2def]) + PYGOBJECT_H2DEF="$PYTHON `$PKG_CONFIG --variable=codegendir pygobject-2.0`/h2def.py" + AC_MSG_RESULT([$PYGOBJECT_H2DEF]) + + AC_SUBST([PYGOBJECT_DEFSDIR]) + AC_SUBST([PYGTK_DEFSDIR]) + AC_SUBST([PYGOBJECT_CODEGEN]) + AC_SUBST([PYGOBJECT_H2DEF]) + + dnl Check for -fno-strict-aliasing + FLAGS="-fno-strict-aliasing" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $FLAGS" + AC_MSG_CHECKING([whether [$]CC understands $FLAGS]) + AC_TRY_COMPILE([], [], [compiler_has_option=yes], [compiler_has_option=no]) + CFLAGS="$save_CFLAGS" + AC_MSG_RESULT($compiler_has_option) + if test $compiler_has_option = yes; then + NO_STRICT_ALIASING_CFLAGS="$FLAGS" + fi + AC_SUBST([NO_STRICT_ALIASING_CFLAGS]) +fi + +if test "x$have_python" != "xno" -a "x$enable_python" != "xno"; then + enable_python=yes + AC_DEFINE([ENABLE_PYTHON],[1],[Define to compile with python support]) +fi + +AM_CONDITIONAL([ENABLE_PYTHON],[test "x$enable_python" = "xyes"]) + +AC_CONFIG_FILES([ +Makefile +src/Makefile +jpegutils/Makefile +cut-n-paste/Makefile +cut-n-paste/toolbar-editor/Makefile +cut-n-paste/totem-screensaver/Makefile +help/Makefile +po/Makefile.in +data/Makefile +data/eom.pc +data/eom.desktop.in +data/pixmaps/Makefile +data/icons/Makefile +data/icons/16x16/Makefile +data/icons/22x22/Makefile +data/icons/24x24/Makefile +data/icons/32x32/Makefile +data/icons/48x48/Makefile +data/icons/scalable/Makefile +doc/Makefile +doc/reference/Makefile +doc/reference/version.xml +doc/reference/eom-docs.sgml +plugins/Makefile +bindings/Makefile +bindings/python/Makefile +]) + +AC_OUTPUT + +echo " +Configure summary: + + Source code location .......: ${srcdir} + Compiler ...................: ${CC} + Extra Compiler Warnings ....: ${WARN_CFLAGS} + + Python support .............: ${have_python} + EXIF support ...............: ${have_exif} + XMP support ................: ${have_exempi} + JPEG support ...............: ${have_jpeg} + Colour management support ..: ${have_lcms} + D-Bus activation............: ${have_dbus} +" |