libvips/configure.ac

1417 lines
42 KiB
Plaintext
Raw Normal View History

2007-08-29 18:23:50 +02:00
# Process this file with autoconf to produce a configure script.
2011-06-20 19:00:01 +02:00
# also update the version number in the m4 macros below
AC_INIT([vips], [8.11.0], [vipsip@jiscmail.ac.uk])
2011-06-20 19:00:01 +02:00
# required for gobject-introspection
AC_PREREQ(2.62)
# gobject-introspection recommends -Wno-portability
# foreign stops complaints about a missing README (we use README.md instead)
# and missing INSTALL (the standard Gnu INSTALL is not very useful)
# subdir-objects lets us have dummy.cc in a subdir
2014-04-20 11:16:34 +02:00
AM_INIT_AUTOMAKE([-Wno-portability foreign subdir-objects])
2011-06-20 19:00:01 +02:00
AC_CONFIG_HEADERS([config.h])
2012-01-11 16:00:37 +01:00
AC_CONFIG_MACRO_DIR([m4])
2007-08-29 18:23:50 +02:00
# user-visible library versioning
2015-02-11 18:01:02 +01:00
m4_define([vips_major_version], [8])
m4_define([vips_minor_version], [11])
m4_define([vips_micro_version], [0])
2010-04-18 17:58:36 +02:00
m4_define([vips_version],
[vips_major_version.vips_minor_version.vips_micro_version])
2011-06-20 19:00:01 +02:00
VIPS_MAJOR_VERSION=vips_major_version()
VIPS_MINOR_VERSION=vips_minor_version()
VIPS_MICRO_VERSION=vips_micro_version()
VIPS_VERSION=vips_version()
VIPS_VERSION_STRING=$VIPS_VERSION-`date -u -r $srcdir/ChangeLog`
2007-08-29 18:23:50 +02:00
# libtool library versioning ... not user-visible (except as part of the
# library file name) and does not correspond to major/minor/micro above
# rules:
# sources changed: increment revision
2012-03-09 10:47:28 +01:00
# binary interface changed: increment current, reset revision to 0
# binary interface changes backwards compatible?: increment age
# binary interface changes not backwards compatible?: reset age to 0
LIBRARY_CURRENT=55
LIBRARY_REVISION=0
LIBRARY_AGE=13
# patched into include/vips/version.h
AC_SUBST(VIPS_VERSION)
AC_SUBST(VIPS_VERSION_STRING)
AC_SUBST(VIPS_MAJOR_VERSION)
AC_SUBST(VIPS_MINOR_VERSION)
AC_SUBST(VIPS_MICRO_VERSION)
# put into library name by libsrc/Makefile.am and libsrcCC/Makefile.am
AC_SUBST(LIBRARY_CURRENT)
AC_SUBST(LIBRARY_REVISION)
AC_SUBST(LIBRARY_AGE)
# init introspection support
2012-01-11 16:00:37 +01:00
GOBJECT_INTROSPECTION_CHECK([1.30.0])
2011-06-20 19:00:01 +02:00
2020-07-07 11:08:49 +02:00
# remove the '(disabled, use --enable-introspection to enable)'
# suffix from the found_introspection variable
if test "x$found_introspection" != x"yes"; then
found_introspection=no
fi
2011-06-20 19:00:01 +02:00
# gir needs a list of source files to scan for introspection
2012-01-11 16:00:37 +01:00
#
2011-06-20 19:00:01 +02:00
# build with a glob and a list of files to exclude from scanning
2015-02-11 18:01:02 +01:00
# see also IGNORE_HFILES in doc/Makefile.am
introspection_sources=$(cd $srcdir/libvips ; find . -path ./deprecated -prune -o -name dummy.c -prune -o -name introspect.c -prune -o \( -name "*.c" -o -name "*.cpp" \) -print)
2011-06-20 19:00:01 +02:00
for name in $introspection_sources; do
vips_introspection_sources="$vips_introspection_sources $name"
done
2011-06-21 23:37:53 +02:00
# add headers that form the public vips8 API .. don't do a find and exclude,
# we end up excluding almost everything argh
2014-09-06 00:18:16 +02:00
headers="\
basic.h \
vips.h \
object.h \
image.h \
error.h \
foreign.h \
freqfilt.h \
2014-09-06 00:18:16 +02:00
interpolate.h \
header.h \
histogram.h \
2014-09-06 00:18:16 +02:00
operation.h \
2014-09-11 20:28:17 +02:00
enumtypes.h \
2014-09-06 00:18:16 +02:00
conversion.h \
2014-09-11 20:28:17 +02:00
arithmetic.h \
colour.h \
2014-09-06 00:18:16 +02:00
convolution.h \
create.h \
2014-09-06 00:18:16 +02:00
draw.h \
morphology.h \
mosaicing.h \
2014-09-11 20:28:17 +02:00
type.h \
2016-07-13 10:24:41 +02:00
rect.h \
resample.h \
memory.h \
2014-09-11 20:28:17 +02:00
region.h"
2014-09-06 00:18:16 +02:00
2011-06-21 23:37:53 +02:00
for name in $headers; do
vips_introspection_sources="$vips_introspection_sources include/vips/$name"
done
2011-06-20 19:00:01 +02:00
AC_SUBST(vips_introspection_sources)
2007-08-29 18:23:50 +02:00
AC_CANONICAL_HOST
2010-04-06 11:02:26 +02:00
AC_DEFINE_UNQUOTED(G_LOG_DOMAIN, "VIPS", [Domain for glib logging messages.])
m4_define([debug_default], [no])
2010-04-18 17:58:36 +02:00
AC_ARG_ENABLE(debug,
AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
[turn on debugging @<:@default=debug_default()@:>@]),,
enable_debug=debug_default())
if test x"$enable_debug" = x"yes"; then
2010-04-18 17:58:36 +02:00
VIPS_DEBUG_FLAGS="-DDEBUG_FATAL -DDEBUG_LEAK"
else
VIPS_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
if test x"$enable_debug" = x"no"; then
2010-04-18 17:58:36 +02:00
VIPS_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS"
fi
fi
# option to disable deprecated code, shaves a bit off the library size
AC_ARG_ENABLE(deprecated,
AS_HELP_STRING([--enable-deprecated], [build deprecated components (default: yes)]))
VIPS_ENABLE_DEPRECATED=0
if test x"$enable_deprecated" != x"no"; then
VIPS_ENABLE_DEPRECATED=1
enable_deprecated=yes
fi
AC_DEFINE_UNQUOTED(ENABLE_DEPRECATED,$VIPS_ENABLE_DEPRECATED,[define to build deprecated components])
2019-05-10 17:43:17 +02:00
AM_CONDITIONAL(ENABLE_DEPRECATED, [test x"$enable_deprecated" = x"yes"])
# this gets pasted into version.h as a #define
AC_SUBST(VIPS_ENABLE_DEPRECATED)
2014-06-27 14:11:57 +02:00
# we are a C library with some optional C++ components inside it
# on most platforms, but not all, we just include -lstdc++ in the link line
# for programs
2014-06-27 14:11:57 +02:00
2019-05-10 17:43:17 +02:00
# we ought to have a proper configure test for this :(
2014-06-27 14:11:57 +02:00
AC_MSG_CHECKING([for needs -lstdc++])
case "$host_os" in
freebsd*)
vips_needs_stdcpp=no
;;
*)
vips_needs_stdcpp=yes
;;
esac
AC_MSG_RESULT([$vips_needs_stdcpp])
2007-08-29 18:23:50 +02:00
AC_MSG_CHECKING([for native Win32])
case "$host" in
*-*-mingw*)
vips_os_win32=yes
;;
*)
vips_os_win32=no
;;
esac
AC_MSG_RESULT([$vips_os_win32])
if test x"$vips_os_win32" = x"yes"; then
2007-08-29 18:23:50 +02:00
AC_DEFINE(OS_WIN32,1,[native win32])
# makes gcc use win native alignment
VIPS_CFLAGS="-mms-bitfields $VIPS_CFLAGS"
fi
2007-10-31 17:41:33 +01:00
# CImg needs flags changed on win32
2019-05-10 17:43:17 +02:00
AM_CONDITIONAL(OS_WIN32, [test x"$vips_os_win32" = x"yes"])
2007-10-31 17:41:33 +01:00
2007-08-29 18:23:50 +02:00
# Cygwin/mingw need binary open to avoid CR/LF madness
# ... should be a better way to test for this
AC_MSG_CHECKING([for binary open needed])
case "$host_os" in
cygwin* | mingw*)
vips_binary_open=yes
;;
*)
vips_binary_open=no
;;
esac
AC_MSG_RESULT([$vips_binary_open])
if test x"$vips_binary_open" = x"yes"; then
2007-08-29 18:23:50 +02:00
AC_DEFINE(BINARY_OPEN,1,[define to open non-text files in binary mode])
fi
2010-03-08 19:24:44 +01:00
AC_MSG_CHECKING([for Mac OS X])
case "$host" in
*-*-darwin*)
vips_os_darwin=yes
;;
*)
vips_os_darwin=no
;;
esac
AC_MSG_RESULT([$vips_os_darwin])
if test x"$vips_os_darwin" = x"yes"; then
AC_DEFINE(VIPS_OS_DARWIN,1,[native Mac OS X])
fi
# set the default directory for ICC profiles
if test x"$vips_os_darwin" = x"yes"; then
profile_dir="/Library/ColorSync/Profiles"
elif test x"$vips_os_win32" = x"yes"; then
2016-08-16 19:33:48 +02:00
# need double escapes since this will get pasted into a #define in a C
# header ... the C:\Windows is usually overrwritten with the result of
# GetWindowsDirectoryW()
2016-08-16 19:33:48 +02:00
profile_dir="C:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\color"
2010-03-08 19:24:44 +01:00
else
profile_dir="/usr/share/color/icc"
fi
AC_DEFINE_UNQUOTED(VIPS_ICC_DIR,"$profile_dir",[default directory for ICC profiles])
2007-08-29 18:23:50 +02:00
# we want largefile support, if possible
AC_SYS_LARGEFILE
2020-07-10 18:34:40 +02:00
# we use libtool
LT_INIT
2007-08-29 18:23:50 +02:00
# Checks for programs.
AC_PROG_AWK
AC_PROG_CC
AC_PROG_CC_STDC
2010-09-01 13:16:57 +02:00
AC_PROG_CXX
2007-08-29 18:23:50 +02:00
AC_PROG_INSTALL
AC_PROG_LN_S
AM_WITH_DMALLOC
2020-09-06 17:10:55 +02:00
AC_ARG_WITH([doxygen],
AS_HELP_STRING([--without-doxygen], [build without doxygen (default: test)]))
if test x"$with_doxygen" != x"no"; then
AC_CHECK_PROGS([DOXYGEN], [doxygen])
if test "$DOXYGEN"; then
with_doxygen=yes
else
AC_MSG_WARN([doxygen not found; C++ docs will not be generated])
2020-09-06 17:10:55 +02:00
with_doxygen=no
fi
fi
AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"])
# we need a fully expanded version of $libdir
# without this we get something like
# define VIPS_LIBDIR ${exec_prefix}/lib
# argh
test x"$prefix" = x"NONE" && prefix=$ac_default_prefix
test x"$exec_prefix" = x"NONE" && exec_prefix='${prefix}'
2011-08-09 13:45:42 +02:00
# set $expanded_value to the fully-expanded value of the argument
expand () {
eval expanded_value=$1
if test x"$expanded_value" != x"$1"; then
expand "$expanded_value"
fi
}
expand $libdir
VIPS_LIBDIR=$expanded_value
# this gets pasted into version.h as a #define
VIPS_EXEEXT=$EXEEXT
AC_SUBST(VIPS_EXEEXT)
2007-08-29 18:23:50 +02:00
# vips.c/im_guess_prefix.c need to know the exe suffix and (as a fallback)
2008-05-16 15:18:04 +02:00
# the configure-time install prefix
AC_DEFINE_UNQUOTED(VIPS_PREFIX,"$prefix",[configure-time install prefix])
AC_DEFINE_UNQUOTED(VIPS_LIBDIR,"$VIPS_LIBDIR",[configure-time library directory])
2007-08-29 18:23:50 +02:00
# i18n
# we need to name our .mo with major.minor so we can have multiple versions
# installed in parallel on Debian
expand vips$VIPS_MAJOR_VERSION.$VIPS_MINOR_VERSION
GETTEXT_PACKAGE=$expanded_value
2007-08-29 18:23:50 +02:00
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[The prefix for our gettext translation domains.])
2010-05-26 13:19:25 +02:00
# the 'malkovich' one is there for testing only, remove for release
#ALL_LINGUAS="en_GB de malkovich"
2010-05-24 12:05:59 +02:00
ALL_LINGUAS="en_GB de"
2007-08-29 18:23:50 +02:00
AM_GLIB_GNU_GETTEXT
# we need to disable some features on some known-bad gcc versions
# these will be "" for clang etc.
#
# I couldn't get this to work, mysterious! do it ourselves
#
# AX_CHECK_COMPILE_FLAG([-dumpversion],
# [ax_gcc_version_option=yes],
# [ax_gcc_version_option=no]
# )
AC_MSG_CHECKING([for gcc version])
GCC_VERSION=""
version=$($CC -dumpversion)
if test $? = 0; then
GCC_VERSION=$version
AC_MSG_RESULT([$GCC_VERSION])
else
AC_MSG_RESULT([-dumpversion not supported])
fi
GCC_VERSION_MAJOR=$(echo $GCC_VERSION | cut -d'.' -f1)
GCC_VERSION_MINOR=$(echo $GCC_VERSION | cut -d'.' -f2)
GCC_VERSION_PATCH=$(echo $GCC_VERSION | cut -d'.' -f3)
2007-08-29 18:23:50 +02:00
# Checks for libraries.
# build list of pkg-config packages we used here
PACKAGES_USED=""
# build list of extra libs we need here
# the main one is jpeg: it does not have a .pc file, so when we make vips.pc
# we need to put -ljpeg into libs ourselves
EXTRA_LIBS_USED=""
2007-08-29 18:23:50 +02:00
# Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_CHECK_HEADERS([errno.h math.h fcntl.h limits.h stdlib.h string.h sys/file.h sys/ioctl.h sys/param.h sys/time.h sys/mman.h sys/types.h sys/stat.h unistd.h io.h direct.h windows.h])
# uncomment to change which libs we build
# AC_DISABLE_SHARED
# AC_DISABLE_STATIC
AC_LIBTOOL_WIN32_DLL
AC_CHECK_TOOL(DLLWRAP, dllwrap)
AC_CHECK_TOOL(DLLTOOL, dlltool)
AC_CHECK_TOOL(OBJDUMP, objdump)
AC_CHECK_TOOL(RANLIB, ranlib)
AC_CHECK_TOOL(STRIP, strip)
AC_CHECK_TOOL(AR, ar)
AC_CHECK_TOOL(AS, as)
AC_CHECK_TOOL(LD, ld)
2008-11-02 23:11:01 +01:00
AC_PROVIDE([AC_LIBTOOL_WIN32_DLL])
2007-08-29 18:23:50 +02:00
AC_PROG_LIBTOOL
# Checks for typedefs, structures, and compiler characteristics.
2017-10-02 10:22:06 +02:00
AC_C_RESTRICT
AX_GCC_VAR_ATTRIBUTE(vector_size)
2007-08-29 18:23:50 +02:00
AC_C_CONST
AC_TYPE_MODE_T
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
# g++/gcc 4.x and 5.x have rather broken vector support ... 5.4.1 seems to
# work, but 5.4.0 fails to even compile
AC_MSG_CHECKING([for gcc with working vector support])
if test x"$GCC_VERSION_MAJOR" != x"4" -a x"$GCC_VERSION_MAJOR" != x"5"; then
AC_MSG_RESULT([yes])
else
ax_cv_have_var_attribute_vector_size=no
AC_MSG_RESULT([no])
fi
2017-10-02 10:22:06 +02:00
# we need to be able to shuffle vectors in C++
if test x"$ax_cv_have_var_attribute_vector_size" = x"yes"; then
2017-10-02 10:36:07 +02:00
AC_MSG_CHECKING([for C++ vector shuffle])
AC_LANG_PUSH([C++])
2017-10-02 10:22:06 +02:00
AC_TRY_COMPILE([
typedef float v4f __attribute__((vector_size(4 * sizeof(float))));
],[
v4f f; f[3] = 99;
],[
AC_MSG_RESULT([yes])
have_vector_shuffle=yes
], [
AC_MSG_RESULT([no])
have_vector_shuffle=no
])
2017-10-02 10:36:07 +02:00
AC_LANG_POP([C++])
2017-10-02 10:22:06 +02:00
if test x"$have_vector_shuffle" = x"yes"; then
2017-10-02 10:22:06 +02:00
AC_DEFINE_UNQUOTED(HAVE_VECTOR_SHUFFLE, 1,
[define if your C++ can shuffle vectors])
fi
fi
# we also need to be able to mix vector and scalar arithmetic
if test x"$have_vector_shuffle" = x"yes"; then
AC_MSG_CHECKING([for C++ vector arithmetic])
AC_LANG_PUSH([C++])
AC_TRY_COMPILE([
typedef float v4f __attribute__((vector_size(4 * sizeof(float))));
],[
2017-10-06 18:34:14 +02:00
v4f f = {1, 2, 3, 4}; f *= 12.0;
v4f g = {5, 6, 7, 8}; f = g > 0 ? g : -1 * g;
],[
AC_MSG_RESULT([yes])
have_vector_arith=yes
], [
AC_MSG_RESULT([no])
have_vector_arith=no
])
AC_LANG_POP([C++])
fi
# gcc 7.2 seems to work, but then gets confused by signed constants in
# templates
if test x"$have_vector_arith" = x"yes"; then
AC_MSG_CHECKING([for C++ signed constants in vector templates])
AC_LANG_PUSH([C++])
AC_TRY_COMPILE([
typedef float v4f __attribute__((vector_size(4 * sizeof(float))));
template <typename T>
static void
h( v4f B )
{
v4f f;
f = -1 * B;
}
],[
],[
AC_MSG_RESULT([yes])
], [
AC_MSG_RESULT([no])
have_vector_arith=no
])
AC_LANG_POP([C++])
if test x"$have_vector_arith" = x"yes"; then
AC_DEFINE_UNQUOTED(HAVE_VECTOR_ARITH, 1,
[define if your C++ can mix vector and scalar arithmetic])
fi
fi
2007-08-29 18:23:50 +02:00
# Checks for library functions.
AC_FUNC_MEMCMP
AC_FUNC_MMAP
AC_FUNC_VPRINTF
2011-11-10 15:10:24 +01:00
AC_CHECK_FUNCS([getcwd gettimeofday getwd memset munmap putenv realpath strcasecmp strchr strcspn strdup strerror strrchr strspn vsnprintf realpath mkstemp mktemp random rand sysconf atexit])
2007-08-29 18:23:50 +02:00
AC_CHECK_LIB(m,cbrt,[AC_DEFINE(HAVE_CBRT,1,[have cbrt() in libm.])])
AC_CHECK_LIB(m,hypot,[AC_DEFINE(HAVE_HYPOT,1,[have hypot() in libm.])])
AC_CHECK_LIB(m,atan2,[AC_DEFINE(HAVE_ATAN2,1,[have atan2() in libm.])])
2007-08-29 18:23:50 +02:00
# have to have these parts of glib ... we need glib 2.15 for gio
PKG_CHECK_MODULES(REQUIRED, glib-2.0 >= 2.15 gmodule-2.0 gobject-2.0 gio-2.0)
PACKAGES_USED="$PACKAGES_USED glib-2.0 gmodule-2.0 gobject-2.0 gio-2.0"
# from 2.28 we have a monotonic timer
2019-10-28 09:05:15 +01:00
PKG_CHECK_MODULES(MONOTONIC_TIME, glib-2.0 >= 2.28,
[AC_DEFINE(HAVE_MONOTONIC_TIME,1,
[define if your glib has g_get_monotonic_time().]
)
],
[:
]
)
2019-10-28 08:36:19 +01:00
# from 2.62 we have datetime
2019-10-28 09:05:15 +01:00
PKG_CHECK_MODULES(DATE_TIME_FORMAT_ISO8601, glib-2.0 >= 2.62,
[AC_DEFINE(HAVE_DATE_TIME_FORMAT_ISO8601,1,
2019-10-28 08:36:19 +01:00
[define if your glib has g_date_time_format_iso8601().]
)
],
[:
]
)
# from 2.32 there are a new set of thread functions, it is no longer
# necessary to use g_thread_init() or to link against libgthread
PKG_CHECK_MODULES(THREADS, glib-2.0 >= 2.32,
[AC_DEFINE(HAVE_MUTEX_INIT,1,[define if your glib has g_mutex_init().])
AC_DEFINE(HAVE_COND_INIT,1,[define if your glib has g_cond_init().])
AC_DEFINE(HAVE_THREAD_NEW,1,[define if your glib has g_thread_new().])
AC_DEFINE(HAVE_PRIVATE_INIT,1,[define if your glib has G_PRIVATE_INIT().])
AC_DEFINE(HAVE_VALUE_GET_SCHAR,1,
[define if your glib has g_value_get_schar().]
)
],
[PKG_CHECK_MODULES(GTHREAD, gthread-2.0)
PACKAGES_USED="$PACKAGES_USED gthread-2.0"
]
)
2007-08-29 18:23:50 +02:00
2019-08-05 14:53:00 +02:00
# if available, we use pthread_setattr_default_np() to raise the per-thread
# stack size ... musl (libc on Alpine), for example, has a very small stack per
2019-08-05 14:53:00 +02:00
# thread by default
save_pthread_LIBS="$LIBS"
save_pthread_CFLAGS="$CFLAGS"
2019-08-05 14:53:00 +02:00
LIBS="$LIBS $GTHREAD_LIBS"
CFLAGS="$CFLAGS $GTHREAD_CFLAGS"
AC_CHECK_FUNC(pthread_setattr_default_np,
[AC_DEFINE(HAVE_PTHREAD_DEFAULT_NP,1,[have pthread_setattr_default_np().])
2019-08-05 14:53:00 +02:00
]
)
LIBS="$save_pthread_LIBS"
CFLAGS="$save_pthread_CFLAGS"
2019-08-05 14:53:00 +02:00
# from 2.36 the type system inits itself
PKG_CHECK_MODULES(TYPE_INIT, glib-2.0 < 2.36,
[AC_DEFINE(HAVE_TYPE_INIT,1,[define if your glib needs g_type_init().])
],
[:
]
)
# from 2.40, on win32 we have g_win32_get_command_line()
2018-04-23 16:17:53 +02:00
PKG_CHECK_MODULES(WIN32_GET_COMMAND_LINE, glib-2.0 >= 2.40,
2016-08-16 17:22:38 +02:00
[if test x"$vips_os_win32" = x"yes"; then
AC_DEFINE(HAVE_G_WIN32_GET_COMMAND_LINE,1,[define if your glib has g_win32_get_command_line().])
have_g_win32_get_command_line=yes
fi
],
[:
]
)
# from 2.40, have g_str_to_ascii()
PKG_CHECK_MODULES(STR_TO_ASCII, glib-2.0 >= 2.40,
[AC_DEFINE(HAVE_G_STR_TO_ASCII,1,[define if your glib has g_str_to_ascii().])
],
[:
]
)
2018-06-30 22:57:00 +02:00
# from 2.48 we have g_uint_checked_mul() etc.
PKG_CHECK_MODULES(HAVE_CHECKED_MUL, glib-2.0 >= 2.48,
[AC_DEFINE(HAVE_CHECKED_MUL,1,[define if your glib has checked multiply.])
],
[:
]
)
2009-08-16 17:00:08 +02:00
# check for gtk-doc
2014-03-23 13:26:06 +01:00
GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
2009-08-16 17:00:08 +02:00
# we need expat ... the .pc file for expat is only available
# for recent linuxes, so we fall back to AM_WITH_EXPAT
PKG_CHECK_MODULES(EXPAT, expat,
[expat_found=yes
PACKAGES_USED="$PACKAGES_USED expat"
],
[AM_WITH_EXPAT
]
)
if test x"$expat_found" = x"no"; then
exit 1
fi
2007-08-29 18:23:50 +02:00
# optional supporting libraries
AC_ARG_WITH([gsf],
AS_HELP_STRING([--without-gsf], [build without libgsf-1 (default: test)]))
# libgsf-1 1.14.21 crashes
# .27 is known to work well
# .26 seems OK but has not been tested much
# not sure about 22-25
if test x"$with_gsf" != x"no"; then
PKG_CHECK_MODULES(GSF, libgsf-1 >= 1.14.26,
[AC_DEFINE(HAVE_GSF,1,[define if you have libgsf-1 installed.])
with_gsf=yes
PACKAGES_USED="$PACKAGES_USED libgsf-1"
],
[AC_MSG_WARN([libgsf-1 not found; disabling dzsave support])
with_gsf=no
]
)
# zip64 and deflate-level came in .31
PKG_CHECK_MODULES(GSF_ZIP64, libgsf-1 >= 1.14.31,
[AC_DEFINE(HAVE_GSF_ZIP64,1,[define if your libgsf supports zip64.])
AC_DEFINE(HAVE_GSF_DEFLATE_LEVEL,1,
[define if your libgsf supports deflate-level.])
],
[:
]
)
fi
2012-01-28 12:27:16 +01:00
AC_ARG_WITH([fftw],
AS_HELP_STRING([--without-fftw], [build without fftw (default: test)]))
if test x"$with_fftw" != x"no"; then
2012-01-28 12:27:16 +01:00
PKG_CHECK_MODULES(FFTW, fftw3,
[AC_DEFINE(HAVE_FFTW,1,[define if you have fftw3 installed.])
with_fftw=yes
PACKAGES_USED="$PACKAGES_USED fftw3"
],
2012-01-28 12:27:16 +01:00
[AC_MSG_WARN([fftw not found; disabling fftw support])
with_fftw=no
]
)
2007-08-29 18:23:50 +02:00
fi
# ImageMagick
2008-07-10 12:14:31 +02:00
AC_ARG_WITH([magick],
AS_HELP_STRING([--without-magick], [build without libMagic (default: test)]))
2008-07-10 12:14:31 +02:00
AC_ARG_WITH([magickpackage],
AS_HELP_STRING([--with-magickpackage],
[magickpackage to use (default: MagickCore; try GraphicsMagick to build against gm instead)]))
2008-07-10 12:14:31 +02:00
# set the default magick package ... very old imagemagicks called it
# ImageMagick
if test x"$with_magickpackage" = x""; then
PKG_CHECK_MODULES(MAGICK_WAND, MagickCore,
[with_magickpackage=MagickCore
],
2008-07-10 12:14:31 +02:00
[PKG_CHECK_MODULES(IMAGE_MAGICK, ImageMagick,
[with_magickpackage=ImageMagick
],
[AC_MSG_WARN([neither MagickCore nor ImageMagick found; disabling Magick support])
with_magick=no
]
)
]
)
2008-02-21 17:10:24 +01:00
fi
2007-08-29 18:23:50 +02:00
# we have a separate loader for magick7 with fewer ifdef
# options; only test for features on the magick6 case
magick_version=
if test x"$with_magick" != x"no"; then
PKG_CHECK_MODULES(MAGICK, $with_magickpackage >= 7.0,
[AC_DEFINE(HAVE_MAGICK7,1,[define if you have libMagick7 installed.])
with_magick=yes
magick7=yes
magick_version=magick7
PACKAGES_USED="$PACKAGES_USED $with_magickpackage"
],
[PKG_CHECK_MODULES(MAGICK, $with_magickpackage,
[AC_DEFINE(HAVE_MAGICK6,1,[define if you have libMagick6 installed.])
with_magick=yes
magick6=yes
magick_version=magick6
PACKAGES_USED="$PACKAGES_USED $with_magickpackage"
],
[AC_MSG_WARN([$with_magickpackage not found; disabling Magick support])
with_magick=no
]
)
]
)
else
with_magick=no
magick6=no
magick_version=none
with_magickpackage=none
2007-08-29 18:23:50 +02:00
fi
if test x"$magick6" = x"yes"; then
2018-06-10 13:15:02 +02:00
# do we have number_scenes in image_info ... imagemagick uses this
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $MAGICK_CFLAGS"
AC_CHECK_MEMBER([struct _ImageInfo.number_scenes],
AC_DEFINE(HAVE_NUMBER_SCENES,1,
[define if your magick has ImageInfo.number_scenes.]),
[],
[#include <magick/api.h>])
CFLAGS="$save_CFLAGS"
fi
if test x"$magick6" = x"yes"; then
# the magick6 API varies a lot between magick versions, and between GM and
# IM
save_LIBS="$LIBS"
LIBS="$LIBS $MAGICK_LIBS"
AC_CHECK_FUNCS([InheritException AcquireExceptionInfo SetImageProperty SetImageExtent AcquireImage GetVirtualPixels ResetImageProfileIterator ResetImageAttributeIterator ResetImagePropertyIterator MagickCoreGenesis SetImageOption BlobToStringInfo OptimizePlusImageLayers OptimizeImageTransparency])
LIBS="$save_LIBS"
fi
if test x"$magick6" = x"yes"; then
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $MAGICK_CFLAGS"
# the range of ColorspaceType has expanded several times
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[#include <magick/api.h>],
[ColorspaceType colorspace = CMYColorspace]
)],
[AC_DEFINE(HAVE_CMYCOLORSPACE,1,
[define if your Magick has CMYColorspace.])
]
)
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[#include <magick/api.h>],
[ColorspaceType colorspace = HCLpColorspace]
)],
[AC_DEFINE(HAVE_HCLPCOLORSPACE,1,
[define if your Magick has HCLpColorspace.])
]
)
# GetImageMagick() takes two args under GM, three under IM
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[#include <magick/api.h>],
[(void)GetImageMagick(NULL, 0, NULL)]
)],
[AC_DEFINE(HAVE_GETIMAGEMAGICK3,1,
[define if your GetImageMagick() takes three arguments.])
]
)
CFLAGS="$save_CFLAGS"
fi
# have flags to turn load and save off independently ... some people will want
# save but not load, for example
AC_ARG_ENABLE([magickload],
AS_HELP_STRING([--disable-magickload],
[disable libMagic load (default: enabled)]))
AC_ARG_ENABLE([magicksave],
AS_HELP_STRING([--disable-magicksave],
[disable libMagic save (default: enabled)]))
if test x"$enable_magicksave" != x"yes"; then
# we need ImportImagePixels ... GM is missing this sadly
save_LIBS="$LIBS"
LIBS="$LIBS $MAGICK_LIBS"
AC_CHECK_FUNCS(ImportImagePixels,[
AC_DEFINE(HAVE_IMPORTIMAGEPIXELS,1,
[define if you have ImportImagePixels.])
2019-02-05 14:04:36 +01:00
],[]
)
2019-02-05 14:04:36 +01:00
AC_CHECK_FUNCS(ImagesToBlob,[
AC_DEFINE(HAVE_IMAGESTOBLOB,1,
[define if you have ImagesToBlob.])
],[]
)
LIBS="$save_LIBS"
fi
if test x"$with_magick" != x"no"; then
if test x"$enable_magickload" != x"no"; then
AC_DEFINE(ENABLE_MAGICKLOAD,1,[define to enable load with libMagick])
enable_magickload=yes
fi
if test x"$enable_magicksave" != x"no"; then
AC_DEFINE(ENABLE_MAGICKSAVE,1,[define to enable save with libMagick])
enable_magicksave=yes
fi
else
enable_magickload=no
enable_magicksave=no
fi
2010-11-01 18:46:47 +01:00
# orc
AC_ARG_WITH([orc],
AS_HELP_STRING([--without-orc], [build without orc (default: test)]))
if test x"$with_orc" != x"no"; then
2010-11-01 18:46:47 +01:00
# we use loadpw etc.
PKG_CHECK_MODULES(ORC, orc-0.4 >= 0.4.11,
[AC_DEFINE(HAVE_ORC,1,[define if you have orc-0.4.11 or later installed.])
with_orc=yes
2015-12-08 16:33:57 +01:00
PACKAGES_USED="$PACKAGES_USED orc-0.4"
save_LIBS="$LIBS"
2015-12-08 16:33:57 +01:00
LIBS="$LIBS $ORC_LIBS"
AC_CHECK_FUNCS(orc_program_get_error,
AC_DEFINE(HAVE_ORC_PROGRAM_GET_ERROR,1,
[define if your orc has orc_program_get_error.]))
LIBS="$save_LIBS"
2015-12-08 16:33:57 +01:00
],
2010-11-01 18:46:47 +01:00
[AC_MSG_WARN([orc-0.4.11 or later not found; disabling orc support])
with_orc=no
]
)
2010-11-01 18:46:47 +01:00
fi
# orc 0.4.30+ works with cf-protection, but 0.4.30 has a bug with multiple
# definitions of OrcTargetPowerPCFlags, so insist on 0.4.31
if test x"$with_orc" = x"yes"; then
PKG_CHECK_MODULES(ORC_CF_PROTECTION, orc-0.4 >= 0.4.31,
[AC_DEFINE(HAVE_ORC_CF_PROTECTION,1,
[define if your orc works with cf-protection.]
)
],
[:
]
)
fi
# lcms ... refuse to use lcms1
2008-07-10 12:14:31 +02:00
AC_ARG_WITH([lcms],
AS_HELP_STRING([--without-lcms], [build without lcms (default: test)]))
2007-08-29 18:23:50 +02:00
if test x"$with_lcms" != x"no"; then
2010-08-02 17:58:30 +02:00
PKG_CHECK_MODULES(LCMS, lcms2,
[AC_DEFINE(HAVE_LCMS2,1,[define if you have lcms2 installed.])
2012-07-13 13:56:08 +02:00
with_lcms="yes (lcms2)"
PACKAGES_USED="$PACKAGES_USED lcms2"
],
[AC_MSG_WARN([lcms2 not found; disabling ICC profile support])
with_lcms=no
]
)
2007-08-29 18:23:50 +02:00
fi
# we need a conditional for this to only compile in fallback profiles if lcms
# is detected
2019-05-10 17:43:17 +02:00
AM_CONDITIONAL(ENABLE_LCMS, [test x"$with_lcms" != x"no"])
2007-08-29 18:23:50 +02:00
# OpenEXR
2008-07-10 12:14:31 +02:00
AC_ARG_WITH([OpenEXR],
AS_HELP_STRING([--without-OpenEXR], [build without OpenEXR (default: test)]))
2007-08-29 18:23:50 +02:00
# require 1.2.2 since 1.2.1 has a broken ImfCloseTiledInputFile()
if test x"$with_OpenEXR" != x"no"; then
2007-08-29 18:23:50 +02:00
PKG_CHECK_MODULES(OPENEXR, OpenEXR >= 1.2.2,
[AC_DEFINE(HAVE_OPENEXR,1,[define if you have OpenEXR >=1.2.2 installed.])
2008-06-19 18:38:31 +02:00
with_OpenEXR=yes
2016-02-08 00:33:43 +01:00
PACKAGES_USED="$PACKAGES_USED OpenEXR"
],
2008-06-19 18:38:31 +02:00
[AC_MSG_WARN([OpenEXR not found; disabling OpenEXR support])
with_OpenEXR=no
2016-02-08 00:33:43 +01:00
]
)
fi
2018-06-29 17:32:28 +02:00
# nifti
AC_ARG_WITH([nifti],
AS_HELP_STRING([--without-nifti], [build without nifti (default: test)]))
if test x"$with_nifti" != x"no"; then
FIND_NIFTI([
with_nifti=yes
],[
with_nifti=no
]
)
fi
# libheif
AC_ARG_WITH([heif],
AS_HELP_STRING([--without-heif], [build without libheif (default: test)]))
if test x"$with_heif" != x"no"; then
PKG_CHECK_MODULES(HEIF, libheif >= 1.3.0,
[with_heif=yes
have_h265_decoder=`$PKG_CONFIG libheif --variable builtin_h265_decoder`
have_avif_decoder=`$PKG_CONFIG libheif --variable builtin_avif_decoder`
# test for !=no so that we work for older libheif which does not have
# this variable
if test x"$have_h265_decoder" != x"no" -o x"$have_avif_decoder" = x"yes"; then
AC_DEFINE(HAVE_HEIF_DECODER,1,
[define if your libheif has decode support.])
fi
have_h265_encoder=`$PKG_CONFIG libheif --variable builtin_h265_encoder`
have_avif_encoder=`$PKG_CONFIG libheif --variable builtin_avif_encoder`
if test x"$have_h265_encoder" != x"no" -o x"$have_avif_encoder" = x"yes"; then
AC_DEFINE(HAVE_HEIF_ENCODER,1,
[define if your libheif has encode support.])
fi
PACKAGES_USED="$PACKAGES_USED libheif"
],
[AC_MSG_WARN([libheif >= 1.3.0 not found; disabling HEIF support])
with_heif=no
have_h265_decoder=
have_h265_encoder=
have_avif_decoder=
have_avif_encoder=
]
)
fi
2019-02-20 13:30:12 +01:00
# color profile support added in 1.3.3
if test x"$with_heif" = x"yes"; then
save_LIBS="$LIBS"
LIBS="$LIBS $HEIF_LIBS"
AC_CHECK_FUNCS(heif_image_handle_get_raw_color_profile,[
AC_DEFINE(HAVE_HEIF_COLOR_PROFILE,1,
[define if you have heif_image_handle_get_raw_color_profile.])
],[]
)
LIBS="$save_LIBS"
fi
# heif_main_brand added in 1.4.0, but heif_avif appeared in 1.7 ... just check
# the libheif version number since testing for enums is annoying
if test x"$with_heif" = x"yes"; then
PKG_CHECK_MODULES(HEIF_AVIF, libheif >= 1.7.0, [
AC_DEFINE(HAVE_HEIF_AVIF,1,[define if you have heif_avif.])
], [
])
fi
# heif_decoding_options.convert_hdr_to_8bit added in 1.7.0
if test x"$with_heif" = x"yes"; then
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $HEIF_CFLAGS"
AC_CHECK_MEMBER([struct heif_decoding_options.convert_hdr_to_8bit],[
AC_DEFINE(HAVE_HEIF_DECODING_OPTIONS_CONVERT_HDR_TO_8BIT,1,
[define if you have heif_decoding_options.convert_hdr_to_8bit])
],[],
[#include <libheif/heif.h>])
CFLAGS="$save_CFLAGS"
fi
# pdfium
AC_ARG_WITH([pdfium],
AS_HELP_STRING([--without-pdfium], [build without pdfium (default: test)]))
# pick 4200 as the starting version number ... no reason, really, it'd
# probably work with much older versions
if test x"$with_pdfium" != x"no"; then
PKG_CHECK_MODULES(PDFIUM, pdfium >= 4200, [
AC_DEFINE(HAVE_PDFIUM,1,[define if you have pdfium > 4200.])
if test x"$with_poppler" != x"no"; then
AC_MSG_WARN([PDFium found, disabling poppler])
with_poppler=no
fi
with_pdfium=yes
PACKAGES_USED="$PACKAGES_USED pdfium"
], [
with_pdfium=no
])
fi
2016-02-08 00:33:43 +01:00
# poppler
AC_ARG_WITH([poppler],
AS_HELP_STRING([--without-poppler], [build without poppler (default: test)]))
if test x"$with_poppler" != x"no"; then
PKG_CHECK_MODULES(POPPLER, [poppler-glib >= 0.16.0 cairo >= 1.2], [
AC_DEFINE(HAVE_POPPLER,1,[define if you have poppler-glib >= 0.16.0 and cairo >= 1.2 installed.])
with_poppler=yes
PACKAGES_USED="$PACKAGES_USED poppler-glib cairo"
], [
AC_MSG_WARN([poppler-glib >= 0.16.0 or cairo >= 1.2 not found; disabling PDF load via poppler])
with_poppler=no
])
2007-08-29 18:23:50 +02:00
fi
# librsvg
AC_ARG_WITH([rsvg],
AS_HELP_STRING([--without-rsvg], [build without rsvg (default: test)]))
2019-06-29 15:55:47 +02:00
# 2.40.3 so we get the UNLIMITED open flag
if test x"$with_rsvg" != x"no"; then
PKG_CHECK_MODULES(RSVG, [librsvg-2.0 >= 2.40.3 cairo >= 1.2], [
AC_DEFINE(HAVE_RSVG,1,[define if you have librsvg-2.0 >= 2.40.3 and cairo >= 1.2 installed.])
with_rsvg=yes
PACKAGES_USED="$PACKAGES_USED librsvg-2.0 cairo"
], [
AC_MSG_WARN([librsvg-2.0 >= 2.40.3 or cairo >= 1.2 not found; disabling SVG load via rsvg])
with_rsvg=no
])
fi
# zlib
# some platforms, like macosx, are missing the .pc files for zlib, so
# we fall back to FIND_ZLIB
AC_ARG_WITH([zlib],
AS_HELP_STRING([--without-zlib], [build without zlib (default: test)]))
if test x"$with_zlib" != x"no"; then
PKG_CHECK_MODULES(ZLIB, zlib >= 0.4,
[AC_DEFINE(HAVE_ZLIB,1,[define if you have zlib installed.])
with_zlib=yes
PACKAGES_USED="$PACKAGES_USED zlib"
],
[FIND_ZLIB(
[with_zlib="yes (found by search)"
],
[AC_MSG_WARN([zlib not found; disabling SVGZ buffer support])
with_zlib=no
]
)
]
)
fi
2011-11-27 04:18:46 +01:00
# OpenSlide
AC_ARG_WITH([openslide],
2016-02-08 00:33:43 +01:00
AS_HELP_STRING([--without-openslide],
[build without OpenSlide (default: test)])
)
2011-11-27 04:18:46 +01:00
if test x"$with_openslide" != x"no"; then
PKG_CHECK_MODULES(OPENSLIDE, [openslide >= 3.4.0],
[AC_DEFINE(HAVE_OPENSLIDE_3_4,1,[define if you have OpenSlide >= 3.4.0 installed.])
AC_DEFINE(HAVE_OPENSLIDE,1,[define if you have OpenSlide >= 3.3.0 installed.])
2011-11-27 04:18:46 +01:00
with_openslide=yes
2016-02-08 00:33:43 +01:00
PACKAGES_USED="$PACKAGES_USED openslide"
],
[AC_MSG_NOTICE([OpenSlide >= 3.4.0 not found; checking for >= 3.3.0])
PKG_CHECK_MODULES(OPENSLIDE, [openslide >= 3.3.0],
2016-02-08 00:33:43 +01:00
[AC_DEFINE(HAVE_OPENSLIDE,1,[define if you have OpenSlide >= 3.3.0 installed.])
with_openslide=yes
PACKAGES_USED="$PACKAGES_USED openslide"
],
[AC_MSG_WARN([OpenSlide >= 3.3.0 not found; disabling virtual slide support])
with_openslide=no
]
)
]
)
2011-11-27 04:18:46 +01:00
fi
2009-02-27 17:52:25 +01:00
# matio
AC_ARG_WITH([matio],
AS_HELP_STRING([--without-matio], [build without matio (default: test)]))
if test x"$with_matio" != x"no"; then
2009-02-27 17:52:25 +01:00
PKG_CHECK_MODULES(MATIO, matio,
[AC_DEFINE(HAVE_MATIO,1,[define if you have matio installed.])
with_matio=yes
PACKAGES_USED="$PACKAGES_USED matio"
],
2009-02-27 17:52:25 +01:00
[AC_MSG_WARN([matio not found; disabling matio support])
with_matio=no
]
)
2009-02-27 17:52:25 +01:00
fi
# not external libraries, but have options to disable them, helps to
# reduce attack surface
AC_ARG_WITH([ppm],
AS_HELP_STRING([--without-ppm], [build without ppm (default: with)]))
if test x"$with_ppm" != x"no"; then
AC_DEFINE(HAVE_PPM,1,[define to build ppm support.])
with_ppm=yes
fi
AC_ARG_WITH([analyze],
AS_HELP_STRING([--without-analyze], [build without analyze (default: with)]))
if test x"$with_analyze" != x"no"; then
AC_DEFINE(HAVE_ANALYZE,1,[define to build analyze support.])
with_analyze=yes
fi
AC_ARG_WITH([radiance],
AS_HELP_STRING([--without-radiance], [build without radiance (default: with)]))
if test x"$with_radiance" != x"no"; then
AC_DEFINE(HAVE_RADIANCE,1,[define to build radiance support.])
with_radiance=yes
fi
2010-10-26 17:12:49 +02:00
# cfitsio
AC_ARG_WITH([cfitsio],
AS_HELP_STRING([--without-cfitsio], [build without cfitsio (default: test)]))
if test x"$with_cfitsio" != x"no"; then
2010-10-26 17:12:49 +02:00
PKG_CHECK_MODULES(CFITSIO, cfitsio,
[AC_DEFINE(HAVE_CFITSIO,1,[define if you have cfitsio installed.])
with_cfitsio=yes
PACKAGES_USED="$PACKAGES_USED cfitsio"
],
2010-10-26 17:12:49 +02:00
[AC_MSG_WARN([cfitsio not found; disabling cfitsio support])
with_cfitsio=no
]
)
2010-10-26 17:12:49 +02:00
fi
# libwebp ... target 0.6+ to reduce complication
# webp has the stuff for handling metadata in two separate libraries -- we
# insit on having all of them
2013-08-06 11:01:50 +02:00
AC_ARG_WITH([libwebp],
AS_HELP_STRING([--without-libwebp], [build without libwebp (default: test)]))
if test x"$with_libwebp" != x"no"; then
PKG_CHECK_MODULES(LIBWEBP, libwebp >= 0.6 libwebpmux >= 0.6 libwebpdemux >= 0.6,
[AC_DEFINE(HAVE_LIBWEBP,1,[define if you have libwebp/libwebpmux/libwebpdemux installed.])
2013-08-06 11:01:50 +02:00
with_libwebp=yes
PACKAGES_USED="$PACKAGES_USED libwebp libwebpmux libwebpdemux"
],
[AC_MSG_WARN([libwebp, mux, demux not found; disabling WEBP support])
with_libwebp=no
2016-11-07 11:01:59 +01:00
]
)
fi
2007-08-29 18:23:50 +02:00
# pangoft2
2008-07-10 12:14:31 +02:00
AC_ARG_WITH([pangoft2],
AS_HELP_STRING([--without-pangoft2],
[build without pangoft2 (default: test)]))
2007-08-29 18:23:50 +02:00
if test x"$with_pangoft2" != x"no"; then
2007-08-29 18:23:50 +02:00
PKG_CHECK_MODULES(PANGOFT2, pangoft2,
[AC_DEFINE(HAVE_PANGOFT2,1,[define if you have pangoft2 installed.])
2008-06-19 18:38:31 +02:00
with_pangoft2=yes
PACKAGES_USED="$PACKAGES_USED pangoft2"
],
2008-06-19 18:38:31 +02:00
[AC_MSG_WARN([pangoft2 not found; disabling pangoft2 support])
with_pangoft2=no
]
)
2007-08-29 18:23:50 +02:00
fi
2012-05-06 12:55:59 +02:00
# look for TIFF with pkg-config ... fall back to our tester
# pkgconfig support for libtiff starts with libtiff-4
AC_ARG_WITH([tiff],
AS_HELP_STRING([--without-tiff], [build without libtiff (default: test)]))
if test x"$with_tiff" != x"no"; then
2012-05-06 12:55:59 +02:00
PKG_CHECK_MODULES(TIFF, libtiff-4,
[AC_DEFINE(HAVE_TIFF,1,[define if you have libtiff installed.])
2012-07-13 13:56:08 +02:00
with_tiff="yes (pkg-config libtiff-4)"
PACKAGES_USED="$PACKAGES_USED libtiff-4"
],
[FIND_TIFF(
with_tiff="yes (found by search)",
[AC_MSG_WARN([libtiff not found; disabling TIFF support])
with_tiff=no
]
)
]
)
2012-05-06 12:55:59 +02:00
fi
# WEBP in TIFF added in libtiff 4.0.10
if test x"$with_tiff" != x"no"; then
save_INCLUDES="$INCLUDES"
INCLUDES="$INCLUDES $TIFF_INCLUDES"
AC_CHECK_DECL(COMPRESSION_WEBP,[
AC_DEFINE(HAVE_TIFF_COMPRESSION_WEBP,1,[define if your libtiff has webp.])
],[
],[
[#include <tiffio.h>]
]
)
INCLUDES="$save_INCLUDES"
fi
# giflib
FIND_GIFLIB(
[with_giflib="yes (found by search)"
],
[AC_MSG_WARN([giflib not found; disabling direct GIF support])
with_giflib=no
]
)
# Look for libspng first
2020-05-02 00:20:48 +02:00
AC_ARG_WITH([libspng],
AS_HELP_STRING([--without-libspng], [build without libspng (default: test)]))
2020-05-02 00:20:48 +02:00
if test x"$with_libspng" != x"no"; then
PKG_CHECK_MODULES(SPNG, spng >= 0.6,
[AC_DEFINE(HAVE_SPNG,1,[define if you have libspng installed.])
2020-05-02 00:20:48 +02:00
with_libspng=yes
PACKAGES_USED="$PACKAGES_USED spng"
],
2020-06-11 13:17:58 +02:00
[with_libspng=no
]
)
fi
2007-08-29 18:23:50 +02:00
# look for PNG with pkg-config ... fall back to our tester
2008-07-10 12:14:31 +02:00
AC_ARG_WITH([png],
AS_HELP_STRING([--without-png], [build without libpng (default: test)]))
2008-06-19 18:38:31 +02:00
if test x"$with_png" != x"no"; then
PKG_CHECK_MODULES(PNG, libpng >= 1.2.9,
2008-06-19 18:38:31 +02:00
[AC_DEFINE(HAVE_PNG,1,[define if you have libpng installed.])
2012-07-13 13:56:08 +02:00
with_png="yes (pkg-config libpng >= 1.2.9)"
PACKAGES_USED="$PACKAGES_USED libpng"
],
[FIND_PNG(
[with_png="yes (found by search)"
],
[AC_MSG_WARN([libpng not found; disabling PNG support])
with_png=no
]
)
]
)
2008-06-19 18:38:31 +02:00
fi
2007-08-29 18:23:50 +02:00
if test x"$with_png" != x"no"; then
save_LIBS="$LIBS"
save_CFLAGS="$CFLAGS"
LIBS="$PNG_LIBS $LIBS"
CFLAGS="$PNG_INCLUDES $CFLAGS"
AC_CHECK_FUNCS(png_set_chunk_malloc_max,
AC_DEFINE(HAVE_PNG_SET_CHUNK_MALLOC_MAX,1,
[define if your libpng has png_set_chunk_malloc_max.]))
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
fi
# look for libimagequant with pkg-config (only if libpng is enabled)
AC_ARG_WITH([imagequant],
AS_HELP_STRING([--without-imagequant], [build without imagequant (default: test)]))
if test x"$with_imagequant" != x"no" && test x"$with_png" != x"no"; then
PKG_CHECK_MODULES(IMAGEQUANT, imagequant,
[AC_DEFINE(HAVE_IMAGEQUANT,1,[define if you have imagequant installed.])
with_imagequant=yes
PACKAGES_USED="$PACKAGES_USED imagequant"
],
[AC_MSG_WARN([libimagequant not found; disabling 8bpp PNG support])
with_imagequant=no
]
)
else
with_imagequant=no
fi
# look for libjpeg with pkg-config ... fall back to our tester
AC_ARG_WITH([jpeg],
AS_HELP_STRING([--without-jpeg], [build without libjpeg (default: test)]))
if test x"$with_jpeg" != x"no"; then
PKG_CHECK_MODULES(JPEG, libjpeg,
2018-02-22 17:34:01 +01:00
[AC_DEFINE(HAVE_JPEG,1,[define if you have libjpeg installed.])
with_jpeg="yes (pkg-config)"
PACKAGES_USED="$PACKAGES_USED libjpeg"
],
[FIND_JPEG(
[with_jpeg="yes (found by search)"
2018-12-12 18:24:49 +01:00
EXTRA_LIBS_USED="$EXTRA_LIBS_USED -ljpeg"
],
[AC_MSG_WARN([libjpeg not found; disabling JPEG support])
with_jpeg=no
]
)
]
)
fi
2011-12-19 22:40:08 +01:00
# features like trellis quant are exposed as extension parameters ...
# mozjpeg 3.2 and later have #define JPEG_C_PARAM_SUPPORTED, but we must
# work with earlier versions
if test x"$with_jpeg" != x"no"; then
save_LIBS="$LIBS"
save_CFLAGS="$CFLAGS"
LIBS="$JPEG_LIBS $LIBS"
CFLAGS="$JPEG_INCLUDES $CFLAGS"
AC_CHECK_FUNCS(jpeg_c_bool_param_supported,
AC_DEFINE(HAVE_JPEG_EXT_PARAMS,1,
[define if your libjpeg has extension parameters.]))
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
fi
2007-08-29 18:23:50 +02:00
# libexif
2008-07-10 12:14:31 +02:00
AC_ARG_WITH([libexif],
AS_HELP_STRING([--without-libexif], [build without libexif (default: test)]))
2007-08-29 18:23:50 +02:00
if test x"$with_libexif" != x"no"; then
2007-08-29 18:23:50 +02:00
PKG_CHECK_MODULES(EXIF, libexif >= 0.6,
[AC_DEFINE(HAVE_EXIF,1,[define if you have libexif >= 0.6 installed.])
2008-06-19 18:38:31 +02:00
with_libexif=yes
PACKAGES_USED="$PACKAGES_USED libexif"
],
2007-08-29 18:23:50 +02:00
[AC_MSG_WARN([libexif >= 0.6 not found; disabling exif support])
2008-06-19 18:38:31 +02:00
with_libexif=no
]
)
2007-08-29 18:23:50 +02:00
fi
# some libexif packages need include <libexif/poop.h>, some just <poop.h>
# how annoying
if test x"$with_libexif" != x"no"; then
2007-08-29 18:23:50 +02:00
# cppflags not cflags because we want the preproc to see the -I as well
save_CPPFLAGS="$CPPFLAGS"
2007-08-29 18:23:50 +02:00
CPPFLAGS="$EXIF_CFLAGS $CPPFLAGS"
AC_CHECK_HEADER(exif-data.h,
AC_DEFINE(UNTAGGED_EXIF,1,[libexif includes don't need libexif prefix]))
CPPFLAGS="$save_CPPFLAGS"
2007-08-29 18:23:50 +02:00
fi
# fuzzing
AC_ARG_VAR([LIB_FUZZING_ENGINE],
[fuzzing library, e.g. /path/to/libFuzzer.a])
if test x"$LIB_FUZZING_ENGINE" = x; then
LIB_FUZZING_ENGINE="libstandaloneengine.a"
fi
# Gather all up for VIPS_CFLAGS, VIPS_INCLUDES, VIPS_LIBS
VIPS_CFLAGS="$VIPS_CFLAGS $GTHREAD_CFLAGS $GIO_CFLAGS $REQUIRED_CFLAGS $EXPAT_CFLAGS $ZLIB_CFLAGS $PANGOFT2_CFLAGS $GSF_CFLAGS $FFTW_CFLAGS $MAGICK_CFLAGS $JPEG_CFLAGS $SPNG_CFLAGS $PNG_CFLAGS $IMAGEQUANT_CFLAGS $EXIF_CFLAGS $MATIO_CFLAGS $CFITSIO_CFLAGS $LIBWEBP_CFLAGS $LIBWEBPMUX_CFLAGS $GIFLIB_INCLUDES $RSVG_CFLAGS $PDFIUM_CFLAGS $POPPLER_CFLAGS $OPENEXR_CFLAGS $OPENSLIDE_CFLAGS $ORC_CFLAGS $TIFF_CFLAGS $LCMS_CFLAGS $HEIF_CFLAGS" VIPS_CFLAGS="$VIPS_DEBUG_FLAGS $VIPS_CFLAGS"
2018-06-29 18:31:17 +02:00
VIPS_INCLUDES="$ZLIB_INCLUDES $PNG_INCLUDES $TIFF_INCLUDES $JPEG_INCLUDES $NIFTI_INCLUDES"
VIPS_LIBS="$ZLIB_LIBS $HEIF_LIBS $MAGICK_LIBS $SPNG_LIBS $PNG_LIBS $IMAGEQUANT_LIBS $TIFF_LIBS $JPEG_LIBS $GTHREAD_LIBS $GIO_LIBS $REQUIRED_LIBS $EXPAT_LIBS $PANGOFT2_LIBS $GSF_LIBS $FFTW_LIBS $ORC_LIBS $LCMS_LIBS $GIFLIB_LIBS $RSVG_LIBS $NIFTI_LIBS $PDFIUM_LIBS $POPPLER_LIBS $OPENEXR_LIBS $OPENSLIDE_LIBS $CFITSIO_LIBS $LIBWEBP_LIBS $LIBWEBPMUX_LIBS $MATIO_LIBS $EXIF_LIBS -lm"
2007-08-29 18:23:50 +02:00
2020-06-13 12:40:45 +02:00
# autoconf hates multi-line AC_SUBST so we have to have another copy of this
# thing
2020-09-06 17:10:55 +02:00
VIPS_CONFIG="native win32: $vips_os_win32, native OS X: $vips_os_darwin, open files in binary mode: $vips_binary_open, enable debug: $enable_debug, enable deprecated library components: $enable_deprecated, enable docs with gtkdoc: $enable_gtk_doc, gobject introspection: $found_introspection, enable radiance support: $with_radiance, enable analyze support: $with_analyze, enable PPM support: $with_ppm, generate C++ docs: $with_doxygen, use fftw3 for FFT: $with_fftw, Magick package: $with_magickpackage, Magick API version: $magick_version, load with libMagick: $enable_magickload, save with libMagick: $enable_magicksave, accelerate loops with orc: $with_orc, ICC profile support with lcms: $with_lcms, file import with niftiio: $with_nifti, file import with libheif: $with_heif, file import with OpenEXR: $with_OpenEXR, file import with OpenSlide: $with_openslide, file import with matio: $with_matio, PDF import with PDFium: $with_pdfium, PDF import with poppler-glib: $with_poppler, SVG import with librsvg-2.0: $with_rsvg, zlib: $with_zlib, file import with cfitsio: $with_cfitsio, file import/export with libwebp: $with_libwebp, text rendering with pangoft2: $with_pangoft2, file import/export with libspng: $with_libspng, file import/export with libpng: $with_png, support 8bpp PNG quantisation: $with_imagequant, file import/export with libtiff: $with_tiff, file import/export with giflib: $with_giflib, file import/export with libjpeg: $with_jpeg, image pyramid export: $with_gsf, use libexif to load/save JPEG metadata: $with_libexif"
AC_SUBST(VIPS_LIBDIR)
2010-05-05 17:22:04 +02:00
2007-08-29 18:23:50 +02:00
AC_SUBST(VIPS_CFLAGS)
AC_SUBST(VIPS_INCLUDES)
AC_SUBST(VIPS_LIBS)
AC_SUBST(VIPS_CONFIG)
2007-08-29 18:23:50 +02:00
AC_SUBST(PACKAGES_USED)
AC_SUBST(EXTRA_LIBS_USED)
2007-08-29 18:23:50 +02:00
# needed by test/variables.sh.in
# :( what's a better way to do this, argh
TOP_SRCDIR=$ac_pwd
AC_SUBST(TOP_SRCDIR)
AC_CONFIG_FILES([
vips.pc
vips-cpp.pc
Makefile
$srcdir/libvips/include/vips/version.h
libvips/include/Makefile
libvips/include/vips/Makefile
libvips/Makefile
libvips/arithmetic/Makefile
libvips/colour/Makefile
libvips/colour/profiles/Makefile
libvips/conversion/Makefile
libvips/convolution/Makefile
libvips/deprecated/Makefile
libvips/foreign/Makefile
libvips/freqfilt/Makefile
libvips/histogram/Makefile
libvips/draw/Makefile
libvips/iofuncs/Makefile
libvips/morphology/Makefile
libvips/mosaicing/Makefile
libvips/create/Makefile
libvips/resample/Makefile
cplusplus/Doxyfile
cplusplus/include/Makefile
cplusplus/include/vips/Makefile
cplusplus/Makefile
tools/Makefile
tools/batch_crop
tools/batch_image_convert
tools/batch_rubber_sheet
tools/light_correct
tools/shrink_width
test/Makefile
test/variables.sh
2018-07-25 18:17:13 +02:00
test/test-suite/Makefile
test/test-suite/helpers/Makefile
man/Makefile
2009-08-16 17:00:08 +02:00
doc/Makefile
2015-02-11 18:01:02 +01:00
doc/libvips-docs.xml
2007-08-29 18:23:50 +02:00
po/Makefile.in
fuzz/Makefile
2007-08-29 18:23:50 +02:00
])
AC_OUTPUT
2008-06-19 18:38:31 +02:00
2020-06-13 12:40:45 +02:00
# also add any new items to VIPS_CONFIG above
AC_MSG_RESULT([dnl
* build options
2008-06-19 18:38:31 +02:00
native win32: $vips_os_win32
2010-03-08 19:24:44 +01:00
native OS X: $vips_os_darwin
2008-06-19 18:38:31 +02:00
open files in binary mode: $vips_binary_open
2010-05-05 17:22:04 +02:00
enable debug: $enable_debug
2018-06-11 13:44:28 +02:00
enable deprecated library components: $enable_deprecated
enable docs with gtkdoc: $enable_gtk_doc
2011-12-31 19:22:42 +01:00
gobject introspection: $found_introspection
2018-06-11 13:44:28 +02:00
enable radiance support: $with_radiance
enable analyze support: $with_analyze
enable PPM support: $with_ppm
2020-09-06 17:10:55 +02:00
generate C++ docs: $with_doxygen
2008-08-15 10:40:05 +02:00
* optional dependencies
2012-01-28 12:27:16 +01:00
use fftw3 for FFT: $with_fftw
2008-06-19 18:38:31 +02:00
Magick package: $with_magickpackage
Magick API version: $magick_version
load with libMagick: $enable_magickload
save with libMagick: $enable_magicksave
2010-11-01 18:46:47 +01:00
accelerate loops with orc: $with_orc
2010-11-02 11:59:34 +01:00
(requires orc-0.4.11 or later)
2012-07-13 13:56:08 +02:00
ICC profile support with lcms: $with_lcms
2018-06-29 17:32:28 +02:00
file import with niftiio: $with_nifti
file import with libheif: $with_heif
2008-06-19 18:38:31 +02:00
file import with OpenEXR: $with_OpenEXR
2011-11-27 04:18:46 +01:00
file import with OpenSlide: $with_openslide
(requires openslide-3.3.0 or later)
2009-02-27 17:52:25 +01:00
file import with matio: $with_matio
PDF import with PDFium: $with_pdfium
2016-02-08 00:33:43 +01:00
PDF import with poppler-glib: $with_poppler
(requires poppler-glib 0.16.0 or later)
SVG import with librsvg-2.0: $with_rsvg
(requires librsvg-2.0 2.34.0 or later)
2016-08-01 15:28:35 +02:00
zlib: $with_zlib
2010-10-26 17:12:49 +02:00
file import with cfitsio: $with_cfitsio
2013-08-06 11:01:50 +02:00
file import/export with libwebp: $with_libwebp
(requires libwebp, libwebpmux, libwebpdemux 0.6.0 or later)
2008-06-19 18:38:31 +02:00
text rendering with pangoft2: $with_pangoft2
2020-05-02 00:20:48 +02:00
file import/export with libspng: $with_libspng
(requires libspng-0.6 or later)
2008-06-19 18:38:31 +02:00
file import/export with libpng: $with_png
(requires libpng-1.2.9 or later)
support 8bpp PNG quantisation: $with_imagequant
(requires libimagequant)
2008-06-19 18:38:31 +02:00
file import/export with libtiff: $with_tiff
file import/export with giflib: $with_giflib
2008-06-19 18:38:31 +02:00
file import/export with libjpeg: $with_jpeg
image pyramid export: $with_gsf
(requires libgsf-1 1.14.26 or later)
2008-06-19 18:38:31 +02:00
use libexif to load/save JPEG metadata: $with_libexif
])
2016-08-16 17:22:38 +02:00
if test x"$vips_os_win32" = x"yes"; then
if test x"$have_g_win32_get_command_line" != x"yes"; then
AC_MSG_RESULT([dnl
Your glib is too old, vips will not support unicode command-line arguments.
])
fi
fi