summaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac927
1 files changed, 927 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..f0f9723
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,927 @@
+changecom()dnl
+dnl Process this file with autoconf to produce a configure script.
+AC_PREREQ([2.68])
+AC_INIT([zbar],[0.23.93],[mchehab+huawei@kernel.org])
+m4_ifndef([AC_LANG_DEFINES_PROVIDED],
+ [m4_define([AC_LANG_DEFINES_PROVIDED])])
+AC_CONFIG_AUX_DIR(config)
+AC_CONFIG_MACRO_DIR(config)
+AM_INIT_AUTOMAKE([1.13 -Werror foreign subdir-objects std-options dist-bzip2])
+m4_pattern_allow([AM_PROG_AR])
+AC_CONFIG_HEADERS([include/config.h])
+AC_CONFIG_SRCDIR(zbar/scanner.c)
+LT_PREREQ([2.2])
+LT_INIT([dlopen win32-dll])
+LT_LANG([Windows Resource])
+AM_SILENT_RULES([yes])
+
+dnl update these just before each release (along w/package version above)
+dnl LIB_VERSION update instructions copied from libtool docs:
+dnl library version follows the form current:revision:age
+dnl - If the library source code has changed at all since the last update,
+dnl then increment revision (c:r:a becomes c:r+1:a).
+dnl - If any interfaces have been added, removed, or changed,
+dnl increment current, and set revision to 0.
+dnl - If any interfaces have been added since the last public release,
+dnl then increment age.
+dnl - If any interfaces have been removed since the last public release,
+dnl then set age to 0.
+AC_SUBST([LIB_VERSION], [3:0:3])
+AC_SUBST([RELDATE], [2017-04-11])
+
+dnl widget libraries use their own versioning.
+dnl NB pygtk wrapper is *unversioned*
+AC_SUBST([ZGTK_LIB_VERSION], [0:2:0])
+AC_SUBST([ZQT_LIB_VERSION], [1:2:1])
+
+AC_DEFINE_UNQUOTED([ZBAR_VERSION_MAJOR],
+ [[`echo "$PACKAGE_VERSION" | sed -e 's/\..*$//'`]],
+ [Program major version (before the '.') as a number])
+AC_DEFINE_UNQUOTED([ZBAR_VERSION_MINOR],
+ [[`echo "$PACKAGE_VERSION" | sed -e 's/^[^\.]*\.\([^\.]*\).*/\1/'`]],
+ [Program minor version (after '.') as a number])
+AC_DEFINE_UNQUOTED([ZBAR_VERSION_PATCH],
+ [[`echo "$PACKAGE_VERSION" | sed -e 's/^[^\.]*\.[^\.]*\.*//' | sed s,^$,0,`]],
+ [Program patch version (after the second '.') as a number])
+
+cur=`echo "$LIB_VERSION" | sed -e 's/:.*$//'`
+age=`echo "$LIB_VERSION" | sed -e 's/^.*://'`
+AC_DEFINE_UNQUOTED([LIB_VERSION_MAJOR], [[$(( $cur - $age ))]],
+ [Library major version])
+AC_DEFINE_UNQUOTED([LIB_VERSION_MINOR], [[$age]],
+ [Library minor version])
+AC_DEFINE_UNQUOTED([LIB_VERSION_REVISION],
+ [[`echo "$LIB_VERSION" | sed -e 's/^[^:]*:\([^:]*\):.*$/\1/'`]],
+ [Library revision])
+
+AM_CPPFLAGS="-I\$(top_srcdir)/include"
+AM_CFLAGS="-Wall -Wno-parentheses"
+AM_CXXFLAGS="$AM_CFLAGS"
+AC_SUBST([AM_CPPFLAGS])
+AC_SUBST([AM_CFLAGS])
+AC_SUBST([AM_CXXFLAGS])
+
+dnl windows build
+
+AC_CANONICAL_HOST
+case $host_os in
+ *cygwin* | *mingw* | *uwin* | *djgpp* | *ems* )
+ win32="yes"
+ with_dbus="no"
+ AC_DEFINE([_WIN32_WINNT], [0x0500], [Minimum Windows API version])
+ AC_FUNC_ALLOCA
+ AC_FUNC_ERROR_AT_LINE
+ AC_FUNC_FSEEKO
+ AC_CHECK_HEADERS([arpa/inet.h malloc.h mntent.h netdb.h netinet/in.h shadow.h sys/file.h sys/mount.h sys/param.h sys/socket.h sys/statfs.h sys/statvfs.h sys/vfs.h unistd.h values.h])
+ ;;
+ * )
+ win32="no"
+ ;;
+esac
+AM_CONDITIONAL([WIN32], [test "x$win32" = "xyes"])
+
+dnl programs
+
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_PROG_CXX
+
+PKG_PROG_PKG_CONFIG
+
+dnl symbologies
+
+AC_ARG_ENABLE([codes],
+ [AS_HELP_STRING([--enable-codes=SYMS],
+ [select symbologies to compile [default=ean,databar,code128,code93,code39,codabar,i25,qrcode,sqcode]])],
+ [],
+ [enable_codes="ean,databar,code128,code93,code39,codabar,i25,qrcode,sqcode"])
+
+AC_DEFUN([AC_DEFINE_SUBST],
+ [AC_DEFINE($1,$2,$3)
+ AC_SUBST($1,$2)])
+
+AC_DEFUN([ZBAR_CHK_CODE], [
+ AC_MSG_CHECKING([whether to build $2])
+ enable_$1="no"
+ AH_TEMPLATE([ENABLE_]translit($1, a-z, A-Z),
+ [whether to build support for $2])
+ AS_CASE([$enable_codes],
+ [*$1* | *all*],
+ [enable_$1="yes"
+ enabled_codes="$enabled_codes $1"
+ AC_DEFINE_SUBST([ENABLE_]translit($1, a-z, A-Z), [1])
+ ], [
+ disabled_codes="$disabled_codes $1"
+ AC_DEFINE_SUBST([ENABLE_]translit($1, a-z, A-Z), [0])
+ ])
+ AM_CONDITIONAL([ENABLE_]translit($1, a-z, A-Z),
+ [test "x$enable_$1" = "xyes"])
+ AC_MSG_RESULT([$enable_$1])
+])dnl
+
+ZBAR_CHK_CODE([ean], [EAN symbologies])
+ZBAR_CHK_CODE([databar], [DataBar symbology])
+ZBAR_CHK_CODE([code128], [Code 128 symbology])
+ZBAR_CHK_CODE([code93], [Code 93 symbology])
+ZBAR_CHK_CODE([code39], [Code 39 symbology])
+ZBAR_CHK_CODE([codabar], [Codabar symbology])
+ZBAR_CHK_CODE([i25], [Interleaved 2 of 5 symbology])
+ZBAR_CHK_CODE([qrcode], [QR Code])
+ZBAR_CHK_CODE([sqcode], [SQ Code])
+ZBAR_CHK_CODE([pdf417], [PDF417 symbology (incomplete)])
+
+dnl libraries
+
+AC_SEARCH_LIBS([clock_gettime], [rt pthread])
+AM_ICONV()
+AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION(0.20)
+AM_GNU_GETTEXT_REQUIRE_VERSION(0.18)
+AM_CONDITIONAL([USE_NLS], [test "x${USE_NLS}" = "xyes"])
+
+dnl libraries linkage
+AC_ARG_ENABLE([static_qt],
+ [AS_HELP_STRING([--enable-static-qt],
+ [Produce a static library for libzbarcam-qt])])
+
+AS_IF([test x$enable_static_qt = xyes], [AC_SUBST([LIBQT_EXTRA_LDFLAGS], ["-static"])])
+
+
+dnl poll support
+
+AC_CHECK_HEADERS([poll.h], [have_poll="yes"], [have_poll="no"])
+AM_CONDITIONAL([HAVE_POLL], [test "x$have_poll" = "xyes"])
+
+dnl pthreads
+dnl FIXME this doesn't port well, integrate something like this:
+dnl http://autoconf-archive.cryp.to/acx_pthread.html
+
+AC_ARG_ENABLE([pthread],
+ [AS_HELP_STRING([--disable-pthread],
+ [omit support for threaded applications])],
+ [],
+ [AS_IF([test "x$win32" = "xno"],
+ [enable_pthread="yes"],
+ [enable_pthread="no"
+])])
+
+AS_IF([test "x$enable_pthread" != "xno"],
+ [AC_CHECK_HEADERS([pthread.h], [],
+ [AC_MSG_FAILURE([test for pthread support failed!
+configure --disable-pthread to skip threaded support.])])
+ AC_CHECK_LIB([pthread], [pthread_create], [],
+ [AC_MSG_FAILURE([unable to link against -lpthread, although you
+appear to have pthread.h? set LDFLAGS and/or LIBS to help the linker,
+or configure --disable-pthread to skip threaded support.])])
+ AC_DEFINE([__USE_UNIX98], [1], [used only for pthread debug attributes])
+])
+
+dnl doc
+AC_ARG_ENABLE([doc],
+ [AS_HELP_STRING([--disable-doc],
+ [disable building docs])],
+ [],
+ [enable_doc="yes"])
+
+AS_IF([test "x$enable_doc" != "xno"],
+ [AC_ARG_VAR([XMLTO], [location of xmlto, used for optional documentation generation])
+ AC_ARG_VAR([XMLTOFLAGS], [additional arguments for xmlto])
+ AC_CHECK_PROGS([XMLTO], [xmlto])])
+
+AS_IF([test "x$XMLTO" = "x"], enable_doc="no")
+
+AM_CONDITIONAL([HAVE_DOC], [test "x$enable_doc" != "xno"])
+
+dnl video
+AC_ARG_ENABLE([video],
+ [AS_HELP_STRING([--disable-video],
+ [exclude video scanner features])],
+ [],
+ [enable_video="yes"])
+
+dnl video, directshow
+AC_ARG_WITH([directshow],
+ [AS_HELP_STRING([--with-directshow],
+ [compile directshow driver on windows instead of vfw,
+available only when video support is enabled])],
+ [],
+ [with_directshow="no"])
+
+have_v4l1="no"
+have_v4l2="no"
+have_libv4l="no"
+AS_IF([test "x$enable_video" = "xno"],
+ [],
+ [test "x$win32" = "xno"],
+ [AC_CHECK_HEADERS([linux/videodev.h], [have_v4l1="yes"])
+ AC_CHECK_HEADERS([linux/videodev2.h], [have_v4l2="yes"])
+ AC_CHECK_HEADERS([libv4l2.h], [have_libv4l="yes"])
+ AS_IF([test "x$have_v4l2" = "xno" && test "x$have_v4l1" = "xno"],
+ [AC_MSG_FAILURE([test for video support failed!
+rebuild your kernel to include video4linux support or
+configure --disable-video to skip building video support.])],
+ [AS_IF([test "x$have_v4l2" = "xno"],
+ [AC_MSG_WARN([v4l2 API not detected, upgrade your kernel!])])]
+ )],
+ [AS_IF([test "x$with_directshow" != "xno"],
+ [with_video="directshow"],
+ [AC_CHECK_HEADERS([vfw.h], [with_video="vfw"],
+ [AC_MSG_FAILURE([test for VfW video support failed!
+configure --disable-video to skip building video support.])],[#include <windows.h>])])])
+
+AS_IF([test "x$have_libv4l" = "xyes"],
+ [PKG_CHECK_MODULES([V4L2], [libv4l2], [],
+ [AC_MSG_FAILURE([unable to find libv4l2.so])])],
+ [AC_MSG_WARN([libv4l not detected. Install it to support more cameras!])])
+
+AM_CONDITIONAL([HAVE_VIDEO], [test "x$enable_video" != "xno"])
+AM_CONDITIONAL([HAVE_V4L1], [test "x$have_v4l1" != "xno"])
+AM_CONDITIONAL([HAVE_V4L2], [test "x$have_v4l2" != "xno"])
+AM_CONDITIONAL([HAVE_LIBV4L], [test "x$have_libv4l" != "xno"])
+AM_CONDITIONAL([WITH_DIRECTSHOW], [test "x$with_directshow" != "xno"])
+
+dnl X
+AC_ARG_VAR([XSHM_LIBS], [linker flags for X shared memory extension])
+
+AS_IF([test "x$win32" != "xno"],
+ [have_x="no"],
+ [AC_PATH_XTRA
+ AH_BOTTOM([#ifndef X_DISPLAY_MISSING
+# define HAVE_X
+#endif
+])])
+AM_CONDITIONAL([HAVE_X], [test "x$have_x" = "xyes"])
+
+AS_IF([test "x$XSHM_LIBS" = "x"], [XSHM_LIBS="-lXext"])
+AC_ARG_WITH([xshm],
+ [AS_HELP_STRING([--without-xshm],
+ [disable support for X shared memory extension])],
+ [],
+ [with_xshm="check"])
+
+AS_IF([test "x$with_xshm" != "xno"],
+ [AC_CHECK_HEADERS([X11/extensions/XShm.h],
+ [with_xshm="yes"],
+ [AS_IF([test "x$with_xshm" = "xcheck"],
+ [with_xshm="no"],
+ [AC_MSG_FAILURE([test for X shared memory extension failed!
+install the X shared memory extension, specify --x-includes or
+configure --without-xshm to disable the extension])])],
+ [[#include <X11/Xlib.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+]])
+ AS_IF([test "x$with_xshm" != "xno"],
+ [AC_CHECK_LIB([Xext], [XShmQueryVersion],
+ [with_xshm="yes"],
+ [AC_MSG_FAILURE([unable to find XShmQueryVersion in $XSHM_LIBS!
+specify XSHM_LIBS or configure --without-xshm to disable the extension])],
+ ["$X_LIBS" "$X_PRE_LIBS" -lX11 "$X_EXTRA_LIBS" "$XSHM_LIBS"])
+ ])
+])
+AM_CONDITIONAL([HAVE_XSHM], [test "x$with_xshm" = "xyes"])
+
+AC_ARG_VAR([XV_LIBS], [linker flags for XVideo extension])
+AS_IF([test "x$XV_LIBS" = "x"], [XV_LIBS="-lXv"])
+AC_ARG_WITH([xv],
+ [AS_HELP_STRING([--without-xv],
+ [disable support for XVideo extension])],
+ [],
+ [with_xv="check"])
+
+AS_IF([test "x$with_xv" != "xno"],
+ [AC_CHECK_HEADERS([X11/extensions/Xvlib.h],
+ [with_xv="yes"],
+ [AS_IF([test "x$with_xv" = "xcheck"],
+ [with_xv="no"],
+ [AC_MSG_FAILURE([test for XVideo extension failed!
+install the XVideo extension, specify --x-includes or
+configure --without-xv to disable the extension])])],
+ [[#include <X11/Xlib.h>
+]])
+ AS_IF([test "x$with_xv" != "xno"],
+ [AC_CHECK_LIB([Xv], [XvQueryExtension],
+ [with_xv="yes"],
+ [AC_MSG_FAILURE([unable to find XvQueryExtension in $XV_LIBS!
+specify XV_LIBS or configure --without-xv to disable the extension])],
+ ["$X_LIBS" "$X_PRE_LIBS" -lX11 "$X_EXTRA_LIBS" "$XV_LIBS"])
+ ])
+])
+AM_CONDITIONAL([HAVE_XV], [test "x$with_xv" = "xyes"])
+
+dnl dbus
+AC_ARG_WITH([dbus],
+ [AS_HELP_STRING([--without-dbus],
+ [disable support for dbus])],
+ [],
+ [with_dbus="check"])
+
+AS_IF([test "x$with_dbus" != "xno"],
+ [PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0, have_dbus="yes", have_dbus="no")
+ AS_IF([test "x$have_dbus$with_dbus" = "xnoyes"],
+ [AC_MSG_FAILURE([DBus development libraries not found])],
+ [with_dbus="$have_dbus"])
+])
+AM_CONDITIONAL([HAVE_DBUS], [test "x$with_dbus" = "xyes"])
+
+AS_IF([test "x$with_dbus" = "xyes"],
+ [CPPFLAGS="$CPPFLAGS $DBUS_CFLAGS"
+ AC_ARG_VAR([DBUS_LIBS], [linker flags for building dbus])
+ AC_DEFINE([HAVE_DBUS], [1], [Define to 1 to use dbus])
+ AC_ARG_WITH(dbusconfdir, AS_HELP_STRING([--with-dbusconfdir=PATH],[path to D-Bus config directory]),
+ [path_dbusconf=$withval],
+ [path_dbusconf="`$PKG_CONFIG --variable=sysconfdir dbus-1`"])
+ AS_IF([test -z "$path_dbusconf"],
+ DBUS_CONFDIR="$sysconfdir/dbus-1/system.d",
+ DBUS_CONFDIR="$path_dbusconf/dbus-1/system.d")
+ AC_SUBST(DBUS_CONFDIR)
+])
+
+dnl libjpeg
+AC_ARG_WITH([jpeg],
+ [AS_HELP_STRING([--without-jpeg],
+ [disable support for JPEG image conversions])],
+ [],
+ [with_jpeg="check"])
+
+have_jpeg="maybe"
+AS_IF([test "x$with_jpeg" != "xno"],
+ [AC_CHECK_HEADERS([jpeglib.h jerror.h], [], [have_jpeg="no"])
+ AC_CHECK_LIB([jpeg], [jpeg_read_header], [], [have_jpeg="no"])
+ AS_IF([test "x$have_jpeg" != "xno"],
+ [with_jpeg="yes"],
+ [test "x$with_jpeg" = "xyes"],
+ [AC_MSG_FAILURE([unable to find libjpeg! ensure CFLAGS/LDFLAGS are
+set appropriately or configure --without-jpeg])],
+ [with_jpeg="no"])
+])
+AM_CONDITIONAL([HAVE_JPEG], [test "x$with_jpeg" = "xyes"])
+
+dnl ImageMagick or GraphicsMagick
+dnl disable both if IM is explicitly disabled to preserve old behavior
+
+AC_ARG_WITH([imagemagick],
+ [AS_HELP_STRING([--without-imagemagick],
+ [disable support for scanning images with ImageMagick])],
+ [],
+ [with_imagemagick="check"])
+
+AC_ARG_WITH([graphicsmagick],
+ [AS_HELP_STRING([--with-graphicsmagick],
+ [use GraphicsMagick alternative to ImageMagick])],
+ [],
+ [with_graphicsmagick="check"])
+
+magick="UnknownMagick"
+have_IM="maybe"
+AS_IF([test "x$with_imagemagick" = "xno"], [],
+ [test "x$with_imagemagick" = "xyes" || \
+ test "x$with_graphicsmagick" != "xyes"],
+ [looked_for="ImageMagick >= 6.2.6"
+ PKG_CHECK_MODULES([MAGICK], [MagickWand >= 6.2.6],
+ [MAGICK_VERSION=`$PKG_CONFIG MagickWand --modversion`],
+ [dnl
+dnl Wand is deprecated in favor of MagickWand,
+dnl but the latter doesn't exist in older versions (bug #2848437)
+ saved_error=$MAGICK_PKG_ERRORS
+ PKG_CHECK_MODULES([MAGICK], [Wand >= 6.2.6],
+ [MAGICK_VERSION=`$PKG_CONFIG Wand --modversion`],
+ [have_IM="no"])])
+ AS_IF([test "x$have_IM" != "xno"],
+ [magick="ImageMagick"
+ AC_MSG_NOTICE([trying ImageMagick version $MAGICK_VERSION])
+dnl double check ImageMagick install (bug #2582232)
+ CPPFLAGS_save="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $MAGICK_CFLAGS"
+ AC_CHECK_HEADERS([wand/MagickWand.h],
+ [
+ have_IM="yes"
+ with_imagemagick="yes"
+ ],
+ [have_IM="broken"])
+dnl check for ImageMagick 7, see https://imagemagick.org/script/porting.php#headers
+ AS_IF([test "x$have_IM" = "xbroken"], [
+ AC_CHECK_HEADERS([MagickWand/MagickWand.h],
+ [
+ have_IM="yes"
+ have_IM7="yes"
+ with_imagemagick="yes"
+ ],
+ [have_IM="broken"])
+ ])
+ CPPFLAGS="$CPPFLAGS_save"])])
+
+have_GM="maybe"
+AS_IF([test "x$have_IM" = "xyes"], [],
+ [test "x$with_graphicsmagick" = "xno"], [],
+ [test "x$with_graphicsmagick" = "xyes" || \
+ test "x$with_imagemagick" = "xcheck"],
+ [AS_IF([test "x$looked_for" = "x"],
+ [looked_for="GraphicsMagick"],
+ [looked_for="$looked_for or GraphicsMagick"])
+ PKG_CHECK_MODULES([GM], [GraphicsMagickWand],
+ [have_GM="yes"
+ with_imagemagick="no"
+ magick="GraphicsMagick"
+ MAGICK_CFLAGS="$MAGICK_CFLAGS $GM_CFLAGS"
+ MAGICK_LIBS="$MAGICK_LIBS $GM_LIBS"
+ MAGICK_VERSION=`$PKG_CONFIG GraphicsMagickWand --modversion`],
+ [have_GM="no"
+ AS_IF([test "x$saved_error" = "x"],
+ [saved_error=$MAGICK_PKG_ERRORS])])])
+
+dnl now that we have collected all the info abt what Magick is available
+dnl let the user know what we will or can't do
+AS_IF([test "x$have_IM" = "xbroken" && test "x$have_GM" = "xyes"],
+ [
+ with_imagemagick="no"
+ AC_MSG_WARN([Your ImageMagick install is broken, using GraphicsMagick instead])
+ ])
+AS_IF([test "x$have_IM" = "xyes" || test "x$have_GM" = "xyes"],
+ [AC_MSG_NOTICE([using $magick version $MAGICK_VERSION])],
+ [test "x$with_imagemagick" = "xno" && \
+ test "x$with_graphicsmagick" != "xyes"],
+ [AC_MSG_NOTICE([image scanning disabled -- zbarimg will *not* be built])],
+ [test "x$have_IM" = "xbroken"],
+ [AC_MSG_FAILURE([$magick package found but wand/MagickWand.h not installed?!
+this is a problem with your $magick install, please try again after
+resolving the inconsistency or installing GraphicsMagick alternative...])],
+ [test "x$with_graphicsmagick" = "xcheck"],
+ [AC_MSG_NOTICE([ImageMagick/GraphicsMagick not detected. Several features will be disabled])
+ with_imagemagick="no"],
+ [AC_MSG_FAILURE([dnl
+Unable to find $looked_for:
+
+$saved_error
+
+* Ensure that you installed any "development" packages for ImageMagick or
+ GraphicsMagick.
+* Consider adjusting the PKG_CONFIG_PATH environment variable if you
+ installed software in a non-standard prefix.
+* You may set the environment variables MAGICK_CFLAGS and MAGICK_LIBS
+ to avoid the need to call pkg-config.
+ See the pkg-config man page for more details.
+* To avoid using ImageMagick or GraphicsMagick altogether you may add the
+ --without-imagemagick flag to the configure command; the zbarimg program
+ will *not* be built.
+])])
+
+AS_IF([test "x$have_IM" = "xyes"],
+ [AC_DEFINE([HAVE_IMAGEMAGICK], [1], [Define to 1 to use ImageMagick])],
+ [test "x$have_GM" = "xyes"],
+ [AC_DEFINE([HAVE_GRAPHICSMAGICK], [1], [Define to 1 to use GraphicsMagick])])
+AS_IF([test "x$have_IM7" = "xyes"],
+ [AC_DEFINE([HAVE_IMAGEMAGICK7], [1], [Define to 1 to use ImageMagick 7])])
+AM_CONDITIONAL([HAVE_MAGICK],
+ [test "x$have_IM" = "xyes" || test "x$have_GM" = "xyes"])
+
+dnl Mozilla NPAPI
+AC_ARG_WITH([npapi],
+ [AS_HELP_STRING([--with-npapi],
+ [enable support for Firefox/Mozilla/OpenOffice plugin])],
+ [],
+ [with_npapi="no"])
+
+AS_IF([test "x$with_npapi" != "xno"],
+ [PKG_CHECK_MODULES([NPAPI], [firefox-plugin])
+ NPAPI_VERSION=`$PKG_CONFIG firefox-plugin --modversion`
+ AC_MSG_NOTICE([using firefox-plugin version $NPAPI_VERSION])])
+
+AM_CONDITIONAL([HAVE_NPAPI], [test "x$with_npapi" = "xyes"])
+
+dnl GTK
+dnl For now, defaults to GTK version 3
+
+AC_ARG_WITH([gtk],
+ [AS_HELP_STRING([--with-gtk],
+ [Specify support for GTK. Valid values are: no, auto, gtk2, gtk3 (default is auto)])],
+ [AS_IF([test "x$with_gtk" != "xno" && test "x$with_gtk" != "xauto" &&
+ test "x$with_gtk" != "xgtk2" && test "x$with_gtk" != "xgtk3"],
+ [echo "Invalid value for --with-gtk. Falling back to 'no'"
+ with_gtk="no"])],
+ [with_gtk="auto"])
+
+AC_ARG_VAR([GLIB_GENMARSHAL], [full path to glib-genmarshal])
+AC_ARG_VAR([GTK_VERSION_MAJOR])
+
+AS_IF([test "x$with_gtk" = "xgtk3" || test "x$with_gtk" = "xauto"],
+ [PKG_CHECK_MODULES([GTK3], [gtk+-3.0],
+ [GLIB_GENMARSHAL=`$PKG_CONFIG glib-2.0 --variable=glib_genmarshal`
+ GTK_VERSION=`$PKG_CONFIG gtk+-3.0 --modversion`
+ AC_MSG_NOTICE([using GTK+ version $GTK_VERSION])
+ GTK_VERSION_MAJOR=3.0
+ with_gtk="gtk3"
+ GTK_CFLAGS=$GTK3_CFLAGS
+ GTK_LIBS=$GTK3_LIBS
+ ],[libgtk3=false])
+ ])
+
+AS_IF([test "x$with_gtk" = "xgtk2" || test "x$with_gtk" = "xauto"],
+ [PKG_CHECK_MODULES([GTK2], [gtk+-2.0],
+ [GLIB_GENMARSHAL=`$PKG_CONFIG glib-2.0 --variable=glib_genmarshal`
+ GTK_VERSION=`$PKG_CONFIG gtk+-2.0 --modversion`
+ AC_MSG_NOTICE([using GTK+ version $GTK_VERSION])
+ GTK_VERSION_MAJOR=2.0
+ with_gtk="gtk2"
+ GTK_CFLAGS=$GTK2_CFLAGS
+ GTK_LIBS=$GTK2_LIBS
+ ],[libgtk2=false])
+ ])
+
+dnl GTK not found
+AS_IF([test "x$with_gtk" = "xauto"], [with_gtk="no"])
+
+AC_SUBST(GTK_LIBS)
+AC_SUBST(GTK_CFLAGS)
+
+AM_CONDITIONAL([HAVE_GTK], [test "x$with_gtk" != "xno"])
+
+AC_ARG_WITH([gir],
+ [AS_HELP_STRING([--with-gir], [enable support for GObject Introspection])],
+ [],
+ [with_gir="yes"])
+
+dnl Python
+dnl For now, keep python2 as default
+dnl If both PYTHON and --with-python=foo are defined, PYTHON takes precedence
+
+AC_ARG_WITH([python],
+ [AS_HELP_STRING([--with-python],
+ [Specify support for Python. Valid values are: no, auto, python2, python3
+(default is auto).
+Please notice that PYTHON var, if especified, takes precedence.])],
+ [AS_IF([test "x$with_python" != "xno" && test "x$with_python" != "xauto" &&
+ test "x$with_python" != "xpython2" && test "x$with_python" != "xpython3"],
+ [echo "Invalid value for --with-python. Falling back to 'no'"
+ with_python="xno"])],
+ [with_python="auto"])
+
+AC_ARG_VAR([PYTHON_CONFIG], [full path to python-config program])
+AC_ARG_VAR([PYTHON_CFLAGS], [compiler flags for building python extensions])
+AC_ARG_VAR([PYTHON_LDFLAGS], [linker flags for building python extensions])
+
+AC_ARG_VAR([PYGTK_H2DEF], [full path to PyGTK h2def.py module (python2 only)])
+AC_ARG_VAR([PYGTK_CODEGEN], [full path to pygtk-codegen program (python2 only)])
+AC_ARG_VAR([PYGTK_DEFS], [directory where PyGTK definitions may be found (python2 only)])
+
+AS_IF([test -z "$PYTHON"],
+ [AS_IF([test "x$with_python" = "xauto"],
+ [AC_PATH_PROGS([PYTHON], [python3 python2 python], [:], [$PATH])],
+ [AS_IF([test "x$with_python" = "xpython3"],
+ [AC_PATH_PROGS([PYTHON], [python3 python], [:], [$PATH])],
+ [AS_IF([test "x$with_python" = "xpython2"],
+ [AC_PATH_PROGS([PYTHON], [python2 python], [:], [$PATH])],
+ [with_python="no"])
+ ])
+ ]
+ )],
+ [with_python="auto"]
+)
+
+AS_IF([test "x$with_python" != "xno"],
+ [AM_PATH_PYTHON([2.7.0])])
+
+AS_IF([test "x$PYTHON_VERSION" != "x" && test "x$with_python" != "xno"],
+ [PYTHON_VERSION_MAJOR="`echo $PYTHON_VERSION | cut -d'.' -f 1`"
+
+ AS_IF([test "x$PYTHON_CFLAGS" != "x"],
+ [],
+ [test "x$PYTHON_CONFIG" != "x" && test -x "$PYTHON_CONFIG"],
+ [PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags`],
+ [test -x "$PYTHON-config"],
+ [PYTHON_CFLAGS=`$PYTHON-config --cflags`],
+ [PYTHON_CFLAGS=`$PYTHON -c 'import distutils.sysconfig as s, sys; sys.stdout.write(" ".join(s.get_config_vars("CFLAGS")) + " -I"+s.get_python_inc() + " -I"+s.get_python_inc(plat_specific=True))'`])
+ AS_IF([test "x$PYTHON_LDFLAGS" != "x"],
+ [],
+ [test "x$PYTHON_CONFIG" != "x" && test -x "$PYTHON_CONFIG"],
+ [PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags`],
+ [test -x "$PYTHON-config"],
+ [PYTHON_LDFLAGS=`$PYTHON-config --ldflags`],
+ [PYTHON_LDFLAGS=`$PYTHON -c 'import distutils.sysconfig as s, sys; sys.stdout.write(" ".join(s.get_config_vars("LDFLAGS")) + " -I"+s.get_python_inc() + " -I"+s.get_python_inc(plat_specific=True))'`])
+
+ dnl check that #include <Python.h> compiles (bug #3092663)
+ CPPFLAGS_save="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $PYTHON_CFLAGS"
+ AS_IF([test "x$win32" = "xyes"], PYTHON_LDFLAGS="$PYTHON_LDFLAGS -no-undefined")
+ AC_CHECK_HEADERS([Python.h], [],
+ [AS_IF([test "x$with_python" = "xauto"],with_python="no",
+ [AC_MSG_ERROR([dnl
+Python module enabled, but unable to compile Python.h.
+Install the development package for python-$am_cv_python_version, or configure
+--without-python to disable the python bindings.dnl
+])])])
+ CPPFLAGS="$CPPFLAGS_save"
+
+ dnl PyGTK
+ dnl disable pygtk when we're on Python 3
+ AS_IF([test "x$with_gtk" != "xno"],
+ [AS_IF([test "x$PYTHON_VERSION_MAJOR" = "x2"],
+ [PKG_CHECK_MODULES([PYGTK], [pygtk-2.0], [with_pygtk2="yes"], [with_pygtk2="no"])
+ AC_CHECK_PROGS([PYGTK_CODEGEN], [pygobject-codegen-2.0 pygtk-codegen-2.0 pygtk-codegen], [:])
+
+ AS_IF([test "x$PYGTK_H2DEF" = "x"],
+ [PYGTK_H2DEF=`$PKG_CONFIG pygtk-2.0 --variable=codegendir`/h2def.py
+ AS_IF([test -f "$PYGTK_H2DEF"], [], [PYGTK_H2DEF=":"])])
+ AS_IF([test "x$PYGTK_DEFS" = "x"],
+ [PYGTK_DEFS=`$PKG_CONFIG pygtk-2.0 --variable=defsdir`])
+ ])
+ ])
+], [with_python="no"])
+
+AS_IF([test "x$PYTHON_VERSION_MAJOR" != "x2"], [with_pygtk2="no"])
+AM_CONDITIONAL([HAVE_PYTHON], [test "x$with_python" != "xno"])
+AM_CONDITIONAL([HAVE_PYGTK2], [test "x$with_pygtk2" != "xno"])
+
+dnl GObject Introspection (GIR)
+
+AS_IF([test "x$with_gir" = "xyes" && test "x$with_gtk" != "xno"],
+ [m4_ifdef([GOBJECT_INTROSPECTION_CHECK],
+ [GOBJECT_INTROSPECTION_CHECK([0.6.7])
+ AS_IF([test "x$found_introspection" = "xyes"],
+ [INTROSPECTION_TYPELIBDIR=`$PKG_CONFIG --variable=typelibdir --define-variable="libdir=${libdir}" gobject-introspection-1.0`
+ INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir --define-variable="datadir=${datadir}" gobject-introspection-1.0`
+ AC_SUBST(INTROSPECTION_TYPELIBDIR)
+ AC_SUBST(INTROSPECTION_GIRDIR)])])
+ ])
+
+AS_IF([test "x$found_introspection" != "xyes"], [with_gir="no"])
+AM_CONDITIONAL([HAVE_INTROSPECTION], [test "x$with_gir" = "xyes"])
+
+dnl Qt
+AC_ARG_WITH([qt],
+ [AS_HELP_STRING([--without-qt],
+ [disable support for Qt widget])],
+ [],
+ [with_qt="yes"])
+
+dnl Qt6
+AC_ARG_WITH([qt6],
+ [AS_HELP_STRING([--with-qt6],
+ [If --with-qt, enable experimental support for Qt6 widget (currently broken)])],
+ [],
+ [with_qt6="no"])
+
+AS_IF([test "x$with_qt" != "xno"],
+ [AS_IF([test "x$with_qt6" != "xno"],
+ PKG_CHECK_MODULES([QT],
+ [Qt6],
+ [MOC=`pkg-config Qt6 --variable=moc`
+ QT_VERSION=`$PKG_CONFIG Qt6 --modversion`
+ QT6_HEADERS=`pkg-config Qt6 --variable=headerdir`
+ CPPFLAGS="$CPPFLAGS -I$QT6_HEADERS -I$QT6_HEADERS/QtWidgets -I$QT6_HEADERS/QtCore -I$QT6_HEADERS/QtGui"
+ qt_pkgconfig_file="zbar-qt5.pc"
+ ],
+ [with_qt6="no"]))
+ AS_IF([test "x$with_qt6" = "xno"],
+ PKG_CHECK_MODULES([QT],
+ [Qt5Core >= 5 Qt5Gui >= 5 Qt5Widgets >= 5.0 Qt5X11Extras >= 5.0],
+ [MOC=`pkg-config Qt5 --variable=moc`
+ QT_VERSION=`$PKG_CONFIG Qt5 --modversion`
+ qt_pkgconfig_file="zbar-qt5.pc"
+ ],
+ [with_qt="no"]))
+ ])
+
+AC_ARG_VAR([MOC], [full path to Qt moc program])
+
+AM_CONDITIONAL([HAVE_QT], [test "x$with_qt" = "xyes"])
+
+AM_COND_IF([HAVE_QT],
+ [AC_MSG_NOTICE([using Qt version $QT_VERSION])
+ AC_MSG_NOTICE([using moc from $MOC])
+ CPPFLAGS="$CPPFLAGS $QT_CPPFLAGS"
+ LIBS="$LIBS $QT_LIBS"
+ AC_CONFIG_FILES([zbar-qt.pc:"${qt_pkgconfig_file}.in"])
+ #dnl -fPIC has no effect on Windows and breaks windres
+ AS_IF([test "x$win32" = "xno"], [CPPFLAGS="$CPPFLAGS -fPIC"])])
+
+dnl Java
+have_java="maybe"
+
+AC_ARG_VAR([JAVA_HOME], [root location of JDK])
+
+AC_ARG_VAR([JAVAC], [location of Java language compiler])
+AC_ARG_VAR([JAVAH], [location of Java header generator])
+
+dnl If $JAVA_HOME not defined, try to autodetect it
+AS_IF([test -z "$JAVA_HOME"],
+ [AC_PATH_PROGS([JAVAC], [javac jikes ecj gcj], [:], [$PATH])
+ AS_IF([test ! -z "$JAVAC"],
+ [JAVA_HOME=$( readlink -f ${JAVAC} | rev | cut -d/ -f3- | rev )])])
+
+dnl If $JAVA_HOME is defined, set JAVA_PATH and JAVAC
+AS_IF([test ! -z "$JAVA_HOME"],
+ [JAVA_PATH="$JAVA_HOME/bin$PATH_SEPARATOR$PATH"
+ AS_IF([test -z "$JAVAC"],
+ [AC_PATH_PROGS([JAVAC], [javac jikes ecj gcj], [:], [$JAVA_PATH])])])
+
+AC_ARG_WITH([java],
+ [AS_HELP_STRING([--without-java],
+ [disable support for Java interface])],
+ [],
+ [with_java="check"])
+
+JAVAC=$(echo $JAVAC |sed 's/ecj/ecj -1.5/')
+
+dnl Javah was obsoleted on Java 8 and removed on Java 11. So, we need to
+dnl look strictly at the $JAVA_HOME in order to avoid mixing different versions
+AS_IF([test -z "$JAVAH"],
+ [AC_PATH_PROGS([JAVAH], [javah], [], [$JAVA_HOME/bin])])
+
+AM_CONDITIONAL([HAVE_JAVAH], [test "x$JAVAH" != "x"])
+
+AC_ARG_VAR([JAR], [location of Java archive tool])
+AC_PATH_PROGS([JAR], [jar], [:], [$JAVA_PATH])
+AS_IF([test "x$JAR" = "x:"], [have_java="no"])
+
+AC_ARG_VAR([JAVA], [location of Java application launcher])
+AC_PATH_PROGS([JAVA], [java], [/bin/false], [$JAVA_PATH])
+
+AC_ARG_VAR([CLASSPATH], [Java class path (include JUnit to run java tests)])
+AS_IF([test "x$CLASSPATH" = "x"], [CLASSPATH="."])
+
+dnl Search for Java unit test library
+AS_IF([test -z "$JUNIT_HOME"],
+ [JUNIT_HOME="/usr/share/java"])
+
+AS_IF([test -f "$JUNIT_HOME/junit4.jar"],
+ [JUNIT="$JUNIT_HOME/junit4.jar"],
+ [AS_IF([test -f "$JUNIT_HOME/junit.jar"],
+ [JUNIT="$JUNIT_HOME/junit.jar"])])
+
+AS_IF([test "x$JUNIT" != "x"],
+ [AS_IF([test -f "/usr/share/java/hamcrest/all.jar"],
+ [CLASSPATH="$JUNIT:/usr/share/java/hamcrest/all.jar:$CLASSPATH"
+ AC_SUBST(CLASSPATH)
+ with_java_unit="yes"])],
+ [AS_IF([test -f "/usr/share/java/hamcrest-all.jar"],
+ [CLASSPATH="$JUNIT:/usr/share/java/hamcrest-all.jar:$CLASSPATH"
+ AC_SUBST(CLASSPATH)
+ with_java_unit="yes"])])
+
+AM_CONDITIONAL([HAVE_JAVA_UNIT], [test "x$with_java_unit" = "xyes"])
+
+AC_ARG_VAR([JAVA_CFLAGS], [compiler flags for building JNI extensions])
+AS_IF([test "x$JAVA_CFLAGS" = "x" && test "x$JAVA_HOME" != "x"],
+ [JAVA_CFLAGS="-I$JAVA_HOME/include"])
+
+AS_IF([test -d "$JAVA_HOME/include/linux"],
+ [JAVA_CFLAGS="$JAVA_CFLAGS -I$JAVA_HOME/include/linux"])
+
+AS_IF([test "x$with_java" != "xno"],
+ [CPPFLAGS_save="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $JAVA_CFLAGS"
+ AC_CHECK_HEADERS([jni.h], [], [have_java="no"])
+ CPPFLAGS="$CPPFLAGS_save"
+ AS_IF([test "x$have_java" != "xno"],
+ [with_java="yes"],
+ [test "x$with_java" = "xyes"],
+ [AC_MSG_FAILURE([unable to find Java JNI! ensure CFLAGS are set appropriately or configure --without-java])],
+ [with_java="no"])
+])
+AM_CONDITIONAL([HAVE_JAVA], [test "x$with_java" = "xyes"])
+
+
+dnl header files
+
+dnl FIXME switches for shm, mmap
+AC_HEADER_ASSERT
+AC_CHECK_HEADERS([errno.h fcntl.h features.h inttypes.h float.h limits.h \
+ locale.h stddef.h stdlib.h string.h unistd.h sys/types.h sys/stat.h \
+ sys/ioctl.h sys/time.h sys/times.h sys/ipc.h sys/shm.h sys/mman.h])
+AC_HEADER_MAJOR
+AC_CHECK_HEADER_STDBOOL
+
+dnl types
+
+AC_TYPE_INT32_T
+AC_TYPE_UINT32_T
+AC_TYPE_UINT8_T
+AC_TYPE_UINTPTR_T
+AC_TYPE_UID_T
+AC_TYPE_INT32_T
+AC_TYPE_INT64_T
+AC_TYPE_OFF_T
+AC_TYPE_SIZE_T
+AC_TYPE_UINT16_T
+AC_TYPE_UINT32_T
+AC_TYPE_UINT64_T
+AC_TYPE_UINT8_T
+AC_CHECK_MEMBERS([struct stat.st_rdev])
+
+dnl compile characteristics
+
+AC_C_CONST
+AC_C_INLINE
+
+dnl functions
+
+AC_FUNC_MMAP
+AC_CHECK_FUNCS([alarm clock_gettime floor getcwd gettimeofday localeconv memchr memmove memset modf munmap pow select setenv sqrt strcasecmp strchr strdup strerror strrchr strstr strtol strtoul malloc realloc])
+
+
+dnl output generation
+
+dnl avoid doc rebuilds unless revision info changes
+AC_CONFIG_COMMANDS([doc/version.xml],
+ [AS_IF([test -f doc/version.xml && \
+ ! echo $VERSION | diff doc/version.xml - >/dev/null 2>&1 || \
+ ! echo $VERSION | diff $srcdir/doc/version.xml - >/dev/null 2>&1 ],
+ [echo "writing new doc/version.xml" ; echo $VERSION > $srcdir/doc/version.xml ])],
+ [VERSION="$VERSION"]
+)
+AC_CONFIG_COMMANDS([doc/reldate.xml],
+ [AS_IF([test -f doc/reldate.xml && \
+ ! echo $RELDATE | diff doc/reldate.xml - >/dev/null 2>&1 || \
+ ! echo $RELDATE | diff $srcdir/doc/reldate.xml - >/dev/null 2>&1 ],
+ [echo "writing new doc/reldate.xml" ; echo $RELDATE > $srcdir/doc/reldate.xml ])],
+ [RELDATE="$RELDATE"]
+)
+
+echo "Generating config files"
+
+AC_CONFIG_FILES([
+Makefile
+gtk/Makefile
+java/Makefile
+po/Makefile.in
+zbar/Makefile
+zbar.pc
+zbar-gtk.pc
+doc/doxygen.conf])
+
+AC_CONFIG_FILES([test/test_examples.sh],[chmod 755 test/test_examples.sh])
+AC_CONFIG_FILES([test/check_dbus.sh],[chmod 755 test/check_dbus.sh])
+
+AC_OUTPUT
+
+dnl summary log
+
+echo ""
+echo "please verify that the detected configuration matches your expectations:"
+echo "------------------------------------------------------------------------"
+AS_IF([test "x$USE_NLS" = "xyes"],
+ [echo "gettext $USE_NLS"]
+)
+AS_IF([test "x$win32" != "xno"],
+ [AS_IF([test "x$with_directshow" != "xno"],
+ [echo "DirectShow driver --with-directshow=$with_directshow"],
+ [echo "VfW driver --with-directshow=$with_directshow"]
+ )],
+ [echo "X --with-x=$have_x"]
+)
+
+AS_IF([test "x$with_python" != "xno"], pyver="\tpython${PYTHON_VERSION}")
+AS_IF([test "x$with_gtk" != "xno"], gtkver="\tGtk${GTK_VERSION}")
+AS_IF([test "x$with_qt" != "xno"], qtver="\tQt${QT_VERSION}")
+
+echo "pthreads --enable-pthread=$enable_pthread"
+echo "doc --enable-doc=$enable_doc"
+echo "v4l --enable-video=$enable_video"
+echo "jpeg --with-jpeg=$with_jpeg"
+echo -e "Python --with-python=$with_python $pyver"
+echo -e "GTK --with-gtk=$with_gtk $gtkver"
+echo "GObject introspection --with-gir=$with_gir"
+echo -e "Qt --with-qt=$with_qt $qtver"
+echo "Java --with-java=$with_java"
+
+AS_IF([test "x$win32" = "xno"],
+ [echo "Dbus --with-dbus=$with_dbus"])
+AS_IF([test "x$have_GM" = "xyes"],
+ [echo "GraphicsMagick --with-graphicsmagick=yes"],
+ [echo "ImageMagick --with-imagemagick=$with_imagemagick"])
+echo "Enabled codes: $enabled_codes"
+echo "Disabled codes: $disabled_codes"
+AS_IF([test "x$with_java" = "xyes"],
+ [echo "JAVA_HOME $JAVA_HOME"])
+
+dnl Display "warnings" about disabled and experimental features
+
+echo ""
+AS_IF([test "x$enable_video" != "xyes"],
+ [echo " => zbarcam video scanner will *NOT* be built"])
+AS_IF([test "x$have_libv4l" != "xyes"],
+ [echo " => libv4l will *NOT* be used"])
+AS_IF([test "x$with_jpeg" != "xyes"],
+ [echo " => JPEG image conversions will *NOT* be supported"])
+AS_IF([test "x$have_IM" != "xyes" && test "x$have_GM" != "xyes"],
+ [echo " => the zbarimg file scanner will *NOT* be built"])
+AS_IF([test "x$have_GM" = "xyes"],
+ [echo " => ImageMagick is preferred, as GraphicsMagick doesn't support https"])
+AS_IF([test "x$with_gtk" = "xno"],
+ [echo " => GTK support will *NOT* be built"])
+AS_IF([test "x$with_pygtk2" != "xyes" && test "xPYTHON_VERSION_MAJOR" = "x2"],
+ [echo " => the Python 2 GTK widget wrapper will *NOT* be built"])
+AS_IF([test "x$with_qt" != "xyes"],
+ [echo " => the Qt widget will *NOT* be built"])
+AS_IF([test "x$with_qt" = "xyes" && test "x$enable_static_qt" = "xyes" ],
+ [echo " => Building a static Qt library"])
+AS_IF([test "x$with_java" != "xyes"],
+ [echo " => the Java interface will *NOT* be built"])
+AS_IF([test "x$with_java_unit" != "xyes"],
+ [echo " => the Java unit test will *NOT* be enabled"])
+dnl echo "NPAPI Plugin --with-npapi=$with_npapi"
+dnl AS_IF([test "x$with_mozilla" != "xyes"],
+dnl [echo " => the Mozilla/Firefox/OpenOffice plugin will *NOT* be built"])
+AS_IF([test "x$enable_pdf417" = "xyes"],
+ [echo " => the pdf417 code support is incomplete!"])