2018-05-20 21:23:23 +08:00
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.54)
# Making releases on the stable branch:
# gimp_micro_version += 1;
# gimp_interface_age += 1;
#
# For a description of libtool version variables, see:
# devel-docs/libtool-instructions.txt
m4_define([gimp_major_version], [2])
2010-10-15 15:56:27 +08:00
m4_define([gimp_minor_version], [99])
m4_define([gimp_micro_version], [1])
2018-05-20 21:23:23 +08:00
m4_define([gimp_real_version],
[gimp_major_version.gimp_minor_version.gimp_micro_version])
m4_define([gimp_version], [gimp_real_version])
2010-10-15 15:56:27 +08:00
m4_define([gimp_interface_age], [0])
2018-05-20 21:23:23 +08:00
m4_define([gimp_binary_age],
[m4_eval(100 * gimp_minor_version + gimp_micro_version)])
# For overriding the version string. Comment out if not needed.
2010-10-15 15:56:27 +08:00
# m4_define([gimp_version], [2.99.1])
2018-05-20 21:23:23 +08:00
# This is the X.Y used in -lgimp-X.Y
2019-07-24 22:29:06 +08:00
m4_define([gimp_api_major_version], [3])
m4_define([gimp_api_minor_version], [0])
m4_define([gimp_api_version],
[gimp_api_major_version.gimp_api_minor_version])
2018-05-20 21:23:23 +08:00
# Versions used for apps, plugins, tools, pkg-config files, and data,
# as well as global and user prefs
2010-10-15 15:56:27 +08:00
m4_define([gimp_app_version], [2.99])
m4_define([gimp_plugin_version], [2.99])
m4_define([gimp_tool_version], [2.99])
m4_define([gimp_pkgconfig_version], [3.0])
m4_define([gimp_data_version], [2.99])
m4_define([gimp_sysconf_version], [2.99])
m4_define([gimp_user_version], [2.99])
2018-05-20 21:23:23 +08:00
m4_define([gimp_unstable],
m4_if(m4_eval(gimp_minor_version % 2), [1], [yes], [no]))
m4_define([gimp_stable],
m4_if(m4_eval(gimp_minor_version % 2), [0], [yes], [no]))
m4_define([gimp_full_name], [GNU Image Manipulation Program])
# required versions of other packages
2018-08-20 21:13:54 +08:00
m4_define([alsa_required_version], [1.0.0])
m4_define([appstream_glib_required_version], [0.7.7])
m4_define([atk_required_version], [2.4.0])
2019-08-03 00:44:15 +08:00
m4_define([babl_required_version], [0.1.70])
2018-08-20 21:13:54 +08:00
m4_define([cairo_required_version], [1.14.0])
m4_define([cairo_pdf_required_version], [1.12.2])
m4_define([fontconfig_required_version], [2.12.4])
m4_define([freetype2_required_version], [2.1.7])
m4_define([gdk_pixbuf_required_version], [2.30.8])
2018-04-28 07:30:19 +08:00
m4_define([gegl_major_minor_version], [0.4])
2019-06-28 21:48:47 +08:00
m4_define([gegl_micro_version], [17])
2018-04-28 07:30:19 +08:00
m4_define([gegl_required_version],
[gegl_major_minor_version.gegl_micro_version])
2018-08-20 21:13:54 +08:00
m4_define([gexiv2_required_version], [0.10.6])
2010-10-15 15:56:27 +08:00
m4_define([glib_required_version], [2.56.0])
2018-08-20 21:13:54 +08:00
m4_define([gtk_mac_integration_required_version], [2.0.0])
2010-10-15 15:56:27 +08:00
m4_define([gtk_required_version], [3.22.29])
2004-01-22 11:51:46 +08:00
m4_define([gtkdoc_required_version], [1.0])
2018-08-20 21:13:54 +08:00
m4_define([harfbuzz_required_version], [0.9.19])
m4_define([intltool_required_version], [0.40.1])
2019-07-24 22:29:06 +08:00
m4_define([introspection_required_version], [1.32.0])
2018-08-20 21:13:54 +08:00
m4_define([lcms_required_version], [2.8])
2011-06-23 22:30:58 +08:00
m4_define([libgudev_required_version], [167])
2019-06-25 19:20:07 +08:00
m4_define([libheif_required_version], [1.3.2])
2018-08-20 21:13:54 +08:00
m4_define([liblzma_required_version], [5.0.0])
2016-05-18 03:47:37 +08:00
m4_define([libmypaint_required_version], [1.3.0])
2016-10-31 16:36:15 +08:00
m4_define([libpng_required_version], [1.6.25])
2018-10-19 00:31:43 +08:00
m4_define([libunwind_required_version], [1.1.0])
2013-05-04 21:02:22 +08:00
m4_define([openexr_required_version], [1.6.1])
2017-02-20 04:06:26 +08:00
m4_define([openjpeg_required_version], [2.1.0])
2018-08-20 21:13:54 +08:00
m4_define([pangocairo_required_version], [1.42.0])
2017-12-04 21:55:34 +08:00
m4_define([perl_required_version], [5.10.0])
2019-01-07 10:34:41 +08:00
m4_define([poppler_required_version], [0.69.0])
m4_define([poppler_data_required_version], [0.4.9])
2018-06-13 04:17:18 +08:00
m4_define([python3_required_version], [3.6.0])
2018-08-20 21:13:54 +08:00
m4_define([rsvg_required_version], [2.40.6])
m4_define([webkitgtk_required_version], [2.20.3])
2017-07-23 22:20:40 +08:00
m4_define([webp_required_version], [0.6.0])
2018-08-20 21:13:54 +08:00
m4_define([wmf_required_version], [0.2.8])
2004-01-22 11:51:46 +08:00
2014-05-03 14:54:47 +08:00
# Current test considers only 2 version numbers. If we update the recommended
# version of gettext with more version numbers, please update the tests.
2018-08-02 00:47:51 +08:00
m4_define([xgettext_required_version], [0.19])
2014-05-03 14:54:47 +08:00
2004-01-22 11:51:46 +08:00
AC_INIT([GIMP], [gimp_version],
2018-05-25 21:05:47 +08:00
[https://gitlab.gnome.org/GNOME/gimp/issues/new],
2004-01-22 11:51:46 +08:00
[gimp])
2011-10-17 08:56:10 +08:00
AC_CONFIG_HEADERS([config.h])
2004-01-22 11:51:46 +08:00
AC_CONFIG_SRCDIR([app/core/gimp.c])
2010-02-01 07:02:28 +08:00
AC_CONFIG_MACRO_DIR([m4macros])
2004-01-22 11:51:46 +08:00
2012-01-31 21:31:51 +08:00
AM_INIT_AUTOMAKE(no-define dist-bzip2 dist-xz no-dist-gzip -Wno-portability)
1997-11-25 06:05:25 +08:00
2009-07-15 02:13:15 +08:00
# Enable silent build rules by default, requires at least
# Automake-1.11. Disable by either passing --disable-silent-rules to
# configure or passing V=1 to make
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
2004-01-22 11:51:46 +08:00
GIMP_MAJOR_VERSION=gimp_major_version
GIMP_MINOR_VERSION=gimp_minor_version
GIMP_MICRO_VERSION=gimp_micro_version
GIMP_INTERFACE_AGE=gimp_interface_age
GIMP_BINARY_AGE=gimp_binary_age
GIMP_VERSION=gimp_version
GIMP_REAL_VERSION=gimp_real_version
2019-07-24 22:29:06 +08:00
GIMP_API_MAJOR_VERSION=gimp_api_major_version
GIMP_API_MINOR_VERSION=gimp_api_minor_version
2004-01-22 11:51:46 +08:00
GIMP_API_VERSION=gimp_api_version
GIMP_APP_VERSION=gimp_app_version
GIMP_PLUGIN_VERSION=gimp_plugin_version
GIMP_TOOL_VERSION=gimp_tool_version
GIMP_PKGCONFIG_VERSION=gimp_pkgconfig_version
GIMP_DATA_VERSION=gimp_data_version
GIMP_SYSCONF_VERSION=gimp_sysconf_version
GIMP_USER_VERSION=gimp_user_version
2004-01-27 11:45:01 +08:00
GIMP_UNSTABLE=gimp_unstable
GIMP_FULL_NAME="gimp_full_name"
2002-05-27 21:59:27 +08:00
AC_SUBST(GIMP_MAJOR_VERSION)
AC_SUBST(GIMP_MINOR_VERSION)
AC_SUBST(GIMP_MICRO_VERSION)
2004-01-22 11:51:46 +08:00
AC_SUBST(GIMP_INTERFACE_AGE)
AC_SUBST(GIMP_BINARY_AGE)
2002-05-27 21:59:27 +08:00
AC_SUBST(GIMP_VERSION)
2004-01-22 11:51:46 +08:00
AC_SUBST(GIMP_REAL_VERSION)
2019-07-24 22:29:06 +08:00
AC_SUBST(GIMP_API_MAJOR_VERSION)
AC_SUBST(GIMP_API_MINOR_VERSION)
2004-01-22 11:51:46 +08:00
AC_SUBST(GIMP_API_VERSION)
AC_SUBST(GIMP_APP_VERSION)
AC_SUBST(GIMP_PLUGIN_VERSION)
AC_SUBST(GIMP_TOOL_VERSION)
AC_SUBST(GIMP_PKGCONFIG_VERSION)
AC_SUBST(GIMP_DATA_VERSION)
AC_SUBST(GIMP_SYSCONF_VERSION)
AC_SUBST(GIMP_USER_VERSION)
2004-01-27 11:45:01 +08:00
AC_SUBST(GIMP_UNSTABLE)
AC_SUBST(GIMP_FULL_NAME)
2004-01-22 11:51:46 +08:00
2018-06-15 23:10:21 +08:00
# Version strings used in some source, though it seems unnecessary to
# declare them in the public API (libgimpbase/gimpversion.h).
AC_DEFINE(GIMP_PKGCONFIG_VERSION, "gimp_pkgconfig_version",
[libgimp pkg-config version])
AC_DEFINE(GIMP_TOOL_VERSION, "gimp_tool_version",
[GIMP tools version])
2004-02-10 17:49:45 +08:00
2018-08-20 21:13:54 +08:00
# These are used for substitution (.pc, INSTALL, etc.).
2018-08-20 00:11:56 +08:00
APPSTREAM_GLIB_REQUIRED_VERSION=appstream_glib_required_version
2018-08-20 21:13:54 +08:00
ATK_REQUIRED_VERSION=atk_required_version
BABL_REQUIRED_VERSION=babl_required_version
2011-04-21 05:58:00 +08:00
CAIRO_REQUIRED_VERSION=cairo_required_version
2014-07-23 02:13:22 +08:00
CAIRO_PDF_REQUIRED_VERSION=cairo_pdf_required_version
2018-08-20 21:13:54 +08:00
FONTCONFIG_REQUIRED_VERSION=fontconfig_required_version
FREETYPE2_REQUIRED_VERSION=freetype2_required_version
GDK_PIXBUF_REQUIRED_VERSION=gdk_pixbuf_required_version
2018-04-28 07:30:19 +08:00
GEGL_MAJOR_MINOR_VERSION=gegl_major_minor_version
2012-03-22 19:13:11 +08:00
GEGL_REQUIRED_VERSION=gegl_required_version
2013-10-20 00:38:01 +08:00
GEXIV2_REQUIRED_VERSION=gexiv2_required_version
2018-08-20 21:13:54 +08:00
GLIB_REQUIRED_VERSION=glib_required_version
GTK_REQUIRED_VERSION=gtk_required_version
HARFBUZZ_REQUIRED_VERSION=harfbuzz_required_version
INTLTOOL_REQUIRED_VERSION=intltool_required_version
2014-07-14 04:36:53 +08:00
LCMS_REQUIRED_VERSION=lcms_required_version
2018-08-20 21:13:54 +08:00
LIBHEIF_REQUIRED_VERSION=libheif_required_version
2014-07-14 04:36:53 +08:00
LIBLZMA_REQUIRED_VERSION=liblzma_required_version
2014-07-23 00:03:46 +08:00
LIBMYPAINT_REQUIRED_VERSION=libmypaint_required_version
2018-08-20 21:13:54 +08:00
LIBPNG_REQUIRED_VERSION=libpng_required_version
2014-07-23 02:13:22 +08:00
OPENEXR_REQUIRED_VERSION=openexr_required_version
2018-08-13 18:32:12 +08:00
OPENJPEG_REQUIRED_VERSION=openjpeg_required_version
2018-08-20 21:13:54 +08:00
PANGOCAIRO_REQUIRED_VERSION=pangocairo_required_version
2017-12-04 21:55:34 +08:00
PERL_REQUIRED_VERSION=perl_required_version
2018-08-20 21:13:54 +08:00
POPPLER_REQUIRED_VERSION=poppler_required_version
POPPLER_DATA_REQUIRED_VERSION=poppler_data_required_version
2018-06-13 04:17:18 +08:00
PYTHON3_REQUIRED_VERSION=python3_required_version
2018-08-20 21:13:54 +08:00
RSVG_REQUIRED_VERSION=rsvg_required_version
WEBKITGTK_REQUIRED_VERSION=webkitgtk_required_version
2016-08-09 04:39:30 +08:00
WEBP_REQUIRED_VERSION=webp_required_version
2018-08-20 21:13:54 +08:00
WMF_REQUIRED_VERSION=wmf_required_version
app: add GimpBacktrace
GimpBacktrace provides an interface for creating and traversing
multi-threaded backtraces, as well as querying symbol information.
While we already have some backtrace functionality, it relies on
external tools for the most part, and as such is rather expensive,
and is only meant for producing opaque backtraces. GimpBacktrace,
on the other hand, is meant to be relatively cheap (we're going to
use it for profiling,) and allow inspection of the backtrace data.
In the future, it might make sense to replace some, or all, of the
other backtrace functions with GimpBacktrace.
GimpBacktrace currently only supports Linux. By default, it uses
dladdr() to query symbol information, which is somewhat limited (in
particular, it doesn't work for static functions.) When libunwind
is installed, GimpBacktrace uses it to get more complete symbol
information. libunwind is currently an optional dependency, but it
might make sense to promote it to a mandatory, or opt-out,
dependency, as it's lightweight and widely available.
On other platforms, the GimpBacktrace interface can still be used,
but it always returns NULL backtraces.
2018-09-02 13:15:35 +08:00
LIBUNWIND_REQUIRED_VERSION=libunwind_required_version
2018-08-02 00:47:51 +08:00
XGETTEXT_REQUIRED_VERSION=xgettext_required_version
2018-08-20 00:11:56 +08:00
AC_SUBST(APPSTREAM_GLIB_REQUIRED_VERSION)
2018-08-20 21:13:54 +08:00
AC_SUBST(ATK_REQUIRED_VERSION)
AC_SUBST(BABL_REQUIRED_VERSION)
2011-04-21 05:58:00 +08:00
AC_SUBST(CAIRO_REQUIRED_VERSION)
2014-07-23 02:13:22 +08:00
AC_SUBST(CAIRO_PDF_REQUIRED_VERSION)
2018-08-20 21:13:54 +08:00
AC_SUBST(FONTCONFIG_REQUIRED_VERSION)
AC_SUBST(FREETYPE2_REQUIRED_VERSION)
AC_SUBST(GDK_PIXBUF_REQUIRED_VERSION)
2018-04-28 07:45:45 +08:00
AC_SUBST(GEGL_MAJOR_MINOR_VERSION)
2012-03-22 19:13:11 +08:00
AC_SUBST(GEGL_REQUIRED_VERSION)
2013-10-20 00:38:01 +08:00
AC_SUBST(GEXIV2_REQUIRED_VERSION)
2018-08-20 21:13:54 +08:00
AC_SUBST(GLIB_REQUIRED_VERSION)
AC_SUBST(GTK_REQUIRED_VERSION)
AC_SUBST(HARFBUZZ_REQUIRED_VERSION)
AC_SUBST(INTLTOOL_REQUIRED_VERSION)
2014-07-14 04:36:53 +08:00
AC_SUBST(LCMS_REQUIRED_VERSION)
2018-08-20 21:13:54 +08:00
AC_SUBST(LIBHEIF_REQUIRED_VERSION)
2014-07-14 04:36:53 +08:00
AC_SUBST(LIBLZMA_REQUIRED_VERSION)
2014-07-23 00:03:46 +08:00
AC_SUBST(LIBMYPAINT_REQUIRED_VERSION)
2018-08-20 21:13:54 +08:00
AC_SUBST(LIBPNG_REQUIRED_VERSION)
2014-07-23 02:13:22 +08:00
AC_SUBST(OPENEXR_REQUIRED_VERSION)
2018-08-13 18:32:12 +08:00
AC_SUBST(OPENJPEG_REQUIRED_VERSION)
2018-08-20 21:13:54 +08:00
AC_SUBST(PANGOCAIRO_REQUIRED_VERSION)
2017-12-04 21:55:34 +08:00
AC_SUBST(PERL_REQUIRED_VERSION)
2018-08-20 21:13:54 +08:00
AC_SUBST(POPPLER_REQUIRED_VERSION)
AC_SUBST(POPPLER_DATA_REQUIRED_VERSION)
2018-06-13 04:17:18 +08:00
AC_SUBST(PYTHON3_REQUIRED_VERSION)
2018-08-20 21:13:54 +08:00
AC_SUBST(RSVG_REQUIRED_VERSION)
AC_SUBST(WEBKITGTK_REQUIRED_VERSION)
2016-08-09 04:39:30 +08:00
AC_SUBST(WEBP_REQUIRED_VERSION)
2018-08-20 21:13:54 +08:00
AC_SUBST(WMF_REQUIRED_VERSION)
app: add GimpBacktrace
GimpBacktrace provides an interface for creating and traversing
multi-threaded backtraces, as well as querying symbol information.
While we already have some backtrace functionality, it relies on
external tools for the most part, and as such is rather expensive,
and is only meant for producing opaque backtraces. GimpBacktrace,
on the other hand, is meant to be relatively cheap (we're going to
use it for profiling,) and allow inspection of the backtrace data.
In the future, it might make sense to replace some, or all, of the
other backtrace functions with GimpBacktrace.
GimpBacktrace currently only supports Linux. By default, it uses
dladdr() to query symbol information, which is somewhat limited (in
particular, it doesn't work for static functions.) When libunwind
is installed, GimpBacktrace uses it to get more complete symbol
information. libunwind is currently an optional dependency, but it
might make sense to promote it to a mandatory, or opt-out,
dependency, as it's lightweight and widely available.
On other platforms, the GimpBacktrace interface can still be used,
but it always returns NULL backtraces.
2018-09-02 13:15:35 +08:00
AC_SUBST(LIBUNWIND_REQUIRED_VERSION)
2018-08-02 00:47:51 +08:00
AC_SUBST(XGETTEXT_REQUIRED_VERSION)
2007-12-21 04:15:53 +08:00
# The symbol GIMP_UNSTABLE is defined above for substitution in
# Makefiles and conditionally defined here as a preprocessor symbol
# and automake conditional.
2004-02-05 08:34:50 +08:00
if test "x$GIMP_UNSTABLE" = "xyes"; then
2005-08-18 01:01:58 +08:00
AC_DEFINE(GIMP_UNSTABLE, 1,
2007-06-06 16:44:52 +08:00
[Define to 1 if this is an unstable version of GIMP])
2004-02-05 08:34:50 +08:00
fi
2005-02-09 00:27:52 +08:00
AM_CONDITIONAL(GIMP_UNSTABLE, test "x$GIMP_UNSTABLE" = "xyes")
2004-01-22 11:51:46 +08:00
# libtool versioning
2004-04-14 07:39:03 +08:00
m4_define([lt_current], [m4_eval(100 * gimp_minor_version + gimp_micro_version - gimp_interface_age)])
2004-01-22 11:51:46 +08:00
m4_define([lt_revision], [gimp_interface_age])
m4_define([lt_age], [m4_eval(gimp_binary_age - gimp_interface_age)])
LT_VERSION_INFO="lt_current:lt_revision:lt_age"
LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age)
AC_SUBST(LT_VERSION_INFO)
2002-05-27 21:59:27 +08:00
AC_SUBST(LT_CURRENT_MINUS_AGE)
2004-02-05 09:45:39 +08:00
2007-12-20 23:49:54 +08:00
# gettext i18n support
2010-10-15 15:56:27 +08:00
GETTEXT_PACKAGE=gimp30
2004-01-22 11:51:46 +08:00
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[The prefix for our gettext translation domains.])
2002-05-27 21:59:27 +08:00
2015-08-21 06:42:10 +08:00
# work around intltool-update issues during 'make distcheck'
AS_IF([test "x$0" != "x./configure"], [
AC_SUBST([INTLTOOL_UPDATE], [/bin/true])
])
2008-02-27 00:10:54 +08:00
# Determine a C compiler to use
AC_PROG_CC
2016-06-13 07:47:19 +08:00
AX_PROG_CC_FOR_BUILD
configure: work around a bug in AX_PROG_CC_FOR_BUILD...
... when building on Windows.
From bug 780270, comment 18:
I'm still having issue with Windows MinGW, but I have traced the issue
with the autoconf itself, and the autoconf-archive script
"ax_prog_cc_for_build.m4". I have written to the autoconf-archive
mailing list.
It seem that this script never worked as intended since a long time
because the way it works, it pushdef a few elements, then it disable
cross-compiling (for the following test), and invoke AC_PROG_CC (which
in turn invoke the code that find and set the exe extention). Then it
grab the BUILD_EXEEXT from that. This is neat and simple, but the issue
is that the autoconf AC_PROG_CC macro only invoke the code that is
responsible for finding the exe (and obj) extensions once (with
m4_expand_once). So, the end-result is that in the resulting configure
script, EXEEXT is properly evaluated, but when comes the time to
evaluate BUILD_EXEEXT, no test is performed to actually find the exe
(and obj) extension, even if the cross-compilation option changed (which
is the case for the duration of this test).
So, BUILD_EXEEXT will always end up blank (defined, but blank).
2017-03-29 20:30:36 +08:00
# Works around a bug in AX_PROG_CC_FOR_BUILD for build with MinGW on
# Windows. See bug 780270, comment 18.
case "$build_os" in
cygwin*|mingw32*|mingw64*) BUILD_EXEEXT=.exe ;;
esac
2008-02-27 00:10:54 +08:00
AM_PROG_CC_C_O
1998-06-20 03:47:34 +08:00
2013-05-04 09:55:49 +08:00
# Determine a C++ compiler to use
AC_PROG_CXX
2018-04-19 16:11:07 +08:00
AX_CXX_COMPILE_STDCXX([14], , [mandatory])
2013-05-04 09:55:49 +08:00
2007-12-21 04:15:53 +08:00
# Initialize libtool
2011-10-17 08:55:06 +08:00
LT_PREREQ([2.2])
LT_INIT([disable-static win32-dll])
1997-11-25 06:05:25 +08:00
2004-01-22 11:51:46 +08:00
AM_PROG_AS
1997-11-25 06:05:25 +08:00
2007-12-21 04:15:53 +08:00
# Initialize maintainer mode
2011-09-10 22:35:14 +08:00
AM_MAINTAINER_MODE([enable])
2002-05-27 21:59:27 +08:00
2008-02-08 00:50:11 +08:00
# Check for pkg-config
PKG_PROG_PKG_CONFIG(0.16)
2016-06-10 01:46:54 +08:00
#########################
# Check host architecture
#########################
AC_CANONICAL_HOST
AC_MSG_CHECKING([for host type])
AC_MSG_RESULT([$host])
2003-07-04 08:31:05 +08:00
2016-06-10 01:46:54 +08:00
AC_MSG_CHECKING([for host processor])
case "$host_cpu" in
i*86)
2003-07-04 08:31:05 +08:00
have_x86=yes
AC_DEFINE(ARCH_X86, 1, [Define to 1 if you are compiling for ix86.])
2016-06-10 01:46:54 +08:00
AC_MSG_RESULT([x86])
2003-07-04 08:31:05 +08:00
;;
2016-06-10 01:46:54 +08:00
x86_64)
2004-01-31 16:53:53 +08:00
have_x86=yes
AC_DEFINE(ARCH_X86, 1, [Define to 1 if you are compiling for ix86.])
AC_DEFINE(ARCH_X86_64, 1, [Define to 1 if you are compiling for amd64.])
2016-06-10 01:46:54 +08:00
AC_MSG_RESULT([x86-64])
2004-01-31 16:53:53 +08:00
;;
2016-06-10 01:46:54 +08:00
ppc | powerpc)
2003-07-04 08:31:05 +08:00
have_ppc=yes
AC_DEFINE(ARCH_PPC, 1, [Define to 1 if you are compiling for PowerPC.])
2016-06-10 01:46:54 +08:00
AC_MSG_RESULT([PowerPC])
2003-07-04 08:31:05 +08:00
;;
2016-06-10 01:46:54 +08:00
ppc64 | powerpc64)
2005-03-03 17:23:48 +08:00
have_ppc=yes
AC_DEFINE(ARCH_PPC, 1, [Define to 1 if you are compiling for PowerPC.])
AC_DEFINE(ARCH_PPC64, 1, [Define to 1 if you are compiling for PowerPC64.])
2016-06-10 01:46:54 +08:00
AC_MSG_RESULT([64-bit PowerPC])
2005-03-03 17:23:48 +08:00
;;
2003-07-04 08:31:05 +08:00
*)
2016-06-10 01:46:54 +08:00
AC_MSG_RESULT([unknown])
2003-07-04 08:31:05 +08:00
;;
esac
app: add GimpBacktrace
GimpBacktrace provides an interface for creating and traversing
multi-threaded backtraces, as well as querying symbol information.
While we already have some backtrace functionality, it relies on
external tools for the most part, and as such is rather expensive,
and is only meant for producing opaque backtraces. GimpBacktrace,
on the other hand, is meant to be relatively cheap (we're going to
use it for profiling,) and allow inspection of the backtrace data.
In the future, it might make sense to replace some, or all, of the
other backtrace functions with GimpBacktrace.
GimpBacktrace currently only supports Linux. By default, it uses
dladdr() to query symbol information, which is somewhat limited (in
particular, it doesn't work for static functions.) When libunwind
is installed, GimpBacktrace uses it to get more complete symbol
information. libunwind is currently an optional dependency, but it
might make sense to promote it to a mandatory, or opt-out,
dependency, as it's lightweight and widely available.
On other platforms, the GimpBacktrace interface can still be used,
but it always returns NULL backtraces.
2018-09-02 13:15:35 +08:00
#################
# Check for Linux
#################
AC_MSG_CHECKING([if compiling for Linux])
case "$host_os" in
linux*)
platform_linux=yes
;;
*)
platform_linux=no
;;
esac
AC_MSG_RESULT([$platform_linux])
AM_CONDITIONAL(PLATFORM_LINUX, test "$platform_linux" = "yes")
2002-05-27 21:59:27 +08:00
#################
# Check for Win32
#################
2001-08-28 21:04:47 +08:00
2016-06-10 01:46:54 +08:00
AC_MSG_CHECKING([if compiling for Win32])
case "$host_os" in
mingw* | cygwin*)
2002-03-30 05:36:53 +08:00
platform_win32=yes
;;
*)
platform_win32=no
;;
esac
AC_MSG_RESULT([$platform_win32])
AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
2016-06-10 01:46:54 +08:00
PATHSEP=':'
os_win32=no
if test "x$platform_win32" != xno; then
AC_MSG_CHECKING([if this is native Win32])
case "$host_os" in
mingw*)
os_win32=yes
case "$host_cpu" in
x86_64)
;;
*)
WIN32_LARGE_ADDRESS_AWARE='-Wl,--large-address-aware'
;;
esac
PATHSEP=';'
;;
*)
;;
esac
AC_MSG_RESULT([$os_win32])
fi
2008-08-07 08:36:47 +08:00
AC_SUBST(WIN32_LARGE_ADDRESS_AWARE)
2002-03-30 05:36:53 +08:00
AC_SUBST(PATHSEP)
AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
2004-01-22 11:51:46 +08:00
AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
2002-03-30 05:36:53 +08:00
if test "$os_win32" = "yes"; then
AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
2004-08-02 03:55:40 +08:00
AC_CHECK_TOOL(WINDRES, windres, :)
2004-08-04 17:00:34 +08:00
else
WINDRES=":"
2002-03-30 05:36:53 +08:00
fi
2004-08-02 03:55:40 +08:00
2007-10-25 21:58:54 +08:00
AM_CONDITIONAL(MS_LIB_AVAILABLE, test "x$ms_librarian" = xyes)
2004-08-02 04:00:12 +08:00
AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != "x:")
2004-08-02 03:55:40 +08:00
AC_SUBST(WINDRES)
2002-05-27 21:59:27 +08:00
2006-08-24 21:01:12 +08:00
2016-06-10 01:46:54 +08:00
####################
# Check for Mac OS X
####################
platform_osx=no
AC_MSG_CHECKING([if compiling for Mac OS X])
case "$host_os" in
darwin*)
AC_MSG_RESULT(yes)
AC_DEFINE(PLATFORM_OSX, 1, [define to 1 if compiling for Mac OS X])
platform_osx=yes
;;
*)
;;
esac
AC_MSG_RESULT($platform_osx)
AM_CONDITIONAL(PLATFORM_OSX, test "x$platform_osx" = xyes)
2002-05-27 21:59:27 +08:00
###############
# Generic stuff
###############
2007-12-21 04:15:53 +08:00
# Checks for programs.
1999-01-08 03:54:45 +08:00
AC_PROG_INSTALL
AC_PROG_MAKE_SET
2014-08-15 11:25:43 +08:00
AC_PROG_LN_S
1999-01-08 03:54:45 +08:00
2007-12-21 04:15:53 +08:00
# Large file support for the swap file
2002-05-27 07:47:10 +08:00
AC_SYS_LARGEFILE
2002-02-23 01:35:07 +08:00
2003-07-10 07:52:48 +08:00
AC_MSG_CHECKING([whether to turn on debugging])
2002-05-27 21:59:27 +08:00
AC_ARG_ENABLE(debug,
2003-06-23 18:25:42 +08:00
[ --enable-debug turn on debugging (default=no)],
2002-05-27 21:59:27 +08:00
if eval "test x$enable_debug = xyes"; then
DEBUGFLAG="-g"
fi)
2002-02-23 01:35:07 +08:00
2002-05-27 21:59:27 +08:00
if test -n "$DEBUGFLAG"; then
2003-07-10 07:52:48 +08:00
AC_MSG_RESULT([yes])
2002-05-27 21:59:27 +08:00
CFLAGS="$DEBUGFLAG $CFLAGS"
2003-07-10 07:52:48 +08:00
else
AC_MSG_RESULT([no])
fi
AC_MSG_CHECKING([whether to turn on profiling])
AC_ARG_ENABLE(profile,
[ --enable-profile turn on profiling (default=no)],
if eval "test x$enable_profile = xyes"; then
PROFFLAG="-pg"
fi)
if test -n "$PROFFLAG"; then
AC_MSG_RESULT([yes])
CFLAGS="$PROFFLAG $CFLAGS"
else
AC_MSG_RESULT([no])
2002-05-27 21:59:27 +08:00
fi
1999-01-08 03:54:45 +08:00
2002-05-27 21:59:27 +08:00
AC_ARG_ENABLE(ansi,
2003-06-23 18:25:42 +08:00
[ --enable-ansi turn on strict ansi (default=no)],,
2002-05-27 21:59:27 +08:00
enable_ansi=no)
2002-02-23 01:35:07 +08:00
2004-01-22 11:51:46 +08:00
changequote(,)dnl
2002-05-27 21:59:27 +08:00
if eval "test x$GCC = xyes"; then
case " $CFLAGS " in
*[\ \ ]-Wall[\ \ ]*) ;;
*) CFLAGS="$CFLAGS -Wall" ;;
esac
1997-11-25 06:05:25 +08:00
2002-05-27 21:59:27 +08:00
if test "x$enable_ansi" = "xyes"; then
case " $CFLAGS " in
*[\ \ ]-ansi[\ \ ]*) ;;
*) CFLAGS="$CFLAGS -ansi" ;;
esac
2002-02-23 01:35:07 +08:00
2002-05-27 21:59:27 +08:00
case " $CFLAGS " in
*[\ \ ]-pedantic[\ \ ]*) ;;
*) CFLAGS="$CFLAGS -pedantic" ;;
esac
1997-11-25 06:05:25 +08:00
fi
fi
2004-01-22 11:51:46 +08:00
changequote([,])dnl
1997-11-25 06:05:25 +08:00
2006-11-01 03:05:09 +08:00
2007-04-25 21:36:47 +08:00
# If possible, warn if C99isms are used
2006-08-24 21:01:12 +08:00
GIMP_DETECT_CFLAGS(extra_warnings, '-Wdeclaration-after-statement')
CFLAGS="$CFLAGS $extra_warnings"
2006-11-01 03:05:09 +08:00
GIMP_DETECT_CFLAGS(extra_warnings, '-Wmissing-prototypes')
2011-12-07 04:08:33 +08:00
CFLAGS="$CFLAGS $extra_warnings"
# We really don't want anyone using code with missing prototypes, which
# can cause random behavior. If compile breaks due to the following,
# come to us and we will point you to a newer version which works.
2014-04-06 21:48:53 +08:00
#
2014-07-13 00:47:29 +08:00
GIMP_DETECT_CFLAGS(extra_warnings, '-Werror=missing-prototypes')
CFLAGS="$CFLAGS $extra_warnings"
2006-11-01 03:05:09 +08:00
2008-10-19 03:25:03 +08:00
GIMP_DETECT_CFLAGS(extra_warnings, '-Wstrict-prototypes')
CFLAGS="$CFLAGS $extra_warnings"
2006-11-01 03:05:09 +08:00
GIMP_DETECT_CFLAGS(extra_warnings, '-Wmissing-declarations')
CFLAGS="$CFLAGS $extra_warnings"
2006-11-11 19:14:11 +08:00
GIMP_DETECT_CFLAGS(extra_warnings, '-Winit-self')
CFLAGS="$CFLAGS $extra_warnings"
GIMP_DETECT_CFLAGS(extra_warnings, '-Wpointer-arith')
CFLAGS="$CFLAGS $extra_warnings"
2008-03-30 01:22:08 +08:00
GIMP_DETECT_CFLAGS(extra_warnings, '-Wold-style-definition')
CFLAGS="$CFLAGS $extra_warnings"
2006-11-11 19:14:11 +08:00
2008-10-19 07:05:56 +08:00
GIMP_DETECT_CFLAGS(extra_warnings, '-Wmissing-format-attribute')
CFLAGS="$CFLAGS $extra_warnings"
2008-12-23 20:24:44 +08:00
GIMP_DETECT_CFLAGS(extra_warnings, '-Wformat-security')
CFLAGS="$CFLAGS $extra_warnings"
2015-10-18 02:16:18 +08:00
GIMP_DETECT_CFLAGS(extra_warnings, '-Wlogical-op')
CFLAGS="$CFLAGS $extra_warnings"
GIMP_DETECT_CFLAGS(extra_warnings, '-Wtype-limits')
CFLAGS="$CFLAGS $extra_warnings"
2011-03-22 01:19:48 +08:00
GIMP_DETECT_CFLAGS(extra_warnings, '-fno-common')
CFLAGS="$CFLAGS $extra_warnings"
2011-05-02 10:13:48 +08:00
GIMP_DETECT_CFLAGS(extra_warnings, '-fdiagnostics-show-option')
CFLAGS="$CFLAGS $extra_warnings"
2015-09-09 07:11:32 +08:00
GIMP_DETECT_CFLAGS(extra_warnings, '-Wreturn-type')
CFLAGS="$CFLAGS $extra_warnings"
# -Wreturn-type warns on forgotten return on non-void functions,
# but not of g_return_if_fail() on non-void functions.
# -Wsystem-headers is needed for that.
2015-09-09 09:21:49 +08:00
# Unfortunately it pulls tons of warnings on some systems.
# So we comment out for now.
# GIMP_DETECT_CFLAGS(extra_warnings, '-Wsystem-headers')
# CFLAGS="$CFLAGS $extra_warnings"
2006-08-24 21:01:12 +08:00
2011-03-27 06:45:09 +08:00
# Extra optimization flags for super performance
GIMP_DETECT_CFLAGS(extra_warnings, '--omg-optimized')
CFLAGS="$CFLAGS $extra_warnings"
GIMP_DETECT_CFLAGS(extra_warnings, '--disable-instructions')
CFLAGS="$CFLAGS $extra_warnings"
2002-12-23 08:35:28 +08:00
# Ensure MSVC-compatible struct packing convention is used when
# compiling for Win32 with gcc.
# What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
# gcc2 uses "-fnative-struct".
2007-10-25 21:58:54 +08:00
if test "x$os_win32" = xyes; then
if test "x$GCC" = xyes; then
2002-12-23 08:35:28 +08:00
msnative_struct=''
AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
if test -z "$ac_cv_prog_CC"; then
our_gcc="$CC"
else
our_gcc="$ac_cv_prog_CC"
fi
case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
2.)
if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
msnative_struct='-fnative-struct'
fi
;;
*)
if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
msnative_struct='-mms-bitfields'
fi
;;
esac
2007-10-25 21:58:54 +08:00
if test "x$msnative_struct" = x ; then
2002-12-23 08:35:28 +08:00
AC_MSG_RESULT([no way])
2003-01-28 14:51:56 +08:00
AC_MSG_WARN([build will be incompatible with GTK+ DLLs])
2002-12-23 08:35:28 +08:00
else
CFLAGS="$CFLAGS $msnative_struct"
AC_MSG_RESULT([${msnative_struct}])
fi
fi
fi
2017-09-10 05:21:42 +08:00
if test "x$GCC" = xyes; then
gcc_version=`$CC -v 2>&1|grep 'gcc version'|sed -e 's/.*gcc version \([[0-9.]]\+\)[[^0-9.]].*/\1/'`
if test "x$gcc_version" = "x7.2.0" ; then
warning_gcc="
WARNING: GCC 7.2.0 has a serious bug affecting GEGL/GIMP. We advise
against using this version of the compiler (previous and
further versions are fine).
See https://bugzilla.gnome.org/show_bug.cgi?id=787222"
fi
2017-09-10 07:20:13 +08:00
# For GCC, use -v which has more information than --version.
2019-05-20 15:06:02 +08:00
CC_VERSION_OPTS="-v"
2017-09-10 07:20:13 +08:00
else
# This is the list of common options used by autotools to check
# versions for various compilers.
2019-05-20 15:06:02 +08:00
CC_VERSION_OPTS="--version -v -V -qversion"
2017-09-10 05:21:42 +08:00
fi
2019-05-20 15:06:02 +08:00
for CC_VERSION_OPT in $CC_VERSION_OPTS; do
# We run $CC, and escape and format its output, in a single step,
# since some shells expand escape sequences in "echo" arguments.
CC_VERSION="`$CC $CC_VERSION_OPT 2>&1 | sed -e 's/\\\\/\\\\\\\\/g;s/^/\\\\t/;s/$/\\\\n/' | tr -d '\n'`"
if test $? -eq 0; then
break
fi
done
2017-09-10 07:20:13 +08:00
AC_SUBST(CC_VERSION)
2002-02-23 01:35:07 +08:00
2002-05-27 21:59:27 +08:00
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_HEADER_TIME
2018-04-28 20:57:46 +08:00
AC_CHECK_HEADERS(execinfo.h fcntl.h sys/param.h sys/prctl.h sys/thr.h sys/time.h sys/times.h sys/wait.h unistd.h)
2013-11-11 05:17:38 +08:00
AC_CHECK_FUNCS(backtrace, , AC_CHECK_LIB(execinfo, backtrace))
2002-05-27 21:59:27 +08:00
AC_TYPE_PID_T
AC_FUNC_VPRINTF
AC_FUNC_ALLOCA
2007-12-21 04:15:53 +08:00
# check some more funcs
2009-03-17 19:30:27 +08:00
AC_CHECK_FUNCS(fsync)
2007-11-06 21:28:19 +08:00
AC_CHECK_FUNCS(difftime mmap)
2018-04-28 20:57:46 +08:00
AC_CHECK_FUNCS(thr_self)
2002-05-27 21:59:27 +08:00
2009-03-17 19:30:27 +08:00
2005-08-18 01:01:58 +08:00
# _NL_MEASUREMENT_MEASUREMENT is an enum and not a define
AC_MSG_CHECKING([for _NL_MEASUREMENT_MEASUREMENT])
2011-10-20 03:33:49 +08:00
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
2011-10-17 08:40:35 +08:00
[[#include <langinfo.h>]],
[[char c = *((unsigned char *) nl_langinfo(_NL_MEASUREMENT_MEASUREMENT));]])],
[nl_ok=yes],
[nl_ok=no])
2005-08-18 01:01:58 +08:00
AC_MSG_RESULT($nl_ok)
if test "$nl_ok" = "yes"; then
AC_DEFINE(HAVE__NL_MEASUREMENT_MEASUREMENT, 1,
[Define to 1 if _NL_MEASUREMENT_MEASUREMENT is available])
fi
2018-08-02 00:47:51 +08:00
# Macro to keep track of failed dependencies.
required_deps=''
# To add a required dependency error, call: add_deps_error([dependency]).
# If details about the dependency are needed:
# add_deps_error([dependency], [first line, second line])
m4_define([add_deps_error], [
AC_MSG_NOTICE([Eeeeeeeeeeeeeeeeeeeeek! Missing dep: $1])
required_deps="$required_deps
- Error: missing dependency $1"
m4_foreach([more], [$2], [
required_deps="$required_deps
*** more"])])
2005-08-18 01:01:58 +08:00
2002-05-27 21:59:27 +08:00
######################
# Internationalisation
######################
2002-02-23 01:35:07 +08:00
2014-02-03 10:58:52 +08:00
IT_PROG_INTLTOOL(intltool_required_version)
2001-09-27 23:33:53 +08:00
AM_GLIB_GNU_GETTEXT
1998-08-06 07:46:04 +08:00
2014-05-03 14:54:47 +08:00
# Testing xgettext version since we had some problem with localizing script-fu. See bug 720052.
2018-08-02 00:47:51 +08:00
AC_MSG_CHECKING([for xgettext version (>= xgettext_required_version)])
XGETTEXT_REQUIRED_VERSION_MAJOR=`echo $XGETTEXT_REQUIRED_VERSION | awk -F. '{ print $ 1; }'`
XGETTEXT_REQUIRED_VERSION_MINOR_1=`echo $XGETTEXT_REQUIRED_VERSION | awk -F. '{ print $ 2; }'`
2014-05-03 14:54:47 +08:00
XGETTEXT_APPLIED_VERSION=`$XGETTEXT --version | head -1 | cut -d" " -f4`
XGETTEXT_APPLIED_VERSION_MAJOR=`echo $XGETTEXT_APPLIED_VERSION | awk -F. '{ print $ 1; }'`
XGETTEXT_APPLIED_VERSION_MINOR_1=`echo $XGETTEXT_APPLIED_VERSION | awk -F. '{ print $ 2; }'`
2018-08-02 00:47:51 +08:00
have_required_xgettext="no"
2014-05-03 14:54:47 +08:00
if test -n "$XGETTEXT_APPLIED_VERSION_MAJOR"; then
2018-08-02 00:47:51 +08:00
if test "$XGETTEXT_REQUIRED_VERSION_MAJOR" -lt "$XGETTEXT_APPLIED_VERSION_MAJOR"; then
have_required_xgettext="yes"
elif test "$XGETTEXT_REQUIRED_VERSION_MAJOR" -eq "$XGETTEXT_APPLIED_VERSION_MAJOR"; then
2014-05-03 14:54:47 +08:00
if test -n "$XGETTEXT_APPLIED_VERSION_MINOR_1"; then
2018-08-02 00:47:51 +08:00
if test "$XGETTEXT_REQUIRED_VERSION_MINOR_1" -le "$XGETTEXT_APPLIED_VERSION_MINOR_1"; then
have_required_xgettext="yes"
2014-05-03 14:54:47 +08:00
fi
fi
fi
fi
2018-08-02 00:47:51 +08:00
AC_MSG_RESULT($have_required_xgettext)
2014-05-03 14:54:47 +08:00
2018-08-02 00:47:51 +08:00
if test "x$have_required_xgettext" = "xno"; then
add_deps_error([xgettext], [xgettext >= xgettext_required_version])
2014-05-03 14:54:47 +08:00
fi
2002-02-23 01:35:07 +08:00
2008-09-02 06:12:58 +08:00
###########
# iso-codes
###########
2008-02-08 00:50:11 +08:00
AC_MSG_CHECKING([for iso-codes])
PKG_CHECK_EXISTS(iso-codes,
have_iso_codes="yes"
AC_DEFINE(HAVE_ISO_CODES, 1,
[Define to 1 if the iso-codes package is available])
2009-07-06 21:29:45 +08:00
ISO_CODES_PREFIX=`$PKG_CONFIG --variable=prefix iso-codes`
2008-02-08 00:50:11 +08:00
ISO_CODES_LOCATION="$ISO_CODES_PREFIX/share/xml/iso-codes"
ISO_CODES_LOCALEDIR="$ISO_CODES_PREFIX/$DATADIRNAME/locale",
have_iso_codes="no (iso-codes package not found)")
AC_MSG_RESULT($have_iso_codes)
AC_SUBST(ISO_CODES_LOCATION)
AC_SUBST(ISO_CODES_LOCALEDIR)
2002-05-27 21:59:27 +08:00
###############################
# Checks for required libraries
###############################
2002-02-23 01:35:07 +08:00
2015-12-29 01:56:43 +08:00
PKG_CHECK_MODULES(BABL, [babl >= babl_required_version],,
[add_deps_error([babl >= babl_required_version])])
2018-04-28 07:30:19 +08:00
PKG_CHECK_MODULES(GEGL, gegl-gegl_major_minor_version >= gegl_required_version,,
[add_deps_error([gegl-gegl_major_minor_version >= gegl_required_version])])
2015-12-29 01:56:43 +08:00
PKG_CHECK_MODULES(ATK, atk >= atk_required_version,,
[add_deps_error([atk >= atk_required_version])])
2007-12-20 23:49:54 +08:00
2018-05-13 05:00:22 +08:00
# glib 2.56.0 and 2.56.1 have a bad bug on Win32, breaking the file
# chooser dialogs. This has been fixed, but no release made yet. When
# 2.56.2 is released, the additional test for these broken versions can
# be removed and we can bump the requirement to glib 2.56.2.
AM_PATH_GLIB_2_0(glib_required_version,
[if test "x$platform_win32" = "xyes"; then
PKG_CHECK_MODULES(GLIB_WIN_BUG, glib-2.0 >= 2.56.0 glib-2.0 < 2.56.2,
[add_deps_error([glib >= glib_required_version except glib 2.56.0 and 2.56.1 (broken on Win32 - bug 795855)])],:)
fi],
2015-12-29 01:56:43 +08:00
[add_deps_error([glib >= glib_required_version],
[Test for GLIB failed])],
gobject)
2001-07-25 09:23:28 +08:00
2015-12-29 01:56:43 +08:00
PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0,,
[add_deps_error([gmodule-no-export-2.0])])
2002-10-21 22:15:02 +08:00
2015-12-29 01:56:43 +08:00
PKG_CHECK_MODULES(GIO, gio-2.0,,
[add_deps_error([gio-2.0])])
2008-03-29 00:09:44 +08:00
2014-07-03 01:55:48 +08:00
if test "x$os_win32" = "xyes"; then
2015-12-29 01:56:43 +08:00
PKG_CHECK_MODULES(GIO_WINDOWS, gio-windows-2.0,,
[add_deps_error([gio-windows-2.0])])
2014-07-03 01:55:48 +08:00
else
2015-12-29 01:56:43 +08:00
PKG_CHECK_MODULES(GIO_UNIX, gio-unix-2.0,,
[add_deps_error([gio-unix-2.0])])
2013-05-25 05:25:47 +08:00
fi
2017-05-11 03:56:58 +08:00
AC_MSG_CHECKING([for glib-networking (GIO TLS implementation)])
gimp_save_CFLAGS="$CFLAGS"
gimp_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GIO_CFLAGS"
LIBS="$LIBS $GIO_LIBS"
AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <gio/gio.h>],
[return !g_tls_backend_supports_tls (g_tls_backend_get_default ());])],
[have_glib_networking="yes"],
[have_glib_networking="no"],
[have_glib_networking="unknown (cross-compiling)"])
CFLAGS="$gimp_save_CFLAGS"
LIBS="$gimp_save_LIBS"
AC_MSG_RESULT($have_glib_networking)
if test "x$have_glib_networking" = "xno"; then
add_deps_error([glib-networking],
[Test for glib-networking failed. This is required.])
elif test "x$have_glib_networking" != "xyes"; then
warning_glib_networking="
WARNING: Test for glib-networking cannot be performed while cross-compiling.
Make sure glib-networking is installed, otherwise GIMP will not be able
to display the remote help pages through the help browser, nor will it
be able to open remote HTTPS (or other protocol using SSL/TLS) files.
HTTPS is becoming the expected standard and should not be considered
optional anymore."
fi
2018-08-12 22:08:41 +08:00
# AM_PATH_GLIB_2_0 already fills in the variable GLIB_COMPILE_RESOURCES.
# Unfortunately it looks it up using $PKG_CONFIG, which search in
# target-installed libraries, hence it would return a tool for the
# target architecture in case of cross-compilation (which can't be run
# during build, unless there is some compatibility layer in the OS).
# Therefore we make our own check.
AC_MSG_CHECKING([for native glib-compile-resources])
if test -z "$HOST_GLIB_COMPILE_RESOURCES"; then
# Do not use $PKG_CONFIG as it will search target files.
HOST_GLIB_COMPILE_RESOURCES=`pkg-config --variable=glib_compile_resources gio-2.0`
if test -z "$HOST_GLIB_COMPILE_RESOURCES"; then
# As fallback, search in path.
AC_PATH_PROG(HOST_GLIB_COMPILE_RESOURCES, glib-compile-resources, no)
if test "x$HOST_GLIB_COMPILE_RESOURCES" = xno; then
add_deps_error([glib-compile-resources],
[Could not find glib-compile-resources in your PATH.])
fi
fi
2015-04-15 04:55:10 +08:00
fi
2018-08-12 22:08:41 +08:00
AC_MSG_RESULT($HOST_GLIB_COMPILE_RESOURCES)
AC_SUBST(HOST_GLIB_COMPILE_RESOURCES)
2015-04-15 04:55:10 +08:00
2013-05-25 05:25:47 +08:00
AC_PATH_PROG(GDBUS_CODEGEN, gdbus-codegen, no)
if test "x$GDBUS_CODEGEN" = xno; then
2015-12-29 01:56:43 +08:00
add_deps_error([gdbus-codegen], [Could not find gdbus-codegen in your PATH.])
2013-05-25 05:25:47 +08:00
fi
2018-06-01 02:41:03 +08:00
AC_MSG_CHECKING([if GLib is version 2.57.0 or newer])
if $PKG_CONFIG --atleast-version=2.57.0 glib-2.0; then
have_glib_2_57=yes
2004-05-12 01:19:24 +08:00
else
2018-06-01 02:41:03 +08:00
have_glib_2_57=no
2004-05-12 01:19:24 +08:00
fi
2018-06-01 02:41:03 +08:00
AC_MSG_RESULT($have_glib_2_57)
2004-05-12 01:19:24 +08:00
2015-12-21 07:21:17 +08:00
AC_PATH_PROG(GEGL, gegl, no)
if test "x$GEGL" = xno; then
2018-03-10 00:39:23 +08:00
add_deps_error([gegl], [Could not find native gegl executable in your PATH.])
2015-12-21 07:21:17 +08:00
fi
2007-12-20 23:49:54 +08:00
2007-12-21 04:15:53 +08:00
# Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
2002-05-27 21:59:27 +08:00
gimp_save_LIBS=$LIBS
LIBS="$LIBS $GLIB_LIBS"
2006-12-07 19:33:26 +08:00
AC_CHECK_FUNCS(bind_textdomain_codeset,,
2015-12-29 01:56:43 +08:00
add_deps_error([bind_textdomain_codeset()],
[Check for bind_textdomain_codeset() failed! This is required.]))
2002-05-27 21:59:27 +08:00
LIBS=$gimp_save_LIBS
AC_PATH_XTRA
2019-01-31 04:43:32 +08:00
PKG_CHECK_MODULES(GTK, gtk+-3.0 >= gtk_required_version,,
[add_deps_error([gtk+-3.0 >= gtk_required_version],
[Test for GTK+ failed.])])
1997-11-25 06:05:25 +08:00
2019-06-02 21:57:42 +08:00
AC_PATH_PROGS(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache-3.0 gtk-update-icon-cache, no)
2014-05-07 02:14:39 +08:00
if test "x$GTK_UPDATE_ICON_CACHE" = xno; then
2015-12-29 01:56:43 +08:00
add_deps_error([gtk-update-icon-cache],
[Could not find gtk-update-icon-cache in your PATH.])
2014-05-07 02:14:39 +08:00
fi
2015-12-29 01:56:43 +08:00
PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-2.0 >= gdk_pixbuf_required_version,,
[add_deps_error([gdk-pixbuf-2.0 >= gdk_pixbuf_required_version])])
2003-09-10 10:56:01 +08:00
2003-03-17 01:00:40 +08:00
AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
2007-10-25 21:58:54 +08:00
if test "x$GDK_PIXBUF_CSOURCE" = xno; then
2015-12-29 01:56:43 +08:00
add_deps_error([gdk-pixbuf-csource],
[Could not find gdk-pixbuf-csource in your PATH.])
2003-03-17 01:00:40 +08:00
fi
2015-12-29 01:56:43 +08:00
PKG_CHECK_MODULES(CAIRO, cairo >= cairo_required_version,,
[add_deps_error([cairo >= cairo_required_version])])
2003-07-22 21:44:07 +08:00
2008-10-31 19:49:59 +08:00
PKG_CHECK_MODULES(PANGOCAIRO,
2015-12-29 01:56:43 +08:00
[pangocairo >= pangocairo_required_version pangoft2], :,
[add_deps_error([pangocairo >= pangocairo_required_version and pangoft2],
[We require Pango with the optional support for Cairo compiled in.])])
2008-10-27 01:39:55 +08:00
2008-10-29 15:51:51 +08:00
gimp_save_CFLAGS=$CFLAGS
2008-10-27 01:39:55 +08:00
CFLAGS="$PANGOCAIRO_CFLAGS $CFLAGS"
2014-07-23 02:20:02 +08:00
# Windows platform had a few bugs fixed in earlier fontconfig.
2018-02-25 10:16:00 +08:00
# The bugs are serious enough (for instance very slow startups at each
# GIMP start, but also slowness when closing, broken font features,
# etc.) that we should bump the requirement for Win32.
# See bugs 708110 (fontconfig 2.11.0), 703331 (2.11.1) and 782676
# (2.12.4).
2018-02-26 06:13:36 +08:00
PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= fontconfig_required_version,,
[add_deps_error([fontconfig >= fontconfig_required_version])])
2014-07-23 02:20:02 +08:00
2018-06-01 02:41:03 +08:00
AC_MSG_CHECKING([if Pango is version 1.43.0 or newer])
if $PKG_CONFIG --atleast-version=1.43.0 pango; then
have_pango_1_43=yes
2004-05-12 01:19:24 +08:00
else
2018-06-01 02:41:03 +08:00
have_pango_1_43=no
2004-05-12 01:19:24 +08:00
fi
2018-06-01 02:41:03 +08:00
AC_MSG_RESULT($have_pango_1_43)
2004-05-12 01:19:24 +08:00
2008-10-31 15:53:40 +08:00
CFLAGS="$PANGOCAIRO_CFLAGS $CFLAGS"
2004-06-14 10:34:46 +08:00
AC_MSG_CHECKING([if Pango is built with a recent fontconfig])
2011-10-17 08:22:21 +08:00
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include <fontconfig/fontconfig.h>]],
[[FcObjectSet *os; os = FcObjectSetBuild (FC_FAMILY, FC_WIDTH);]])],
[fontconfig_ok=yes],
[fontconfig_ok=no])
2004-06-14 10:34:46 +08:00
AC_MSG_RESULT($fontconfig_ok)
CFLAGS=$gimp_save_CFLAGS
if test "x$fontconfig_ok" = xno; then
AC_MSG_ERROR([
*** You have a fontconfig >= fontconfig_required_version installed on your system, but your
2008-10-31 15:53:40 +08:00
*** Pango library is using an older version. This old version is probably in
2004-06-14 10:34:46 +08:00
*** /usr/X11R6. Look at the above output, and note that the result for
2008-10-31 15:53:40 +08:00
*** FONTCONFIG_CFLAGS is not in the result for PANGOCAIRO_CFLAGS, and that
2004-06-14 10:34:46 +08:00
*** there is likely an extra -I line, other than the ones for GLIB,
*** Freetype, and Pango itself. That's where your old fontconfig files are.
*** Rebuild pango, and make sure that it uses the newer fontconfig. The
*** easiest way be sure of this is to simply get rid of the old fontconfig.
*** When you rebuild pango, make sure the result for FONTCONFIG_CFLAGS is
*** the same as the result here.])
fi
1998-11-06 08:51:39 +08:00
2008-10-27 01:39:55 +08:00
2018-03-29 18:25:27 +08:00
PKG_CHECK_MODULES(FREETYPE, freetype2 >= freetype2_required_version,,
2018-03-29 01:43:17 +08:00
[add_deps_error([freetype2_required_version >= freetype2_required_version])])
2003-07-22 21:44:07 +08:00
2015-12-29 01:56:43 +08:00
PKG_CHECK_MODULES(HARFBUZZ, harfbuzz >= harfbuzz_required_version,,
[add_deps_error([harfbuzz >= harfbuzz_required_version])])
2014-05-03 02:31:07 +08:00
2015-12-29 01:56:43 +08:00
PKG_CHECK_MODULES(GEXIV2, gexiv2 >= gexiv2_required_version,,
[add_deps_error([gexiv2 >= gexiv2_required_version])])
2003-07-22 21:44:07 +08:00
2018-08-11 01:46:16 +08:00
#################################
# Check for debug console (Win32)
#################################
AC_ARG_ENABLE(win32-debug-console,
[ --enable-win32-debug-console
open a console when starting the program
(default=auto)],,
enable_win32_debug_console=auto)
AC_MSG_CHECKING([if GIMP should open a debug console at start])
if test "x$platform_win32" != "xyes"; then
enable_win32_debug_console=no
elif test "x$enable_win32_debug_console" != xno &&
test "x$enable_win32_debug_console" != xyes; then
# By default, we enable the debug console only for unstable builds.
enable_win32_debug_console=gimp_unstable
fi
if test "x$enable_win32_debug_console" = "xyes"; then
AC_DEFINE(ENABLE_WIN32_DEBUG_CONSOLE, 1,
[Define to 1 if GIMP should open a debug console at start])
fi
AC_MSG_RESULT([$enable_win32_debug_console])
Issue #1809: update DLL directory for 32-bit plug-in run from 64-bit...
... Windows installation of GIMP.
Our default installer installs 32-bit version of the various DLLs in
32/bin/ (under the installation prefix). Currently this additional
folder is simply added in the PATH, so it works most of the time.
Unfortunately the PATH is searched last for DLLs, and in particular, it
is searched after system directories. So it means that if any misbehaved
application is installing DLLs in system dirs (and in particular
incompatible/older versions of the same DLLs a GIMP plug-in uses), it
breaks the 32-bit plug-in.
SetDllDirectoryW() bypasses this order and the set folder is searched in
between the binary directory and the system dirs. We were already
setting this for our main bin/ directory, which was good for 64-bit
plug-ins, but this was not protecting 32-bit plug-ins. Now our code to
run plug-ins check the bitness of the executable before running it, and
updates the DLL folder accordingly.
The alternative 32-bit folder can be overridden by the configure option
--with-win32-32bit-dll-folder (default: 32/bin/). This option can only
be set when building for 64-bit Windows obviously.
Alternatively we could have put copies of 32-bit DLLs in a subfolder
with each 32-bit plug-in, but this is at best a terrible workaround, as
we would duplicate DLLs for every such case. And this would not have
protected third-party plug-ins which wish to use some of our DLLs.
Last alternative is to use AddDllDirectory(), but it works since Windows
7 with a given update only. And our current official support is any
Windows since Windows 7. So we don't want to use this right now (also
I'm not sure it would actually be much better than current
implementation, and it seems to have a bit more limitations than
SetDllDirectoryW(), though I have not tested).
(cherry picked from commit 91c139f4d0d4bba7278060896300ecc866d921ee)
2018-08-15 19:52:51 +08:00
######################################
# Check for 32-bit DLLs (Win32 64-bit)
######################################
AC_ARG_WITH(win32-32bit-dll-folder,
[ --with-win32-32bit-dll-folder[=DIR]
alternative folder with 32-bit versions of DLL libraries on Windows (default: 32/bin/)],,
with_win32_32bit_dll_folder="32/bin")
AC_MSG_CHECKING([the alternative folder containing 32-bit DLLs on Windows])
if test "x$platform_win32" = "xyes"; then
case "$host_cpu" in
x86_64)
;;
*)
with_win32_32bit_dll_folder="no"
;;
esac
else
with_win32_32bit_dll_folder="no"
fi
if test "x$with_win32_32bit_dll_folder" != "xno"; then
AC_DEFINE_UNQUOTED(WIN32_32BIT_DLL_FOLDER, "$with_win32_32bit_dll_folder",
[Define if 32-bit versions of libraries are packaged in an alternative folder])
fi
AC_MSG_RESULT([$with_win32_32bit_dll_folder])
2015-08-31 21:26:51 +08:00
#####################
# Check for Dr. Mingw
#####################
2016-06-12 05:33:26 +08:00
enable_drmingw="no"
2015-08-31 21:26:51 +08:00
if test "x$platform_win32" = "xyes"; then
# Check for Dr. Mingw
AC_CHECK_LIB(exchndl, ExcHndlSetLogFileNameA,
2016-06-12 05:33:26 +08:00
[
AC_DEFINE(HAVE_EXCHNDL, 1, [Define to 1 when Dr. MingW is available])
2016-06-12 10:18:30 +08:00
LIBS="-lexchndl $LIBS"
2016-06-12 05:33:26 +08:00
enable_drmingw="yes"
],
[enable_drmingw="no (ExcHndl library missing)"]
)
2015-08-31 21:26:51 +08:00
fi
AM_CONDITIONAL(HAVE_EXCHNDL, test "x$ac_cv_lib_exchndl_ExcHndlSetLogFileNameA" = "xyes")
2018-01-29 08:42:38 +08:00
###########################
# Check for backtrace() API
###########################
AC_CHECK_HEADERS([execinfo.h])
2018-09-17 22:40:00 +08:00
#########################
# Check for Matting Levin
#########################
AC_MSG_CHECKING([for matting engine Levin])
if $GEGL --exists "gegl:matting-levin"; then
have_matting_levin=yes
else
have_matting_levin='no (missing GEGL operation "gegl:matting-levin")'
fi
AC_MSG_RESULT($have_matting_levin)
2002-05-27 21:59:27 +08:00
##########################################
# Check for some special functions we need
##########################################
1997-11-25 06:05:25 +08:00
2001-06-20 18:59:57 +08:00
AC_CHECK_HEADERS(math.h ieeefp.h)
2007-12-21 04:15:53 +08:00
# DU4 native cc currently needs -std1 for ANSI mode (instead of K&R)
1998-09-09 18:07:21 +08:00
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
gimp_save_LIBS=$LIBS
LIBS="$LIBS -lm"
2011-10-17 08:48:38 +08:00
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
#include <math.h>
int main (void) { return (log(1) != log(1.)); }]])],
[AC_MSG_RESULT(none needed)],
[gimp_save_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -std1"
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
#include <math.h>
int main (void) { return (log(1) != log(1.)); }]])],
[AC_MSG_RESULT(-std1)],
[AC_MSG_RESULT()
CFLAGS=$gimp_save_CFLAGS
AC_MSG_WARN([No ANSI prototypes found in library. (-std1 didn't work.)])],
[AC_MSG_RESULT])],
[AC_MSG_RESULT()])
1998-10-23 07:17:30 +08:00
2007-12-21 04:15:53 +08:00
# Check for finite or isfinite
2002-05-27 21:59:27 +08:00
AC_CHECK_FUNCS(finite, , [
AC_MSG_CHECKING(for finite in <math.h>)
2011-10-17 08:40:35 +08:00
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include <math.h>]],
[[double f = 0.0; finite (f)]])],
[AC_DEFINE(HAVE_FINITE, 1)
AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)
AC_MSG_CHECKING(for isfinite in <math.h>)
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include <math.h>]],
[[float f = 0.0; isfinite(f)]])],
[AC_DEFINE([HAVE_ISFINITE],[1],[Define to 1 if you have the isfinite function.])
AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])])])
2002-05-27 21:59:27 +08:00
AC_SUBST(HAVE_FINITE)
AC_SUBST(HAVE_ISFINITE)
2002-08-04 11:38:16 +08:00
LIBS=$gimp_save_LIBS
2007-12-21 04:15:53 +08:00
# check for rint
2002-05-27 21:59:27 +08:00
AC_CHECK_FUNC(rint, AC_DEFINE(HAVE_RINT, 1,
[Define to 1 if you have the rint function.]), [
AC_CHECK_LIB(m, rint, [
AC_DEFINE(HAVE_RINT)])])
2018-03-05 14:32:53 +08:00
# check for vfork
AC_CHECK_FUNCS(vfork, ,)
AC_SUBST(HAVE_VFORK)
2017-06-01 09:56:07 +08:00
##############################
# Check for attributes we need
##############################
AX_GCC_FUNC_ATTRIBUTE(destructor)
2010-07-09 18:18:51 +08:00
#####################################################################
# Check for extra libs needed for getaddrinfo, getnameinfo and socket
#####################################################################
2002-05-30 20:47:11 +08:00
gimp_save_LIBS=$LIBS
LIBS=""
2010-07-09 18:18:51 +08:00
AC_CHECK_FUNCS(getaddrinfo, , AC_CHECK_LIB(nsl, getaddrinfo))
2010-06-29 21:43:31 +08:00
AC_CHECK_FUNCS(getnameinfo, , AC_CHECK_LIB(nsl, getnameinfo))
2002-05-30 20:47:11 +08:00
AC_CHECK_LIB(socket, socket)
SOCKET_LIBS="$LIBS"
LIBS=$gimp_save_LIBS
AC_SUBST(SOCKET_LIBS)
2013-06-25 18:25:19 +08:00
###################################
# Check for Intel vector intrinsics
###################################
intrinsics_save_CFLAGS="$CFLAGS"
2018-04-19 02:57:03 +08:00
#FIXME: Check the CFLAGS separately
2013-06-25 18:25:19 +08:00
GIMP_DETECT_CFLAGS(SSE_MATH_CFLAG, '-mfpmath=sse')
GIMP_DETECT_CFLAGS(SSE2_CFLAG, '-msse2')
SSE2_EXTRA_CFLAGS="$SSE_MATH_CFLAG $SSE2_CFLAG"
CFLAGS="$intrinsics_save_CFLAGS $SSE2_EXTRA_CFLAGS"
AC_MSG_CHECKING(whether we can compile SSE2 intrinsics)
2017-02-03 03:06:24 +08:00
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <emmintrin.h>]],[[__m128i one = _mm_set1_epi32 (1);]])],
2013-06-25 18:25:19 +08:00
AC_DEFINE(COMPILE_SSE2_INTRINISICS, 1, [Define to 1 if SSE2 intrinsics are available.])
AC_SUBST(SSE2_EXTRA_CFLAGS)
AC_MSG_RESULT(yes)
,
AC_MSG_RESULT(no)
AC_MSG_WARN([SSE2 intrinsics not available.])
)
GIMP_DETECT_CFLAGS(SSE4_1_CFLAG, '-msse4.1')
SSE4_1_EXTRA_CFLAGS="$SSE_MATH_CFLAG $SSE4_1_CFLAG"
CFLAGS="$intrinsics_save_CFLAGS $SSE4_1_EXTRA_CFLAGS"
AC_MSG_CHECKING(whether we can compile SSE4.1 intrinsics)
2017-02-03 03:06:24 +08:00
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <smmintrin.h>]],[[__v4sf a, b, c; c = _mm_blend_ps(a, b, 0x08);]])],
2013-06-25 18:25:19 +08:00
AC_DEFINE(COMPILE_SSE4_1_INTRINISICS, 1, [Define to 1 if SSE4.1 intrinsics are available.])
AC_SUBST(SSE4_1_EXTRA_CFLAGS)
AC_MSG_RESULT(yes)
,
AC_MSG_RESULT(no)
AC_MSG_WARN([SSE4.1 intrinsics not available.])
)
CFLAGS="$intrinsics_save_CFLAGS"
2002-05-30 20:47:11 +08:00
2002-05-27 21:59:27 +08:00
########################
# Check for MMX assembly
########################
1998-03-16 14:33:58 +08:00
2003-07-04 08:31:05 +08:00
AC_ARG_ENABLE(mmx,
[ --enable-mmx enable MMX support (default=auto)],,
enable_mmx=$have_x86)
AC_ARG_ENABLE(sse,
[ --enable-sse enable SSE support (default=auto)],,
2003-07-04 20:13:18 +08:00
enable_sse=$enable_mmx)
2003-07-04 08:31:05 +08:00
if test "x$enable_mmx" = xyes; then
2005-08-01 12:45:34 +08:00
GIMP_DETECT_CFLAGS(MMX_EXTRA_CFLAGS, '-mmmx')
SSE_EXTRA_CFLAGS=
2003-07-04 08:31:05 +08:00
2003-07-04 17:12:12 +08:00
AC_MSG_CHECKING(whether we can compile MMX code)
2003-07-04 08:31:05 +08:00
2005-08-01 12:45:34 +08:00
mmx_save_CFLAGS="$CFLAGS"
CFLAGS="$mmx_save_CFLAGS $MMX_EXTRA_CFLAGS"
2007-04-25 21:36:47 +08:00
2017-02-03 03:06:24 +08:00
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[asm ("movq 0, %mm0");]])],
2003-07-14 18:33:53 +08:00
2003-07-04 08:31:05 +08:00
AC_DEFINE(USE_MMX, 1, [Define to 1 if MMX assembly is available.])
AC_MSG_RESULT(yes)
2003-07-04 20:13:18 +08:00
if test "x$enable_sse" = xyes; then
2005-08-01 12:45:34 +08:00
GIMP_DETECT_CFLAGS(sse_flag, '-msse')
SSE_EXTRA_CFLAGS="$MMX_EXTRA_CFLAGS $sse_flag"
2003-07-04 20:13:18 +08:00
AC_MSG_CHECKING(whether we can compile SSE code)
2005-08-01 12:45:34 +08:00
CFLAGS="$CFLAGS $sse_flag"
2017-02-03 03:06:24 +08:00
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[asm ("movntps %xmm0, 0");]])],
2003-07-04 20:13:18 +08:00
AC_DEFINE(USE_SSE, 1, [Define to 1 if SSE assembly is available.])
AC_MSG_RESULT(yes)
2003-07-14 18:33:53 +08:00
,
2003-07-04 20:13:18 +08:00
enable_sse=no
AC_MSG_RESULT(no)
AC_MSG_WARN([The assembler does not support the SSE command set.])
2003-07-14 18:33:53 +08:00
)
2003-07-04 08:31:05 +08:00
2001-02-11 05:14:54 +08:00
fi
2003-07-14 18:33:53 +08:00
,
2003-07-04 08:31:05 +08:00
enable_mmx=no
AC_MSG_RESULT(no)
2003-07-04 20:13:18 +08:00
AC_MSG_WARN([The assembler does not support the MMX command set.])
2003-07-14 18:33:53 +08:00
)
2003-07-04 08:31:05 +08:00
2005-08-01 12:45:34 +08:00
CFLAGS="$mmx_save_CFLAGS"
AC_SUBST(MMX_EXTRA_CFLAGS)
AC_SUBST(SSE_EXTRA_CFLAGS)
2001-02-11 05:14:54 +08:00
fi
2003-07-04 08:31:05 +08:00
2003-07-05 01:28:56 +08:00
############################
2005-03-06 16:43:25 +08:00
# Check for AltiVec assembly
2003-07-05 01:28:56 +08:00
############################
AC_ARG_ENABLE(altivec,
2005-03-06 16:43:25 +08:00
[ --enable-altivec enable AltiVec support (default=auto)],,
2003-07-05 01:28:56 +08:00
enable_altivec=$have_ppc)
if test "x$enable_altivec" = xyes; then
2005-03-06 18:30:21 +08:00
2005-08-01 12:45:34 +08:00
GIMP_DETECT_CFLAGS(altivec_flag, '-faltivec' '-maltivec -mabi=altivec')
2005-03-06 18:30:21 +08:00
ALTIVEC_EXTRA_CFLAGS=
case "$altivec_flag" in
-maltivec*)
altivec_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$altivec_save_CPPFLAGS $altivec_flag"
AC_CHECK_HEADERS(altivec.h, [ALTIVEC_EXTRA_CFLAGS="$altivec_flag"])
CPPFLAGS="$altivec_save_CPPFLAGS"
;;
*)
ALTIVEC_EXTRA_CFLAGS="$altivec_flag"
;;
esac
2005-03-06 16:43:25 +08:00
AC_SUBST(ALTIVEC_EXTRA_CFLAGS)
2003-07-05 01:28:56 +08:00
2005-03-06 16:43:25 +08:00
AC_MSG_CHECKING(whether we can compile AltiVec code)
2003-07-05 01:28:56 +08:00
2005-03-06 18:30:21 +08:00
can_use_altivec=no
2005-03-06 16:43:25 +08:00
if test -z "$ALTIVEC_EXTRA_CFLAGS"; then
2003-07-05 01:28:56 +08:00
AC_MSG_RESULT(no)
2005-03-06 18:35:21 +08:00
AC_MSG_WARN([The compiler does not support the AltiVec command set.])
2005-03-06 16:43:25 +08:00
else
2016-06-10 01:46:54 +08:00
case "$host_os" in
darwin*)
2005-03-06 16:43:25 +08:00
can_use_altivec=yes
AC_DEFINE(HAVE_ALTIVEC_SYSCTL, 1,
[Define to 1 if the altivec runtime test should use a sysctl.])
;;
*)
2017-02-03 03:06:24 +08:00
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[asm ("vand %v0, %v0, %v0");]])],
2005-03-06 16:43:25 +08:00
can_use_altivec=yes, can_use_altivec=no)
;;
esac
AC_MSG_RESULT($can_use_altivec)
2003-07-05 01:28:56 +08:00
2005-03-06 16:43:25 +08:00
if test "x$can_use_altivec" = "xyes"; then
AC_DEFINE(USE_ALTIVEC, 1, [Define to 1 if AltiVec support is available.])
else
enable_altivec=no
AC_MSG_WARN([The assembler does not support the AltiVec command set.])
fi
fi
2005-03-06 18:30:21 +08:00
enable_altivec="$can_use_altivec"
2003-07-05 01:28:56 +08:00
fi
2001-02-11 05:14:54 +08:00
2001-11-25 08:19:38 +08:00
2002-05-27 21:59:27 +08:00
###################################
# Checks for shared memory handling
###################################
2003-07-04 17:12:12 +08:00
2007-12-21 04:15:53 +08:00
# MacOS X has broken SysV shm
2016-06-10 01:46:54 +08:00
case "$host_os" in
darwin* | rhapsody* | machten*)
2003-12-27 16:07:15 +08:00
shmdefault=posix
2003-01-14 12:23:25 +08:00
;;
*)
shmdefault=sysv
;;
esac
shmtype=auto
2003-12-27 16:07:15 +08:00
AC_ARG_WITH(shm, [ --with-shm=none|sysv|posix|auto shared memory transport type (default=auto)], shmtype=$with_shm)
2003-01-14 12:23:25 +08:00
case $shmtype in
2003-12-27 16:07:15 +08:00
none|sysv|posix) ;;
2003-01-14 12:23:25 +08:00
auto) shmtype=$shmdefault ;;
2003-12-27 16:07:15 +08:00
*) AC_MSG_ERROR([Invalid shared memory transport type: use none, sysv, posix, or auto.]);;
2003-01-14 12:23:25 +08:00
esac
2003-12-27 16:07:15 +08:00
if test "x$platform_win32" = "xyes"; then
shmtype=win32
elif test "x$shmtype" = "xsysv"; then
2003-01-14 12:23:25 +08:00
AC_CHECK_HEADER(sys/ipc.h,
[AC_DEFINE(HAVE_IPC_H, 1,
2004-01-04 06:41:09 +08:00
[Define to 1 if you have the <sys/ipc.h> header file.])],
2003-01-14 12:23:25 +08:00
no_sys_ipc=yes)
AC_CHECK_HEADER(sys/shm.h,
[AC_DEFINE(HAVE_SHM_H, 1,
[Define to 1 if you have the <sys/shm.h> header file.])],
no_sys_shm=yes)
2003-12-27 16:07:15 +08:00
2003-01-14 12:23:25 +08:00
if test "$ac_cv_header_sys_shm_h" = "yes"; then
AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches)
2011-10-17 08:48:38 +08:00
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
1997-11-25 06:05:25 +08:00
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
int main()
{
int id;
char *shmaddr;
2002-06-13 20:02:06 +08:00
id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0600);
1997-11-25 06:05:25 +08:00
if (id == -1)
exit (2);
shmaddr = shmat (id, 0, 0);
shmctl (id, IPC_RMID, 0);
if ((char*) shmat (id, 0, 0) == (char*) -1)
{
shmdt (shmaddr);
exit (1);
}
shmdt (shmaddr);
shmdt (shmaddr);
exit (0);
}
2011-10-17 08:48:38 +08:00
]])],
[AC_DEFINE([IPC_RMID_DEFERRED_RELEASE],[1],
[Define to 1 if shared memory segments are released deferred.])
AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)],
[AC_MSG_RESULT(assuming no)])
2003-12-27 16:07:15 +08:00
AC_DEFINE(USE_SYSV_SHM, 1, [Define to 1 to use SYSV shared memory])
else
shmtype=none
fi
elif test "x$shmtype" = "xposix"; then
2004-01-04 06:41:09 +08:00
have_shm_open=no
AC_CHECK_FUNC(shm_open, have_shm_open=yes)
RT_LIBS=
if test "$have_shm_open" != "yes"; then
2004-01-04 06:50:00 +08:00
AC_CHECK_LIB(rt, shm_open, RT_LIBS="-lrt" have_shm_open=yes)
2004-01-04 06:41:09 +08:00
fi
AC_SUBST(RT_LIBS)
2003-12-27 16:07:15 +08:00
AC_CHECK_HEADER(sys/mman.h,
[AC_DEFINE(HAVE_MMAN_H, 1,
2004-01-04 06:41:09 +08:00
[Define to 1 if you have the <sys/mman.h> header file.])],
2003-12-27 16:07:15 +08:00
no_sys_mman=yes)
if test "$ac_cv_func_mmap" = "yes" &&
2004-01-04 06:41:09 +08:00
test "$ac_cv_header_sys_mman_h" = "yes" &&
test "$have_shm_open" = "yes"; then
2003-12-27 16:07:15 +08:00
AC_DEFINE(USE_POSIX_SHM, 1, [Define to 1 to use POSIX shared memory])
else
shmtype=none
2003-01-14 12:23:25 +08:00
fi
1997-11-25 06:05:25 +08:00
fi
2003-12-27 16:07:15 +08:00
AC_MSG_CHECKING(for shared memory transport type)
AC_MSG_RESULT($shmtype)
2002-05-27 21:59:27 +08:00
2004-05-02 01:45:33 +08:00
2003-11-15 19:27:34 +08:00
########################
# Define a symbol prefix
########################
AC_MSG_CHECKING([whether symbols are prefixed])
2003-11-25 00:37:16 +08:00
case "$host_os" in
mingw*)
2010-09-27 18:22:54 +08:00
case "$host_cpu" in
x86_64) SYMPREFIX='' ;;
*) SYMPREFIX='_' ;;
esac
2003-11-15 19:27:34 +08:00
;;
darwin* | rhapsody* | machten*)
SYMPREFIX='_'
;;
*)
;;
esac
if test -n "$SYMPREFIX"; then
AC_MSG_RESULT([yes, with a $SYMPREFIX])
else
AC_MSG_RESULT(no)
fi
AC_SUBST(SYMPREFIX)
2002-05-27 21:59:27 +08:00
############################
# Check for select and fdset
############################
1997-11-25 06:05:25 +08:00
2007-10-25 21:58:54 +08:00
if test "x$os_win32" != xyes; then
2005-05-13 20:50:35 +08:00
AC_MSG_CHECKING([fd_set and sys/select])
2011-10-17 08:22:21 +08:00
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include <sys/types.h>]],
[[fd_set readMask, writeMask;]])],
[gimp_ok=yes],
[gimp_ok=no])
2007-10-25 21:58:54 +08:00
if test "x$gimp_ok" = xno; then
2005-05-13 20:50:35 +08:00
AC_EGREP_HEADER(fd_mask, sys/select.h, gimp_ok=yes)
2007-10-25 21:58:54 +08:00
if test "x$gimp_ok" = xyes; then
2005-05-13 20:50:35 +08:00
AC_DEFINE(HAVE_SYS_SELECT_H, 1,
[Define to 1 if you have the <sys/select.h> header.])
fi
fi
AC_MSG_RESULT($gimp_ok)
2007-10-25 21:58:54 +08:00
if test "x$gimp_ok" = xno; then
2005-05-13 20:50:35 +08:00
AC_DEFINE(NO_FD_SET, 1,
[Define to 1 if you don't have the fd_set typedef.])
fi
1997-11-25 06:05:25 +08:00
fi
2007-09-18 22:39:52 +08:00
2002-05-27 21:59:27 +08:00
#############################
2007-04-25 21:36:47 +08:00
# Threads and multi processor
2002-05-27 21:59:27 +08:00
#############################
1998-07-14 14:15:10 +08:00
2005-02-13 23:08:08 +08:00
AC_ARG_ENABLE(mp, [ --disable-mp disable support for multiple processors])
2008-08-21 23:56:32 +08:00
2005-02-11 20:43:44 +08:00
if test "x$enable_mp" != "xno"; then
2007-06-25 20:41:59 +08:00
AC_DEFINE(ENABLE_MP, 1,
[Define to 1 to enable support for multiple processors.])
2002-03-03 02:04:05 +08:00
fi
2008-08-21 23:56:32 +08:00
2002-05-27 21:59:27 +08:00
################################
# Some plug-ins are X11 specific
################################
2002-03-03 02:04:05 +08:00
2007-12-21 04:15:53 +08:00
# Check if building for GTK+-X11
2011-02-17 03:49:33 +08:00
GTK_CHECK_BACKEND([x11], [gtk_required_version],
[have_gtk_x11=yes], [have_gtk_x11=no])
2007-10-31 18:34:42 +08:00
2011-02-17 03:49:33 +08:00
have_libxmu="no (building for `pkg-config --variable=targets gtk+-3.0`)"
2008-07-11 21:09:02 +08:00
2011-02-17 03:49:33 +08:00
if test "x$have_gtk_x11" = "xyes"; then
2005-03-25 07:29:12 +08:00
2007-12-21 04:15:53 +08:00
# doc-shooter is X11 specific
2005-07-04 16:18:22 +08:00
DOC_SHOOTER=doc-shooter
2012-09-11 00:22:12 +08:00
# screenshot plug-in needs to link to X11 explicitly
2008-08-11 22:40:48 +08:00
SCREENSHOT_LIBS="$X_LIBS -lX11"
2007-10-31 18:34:42 +08:00
2007-02-26 18:20:22 +08:00
gimp_save_CFLAGS="$CFLAGS"
gimp_save_LDFLAGS="$LDFLAGS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
LDFLAGS="$LDFLAGS $X_LIBS"
2007-12-21 04:15:53 +08:00
# Test for Xmu
2008-08-11 22:40:48 +08:00
if test -z "$XMU_LIBS"; then
2002-03-03 02:04:05 +08:00
AC_CHECK_LIB(Xmu, XmuClientWindow,
2004-04-13 02:25:57 +08:00
[AC_CHECK_HEADERS(X11/Xmu/WinUtil.h,
2003-06-09 23:29:20 +08:00
have_libxmu=yes
2010-10-08 00:19:24 +08:00
XMU_LIBS="$X_LIBS $X_PRE_LIBS -lX11 -lXmu -lXt"
SCREENSHOT_LIBS="$XMU_LIBS",
2008-07-11 21:09:02 +08:00
[have_libxmu="no (XMU header file not found)"],[#include <gdk/gdkx.h>])],
[have_libxmu="no (XMU library not found)"], -lXt -lX11)
2007-01-19 22:50:13 +08:00
fi
2007-02-26 18:20:22 +08:00
2007-12-21 04:15:53 +08:00
# Check for shaped window extension
2007-02-26 18:20:22 +08:00
AC_CHECK_LIB(Xext, XShapeGetRectangles,
[AC_CHECK_HEADERS(X11/extensions/shape.h,
2008-08-11 22:40:48 +08:00
SCREENSHOT_LIBS="$SCREENSHOT_LIBS -lXext",,[#include <gdk/gdkx.h>])],,
2007-02-26 18:20:22 +08:00
-lX11 -lXext)
CFLAGS="$gimp_save_CFLAGS"
LDFLAGS="$gimp_save_LDFLAGS"
2007-10-31 18:34:42 +08:00
2007-12-21 04:15:53 +08:00
# check for the XFixes extension
2007-10-31 18:34:42 +08:00
PKG_CHECK_MODULES(XFIXES, xfixes,
AC_DEFINE(HAVE_XFIXES, 1,
[Define to 1 to if the XFIXES X extension is available])
2008-08-11 22:40:48 +08:00
SCREENSHOT_LIBS="$SCREENSHOT_LIBS $XFIXES_LIBS",
2008-06-15 22:30:04 +08:00
true)
2003-05-27 09:41:42 +08:00
fi
2002-03-03 02:04:05 +08:00
2008-08-11 22:40:48 +08:00
AC_SUBST(XMU_LIBS)
AC_SUBST(SCREENSHOT_LIBS)
2006-12-20 22:30:59 +08:00
2005-07-04 16:18:22 +08:00
AC_SUBST(DOC_SHOOTER)
2002-05-27 21:59:27 +08:00
2008-07-11 21:09:02 +08:00
2011-07-31 00:59:39 +08:00
GIMP_COMMAND='gimp-gimp_app_version'
2008-07-11 21:09:02 +08:00
2006-12-20 22:30:59 +08:00
AC_SUBST(GIMP_COMMAND)
2002-05-27 21:59:27 +08:00
2008-01-06 21:53:14 +08:00
############
# MIME types
############
# The list of MIME types that are supported by plug-ins that are compiled
# unconditionally:
2013-01-27 18:08:44 +08:00
MIME_TYPES="image/bmp;image/g3fax;image/gif;image/x-fits;image/x-pcx;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-psd;image/x-sgi;image/x-tga;image/x-xbitmap;image/x-xwindowdump;image/x-xcf;image/x-compressed-xcf;image/x-gimp-gbr;image/x-gimp-pat;image/x-gimp-gih"
2008-01-06 21:53:14 +08:00
2018-06-27 05:19:25 +08:00
#################
# Bundle packages
#################
AC_MSG_CHECKING([whether we build a relocatable package])
AC_ARG_ENABLE(relocatable-bundle,
[ --enable-relocatable-bundle
build with resources considered bundled under the same prefix
(default=auto)],,
enable_relocatable_bundle=auto)
if test "x$enable_relocatable_bundle" != xno &&
test "x$enable_relocatable_bundle" != xyes; then
# By default, assume building for Windows or macOS everything to be on
# the same prefix and can be relocated.
# On other platforms, build-time paths are meaningful.
if test "x$platform_osx" = "xyes" ||
test "x$platform_win32" = "xyes"; then
enable_relocatable_bundle=yes
else
enable_relocatable_bundle=no
fi
fi
if test "x$enable_relocatable_bundle" = xyes; then
AC_DEFINE(ENABLE_RELOCATABLE_RESOURCES, 1,
[Define to 1 if resources are considered bundled under the same prefix])
fi
2019-02-05 21:21:23 +08:00
AM_CONDITIONAL(ENABLE_RELOCATABLE_RESOURCES, test x$enable_relocatable_bundle = xyes)
2018-06-27 05:19:25 +08:00
AC_MSG_RESULT([$enable_relocatable_bundle])
2008-01-06 21:53:14 +08:00
2002-05-27 21:59:27 +08:00
###################
# Check for libtiff
###################
2017-06-28 03:10:38 +08:00
libtiff_error=
2015-12-02 19:33:31 +08:00
if test -z "$TIFF_LIBS"; then
2008-08-21 23:56:32 +08:00
AC_CHECK_LIB(tiff, TIFFReadScanline,
[AC_CHECK_HEADER(tiffio.h,
FILE_TIFF_LOAD='file-tiff-load$(EXEEXT)'; FILE_TIFF_SAVE='file-tiff-save$(EXEEXT)'; TIFF_LIBS='-ltiff',
2017-06-28 03:10:38 +08:00
[libtiff_error="TIFF header files not found"])],
2008-08-21 23:56:32 +08:00
[AC_CHECK_LIB(tiff, TIFFWriteScanline,
2002-03-03 02:04:05 +08:00
[AC_CHECK_HEADER(tiffio.h,
2008-08-21 23:56:32 +08:00
FILE_TIFF_LOAD='file-tiff-load$(EXEEXT)'; FILE_TIFF_SAVE='file-tiff-save$(EXEEXT)'; TIFF_LIBS='-ltiff -ljpeg -lz',
2017-06-28 03:10:38 +08:00
[libtiff_error="TIFF header files not found"])],
2008-08-21 23:56:32 +08:00
[AC_CHECK_LIB(tiff34, TIFFFlushData,
2002-03-03 02:04:05 +08:00
[AC_CHECK_HEADER(tiffio.h,
2008-08-21 23:56:32 +08:00
FILE_TIFF_LOAD='file-tiff-load$(EXEEXT)'; FILE_TIFF_SAVE='file-tiff-save$(EXEEXT)'; TIFF_LIBS='-ltiff34 -ljpeg -lz',
2017-06-28 03:10:38 +08:00
[libtiff_error="TIFF header files not found"])],
[libtiff_error="TIFF library not found"], -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
2008-08-21 23:56:32 +08:00
fi
2002-03-03 02:04:05 +08:00
2015-12-02 19:33:31 +08:00
if test -z "$TIFF_LIBS"; then
2017-06-28 03:10:38 +08:00
add_deps_error([libtiff], [Checks for TIFF library failed: $libtiff_error])
2008-08-21 23:56:32 +08:00
fi
2002-03-03 02:04:05 +08:00
2015-12-02 19:33:31 +08:00
MIME_TYPES="$MIME_TYPES;image/tiff"
2008-01-06 21:53:14 +08:00
2008-08-11 22:40:48 +08:00
AC_SUBST(TIFF_LIBS)
2002-05-27 21:59:27 +08:00
###################
# Check for libjpeg
###################
2002-03-03 02:04:05 +08:00
2018-08-30 00:24:48 +08:00
PKG_CHECK_MODULES(JPEG, [libjpeg],, [add_deps_error([libjpeg])])
2013-11-03 05:32:18 +08:00
MIME_TYPES="$MIME_TYPES;image/jpeg"
2008-01-06 21:53:14 +08:00
2008-01-06 20:09:38 +08:00
2002-05-27 21:59:27 +08:00
################
# Check for libz
################
2008-08-11 22:40:48 +08:00
if test -z "$Z_LIBS"; then
2002-05-27 21:59:27 +08:00
AC_CHECK_LIB(z, gzsetparams,
[AC_CHECK_HEADER(zlib.h,
2014-02-16 23:24:34 +08:00
Z_LIBS='-lz',
2015-12-29 01:56:43 +08:00
add_deps_error([zlib], [ZLIB header files not found]))],
add_deps_error([zlib], [ZLIB library not found]))
2002-05-27 21:59:27 +08:00
fi
2014-02-16 23:24:34 +08:00
MIME_TYPES="$MIME_TYPES;image/x-psp"
2012-01-11 22:56:04 +08:00
2008-08-11 22:40:48 +08:00
AC_SUBST(Z_LIBS)
2002-05-27 21:59:27 +08:00
2012-01-11 21:59:32 +08:00
####################
# Check for libbzip2
####################
2014-08-19 12:03:09 +08:00
gimp_save_LIBS=$LIBS
LIBS="$LIBS -lbz2"
2014-02-16 23:42:46 +08:00
if test -z "$BZIP2_LIBS"; then
2014-08-19 12:03:09 +08:00
# We used to use AC_CHECK_LIB, but bz2 uses the WINAPI calling convention on
# windows, so the test needs to #include <bzlib.h> to be able to link properly
AC_CHECK_HEADER(bzlib.h,
[AC_MSG_CHECKING([for BZ2_bzCompress in -lbz2]);
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
2017-02-03 03:06:24 +08:00
[[#include <bzlib.h>]],
[[BZ2_bzCompress (NULL, 0);]])],
2014-08-19 12:03:09 +08:00
[AC_MSG_RESULT([yes]); BZIP2_LIBS='-lbz2'],
2015-12-29 01:56:43 +08:00
add_deps_error([libbzip2], [libbzip2 library not found]))],
add_deps_error([libbzip2], [libbzip2 header files not found]))
2012-01-11 21:59:32 +08:00
fi
2014-08-19 12:03:09 +08:00
LIBS=$gimp_save_LIBS
2012-01-11 21:59:32 +08:00
AC_SUBST(BZIP2_LIBS)
2012-09-02 07:02:04 +08:00
###################
# Check for liblzma
###################
2015-12-29 01:56:43 +08:00
PKG_CHECK_MODULES(LZMA, liblzma >= liblzma_required_version,,
[add_deps_error([liblzma >= liblzma_required_version])])
2012-01-11 21:59:32 +08:00
2012-01-22 11:44:31 +08:00
2019-04-13 00:27:38 +08:00
#############################
# Check for extension support
#############################
2018-07-01 15:10:54 +08:00
PKG_CHECK_MODULES(APPSTREAM_GLIB, appstream-glib >= appstream_glib_required_version,,
2019-04-13 00:27:38 +08:00
[add_deps_error([appstream-glib >= appstream_glib_required_version])])
2018-07-01 15:10:54 +08:00
2019-04-13 00:27:38 +08:00
PKG_CHECK_MODULES(LIBARCHIVE, libarchive,,
[add_deps_error([libarchive])])
2018-07-01 15:10:54 +08:00
2012-01-22 11:44:31 +08:00
###############################
# Check for Ghostscript library
###############################
2012-03-14 20:40:19 +08:00
AC_ARG_WITH(gs, [ --without-gs build without Ghostscript support])
have_gs=no
if test "x$with_gs" != xno; then
have_gs=yes
2012-01-22 11:44:31 +08:00
AC_CHECK_LIB(gs, gsapi_new_instance,
[AC_CHECK_HEADER(ghostscript/iapi.h,
FILE_PS='file-ps$(EXEEXT)'; GS_LIBS='-lgs',
[have_gs="no (Ghostscript header files not found)"])],
[have_gs="no (Ghostscript library not found)"])
2012-03-14 20:40:19 +08:00
if test "x$have_gs" != xyes -a "x$with_gs" = xyes; then
AC_MSG_ERROR([
*** Checks for Ghostscript library failed. You can build without it by passing
2017-01-29 08:05:32 +08:00
*** --without-gs to configure but you won't be able to use PostScript files then.])
2012-03-14 20:40:19 +08:00
fi
2012-01-22 11:44:31 +08:00
fi
2012-12-30 23:43:50 +08:00
if test "x$have_gs" = xyes; then
MIME_TYPES="$MIME_TYPES;application/postscript"
fi
2012-01-22 11:44:31 +08:00
AC_SUBST(FILE_PS)
AM_CONDITIONAL(HAVE_GS, test "x$have_gs" = xyes)
AC_SUBST(GS_LIBS)
2002-05-27 21:59:27 +08:00
##################
# Check for libpng
##################
2015-12-29 01:56:43 +08:00
PKG_CHECK_MODULES(PNG, libpng >= libpng_required_version,,
[add_deps_error([libpng >= libpng_required_version])])
2008-08-21 23:56:32 +08:00
2013-11-03 00:11:21 +08:00
MIME_TYPES="$MIME_TYPES;image/png;image/x-icon"
PNG_CFLAGS="$PNG_CFLAGS -DPNG_PEDANTIC_WARNINGS"
2006-10-16 21:37:34 +08:00
2002-03-03 02:04:05 +08:00
2003-03-31 06:06:46 +08:00
##################
# Check for libmng
##################
AC_ARG_WITH(libmng, [ --without-libmng build without MNG support])
2008-08-21 23:56:32 +08:00
2008-09-24 03:26:37 +08:00
have_libmng=no
2008-08-21 23:56:32 +08:00
if test "x$with_libmng" != xno && test -z "$MNG_LIBS" &&
test -n "$PNG_LIBS" && test -n "$JPEG_LIBS" && test -n "$Z_LIBS"; then
AC_CHECK_LIB(mng, mng_create,
[AC_CHECK_HEADER(libmng.h, mng_ok=yes)],
[have_libmng="no (MNG library not found)"], -lz -lm)
if test "$mng_ok" = yes; then
2008-09-24 03:26:37 +08:00
have_libmng=yes
2011-05-05 12:18:02 +08:00
FILE_MNG='file-mng$(EXEEXT)'; MNG_LIBS="-lmng $JPEG_LIBS $PNG_LIBS"; MNG_CFLAGS="$PNG_CFLAGS"
2017-06-04 13:09:27 +08:00
if test "x$platform_win32" = "xyes"; then
MNG_CFLAGS="$MNG_CFLAGS -DMNG_USE_DLL"
fi
2008-08-21 23:56:32 +08:00
else
have_libmng="no (MNG header file not found)"
2003-03-31 06:06:46 +08:00
fi
2008-08-21 23:56:32 +08:00
fi
2003-03-31 06:06:46 +08:00
2008-08-11 18:06:13 +08:00
AC_SUBST(FILE_MNG)
2008-08-11 22:40:48 +08:00
AC_SUBST(MNG_LIBS)
2011-05-05 12:18:02 +08:00
AC_SUBST(MNG_CFLAGS)
2003-03-31 06:06:46 +08:00
2002-05-27 21:59:27 +08:00
#################
# Check for libaa
#################
2000-04-16 05:50:19 +08:00
2008-08-21 23:56:32 +08:00
AC_ARG_WITH(aa, [ --without-aa do not build the AA plug-in])
2003-07-20 20:40:30 +08:00
2006-01-30 04:17:31 +08:00
have_libaa=no
2008-08-11 22:40:48 +08:00
if test "x$with_aa" != xno && test -z "$AA_LIBS"; then
2006-01-30 04:17:31 +08:00
have_libaa=yes
2002-05-27 21:59:27 +08:00
AC_CHECK_LIB(aa, aa_printf,
[AC_CHECK_HEADER(aalib.h,
2008-08-11 22:40:48 +08:00
FILE_AA='file-aa$(EXEEXT)'; AA_LIBS='-laa',
2006-01-30 04:17:31 +08:00
[have_libaa="no (AA header file not found)"])],
[have_libaa="no (AA library not found)"])
2002-05-27 21:59:27 +08:00
fi
2000-04-16 05:50:19 +08:00
2008-08-11 18:06:13 +08:00
AC_SUBST(FILE_AA)
2008-08-11 22:40:48 +08:00
AC_SUBST(AA_LIBS)
1999-01-23 07:46:44 +08:00
2000-10-15 06:15:11 +08:00
2002-05-27 21:59:27 +08:00
##################
# Check for libxpm
##################
2002-03-08 20:36:40 +08:00
2010-05-30 04:16:08 +08:00
AC_ARG_WITH(libxpm, [ --without-libxpm build without XPM support])
2002-09-18 20:20:55 +08:00
gimp_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $X_CFLAGS"
2002-05-27 21:59:27 +08:00
gimp_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $X_LIBS"
2011-02-17 03:49:33 +08:00
if test "x$have_gtk_x11" = "xyes"; then
2002-05-27 21:59:27 +08:00
lib_X11=-lX11
2002-03-08 20:36:40 +08:00
fi
2010-05-30 04:16:08 +08:00
have_libxpm=no
if test "x$with_libxpm" != xno && test -z "$XPM_LIBS"; then
have_libxpm=yes
2002-05-27 21:59:27 +08:00
AC_CHECK_LIB(Xpm, XpmReadFileToXpmImage,
[AC_CHECK_HEADER(X11/xpm.h,
2008-08-11 22:40:48 +08:00
FILE_XPM='file-xpm$(EXEEXT)'; XPM_LIBS="$X_LIBS $X_PRE_LIBS $lib_X11 -lXpm",
2006-01-30 04:17:31 +08:00
[have_libxpm="no (XPM header file not found)"])],
[have_libxpm="no (XPM library not found)"], $X_PRE_LIBS $lib_X11)
2001-12-10 00:18:15 +08:00
fi
2002-09-18 20:20:55 +08:00
CFLAGS="$gimp_save_CFLAGS"
2002-05-27 21:59:27 +08:00
LDFLAGS="$gimp_save_LDFLAGS"
2000-02-03 09:47:15 +08:00
2008-01-06 21:53:14 +08:00
if test "x$have_libxpm" = xyes; then
MIME_TYPES="$MIME_TYPES;image/x-xpixmap"
fi
2008-08-11 18:06:13 +08:00
AC_SUBST(FILE_XPM)
2008-08-11 22:40:48 +08:00
AC_SUBST(XPM_LIBS)
2000-02-03 09:47:15 +08:00
2002-03-08 20:36:40 +08:00
2013-05-04 09:55:49 +08:00
###################
# Check for OpenEXR
###################
AC_ARG_WITH(openexr, [ --without-openexr build without OpenEXR support])
have_openexr=no
if test "x$with_openexr" != xno; then
have_openexr=yes
PKG_CHECK_MODULES(OPENEXR, OpenEXR >= openexr_required_version,
FILE_EXR='file-exr$(EXEEXT)',
[have_openexr="no (OpenEXR not found)"])
fi
if test "x$have_openexr" = xyes; then
MIME_TYPES="$MIME_TYPES;image/x-exr"
fi
AC_SUBST(OPENEXR_CFLAGS)
AC_SUBST(OPENEXR_LIBS)
AC_SUBST(FILE_EXR)
AM_CONDITIONAL(HAVE_OPENEXR, test "x$have_openexr" = xyes)
2015-12-22 04:39:48 +08:00
2016-08-09 04:39:30 +08:00
################
# Check for WebP
################
AC_ARG_WITH(webp, [ --without-webp build without WebP support])
have_webp=no
if test "x$with_webp" != xno; then
have_webp=yes
2017-08-02 01:19:18 +08:00
PKG_CHECK_MODULES(WEBP, libwebp >= webp_required_version,
[
PKG_CHECK_MODULES(WEBPMUX, libwebpmux >= webp_required_version,
[
PKG_CHECK_MODULES(WEBPDEMUX, libwebpdemux >= webp_required_version,,
[have_webp="no (WebP not built with libwebpdemux)"])
],
[have_webp="no (WebP not built with libwebpmux)"])
],
2016-08-09 04:39:30 +08:00
[have_webp="no (WebP not found)"])
fi
if test "x$have_webp" = xyes; then
MIME_TYPES="$MIME_TYPES;image/x-webp"
fi
AM_CONDITIONAL(HAVE_WEBP, test "x$have_webp" = xyes)
2018-05-05 02:30:30 +08:00
###################
# Check for libheif
###################
AC_ARG_WITH(libheif, [ --without-libheif build without libheif support])
have_libheif=no
if test "x$with_libheif" != xno; then
2019-06-25 19:20:07 +08:00
have_libheif_1_4_0=yes
2018-05-05 02:30:30 +08:00
have_libheif=yes
2019-06-25 19:20:07 +08:00
PKG_CHECK_MODULES(LIBHEIF, libheif >= 1.4.0,,
[have_libheif_1_4_0="no (libheif >= 1.4.0 not found)"])
2018-05-05 02:30:30 +08:00
PKG_CHECK_MODULES(LIBHEIF, libheif >= libheif_required_version,
FILE_HEIF='file-heif$(EXEEXT)',
[have_libheif="no (libheif not found)"])
fi
if test "x$have_libheif" = xyes; then
MIME_TYPES="$MIME_TYPES;image/heif;image/heic"
fi
AC_SUBST(FILE_HEIF)
AM_CONDITIONAL(HAVE_LIBHEIF, test "x$have_libheif" = xyes)
2019-06-25 19:20:07 +08:00
if test "x$have_libheif_1_4_0" = xyes; then
AC_DEFINE(HAVE_LIBHEIF_1_4_0, 1,
[Define to 1 if libheif >= 1.4.0 is available])
fi
2018-05-05 02:30:30 +08:00
2018-09-23 10:33:44 +08:00
########################
# Check for libbacktrace
########################
AC_ARG_WITH(libbacktrace, [ --without-libbacktrace build without libbacktrace support])
have_libbacktrace=no
if test "x$with_libbacktrace" != xno; then
2018-09-23 10:45:47 +08:00
have_libbacktrace=yes
2018-09-23 10:33:44 +08:00
gimp_save_LIBS=$LIBS
LIBS="$LIBS -lbacktrace"
AC_MSG_CHECKING([for LIBBACKTRACE])
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include <stddef.h>
#include <backtrace.h>
#include <backtrace-supported.h>
#if ! BACKTRACE_SUPPORTED
#error ! BACKTRACE_SUPPORTED
#endif
]],
[[(void) backtrace_create_state (NULL, 0, NULL, NULL);]])],
[AC_MSG_RESULT([yes]); LIBBACKTRACE_LIBS='-lbacktrace'],
[AC_MSG_RESULT([no]); have_libbacktrace='no (libbacktrace is not found or not supported)'])
LIBS=$gimp_save_LIBS
AC_SUBST(LIBBACKTRACE_LIBS)
fi
if test "x$have_libbacktrace" = xyes; then
AC_DEFINE(HAVE_LIBBACKTRACE, 1,
[Define to 1 if libbacktrace is available])
fi
app: add GimpBacktrace
GimpBacktrace provides an interface for creating and traversing
multi-threaded backtraces, as well as querying symbol information.
While we already have some backtrace functionality, it relies on
external tools for the most part, and as such is rather expensive,
and is only meant for producing opaque backtraces. GimpBacktrace,
on the other hand, is meant to be relatively cheap (we're going to
use it for profiling,) and allow inspection of the backtrace data.
In the future, it might make sense to replace some, or all, of the
other backtrace functions with GimpBacktrace.
GimpBacktrace currently only supports Linux. By default, it uses
dladdr() to query symbol information, which is somewhat limited (in
particular, it doesn't work for static functions.) When libunwind
is installed, GimpBacktrace uses it to get more complete symbol
information. libunwind is currently an optional dependency, but it
might make sense to promote it to a mandatory, or opt-out,
dependency, as it's lightweight and widely available.
On other platforms, the GimpBacktrace interface can still be used,
but it always returns NULL backtraces.
2018-09-02 13:15:35 +08:00
#####################
# Check for libunwind
#####################
AC_ARG_WITH(libunwind, [ --without-libunwind build without libunwind support])
have_libunwind=no
if test "x$with_libunwind" != xno; then
have_libunwind=yes
PKG_CHECK_MODULES(LIBUNWIND, libunwind >= libunwind_required_version,
[],
[have_libunwind="no (libunwind not found)"])
fi
if test "x$have_libunwind" = xyes; then
AC_DEFINE(HAVE_LIBUNWIND, 1,
[Define to 1 if libunwind is available])
2018-09-04 03:52:36 +08:00
fi
app: add GimpBacktrace
GimpBacktrace provides an interface for creating and traversing
multi-threaded backtraces, as well as querying symbol information.
While we already have some backtrace functionality, it relies on
external tools for the most part, and as such is rather expensive,
and is only meant for producing opaque backtraces. GimpBacktrace,
on the other hand, is meant to be relatively cheap (we're going to
use it for profiling,) and allow inspection of the backtrace data.
In the future, it might make sense to replace some, or all, of the
other backtrace functions with GimpBacktrace.
GimpBacktrace currently only supports Linux. By default, it uses
dladdr() to query symbol information, which is somewhat limited (in
particular, it doesn't work for static functions.) When libunwind
is installed, GimpBacktrace uses it to get more complete symbol
information. libunwind is currently an optional dependency, but it
might make sense to promote it to a mandatory, or opt-out,
dependency, as it's lightweight and widely available.
On other platforms, the GimpBacktrace interface can still be used,
but it always returns NULL backtraces.
2018-09-02 13:15:35 +08:00
2018-09-04 03:52:36 +08:00
#######################################
# Check for detailed backtraces support
#######################################
detailed_backtraces=no
if test "x$platform_linux" = xyes; then
2018-09-23 10:33:44 +08:00
if test "x$have_libbacktrace" = xyes -o "x$have_libunwind" = xyes; then
detailed_backtraces=yes
else
detailed_backtraces='no (libbacktrace and libunwind are not found or not supported)'
fi
2018-09-04 03:52:36 +08:00
elif test "x$platform_win32" = xyes; then
detailed_backtraces=$enable_drmingw
app: add GimpBacktrace
GimpBacktrace provides an interface for creating and traversing
multi-threaded backtraces, as well as querying symbol information.
While we already have some backtrace functionality, it relies on
external tools for the most part, and as such is rather expensive,
and is only meant for producing opaque backtraces. GimpBacktrace,
on the other hand, is meant to be relatively cheap (we're going to
use it for profiling,) and allow inspection of the backtrace data.
In the future, it might make sense to replace some, or all, of the
other backtrace functions with GimpBacktrace.
GimpBacktrace currently only supports Linux. By default, it uses
dladdr() to query symbol information, which is somewhat limited (in
particular, it doesn't work for static functions.) When libunwind
is installed, GimpBacktrace uses it to get more complete symbol
information. libunwind is currently an optional dependency, but it
might make sense to promote it to a mandatory, or opt-out,
dependency, as it's lightweight and widely available.
On other platforms, the GimpBacktrace interface can still be used,
but it always returns NULL backtraces.
2018-09-02 13:15:35 +08:00
fi
2015-03-30 23:02:19 +08:00
######################
# Check for libmypaint
######################
2015-12-29 01:56:43 +08:00
PKG_CHECK_MODULES(LIBMYPAINT, libmypaint >= libmypaint_required_version,,
[add_deps_error([libmypaint >= libmypaint_required_version])])
2015-03-30 23:02:19 +08:00
2018-01-02 04:57:34 +08:00
PKG_CHECK_MODULES(MYPAINT_BRUSHES, mypaint-brushes-1.0,,
[add_deps_error([mypaint-brushes-1.0])])
2013-05-04 09:55:49 +08:00
2018-06-27 05:19:25 +08:00
if test "x$enable_relocatable_bundle" != xno; then
2018-03-30 20:41:13 +08:00
mypaint_brushes_dir='${gimp_installation_dir}/share/mypaint-data/1.0/brushes'
else
mypaint_brushes_dir=`$PKG_CONFIG --variable=brushesdir mypaint-brushes-1.0`
fi
2018-03-29 23:22:15 +08:00
AC_SUBST(mypaint_brushes_dir)
2018-03-30 20:41:13 +08:00
2008-06-11 19:45:57 +08:00
##################
# Check for webkit
##################
2002-05-27 21:59:27 +08:00
2014-08-25 15:55:28 +08:00
AC_ARG_WITH(webkit, [ --without-webkit don't build the help-browser and web-page plug-ins])
2005-07-06 08:49:17 +08:00
2008-06-10 23:55:28 +08:00
have_webkit=no
if test "x$with_webkit" != xno; then
2018-06-26 05:35:33 +08:00
PKG_CHECK_MODULES(WEBKIT, webkit2gtk-4.0 >= webkitgtk_required_version,
2011-03-31 03:09:37 +08:00
WEB_PAGE='web-page$(EXEEXT)'
2008-06-10 23:55:28 +08:00
have_webkit=yes,
have_webkit="no (WebKit not found)")
2005-07-06 08:49:17 +08:00
else
2008-06-10 23:55:28 +08:00
have_webkit="no (WebKit support disabled)"
fi
2011-03-31 03:09:37 +08:00
AC_SUBST(WEB_PAGE)
2014-05-25 21:23:58 +08:00
if test "x$have_webkit" = "xyes"; then
AC_DEFINE(HAVE_WEBKIT, 1, [Define to 1 if webkit is available])
fi
2010-10-17 02:59:04 +08:00
AM_CONDITIONAL(HAVE_WEBKIT, test "x$have_webkit" = xyes)
2002-05-27 21:59:27 +08:00
1998-04-09 17:00:27 +08:00
2003-09-18 09:42:04 +08:00
###################
# Check for librsvg
###################
2016-10-31 02:44:28 +08:00
PKG_CHECK_MODULES(SVG, librsvg-2.0 >= rsvg_required_version,,
[add_deps_error([rsvg >= rsvg_required_version])])
2008-01-06 21:53:14 +08:00
2016-10-31 02:44:28 +08:00
MIME_TYPES="$MIME_TYPES;image/svg+xml"
2003-09-18 09:42:04 +08:00
2018-08-18 01:46:22 +08:00
AC_CHECK_PROGS(GTK_ENCODE_SYMBOLIC_SVG, gtk-encode-symbolic-svg, no)
if test "x$GTK_ENCODE_SYMBOLIC_SVG" = xno; then
2018-08-20 00:05:42 +08:00
add_deps_error([gtk-encode-symbolic-svg],
[Could not find gtk-encode-symbolic-svg in your PATH.])
2018-08-18 01:46:22 +08:00
fi
2005-07-03 17:45:30 +08:00
2006-06-21 03:39:25 +08:00
####################################
2007-04-16 20:39:06 +08:00
# Allow to disable the print plug-in
2006-06-21 03:39:25 +08:00
####################################
2006-07-17 00:30:14 +08:00
AC_ARG_WITH(print,[ --without-print build without print support])
2006-06-21 03:39:25 +08:00
2008-08-21 23:56:32 +08:00
enable_print="no (disabled)"
2006-06-21 03:39:25 +08:00
if test "x$with_print" != xno; then
2008-08-21 23:56:32 +08:00
enable_print="yes"
2006-06-21 03:39:25 +08:00
fi
2008-08-21 23:56:32 +08:00
2010-06-21 00:37:53 +08:00
AM_CONDITIONAL(BUILD_PRINT, test "x$enable_print" = xyes)
2006-06-21 03:39:25 +08:00
2005-07-03 17:45:30 +08:00
######################
# Check for libpoppler
######################
2005-07-03 03:58:49 +08:00
2017-12-28 23:37:43 +08:00
# PDF import support is a granted feature.
PKG_CHECK_MODULES(POPPLER, [poppler-glib >= poppler_required_version],,
[add_deps_error([poppler-glib >= poppler_required_version])])
2018-01-13 02:28:01 +08:00
# All modern distributions have at least this version and CJK/Cyrillic
# support should not be considered as "second-zone citizen".
PKG_CHECK_MODULES(POPPLER_DATA, [poppler-data >= poppler_data_required_version],,
[add_deps_error([poppler-data >= poppler_data_required_version])])
2017-12-14 01:33:22 +08:00
2017-12-14 02:09:14 +08:00
# MIME_TYPES is for the formats we can open as used for instance in the
# desktop file. Even if cairo-pdf (used for PDF export) is not
# installed, the mime-type list should contain application/pdf.
MIME_TYPES="$MIME_TYPES;application/pdf"
2010-08-28 04:22:10 +08:00
#####################
# Check for cairo-pdf
#####################
2012-03-10 03:11:23 +08:00
AC_ARG_WITH(cairo_pdf,[ --without-cairo-pdf build without cairo-pdf support])
2010-08-28 04:22:10 +08:00
have_cairo_pdf=no
if test "x$with_cairo_pdf" != xno; then
have_cairo_pdf=yes
PKG_CHECK_MODULES(CAIRO_PDF, cairo-pdf >= cairo_pdf_required_version,
2010-08-28 05:08:35 +08:00
FILE_PDF_SAVE='file-pdf-save$(EXEEXT)',
2010-08-28 04:22:10 +08:00
have_cairo_pdf="no (cairo-pdf not found)")
else
have_cairo_pdf="no (cairo-pdf support disabled)"
fi
AC_SUBST(FILE_PDF_SAVE)
2003-11-09 08:53:49 +08:00
###################
# Check for libwmf2
###################
2008-09-24 03:26:37 +08:00
AC_ARG_WITH(wmf, [ --without-wmf build without WMF support])
2006-01-30 04:17:31 +08:00
have_libwmf=no
2008-09-24 03:26:37 +08:00
if test "x$with_wmf" != xno; then
AC_PATH_PROG(WMF_CONFIG, libwmf-config, no)
if test "x$WMF_CONFIG" != "xno" ; then
have_libwmf=yes
AC_MSG_CHECKING(for libwmf >= wmf_required_version)
wmf_version=`$WMF_CONFIG --version`
if expr $wmf_version \>= wmf_required_version >/dev/null; then
AC_MSG_RESULT([yes (version $wmf_version)])
FILE_WMF='file-wmf$(EXEEXT)'
WMF_LIBS=`$WMF_CONFIG --libs`
WMF_CFLAGS=`$WMF_CONFIG --cflags`
else
2018-11-08 18:39:30 +08:00
have_libwmf=yes
PKG_CHECK_MODULES(WMF, libwmf >= wmf_required_version,
FILE_WMF='file-wmf$(EXEEXT)',
have_libwmf="no (libwmf not found)")
2008-09-24 03:26:37 +08:00
fi
2003-11-09 08:53:49 +08:00
else
2008-09-24 03:26:37 +08:00
have_libwmf="no (libwmf not found)"
2003-11-09 08:53:49 +08:00
fi
fi
2008-01-06 21:53:14 +08:00
if test "x$have_libwmf" = xyes; then
MIME_TYPES="$MIME_TYPES;image/x-wmf"
fi
2008-08-11 18:06:13 +08:00
AC_SUBST(FILE_WMF)
2008-08-11 22:40:48 +08:00
AC_SUBST(WMF_LIBS)
2003-11-09 08:53:49 +08:00
AC_SUBST(WMF_CFLAGS)
2017-02-20 04:06:26 +08:00
####################
# Check for OpenJPEG
####################
2009-06-02 00:44:30 +08:00
2017-02-20 04:06:26 +08:00
AC_ARG_WITH(jpeg2000, [ --without-jpeg2000 build without JPEG 2000 support])
2009-06-02 00:44:30 +08:00
2017-02-20 04:06:26 +08:00
have_openjpeg=no
if test "x$with_jpeg2000" != xno; then
have_openjpeg=yes
PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= openjpeg_required_version,
FILE_JP2_LOAD='file-jp2-load$(EXEEXT)'
have_openjpeg=yes,
have_openjpeg="no (OpenJPEG not found)")
2009-06-02 00:44:30 +08:00
fi
2017-02-20 04:06:26 +08:00
if test "x$have_openjpeg" = xyes; then
MIME_TYPES="$MIME_TYPES;image/jp2"
2009-06-02 00:44:30 +08:00
fi
2017-02-20 04:06:26 +08:00
AM_CONDITIONAL(HAVE_OPENJPEG, test "x$have_openjpeg" = xyes)
2009-06-02 00:44:30 +08:00
AC_SUBST(FILE_JP2_LOAD)
2003-11-21 22:44:00 +08:00
################
# Check for lcms
################
2015-12-29 01:56:43 +08:00
PKG_CHECK_MODULES(LCMS, lcms2 >= lcms_required_version,,
[add_deps_error([lcms2 >= lcms_required_version])])
2003-11-21 22:44:00 +08:00
2009-05-27 11:04:35 +08:00
######################
# Check for libXcursor
######################
AC_ARG_WITH(xmc,[ --without-xmc build without Xcursor support])
have_xmc=no
if test "x$with_xmc" != xno; then
have_xmc=yes
PKG_CHECK_MODULES(XMC, xcursor,
FILE_XMC='file-xmc$(EXEEXT)',
have_xmc="no (libXcursor not found)")
else
have_xmc="no (libXcursor support disabled)"
fi
if test "x$have_xmc" = xyes; then
MIME_TYPES="$MIME_TYPES;image/x-xcursor"
fi
AC_SUBST(FILE_XMC)
2004-11-18 22:51:19 +08:00
################
# Check for alsa
################
2006-01-20 18:46:05 +08:00
AC_ARG_WITH(alsa, [ --without-alsa disable alsa support in midi input controller])
2008-08-21 23:56:32 +08:00
have_alsa="no (alsa support disabled)"
2006-01-20 18:46:05 +08:00
if test "x$with_alsa" != xno; then
2006-01-30 04:17:31 +08:00
have_alsa=yes
2006-01-20 18:46:05 +08:00
AM_PATH_ALSA(alsa_required_version,
AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if alsa is available]),
2006-05-24 04:40:56 +08:00
have_alsa="no (libasound not found or unusable)")
2006-01-20 18:46:05 +08:00
fi
2004-11-18 22:51:19 +08:00
2004-06-16 10:18:17 +08:00
#######################
2007-02-12 00:54:02 +08:00
# Check for Linux Input
2004-06-16 10:18:17 +08:00
#######################
2006-01-20 18:46:05 +08:00
AC_ARG_WITH(linux-input, [ --without-linux-input don't build linux input event controller module])
2004-06-17 18:01:58 +08:00
2008-08-21 23:56:32 +08:00
have_linux_input="no (linux input support disabled)"
2004-06-17 18:01:58 +08:00
if test "x$with_linux_input" != "xno"; then
2007-08-06 03:39:09 +08:00
AC_CHECK_HEADER(linux/input.h,
AC_CHECK_DECL(KEY_OK,
have_linux_input=yes,
have_linux_input="no (needs Linux 2.6)",
2007-08-07 02:51:12 +08:00
[#include <linux/input.h>]))
2004-06-17 18:01:58 +08:00
fi
2004-06-16 10:18:17 +08:00
2007-10-25 21:58:54 +08:00
AM_CONDITIONAL(HAVE_LINUX_INPUT, test "x$have_linux_input" = xyes)
2004-06-16 10:18:17 +08:00
2007-02-20 10:56:59 +08:00
###############################
# Check for DirectX DirectInput
###############################
2007-02-22 07:09:25 +08:00
AC_ARG_WITH(directx-sdk, [ --with-directx-sdk=PFX prefix where the DirectX SDK is installed(optional)])
2007-02-20 10:56:59 +08:00
have_dx_dinput=no
2007-10-25 21:58:54 +08:00
if test "x$os_win32" = xyes; then
2007-02-22 07:09:25 +08:00
case "$with_directx_sdk" in
*" "*) AC_MSG_WARN([The DirectX SDK should be accessible through a path without spaces. Use MSYS mounts. Ignoring your --with-directx-sdk switch.])
with_directx_sdk=;;
*\\*) AC_MSG_WARN([Use plain (forward) slashes only in your --with-directx-sdk switch. Ignoring your --with-directx-sdk switch.])
with_directx_sdk=;;
esac
2007-02-20 10:56:59 +08:00
2007-02-23 06:16:10 +08:00
dinput_save_CPPFLAGS="$CPPFLAGS"
2007-07-03 04:05:38 +08:00
dinput_save_LDFLAGS="$LDFLAGS"
2007-02-22 07:09:25 +08:00
if test "x$with_directx_sdk" != x; then
CPPFLAGS="-I $with_directx_sdk/Include $CPPFLAGS"
2007-02-23 20:41:01 +08:00
LDFLAGS="-L$with_directx_sdk/Lib/x86 $LDFLAGS"
2007-02-22 07:09:25 +08:00
AC_CHECK_HEADER(dinput.h,
[AC_CHECK_LIB(dxguid, GUID_XAxis, have_dx_dinput=yes)])
fi
if test "x$have_dx_dinput" = xyes; then
AC_DEFINE(HAVE_DX_DINPUT, 1, [Define to 1 if you have DirectX DirectInput headers and libraries])
else
CPPFLAGS="$dinput_save_CPPFLAGS"
LDFLAGS="$dinput_save_LDFLAGS"
fi
2007-02-20 10:56:59 +08:00
fi
2007-10-25 21:58:54 +08:00
AM_CONDITIONAL(HAVE_DX_DINPUT, test "x$have_dx_dinput" = xyes)
2007-02-20 10:56:59 +08:00
2011-06-23 22:30:58 +08:00
####################
# Check for libgudev
####################
2007-02-12 00:54:02 +08:00
2012-03-10 03:11:23 +08:00
AC_ARG_WITH(gudev, [ --without-gudev build without GUdev support])
2008-01-06 20:33:43 +08:00
2011-06-23 22:30:58 +08:00
have_libgudev=no
2007-02-12 00:54:02 +08:00
2011-06-23 22:30:58 +08:00
if test "x$with_gudev" = xno; then
have_libgudev="no (disabled)"
2008-01-06 20:33:43 +08:00
fi
2013-05-28 03:54:55 +08:00
if test "x$have_linux_input" = xyes && test "x$with_gudev" != xno; then
2011-06-23 22:30:58 +08:00
PKG_CHECK_MODULES(GUDEV, gudev-1.0 >= libgudev_required_version,
have_libgudev=yes,
have_libgudev="no (libgudev not found)")
2007-02-12 00:54:02 +08:00
fi
2011-06-23 22:30:58 +08:00
if test "x$have_libgudev" = xyes; then
AC_DEFINE(HAVE_LIBGUDEV, 1, [Define to 1 if libgudev is available])
2007-02-12 00:54:02 +08:00
fi
2013-10-21 18:41:41 +08:00
##########################
# Check for Email Settings
##########################
2003-06-09 23:29:20 +08:00
2013-10-21 18:41:41 +08:00
# The default behavior is that xdg-email is searched in the user PATH,
# and email plugin is enabled if found.
# Sendmail can be used instead of xdg-email, but must be explicitly
# enabled with --with-sendmail.
2003-06-09 23:29:20 +08:00
2013-10-21 18:41:41 +08:00
have_email="no (xdg-email not found)"
2016-06-02 07:24:10 +08:00
AC_ARG_WITH(sendmail,[ --with-sendmail[=DIR] use sendmail instead of xdg-email])
2003-06-09 23:29:20 +08:00
2013-10-21 18:41:41 +08:00
have_sendmail=no
2018-04-19 02:57:03 +08:00
# Sendmail must be explicitly enabled to replace xdg-email implementation.
2013-10-21 18:41:41 +08:00
if test "x$with_sendmail" != "x" && test "x$with_sendmail" != "xno"; then
if test "x$with_sendmail" = "xyes"; then
sendmail_path=$PATH:/usr/sbin:/usr/lib
2016-06-03 00:17:09 +08:00
AC_DEFINE_UNQUOTED(SENDMAIL, "",
[The MTA used by the mail plug-in.])
2013-10-21 18:41:41 +08:00
else
sendmail_path=$with_sendmail
2016-06-03 00:17:09 +08:00
AC_DEFINE_UNQUOTED(SENDMAIL, "$with_sendmail",
[The MTA used by the mail plug-in.])
2013-10-21 18:41:41 +08:00
fi
AC_PATH_PROG(SENDMAIL, sendmail, , $sendmail_path)
if test "x$SENDMAIL" != "x"; then
have_email="yes (sendmail)"
else
2016-05-28 06:51:24 +08:00
# Not having sendmail at runtime is not a blocker.
have_email="needs runtime dependency: sendmail"
2013-10-21 18:41:41 +08:00
fi
2016-05-28 06:51:24 +08:00
have_sendmail=yes
2003-06-09 23:29:20 +08:00
fi
2002-05-27 21:59:27 +08:00
2016-05-28 02:50:35 +08:00
if test "x$have_sendmail" = xno; then
AC_PATH_PROG(XDG_EMAIL, xdg-email)
2013-10-21 18:41:41 +08:00
if test "x$XDG_EMAIL" != "x"; then
have_email="yes (xdg-email)"
2016-05-28 02:50:35 +08:00
else
# Not having xdg-email at runtime is not a blocker.
# But let's inform the builder that for the feature to be available,
# xdg-email is a runtime dependency.
have_email="needs runtime dependency: xdg-email"
2013-10-21 18:41:41 +08:00
fi
fi
2002-05-27 21:59:27 +08:00
2003-02-22 10:07:53 +08:00
################
# Check for perl
################
2017-12-04 21:55:34 +08:00
AC_PATH_PROGS(PERL,perl5 perl,perl)
AX_PROG_PERL_VERSION([perl_required_version],,
[add_deps_error([perl >= perl_required_version])])
2004-07-31 04:42:53 +08:00
2003-06-09 23:29:20 +08:00
AC_ARG_WITH(pdbgen,
[ --with-pdbgen use 'pdbgen' code generation tool],,
2011-10-30 05:51:50 +08:00
with_pdbgen=$USE_MAINTAINER_MODE)
2003-02-22 10:07:53 +08:00
2007-10-25 21:58:54 +08:00
AM_CONDITIONAL(WITH_PDBGEN, test "x$with_pdbgen" = xyes)
2003-02-22 10:07:53 +08:00
2019-07-24 22:29:06 +08:00
#################################
# Check for GObject Introspection
#################################
2019-07-29 06:57:05 +08:00
GOBJECT_INTROSPECTION_REQUIRE(introspection_required_version)
2003-02-22 10:07:53 +08:00
2002-05-27 21:59:27 +08:00
##################
# Check for python
##################
2019-08-07 00:23:29 +08:00
# By default, we want packagers to install Python plug-ins to get the
# optimum experience. --with-python=yes will check for a Python 3
# interpreter and fails without.
# --with-python=force will install the plug-ins even though the Python
# interpreter is not found at build time. It is up to the packager to
# ensure one is available at run time. This can be useful in particular
# when cross-compiling since anyway the interpreter is not useful at
# build time.
# --with-python=no won't install Python plug-ins. It is discouraged.
AC_ARG_WITH(python,
[ --with-python=no|yes|force install Python 3 plug-ins (default=yes)], ,
[with_python=yes])
if test "x$with_python" = xno; then
warning_python="
WARNING: you disabled the installation of core Python plug-ins. This is
discouraged as it won't provide the full GIMP experience.
Note that you may install the Python plug-ins even if you have
no Python interpreter at build-time by passing the configure
option --with-python=force.
Just make sure that a Python python3_required_version or newer
interpreter is available at run-time."
elif test "x$with_python" = xforce; then
AM_PATH_PYTHON3(python3_required_version,
with_python="yes",
with_python="yes (Warning: Python python3_required_version or newer not found)")
if test "x$with_python" != "xyes"; then
warning_python="
WARNING: Python python3_required_version or newer was not found.
Python plug-ins will be installed anyway but you should make
sure that a compatible Python interpreter is available at
installation, otherwise installed plug-ins won't be usable."
fi
else # with_python=yes
# Mandatory Python check.
m4_define([pycheck_error], [
required_deps="$required_deps
- $1
*** Please install $2.
*** Note that you may install the Python plug-ins even if you have
*** no Python interpreter at build-time by passing the configure
*** option --with-python=force.
*** Just make sure that a Python python3_required_version or newer
*** interpreter is available at run-time."
with_python="no"])
AM_PATH_PYTHON3(python3_required_version,,
[pycheck_error([Python 3 (python3_required_version or newer)], [it])])
fi
if test "x$with_python" = "xyes"; then
2005-06-25 07:13:49 +08:00
if test "x$platform_win32" = "xyes"; then
2005-06-26 15:08:36 +08:00
PYBIN_PATH="$py_exec_prefix\pythonw.exe"
else
PYBIN_PATH="$PYTHON"
2005-06-25 07:13:49 +08:00
fi
2005-06-26 15:08:36 +08:00
AC_SUBST(PYBIN_PATH)
2002-09-06 09:00:33 +08:00
fi
2019-08-07 00:23:29 +08:00
AM_CONDITIONAL(HAS_PYTHON_INTERP, test "x$PYBIN_PATH" != "x")
AM_CONDITIONAL(BUILD_PYTHON, test "x$with_python" != xno)
2002-09-06 09:00:33 +08:00
1999-09-06 11:45:34 +08:00
2003-01-28 14:51:56 +08:00
###########################################################
# Some plug-ins don't build on Win32, others are Win32-only
###########################################################
2007-10-25 21:58:54 +08:00
if test "x$os_win32" = xno; then
2004-01-28 23:52:08 +08:00
MAIL='mail$(EXEEXT)'
2003-01-28 14:51:56 +08:00
fi
AC_SUBST(MAIL)
2003-06-09 23:29:20 +08:00
2003-01-28 14:51:56 +08:00
2013-11-11 01:46:32 +08:00
###############################
# Check for GTK Mac Integration
###############################
2014-03-20 10:03:21 +08:00
gtk_mac_integration_ok=no
2013-11-11 03:51:37 +08:00
if test "x$platform_osx" != xno &&
2010-10-15 15:56:27 +08:00
(echo `pkg-config --variable=targets gtk+-3.0` | grep quartz); then
2014-03-20 10:03:21 +08:00
2010-10-15 15:56:27 +08:00
PKG_CHECK_MODULES(GTK_MAC_INTEGRATION, gtk-mac-integration-gtk3 >= gtk_mac_integration_required_version,
2014-03-20 10:03:21 +08:00
gtk_mac_integration_ok=yes,
gtk_mac_integration_ok=no)
if test "x$gtk_mac_integration_ok" != "xyes"; then
PKG_CHECK_MODULES(GTK_MAC_INTEGRATION, gtk-mac-integration >= gtk_mac_integration_required_version,
gtk_mac_integration_ok=yes,
gtk_mac_integration_ok=no)
fi
2013-11-11 01:46:32 +08:00
fi
2015-10-05 00:11:16 +08:00
AM_CONDITIONAL(PLATFORM_OSX_QUARTZ, test "x$gtk_mac_integration_ok" = xyes)
2013-11-11 01:46:32 +08:00
2004-07-28 23:54:50 +08:00
2003-06-23 18:25:42 +08:00
##########################################################
# Determine where to install the desktop & mime info files
##########################################################
2002-05-27 21:59:27 +08:00
2003-06-23 18:25:42 +08:00
AC_ARG_WITH(desktop-dir, [ --with-desktop-dir=PATH where to install desktop files (default=PREFIX/share)])
2002-02-22 23:21:08 +08:00
2003-06-23 18:25:42 +08:00
if test "x$with_desktop_dir" != x; then
DESKTOP_DATADIR=$with_desktop_dir
2002-02-22 23:21:08 +08:00
else
2003-06-23 18:25:42 +08:00
DESKTOP_DATADIR="$datadir"
2002-02-22 23:21:08 +08:00
fi
2005-06-16 23:31:30 +08:00
AM_CONDITIONAL(DESKTOP_DATADIR, test "x$with_desktop_dir" != xno)
2003-06-23 18:25:42 +08:00
AC_SUBST(DESKTOP_DATADIR)
2002-02-22 23:21:08 +08:00
2004-05-02 01:45:33 +08:00
#####################
# Check for XML tools
#####################
AC_PATH_PROG(XMLLINT, xmllint, no)
AM_CONDITIONAL(HAVE_XMLLINT, test "x$XMLLINT" != "xno")
AC_PATH_PROG(XSLTPROC, xsltproc, no)
AM_CONDITIONAL(HAVE_XSLTPROC, test "x$XSLTPROC" != "xno")
2016-10-31 08:35:31 +08:00
2016-09-12 07:58:41 +08:00
########################
# Check for vector icons
########################
2016-02-14 07:50:19 +08:00
2017-06-07 17:16:37 +08:00
# If not cross-compiling, default build's link and compile flags to the
# target's flags.
if test "$cross_compiling" != "yes"; then
if test "x$LDFLAGS_FOR_BUILD" = "x"; then
LDFLAGS_FOR_BUILD="$LDFLAGS"
fi
if test "x$CFLAGS_FOR_BUILD" = "x"; then
CFLAGS_FOR_BUILD="$CFLAGS"
fi
2017-06-09 06:40:24 +08:00
if test "x$CPPFLAGS_FOR_BUILD" = "x"; then
CPPFLAGS_FOR_BUILD="$CPPFLAGS"
fi
2017-06-07 17:16:37 +08:00
fi
2017-03-12 09:56:48 +08:00
AC_ARG_ENABLE(vector-icons, [ --disable-vector-icons use raster icons rather than vector ones (default=auto)], ,
enable_vector_icons=auto)
2016-02-14 07:50:19 +08:00
2017-03-12 09:56:48 +08:00
if test "x$enable_vector_icons" != "xno"; then
2019-02-05 22:33:02 +08:00
have_shared_mime_info=""
# shared-mime-info is needed to correctly detect SVG files (except on
# Windows, apparently).
PKG_CHECK_MODULES(MIME_INFO, [shared-mime-info],
have_shared_mime_info="yes", have_shared_mime_info="no")
if test "x$have_shared_mime_info" = "xyes" ||
test "x$platform_win32" = "xyes"; then
# Check if librsvg was built with --disable-pixbuf-loader.
gdk_pixbuf_moduledir=`$PKG_CONFIG --variable=gdk_pixbuf_moduledir gdk-pixbuf-2.0`
# AC_CHECK_FILE macro does not work when cross-compiling and exits with:
# error: cannot check for file existence when cross compiling
# So let's test files the shell way.
if (test "x$platform_win32" = "xyes" &&
test -f "$gdk_pixbuf_moduledir/libpixbufloader-svg.dll") ||
test -f "$gdk_pixbuf_moduledir/libpixbufloader-svg.so"; then
# We must not use $PKG_CONFIG nor PKG_CHECK_* macros because we need
# to make sure we use the native pkg-config (in case we cross-compile).
if pkg-config --atleast-version=glib_required_version glib-2.0 &&
pkg-config gio-2.0; then
NATIVE_GLIB_LIBS=`pkg-config --libs gio-2.0 glib-2.0`
NATIVE_GLIB_CFLAGS=`pkg-config --cflags gio-2.0 glib-2.0`
enable_vector_icons="yes"
if test "x$platform_win32" = "xyes"; then
warning_vector_icons_windows="
2017-05-03 06:30:32 +08:00
WARNING: You enabled vector icons on Win32. Make sure to run:
2019-02-05 22:33:02 +08:00
$ gdk-pixbuf-query-loaders.exe --update-cache
on the target machine (this command generates loaders.cache)
so that GdkPixbuf knows where to find the SVG loader."
2017-05-03 05:13:22 +08:00
fi
2017-04-09 00:00:51 +08:00
else
2019-02-05 22:33:02 +08:00
enable_vector_icons="no (missing native glib-2.0 > glib_required_version or gio-2.0)"
2017-04-09 00:00:51 +08:00
fi
2017-03-12 09:56:48 +08:00
else
2019-02-05 22:33:02 +08:00
enable_vector_icons="no (librsvg GdkPixbuf loader missing)"
2017-03-12 09:56:48 +08:00
fi
2019-02-05 22:33:02 +08:00
else
enable_vector_icons="no (missing shared-mime-info)"
2016-02-14 07:50:19 +08:00
fi
fi
2016-06-12 10:25:53 +08:00
AC_SUBST(NATIVE_GLIB_LIBS)
AC_SUBST(NATIVE_GLIB_CFLAGS)
2016-02-14 07:50:19 +08:00
AM_CONDITIONAL(ENABLE_VECTOR_ICONS, test "x$enable_vector_icons" = "xyes")
2010-10-31 15:03:51 +08:00
####################
# Check for xvfb-run
####################
2012-03-10 03:11:23 +08:00
AC_ARG_WITH(xvfb-run, [ --without-xvfb-run do not use xvfb-run for UI-dependent automatic tests])
2011-02-13 05:37:46 +08:00
have_xvfb_run="no (disabled)"
if test "x$with_xvfb_run" != "xno"; then
AC_PATH_PROG(XVFB_RUN, xvfb-run, no)
if test "x$XVFB_RUN" != "xno"; then
have_xvfb_run="yes"
2013-10-11 15:36:26 +08:00
AC_DEFINE(HAVE_XVFB_RUN, 1, [Define to 1 if xvfb-run is available])
2011-02-13 05:37:46 +08:00
else
have_xvfb_run="no (not found)"
fi
fi
2013-10-01 18:16:43 +08:00
AM_CONDITIONAL(HAVE_XVFB_RUN, test "x$have_xvfb_run" = "xyes")
2010-10-31 15:03:51 +08:00
2017-05-23 23:39:16 +08:00
##########################
# Check for appstream-util
##########################
AC_ARG_WITH(appdata-test, [ --without-appdata-test do not validate the appdata file])
have_appstream_util="no (disabled)"
if test "x$with_appdata_test" != "xno"; then
AC_PATH_PROG(APPSTREAM_UTIL, appstream-util, no)
if test "x$APPSTREAM_UTIL" != "xno"; then
have_appstream_util="yes"
else
have_appstream_util="no (appstream-util not found)"
fi
fi
AM_CONDITIONAL(HAVE_APPSTREAM_UTIL, test "x$have_appstream_util" = "xyes")
if test "x$have_appstream_util" = "xyes"; then
have_appstream_util="yes (this test requires network access; --without-appdata-test to disable)"
fi
2010-10-31 15:03:51 +08:00
2018-05-13 21:57:28 +08:00
#################################
# Check for desktop-file-validate
#################################
AC_PATH_PROG(DESKTOP_FILE_VALIDATE, desktop-file-validate, no)
2018-05-21 00:10:00 +08:00
if test "x$DESKTOP_FILE_VALIDATE" != "xno"; then
2018-05-13 21:57:28 +08:00
have_desktop_file_validate="yes"
else
have_desktop_file_validate="no (desktop-file-validate not found)"
fi
AM_CONDITIONAL(HAVE_DESKTOP_FILE_VALIDATE, test "x$DESKTOP_FILE_VALIDATE" != "xno")
2018-05-14 11:33:14 +08:00
####################
# Set bug report URL
####################
# Allowing third-party packagers to set their own bugtracker URL, in
# order to filter first packaging bugs from core bugs.
AC_ARG_WITH(bug-report-url,
2018-05-18 15:08:51 +08:00
[ --with-bug-report-url URL used by the debug dialog to report bugs],,
2018-05-14 11:33:14 +08:00
[with_bug_report_url="$PACKAGE_BUGREPORT"])
if test "x$with_bug_report_url" = "x"; then
with_bug_report_url="$PACKAGE_BUGREPORT"
fi
2018-05-25 21:05:47 +08:00
BUG_REPORT_URL="$with_bug_report_url"
2018-05-14 11:33:14 +08:00
AC_DEFINE_UNQUOTED(BUG_REPORT_URL, "$with_bug_report_url",
[The URL to open in order to report bugs])
2018-05-25 21:05:47 +08:00
AC_SUBST(BUG_REPORT_URL)
2018-05-14 11:33:14 +08:00
override_bug_report_url=
if test "x$with_bug_report_url" = "x$PACKAGE_BUGREPORT"; then
override_bug_report_url="
NOTE: if you plan on packaging GIMP for distribution, it is recommended
to override the bug report URL with option:
--with-bug-report-url=https://example.com/
so that you can filter packaging bugs from core bugs before
reporting upstream.
"
fi
2018-05-13 21:57:28 +08:00
2018-05-18 15:08:51 +08:00
#########################
# Default ICC directory #
#########################
# This is necessary because some Unix systems may have a different
# standard path for color profiles. And in particular, sandbox builds
# might mount the host system at a different root. This is for
# instance the case of flatpak which mount the host root at /run/host/.
if test "x$platform_osx" = "xno" &&
test "x$platform_win32" = "xno"; then
AC_MSG_CHECKING([default directory for color profiles])
AC_ARG_WITH(icc-directory,
[ --with-icc-directory Path to default color profiles for this system],,
[with_icc_directory="/usr/share/color/icc"])
if test "x$with_icc_directory" = "x"; then
with_icc_directory="/usr/share/color/icc"
fi
AC_DEFINE_UNQUOTED(COLOR_PROFILE_DIRECTORY,
"$with_icc_directory",
[The path to default color profiles for this system])
fi
2002-05-27 21:59:27 +08:00
######################################
# Checks for gtk-doc and docbook-tools
######################################
1999-08-26 08:31:37 +08:00
2010-08-20 14:14:01 +08:00
# Check for GTK_DOC_CHECK availability. The GTK_DOC_CHECK invocation
# must be on its own line, gtkdocize relies on it
m4_ifdef([GTK_DOC_CHECK], [
2004-12-14 06:51:55 +08:00
GTK_DOC_CHECK([1.0])
2010-08-20 14:14:01 +08:00
])
2000-08-28 08:42:32 +08:00
2007-12-21 04:15:53 +08:00
# NOTE: We need to use a separate automake conditional for this
# to make this work with the tarballs.
2007-10-25 21:58:54 +08:00
AM_CONDITIONAL(ENABLE_GTK_DOC, test "x$enable_gtk_doc" = xyes)
1998-05-04 19:16:19 +08:00
2007-05-06 07:16:58 +08:00
AC_ARG_ENABLE(gtk-doc-app, [ --enable-gtk-doc-app build developer documentation for app (default=no)], , enable_gtk_doc_app=no)
2007-10-25 21:58:54 +08:00
AM_CONDITIONAL(ENABLE_GTK_DOC_APP, test "x$enable_gtk_doc_app" = xyes)
2007-05-06 07:16:58 +08:00
2004-05-02 01:45:33 +08:00
2017-12-25 19:40:10 +08:00
#############################
# Check for Windows installer
#############################
AC_MSG_CHECKING([if building the Windows installer])
AC_ARG_ENABLE(windows-installer,
[ --enable-windows-installer
generate files needed for the Windows installer
(default=no)],,
enable_windows_installer=no)
if test "x$enable_windows_installer" != xno; then
if test ! -e "$srcdir/build/windows/installer/lang/setup.isl.in"; then
AC_MSG_RESULT([no (not building from git)])
AC_MSG_ERROR([Building the Windows installer is only supported when building from git.])
fi
fi
AC_MSG_RESULT([$enable_windows_installer])
AM_CONDITIONAL(BUILD_WINDOWS_INSTALLER, test "x$enable_windows_installer" != xno)
2002-05-27 21:59:27 +08:00
#########################################
2008-01-06 21:53:14 +08:00
# Allow to configure the GIMP environment
2002-05-27 21:59:27 +08:00
#########################################
2001-07-26 19:46:40 +08:00
2004-03-02 14:36:17 +08:00
AC_ARG_ENABLE(default-binary, [ --enable-default-binary install this as the default gimp binary (default=gimp_stable)], , enable_default_binary=gimp_stable)
2001-08-11 23:35:16 +08:00
2007-10-25 21:58:54 +08:00
AM_CONDITIONAL(DEFAULT_BINARY, test "x$enable_default_binary" = xyes)
2002-03-07 04:25:31 +08:00
2002-05-06 01:01:44 +08:00
2005-04-06 05:37:18 +08:00
AC_ARG_ENABLE(gimp-console, [ --enable-gimp-console build a console-only binary which does not link GTK+], , enable_gimp_console=yes)
2003-09-10 10:56:01 +08:00
2007-10-25 21:58:54 +08:00
AM_CONDITIONAL(ENABLE_GIMP_CONSOLE, test "x$enable_gimp_console" != xno)
2003-09-10 10:56:01 +08:00
2014-09-16 05:50:26 +08:00
# Possibly change default gimpdir from $XDG_CONFIG_HOME/GIMP/gimp_user_version
2012-11-11 19:20:14 +08:00
gimpdir=GIMP
2014-01-26 02:01:46 +08:00
AC_ARG_WITH(gimpdir, [ --with-gimpdir=DIR change default gimpdir from $XDG_CONFIG_HOME/GIMP/gimp_user_version to $XDG_CONFIG_HOME/DIR/gimp_user_version, or to DIR if DIR is an absolute path],
2003-12-09 08:05:12 +08:00
if eval "test x$with_gimpdir != x"; then
if eval "test x$with_gimpdir != xyes"; then
gimpdir=$with_gimpdir
2002-05-27 21:59:27 +08:00
fi
fi)
2001-07-25 09:23:28 +08:00
2014-09-16 05:50:26 +08:00
# Build the gimpdir to be used in manpages here, because the manpage
# source is unreadable enough already
case "$gimpdir" in
/*)
manpage_gimpdir="$gimpdir"
;;
*)
manpage_gimpdir="\\fB\$XDG_CONFIG_HOME\\fP/$gimpdir/gimp_user_version"
;;
esac
2004-01-22 11:51:46 +08:00
gimpdatadir="$datadir/$PACKAGE/gimp_data_version"
gimpplugindir="$libdir/$PACKAGE/gimp_plugin_version"
gimpsysconfdir="$sysconfdir/$PACKAGE/gimp_sysconf_version"
2002-05-27 21:59:27 +08:00
1997-11-25 06:05:25 +08:00
AC_SUBST(gimpdir)
2014-09-16 05:50:26 +08:00
AC_SUBST(manpage_gimpdir)
1997-11-25 06:05:25 +08:00
AC_SUBST(gimpdatadir)
AC_SUBST(gimpplugindir)
2000-10-15 06:15:11 +08:00
AC_SUBST(gimpsysconfdir)
2005-04-05 06:51:46 +08:00
# GNU format message catalogs go into $datadir/locale,
# standard location is $libdir/locale. DATADIRNAME set accordingly.
2005-04-05 07:06:32 +08:00
gimplocaledir="$datadir/locale"
2005-04-05 06:51:46 +08:00
if test "$DATADIRNAME" = "lib"; then
2005-04-05 07:06:32 +08:00
gimplocaledir="$libdir/locale"
2005-04-05 06:51:46 +08:00
fi
2005-04-05 07:06:32 +08:00
AC_SUBST(gimplocaledir)
2002-05-27 21:59:27 +08:00
############################
# Some defines for the build
############################
2007-10-25 21:58:54 +08:00
AM_CONDITIONAL(STATICLIBS, test "x$enable_static" = xyes)
2002-03-17 22:07:54 +08:00
2007-12-21 04:15:53 +08:00
# a tuned version of glib-mkenums
2004-07-31 04:42:53 +08:00
GIMP_MKENUMS="\$(PERL) \$(top_srcdir)/tools/gimp-mkenums"
2002-03-17 22:07:54 +08:00
AC_SUBST(GIMP_MKENUMS)
2008-02-16 07:18:44 +08:00
#Add required trailing ; to list
MIME_TYPES="$MIME_TYPES;"
2008-01-06 21:53:14 +08:00
AC_SUBST(MIME_TYPES)
2002-05-27 21:59:27 +08:00
2006-02-20 19:17:26 +08:00
#########################
# Disable deprecated APIs
#########################
2004-04-20 22:37:12 +08:00
2009-10-18 02:32:57 +08:00
CPPFLAGS="${CPPFLAGS} -DGIMP_DISABLE_DEPRECATED -DBABL_DISABLE_DEPRECATED -DGSEAL_ENABLE"
2004-04-20 22:37:12 +08:00
2011-10-18 00:54:34 +08:00
# Make sure not to disable deprecated APIs for unreleased versions.
# We must build without problems with future releases of libraries
# and disabling deprecated API risks breaking the build
2018-06-01 02:41:03 +08:00
if test "x$have_glib_2_57" != "xyes"; then
2011-10-18 00:54:34 +08:00
CPPFLAGS="${CPPFLAGS} -DG_DISABLE_DEPRECATED"
fi
2018-06-01 02:41:03 +08:00
if test "x$have_pango_1_43" != "xyes"; then
2011-10-18 00:54:34 +08:00
CPPFLAGS="${CPPFLAGS} -DPANGO_DISABLE_DEPRECATED"
fi
2006-02-20 19:17:26 +08:00
2002-05-27 21:59:27 +08:00
##################
# configure output
##################
2007-12-21 04:15:53 +08:00
# easy way to skip the plug-in build
2002-05-27 21:59:27 +08:00
GIMP_PLUGINS=plug-ins
GIMP_MODULES=modules
AC_SUBST(GIMP_PLUGINS)
AC_SUBST(GIMP_MODULES)
1997-11-25 06:05:25 +08:00
2004-01-22 11:51:46 +08:00
AC_CONFIG_COMMANDS([libgimpbase/gimpversion.h], [
2003-08-14 15:09:27 +08:00
outfile=gimpversion.h-tmp
cat > $outfile <<\_______EOF
/* gimpversion.h
*
2009-05-17 20:49:04 +08:00
* This is a generated file. Please modify 'configure.ac'
2003-08-14 15:09:27 +08:00
*/
2011-04-28 20:30:41 +08:00
#if !defined (__GIMP_BASE_H_INSIDE__) && !defined (GIMP_BASE_COMPILATION)
#error "Only <libgimpbase/gimpbase.h> can be included directly."
#endif
2003-08-14 15:09:27 +08:00
#ifndef __GIMP_VERSION_H__
#define __GIMP_VERSION_H__
G_BEGIN_DECLS
2010-06-30 01:13:40 +08:00
/**
* SECTION: gimpversion
* @title: gimpversion
* @short_description: Macros and constants useful for determining
* GIMP's version number and capabilities.
*
* Macros and constants useful for determining GIMP's version number and
* capabilities.
**/
2003-08-14 15:09:27 +08:00
_______EOF
cat >>$outfile <<_______EOF
2010-06-30 01:13:40 +08:00
/**
* GIMP_MAJOR_VERSION:
*
* The major GIMP version number.
**/
2003-08-14 15:09:27 +08:00
#define GIMP_MAJOR_VERSION ($gimp_major_ver)
2010-06-30 01:13:40 +08:00
/**
* GIMP_MINOR_VERSION:
*
* The minor GIMP version number.
**/
2003-08-14 15:09:27 +08:00
#define GIMP_MINOR_VERSION ($gimp_minor_ver)
2010-06-30 01:13:40 +08:00
/**
* GIMP_MICRO_VERSION:
*
* The micro GIMP version number.
**/
2003-08-14 15:09:27 +08:00
#define GIMP_MICRO_VERSION ($gimp_micro_ver)
2010-06-30 01:13:40 +08:00
/**
* GIMP_VERSION:
*
* The GIMP version as a string.
**/
2003-08-14 15:09:27 +08:00
#define GIMP_VERSION "$gimp_ver"
2010-06-30 01:13:40 +08:00
/**
* GIMP_API_VERSION:
*
2015-06-01 03:18:09 +08:00
* Since: 2.2
2010-06-30 01:13:40 +08:00
**/
2004-12-14 07:41:47 +08:00
#define GIMP_API_VERSION "$gimp_api_ver"
2010-06-30 01:13:40 +08:00
2003-08-14 15:09:27 +08:00
_______EOF
2007-04-25 21:36:47 +08:00
2004-01-22 11:51:46 +08:00
cat >>$outfile <<\_______EOF
2003-08-14 15:09:27 +08:00
#define GIMP_CHECK_VERSION(major, minor, micro) \
(GIMP_MAJOR_VERSION > (major) || \
(GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION > (minor)) || \
(GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION == (minor) && \
GIMP_MICRO_VERSION >= (micro)))
G_END_DECLS
#endif /* __GIMP_VERSION_H__ */
_______EOF
if cmp -s $outfile libgimpbase/gimpversion.h; then
AC_MSG_NOTICE([libgimpbase/gimpversion.h is unchanged])
rm -f $outfile
else
mv $outfile libgimpbase/gimpversion.h
fi
],[
2004-01-22 11:51:46 +08:00
gimp_major_ver=gimp_major_version
gimp_minor_ver=gimp_minor_version
gimp_micro_ver=gimp_micro_version
gimp_ver=gimp_version
2004-12-14 07:41:47 +08:00
gimp_api_ver=gimp_api_version
2003-08-14 15:09:27 +08:00
])
AC_CONFIG_FILES([
2014-02-03 10:58:52 +08:00
INSTALL
2001-08-06 04:34:10 +08:00
tools/Makefile
2017-12-18 01:41:34 +08:00
pdb/Makefile
1999-08-26 08:31:37 +08:00
libgimp/Makefile
2001-05-21 21:58:46 +08:00
libgimpbase/Makefile
2005-01-26 03:10:44 +08:00
libgimpconfig/Makefile
2001-01-24 02:49:44 +08:00
libgimpcolor/Makefile
2001-01-24 07:56:18 +08:00
libgimpmath/Makefile
2002-10-21 22:15:02 +08:00
libgimpmodule/Makefile
2003-11-26 09:12:36 +08:00
libgimpthumb/Makefile
2001-01-25 06:36:18 +08:00
libgimpwidgets/Makefile
1999-08-26 08:31:37 +08:00
app/Makefile
2004-04-19 22:54:24 +08:00
app/actions/Makefile
2001-11-27 11:52:11 +08:00
app/config/Makefile
2001-05-09 10:32:03 +08:00
app/core/Makefile
2012-05-11 03:22:44 +08:00
app/operations/Makefile
2017-01-10 04:57:15 +08:00
app/operations/layer-modes/Makefile
app/operations/layer-modes-legacy/Makefile
2012-06-15 01:18:42 +08:00
app/operations/tests/Makefile
2007-12-29 08:57:51 +08:00
app/gegl/Makefile
2004-09-13 23:15:23 +08:00
app/dialogs/Makefile
2001-08-17 22:27:31 +08:00
app/display/Makefile
2001-10-25 21:30:18 +08:00
app/file/Makefile
2019-02-11 19:45:06 +08:00
app/file-data/Makefile
2001-04-14 23:21:45 +08:00
app/gui/Makefile
2004-05-06 15:41:53 +08:00
app/menus/Makefile
2002-02-15 03:31:16 +08:00
app/paint/Makefile
2001-01-22 05:58:16 +08:00
app/pdb/Makefile
2001-08-17 22:27:31 +08:00
app/plug-in/Makefile
2017-07-03 18:29:41 +08:00
app/propgui/Makefile
2003-01-30 06:20:09 +08:00
app/text/Makefile
2001-01-22 09:46:28 +08:00
app/tools/Makefile
2002-02-22 08:11:37 +08:00
app/vectors/Makefile
2001-04-11 09:13:53 +08:00
app/widgets/Makefile
2001-07-04 02:38:56 +08:00
app/xcf/Makefile
2009-09-05 21:52:01 +08:00
app/tests/Makefile
2010-01-08 20:37:25 +08:00
app/tests/files/Makefile
app/tests/gimpdir-empty/Makefile
app/tests/gimpdir-empty/brushes/Makefile
app/tests/gimpdir-empty/gradients/Makefile
app/tests/gimpdir-empty/patterns/Makefile
app/tests/gimpdir/Makefile
app/tests/gimpdir/brushes/Makefile
app/tests/gimpdir/gradients/Makefile
app/tests/gimpdir/patterns/Makefile
2018-03-11 05:48:20 +08:00
app-tools/Makefile
2010-08-27 04:10:07 +08:00
build/Makefile
build/windows/Makefile
build/windows/gimp.rc
2010-09-01 14:24:45 +08:00
build/windows/gimp-plug-ins.rc
2017-12-25 04:34:04 +08:00
build/windows/installer/Makefile
build/windows/installer/lang/Makefile
1997-11-25 06:05:25 +08:00
plug-ins/Makefile
2008-08-11 18:06:13 +08:00
plug-ins/file-bmp/Makefile
2018-11-13 07:35:07 +08:00
plug-ins/file-dds/Makefile
2013-05-04 09:55:49 +08:00
plug-ins/file-exr/Makefile
2008-08-11 18:06:13 +08:00
plug-ins/file-faxg3/Makefile
plug-ins/file-fits/Makefile
plug-ins/file-fli/Makefile
plug-ins/file-ico/Makefile
plug-ins/file-jpeg/Makefile
plug-ins/file-psd/Makefile
2017-07-25 02:26:18 +08:00
plug-ins/file-raw/Makefile
2008-08-11 18:06:13 +08:00
plug-ins/file-sgi/Makefile
2015-12-02 19:33:31 +08:00
plug-ins/file-tiff/Makefile
2016-08-09 04:39:30 +08:00
plug-ins/file-webp/Makefile
1998-06-19 09:45:03 +08:00
plug-ins/flame/Makefile
2008-03-25 00:36:03 +08:00
plug-ins/fractal-explorer/Makefile
plug-ins/fractal-explorer/examples/Makefile
1998-03-20 10:49:40 +08:00
plug-ins/gfig/Makefile
1998-03-20 11:51:45 +08:00
plug-ins/gfig/gfig-examples/Makefile
2003-01-07 07:47:04 +08:00
plug-ins/gfig/images/Makefile
2010-01-08 07:05:20 +08:00
plug-ins/ui/Makefile
1999-08-27 06:29:37 +08:00
plug-ins/gimpressionist/Brushes/Makefile
2008-03-25 00:36:03 +08:00
plug-ins/gimpressionist/Makefile
1999-08-27 06:29:37 +08:00
plug-ins/gimpressionist/Paper/Makefile
plug-ins/gimpressionist/Presets/Makefile
2008-08-11 18:06:13 +08:00
plug-ins/gradient-flare/Makefile
plug-ins/gradient-flare/flares/Makefile
2008-03-25 00:36:03 +08:00
plug-ins/help-browser/Makefile
2004-03-09 09:37:56 +08:00
plug-ins/help/Makefile
2008-03-25 00:36:03 +08:00
plug-ins/ifs-compose/Makefile
1999-09-07 08:03:20 +08:00
plug-ins/imagemap/Makefile
2004-09-26 04:18:04 +08:00
plug-ins/imagemap/images/Makefile
2008-03-25 00:36:03 +08:00
plug-ins/lighting/Makefile
plug-ins/lighting/images/Makefile
plug-ins/map-object/Makefile
2017-07-06 07:24:54 +08:00
plug-ins/metadata/Makefile
1998-06-19 09:45:03 +08:00
plug-ins/pagecurl/Makefile
2006-06-23 05:58:56 +08:00
plug-ins/print/Makefile
2018-05-31 03:05:49 +08:00
]
dnl plug-ins/pygimp/Makefile
dnl plug-ins/pygimp/plug-ins/Makefile
[
2019-07-29 00:29:42 +08:00
plug-ins/python/Makefile
2019-07-30 05:01:46 +08:00
plug-ins/python/python-console/Makefile
2015-11-07 22:52:44 +08:00
plug-ins/screenshot/Makefile
2008-03-25 00:36:03 +08:00
plug-ins/script-fu/Makefile
plug-ins/script-fu/ftx/Makefile
plug-ins/script-fu/scripts/Makefile
plug-ins/script-fu/scripts/images/Makefile
plug-ins/script-fu/tinyscheme/Makefile
plug-ins/selection-to-path/Makefile
2003-06-01 06:23:55 +08:00
plug-ins/twain/Makefile
2008-08-11 18:06:13 +08:00
plug-ins/common/Makefile
2019-08-07 05:54:18 +08:00
plug-ins/goat-exercises/Makefile
1999-01-12 04:48:27 +08:00
modules/Makefile
2019-07-24 01:33:15 +08:00
devel-docs/Makefile
devel-docs/app/Makefile
devel-docs/app/version
devel-docs/libgimp/Makefile
devel-docs/libgimp/version
devel-docs/libgimpbase/Makefile
devel-docs/libgimpbase/version
devel-docs/libgimpconfig/Makefile
devel-docs/libgimpconfig/version
devel-docs/libgimpcolor/Makefile
devel-docs/libgimpcolor/version
devel-docs/libgimpmath/Makefile
devel-docs/libgimpmath/version
devel-docs/libgimpmodule/Makefile
devel-docs/libgimpmodule/version
devel-docs/libgimpthumb/Makefile
devel-docs/libgimpthumb/version
devel-docs/libgimpwidgets/Makefile
devel-docs/libgimpwidgets/version
devel-docs/performance-logs/Makefile
devel-docs/tools/Makefile
2001-02-13 11:06:52 +08:00
docs/Makefile
2004-04-19 22:54:24 +08:00
menus/Makefile
2001-08-06 04:34:10 +08:00
cursors/Makefile
2014-05-08 03:57:21 +08:00
icons/Makefile
2016-01-11 10:14:04 +08:00
icons/Color/Makefile
2016-03-01 07:05:23 +08:00
icons/Legacy/Makefile
2015-12-10 02:18:28 +08:00
icons/Symbolic/Makefile
2001-08-06 00:07:02 +08:00
themes/Makefile
2016-03-22 23:37:10 +08:00
themes/System/Makefile
1998-03-01 14:20:05 +08:00
data/Makefile
2005-06-11 00:38:36 +08:00
data/brushes/Makefile
2012-01-21 19:40:47 +08:00
data/brushes/Basic/Makefile
2018-04-23 01:51:44 +08:00
data/brushes/Fun/Makefile
2012-01-22 00:14:34 +08:00
data/brushes/Media/Makefile
2012-02-05 02:59:21 +08:00
data/brushes/Legacy/Makefile
2012-01-22 00:14:34 +08:00
data/brushes/Sketch/Makefile
data/brushes/Splatters/Makefile
data/brushes/Texture/Makefile
2009-10-16 02:06:42 +08:00
data/dynamics/Makefile
2012-01-22 00:14:34 +08:00
data/dynamics/Basic/Makefile
data/dynamics/FX/Makefile
2002-11-12 11:34:11 +08:00
data/environ/Makefile
2005-06-11 00:38:36 +08:00
data/gradients/Makefile
data/images/Makefile
data/interpreters/Makefile
1998-03-01 14:20:05 +08:00
data/palettes/Makefile
1999-05-30 00:35:47 +08:00
data/patterns/Makefile
2015-02-10 17:46:52 +08:00
data/patterns/Animal/Makefile
data/patterns/Fabric/Makefile
data/patterns/Food/Makefile
data/patterns/Legacy/Makefile
data/patterns/Paper/Makefile
data/patterns/Plant/Makefile
data/patterns/Sky/Makefile
data/patterns/Stone/Makefile
data/patterns/Water/Makefile
data/patterns/Wood/Makefile
2009-02-18 02:43:32 +08:00
data/tags/Makefile
2005-06-11 00:38:36 +08:00
data/tips/Makefile
2012-01-22 00:14:34 +08:00
data/tool-presets/Makefile
2017-06-12 08:31:20 +08:00
data/tool-presets/Crop/Makefile
2012-01-22 00:14:34 +08:00
data/tool-presets/FX/Makefile
data/tool-presets/Paint/Makefile
data/tool-presets/Selection/Makefile
data/tool-presets/Sketch/Makefile
2005-06-16 22:50:43 +08:00
desktop/Makefile
2018-05-25 21:05:47 +08:00
desktop/gimp-data-extras.metainfo.xml.in
2005-06-16 22:50:43 +08:00
desktop/gimp.desktop.in
2018-01-14 10:40:16 +08:00
desktop/org.gimp.GIMP.appdata.xml.in
2019-01-24 06:42:17 +08:00
desktop/test-appdata.sh
2001-11-15 02:44:55 +08:00
etc/Makefile
2018-03-30 18:45:27 +08:00
etc/gimprc
2001-08-28 21:04:47 +08:00
m4macros/Makefile
1999-02-21 07:14:43 +08:00
po/Makefile.in
2000-01-27 18:47:01 +08:00
po-libgimp/Makefile.in
1999-05-30 00:35:47 +08:00
po-plug-ins/Makefile.in
2019-07-29 02:29:46 +08:00
po-python/Makefile.in
2000-02-28 03:35:39 +08:00
po-script-fu/Makefile.in
2005-06-11 00:38:36 +08:00
po-tips/Makefile.in
2017-12-25 04:34:04 +08:00
po-windows-installer/Makefile.in
2003-10-10 05:33:27 +08:00
gimp-zip
2002-03-09 00:38:44 +08:00
Makefile
2002-05-27 21:59:27 +08:00
])
2003-08-14 15:09:27 +08:00
2007-12-21 04:15:53 +08:00
# Files with versions in their names
2004-02-04 03:34:02 +08:00
AC_CONFIG_FILES(
docs/gimp-gimp_app_version.1:docs/gimp.1.in
docs/gimprc-gimp_app_version.5:docs/gimprc.5.in
docs/gimptool-gimp_tool_version.1:docs/gimptool.1.in
gimp-gimp_pkgconfig_version.pc:gimp.pc.in
gimpthumb-gimp_pkgconfig_version.pc:gimpthumb.pc.in
gimpui-gimp_pkgconfig_version.pc:gimpui.pc.in
)
2017-12-27 08:57:21 +08:00
# By default, autoconf will create only po/Makefile.
# This code is used to create the POTFILES and Makefile for all
# additional gettext catalogs.
m4_define([generate_po_makefile], [
AC_MSG_NOTICE([Generating POTFILES and Makefile for $1])
AC_CONFIG_COMMANDS([$1/stamp-it],
2017-12-28 23:16:24 +08:00
[[
2017-12-27 08:57:21 +08:00
if ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ; then
as_fn_error $? "$1/Makefile.in.in was not created by intltoolize." "$LINENO" 5
fi
rm -f "$1/stamp-it" "$1/POTFILES"
sed -e '/^#/d' -e 's/^[[].*] *//' \
-e '/^[ ]*$/d' \
-e "s|^| $ac_top_srcdir/|" \
"$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" && \
sed -e "/^# This comment gets stripped out/ {" \
-e 'r $1/POTFILES' \
2017-12-28 01:45:02 +08:00
-e "d" -e "}" \
"$1/Makefile.in" >"$1/Makefile" && \
2017-12-27 08:57:21 +08:00
touch "$1/stamp-it"
2017-12-28 23:16:24 +08:00
]])
2017-12-27 08:57:21 +08:00
])
generate_po_makefile([po-libgimp])
2019-07-29 02:29:46 +08:00
generate_po_makefile([po-python])
2017-12-27 08:57:21 +08:00
generate_po_makefile([po-plug-ins])
generate_po_makefile([po-script-fu])
generate_po_makefile([po-tips])
generate_po_makefile([po-windows-installer])
2008-06-11 23:21:57 +08:00
2007-12-21 04:15:53 +08:00
# Print a summary of features enabled/disabled:
2015-12-29 01:56:43 +08:00
optional_deps="
2006-02-13 19:16:13 +08:00
Extra Binaries:
Issue #1809: update DLL directory for 32-bit plug-in run from 64-bit...
... Windows installation of GIMP.
Our default installer installs 32-bit version of the various DLLs in
32/bin/ (under the installation prefix). Currently this additional
folder is simply added in the PATH, so it works most of the time.
Unfortunately the PATH is searched last for DLLs, and in particular, it
is searched after system directories. So it means that if any misbehaved
application is installing DLLs in system dirs (and in particular
incompatible/older versions of the same DLLs a GIMP plug-in uses), it
breaks the 32-bit plug-in.
SetDllDirectoryW() bypasses this order and the set folder is searched in
between the binary directory and the system dirs. We were already
setting this for our main bin/ directory, which was good for 64-bit
plug-ins, but this was not protecting 32-bit plug-ins. Now our code to
run plug-ins check the bitness of the executable before running it, and
updates the DLL folder accordingly.
The alternative 32-bit folder can be overridden by the configure option
--with-win32-32bit-dll-folder (default: 32/bin/). This option can only
be set when building for 64-bit Windows obviously.
Alternatively we could have put copies of 32-bit DLLs in a subfolder
with each 32-bit plug-in, but this is at best a terrible workaround, as
we would duplicate DLLs for every such case. And this would not have
protected third-party plug-ins which wish to use some of our DLLs.
Last alternative is to use AddDllDirectory(), but it works since Windows
7 with a given update only. And our current official support is any
Windows since Windows 7. So we don't want to use this right now (also
I'm not sure it would actually be much better than current
implementation, and it seems to have a bit more limitations than
SetDllDirectoryW(), though I have not tested).
(cherry picked from commit 91c139f4d0d4bba7278060896300ecc866d921ee)
2018-08-15 19:52:51 +08:00
gimp-console: $enable_gimp_console
2006-02-13 19:16:13 +08:00
2007-01-19 22:50:13 +08:00
Optional Features:
2018-09-17 22:40:00 +08:00
Levin matting engine: $have_matting_levin
Issue #1809: update DLL directory for 32-bit plug-in run from 64-bit...
... Windows installation of GIMP.
Our default installer installs 32-bit version of the various DLLs in
32/bin/ (under the installation prefix). Currently this additional
folder is simply added in the PATH, so it works most of the time.
Unfortunately the PATH is searched last for DLLs, and in particular, it
is searched after system directories. So it means that if any misbehaved
application is installing DLLs in system dirs (and in particular
incompatible/older versions of the same DLLs a GIMP plug-in uses), it
breaks the 32-bit plug-in.
SetDllDirectoryW() bypasses this order and the set folder is searched in
between the binary directory and the system dirs. We were already
setting this for our main bin/ directory, which was good for 64-bit
plug-ins, but this was not protecting 32-bit plug-ins. Now our code to
run plug-ins check the bitness of the executable before running it, and
updates the DLL folder accordingly.
The alternative 32-bit folder can be overridden by the configure option
--with-win32-32bit-dll-folder (default: 32/bin/). This option can only
be set when building for 64-bit Windows obviously.
Alternatively we could have put copies of 32-bit DLLs in a subfolder
with each 32-bit plug-in, but this is at best a terrible workaround, as
we would duplicate DLLs for every such case. And this would not have
protected third-party plug-ins which wish to use some of our DLLs.
Last alternative is to use AddDllDirectory(), but it works since Windows
7 with a given update only. And our current official support is any
Windows since Windows 7. So we don't want to use this right now (also
I'm not sure it would actually be much better than current
implementation, and it seems to have a bit more limitations than
SetDllDirectoryW(), though I have not tested).
(cherry picked from commit 91c139f4d0d4bba7278060896300ecc866d921ee)
2018-08-15 19:52:51 +08:00
Language selection: $have_iso_codes
Vector icons: $enable_vector_icons
Dr. Mingw (Win32): $enable_drmingw
Relocatable bundle: $enable_relocatable_bundle
Default ICC directory: $with_icc_directory
Debug console (Win32): $enable_win32_debug_console
32-bit DLL folder (Win32): $with_win32_32bit_dll_folder
app: add GimpBacktrace
GimpBacktrace provides an interface for creating and traversing
multi-threaded backtraces, as well as querying symbol information.
While we already have some backtrace functionality, it relies on
external tools for the most part, and as such is rather expensive,
and is only meant for producing opaque backtraces. GimpBacktrace,
on the other hand, is meant to be relatively cheap (we're going to
use it for profiling,) and allow inspection of the backtrace data.
In the future, it might make sense to replace some, or all, of the
other backtrace functions with GimpBacktrace.
GimpBacktrace currently only supports Linux. By default, it uses
dladdr() to query symbol information, which is somewhat limited (in
particular, it doesn't work for static functions.) When libunwind
is installed, GimpBacktrace uses it to get more complete symbol
information. libunwind is currently an optional dependency, but it
might make sense to promote it to a mandatory, or opt-out,
dependency, as it's lightweight and widely available.
On other platforms, the GimpBacktrace interface can still be used,
but it always returns NULL backtraces.
2018-09-02 13:15:35 +08:00
Detailed backtraces: $detailed_backtraces
2007-01-19 22:50:13 +08:00
2006-02-13 19:16:13 +08:00
Optional Plug-Ins:
Issue #1809: update DLL directory for 32-bit plug-in run from 64-bit...
... Windows installation of GIMP.
Our default installer installs 32-bit version of the various DLLs in
32/bin/ (under the installation prefix). Currently this additional
folder is simply added in the PATH, so it works most of the time.
Unfortunately the PATH is searched last for DLLs, and in particular, it
is searched after system directories. So it means that if any misbehaved
application is installing DLLs in system dirs (and in particular
incompatible/older versions of the same DLLs a GIMP plug-in uses), it
breaks the 32-bit plug-in.
SetDllDirectoryW() bypasses this order and the set folder is searched in
between the binary directory and the system dirs. We were already
setting this for our main bin/ directory, which was good for 64-bit
plug-ins, but this was not protecting 32-bit plug-ins. Now our code to
run plug-ins check the bitness of the executable before running it, and
updates the DLL folder accordingly.
The alternative 32-bit folder can be overridden by the configure option
--with-win32-32bit-dll-folder (default: 32/bin/). This option can only
be set when building for 64-bit Windows obviously.
Alternatively we could have put copies of 32-bit DLLs in a subfolder
with each 32-bit plug-in, but this is at best a terrible workaround, as
we would duplicate DLLs for every such case. And this would not have
protected third-party plug-ins which wish to use some of our DLLs.
Last alternative is to use AddDllDirectory(), but it works since Windows
7 with a given update only. And our current official support is any
Windows since Windows 7. So we don't want to use this right now (also
I'm not sure it would actually be much better than current
implementation, and it seems to have a bit more limitations than
SetDllDirectoryW(), though I have not tested).
(cherry picked from commit 91c139f4d0d4bba7278060896300ecc866d921ee)
2018-08-15 19:52:51 +08:00
Ascii Art: $have_libaa
Ghostscript: $have_gs
Help Browser: $have_webkit
JPEG 2000: $have_openjpeg
MNG: $have_libmng
OpenEXR: $have_openexr
WebP: $have_webp
Heif: $have_libheif
2019-06-25 19:20:07 +08:00
Heif >= 1.4.0: $have_libheif_1_4_0
Issue #1809: update DLL directory for 32-bit plug-in run from 64-bit...
... Windows installation of GIMP.
Our default installer installs 32-bit version of the various DLLs in
32/bin/ (under the installation prefix). Currently this additional
folder is simply added in the PATH, so it works most of the time.
Unfortunately the PATH is searched last for DLLs, and in particular, it
is searched after system directories. So it means that if any misbehaved
application is installing DLLs in system dirs (and in particular
incompatible/older versions of the same DLLs a GIMP plug-in uses), it
breaks the 32-bit plug-in.
SetDllDirectoryW() bypasses this order and the set folder is searched in
between the binary directory and the system dirs. We were already
setting this for our main bin/ directory, which was good for 64-bit
plug-ins, but this was not protecting 32-bit plug-ins. Now our code to
run plug-ins check the bitness of the executable before running it, and
updates the DLL folder accordingly.
The alternative 32-bit folder can be overridden by the configure option
--with-win32-32bit-dll-folder (default: 32/bin/). This option can only
be set when building for 64-bit Windows obviously.
Alternatively we could have put copies of 32-bit DLLs in a subfolder
with each 32-bit plug-in, but this is at best a terrible workaround, as
we would duplicate DLLs for every such case. And this would not have
protected third-party plug-ins which wish to use some of our DLLs.
Last alternative is to use AddDllDirectory(), but it works since Windows
7 with a given update only. And our current official support is any
Windows since Windows 7. So we don't want to use this right now (also
I'm not sure it would actually be much better than current
implementation, and it seems to have a bit more limitations than
SetDllDirectoryW(), though I have not tested).
(cherry picked from commit 91c139f4d0d4bba7278060896300ecc866d921ee)
2018-08-15 19:52:51 +08:00
PDF (export): $have_cairo_pdf
Print: $enable_print
2019-08-07 00:23:29 +08:00
Python 3 plug-ins: $with_python
Issue #1809: update DLL directory for 32-bit plug-in run from 64-bit...
... Windows installation of GIMP.
Our default installer installs 32-bit version of the various DLLs in
32/bin/ (under the installation prefix). Currently this additional
folder is simply added in the PATH, so it works most of the time.
Unfortunately the PATH is searched last for DLLs, and in particular, it
is searched after system directories. So it means that if any misbehaved
application is installing DLLs in system dirs (and in particular
incompatible/older versions of the same DLLs a GIMP plug-in uses), it
breaks the 32-bit plug-in.
SetDllDirectoryW() bypasses this order and the set folder is searched in
between the binary directory and the system dirs. We were already
setting this for our main bin/ directory, which was good for 64-bit
plug-ins, but this was not protecting 32-bit plug-ins. Now our code to
run plug-ins check the bitness of the executable before running it, and
updates the DLL folder accordingly.
The alternative 32-bit folder can be overridden by the configure option
--with-win32-32bit-dll-folder (default: 32/bin/). This option can only
be set when building for 64-bit Windows obviously.
Alternatively we could have put copies of 32-bit DLLs in a subfolder
with each 32-bit plug-in, but this is at best a terrible workaround, as
we would duplicate DLLs for every such case. And this would not have
protected third-party plug-ins which wish to use some of our DLLs.
Last alternative is to use AddDllDirectory(), but it works since Windows
7 with a given update only. And our current official support is any
Windows since Windows 7. So we don't want to use this right now (also
I'm not sure it would actually be much better than current
implementation, and it seems to have a bit more limitations than
SetDllDirectoryW(), though I have not tested).
(cherry picked from commit 91c139f4d0d4bba7278060896300ecc866d921ee)
2018-08-15 19:52:51 +08:00
TWAIN (Win32): $os_win32
Webpage: $have_webkit
WMF: $have_libwmf
X11 Mouse Cursor: $have_xmc
XPM: $have_libxpm
Email: $have_email
2006-02-13 19:16:13 +08:00
Optional Modules:
Issue #1809: update DLL directory for 32-bit plug-in run from 64-bit...
... Windows installation of GIMP.
Our default installer installs 32-bit version of the various DLLs in
32/bin/ (under the installation prefix). Currently this additional
folder is simply added in the PATH, so it works most of the time.
Unfortunately the PATH is searched last for DLLs, and in particular, it
is searched after system directories. So it means that if any misbehaved
application is installing DLLs in system dirs (and in particular
incompatible/older versions of the same DLLs a GIMP plug-in uses), it
breaks the 32-bit plug-in.
SetDllDirectoryW() bypasses this order and the set folder is searched in
between the binary directory and the system dirs. We were already
setting this for our main bin/ directory, which was good for 64-bit
plug-ins, but this was not protecting 32-bit plug-ins. Now our code to
run plug-ins check the bitness of the executable before running it, and
updates the DLL folder accordingly.
The alternative 32-bit folder can be overridden by the configure option
--with-win32-32bit-dll-folder (default: 32/bin/). This option can only
be set when building for 64-bit Windows obviously.
Alternatively we could have put copies of 32-bit DLLs in a subfolder
with each 32-bit plug-in, but this is at best a terrible workaround, as
we would duplicate DLLs for every such case. And this would not have
protected third-party plug-ins which wish to use some of our DLLs.
Last alternative is to use AddDllDirectory(), but it works since Windows
7 with a given update only. And our current official support is any
Windows since Windows 7. So we don't want to use this right now (also
I'm not sure it would actually be much better than current
implementation, and it seems to have a bit more limitations than
SetDllDirectoryW(), though I have not tested).
(cherry picked from commit 91c139f4d0d4bba7278060896300ecc866d921ee)
2018-08-15 19:52:51 +08:00
ALSA (MIDI Input): $have_alsa
Linux Input: $have_linux_input (GUdev support: $have_libgudev)
DirectInput (Win32): $have_dx_dinput
2011-02-13 05:37:46 +08:00
Tests:
Issue #1809: update DLL directory for 32-bit plug-in run from 64-bit...
... Windows installation of GIMP.
Our default installer installs 32-bit version of the various DLLs in
32/bin/ (under the installation prefix). Currently this additional
folder is simply added in the PATH, so it works most of the time.
Unfortunately the PATH is searched last for DLLs, and in particular, it
is searched after system directories. So it means that if any misbehaved
application is installing DLLs in system dirs (and in particular
incompatible/older versions of the same DLLs a GIMP plug-in uses), it
breaks the 32-bit plug-in.
SetDllDirectoryW() bypasses this order and the set folder is searched in
between the binary directory and the system dirs. We were already
setting this for our main bin/ directory, which was good for 64-bit
plug-ins, but this was not protecting 32-bit plug-ins. Now our code to
run plug-ins check the bitness of the executable before running it, and
updates the DLL folder accordingly.
The alternative 32-bit folder can be overridden by the configure option
--with-win32-32bit-dll-folder (default: 32/bin/). This option can only
be set when building for 64-bit Windows obviously.
Alternatively we could have put copies of 32-bit DLLs in a subfolder
with each 32-bit plug-in, but this is at best a terrible workaround, as
we would duplicate DLLs for every such case. And this would not have
protected third-party plug-ins which wish to use some of our DLLs.
Last alternative is to use AddDllDirectory(), but it works since Windows
7 with a given update only. And our current official support is any
Windows since Windows 7. So we don't want to use this right now (also
I'm not sure it would actually be much better than current
implementation, and it seems to have a bit more limitations than
SetDllDirectoryW(), though I have not tested).
(cherry picked from commit 91c139f4d0d4bba7278060896300ecc866d921ee)
2018-08-15 19:52:51 +08:00
Use xvfb-run $have_xvfb_run
Test appdata $have_appstream_util
Test desktop file $have_desktop_file_validate
2018-05-14 11:33:14 +08:00
Bug report URL: $with_bug_report_url
2019-08-07 00:23:29 +08:00
$override_bug_report_url$warning_vector_icons_windows$warning_glib_networking$warning_gcc$warning_python"
2015-12-29 01:56:43 +08:00
if test "x$required_deps" = "x"; then
2016-01-02 23:12:03 +08:00
AC_OUTPUT
2015-12-29 01:56:43 +08:00
AC_MSG_RESULT([
Building GIMP with prefix=$prefix, datarootdir=$datarootdir
Desktop files install into $DESKTOP_DATADIR
$optional_deps]);
else
AC_MSG_ERROR([
2016-05-31 07:20:51 +08:00
$optional_deps
2016-08-26 09:11:57 +08:00
Error: GIMP configuration failed.
$required_deps
2015-12-29 01:56:43 +08:00
2016-05-31 07:20:51 +08:00
See the file 'INSTALL' for more help.]);
2015-12-29 01:56:43 +08:00
fi