changeset 2870:49bd0d974e88

Merge.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 12 Dec 2018 21:56:30 +0200
parents c79d70e18076 (diff) c56112a165a4 (current diff)
children bf63dbec74b0
files src/Makefile.am src/editors.c
diffstat 7 files changed, 973 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configure.in	Wed Dec 12 21:56:30 2018 +0200
@@ -0,0 +1,718 @@
+dnl Process this file with autoconf to produce a configure script.  -*- Autoconf
+ -*-
+
+dnl This file is a part of Geeqie project (http://www.geeqie.org/).
+dnl Copyright (C) 2008 - 2016 The Geeqie Team
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+dnl GNU General Public License for more details.
+
+AC_PREREQ(2.57)
+AC_INIT([geeqie], m4_esyscmd_s(git rev-parse --quiet --verify --short HEAD), [geeqie-devel@lists.sourceforge.net], [], [http://www.geeqie.org/])
+
+# Add -Werror to the default CFLAGS
+CFLAGS+=" -Werror -Wno-error=deprecated-declarations -Wno-error=sign-compare -Wno-error=return-type"
+
+# Check for rightly dirs
+AC_CONFIG_SRCDIR([src/main.c])
+
+AC_CONFIG_AUX_DIR(auxdir)
+# Require Automake 1.14 for %reldir% support
+AM_INIT_AUTOMAKE([1.14.1 subdir-objects foreign dist-xz no-dist-gzip])
+
+AC_CONFIG_HEADER([config.h])
+
+# Only for developers
+AM_MAINTAINER_MODE
+
+# Silent build for automake >= 1.11
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+AC_ARG_ENABLE(developer, [
+Development options:
+AC_HELP_STRING([--enable-developer], [turn on developers mode [default=no]])],
+[
+  __IS_DEVELOPER=yes
+],
+[
+if test "x${enable_developer}" != "xyes"
+then
+  __IS_DEVELOPER=no
+else
+  __IS_DEVELOPER=yes
+fi
+])
+
+DX_HTML_FEATURE(ON)
+DX_CHM_FEATURE(OFF)
+DX_CHI_FEATURE(OFF)
+DX_MAN_FEATURE(OFF)
+DX_RTF_FEATURE(OFF)
+DX_XML_FEATURE(OFF)
+DX_PDF_FEATURE(OFF)
+DX_PS_FEATURE(OFF)
+
+DX_INIT_DOXYGEN($PACKAGE_NAME, doxygen.conf, doc/doxygen)
+
+#  Debug support
+# ----------------------------------------------------------------------
+
+dnl Debugging option
+dnl FIXME: official release convert default to 'no'
+dnl
+
+AC_ARG_ENABLE([debug-flags], [
+Development options:
+AC_HELP_STRING([--enable-debug-flags], [use compiler flags for debugging [default=no]])], [],
+[
+if test "x${enable_developer}" != "xyes"
+then
+  enable_debug_flags="no"
+else
+  enable_debug_flags="yes"
+fi
+])
+
+AC_ARG_ENABLE([debug-log], [
+Development options:
+AC_HELP_STRING([--enable-debug-log], [enable debugging messages [default=yes]])], [], [enable_debug_log="yes"])
+
+if test "x${enable_debug_flags}" != "xno"
+then
+  if test "x${enable_developer}" = "xyes"
+  then
+    CXXFLAGS="${CXXFLAGS} -Wall"
+    CFLAGS="${CFLAGS} -Wstrict-prototypes -Wall"
+  fi
+  __COMMONFLAGS="-g -O0 -Wextra -Wunused-value -Wunused-variable -Wunused-function -Wunused-label -Wcomment -Wmissing-braces -Wparentheses -Wreturn-type -Wswitch -Wstrict-aliasing -Wno-unused-parameter -Wformat -Wformat-security -DGQ_DEBUG_PATH_UTF8=1"
+  CXXFLAGS="${CXXFLAGS} ${__COMMONFLAGS}"
+  CFLAGS="${CFLAGS} ${__COMMONFLAGS} -Wimplicit-int -Werror-implicit-function-declaration"
+  __IS_DEBUG_FLAGS=yes
+else
+  __IS_DEBUG_FLAGS=no
+fi
+
+if test "x${enable_debug_log}" != "xno"
+then
+  AC_DEFINE(DEBUG,1,[Defined if Geeqie is compiled with debugging messages support])
+  __IS_DEBUG_LOG=yes
+else
+  __IS_DEBUG_LOG=no
+fi
+
+AM_CONDITIONAL(DEBUG, test x$enable_debug_flags = xyes)
+
+AC_ARG_ENABLE(deprecated, [
+AC_HELP_STRING([--enable-deprecated], [turn off checking of deprecated functions [default=yes]])], [],
+[
+if test "x${enable_developer}" != "xyes"
+then
+  enable_deprecated="no"
+else
+  enable_deprecated="yes"
+fi
+])
+
+if test "x${enable_deprecated}" != "xno"
+then
+  CXXFLAGS="${CXXFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
+  CFLAGS="${CFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
+  __IS_DEPRECATED=yes
+else
+  __IS_DEPRECATED=no
+fi
+
+
+AC_ISC_POSIX
+AC_PROG_CC
+AC_PROG_CC_C99
+AC_PROG_CXX
+AC_STDC_HEADERS
+AC_ARG_PROGRAM
+AC_SYS_LARGEFILE
+IT_PROG_INTLTOOL([0.35.0])
+
+
+dnl checks for functions
+AC_CHECK_FUNCS(strverscmp access fsync fflush)
+
+
+# Check target architecture
+
+# Check for Win32
+AC_MSG_CHECKING([for some Win32 platform])
+case "$target_os" in
+  mingw* | cygwin*)
+    platform_win32=yes
+    AC_DEFINE(PLATFORM_WIN32, 1, [Build on win32 OS])
+    ;;
+  *)
+    platform_win32=no
+    ;;
+esac
+AC_MSG_RESULT([$platform_win32])
+AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
+
+AC_MSG_CHECKING([for native Win32])
+case "$target_os" in
+  mingw*)
+    os_win32=yes
+    AC_DEFINE(OS_WIN32, 1, [Build on native win32 OS])
+    os_unix=no
+    PATHSEP=';'
+    ;;
+  *)
+    os_win32=no
+    os_unix=yes
+    PATHSEP=':'
+    ;;
+esac
+AC_MSG_RESULT([$os_win32])
+AC_SUBST(PATHSEP)
+AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
+AM_CONDITIONAL(OS_UNIX, test "$os_unix" = "yes")
+
+if test "$os_win32" = "yes"; then
+  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
+  AC_CHECK_TOOL(WINDRES, windres, :)
+else
+  WINDRES=":"
+fi
+
+AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
+AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != "x:")
+AC_SUBST(WINDRES)
+
+dnl reasonable guesses for where stuff is installed
+if test "x$prefix" = "xNONE"; then
+  prefix="/usr/local"
+else
+  prefix=$prefix
+fi
+
+AM_PATH_GLIB_2_0(2.24.0,,AC_MSG_ERROR(GLIB >= 2.24.0 not installed.))
+AC_ARG_ENABLE([gtk3], AC_HELP_STRING([--disable-gtk3], [use gtk2 instead of gtk3]),[gtk3="${enableval}"], [gtk3=m4_ifdef([AM_PATH_GTK_3_0], [auto], [no])])
+
+if test x$gtk3 == xyes; then
+    AC_MSG_WARN("Gtk3 enabled")
+    m4_ifdef([AM_PATH_GTK_3_0], [AM_PATH_GTK_3_0(3.0.0,,AC_MSG_ERROR(GTK+ >= 3.0.0 not installed.))])
+else
+    if test x$gtk3 != xno; then
+       AC_MSG_WARN("Gtk3 is preferred...")
+       m4_ifdef([AM_PATH_GTK_3_0], [AM_PATH_GTK_3_0(3.0.0,,[gtk3=no])])
+    fi
+fi
+
+if test x$gtk3 == xno; then
+    m4_ifdef([AM_PATH_GTK_2_0], [AM_PATH_GTK_2_0(2.20.0,,AC_MSG_ERROR(GTK+ >= 2.20.0 not installed.))])
+    true
+fi
+
+threads="auto"
+AC_ARG_ENABLE([threads],
+  AC_HELP_STRING([--disable-threads], [disable thread support]), [threads="${enableval}"])
+
+have_gthread="no"
+if test "x${threads}" != "xno" ; then
+  PKG_CHECK_MODULES(GTHREAD, [gthread-2.0], have_gthread="yes", [AC_MSG_WARN("No thread support in glib")])
+fi
+
+if test "x$have_gthread" != "xno"; then
+        AC_DEFINE(HAVE_GTHREAD, 1, Define if you have gthread library)
+        GLIB_CFLAGS="$GTHREAD_CFLAGS"
+        GLIB_LIBS="$GTHREAD_LIBS"
+fi
+
+
+AC_PATH_PROGS(GDK_PIXBUF_CSOURCE, "gdk-pixbuf-csource")
+AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
+
+AC_ARG_WITH(readmedir, [  --with-readmedir=DIR    install path for readme files],
+            readmedir=$withval, readmedir="$prefix/share/doc/geeqie-$VERSION")
+AC_ARG_WITH(htmldir, [  --with-htmldir=DIR      install path for html files],
+            htmldir=$withval, htmldir="$readmedir/html")
+
+AC_DEFINE_UNQUOTED(GQ_HELPDIR, "$readmedir", [Location of documentation files])
+AC_DEFINE_UNQUOTED(GQ_HTMLDIR, "$htmldir", [Location of html documentation])
+
+AC_PATH_PROG(GNOME_DOC_TOOL, gnome-doc-tool)
+
+AC_SUBST(readmedir)
+AC_SUBST(htmldir)
+
+eval "eval appdir=${datadir}/${PACKAGE}"
+AC_DEFINE_UNQUOTED([GQ_APP_DIR], "$appdir", [Location of application data])
+AC_SUBST(appdir)
+
+eval "eval gq_bindir=${prefix}/lib/${PACKAGE}"
+AC_DEFINE_UNQUOTED([GQ_BIN_DIR], "$gq_bindir", [Location of helper scripts and executables])
+AC_SUBST(gq_bindir)
+
+#  LIRC support
+# ----------------------------------------------------------------------
+
+dnl Check for LIRC client support
+AC_MSG_CHECKING(if LIRC support is enabled)
+lirc=no
+AC_ARG_ENABLE([lirc],
+  AC_HELP_STRING([--disable-lirc], [disable lirc support (auto)]),
+[
+if test "x${enableval}" = "xyes" -a "x$GCC" = "xyes"; then
+  AC_MSG_RESULT(yes)
+  lirc=yes
+else
+  AC_MSG_RESULT(no)
+  lirc=no
+fi], AC_MSG_RESULT(no))
+
+
+AC_ARG_WITH(lirc-prefix,
+[  --with-lirc-prefix=PATH Prefix where LIRC is installed],
+[
+for dir in `echo "$withval" | tr : ' '`; do
+  if test -d $dir/lib; then CXXFLAGS="$CXXFLAGS -L$dir/lib"; fi
+  if test -d $dir/include; then CXXFLAGS="$CXXFLAGS -I$dir/include"; fi
+  done
+])
+
+HAVE_LIRC=no
+if test "x${lirc}" != "xno" ; then
+  AC_CHECK_HEADER(lirc/lirc_client.h,
+    [AC_CHECK_LIB(lirc_client,lirc_init,[HAVE_LIRC=yes;LIBS=-llirc_client $LIBS;AC_DEFINE([HAVE_LIRC],[],[Define to 1 if LIRC must be used])],,)],)
+fi
+AM_CONDITIONAL(HAVE_LIRC, [test "x$HAVE_LIRC" = xyes])
+
+
+#  LCMS support
+# ----------------------------------------------------------------------
+
+AC_ARG_ENABLE([lcms],
+  AC_HELP_STRING([--disable-lcms], [disable lcms support]),
+    [liblcms=$enableval], [liblcms=auto])
+
+if test "x${liblcms}" != "xno"; then
+  PKG_CHECK_MODULES(LCMS, [lcms2 >= 2.0],
+    [
+      HAVE_LCMS=yes
+      AC_DEFINE(HAVE_LCMS, 1, [define to enable use of color profiles with lcms])
+      AC_DEFINE(HAVE_LCMS2, 1, [lcms2 is used])
+    ],
+    [
+    PKG_CHECK_MODULES(LCMS, [lcms >= 1.14],
+      [
+        HAVE_LCMS=yes
+        AC_DEFINE(HAVE_LCMS, 1, [define to enable use of color profiles with lcms])
+      ],
+      [
+        HAVE_LCMS=no
+        AC_MSG_WARN([$LCMS_PKG_ERRORS])
+      ])
+    ])
+else
+  HAVE_LCMS=disabled
+fi
+
+AM_CONDITIONAL(HAVE_LCMS, [test "x$HAVE_LCMS" = xyes])
+AC_SUBST(LCMS_CFLAGS)
+AC_SUBST(LCMS_LIBS)
+
+#  libjpeg support
+# ----------------------------------------------------------------------
+
+AC_ARG_ENABLE([jpeg],
+  AC_HELP_STRING([--disable-jpeg], [disable direct jpeg support]),
+    [libjpeg=$enableval], [libjpeg=auto])
+
+if test "x${libjpeg}" != "xno"; then
+  AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
+      HAVE_JPEG=yes
+      JPEG_LIBS=-ljpeg
+      AC_DEFINE(HAVE_JPEG, 1, [define to enable use of custom jpeg loader]),
+      HAVE_JPEG=no)
+else
+  HAVE_JPEG=disabled
+fi
+
+AM_CONDITIONAL(HAVE_JPEG, [test "x$HAVE_JPEG" = xyes])
+AC_SUBST(JPEG_CFLAGS)
+AC_SUBST(JPEG_LIBS)
+
+
+#  libtiff support
+# ----------------------------------------------------------------------
+
+AC_ARG_ENABLE([tiff],
+  AC_HELP_STRING([--disable-tiff], [disable direct tiff support]),
+    [libtiff=$enableval], [libtiff=auto])
+
+if test "x${libtiff}" != "xno"; then
+  AC_CHECK_LIB(tiff, TIFFClientOpen,
+      HAVE_TIFF=yes
+      TIFF_LIBS=-ltiff
+      AC_DEFINE(HAVE_TIFF, 1, [define to enable use of custom tiff loader]),
+      HAVE_TIFF=no)
+else
+  HAVE_TIFF=disabled
+fi
+
+AM_CONDITIONAL(HAVE_TIFF, [test "x$HAVE_TIFF" = xyes])
+AC_SUBST(TIFF_CFLAGS)
+AC_SUBST(TIFF_LIBS)
+
+#  libffmpegthumbnailer support
+# ----------------------------------------------------------------------
+
+AC_ARG_ENABLE([ffmpegthumbnailer],
+  AC_HELP_STRING([--disable-ffmpegthumbnailer], [disable ffmpegthumbnailer support for generating thumbnails of video files]),
+    [ffmpegthumbnailer=$enableval], [ffmpegthumbnailer=auto])
+
+if test "x${ffmpegthumbnailer}" != "xno"; then
+  PKG_CHECK_MODULES(FFMPEGTHUMBNAILER, [libffmpegthumbnailer >= 2.1.0],
+    [
+      HAVE_FFMPEGTHUMBNAILER=yes
+      AC_DEFINE(HAVE_FFMPEGTHUMBNAILER, 1, [define to enable ffmpegthumbnailer support])
+      AC_CHECK_MEMBER([video_thumbnailer.prefer_embedded_metadata], [AC_DEFINE(HAVE_FFMPEGTHUMBNAILER_METADATA, 1, [define if ffmpegthumbnailer supports embedded metadata])], [], [[#include <libffmpegthumbnailer/videothumbnailerc.h>]])
+      AC_CHECK_MEMBER([image_data.image_data_width], [AC_DEFINE(HAVE_FFMPEGTHUMBNAILER_RGB, 1, [define if ffmpegthumbnailer supports raw RGB output])], [], [[#include <libffmpegthumbnailer/videothumbnailerc.h>]])
+      AC_CHECK_LIB([ffmpegthumbnailer], [video_thumbnailer_set_size], [AC_DEFINE(HAVE_FFMPEGTHUMBNAILER_WH, 1, [define if ffmpegthumbnailer supports specifying size by width/height])])
+    ],
+    [
+      HAVE_FFMPEGTHUMBNAILER=no
+    ])
+else
+  HAVE_FFMPEGTHUMBNAILER=disabled
+fi
+
+AM_CONDITIONAL(HAVE_FFMPEGTHUMBNAILER, [test "x$HAVE_FFMPEGTHUMBNAILER" = xyes])
+AC_SUBST(FFMPEGTHUMBNAILER_CFLAGS)
+AC_SUBST(FFMPEGTHUMBNAILER_LIBS)
+
+#  libbpg support
+# ----------------------------------------------------------------------
+
+AC_ARG_ENABLE([bpg],
+  AS_HELP_STRING([--disable-bpg],[disable direct bpg support]),
+    [libbpg=$enableval], [libbpg=auto])
+
+if test "x${libbpg}" = "xyes"; then
+  HAVE_BPG=yes
+  BPG_LIBS=/usr/local/lib/libbpg.a
+  BPG_CFLAGS=-I/usr/local/include/
+  AC_DEFINE(HAVE_BPG, 1, [define to enable use of BPG loader])
+elif test "x${libbpg}" != "xno"; then
+  AC_CHECK_LIB(bpg, bpg_decoder_open,
+  [
+    HAVE_BPG=yes
+    BPG_LIBS=-lbpg
+    AC_DEFINE(HAVE_BPG, 1, [define to enable use of BPG loader])
+  ],
+  [
+    HAVE_BPG=no
+  ])
+else
+  HAVE_BPG=disabled
+fi
+
+AM_CONDITIONAL(HAVE_BPG, [test "x$HAVE_BPG" = xyes])
+AC_SUBST(BPG_CFLAGS)
+AC_SUBST(BPG_LIBS)
+
+
+#  Exiv2 support
+# ----------------------------------------------------------------------
+
+AC_ARG_ENABLE([exiv2],
+  AC_HELP_STRING([--disable-exiv2], [disable exiv2 support]),
+    [libexiv2=$enableval], [libexiv2=auto])
+
+if test "x${libexiv2}" != "xno"; then
+  PKG_CHECK_MODULES(EXIV2, [exiv2 >= 0.11],
+    [
+      HAVE_EXIV2=yes
+      AC_DEFINE(HAVE_EXIV2, 1, [define to enable exiv2 support])
+    ],
+    [
+      HAVE_EXIV2=no
+      AC_MSG_WARN([$EXIV2_PKG_ERRORS])
+    ])
+else
+  HAVE_EXIV2=disabled
+fi
+
+AM_CONDITIONAL(HAVE_EXIV2, [test "x$HAVE_EXIV2" = xyes])
+AC_SUBST(EXIV2_CFLAGS)
+AC_SUBST(EXIV2_LIBS)
+
+
+#  Gettext support
+# ----------------------------------------------------------------------
+
+dnl Set of available languages
+ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`"
+AC_SUBST([CONFIG_STATUS_DEPENDENCIES],['$(top_srcdir)/po/LINGUAS'])
+
+GETTEXT_PACKAGE=$PACKAGE
+AC_SUBST(GETTEXT_PACKAGE)
+AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${GETTEXT_PACKAGE}"],[Name of gettext file])
+AM_GLIB_GNU_GETTEXT
+AM_GLIB_DEFINE_LOCALEDIR(GQ_LOCALEDIR)
+
+AC_SUBST(CFLAGS)
+AC_SUBST(CXXFLAGS)
+AC_SUBST(CPPFLAGS)
+AC_SUBST(LDFLAGS)
+
+
+#  clutter and champlain support
+# ----------------------------------------------------------------------
+
+AC_ARG_ENABLE([map],
+  AC_HELP_STRING([--disable-map], [disable map support]),
+    [libgps=$enableval], [libgps=auto])
+
+AC_ARG_ENABLE([gpu-accel],
+  AC_HELP_STRING([--disable-gpu-accel], [disable GPU acceleration support - experimental]),
+    [libclutter=$enableval], [libclutter=auto])
+
+if test "x${libclutter}" != "xno" -a "x${gtk3}" != "xno"; then
+  PKG_CHECK_MODULES(CLUTTER, [clutter-1.0 >= 1.0],
+    [
+      PKG_CHECK_MODULES(CLUTTER_GTK, [clutter-gtk-1.0 >= 1.0],
+        [
+          HAVE_CLUTTER=yes
+          AC_DEFINE(HAVE_CLUTTER, 1, [define to enable use of clutter library])
+        ],
+        [
+          HAVE_CLUTTER=no
+          AC_MSG_WARN([$CLUTTER_GTK_PKG_ERRORS])
+        ])
+    ],
+    [
+      HAVE_CLUTTER=no
+      AC_MSG_WARN([$CLUTTER_PKG_ERRORS])
+    ])
+else
+  HAVE_CLUTTER=disabled
+fi
+
+AC_SUBST(CLUTTER_CFLAGS)
+AC_SUBST(CLUTTER_LIBS)
+AC_SUBST(CLUTTER_GTK_CFLAGS)
+AC_SUBST(CLUTTER_GTK_LIBS)
+
+
+#  Libchamplain support - used for map facility
+# ----------------------------------------------------------------------
+
+if test "x${libgps}" != "xno" -a "x${HAVE_CLUTTER}" == "xyes"; then
+    if test "x${gtk3}" != "xno"; then
+      PKG_CHECK_MODULES(LIBCHAMPLAIN, [champlain-0.12 >= 0.12],
+        [
+          HAVE_LIBCHAMPLAIN=yes
+          AC_DEFINE(HAVE_LIBCHAMPLAIN, 1, [define to enable use of maps])
+        ],
+        [
+          HAVE_LIBCHAMPLAIN=no
+          AC_MSG_WARN([$LIBCHAMPLAIN_PKG_ERRORS])
+        ])
+    else
+      HAVE_LIBCHAMPLAIN=disabled
+    fi
+else
+  HAVE_LIBCHAMPLAIN=disabled
+fi
+
+if test "x${libgps}" != "xno" -a "x${HAVE_LIBCHAMPLAIN}" == "xyes" ; then
+  PKG_CHECK_MODULES(LIBCHAMPLAIN_GTK, [champlain-gtk-0.12 >= 0.12],
+    [
+      HAVE_LIBCHAMPLAIN_GTK=yes
+      AC_DEFINE(HAVE_LIBCHAMPLAIN_GTK, 1, [define to enable use of maps])
+    ],
+    [
+      HAVE_LIBCHAMPLAIN_GTK=no
+      AC_MSG_WARN([$LIBCHAMPLAIN_GTK_PKG_ERRORS])
+    ])
+else
+  HAVE_LIBCHAMPLAIN_GTK=disabled
+fi
+
+AM_CONDITIONAL(HAVE_LIBCHAMPLAIN_GTK, [test "x$HAVE_LIBCHAMPLAIN_GTK" = xyes])
+AC_SUBST(LIBCHAMPLAIN_GTK_CFLAGS)
+AC_SUBST(LIBCHAMPLAIN_GTK_LIBS)
+
+#  Lua support
+# ----------------------------------------------------------------------
+
+AC_ARG_ENABLE([lua],
+  AC_HELP_STRING([--disable-lua], [disable lua support]),
+    [liblua=$enableval], [liblua=auto])
+
+if test "x${liblua}" != "xno"; then
+  PKG_CHECK_MODULES(LUA, lua5.1 >= 5.1,
+    [
+      HAVE_LUA=yes
+      AC_DEFINE(HAVE_LUA, 1, [define to enable lua support])
+    ],
+    [
+      HAVE_LUA=no
+      AC_MSG_WARN([$LUA_PKG_ERRORS])
+    ])
+else
+  HAVE_LUA=disabled
+fi
+
+AM_CONDITIONAL(HAVE_LUA, [test "x$HAVE_LUA" = xyes])
+AC_SUBST(LUA_CFLAGS)
+AC_SUBST(LUA_LIBS)
+
+#  Pdf support
+# ----------------------------------------------------------------------
+
+if test "x${gtk3}" != "xno"; then
+    AC_ARG_ENABLE([pdf],
+      AC_HELP_STRING([--disable-pdf], [disable pdf support]),
+        [libpdf=$enableval], [libpdf=auto])
+
+    if test "x${libpdf}" != "xno"; then
+      PKG_CHECK_MODULES(PDF, poppler-glib >= 0.62,
+        [
+          HAVE_PDF=yes
+          AC_DEFINE(HAVE_PDF, 1, [define to enable pdf support])
+        ],
+        [
+          HAVE_PDF=no
+          AC_MSG_WARN([$PDF_PKG_ERRORS])
+        ])
+    else
+        HAVE_PDF=disabled
+    fi
+else
+    HAVE_PDF=disabled
+fi
+
+AM_CONDITIONAL(HAVE_PDF, [test "x$HAVE_PDF" = xyes])
+AC_SUBST(PDF_CFLAGS)
+AC_SUBST(PDF_LIBS)
+
+#  Markdown support
+# ----------------------------------------------------------------------
+
+AM_CONDITIONAL(HAVE_MARKDOWN, [ "$(command -v markdown)" ])
+
+# ----------------------------------------------------------------------
+
+AH_TOP([
+/** \file
+ * \short autogenerated definition by autoheader.
+ * \author Bruclik
+ */
+
+/*
+ *  This file is a part of Geeqie project (http://www.geeqie.org/).
+ *  Copyright (C) 2008 - 2016 The Geeqie Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ */
+
+#ifndef _INCLUDE_CONFIG_H
+#define _INCLUDE_CONFIG_H
+])
+
+AH_BOTTOM([#endif])
+
+dnl Write the output
+dnl
+
+AC_CONFIG_FILES([
+    Makefile
+    src/Makefile
+    src/icons/Makefile
+    src/icons/svg/Makefile
+    po/Makefile.in
+    doc/Makefile
+    plugins/Makefile
+    plugins/symlink/Makefile
+    plugins/rotate/Makefile
+    plugins/ufraw/Makefile
+    plugins/import/Makefile
+    plugins/geocode-parameters/Makefile
+    geeqie.spec
+])
+
+AC_OUTPUT
+dnl Print the results
+dnl
+
+cat > config.report << END
+
+     Config results:
+    -=-=-=-=-=-=-=-=-
+
+Package:
+  Name:          $PACKAGE_NAME
+  Version:       $PACKAGE_VERSION
+
+Architecture:
+  UNIX:          $os_unix
+  Win32:         $platform_win32 (native: $os_win32)
+
+Flags:
+  Geeqie:        $GQ_CFLAGS
+  DEFS:          $DEFS
+  CPPFLAGS:      $__CPPFLAGS
+  CFLAGS:        $CFLAGS
+  CXXFLAGS:      $CXXFLAGS
+  Gtk:           $GTK_CFLAGS
+  Glib:          $GLIB_CFLAGS
+  Thread:        $GTHREAD_LIBS
+  Others:	 $JPEG_LIBS $TIFF_LIBS $LCMS_LIBS $EXIV2_LIBS $CLUTTER_LIBS $CLUTTER_GTK_LIBS $LIBCHAMPLAIN_LIBS $LIBCHAMPLAIN_GTK_LIBS $LUA_LIBS
+
+Localization:
+  NLS support:   $USE_NLS
+  LINGUAS:       $LINGUAS
+
+Settings:
+  Developer:     $__IS_DEVELOPER
+  Debug flags:   $__IS_DEBUG_FLAGS
+  Debug log:     $__IS_DEBUG_LOG
+  Deprecated:    $__IS_DEPRECATED
+
+Support:
+  LCMS:          $HAVE_LCMS
+  Exiv2:	 $HAVE_EXIV2
+  Lirc:          $HAVE_LIRC
+  Clutter:       $HAVE_CLUTTER
+  Libchamplain:		$HAVE_LIBCHAMPLAIN
+  Libchamplain-gtk:	$HAVE_LIBCHAMPLAIN_GTK
+  Lua:	         $HAVE_LUA
+  Use libBPG:    $HAVE_BPG
+  FFmpegthumbnailer:	$HAVE_FFMPEGTHUMBNAILER
+  Pdf:	         $HAVE_PDF
+
+Documentation:
+  Doxygen:       $DX_DOXYGEN
+  doc-tool:      $GNOME_DOC_TOOL
+
+END
+
+cat config.report
+cat <<EOF
+
+  Now you can type "make" to build Geeqie
+  (or you take blue pill and the story ends :)
+
+EOF
--- a/src/Makefile.am	Fri Nov 30 11:05:43 2018 +0000
+++ b/src/Makefile.am	Wed Dec 12 21:56:30 2018 +0200
@@ -181,6 +181,8 @@
 	image_load_jpeg.h\
 	image_load_tiff.c\
 	image_load_tiff.h\
+	image_load_bpg.c\
+	image_load_bpg.h\
 	image_load_dds.c\
 	image_load_dds.h\
 	image_load_collection.c\
@@ -276,7 +278,7 @@
 	zonedetect.c	\
 	zonedetect.h
 
-geeqie_LDADD = $(GTK_LIBS) $(GLIB_LIBS) $(INTLLIBS) $(JPEG_LIBS) $(TIFF_LIBS) $(LCMS_LIBS) $(EXIV2_LIBS) $(LIBCHAMPLAIN_LIBS) $(LIBCHAMPLAIN_GTK_LIBS) $(LUA_LIBS) $(CLUTTER_LIBS) $(CLUTTER_GTK_LIBS) $(FFMPEGTHUMBNAILER_LIBS) $(PDF_LIBS)
+geeqie_LDADD = $(GTK_LIBS) $(GLIB_LIBS) $(INTLLIBS) $(JPEG_LIBS) $(TIFF_LIBS) $(BPG_LIBS) $(LCMS_LIBS) $(EXIV2_LIBS) $(LIBCHAMPLAIN_LIBS) $(LIBCHAMPLAIN_GTK_LIBS) $(LUA_LIBS) $(CLUTTER_LIBS) $(CLUTTER_GTK_LIBS) $(FFMPEGTHUMBNAILER_LIBS) $(PDF_LIBS)
 
 EXTRA_DIST = \
 	$(extra_SLIK)
--- a/src/editors.c	Fri Nov 30 11:05:43 2018 +0000
+++ b/src/editors.c	Wed Dec 12 21:56:30 2018 +0200
@@ -113,6 +113,7 @@
 		{"image/gif",		".gif"},
 		{"image/jpeg",		".jpeg;.jpg;.mpo"},
 		{"image/jpg",		".jpg;.jpeg"},
+		{"image/bpg",		".bpg"},
 		{"image/pcx",		".pcx"},
 		{"image/png",		".png"},
 		{"image/svg",		".svg"},
--- a/src/filefilter.c	Fri Nov 30 11:05:43 2018 +0000
+++ b/src/filefilter.c	Wed Dec 12 21:56:30 2018 +0200
@@ -237,6 +237,9 @@
 	/* add defaults even if gdk-pixbuf does not have them, but disabled */
 	filter_add_if_missing("jpeg", "JPEG group", ".jpg;.jpeg;.jpe", FORMAT_CLASS_IMAGE, TRUE, FALSE, FALSE);
 	filter_add_if_missing("png", "Portable Network Graphic", ".png", FORMAT_CLASS_IMAGE, TRUE, FALSE, FALSE);
+#ifdef HAVE_BPG
+	filter_add_if_missing("bpg", "Better Portable Graphics", ".bpg", FORMAT_CLASS_IMAGE, TRUE, FALSE, FALSE);
+#endif
 	filter_add_if_missing("tiff", "Tiff", ".tif;.tiff", FORMAT_CLASS_IMAGE, TRUE, FALSE, FALSE);
 	filter_add_if_missing("pnm", "Packed Pixel formats", ".pbm;.pgm;.pnm;.ppm", FORMAT_CLASS_IMAGE, TRUE, FALSE, FALSE);
 	filter_add_if_missing("gif", "Graphics Interchange Format", ".gif", FORMAT_CLASS_IMAGE, TRUE, FALSE, FALSE);
--- a/src/image-load.c	Fri Nov 30 11:05:43 2018 +0000
+++ b/src/image-load.c	Wed Dec 12 21:56:30 2018 +0200
@@ -24,6 +24,7 @@
 #include "image_load_gdk.h"
 #include "image_load_jpeg.h"
 #include "image_load_tiff.h"
+#include "image_load_bpg.h"
 #include "image_load_dds.h"
 #include "image_load_pdf.h"
 #include "image_load_ffmpegthumbnailer.h"
@@ -647,6 +648,16 @@
 		}
 	else
 #endif
+#ifdef HAVE_BPG
+	if (il->bytes_total >= 10 &&
+	    (memcmp(il->mapped_file, "BPG\xfb", 4) == 0 ||
+	     memcmp(il->mapped_file, "BPG\xfb", 4) == 0))
+	     	{
+		DEBUG_1("Using custom BPG loader");
+		image_loader_backend_set_bpg(&il->backend);
+		}
+	else
+#endif
 	if (il->bytes_total >= 3 && il->mapped_file[0] == 0x44 && il->mapped_file[1] == 0x44 && il->mapped_file[2] == 0x53)
 		{
 		DEBUG_1("Using dds loader");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/image_load_bpg.c	Wed Dec 12 21:56:30 2018 +0200
@@ -0,0 +1,207 @@
+/*
+ * Copyright (C) 2016 The Geeqie Team
+ *
+ * Authors: Matti Hämäläinen <ccr@tnsp.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "main.h"
+
+#include "image-load.h"
+#include "image_load_bpg.h"
+
+#ifdef HAVE_BPG
+
+#include <libbpg.h>
+
+
+typedef struct _ImageLoaderBPG ImageLoaderBPG;
+
+struct _ImageLoaderBPG
+{
+	ImageLoaderBackendCbAreaUpdated area_updated_cb;
+	ImageLoaderBackendCbSize size_cb;
+	ImageLoaderBackendCbAreaPrepared area_prepared_cb;
+
+	gpointer data;
+
+	GdkPixbuf* pixbuf;
+	guint requested_width;
+	guint requested_height;
+
+	gboolean abort;
+};
+
+static void free_buffer(guchar* pixels, gpointer data)
+{
+	g_free(pixels);
+}
+
+static gboolean image_loader_bpg_load(gpointer loader, const guchar* buf, gsize count, GError** error)
+{
+	ImageLoaderBPG* lt = (ImageLoaderBPG*)loader;
+	BPGDecoderContext *img = bpg_decoder_open();
+	BPGImageInfo info_s, *info = &info_s;
+	guchar *pixels = NULL;
+	gint rowstride, y, bpp;
+	gsize bytes;
+
+	if (bpg_decoder_decode(img, buf, count) < 0)
+	{
+		DEBUG_1("Failed to open BPG image");
+		return FALSE;
+	}
+
+	bpg_decoder_get_info(img, &info_s);
+	if (info->width <= 0 || info->height <= 0)
+	{
+		DEBUG_1("Width or height of BPG image is zero");
+		goto err;
+	}
+
+	bpp = info->has_alpha ? 4 : 3;
+	rowstride = info->width * bpp;
+	if (rowstride / bpp != info->width)
+	{
+		DEBUG_1("Dimensions of BPG image too large");
+		goto err;
+	}
+
+	bytes = info->height * rowstride;
+	if (bytes / rowstride != info->height)
+	{
+		DEBUG_1("Dimensions of BPG image too large");
+		goto err;
+	}
+
+	bpg_decoder_start(img, info->has_alpha ? BPG_OUTPUT_FORMAT_RGBA32 : BPG_OUTPUT_FORMAT_RGB24);
+
+	lt->requested_width = info->width;
+	lt->requested_height = info->height;
+	lt->size_cb(loader, lt->requested_width, lt->requested_height, lt->data);
+
+	pixels = g_try_malloc(bytes);
+	if (!pixels)
+	{
+		DEBUG_1("Insufficient memory to open BPG file");
+		goto err;
+	}
+
+	lt->pixbuf = gdk_pixbuf_new_from_data(pixels, GDK_COLORSPACE_RGB, info->has_alpha, 8, info->width, info->height, rowstride, free_buffer, NULL);
+	if (!lt->pixbuf)
+	{
+		g_free(pixels);
+		DEBUG_1("Insufficient memory to open BPG file");
+		goto err;
+	}
+
+	lt->area_prepared_cb(loader, lt->data);
+
+	for (y = 0; y < info->height; y++)
+	{
+		if (lt->abort)
+			break;
+
+		bpg_decoder_get_line(img, pixels + y * info->width * bpp);
+
+		lt->area_updated_cb(loader, 0, y, info->width, 1, lt->data);
+	}
+
+	bpg_decoder_close(img);
+
+	return TRUE;
+
+err:
+	if (img)
+		bpg_decoder_close(img);
+
+	return FALSE;
+}
+
+static gpointer image_loader_bpg_new(ImageLoaderBackendCbAreaUpdated area_updated_cb,
+		ImageLoaderBackendCbSize size_cb,
+		ImageLoaderBackendCbAreaPrepared area_prepared_cb,
+		gpointer data)
+{
+	ImageLoaderBPG* loader = g_new0(ImageLoaderBPG, 1);
+
+	loader->area_updated_cb = area_updated_cb;
+	loader->size_cb = size_cb;
+	loader->area_prepared_cb = area_prepared_cb;
+	loader->data = data;
+	return (gpointer)loader;
+}
+
+static void image_loader_bpg_set_size(gpointer loader, int width, int height)
+{
+	ImageLoaderBPG* lt = (ImageLoaderBPG*)loader;
+	lt->requested_width = width;
+	lt->requested_height = height;
+}
+
+static GdkPixbuf* image_loader_bpg_get_pixbuf(gpointer loader)
+{
+	ImageLoaderBPG* lt = (ImageLoaderBPG*)loader;
+	return lt->pixbuf;
+}
+
+static gchar* image_loader_bpg_get_format_name(gpointer loader)
+{
+	return g_strdup("bpg");
+}
+
+static gchar** image_loader_bpg_get_format_mime_types(gpointer loader)
+{
+	static gchar* mime[] = {"image/bpg", NULL};
+	return g_strdupv(mime);
+}
+
+static gboolean image_loader_bpg_close(gpointer loader, GError** error)
+{
+	return TRUE;
+}
+
+static void image_loader_bpg_abort(gpointer loader)
+{
+	ImageLoaderBPG* lt = (ImageLoaderBPG*)loader;
+	lt->abort = TRUE;
+}
+
+static void image_loader_bpg_free(gpointer loader)
+{
+	ImageLoaderBPG* lt = (ImageLoaderBPG*)loader;
+	if (lt->pixbuf)
+		g_object_unref(lt->pixbuf);
+	g_free(lt);
+}
+
+void image_loader_backend_set_bpg(ImageLoaderBackend* funcs)
+{
+	funcs->loader_new = image_loader_bpg_new;
+	funcs->set_size = image_loader_bpg_set_size;
+	funcs->load = image_loader_bpg_load;
+	funcs->write = NULL;
+	funcs->get_pixbuf = image_loader_bpg_get_pixbuf;
+	funcs->close = image_loader_bpg_close;
+	funcs->abort = image_loader_bpg_abort;
+	funcs->free = image_loader_bpg_free;
+
+	funcs->get_format_name = image_loader_bpg_get_format_name;
+	funcs->get_format_mime_types = image_loader_bpg_get_format_mime_types;
+}
+
+#endif
+/* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/image_load_bpg.h	Wed Dec 12 21:56:30 2018 +0200
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2016 The Geeqie Team
+ *
+ * Authors: Matti Hämäläinen <ccr@tnsp.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef IMAGE_LOAD_BPG_H
+#define IMAGE_LOAD_BPG_H
+
+#ifdef HAVE_BPG
+void image_loader_backend_set_bpg(ImageLoaderBackend *funcs);
+#endif
+
+#endif
+
+/* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */