GraphicsMagick: Re-vamp configure script to be more closely tied...

GraphicsMagick Commits <[email protected]> Fri, 24 Nov 2023 14:42:45 -0600
Newsgroups gmane.comp.video.graphicsmagick.cvs
Message-ID <mailman.6061.1700858580.1716.graphicsmagick-commit@lists.sourceforge.net>
changeset 4c88eec00a57 in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=4c88eec00a57
summary: Re-vamp configure script to be more closely tied to pkg-config.

diffstat:

 ChangeLog                              |    13 +
 Makefile.in                            |    32 +-
 VisualMagick/installer/inc/version.isx |     4 +-
 configure                              |  3811 ++++++++++++++++++++-----------
 configure.ac                           |   947 ++++---
 fuzzing/oss-fuzz-build.sh              |    39 +
 magick/GraphicsMagick.pc.in            |     1 +
 magick/version.h                       |     4 +-
 www/Changelog.html                     |    12 +
 www/INSTALL-unix.html                  |     3 +
 www/INSTALL-unix.rst                   |     5 +
 11 files changed, 3160 insertions(+), 1711 deletions(-)

diffs (truncated from 6122 to 500 lines):

diff -r 1c41908b4bc3 -r 4c88eec00a57 ChangeLog
--- a/ChangeLog	Tue Nov 21 17:30:04 2023 -0600
+++ b/ChangeLog	Fri Nov 24 14:42:41 2023 -0600
@@ -1,3 +1,16 @@
+2023-11-24  Bob Friesenhahn  <[email protected]>
+
+	* www/INSTALL-unix.rst: Document how to get a maximally-static
+	build using `PKG_CONFIG='pkg-config --static' ./configure`.
+
+	* fuzzing/oss-fuzz-build.sh: Continued work to try to accomplish a
+	static oss-fuzz build. Not quite successful yet.
+
+	* magick/GraphicsMagick.pc.in (Description): Added project URL.
+
+	* configure.ac: Major change to require/trust pkg-config much more
+	than before.  Deleted outdated code.
+
 2023-11-21  Bob Friesenhahn  <[email protected]>
 
 	* magick/GraphicsMagick.pc.in: Add OpenMP runtime library as a
diff -r 1c41908b4bc3 -r 4c88eec00a57 Makefile.in
--- a/Makefile.in	Tue Nov 21 17:30:04 2023 -0600
+++ b/Makefile.in	Fri Nov 24 14:42:41 2023 -0600
@@ -2471,8 +2471,8 @@
 EditorDelegate = @EditorDelegate@
 FGREP = @FGREP@
 FIGDecodeDelegate = @FIGDecodeDelegate@
-FT_CFLAGS = @FT_CFLAGS@
-FT_LIBS = @FT_LIBS@
+FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
+FREETYPE_LIBS = @FREETYPE_LIBS@
 GMDelegate = @GMDelegate@
 GPG = @GPG@
 GRAPHICSMAGICK_SNAPSHOT_COPY = @GRAPHICSMAGICK_SNAPSHOT_COPY@
@@ -2508,10 +2508,20 @@
 INT64_F = @INT64_F@
 INT64_T = @INT64_T@
 INT8_T = @INT8_T@
+JASPER_CFLAGS = @JASPER_CFLAGS@
+JASPER_LIBS = @JASPER_LIBS@
+JPEG_CFLAGS = @JPEG_CFLAGS@
+JPEG_LIBS = @JPEG_LIBS@
+LCMS2_CFLAGS = @LCMS2_CFLAGS@
+LCMS2_LIBS = @LCMS2_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LFS_CPPFLAGS = @LFS_CPPFLAGS@
 LIBEXEC_DIR = @LIBEXEC_DIR@
+LIBJXL_CFLAGS = @LIBJXL_CFLAGS@
+LIBJXL_LIBS = @LIBJXL_LIBS@
+LIBJXL_THREADS_CFLAGS = @LIBJXL_THREADS_CFLAGS@
+LIBJXL_THREADS_LIBS = @LIBJXL_THREADS_LIBS@
 LIBOBJS = @LIBOBJS@
 LIBRARY_EXTRA_CPPFLAGS = @LIBRARY_EXTRA_CPPFLAGS@
 LIBS = @LIBS@
@@ -2559,6 +2569,8 @@
 LPRDelegate = @LPRDelegate@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+LZMA_CFLAGS = @LZMA_CFLAGS@
+LZMA_LIBS = @LZMA_LIBS@
 LaunchDelegate = @LaunchDelegate@
 MAGICKLIB = @MAGICKLIB@
 MAGICKLIBDIR = @MAGICKLIBDIR@
@@ -2641,6 +2653,8 @@
 PKG_CONFIG = @PKG_CONFIG@
 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PNG_CFLAGS = @PNG_CFLAGS@
+PNG_LIBS = @PNG_LIBS@
 PREFIX_DIR = @PREFIX_DIR@
 PSDelegate = @PSDelegate@
 PTHREAD_CC = @PTHREAD_CC@
@@ -2664,6 +2678,8 @@
 SYSCONF_DIR = @SYSCONF_DIR@
 ShowImageDelegate = @ShowImageDelegate@
 SysCtlDelegate = @SysCtlDelegate@
+TIFF_CFLAGS = @TIFF_CFLAGS@
+TIFF_LIBS = @TIFF_LIBS@
 TXT2HTML = @TXT2HTML@
 UINT16_T = @UINT16_T@
 UINT32_F = @UINT32_F@
@@ -2676,6 +2692,12 @@
 UINTPTR_F = @UINTPTR_F@
 UINTPTR_T = @UINTPTR_T@
 VERSION = @VERSION@
+WEBPDEMUX_CFLAGS = @WEBPDEMUX_CFLAGS@
+WEBPDEMUX_LIBS = @WEBPDEMUX_LIBS@
+WEBPMUX_CFLAGS = @WEBPMUX_CFLAGS@
+WEBPMUX_LIBS = @WEBPMUX_LIBS@
+WEBP_CFLAGS = @WEBP_CFLAGS@
+WEBP_LIBS = @WEBP_LIBS@
 WinPathScript = @WinPathScript@
 XMKMF = @XMKMF@
 XML_CFLAGS = @XML_CFLAGS@
@@ -2685,6 +2707,10 @@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
+ZSTD_CFLAGS = @ZSTD_CFLAGS@
+ZSTD_LIBS = @ZSTD_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -2711,7 +2737,6 @@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
-freetype_config = @freetype_config@
 ghostscript_font_dir = @ghostscript_font_dir@
 host = @host@
 host_alias = @host_alias@
@@ -2744,7 +2769,6 @@
 top_srcdir_native = @top_srcdir_native@
 type_include_files = @type_include_files@
 windows_font_dir = @windows_font_dir@
-xml2_config = @xml2_config@
 
 # Don't require all the GNU mandated files
 # Use XZ_OPT (a environment variable) to tune xz compression levels (e.g. XZ_OPT=-8e)
diff -r 1c41908b4bc3 -r 4c88eec00a57 VisualMagick/installer/inc/version.isx
--- a/VisualMagick/installer/inc/version.isx	Tue Nov 21 17:30:04 2023 -0600
+++ b/VisualMagick/installer/inc/version.isx	Fri Nov 24 14:42:41 2023 -0600
@@ -10,5 +10,5 @@
 
 #define public MagickPackageName "GraphicsMagick"
 #define public MagickPackageVersion "1.4"
-#define public MagickPackageVersionAddendum ".020231121"
-#define public MagickPackageReleaseDate "snapshot-20231121"
+#define public MagickPackageVersionAddendum ".020231124"
+#define public MagickPackageReleaseDate "snapshot-20231124"
diff -r 1c41908b4bc3 -r 4c88eec00a57 configure
--- a/configure	Tue Nov 21 17:30:04 2023 -0600
+++ b/configure	Fri Nov 24 14:42:41 2023 -0600
@@ -725,55 +725,64 @@
 LIB_GDI32
 HasWINGDI32_FALSE
 HasWINGDI32_TRUE
-LIB_WMF_DEPS
-LIB_WMF
-HasWMF_FALSE
-HasWMF_TRUE
-LIB_XML_DEPS
-LIB_XML
-HasXML_FALSE
-HasXML_TRUE
-XML_LIBS
-XML_CFLAGS
-xml2_config
+LIB_JP2
+HasJP2_FALSE
+HasJP2_TRUE
+JASPER_LIBS
+JASPER_CFLAGS
 LIB_HEIF
 HasHEIF_FALSE
 HasHEIF_TRUE
 HEIF_LIBS
 HEIF_CFLAGS
-LIB_WEBP
-HasWEBP_FALSE
-HasWEBP_TRUE
+LIB_WMF_DEPS
+LIB_WMF
+HasWMF_FALSE
+HasWMF_TRUE
 LIB_JXL
 HasJXL_FALSE
 HasJXL_TRUE
+LIBJXL_LIBS
+LIBJXL_CFLAGS
+LIBJXL_THREADS_LIBS
+LIBJXL_THREADS_CFLAGS
+LIB_TIFF
+HasTIFF_FALSE
+HasTIFF_TRUE
+TIFF_LIBS
+TIFF_CFLAGS
 LIB_JBIG
 HasJBIG_FALSE
 HasJBIG_TRUE
-LIB_TIFF
-HasTIFF_FALSE
-HasTIFF_TRUE
+LIB_WEBP
+HasWEBP_FALSE
+HasWEBP_TRUE
+WEBP_LIBS
+WEBP_CFLAGS
+WEBPDEMUX_LIBS
+WEBPDEMUX_CFLAGS
+WEBPMUX_LIBS
+WEBPMUX_CFLAGS
 LIB_TTF
 HasTTF_FALSE
 HasTTF_TRUE
-FT_LIBS
-FT_CFLAGS
-PKG_CONFIG_LIBDIR
-PKG_CONFIG_PATH
-PKG_CONFIG
-freetype_config
-LIB_JP2
-HasJP2_FALSE
-HasJP2_TRUE
+FREETYPE_LIBS
+FREETYPE_CFLAGS
 LIB_JPEG
 HasJPEG_FALSE
 HasJPEG_TRUE
+JPEG_LIBS
+JPEG_CFLAGS
 LIB_PNG
 HasPNG_FALSE
 HasPNG_TRUE
+PNG_LIBS
+PNG_CFLAGS
 LIB_LCMS
 HasLCMS_FALSE
 HasLCMS_TRUE
+LCMS2_LIBS
+LCMS2_CFLAGS
 LIB_FPX
 HasFPX_FALSE
 HasFPX_TRUE
@@ -790,18 +799,30 @@
 X_PRE_LIBS
 X_CFLAGS
 XMKMF
+LIB_XML_DEPS
+LIB_XML
+HasXML_FALSE
+HasXML_TRUE
+XML_LIBS
+XML_CFLAGS
 LIB_ZSTD
 HasZSTD_FALSE
 HasZSTD_TRUE
+ZSTD_LIBS
+ZSTD_CFLAGS
 LIB_LZMA
 HasLZMA_FALSE
 HasLZMA_TRUE
+LZMA_LIBS
+LZMA_CFLAGS
 LIB_BZLIB
 HasBZLIB_FALSE
 HasBZLIB_TRUE
 LIB_ZLIB
 HasZLIB_FALSE
 HasZLIB_TRUE
+ZLIB_LIBS
+ZLIB_CFLAGS
 WITH_LTDL_FALSE
 WITH_LTDL_TRUE
 LIB_TRIO
@@ -888,6 +909,9 @@
 AS
 LFS_CPPFLAGS
 OPENMP_CFLAGS
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
 PTHREAD_CFLAGS
 PTHREAD_LIBS
 PTHREAD_CXX
@@ -1112,21 +1136,47 @@
 LIBS
 CPPFLAGS
 CPP
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
 LT_SYS_LIBRARY_PATH
 CXX
 CXXFLAGS
 CCC
 CXXCPP
+ZLIB_CFLAGS
+ZLIB_LIBS
+LZMA_CFLAGS
+LZMA_LIBS
+ZSTD_CFLAGS
+ZSTD_LIBS
+XML_CFLAGS
+XML_LIBS
 XMKMF
-PKG_CONFIG
-PKG_CONFIG_PATH
-PKG_CONFIG_LIBDIR
-FT_CFLAGS
-FT_LIBS
+LCMS2_CFLAGS
+LCMS2_LIBS
+PNG_CFLAGS
+PNG_LIBS
+JPEG_CFLAGS
+JPEG_LIBS
+FREETYPE_CFLAGS
+FREETYPE_LIBS
+WEBPMUX_CFLAGS
+WEBPMUX_LIBS
+WEBPDEMUX_CFLAGS
+WEBPDEMUX_LIBS
+WEBP_CFLAGS
+WEBP_LIBS
+TIFF_CFLAGS
+TIFF_LIBS
+LIBJXL_THREADS_CFLAGS
+LIBJXL_THREADS_LIBS
+LIBJXL_CFLAGS
+LIBJXL_LIBS
 HEIF_CFLAGS
 HEIF_LIBS
-XML_CFLAGS
-XML_LIBS'
+JASPER_CFLAGS
+JASPER_LIBS'
 
 
 # Initialize some variables set by options.
@@ -1846,23 +1896,60 @@
   CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
               you have headers in a nonstandard directory <include dir>
   CPP         C preprocessor
+  PKG_CONFIG  path to pkg-config utility
+  PKG_CONFIG_PATH
+              directories to add to pkg-config's search path
+  PKG_CONFIG_LIBDIR
+              path overriding pkg-config's built-in search path
   LT_SYS_LIBRARY_PATH
               User-defined run-time library search path.
   CXX         C++ compiler command
   CXXFLAGS    C++ compiler flags
   CXXCPP      C++ preprocessor
+  ZLIB_CFLAGS C compiler flags for ZLIB, overriding pkg-config
+  ZLIB_LIBS   linker flags for ZLIB, overriding pkg-config
+  LZMA_CFLAGS C compiler flags for LZMA, overriding pkg-config
+  LZMA_LIBS   linker flags for LZMA, overriding pkg-config
+  ZSTD_CFLAGS C compiler flags for ZSTD, overriding pkg-config
+  ZSTD_LIBS   linker flags for ZSTD, overriding pkg-config
+  XML_CFLAGS  C compiler flags for XML, overriding pkg-config
+  XML_LIBS    linker flags for XML, overriding pkg-config
   XMKMF       Path to xmkmf, Makefile generator for X Window System
-  PKG_CONFIG  path to pkg-config utility
-  PKG_CONFIG_PATH
-              directories to add to pkg-config's search path
-  PKG_CONFIG_LIBDIR
-              path overriding pkg-config's built-in search path
-  FT_CFLAGS   C compiler flags for FT, overriding pkg-config
-  FT_LIBS     linker flags for FT, overriding pkg-config
+  LCMS2_CFLAGS
+              C compiler flags for LCMS2, overriding pkg-config
+  LCMS2_LIBS  linker flags for LCMS2, overriding pkg-config
+  PNG_CFLAGS  C compiler flags for PNG, overriding pkg-config
+  PNG_LIBS    linker flags for PNG, overriding pkg-config
+  JPEG_CFLAGS C compiler flags for JPEG, overriding pkg-config
+  JPEG_LIBS   linker flags for JPEG, overriding pkg-config
+  FREETYPE_CFLAGS
+              C compiler flags for FREETYPE, overriding pkg-config
+  FREETYPE_LIBS
+              linker flags for FREETYPE, overriding pkg-config
+  WEBPMUX_CFLAGS
+              C compiler flags for WEBPMUX, overriding pkg-config
+  WEBPMUX_LIBS
+              linker flags for WEBPMUX, overriding pkg-config
+  WEBPDEMUX_CFLAGS
+              C compiler flags for WEBPDEMUX, overriding pkg-config
+  WEBPDEMUX_LIBS
+              linker flags for WEBPDEMUX, overriding pkg-config
+  WEBP_CFLAGS C compiler flags for WEBP, overriding pkg-config
+  WEBP_LIBS   linker flags for WEBP, overriding pkg-config
+  TIFF_CFLAGS C compiler flags for TIFF, overriding pkg-config
+  TIFF_LIBS   linker flags for TIFF, overriding pkg-config
+  LIBJXL_THREADS_CFLAGS
+              C compiler flags for LIBJXL_THREADS, overriding pkg-config
+  LIBJXL_THREADS_LIBS
+              linker flags for LIBJXL_THREADS, overriding pkg-config
+  LIBJXL_CFLAGS
+              C compiler flags for LIBJXL, overriding pkg-config
+  LIBJXL_LIBS linker flags for LIBJXL, overriding pkg-config
   HEIF_CFLAGS C compiler flags for HEIF, overriding pkg-config
   HEIF_LIBS   linker flags for HEIF, overriding pkg-config
-  XML_CFLAGS  C compiler flags for XML, overriding pkg-config
-  XML_LIBS    linker flags for XML, overriding pkg-config
+  JASPER_CFLAGS
+              C compiler flags for JASPER, overriding pkg-config
+  JASPER_LIBS linker flags for JASPER, overriding pkg-config
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -3169,7 +3256,6 @@
 ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
-
 # Include the TAP driver
 
 
@@ -3190,6 +3276,7 @@
 . ${srcdir}/version.sh
 
 echo "configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}${PACKAGE_VERSION_ADDENDUM}"
+
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
   as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
@@ -7383,6 +7470,128 @@
   fi
 fi
 
+# Search for the pkg-config tool and set the PKG_CONFIG variable to first found in the path.
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }