GraphicsMagick: configure.ac: libbrotlidec and liblbrotlienc dep...
GraphicsMagick Commits <[email protected]> Fri, 17 Nov 2023 18:59:26 -0600
| Newsgroups | gmane.comp.video.graphicsmagick.cvs |
|---|---|
| Message-ID | <mailman.3436.1700269176.7940.graphicsmagick-commit@lists.sourceforge.net> |
changeset 45cce7492a0d in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=45cce7492a0d summary: configure.ac: libbrotlidec and liblbrotlienc depend on libbrotlicommon. diffstat: ChangeLog | 3 + configure | 6 +- configure.ac | 6 +- fuzzing/README.txt | 21 ++ fuzzing/oss-fuzz-build.sh | 341 ++++++++++++++++++++++++++++++++++----------- www/Changelog.html | 2 + 6 files changed, 288 insertions(+), 91 deletions(-) diffs (truncated from 515 to 500 lines): diff -r 8e37ef9a271c -r 45cce7492a0d ChangeLog --- a/ChangeLog Fri Nov 17 07:39:15 2023 -0600 +++ b/ChangeLog Fri Nov 17 18:59:21 2023 -0600 @@ -1,5 +1,8 @@ 2023-11-17 Bob Friesenhahn <[email protected]> + * configure.ac: libbrotlidec and liblbrotlienc depend on + libbrotlicommon. + * fuzzing/oss-fuzz-build.sh: Build script improvements. Change 'freetype2' to 'freetype'. Add libde265, libheif, and libjxl to build. diff -r 8e37ef9a271c -r 45cce7492a0d configure --- a/configure Fri Nov 17 07:39:15 2023 -0600 +++ b/configure Fri Nov 17 18:59:21 2023 -0600 @@ -27260,7 +27260,7 @@ $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-ljxl -lhwy -lbrotlidec -lbrotlienc $LIBS" +LIBS="-ljxl -lhwy -lbrotlidec -lbrotlienc -lbrotlicommon $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -27345,7 +27345,7 @@ $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lbrotlidec $LIBS" +LIBS="-lbrotlidec -lbrotlicommon $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -27400,7 +27400,7 @@ # JXL is a C++ Lib so requires linking with stdc++. # TODO: A better solution would be to tell automake to do any linking with # c++, but I can't figure out a way to get this working. - LIB_JXL='-ljxl -ljxl_threads -lhwy -lbrotlidec -lbrotlienc -lstdc++' + LIB_JXL='-ljxl -ljxl_threads -lhwy -lbrotlidec -lbrotlienc -lbrotlicommon -lstdc++' LIBS="$LIB_JXL $LIBS" $as_echo "#define HasJXL 1" >>confdefs.h diff -r 8e37ef9a271c -r 45cce7492a0d configure.ac --- a/configure.ac Fri Nov 17 07:39:15 2023 -0600 +++ b/configure.ac Fri Nov 17 18:59:21 2023 -0600 @@ -2572,10 +2572,10 @@ AC_LANG_PUSH([C++]) AC_CHECK_HEADER([jxl/decode.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) # jxl always requires hwy/brotli no extra test needed - AC_CHECK_LIB([jxl],[JxlDecoderCreate],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[-lhwy -lbrotlidec -lbrotlienc]) + AC_CHECK_LIB([jxl],[JxlDecoderCreate],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[-lhwy -lbrotlidec -lbrotlienc -lbrotlicommon]) AC_CHECK_LIB([jxl_threads],[JxlThreadParallelRunnerCreate],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) # Testing for decoder should also cover encoder - AC_CHECK_LIB([brotlidec],[BrotliDecoderVersion],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[]) + AC_CHECK_LIB([brotlidec],[BrotliDecoderVersion],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[-lbrotlicommon]) AC_LANG_POP AC_MSG_CHECKING([if JXL package is complete]) if test $passed -gt 0 @@ -2588,7 +2588,7 @@ # JXL is a C++ Lib so requires linking with stdc++. # TODO: A better solution would be to tell automake to do any linking with # c++, but I can't figure out a way to get this working. - LIB_JXL='-ljxl -ljxl_threads -lhwy -lbrotlidec -lbrotlienc -lstdc++' + LIB_JXL='-ljxl -ljxl_threads -lhwy -lbrotlidec -lbrotlienc -lbrotlicommon -lstdc++' LIBS="$LIB_JXL $LIBS" AC_DEFINE([HasJXL],[1],[Define if you have JXL library]) AC_MSG_RESULT([yes]) diff -r 8e37ef9a271c -r 45cce7492a0d fuzzing/README.txt --- a/fuzzing/README.txt Fri Nov 17 07:39:15 2023 -0600 +++ b/fuzzing/README.txt Fri Nov 17 18:59:21 2023 -0600 @@ -7,3 +7,24 @@ These are automatically run by Google's OSS-Fuzz infrastructure: https://github.com/google/oss-fuzz + +See https://google.github.io/oss-fuzz/advanced-topics/reproducing/ for instructions for building/executing oss-fuzz targets locally. + +Cloning OSS-Fuzz: + + $ git clone --depth=1 https://github.com/google/oss-fuzz.git + $ cd oss-fuzz + +Pull the latest Docker images:: + + $ python infra/helper.py pull_images + +Build the image and the fuzzers:: + + $ python infra/helper.py build_image graphicsmagick + + $ python infra/helper.py build_fuzzers --sanitizer <address/memory/undefined> --architecture <x86_64/i386> graphicsmagick + +Reproducing bugs:: + + $ python infra/helper.py reproduce $PROJECT_NAME <fuzz_target_name> <testcase_path> diff -r 8e37ef9a271c -r 45cce7492a0d fuzzing/oss-fuzz-build.sh --- a/fuzzing/oss-fuzz-build.sh Fri Nov 17 07:39:15 2023 -0600 +++ b/fuzzing/oss-fuzz-build.sh Fri Nov 17 18:59:21 2023 -0600 @@ -3,6 +3,9 @@ # This is intended to be run from OSS-Fuzz's build environment. We intend to # eventually refactor it to be easy to run locally. +rm -rf $WORK/bin/ +rm -rf $WORK/lib/ + # build zlib printf "=== Building zlib...\n" pushd "$SRC/zlib" @@ -12,134 +15,286 @@ popd # build xz -printf "=== Building xz...\n" +printf "=== Building ${SRC}/xz...\n" pushd "$SRC/xz" ./autogen.sh --no-po4a --no-doxygen -PKG_CONFIG_PATH="$WORK/lib/pkgconfig" ./configure --disable-xz --disable-xzdec --disable-lzmadec --disable-lzmainfo --disable-lzma-links --disable-ifunc --disable-scripts --disable-doc --disable-shared --with-pic=yes --prefix="$WORK" +PKG_CONFIG_PATH="$WORK/lib/pkgconfig" ./configure \ + --disable-xz \ + --disable-xzdec \ + --disable-lzmadec \ + --disable-lzmainfo \ + --disable-lzma-links \ + --disable-ifunc \ + --disable-scripts \ + --disable-doc \ + --disable-shared \ + --enable-static \ + --with-pic=yes \ + --prefix="$WORK" make -j$(nproc) make install popd # build zstd -printf "==== Building zstd...\n" +printf "==== Building ${SRC}/zstd...\n" pushd "$SRC/zstd" make -j$(nproc) lib-release make install PREFIX="$WORK" popd -printf "=== Building libpng...\n" -pushd "$SRC/libpng" -autoreconf -fiv -PKG_CONFIG_PATH="$WORK/lib/pkgconfig" ./configure --prefix="$WORK" CPPFLAGS="-I$WORK/include" CFLAGS="$CFLAGS" LDFLAGS="${LDFLAGS:-} -L$WORK/lib" -make -j$(nproc) -make install -popd - -# build libjpeg-turbo -printf "=== Building libjpeg-turbo...\n" -pushd "$SRC/libjpeg-turbo" -CFLAGS="$CFLAGS -fPIC" cmake . -DCMAKE_INSTALL_PREFIX="$WORK" -DENABLE_STATIC=on -DENABLE_SHARED=on -DWITH_JPEG8=1 -DWITH_SIMD=0 +printf "=== Building ${SRC}/jasper...\n" +pushd "$SRC/jasper" +cmake -G "Unix Makefiles" -H. -Bstaging \ + -DJAS_ENABLE_SHARED=false \ + -DCMAKE_INSTALL_PREFIX=$WORK \ + -DJAS_INCLUDE_BMP_CODEC=false \ + -DJAS_INCLUDE_JPG_CODEC=false \ + -DJAS_INCLUDE_MIF_CODEC=false \ + -DJAS_INCLUDE_PNM_CODEC=false \ + -DJAS_INCLUDE_RAS_CODEC=false \ + -DJAS_ENABLE_OPENGL=false \ + -DJAS_ENABLE_LIBJPEG=false \ + -DJAS_ENABLE_OPENGL=false \ + -DJAS_ENABLE_LIBHEIF=false +pushd staging make -j$(nproc) make install popd - -# Build webp -printf "=== Building webp...\n" -pushd "$SRC/libwebp" -./autogen.sh -PKG_CONFIG_PATH="$WORK/lib/pkgconfig" ./configure CPPFLAGS="-I$WORK/include" CFLAGS="$CFLAGS" LDFLAGS="${LDFLAGS:-} -L$WORK/lib" --enable-libwebpmux --prefix="$WORK" CFLAGS="$CFLAGS -fPIC" -make -j$(nproc) -make install popd -# Build libtiff -printf "=== Building libtiff...\n" -pushd "$SRC/libtiff" +printf "=== Building ${SRC}/libpng...\n" +pushd "$SRC/libpng" autoreconf -fiv -PKG_CONFIG_PATH="$WORK/lib/pkgconfig" ./configure CPPFLAGS="-I$WORK/include" CFLAGS="$CFLAGS" LDFLAGS="${LDFLAGS:-} -L$WORK/lib" --prefix="$WORK" --disable-old-jpeg +PKG_CONFIG_PATH="$WORK/lib/pkgconfig" ./configure \ + --prefix="$WORK" \ + --disable-shared \ + --enable-static \ + CPPFLAGS="-I$WORK/include" \ + CFLAGS="$CFLAGS" \ + LDFLAGS="${LDFLAGS:-} -L$WORK/lib" make -j$(nproc) make install popd -# Build liblcms2 -printf "=== Building lcms...\n" -pushd "$SRC/Little-CMS" -autoreconf -fiv -PKG_CONFIG_PATH="$WORK/lib/pkgconfig" ./configure CPPFLAGS="-I$WORK/include" CFLAGS="$CFLAGS" LDFLAGS="${LDFLAGS:-} -L$WORK/lib" --prefix="$WORK" -make -j$(nproc) -make install -popd - -# Build freetype -printf "=== Building freetype...\n" -pushd "$SRC/freetype" -./autogen.sh -PKG_CONFIG_PATH="$WORK/lib/pkgconfig" ./configure CPPFLAGS="-I$WORK/include" CFLAGS="$CFLAGS" LDFLAGS="${LDFLAGS:-} -L$WORK/lib" --prefix="$WORK" --enable-freetype-config -make -j$(nproc) -make install -popd - -# Build libde265 -pushd "$SRC/libde265" -./autogen.sh -./configure --disable-shared --prefix="$WORK" -make -j$(nproc) -make install -popd - -# Build libheif -pushd "$SRC/libheif" -cmake . -DCMAKE_INSTALL_PREFIX=$WORK -DBUILD_SHARED_LIBS=off -DBUILD_TESTING=off -DWITH_EXAMPLES=off -DENABLE_PLUGIN_LOADING=off -DWITH_JPEG_DECODER=off -DWITH_JPEG_ENCODER=off -DCMAKE_BUILD_TYPE=Release -make -j$(nproc) -make install -popd - -#printf "=== Building libxml2...\n" +#printf "=== Building ${SRC}/libxml2...\n" #pushd "$SRC/libxml2" #./autogen.sh --disable-shared --without-debug --without-legacy --without-python --without-schematron --without-schemas --prefix="${WORK}" #make -j$(nproc) #make install #popd -printf "=== Building jasper...\n" -pushd "$SRC/jasper" -cmake -G "Unix Makefiles" -H. -Bstaging -DJAS_ENABLE_SHARED=false -DCMAKE_INSTALL_PREFIX=$WORK #-DJAS_INCLUDE_BMP_CODEC=false -DJAS_INCLUDE_JPG_CODEC=false -DJAS_INCLUDE_MIF_CODEC=false -DJAS_INCLUDE_PNM_CODEC=false -DJAS_INCLUDE_RAS_CODEC=false -DJAS_ENABLE_OPENGL=false -DJAS_ENABLE_LIBJPEG=false -DJAS_ENABLE_OPENGL=false -DJAS_ENABLE_LIBHEIF=false -pushd staging +# build libjpeg-turbo +printf "=== Building ${SRC}/libjpeg-turbo...\n" +pushd "$SRC/libjpeg-turbo" +CFLAGS="$CFLAGS -fPIC" cmake . \ + -DCMAKE_INSTALL_PREFIX="$WORK" \ + -DENABLE_STATIC=on \ + -DENABLE_SHARED=off \ + -DWITH_JPEG8=1 \ + -DWITH_SIMD=0 +make -j$(nproc) +make install +popd + +# Build webp +printf "=== Building ${SRC}/libwebp...\n" +pushd "$SRC/libwebp" +./autogen.sh +PKG_CONFIG_PATH="$WORK/lib/pkgconfig" ./configure \ + CPPFLAGS="-I$WORK/include" \ + CFLAGS="$CFLAGS" \ + LDFLAGS="${LDFLAGS:-} -L$WORK/lib" \ + --enable-libwebpmux \ + --disable-shared \ + --enable-static \ + --disable-gl \ + --disable-sdl \ + --disable-png \ + --disable-jpeg \ + --disable-tiff \ + --disable-gif \ + --disable-wic \ + --prefix="$WORK" \ + CFLAGS="$CFLAGS -fPIC" +make -j$(nproc) +make install +popd + +# Build libtiff +printf "=== Building ${SRC}/libtiff...\n" +pushd "$SRC/libtiff" +autoreconf -fiv +PKG_CONFIG_PATH="$WORK/lib/pkgconfig" ./configure \ + CPPFLAGS="-I$WORK/include" \ + CFLAGS="$CFLAGS" \ + LDFLAGS="${LDFLAGS:-} -L$WORK/lib" \ + --prefix="$WORK" \ + --disable-old-jpeg \ + --disable-shared \ + --enable-static \ + --disable-tools \ + --disable-tests \ + --disable-contrib +make -j$(nproc) +make install +popd + +# Build liblcms2 +printf "=== Building ${SRC}/Little-CMS...\n" +pushd "$SRC/Little-CMS" +autoreconf -fiv +PKG_CONFIG_PATH="$WORK/lib/pkgconfig" ./configure \ + CPPFLAGS="-I$WORK/include" \ + CFLAGS="$CFLAGS" \ + LDFLAGS="${LDFLAGS:-} -L$WORK/lib" \ + --prefix="$WORK" \ + --disable-shared \ + --enable-static +make -j$(nproc) +make install +popd + +# Build freetype +printf "=== Building ${SRC}/freetype...\n" +pushd "$SRC/freetype" +./autogen.sh +PKG_CONFIG_PATH="$WORK/lib/pkgconfig" ./configure \ + CPPFLAGS="-I$WORK/include" \ + CFLAGS="$CFLAGS" \ + LDFLAGS="${LDFLAGS:-} -L$WORK/lib" \ + --prefix="$WORK" \ + --enable-freetype-config \ + --disable-shared \ + --enable-static make -j$(nproc) make install popd + +# Build libx265 +pushd "$SRC/x265/build/linux" +printf "=== Building ${SRC}/libx265...\n" +cmake -G "Unix Makefiles" \ + -DCMAKE_C_COMPILER=$CC \ + -DCMAKE_CXX_COMPILER=$CXX \ + -DCMAKE_C_FLAGS="$CFLAGS" \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ + -DCMAKE_INSTALL_PREFIX="$WORK" \ + -DENABLE_SHARED:bool=off \ + ../../source +make clean +make -j$(nproc) x265-static +make install +popd + +# Build libde265 +printf "=== Building ${SRC}/libde265...\n" +pushd "$SRC/libde265" +./autogen.sh +./configure \ + --prefix="$WORK" \ + --disable-shared \ + --enable-static \ + --disable-dec265 \ + --disable-sherlock265 \ + --disable-hdrcopy \ + --disable-enc265 \ + --disable-acceleration_speed +make clean +make -j$(nproc) +make install popd -# freetype-config is in $WORK/bin so we temporarily add $WORK/bin to the path -printf "=== Building GraphicsMagick...\n" -PATH=$WORK/bin:$PATH PKG_CONFIG_PATH="$WORK/lib/pkgconfig" ./configure CPPFLAGS="-I$WORK/include/libpng16 -I$WORK/include/freetype2 -I$WORK/include/libxml2 -I$WORK/include" CFLAGS="$CFLAGS" LDFLAGS="${LDFLAGS:-} -L$WORK/lib" --prefix="$WORK" --disable-compressed-files --without-perl --with-quantum-depth=16 -make "-j$(nproc)" +# Build libaom +printf "=== Building ${SRC}/aom...\n" +mkdir -p $SRC/aom/build/linux +pushd "$SRC/aom/build/linux" +cmake -G "Unix Makefiles" \ + -DCMAKE_C_COMPILER=$CC \ + -DCMAKE_CXX_COMPILER=$CXX \ + -DCMAKE_C_FLAGS="$CFLAGS" \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ + -DCMAKE_INSTALL_PREFIX="$WORK" \ + -DENABLE_SHARED:bool=off \ + -DCONFIG_PIC=1 \ + -DENABLE_EXAMPLES=0 \ + -DENABLE_DOCS=0 \ + -DENABLE_TESTS=0 \ + -DCONFIG_SIZE_LIMIT=1 \ + -DDECODE_HEIGHT_LIMIT=12288 \ + -DDECODE_WIDTH_LIMIT=12288 \ + -DDO_RANGE_CHECK_CLAMP=1 \ + -DAOM_MAX_ALLOCABLE_MEMORY=536870912 \ + -DAOM_TARGET_CPU=generic \ + ../../ +make clean +make -j$(nproc) make install +popd + +# Remove shared libraries to avoid accidental linking against them. +#rm -f $WORK/lib/*.so +#rm -f $WORK/lib/*.so.* + +# Build libheif +printf "=== Building ${SRC}/libheif...\n" +pushd "$SRC/libheif" +#cmake . -DCMAKE_INSTALL_PREFIX=$WORK -DBUILD_SHARED_LIBS=off -DBUILD_TESTING=off -DWITH_EXAMPLES=off -DENABLE_PLUGIN_LOADING=off -DWITH_JPEG_DECODER=off -DWITH_JPEG_ENCODER=off -DCMAKE_BUILD_TYPE=Release -DX265_INCLUDE_DIR="$WORK/include" -DX265_LIBRARY="$WORK/lib" +mkdir build +cd build +cmake .. --preset=fuzzing \ + -DCMAKE_INSTALL_PREFIX=$WORK \ + -DFUZZING_COMPILE_OPTIONS="" \ + -DFUZZING_LINKER_OPTIONS="$LIB_FUZZING_ENGINE" \ + -DFUZZING_C_COMPILER=$CC -DFUZZING_CXX_COMPILER=$CXX \ + -DWITH_DEFLATE_HEADER_COMPRESSION=OFF \ + -DENABLE_SHARED:bool=off +make -j$(nproc) +make install +popd # Build libjxl +printf "=== Building ${SRC}/libjxl...\n" pushd "$SRC/libjxl" -cmake . -DCMAKE_INSTALL_PREFIX=$WORK -DBUILD_TESTING=off -DBUILD_SHARED_LIBS=false -DJPEGXL_FORCE_SYSTEM_LCMS2=true -DJPEGXL_ENABLE_EXAMPLES=false -DJPEGXL_ENABLE_FUZZERS=false -DJPEGXL_ENABLE_TOOLS=false -DJPEGXL_ENABLE_JPEGLI=false -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CXXFLAGS" +mkdir build +cd build +cmake .. \ + -DCMAKE_INSTALL_PREFIX=$WORK \ + -DBUILD_TESTING=off \ + -DBUILD_SHARED_LIBS=false \ + -DCMAKE_BUILD_TYPE=Release \ + -DJPEGXL_ENABLE_BENCHMARK=false \ + -DJPEGXL_ENABLE_EXAMPLES=false \ + -DJPEGXL_ENABLE_FUZZERS=false \ + -DJPEGXL_ENABLE_JPEGLI=false \ + -DJPEGXL_ENABLE_MANPAGES=OFF \ + -DJPEGXL_ENABLE_SJPEG=false \ + -DJPEGXL_ENABLE_TOOLS=false \ + -DJPEGXL_ENABLE_VIEWERS=false \ + -DJPEGXL_FORCE_SYSTEM_LCMS2=true \ + -DCMAKE_C_FLAGS="-DHWY_DISABLED_TARGETS=HWY_SSSE3 ${CFLAGS}" \ + -DCMAKE_CXX_FLAGS="-DHWY_DISABLED_TARGETS=HWY_SSSE3 ${CXXFLAGS}" make -j$(nproc) make install cp third_party/brotli/*.a $WORK/lib cp third_party/brotli/*.pc $WORK/lib/pkgconfig popd -# Order libraries in linkage dependency order so libraries on the -# right provide symbols needed by libraries to the left, to the -# maximum extent possible. -# FIXME: This hard-coded list is not taking advantage of the list that GraphicsMagick configure computed! -#MAGICK_LIBS="$WORK/lib/libxml2.a $WORK/lib/libjasper.a $WORK/lib/libpng.a $WORK/lib/libtiff.a $WORK/lib/liblcms2.a $WORK/lib/libwebpmux.a $WORK/lib/libwebp.a $WORK/lib/libsharpyuv.a $WORK/lib/libturbojpeg.a $WORK/lib/libfreetype.a $WORK/lib/libzstd.a $WORK/lib/liblzma.a $WORK/lib/libz.a" -MAGICK_LIBS='' -for lib in libxml2.a libjasper.a libpng.a libtiff.a liblcms2.a libwebpmux.a libwebp.a libsharpyuv.a libturbojpeg.a libfreetype.a libzstd.a liblzma.a libz.a ; do - if [ -f "${WORK}/lib/$lib" ] ; then - if [ -n "${MAGICK_LIBS}" ] ; then - MAGICK_LIBS="${MAGICK_LIBS} " - fi - MAGICK_LIBS="${MAGICK_LIBS}${WORK}/lib/${lib}" - fi -done -printf "MAGICK_LIBS=${MAGICK_LIBS}\n" +printf "Built libraries:\n" +ls -l ${WORK}/lib + + +# freetype-config is in $WORK/bin so we temporarily add $WORK/bin to the path +printf "=== Building GraphicsMagick...\n" +PATH=$WORK/bin:$PATH PKG_CONFIG_PATH="$WORK/lib/pkgconfig" ./configure \ + CPPFLAGS="-I$WORK/include/libpng16 -I$WORK/include/freetype2 -I$WORK/include/libxml2 -I$WORK/include" \ + CFLAGS="$CFLAGS" \ + LDFLAGS="${LDFLAGS:-} -L$WORK/lib" \ + --prefix="$WORK" \ + --disable-compressed-files \ + --without-perl \ + --with-quantum-depth=16 +make "-j$(nproc)" +make install printf "=== Building fuzzers...\n" for f in fuzzing/*_fuzzer.cc; do @@ -159,6 +314,22 @@ set +x done +# Order libraries in linkage dependency order so libraries on the +# right provide symbols needed by libraries to the left, to the +# maximum extent possible. +# FIXME: This hard-coded list is not taking advantage of the list that GraphicsMagick configure computed! +#MAGICK_LIBS="$WORK/lib/libxml2.a $WORK/lib/libjasper.a $WORK/lib/libpng.a $WORK/lib/libtiff.a $WORK/lib/liblcms2.a $WORK/lib/libwebpmux.a $WORK/lib/libwebp.a $WORK/lib/libsharpyuv.a $WORK/lib/libturbojpeg.a $WORK/lib/libfreetype.a $WORK/lib/libzstd.a $WORK/lib/liblzma.a $WORK/lib/libz.a" +MAGICK_LIBS='' +for lib in libxml2.a libjasper.a libpng.a libtiff.a liblcms2.a libwebpmux.a libwebpdemux.a libwebp.a libsharpyuv.a libheif.a libturbojpeg.a libfreetype.a libx265.a libde265.a libzstd.a liblzma.a libz.a ; do + if [ -f "${WORK}/lib/$lib" ] ; then + if [ -n "${MAGICK_LIBS}" ] ; then + MAGICK_LIBS="${MAGICK_LIBS} " + fi + MAGICK_LIBS="${MAGICK_LIBS}${WORK}/lib/${lib}" + fi +done +printf "MAGICK_LIBS=${MAGICK_LIBS}\n" +