m4_define([magick_major_version], [7])
m4_define([magick_minor_version], [0])
m4_define([magick_micro_version], [8])
-m4_define([magick_patchlevel_version], [20])
+m4_define([magick_patchlevel_version], [69])
m4_define([magick_version],
[magick_major_version.magick_minor_version.magick_micro_version-magick_patchlevel_version])
m4_define([magick_git_revision], esyscmd([sh -c "(gitversion.sh .) | awk '{ print \$1 }' | tr -d '\n'"]))
AC_PROG_LN_S
AC_PROG_SED
AC_PROG_AWK
+AC_PROG_MKDIR_P
AM_WITH_DMALLOC
AX_C___ATTRIBUTE__
AX_GCC_ARCHFLAG([yes])
# Enable building command line utilities (default yes)
AC_ARG_WITH(utilities,
- [ --with-utilities enable building command-line utilities (default yes)],
+ [ --with-utilities enable building command-line utilities (default yes)],
[with_utilities=$withval], [with_utilities='yes'])
AM_CONDITIONAL(WITH_UTILITIES, test "$with_utilities" = 'yes')
DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-jemalloc=$with_jemalloc "
fi
+# Enable use of TCMalloc library.
+AC_ARG_WITH(tcmalloc,
+ AS_HELP_STRING([--with-tcmalloc],
+ [enable tcmalloc memory allocation library support]),
+ [with_tcmalloc=$withval],
+ [with_tcmalloc='no'])
+if test "$with_tcmalloc" != 'no' ; then
+ DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-tcmalloc=$with_tcmalloc "
+fi
+
# Enable umem, object-caching memory allocation library.
AC_ARG_WITH(umem,
[ --with-umem enable umem memory allocation library support],
[{ const char *func = __FUNCTION__; return(func != 0 ? 0 : 1); }],
AC_MSG_RESULT([yes])
AC_DEFINE(__func__, __FUNCTION__,
- [Define to appropriate substitue if compiler does not have __func__]),
+ [Define to appropriate substitute if compiler does not have __func__]),
AC_MSG_RESULT([no])
AC_DEFINE(__func__, __FILE__,
- [Define to appropriate substitue if compiler does not have __func__])))
+ [Define to appropriate substitute if compiler does not have __func__])))
########
#
MAGICK_FEATURES="DPC $MAGICK_FEATURES"
])
-AC_CHECK_FUNCS([acosh _aligned_malloc asinh atanh atoll atexit cabs carg cimag creal clock clock_getres clock_gettime ctime_r directio erf _exit execvp fchmod floor fork ftime ftruncate getc_unlocked getcwd getpid getexecname getdtablesize getpagesize getrlimit getrusage gettimeofday gmtime_r isnan j0 j1 lltostr localtime_r lstat memmove memset mkstemp munmap nanosleep newlocale _NSGetExecutablePath pclose _pclose poll popen _popen posix_fadvise posix_fallocate posix_madvise posix_memalign posix_spawnp pow pread pwrite qsort_r raise rand_r readlink realpath select seekdir sendfile setlocale socket sqrt setvbuf stat strchr strrchr strcspn strdup strpbrk strspn strstr strtod strtod_l strtol strtoul symlink sysconf sigemptyset sigaction spawnvp strerror strlcat strlcpy strcasecmp strncasecmp telldir tempnam times ulltostr uselocale usleep utime vfprintf vfprintf_l vsprintf vsnprintf vsnprintf_l waitpid _wfopen _wstat])
-
#
# Check for clock_gettime().
#
AM_CONDITIONAL(HasJEMALLOC, test "$have_jemalloc" = 'yes')
AC_SUBST(JEMALLOC_LIBS)
+#
+# Check for TCMalloc library
+#
+have_tcmalloc='no'
+TCMALLOC_LIBS=''
+OLIBS="$LIBS"
+if test "$have_threads" = 'yes' -a "$with_tcmalloc" != 'no'; then
+ AC_MSG_CHECKING([tcmalloc library support ])
+ AC_MSG_RESULT([])
+ failed=0
+ passed=0
+
+ AC_CHECK_LIB([tcmalloc_minimal],[mallinfo],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[])
+
+ if test $passed -gt 0; then
+ if test $failed -gt 0; then
+ have_tcmalloc='no (some components failed test)'
+ else
+ TCMALLOC_LIBS=-ltcmalloc_minimal
+ LIBS="$TCMALLOC_LIBS $LIBS"
+ CFLAGS="$CFLAGS -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free"
+ AC_DEFINE([HAVE_TCMALLOC],[1],[Define if you have the tcmalloc memory allocation library])
+ have_tcmalloc='yes'
+ fi
+ fi
+ AC_MSG_CHECKING([if tcmalloc memory allocation library is complete ])
+ AC_MSG_RESULT([$have_tcmalloc])
+fi
+AM_CONDITIONAL([HAVE_TCMALLOC], [test "$have_tcmalloc" = 'yes'])
+AC_SUBST([TCMALLOC_LIBS])
+
#
# Check for umem.
#
else
UMEM_LIBS='-lumem'
LIBS="$UMEM_LIBS $LIBS"
- AC_DEFINE(HasUMEM,1,Define if you have umem memory allocation library)
+ AC_DEFINE(HAVE_UMEM,1,Define if you have umem memory allocation library)
AC_MSG_RESULT(yes)
have_umem='yes'
fi
AC_MSG_RESULT(no)
fi
fi
-AM_CONDITIONAL(HasUMEM, test "$have_umem" = 'yes')
+AM_CONDITIONAL(HAVE_UMEM, test "$have_umem" = 'yes')
AC_SUBST(UMEM_LIBS)
#
dnl ===========================================================================
+#
+# Check for Jpegxl delegate library.
+#
+AC_ARG_WITH([jxl],
+ [AC_HELP_STRING([--without-jxl],
+ [disable Jpegxl support])],
+ [with_jxl=$withval],
+ [with_jxl='yes'])
+
+if test "$with_jxl" != 'yes'; then
+ DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-jxl=$with_jxl "
+fi
+
+# Check for the brunsli libraries, currently the only libraries used by the jxl coder.
+# Full jxl support will be added once the full libraries are released.
+have_jxl='no'
+JXL_LIBS=''
+if test "$with_jxl" != 'no'; then
+ AC_MSG_RESULT([-------------------------------------------------------------])
+ AC_MSG_CHECKING([for brunsli])
+ AC_MSG_RESULT([])
+ failed=0
+ passed=0
+ AC_CHECK_HEADER(brunsli/decode.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`)
+ AC_CHECK_HEADER(brunsli/encode.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`)
+ AC_CHECK_LIB(brunslidec-c,DecodeBrunsli,passed=`expr $passed + 1`,failed=`expr $failed + 1`,)
+ AC_CHECK_LIB(brunslienc-c,EncodeBrunsli,passed=`expr $passed + 1`,failed=`expr $failed + 1`,)
+ AC_MSG_CHECKING([if brunsli package is complete])
+ if test $passed -gt 0; then
+ if test $failed -gt 0; then
+ AC_MSG_RESULT([no -- some components failed test])
+ have_jxl='no (failed tests)'
+ else
+ JXL_LIBS='-lbrunslidec-c -lbrunslienc-c'
+ LIBS="$JXL_LIBS $LIBS"
+ AC_DEFINE(JXL_DELEGATE,1,Define if you have brunsli library)
+ AC_MSG_RESULT([yes])
+ have_jxl='yes'
+ fi
+ else
+ AC_MSG_RESULT([no])
+ fi
+fi
+AM_CONDITIONAL(JXL_DELEGATE, test "$have_jxl" = 'yes')
+AC_SUBST(JXL_LIBS)
+
+dnl ===========================================================================
+
#
# Check for LCMS delegate library.
#
AM_CONDITIONAL(TIFF_DELEGATE, test "$have_tiff" = 'yes')
AC_SUBST(TIFF_LIBS)
+dnl ===========================================================================
+
#
# Set URW Base35 font directory.
#
if test "x$with_webp" = "xyes"; then
AC_MSG_RESULT([-------------------------------------------------------------])
PKG_CHECK_MODULES(WEBP,[libwebp], have_webp=yes, have_webp=no)
- PKG_CHECK_MODULES(WEBPMUX,[libwebpmux >= 0.4.4], have_webpmux=yes, have_webpmux=no)
+ PKG_CHECK_MODULES(WEBPMUX,[libwebpmux >= 0.4.4 libwebpdemux >= 0.4.4], have_webpmux=yes, have_webpmux=no)
AC_MSG_RESULT([])
fi
dnl ===========================================================================
+# Check for functions
+#
+AC_CHECK_FUNCS([acosh _aligned_malloc asinh atanh atoll atexit cabs carg cimag creal clock clock_getres clock_gettime ctime_r directio erf _exit execvp fchmod floor fork ftime ftruncate getc_unlocked getcwd getpid getexecname getdtablesize getpagesize getrlimit getrusage gettimeofday gmtime_r isnan j0 j1 lltostr localtime_r lstat memmove memset mkstemp munmap nanosleep newlocale _NSGetExecutablePath pclose _pclose poll popen _popen posix_fadvise posix_fallocate posix_madvise posix_memalign posix_spawnp pow pread pwrite qsort_r raise rand_r readlink realpath select seekdir sendfile setlocale socket sqrt setvbuf stat strcasestr strchr strrchr strcspn strdup strpbrk strspn strstr strtod strtod_l strtol strtoul symlink sysconf sigemptyset sigaction spawnvp strerror strlcat strlcpy strcasecmp strncasecmp telldir tempnam times ulltostr uselocale usleep utime vfprintf vfprintf_l vsprintf vsnprintf vsnprintf_l waitpid _wfopen _wstat])
+
# Substitute compiler name to build/link PerlMagick
#
AC_SUBST([PERLMAINCC])
RMDelegateDefault='rm'
RSVGDecodeDelegateDefault='rsvg-convert'
SVGDecodeDelegateDefault='inkscape'
+TraceEncodeDelegateDefault='potrace'
UniconvertorDelegateDefault='uniconvertor'
WebPDecodeDelegateDefault='dwebp'
WebPEncodeDelegateDefault='cwebp'
AC_PATH_PROG(RMDelegate, "$RMDelegateDefault", "$RMDelegateDefault")
AC_PATH_PROG(RSVGDecodeDelegate, "$RSVGDecodeDelegateDefault", "$RSVGDecodeDelegateDefault")
AC_PATH_PROG(SVGDecodeDelegate, "$SVGDecodeDelegateDefault", "$SVGDecodeDelegateDefault")
+AC_PATH_PROG(TraceEncodeDelegate, "$TraceEncodeDelegateDefault", "$TraceEncodeDelegateDefault")
AC_PATH_PROG(UniconvertorDelegate, "$UniconvertorDelegateDefault", "$UniconvertorDelegateDefault")
AC_PATH_PROG(WebPDecodeDelegate, "$WebPDecodeDelegateDefault", "$WebPDecodeDelegateDefault")
AC_PATH_PROG(WebPEncodeDelegate, "$WebPEncodeDelegateDefault", "$WebPEncodeDelegateDefault")
RSVGDecodeDelegate="$RSVGDecodeDelegateDefault"
SVGDecodeDelegate="$SVGDecodeDelegateDefault"
ShowImageDelegate="$ShowImageDelegateDefault"
+ TraceEncodeDelegate="$TraceEncodeDelegateDefault"
UniconvertorDelegate="$UniconvertorDelegateDefault"
WebPDecodeDelegate="$WebPDecodeDelegateDefault"
WebPEncodeDelegate="$WebPEncodeDelegateDefault"
AC_SUBST(ILBMEncodeDelegate)
AC_SUBST(JXRDecodeDelegate)
AC_SUBST(JXREncodeDelegate)
+AC_SUBST(LaunchDelegate)
AC_SUBST(LEPDelegate)
AC_SUBST(LPDelegate)
-AC_SUBST(LaunchDelegate)
AC_SUBST(MPEGDecodeDelegate)
AC_SUBST(MPEGEncodeDelegate)
AC_SUBST(MogrifyDelegate)
AC_SUBST(PCLDelegate)
AC_SUBST(PSDelegate)
AC_SUBST(ShowImageDelegate)
+AC_SUBST(TraceEncodeDelegate)
AC_SUBST(UniconvertorDelegate)
AC_SUBST(WebPDecodeDelegate)
AC_SUBST(WebPEncodeDelegate)
if test "$have_jpeg" = 'yes' ; then
MAGICK_DELEGATES="$MAGICK_DELEGATES jpeg"
fi
+if test "$have_jxl" = 'yes' ; then
+ MAGICK_DELEGATES="$MAGICK_DELEGATES jxl"
+fi
if test "$have_lcms" = 'yes' || test "$have_lcms2" = 'yes' ; then
MAGICK_DELEGATES="$MAGICK_DELEGATES lcms"
fi
if test "$have_ps" = 'yes' ; then
MAGICK_DELEGATES="$MAGICK_DELEGATES ps"
fi
-if test "$have_raw" = 'yes' ; then
- MAGICK_DELEGATES="$MAGICK_DELEGATES raw"
-fi
if test "$have_raqm" = 'yes' ; then
MAGICK_DELEGATES="$MAGICK_DELEGATES raqm"
fi
+if test "$have_raw" = 'yes' ; then
+ MAGICK_DELEGATES="$MAGICK_DELEGATES raw"
+fi
if test "$have_ra_ppm" = 'yes' ; then
MAGICK_DELEGATES="$MAGICK_DELEGATES rad"
fi
#
if test "$build_modules" != 'no'; then
- MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS"
+ MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
else
- MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS"
+ MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
fi
MAGICK_EXTRA_DEP_LIBS="$GOMP_LIBS"
AC_SUBST(MAGICK_DEP_LIBS)
# ==============================================================================
AC_MSG_NOTICE([
==============================================================================
-ImageMagick is configured as follows. Please verify that this configuration
-matches your expectations.
-
- Host system type: $host
- Build system type: $build
-
- Option Value
- ------------------------------------------------------------------------------
- Shared libraries --enable-shared=$enable_shared $libtool_build_shared_libs
- Static libraries --enable-static=$enable_static $libtool_build_static_libs
- Build utilities --with-utilities=$with_utilities $with_utilities
- Module support --with-modules=$build_modules $build_modules
- GNU ld --with-gnu-ld=$with_gnu_ld $lt_cv_prog_gnu_ld
- Quantum depth --with-quantum-depth=$with_quantum_depth $with_quantum_depth
- High Dynamic Range Imagery
- --enable-hdri=$enable_hdri $enable_hdri
-
- Install documentation: $wantdocs
-
- Delegate Library Configuration:
+${PACKAGE_NAME} ${PACKAGE_VERSION}${PACKAGE_VERSION_ADDENDUM} is configured as follows. Please verify that this
+configuration matches your expectations.
+
+Host system type: $host
+Build system type: $build
+
+ Option Value
+------------------------------------------------------------------------------
+Shared libraries --enable-shared=$enable_shared $libtool_build_shared_libs
+Static libraries --enable-static=$enable_static $libtool_build_static_libs
+Build utilities --with-utilities=$with_utilities $with_utilities
+Module support --with-modules=$build_modules $build_modules
+GNU ld --with-gnu-ld=$with_gnu_ld $lt_cv_prog_gnu_ld
+Quantum depth --with-quantum-depth=$with_quantum_depth $with_quantum_depth
+High Dynamic Range Imagery
+ --enable-hdri=$enable_hdri $enable_hdri
+
+Install documentation: $wantdocs
+
+Memory allocation library:
+ JEMalloc --with-jemalloc=$with_jemalloc $have_jemalloc
+ TCMalloc --with-tcmalloc=$with_tcmalloc $have_tcmalloc
+ UMem --with-umem=$with_umem $have_umem
+
+Delegate library configuration:
BZLIB --with-bzlib=$with_bzlib $have_bzlib
Autotrace --with-autotrace=$with_autotrace $have_autotrace
DJVU --with-djvu=$with_djvu $have_djvu
HEIC --with-heic=$with_heic $have_heic
JBIG --with-jbig=$with_jbig $have_jbig
JPEG v1 --with-jpeg=$with_jpeg $have_jpeg
+ JPEG XL --with-jxl=$with_jxl $have_jxl
LCMS --with-lcms=$with_lcms $have_lcms
LQR --with-lqr=$with_lqr $have_lqr
LTDL --with-ltdl=$with_ltdl $have_ltdl
ZLIB --with-zlib=$with_zlib $have_zlib
ZSTD --with-zstd=$with_zstd $have_zstd
- Delegate Program Configuration:
- GhostPCL None $PCLDelegate ($PCLVersion)
- GhostXPS None $XPSDelegate ($XPSVersion)
- Ghostscript None $PSDelegate ($GSVersion)
+Delegate program configuration:
+ GhostPCL None $PCLDelegate ($PCLVersion)
+ GhostXPS None $XPSDelegate ($XPSVersion)
+ Ghostscript None $PSDelegate ($GSVersion)
- Font Configuration:
+Font configuration:
Apple fonts --with-apple-font-dir=$with_apple_font_dir $result_apple_font_dir
Dejavu fonts --with-dejavu-font-dir=$with_dejavu_font_dir $result_dejavu_font_dir
- Ghostscript fonts --with-gs-font-dir=$with_gs_font_dir $result_ghostscript_font_dir
- URW-base35 fonts --with-urw-base35-font-dir=$with_urw_base35_font_dir $result_urw_base35_font_dir
+ Ghostscript fonts --with-gs-font-dir=$with_gs_font_dir $result_ghostscript_font_dir
+ URW-base35 fonts --with-urw-base35-font-dir=$with_urw_base35_font_dir $result_urw_base35_font_dir
Windows fonts --with-windows-font-dir=$with_windows_font_dir $result_windows_font_dir
- X11 Configuration:
- X_CFLAGS = $X_CFLAGS
- X_PRE_LIBS = $X_PRE_LIBS
- X_LIBS = $X_LIBS
- X_EXTRA_LIBS = $X_EXTRA_LIBS
-
- Options used to compile and link:
- PREFIX = $PREFIX_DIR
- EXEC-PREFIX = $EXEC_PREFIX_DIR
- VERSION = $PACKAGE_VERSION
- CC = $CC
- CFLAGS = $CFLAGS
- CPPFLAGS = $CPPFLAGS
- PCFLAGS = $PCFLAGS
- DEFS = $DEFS
- LDFLAGS = $LDFLAGS
- LIBS = $MAGICK_DEP_LIBS
- CXX = $CXX
- CXXFLAGS = $CXXFLAGS
- FEATURES = $MAGICK_FEATURES
- DELEGATES = $MAGICK_DELEGATES
+X11 configuration:
+ X_CFLAGS = $X_CFLAGS
+ X_PRE_LIBS = $X_PRE_LIBS
+ X_LIBS = $X_LIBS
+ X_EXTRA_LIBS = $X_EXTRA_LIBS
+
+Options used to compile and link:
+ PREFIX = $PREFIX_DIR
+ EXEC-PREFIX = $EXEC_PREFIX_DIR
+ VERSION = $PACKAGE_VERSION
+ CC = $CC
+ CFLAGS = $CFLAGS
+ CPPFLAGS = $CPPFLAGS
+ PCFLAGS = $PCFLAGS
+ DEFS = $DEFS
+ LDFLAGS = $LDFLAGS
+ LIBS = $MAGICK_DEP_LIBS
+ CXX = $CXX
+ CXXFLAGS = $CXXFLAGS
+ FEATURES = $MAGICK_FEATURES
+ DELEGATES = $MAGICK_DELEGATES
==============================================================================
])