From 35dfa4d3ad873a7223545253a0529652ac24c01f Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 26 Oct 2018 14:38:19 -0700 Subject: [PATCH] Updated to libwebp version 1.0.0 --- VisualC/external/include/webp/decode.h | 87 +- .../external/include}/webp/demux.h | 67 +- VisualC/external/include/webp/encode.h | 131 +- .../external/include}/webp/mux_types.h | 0 VisualC/external/include/webp/types.h | 4 +- VisualC/external/lib/x64/LICENSE.jpeg.txt | 2 +- VisualC/external/lib/x64/LICENSE.png.txt | 2 +- VisualC/external/lib/x64/LICENSE.tiff.txt | 2 +- VisualC/external/lib/x64/LICENSE.webp.txt | 2 +- VisualC/external/lib/x64/LICENSE.zlib.txt | 2 +- VisualC/external/lib/x64/libwebp-7.dll | Bin 560279 -> 442368 bytes VisualC/external/lib/x86/LICENSE.jpeg.txt | 2 +- VisualC/external/lib/x86/LICENSE.png.txt | 2 +- VisualC/external/lib/x86/LICENSE.tiff.txt | 2 +- VisualC/external/lib/x86/LICENSE.webp.txt | 2 +- VisualC/external/lib/x86/LICENSE.zlib.txt | 2 +- VisualC/external/lib/x86/libwebp-7.dll | Bin 416256 -> 410112 bytes .../Versions/A/Headers/webp/decode.h | 87 +- .../Versions/A/Headers/webp/demux.h | 363 + .../Versions/A/Headers/webp/encode.h | 131 +- .../Versions/A/Headers/webp/mux_types.h | 98 + .../Versions/A/Headers/webp/types.h | 4 +- .../Frameworks/webp.framework/Versions/A/webp | Bin 1354828 -> 653148 bytes external/libwebp-0.6.0/CMakeLists.txt | 189 - external/libwebp-0.6.0/doc/TODO | 13 - external/libwebp-0.6.0/examples/Makefile.am | 75 - .../libwebp-0.6.0/examples/example_util.c | 58 - external/libwebp-0.6.0/extras/Makefile.am | 26 - external/libwebp-0.6.0/src/dsp/argb.c | 68 - .../libwebp-0.6.0/src/dsp/argb_mips_dsp_r2.c | 110 - external/libwebp-0.6.0/src/dsp/argb_sse2.c | 67 - .../src/dsp/lossless_enc_sse41.c | 53 - .../src/enc/backward_references_enc.c | 1800 -- .../src/enc/delta_palettization_enc.c | 455 - .../src/enc/delta_palettization_enc.h | 25 - ...ibwebp-0.6.0.patch => libwebp-1.0.0.patch} | 8 +- .../{libwebp-0.6.0 => libwebp-1.0.0}/AUTHORS | 1 + .../Android.mk | 22 +- external/libwebp-1.0.0/CMakeLists.txt | 371 + .../{libwebp-0.6.0 => libwebp-1.0.0}/COPYING | 0 .../ChangeLog | 368 + .../Makefile.am | 0 external/libwebp-1.0.0/Makefile.in | 838 + .../Makefile.vc | 48 +- .../{libwebp-0.6.0 => libwebp-1.0.0}/NEWS | 23 + .../{libwebp-0.6.0 => libwebp-1.0.0}/PATENTS | 0 .../{libwebp-0.6.0 => libwebp-1.0.0}/README | 42 +- .../README.mux | 6 +- external/libwebp-1.0.0/README.webp_js | 76 + external/libwebp-1.0.0/aclocal.m4 | 1218 ++ external/libwebp-1.0.0/ar-lib | 270 + .../autogen.sh | 0 .../build.gradle | 45 +- .../libwebp-1.0.0/cmake/WebPConfig.cmake.in | 6 + .../cmake/config.h.in | 19 +- .../cmake/cpu.cmake | 22 +- .../cmake/deps.cmake} | 49 +- external/libwebp-1.0.0/compile | 347 + external/libwebp-1.0.0/config.guess | 1462 ++ external/libwebp-1.0.0/config.sub | 1825 ++ external/libwebp-1.0.0/configure | 17413 ++++++++++++++++ .../configure.ac | 131 +- external/libwebp-1.0.0/depcomp | 791 + .../doc/README | 0 .../doc/template.html | 0 .../doc/webp-container-spec.txt | 5 +- .../doc/webp-lossless-bitstream-spec.txt | 0 .../examples/Android.mk | 24 +- external/libwebp-1.0.0/examples/Makefile.am | 119 + external/libwebp-1.0.0/examples/Makefile.in | 1018 + .../examples/anim_diff.c | 33 +- external/libwebp-1.0.0/examples/anim_dump.c | 118 + .../examples/anim_util.c | 33 +- .../examples/anim_util.h | 4 + .../examples/cwebp.c | 44 +- .../examples/dwebp.c | 5 +- .../libwebp-1.0.0/examples/example_util.c | 127 + .../examples/example_util.h | 28 + .../examples/gif2webp.c | 72 +- .../examples/gifdec.c | 6 + .../examples/gifdec.h | 0 .../examples/img2webp.c | 30 +- .../examples/stopwatch.h | 0 .../examples/test.webp | Bin .../examples/test_ref.ppm | 0 .../examples/vwebp.c | 23 +- external/libwebp-1.0.0/examples/webpinfo.c | 1178 ++ .../examples/webpmux.c | 168 +- external/libwebp-1.0.0/extras/Makefile.am | 44 + external/libwebp-1.0.0/extras/Makefile.in | 760 + .../extras/extras.c | 16 +- .../extras/extras.h | 12 +- .../extras/get_disto.c | 18 +- .../extras/quality_estimate.c | 4 +- external/libwebp-1.0.0/extras/vwebp_sdl.c | 96 + .../extras/webp_quality.c | 4 +- external/libwebp-1.0.0/extras/webp_to_sdl.c | 110 + external/libwebp-1.0.0/extras/webp_to_sdl.h | 22 + .../gradle.properties | 0 .../gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 .../{libwebp-0.6.0 => libwebp-1.0.0}/gradlew | 0 .../gradlew.bat | 0 .../imageio/Android.mk | 1 + .../imageio/Makefile.am | 22 +- external/libwebp-1.0.0/imageio/Makefile.in | 717 + .../imageio/image_dec.c | 5 + .../imageio/image_dec.h | 2 + .../imageio/image_enc.c | 50 +- .../imageio/image_enc.h | 0 .../imageio/imageio_util.c | 29 +- .../imageio/imageio_util.h | 3 + .../imageio/jpegdec.c | 6 +- .../imageio/jpegdec.h | 0 .../imageio/metadata.c | 0 .../imageio/metadata.h | 0 .../imageio/pngdec.c | 11 +- .../imageio/pngdec.h | 0 external/libwebp-1.0.0/imageio/pnmdec.c | 257 + external/libwebp-1.0.0/imageio/pnmdec.h | 37 + .../imageio/tiffdec.c | 68 +- .../imageio/tiffdec.h | 0 .../imageio/webpdec.c | 149 +- .../imageio/webpdec.h | 2 +- .../imageio/wicdec.c | 0 .../imageio/wicdec.h | 0 external/libwebp-1.0.0/install-sh | 508 + .../iosbuild.sh | 0 external/libwebp-1.0.0/ltmain.sh | 11156 ++++++++++ .../m4/ax_pthread.m4 | 0 external/libwebp-1.0.0/m4/libtool.m4 | 8387 ++++++++ external/libwebp-1.0.0/m4/ltoptions.m4 | 437 + external/libwebp-1.0.0/m4/ltsugar.m4 | 124 + external/libwebp-1.0.0/m4/ltversion.m4 | 23 + external/libwebp-1.0.0/m4/lt~obsolete.m4 | 99 + .../makefile.unix | 76 +- .../man/Makefile.am | 3 + external/libwebp-1.0.0/man/Makefile.in | 548 + .../man/cwebp.1 | 3 +- .../man/dwebp.1 | 0 .../man/gif2webp.1 | 17 +- .../man/img2webp.1 | 14 +- .../man/vwebp.1 | 0 external/libwebp-1.0.0/man/webpinfo.1 | 80 + .../man/webpmux.1 | 7 +- external/libwebp-1.0.0/missing | 215 + .../src/Makefile.am | 5 +- external/libwebp-1.0.0/src/Makefile.in | 880 + .../src/dec/Makefile.am | 3 +- external/libwebp-1.0.0/src/dec/Makefile.in | 759 + .../src/dec/alpha_dec.c | 14 +- .../src/dec/alphai_dec.h | 10 +- .../src/dec/buffer_dec.c | 51 +- .../src/dec/common_dec.h | 6 +- .../src/dec/frame_dec.c | 28 +- .../src/dec/idec_dec.c | 14 +- .../src/dec/io_dec.c | 24 +- .../src/dec/quant_dec.c | 2 +- .../src/dec/tree_dec.c | 18 +- .../src/dec/vp8_dec.c | 14 +- .../src/dec/vp8_dec.h | 18 +- .../src/dec/vp8i_dec.h | 23 +- .../src/dec/vp8l_dec.c | 56 +- .../src/dec/vp8li_dec.h | 14 +- .../src/dec/webp_dec.c | 14 +- .../src/dec/webpi_dec.h | 10 +- .../src/demux/Makefile.am | 6 +- external/libwebp-1.0.0/src/demux/Makefile.in | 735 + .../src/demux/anim_decode.c | 8 +- .../src/demux/demux.c | 28 +- .../src/demux/libwebpdemux.pc.in | 0 .../src/demux/libwebpdemux.rc | 10 +- .../src/dsp/Makefile.am | 30 +- external/libwebp-1.0.0/src/dsp/Makefile.in | 1591 ++ .../src/dsp/alpha_processing.c | 141 +- .../src/dsp/alpha_processing_mips_dsp_r2.c | 101 +- .../src/dsp/alpha_processing_neon.c | 4 +- .../src/dsp/alpha_processing_sse2.c | 88 +- .../src/dsp/alpha_processing_sse41.c | 10 +- .../src/dsp/common_sse2.h | 14 +- external/libwebp-1.0.0/src/dsp/common_sse41.h | 132 + .../src/dsp/cost.c | 23 +- .../src/dsp/cost_mips32.c | 14 +- .../src/dsp/cost_mips_dsp_r2.c | 8 +- .../src/dsp/cost_sse2.c | 18 +- .../src/dsp/cpu.c | 4 +- .../src/dsp/dec.c | 406 +- .../src/dsp/dec_clip_tables.c | 13 +- .../src/dsp/dec_mips32.c | 4 +- .../src/dsp/dec_mips_dsp_r2.c | 4 +- .../src/dsp/dec_msa.c | 15 +- .../src/dsp/dec_neon.c | 727 +- .../src/dsp/dec_sse2.c | 464 +- .../src/dsp/dec_sse41.c | 10 +- .../src/dsp/dsp.h | 144 +- .../src/dsp/enc.c | 299 +- .../src/dsp/enc_avx2.c | 2 +- .../src/dsp/enc_mips32.c | 77 +- .../src/dsp/enc_mips_dsp_r2.c | 99 +- .../src/dsp/enc_msa.c | 122 +- .../src/dsp/enc_neon.c | 198 +- .../src/dsp/enc_sse2.c | 477 +- .../src/dsp/enc_sse41.c | 66 +- .../src/dsp/filters.c | 146 +- .../src/dsp/filters_mips_dsp_r2.c | 97 +- .../src/dsp/filters_msa.c | 22 +- .../src/dsp/filters_neon.c | 18 +- .../src/dsp/filters_sse2.c | 115 +- .../src/dsp/lossless.c | 206 +- .../src/dsp/lossless.h | 14 +- .../src/dsp/lossless_common.h | 12 +- .../src/dsp/lossless_enc.c | 141 +- .../src/dsp/lossless_enc_mips32.c | 59 +- .../src/dsp/lossless_enc_mips_dsp_r2.c | 40 +- .../src/dsp/lossless_enc_msa.c | 17 +- .../src/dsp/lossless_enc_neon.c | 29 +- .../src/dsp/lossless_enc_sse2.c | 120 +- .../src/dsp/lossless_enc_sse41.c | 148 + .../src/dsp/lossless_mips_dsp_r2.c | 109 +- .../src/dsp/lossless_msa.c | 41 +- .../src/dsp/lossless_neon.c | 63 +- .../src/dsp/lossless_sse2.c | 290 +- .../src/dsp/mips_macro.h | 0 .../src/dsp/msa_macro.h | 2 + .../src/dsp/neon.h | 11 +- .../src/dsp/rescaler.c | 50 +- .../src/dsp/rescaler_mips32.c | 24 +- .../src/dsp/rescaler_mips_dsp_r2.c | 14 +- .../src/dsp/rescaler_msa.c | 16 +- .../src/dsp/rescaler_neon.c | 26 +- .../src/dsp/rescaler_sse2.c | 102 +- external/libwebp-1.0.0/src/dsp/ssim.c | 159 + external/libwebp-1.0.0/src/dsp/ssim_sse2.c | 165 + .../src/dsp/upsampling.c | 189 +- .../src/dsp/upsampling_mips_dsp_r2.c | 47 +- .../src/dsp/upsampling_msa.c | 56 +- .../src/dsp/upsampling_neon.c | 52 +- .../libwebp-1.0.0/src/dsp/upsampling_sse2.c | 267 + .../src/dsp/upsampling_sse41.c} | 140 +- .../src/dsp/yuv.c | 125 +- .../src/dsp/yuv.h | 88 +- .../src/dsp/yuv_mips32.c | 20 +- .../src/dsp/yuv_mips_dsp_r2.c | 20 +- external/libwebp-1.0.0/src/dsp/yuv_neon.c | 288 + .../src/dsp/yuv_sse2.c | 349 +- external/libwebp-1.0.0/src/dsp/yuv_sse41.c | 613 + .../src/enc/Makefile.am | 6 +- external/libwebp-1.0.0/src/enc/Makefile.in | 885 + .../src/enc/alpha_enc.c | 34 +- .../src/enc/analysis_enc.c | 12 +- .../src/enc/backward_references_cost_enc.c | 790 + .../src/enc/backward_references_enc.c | 943 + .../src/enc/backward_references_enc.h | 57 +- .../src/enc/config_enc.c | 4 +- .../src/enc/cost_enc.c | 2 +- .../src/enc/cost_enc.h | 8 +- .../src/enc/filter_enc.c | 22 +- .../src/enc/frame_enc.c | 52 +- .../src/enc/histogram_enc.c | 358 +- .../src/enc/histogram_enc.h | 23 +- .../src/enc/iterator_enc.c | 10 +- .../src/enc/near_lossless_enc.c | 73 +- .../src/enc/picture_csp_enc.c | 235 +- .../src/enc/picture_enc.c | 27 +- .../src/enc/picture_psnr_enc.c | 55 +- .../src/enc/picture_rescale_enc.c | 53 +- .../src/enc/picture_tools_enc.c | 121 +- .../src/enc/predictor_enc.c | 42 +- .../src/enc/quant_enc.c | 103 +- .../src/enc/syntax_enc.c | 14 +- .../src/enc/token_enc.c | 42 +- .../src/enc/tree_enc.c | 2 +- .../src/enc/vp8i_enc.h | 52 +- .../src/enc/vp8l_enc.c | 928 +- .../src/enc/vp8li_enc.h | 55 +- .../src/enc/webp_enc.c | 34 +- .../src/libwebp.pc.in | 0 .../src/libwebp.rc | 10 +- .../src/libwebpdecoder.pc.in | 0 .../src/libwebpdecoder.rc | 10 +- .../src/mux/Makefile.am | 5 +- external/libwebp-1.0.0/src/mux/Makefile.in | 738 + .../src/mux/anim_encode.c | 56 +- .../src/mux/animi.h | 2 +- .../src/mux/libwebpmux.pc.in | 0 .../src/mux/libwebpmux.rc | 10 +- .../src/mux/muxedit.c | 4 +- .../src/mux/muxi.h | 10 +- .../src/mux/muxinternal.c | 21 +- .../src/mux/muxread.c | 9 +- .../src/utils/Makefile.am | 1 + external/libwebp-1.0.0/src/utils/Makefile.in | 715 + .../src/utils/bit_reader_inl_utils.h | 16 +- .../src/utils/bit_reader_utils.c | 6 +- .../src/utils/bit_reader_utils.h | 11 +- .../src/utils/bit_writer_utils.c | 33 +- .../src/utils/bit_writer_utils.h | 18 +- .../src/utils/color_cache_utils.c | 4 +- .../src/utils/color_cache_utils.h | 18 +- .../src/utils/endian_inl_utils.h | 19 +- .../src/utils/filters_utils.c | 2 +- .../src/utils/filters_utils.h | 10 +- .../src/utils/huffman_encode_utils.c | 6 +- .../src/utils/huffman_encode_utils.h | 8 +- .../src/utils/huffman_utils.c | 6 +- .../src/utils/huffman_utils.h | 10 +- .../src/utils/quant_levels_dec_utils.c | 9 +- .../src/utils/quant_levels_dec_utils.h | 8 +- .../src/utils/quant_levels_utils.c | 2 +- .../src/utils/quant_levels_utils.h | 8 +- .../src/utils/random_utils.c | 2 +- .../src/utils/random_utils.h | 8 +- .../src/utils/rescaler_utils.c | 10 +- .../src/utils/rescaler_utils.h | 8 +- .../src/utils/thread_utils.c | 63 +- .../src/utils/thread_utils.h | 19 +- .../src/utils/utils.c | 12 +- .../src/utils/utils.h | 34 +- external/libwebp-1.0.0/src/webp/config.h.in | 152 + .../src/webp/decode.h | 87 +- external/libwebp-1.0.0/src/webp/demux.h | 363 + .../src/webp/encode.h | 131 +- .../src/webp/format_constants.h | 0 .../src/webp/mux.h | 60 +- external/libwebp-1.0.0/src/webp/mux_types.h | 98 + .../src/webp/types.h | 4 +- .../swig/README | 0 .../swig/libwebp.go | 0 .../swig/libwebp.jar | Bin .../swig/libwebp.py | 0 .../swig/libwebp.swig | 0 .../swig/libwebp_gc.c | 0 .../swig/libwebp_go_wrap.c | 0 .../swig/libwebp_java_wrap.c | 0 .../swig/libwebp_python_wrap.c | 0 .../swig/setup.py | 0 external/libwebp-1.0.0/webp_js/index.html | 75 + .../libwebp-1.0.0/webp_js/index_wasm.html | 90 + .../libwebp-1.0.0/webp_js/test_webp_js.webp | Bin 0 -> 1321542 bytes .../libwebp-1.0.0/webp_js/test_webp_wasm.webp | Bin 0 -> 1321542 bytes 340 files changed, 69120 insertions(+), 7997 deletions(-) rename {external/libwebp-0.6.0/src => VisualC/external/include}/webp/demux.h (85%) rename {external/libwebp-0.6.0/src => VisualC/external/include}/webp/mux_types.h (100%) create mode 100644 Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/demux.h create mode 100644 Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/mux_types.h delete mode 100644 external/libwebp-0.6.0/CMakeLists.txt delete mode 100644 external/libwebp-0.6.0/doc/TODO delete mode 100644 external/libwebp-0.6.0/examples/Makefile.am delete mode 100644 external/libwebp-0.6.0/examples/example_util.c delete mode 100644 external/libwebp-0.6.0/extras/Makefile.am delete mode 100644 external/libwebp-0.6.0/src/dsp/argb.c delete mode 100644 external/libwebp-0.6.0/src/dsp/argb_mips_dsp_r2.c delete mode 100644 external/libwebp-0.6.0/src/dsp/argb_sse2.c delete mode 100644 external/libwebp-0.6.0/src/dsp/lossless_enc_sse41.c delete mode 100644 external/libwebp-0.6.0/src/enc/backward_references_enc.c delete mode 100644 external/libwebp-0.6.0/src/enc/delta_palettization_enc.c delete mode 100644 external/libwebp-0.6.0/src/enc/delta_palettization_enc.h rename external/{libwebp-0.6.0.patch => libwebp-1.0.0.patch} (54%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/AUTHORS (96%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/Android.mk (91%) create mode 100644 external/libwebp-1.0.0/CMakeLists.txt rename external/{libwebp-0.6.0 => libwebp-1.0.0}/COPYING (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/ChangeLog (90%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/Makefile.am (100%) create mode 100644 external/libwebp-1.0.0/Makefile.in rename external/{libwebp-0.6.0 => libwebp-1.0.0}/Makefile.vc (91%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/NEWS (87%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/PATENTS (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/README (95%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/README.mux (96%) create mode 100644 external/libwebp-1.0.0/README.webp_js create mode 100644 external/libwebp-1.0.0/aclocal.m4 create mode 100755 external/libwebp-1.0.0/ar-lib rename external/{libwebp-0.6.0 => libwebp-1.0.0}/autogen.sh (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/build.gradle (88%) create mode 100644 external/libwebp-1.0.0/cmake/WebPConfig.cmake.in rename external/{libwebp-0.6.0 => libwebp-1.0.0}/cmake/config.h.in (90%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/cmake/cpu.cmake (84%) rename external/{libwebp-0.6.0/cmake/config.h.cmake => libwebp-1.0.0/cmake/deps.cmake} (75%) create mode 100755 external/libwebp-1.0.0/compile create mode 100755 external/libwebp-1.0.0/config.guess create mode 100755 external/libwebp-1.0.0/config.sub create mode 100755 external/libwebp-1.0.0/configure rename external/{libwebp-0.6.0 => libwebp-1.0.0}/configure.ac (87%) create mode 100755 external/libwebp-1.0.0/depcomp rename external/{libwebp-0.6.0 => libwebp-1.0.0}/doc/README (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/doc/template.html (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/doc/webp-container-spec.txt (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/doc/webp-lossless-bitstream-spec.txt (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/Android.mk (78%) create mode 100644 external/libwebp-1.0.0/examples/Makefile.am create mode 100644 external/libwebp-1.0.0/examples/Makefile.in rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/anim_diff.c (93%) create mode 100644 external/libwebp-1.0.0/examples/anim_dump.c rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/anim_util.c (95%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/anim_util.h (92%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/cwebp.c (97%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/dwebp.c (99%) create mode 100644 external/libwebp-1.0.0/examples/example_util.c rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/example_util.h (58%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/gif2webp.c (88%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/gifdec.c (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/gifdec.h (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/img2webp.c (90%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/stopwatch.h (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/test.webp (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/test_ref.ppm (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/vwebp.c (95%) create mode 100644 external/libwebp-1.0.0/examples/webpinfo.c rename external/{libwebp-0.6.0 => libwebp-1.0.0}/examples/webpmux.c (89%) create mode 100644 external/libwebp-1.0.0/extras/Makefile.am create mode 100644 external/libwebp-1.0.0/extras/Makefile.in rename external/{libwebp-0.6.0 => libwebp-1.0.0}/extras/extras.c (93%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/extras/extras.h (87%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/extras/get_disto.c (95%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/extras/quality_estimate.c (98%) create mode 100644 external/libwebp-1.0.0/extras/vwebp_sdl.c rename external/{libwebp-0.6.0 => libwebp-1.0.0}/extras/webp_quality.c (95%) create mode 100644 external/libwebp-1.0.0/extras/webp_to_sdl.c create mode 100644 external/libwebp-1.0.0/extras/webp_to_sdl.h rename external/{libwebp-0.6.0 => libwebp-1.0.0}/gradle.properties (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/gradle/wrapper/gradle-wrapper.jar (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/gradle/wrapper/gradle-wrapper.properties (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/gradlew (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/gradlew.bat (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/Android.mk (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/Makefile.am (50%) create mode 100644 external/libwebp-1.0.0/imageio/Makefile.in rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/image_dec.c (89%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/image_dec.h (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/image_enc.c (94%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/image_enc.h (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/imageio_util.c (81%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/imageio_util.h (92%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/jpegdec.c (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/jpegdec.h (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/metadata.c (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/metadata.h (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/pngdec.c (97%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/pngdec.h (100%) create mode 100644 external/libwebp-1.0.0/imageio/pnmdec.c create mode 100644 external/libwebp-1.0.0/imageio/pnmdec.h rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/tiffdec.c (74%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/tiffdec.h (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/webpdec.c (54%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/webpdec.h (96%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/wicdec.c (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/imageio/wicdec.h (100%) create mode 100755 external/libwebp-1.0.0/install-sh rename external/{libwebp-0.6.0 => libwebp-1.0.0}/iosbuild.sh (100%) create mode 100644 external/libwebp-1.0.0/ltmain.sh rename external/{libwebp-0.6.0 => libwebp-1.0.0}/m4/ax_pthread.m4 (100%) create mode 100644 external/libwebp-1.0.0/m4/libtool.m4 create mode 100644 external/libwebp-1.0.0/m4/ltoptions.m4 create mode 100644 external/libwebp-1.0.0/m4/ltsugar.m4 create mode 100644 external/libwebp-1.0.0/m4/ltversion.m4 create mode 100644 external/libwebp-1.0.0/m4/lt~obsolete.m4 rename external/{libwebp-0.6.0 => libwebp-1.0.0}/makefile.unix (86%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/man/Makefile.am (79%) create mode 100644 external/libwebp-1.0.0/man/Makefile.in rename external/{libwebp-0.6.0 => libwebp-1.0.0}/man/cwebp.1 (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/man/dwebp.1 (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/man/gif2webp.1 (89%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/man/img2webp.1 (88%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/man/vwebp.1 (100%) create mode 100644 external/libwebp-1.0.0/man/webpinfo.1 rename external/{libwebp-0.6.0 => libwebp-1.0.0}/man/webpmux.1 (95%) create mode 100755 external/libwebp-1.0.0/missing rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/Makefile.am (92%) create mode 100644 external/libwebp-1.0.0/src/Makefile.in rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/Makefile.am (91%) create mode 100644 external/libwebp-1.0.0/src/dec/Makefile.in rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/alpha_dec.c (97%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/alphai_dec.h (89%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/buffer_dec.c (90%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/common_dec.h (94%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/frame_dec.c (97%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/idec_dec.c (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/io_dec.c (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/quant_dec.c (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/tree_dec.c (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/vp8_dec.c (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/vp8_dec.h (94%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/vp8i_dec.h (97%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/vp8l_dec.c (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/vp8li_dec.h (94%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/webp_dec.c (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dec/webpi_dec.h (97%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/demux/Makefile.am (64%) create mode 100644 external/libwebp-1.0.0/src/demux/Makefile.in rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/demux/anim_decode.c (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/demux/demux.c (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/demux/libwebpdemux.pc.in (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/demux/libwebpdemux.rc (81%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/Makefile.am (86%) create mode 100644 external/libwebp-1.0.0/src/dsp/Makefile.in rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/alpha_processing.c (80%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/alpha_processing_mips_dsp_r2.c (53%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/alpha_processing_neon.c (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/alpha_processing_sse2.c (76%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/alpha_processing_sse41.c (93%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/common_sse2.h (94%) create mode 100644 external/libwebp-1.0.0/src/dsp/common_sse41.h rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/cost.c (96%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/cost_mips32.c (95%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/cost_mips_dsp_r2.c (96%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/cost_sse2.c (90%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/cpu.c (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/dec.c (62%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/dec_clip_tables.c (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/dec_mips32.c (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/dec_mips_dsp_r2.c (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/dec_msa.c (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/dec_neon.c (71%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/dec_sse2.c (73%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/dec_sse41.c (87%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/dsp.h (82%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/enc.c (74%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/enc_avx2.c (96%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/enc_mips32.c (94%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/enc_mips_dsp_r2.c (96%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/enc_msa.c (91%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/enc_neon.c (84%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/enc_sse2.c (78%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/enc_sse41.c (85%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/filters.c (58%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/filters_mips_dsp_r2.c (83%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/filters_msa.c (88%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/filters_neon.c (96%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/filters_sse2.c (69%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/lossless.c (79%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/lossless.h (96%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/lossless_common.h (96%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/lossless_enc.c (90%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/lossless_enc_mips32.c (89%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/lossless_enc_mips_dsp_r2.c (89%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/lossless_enc_msa.c (92%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/lossless_enc_neon.c (82%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/lossless_enc_sse2.c (88%) create mode 100644 external/libwebp-1.0.0/src/dsp/lossless_enc_sse41.c rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/lossless_mips_dsp_r2.c (91%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/lossless_msa.c (91%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/lossless_neon.c (92%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/lossless_sse2.c (74%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/mips_macro.h (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/msa_macro.h (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/neon.h (91%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/rescaler.c (85%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/rescaler_mips32.c (94%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/rescaler_mips_dsp_r2.c (97%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/rescaler_msa.c (97%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/rescaler_neon.c (89%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/rescaler_sse2.c (80%) create mode 100644 external/libwebp-1.0.0/src/dsp/ssim.c create mode 100644 external/libwebp-1.0.0/src/dsp/ssim_sse2.c rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/upsampling.c (65%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/upsampling_mips_dsp_r2.c (96%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/upsampling_msa.c (97%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/upsampling_neon.c (90%) create mode 100644 external/libwebp-1.0.0/src/dsp/upsampling_sse2.c rename external/{libwebp-0.6.0/src/dsp/upsampling_sse2.c => libwebp-1.0.0/src/dsp/upsampling_sse41.c} (70%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/yuv.c (78%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/yuv.h (72%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/yuv_mips32.c (92%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/yuv_mips_dsp_r2.c (94%) create mode 100644 external/libwebp-1.0.0/src/dsp/yuv_neon.c rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/dsp/yuv_sse2.c (70%) create mode 100644 external/libwebp-1.0.0/src/dsp/yuv_sse41.c rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/Makefile.am (89%) create mode 100644 external/libwebp-1.0.0/src/enc/Makefile.in rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/alpha_enc.c (94%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/analysis_enc.c (98%) create mode 100644 external/libwebp-1.0.0/src/enc/backward_references_cost_enc.c create mode 100644 external/libwebp-1.0.0/src/enc/backward_references_enc.c rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/backward_references_enc.h (79%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/config_enc.c (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/cost_enc.c (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/cost_enc.h (95%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/filter_enc.c (95%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/frame_enc.c (95%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/histogram_enc.c (77%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/histogram_enc.h (88%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/iterator_enc.c (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/near_lossless_enc.c (59%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/picture_csp_enc.c (88%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/picture_enc.c (93%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/picture_psnr_enc.c (83%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/picture_rescale_enc.c (90%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/picture_tools_enc.c (64%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/predictor_enc.c (96%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/quant_enc.c (92%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/syntax_enc.c (97%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/token_enc.c (88%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/tree_enc.c (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/vp8i_enc.h (94%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/vp8l_enc.c (67%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/vp8li_enc.h (65%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/enc/webp_enc.c (94%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/libwebp.pc.in (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/libwebp.rc (81%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/libwebpdecoder.pc.in (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/libwebpdecoder.rc (82%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/mux/Makefile.am (75%) create mode 100644 external/libwebp-1.0.0/src/mux/Makefile.in rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/mux/anim_encode.c (97%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/mux/animi.h (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/mux/libwebpmux.pc.in (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/mux/libwebpmux.rc (81%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/mux/muxedit.c (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/mux/muxi.h (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/mux/muxinternal.c (96%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/mux/muxread.c (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/Makefile.am (96%) create mode 100644 external/libwebp-1.0.0/src/utils/Makefile.in rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/bit_reader_inl_utils.h (94%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/bit_reader_utils.c (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/bit_reader_utils.h (96%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/bit_writer_utils.c (91%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/bit_writer_utils.h (88%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/color_cache_utils.c (95%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/color_cache_utils.h (86%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/endian_inl_utils.h (85%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/filters_utils.c (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/filters_utils.h (83%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/huffman_encode_utils.c (99%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/huffman_encode_utils.h (92%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/huffman_utils.c (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/huffman_utils.h (94%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/quant_levels_dec_utils.c (97%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/quant_levels_dec_utils.h (86%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/quant_levels_utils.c (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/quant_levels_utils.h (86%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/random_utils.c (98%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/random_utils.h (93%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/rescaler_utils.c (95%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/rescaler_utils.h (96%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/thread_utils.c (86%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/thread_utils.h (89%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/utils.c (97%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/utils/utils.h (86%) create mode 100644 external/libwebp-1.0.0/src/webp/config.h.in rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/webp/decode.h (90%) create mode 100644 external/libwebp-1.0.0/src/webp/demux.h rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/webp/encode.h (84%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/webp/format_constants.h (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/webp/mux.h (92%) create mode 100644 external/libwebp-1.0.0/src/webp/mux_types.h rename external/{libwebp-0.6.0 => libwebp-1.0.0}/src/webp/types.h (92%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/swig/README (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/swig/libwebp.go (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/swig/libwebp.jar (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/swig/libwebp.py (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/swig/libwebp.swig (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/swig/libwebp_gc.c (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/swig/libwebp_go_wrap.c (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/swig/libwebp_java_wrap.c (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/swig/libwebp_python_wrap.c (100%) rename external/{libwebp-0.6.0 => libwebp-1.0.0}/swig/setup.py (100%) create mode 100644 external/libwebp-1.0.0/webp_js/index.html create mode 100644 external/libwebp-1.0.0/webp_js/index_wasm.html create mode 100644 external/libwebp-1.0.0/webp_js/test_webp_js.webp create mode 100644 external/libwebp-1.0.0/webp_js/test_webp_wasm.webp diff --git a/VisualC/external/include/webp/decode.h b/VisualC/external/include/webp/decode.h index 4c5e74ac..2165e96c 100644 --- a/VisualC/external/include/webp/decode.h +++ b/VisualC/external/include/webp/decode.h @@ -36,39 +36,39 @@ typedef struct WebPDecoderConfig WebPDecoderConfig; // Return the decoder's version number, packed in hexadecimal using 8bits for // each of major/minor/revision. E.g: v2.5.7 is 0x020507. -WEBP_EXTERN(int) WebPGetDecoderVersion(void); +WEBP_EXTERN int WebPGetDecoderVersion(void); // Retrieve basic header information: width, height. // This function will also validate the header, returning true on success, // false otherwise. '*width' and '*height' are only valid on successful return. // Pointers 'width' and 'height' can be passed NULL if deemed irrelevant. -WEBP_EXTERN(int) WebPGetInfo(const uint8_t* data, size_t data_size, - int* width, int* height); +WEBP_EXTERN int WebPGetInfo(const uint8_t* data, size_t data_size, + int* width, int* height); // Decodes WebP images pointed to by 'data' and returns RGBA samples, along // with the dimensions in *width and *height. The ordering of samples in // memory is R, G, B, A, R, G, B, A... in scan order (endian-independent). // The returned pointer should be deleted calling WebPFree(). // Returns NULL in case of error. -WEBP_EXTERN(uint8_t*) WebPDecodeRGBA(const uint8_t* data, size_t data_size, - int* width, int* height); +WEBP_EXTERN uint8_t* WebPDecodeRGBA(const uint8_t* data, size_t data_size, + int* width, int* height); // Same as WebPDecodeRGBA, but returning A, R, G, B, A, R, G, B... ordered data. -WEBP_EXTERN(uint8_t*) WebPDecodeARGB(const uint8_t* data, size_t data_size, - int* width, int* height); +WEBP_EXTERN uint8_t* WebPDecodeARGB(const uint8_t* data, size_t data_size, + int* width, int* height); // Same as WebPDecodeRGBA, but returning B, G, R, A, B, G, R, A... ordered data. -WEBP_EXTERN(uint8_t*) WebPDecodeBGRA(const uint8_t* data, size_t data_size, - int* width, int* height); +WEBP_EXTERN uint8_t* WebPDecodeBGRA(const uint8_t* data, size_t data_size, + int* width, int* height); // Same as WebPDecodeRGBA, but returning R, G, B, R, G, B... ordered data. // If the bitstream contains transparency, it is ignored. -WEBP_EXTERN(uint8_t*) WebPDecodeRGB(const uint8_t* data, size_t data_size, - int* width, int* height); +WEBP_EXTERN uint8_t* WebPDecodeRGB(const uint8_t* data, size_t data_size, + int* width, int* height); // Same as WebPDecodeRGB, but returning B, G, R, B, G, R... ordered data. -WEBP_EXTERN(uint8_t*) WebPDecodeBGR(const uint8_t* data, size_t data_size, - int* width, int* height); +WEBP_EXTERN uint8_t* WebPDecodeBGR(const uint8_t* data, size_t data_size, + int* width, int* height); // Decode WebP images pointed to by 'data' to Y'UV format(*). The pointer @@ -80,13 +80,13 @@ WEBP_EXTERN(uint8_t*) WebPDecodeBGR(const uint8_t* data, size_t data_size, // have a common stride returned as '*uv_stride'. // Return NULL in case of error. // (*) Also named Y'CbCr. See: http://en.wikipedia.org/wiki/YCbCr -WEBP_EXTERN(uint8_t*) WebPDecodeYUV(const uint8_t* data, size_t data_size, - int* width, int* height, - uint8_t** u, uint8_t** v, - int* stride, int* uv_stride); +WEBP_EXTERN uint8_t* WebPDecodeYUV(const uint8_t* data, size_t data_size, + int* width, int* height, + uint8_t** u, uint8_t** v, + int* stride, int* uv_stride); // Releases memory returned by the WebPDecode*() functions above. -WEBP_EXTERN(void) WebPFree(void* ptr); +WEBP_EXTERN void WebPFree(void* ptr); // These five functions are variants of the above ones, that decode the image // directly into a pre-allocated buffer 'output_buffer'. The maximum storage @@ -96,22 +96,22 @@ WEBP_EXTERN(void) WebPFree(void* ptr); // The parameter 'output_stride' specifies the distance (in bytes) // between scanlines. Hence, output_buffer_size is expected to be at least // output_stride x picture-height. -WEBP_EXTERN(uint8_t*) WebPDecodeRGBAInto( +WEBP_EXTERN uint8_t* WebPDecodeRGBAInto( const uint8_t* data, size_t data_size, uint8_t* output_buffer, size_t output_buffer_size, int output_stride); -WEBP_EXTERN(uint8_t*) WebPDecodeARGBInto( +WEBP_EXTERN uint8_t* WebPDecodeARGBInto( const uint8_t* data, size_t data_size, uint8_t* output_buffer, size_t output_buffer_size, int output_stride); -WEBP_EXTERN(uint8_t*) WebPDecodeBGRAInto( +WEBP_EXTERN uint8_t* WebPDecodeBGRAInto( const uint8_t* data, size_t data_size, uint8_t* output_buffer, size_t output_buffer_size, int output_stride); // RGB and BGR variants. Here too the transparency information, if present, // will be dropped and ignored. -WEBP_EXTERN(uint8_t*) WebPDecodeRGBInto( +WEBP_EXTERN uint8_t* WebPDecodeRGBInto( const uint8_t* data, size_t data_size, uint8_t* output_buffer, size_t output_buffer_size, int output_stride); -WEBP_EXTERN(uint8_t*) WebPDecodeBGRInto( +WEBP_EXTERN uint8_t* WebPDecodeBGRInto( const uint8_t* data, size_t data_size, uint8_t* output_buffer, size_t output_buffer_size, int output_stride); @@ -122,7 +122,7 @@ WEBP_EXTERN(uint8_t*) WebPDecodeBGRInto( // 'u_size' and 'v_size' respectively. // Pointer to the luma plane ('*luma') is returned or NULL if an error occurred // during decoding (or because some buffers were found to be too small). -WEBP_EXTERN(uint8_t*) WebPDecodeYUVInto( +WEBP_EXTERN uint8_t* WebPDecodeYUVInto( const uint8_t* data, size_t data_size, uint8_t* luma, size_t luma_size, int luma_stride, uint8_t* u, size_t u_size, int u_stride, @@ -213,7 +213,7 @@ struct WebPDecBuffer { }; // Internal, version-checked, entry point -WEBP_EXTERN(int) WebPInitDecBufferInternal(WebPDecBuffer*, int); +WEBP_EXTERN int WebPInitDecBufferInternal(WebPDecBuffer*, int); // Initialize the structure as empty. Must be called before any other use. // Returns false in case of version mismatch @@ -223,7 +223,7 @@ static WEBP_INLINE int WebPInitDecBuffer(WebPDecBuffer* buffer) { // Free any memory associated with the buffer. Must always be called last. // Note: doesn't free the 'buffer' structure itself. -WEBP_EXTERN(void) WebPFreeDecBuffer(WebPDecBuffer* buffer); +WEBP_EXTERN void WebPFreeDecBuffer(WebPDecBuffer* buffer); //------------------------------------------------------------------------------ // Enumeration of the status codes @@ -277,7 +277,7 @@ typedef enum VP8StatusCode { // within valid bounds. // All other fields of WebPDecBuffer MUST remain constant between calls. // Returns NULL if the allocation failed. -WEBP_EXTERN(WebPIDecoder*) WebPINewDecoder(WebPDecBuffer* output_buffer); +WEBP_EXTERN WebPIDecoder* WebPINewDecoder(WebPDecBuffer* output_buffer); // This function allocates and initializes an incremental-decoder object, which // will output the RGB/A samples specified by 'csp' into a preallocated @@ -289,7 +289,7 @@ WEBP_EXTERN(WebPIDecoder*) WebPINewDecoder(WebPDecBuffer* output_buffer); // colorspace 'csp' is taken into account for allocating this buffer. All other // parameters are ignored. // Returns NULL if the allocation failed, or if some parameters are invalid. -WEBP_EXTERN(WebPIDecoder*) WebPINewRGB( +WEBP_EXTERN WebPIDecoder* WebPINewRGB( WEBP_CSP_MODE csp, uint8_t* output_buffer, size_t output_buffer_size, int output_stride); @@ -304,7 +304,7 @@ WEBP_EXTERN(WebPIDecoder*) WebPINewRGB( // In this case, the output buffer will be automatically allocated (using // MODE_YUVA) when decoding starts. All parameters are then ignored. // Returns NULL if the allocation failed or if a parameter is invalid. -WEBP_EXTERN(WebPIDecoder*) WebPINewYUVA( +WEBP_EXTERN WebPIDecoder* WebPINewYUVA( uint8_t* luma, size_t luma_size, int luma_stride, uint8_t* u, size_t u_size, int u_stride, uint8_t* v, size_t v_size, int v_stride, @@ -312,19 +312,19 @@ WEBP_EXTERN(WebPIDecoder*) WebPINewYUVA( // Deprecated version of the above, without the alpha plane. // Kept for backward compatibility. -WEBP_EXTERN(WebPIDecoder*) WebPINewYUV( +WEBP_EXTERN WebPIDecoder* WebPINewYUV( uint8_t* luma, size_t luma_size, int luma_stride, uint8_t* u, size_t u_size, int u_stride, uint8_t* v, size_t v_size, int v_stride); // Deletes the WebPIDecoder object and associated memory. Must always be called // if WebPINewDecoder, WebPINewRGB or WebPINewYUV succeeded. -WEBP_EXTERN(void) WebPIDelete(WebPIDecoder* idec); +WEBP_EXTERN void WebPIDelete(WebPIDecoder* idec); // Copies and decodes the next available data. Returns VP8_STATUS_OK when // the image is successfully decoded. Returns VP8_STATUS_SUSPENDED when more // data is expected. Returns error in other cases. -WEBP_EXTERN(VP8StatusCode) WebPIAppend( +WEBP_EXTERN VP8StatusCode WebPIAppend( WebPIDecoder* idec, const uint8_t* data, size_t data_size); // A variant of the above function to be used when data buffer contains @@ -332,7 +332,7 @@ WEBP_EXTERN(VP8StatusCode) WebPIAppend( // to the internal memory. // Note that the value of the 'data' pointer can change between calls to // WebPIUpdate, for instance when the data buffer is resized to fit larger data. -WEBP_EXTERN(VP8StatusCode) WebPIUpdate( +WEBP_EXTERN VP8StatusCode WebPIUpdate( WebPIDecoder* idec, const uint8_t* data, size_t data_size); // Returns the RGB/A image decoded so far. Returns NULL if output params @@ -340,15 +340,16 @@ WEBP_EXTERN(VP8StatusCode) WebPIUpdate( // specified during call to WebPINewDecoder() or WebPINewRGB(). // *last_y is the index of last decoded row in raster scan order. Some pointers // (*last_y, *width etc.) can be NULL if corresponding information is not -// needed. -WEBP_EXTERN(uint8_t*) WebPIDecGetRGB( +// needed. The values in these pointers are only valid on successful (non-NULL) +// return. +WEBP_EXTERN uint8_t* WebPIDecGetRGB( const WebPIDecoder* idec, int* last_y, int* width, int* height, int* stride); // Same as above function to get a YUVA image. Returns pointer to the luma // plane or NULL in case of error. If there is no alpha information // the alpha pointer '*a' will be returned NULL. -WEBP_EXTERN(uint8_t*) WebPIDecGetYUVA( +WEBP_EXTERN uint8_t* WebPIDecGetYUVA( const WebPIDecoder* idec, int* last_y, uint8_t** u, uint8_t** v, uint8_t** a, int* width, int* height, int* stride, int* uv_stride, int* a_stride); @@ -368,7 +369,7 @@ static WEBP_INLINE uint8_t* WebPIDecGetYUV( // Returns NULL in case the incremental decoder object is in an invalid state. // Otherwise returns the pointer to the internal representation. This structure // is read-only, tied to WebPIDecoder's lifespan and should not be modified. -WEBP_EXTERN(const WebPDecBuffer*) WebPIDecodedArea( +WEBP_EXTERN const WebPDecBuffer* WebPIDecodedArea( const WebPIDecoder* idec, int* left, int* top, int* width, int* height); //------------------------------------------------------------------------------ @@ -416,7 +417,7 @@ struct WebPBitstreamFeatures { }; // Internal, version-checked, entry point -WEBP_EXTERN(VP8StatusCode) WebPGetFeaturesInternal( +WEBP_EXTERN VP8StatusCode WebPGetFeaturesInternal( const uint8_t*, size_t, WebPBitstreamFeatures*, int); // Retrieve features from the bitstream. The *features structure is filled @@ -457,7 +458,7 @@ struct WebPDecoderConfig { }; // Internal, version-checked, entry point -WEBP_EXTERN(int) WebPInitDecoderConfigInternal(WebPDecoderConfig*, int); +WEBP_EXTERN int WebPInitDecoderConfigInternal(WebPDecoderConfig*, int); // Initialize the configuration as empty. This function must always be // called first, unless WebPGetFeatures() is to be called. @@ -477,14 +478,14 @@ static WEBP_INLINE int WebPInitDecoderConfig(WebPDecoderConfig* config) { // The return WebPIDecoder object must always be deleted calling WebPIDelete(). // Returns NULL in case of error (and config->status will then reflect // the error condition, if available). -WEBP_EXTERN(WebPIDecoder*) WebPIDecode(const uint8_t* data, size_t data_size, - WebPDecoderConfig* config); +WEBP_EXTERN WebPIDecoder* WebPIDecode(const uint8_t* data, size_t data_size, + WebPDecoderConfig* config); // Non-incremental version. This version decodes the full data at once, taking // 'config' into account. Returns decoding status (which should be VP8_STATUS_OK // if the decoding was successful). Note that 'config' cannot be NULL. -WEBP_EXTERN(VP8StatusCode) WebPDecode(const uint8_t* data, size_t data_size, - WebPDecoderConfig* config); +WEBP_EXTERN VP8StatusCode WebPDecode(const uint8_t* data, size_t data_size, + WebPDecoderConfig* config); #ifdef __cplusplus } // extern "C" diff --git a/external/libwebp-0.6.0/src/webp/demux.h b/VisualC/external/include/webp/demux.h similarity index 85% rename from external/libwebp-0.6.0/src/webp/demux.h rename to VisualC/external/include/webp/demux.h index 454f6914..555d6413 100644 --- a/external/libwebp-0.6.0/src/webp/demux.h +++ b/VisualC/external/include/webp/demux.h @@ -71,7 +71,7 @@ typedef struct WebPAnimDecoderOptions WebPAnimDecoderOptions; // Returns the version number of the demux library, packed in hexadecimal using // 8bits for each of major/minor/revision. E.g: v2.5.7 is 0x020507. -WEBP_EXTERN(int) WebPGetDemuxVersion(void); +WEBP_EXTERN int WebPGetDemuxVersion(void); //------------------------------------------------------------------------------ // Life of a Demux object @@ -85,7 +85,7 @@ typedef enum WebPDemuxState { } WebPDemuxState; // Internal, version-checked, entry point -WEBP_EXTERN(WebPDemuxer*) WebPDemuxInternal( +WEBP_EXTERN WebPDemuxer* WebPDemuxInternal( const WebPData*, int, WebPDemuxState*, int); // Parses the full WebP file given by 'data'. For single images the WebP file @@ -109,27 +109,32 @@ static WEBP_INLINE WebPDemuxer* WebPDemuxPartial( } // Frees memory associated with 'dmux'. -WEBP_EXTERN(void) WebPDemuxDelete(WebPDemuxer* dmux); +WEBP_EXTERN void WebPDemuxDelete(WebPDemuxer* dmux); //------------------------------------------------------------------------------ // Data/information extraction. typedef enum WebPFormatFeature { - WEBP_FF_FORMAT_FLAGS, // Extended format flags present in the 'VP8X' chunk. + WEBP_FF_FORMAT_FLAGS, // bit-wise combination of WebPFeatureFlags + // corresponding to the 'VP8X' chunk (if present). WEBP_FF_CANVAS_WIDTH, WEBP_FF_CANVAS_HEIGHT, - WEBP_FF_LOOP_COUNT, - WEBP_FF_BACKGROUND_COLOR, - WEBP_FF_FRAME_COUNT // Number of frames present in the demux object. - // In case of a partial demux, this is the number of - // frames seen so far, with the last frame possibly - // being partial. + WEBP_FF_LOOP_COUNT, // only relevant for animated file + WEBP_FF_BACKGROUND_COLOR, // idem. + WEBP_FF_FRAME_COUNT // Number of frames present in the demux object. + // In case of a partial demux, this is the number + // of frames seen so far, with the last frame + // possibly being partial. } WebPFormatFeature; // Get the 'feature' value from the 'dmux'. // NOTE: values are only valid if WebPDemux() was used or WebPDemuxPartial() // returned a state > WEBP_DEMUX_PARSING_HEADER. -WEBP_EXTERN(uint32_t) WebPDemuxGetI( +// If 'feature' is WEBP_FF_FORMAT_FLAGS, the returned value is a bit-wise +// combination of WebPFeatureFlags values. +// If 'feature' is WEBP_FF_LOOP_COUNT, WEBP_FF_BACKGROUND_COLOR, the returned +// value is only meaningful if the bitstream is animated. +WEBP_EXTERN uint32_t WebPDemuxGetI( const WebPDemuxer* dmux, WebPFormatFeature feature); //------------------------------------------------------------------------------ @@ -159,20 +164,20 @@ struct WebPIterator { // Returns false if 'dmux' is NULL or frame 'frame_number' is not present. // Call WebPDemuxReleaseIterator() when use of the iterator is complete. // NOTE: 'dmux' must persist for the lifetime of 'iter'. -WEBP_EXTERN(int) WebPDemuxGetFrame( +WEBP_EXTERN int WebPDemuxGetFrame( const WebPDemuxer* dmux, int frame_number, WebPIterator* iter); // Sets 'iter->fragment' to point to the next ('iter->frame_num' + 1) or // previous ('iter->frame_num' - 1) frame. These functions do not loop. // Returns true on success, false otherwise. -WEBP_EXTERN(int) WebPDemuxNextFrame(WebPIterator* iter); -WEBP_EXTERN(int) WebPDemuxPrevFrame(WebPIterator* iter); +WEBP_EXTERN int WebPDemuxNextFrame(WebPIterator* iter); +WEBP_EXTERN int WebPDemuxPrevFrame(WebPIterator* iter); // Releases any memory associated with 'iter'. // Must be called before any subsequent calls to WebPDemuxGetChunk() on the same // iter. Also, must be called before destroying the associated WebPDemuxer with // WebPDemuxDelete(). -WEBP_EXTERN(void) WebPDemuxReleaseIterator(WebPIterator* iter); +WEBP_EXTERN void WebPDemuxReleaseIterator(WebPIterator* iter); //------------------------------------------------------------------------------ // Chunk iteration. @@ -197,20 +202,20 @@ struct WebPChunkIterator { // payloads are accessed through WebPDemuxGetFrame() and related functions. // Call WebPDemuxReleaseChunkIterator() when use of the iterator is complete. // NOTE: 'dmux' must persist for the lifetime of the iterator. -WEBP_EXTERN(int) WebPDemuxGetChunk(const WebPDemuxer* dmux, - const char fourcc[4], int chunk_number, - WebPChunkIterator* iter); +WEBP_EXTERN int WebPDemuxGetChunk(const WebPDemuxer* dmux, + const char fourcc[4], int chunk_number, + WebPChunkIterator* iter); // Sets 'iter->chunk' to point to the next ('iter->chunk_num' + 1) or previous // ('iter->chunk_num' - 1) chunk. These functions do not loop. // Returns true on success, false otherwise. -WEBP_EXTERN(int) WebPDemuxNextChunk(WebPChunkIterator* iter); -WEBP_EXTERN(int) WebPDemuxPrevChunk(WebPChunkIterator* iter); +WEBP_EXTERN int WebPDemuxNextChunk(WebPChunkIterator* iter); +WEBP_EXTERN int WebPDemuxPrevChunk(WebPChunkIterator* iter); // Releases any memory associated with 'iter'. // Must be called before destroying the associated WebPDemuxer with // WebPDemuxDelete(). -WEBP_EXTERN(void) WebPDemuxReleaseChunkIterator(WebPChunkIterator* iter); +WEBP_EXTERN void WebPDemuxReleaseChunkIterator(WebPChunkIterator* iter); //------------------------------------------------------------------------------ // WebPAnimDecoder API @@ -252,7 +257,7 @@ struct WebPAnimDecoderOptions { }; // Internal, version-checked, entry point. -WEBP_EXTERN(int) WebPAnimDecoderOptionsInitInternal( +WEBP_EXTERN int WebPAnimDecoderOptionsInitInternal( WebPAnimDecoderOptions*, int); // Should always be called, to initialize a fresh WebPAnimDecoderOptions @@ -266,7 +271,7 @@ static WEBP_INLINE int WebPAnimDecoderOptionsInit( } // Internal, version-checked, entry point. -WEBP_EXTERN(WebPAnimDecoder*) WebPAnimDecoderNewInternal( +WEBP_EXTERN WebPAnimDecoder* WebPAnimDecoderNewInternal( const WebPData*, const WebPAnimDecoderOptions*, int); // Creates and initializes a WebPAnimDecoder object. @@ -301,8 +306,8 @@ struct WebPAnimInfo { // info - (out) global information fetched from the animation. // Returns: // True on success. -WEBP_EXTERN(int) WebPAnimDecoderGetInfo(const WebPAnimDecoder* dec, - WebPAnimInfo* info); +WEBP_EXTERN int WebPAnimDecoderGetInfo(const WebPAnimDecoder* dec, + WebPAnimInfo* info); // Fetch the next frame from 'dec' based on options supplied to // WebPAnimDecoderNew(). This will be a fully reconstructed canvas of size @@ -316,8 +321,8 @@ WEBP_EXTERN(int) WebPAnimDecoderGetInfo(const WebPAnimDecoder* dec, // Returns: // False if any of the arguments are NULL, or if there is a parsing or // decoding error, or if there are no more frames. Otherwise, returns true. -WEBP_EXTERN(int) WebPAnimDecoderGetNext(WebPAnimDecoder* dec, - uint8_t** buf, int* timestamp); +WEBP_EXTERN int WebPAnimDecoderGetNext(WebPAnimDecoder* dec, + uint8_t** buf, int* timestamp); // Check if there are more frames left to decode. // Parameters: @@ -325,7 +330,7 @@ WEBP_EXTERN(int) WebPAnimDecoderGetNext(WebPAnimDecoder* dec, // Returns: // True if 'dec' is not NULL and some frames are yet to be decoded. // Otherwise, returns false. -WEBP_EXTERN(int) WebPAnimDecoderHasMoreFrames(const WebPAnimDecoder* dec); +WEBP_EXTERN int WebPAnimDecoderHasMoreFrames(const WebPAnimDecoder* dec); // Resets the WebPAnimDecoder object, so that next call to // WebPAnimDecoderGetNext() will restart decoding from 1st frame. This would be @@ -333,7 +338,7 @@ WEBP_EXTERN(int) WebPAnimDecoderHasMoreFrames(const WebPAnimDecoder* dec); // info.loop_count times) without destroying and recreating the 'dec' object. // Parameters: // dec - (in/out) decoder instance to be reset -WEBP_EXTERN(void) WebPAnimDecoderReset(WebPAnimDecoder* dec); +WEBP_EXTERN void WebPAnimDecoderReset(WebPAnimDecoder* dec); // Grab the internal demuxer object. // Getting the demuxer object can be useful if one wants to use operations only @@ -343,13 +348,13 @@ WEBP_EXTERN(void) WebPAnimDecoderReset(WebPAnimDecoder* dec); // // Parameters: // dec - (in) decoder instance from which the demuxer object is to be fetched. -WEBP_EXTERN(const WebPDemuxer*) WebPAnimDecoderGetDemuxer( +WEBP_EXTERN const WebPDemuxer* WebPAnimDecoderGetDemuxer( const WebPAnimDecoder* dec); // Deletes the WebPAnimDecoder object. // Parameters: // dec - (in/out) decoder instance to be deleted -WEBP_EXTERN(void) WebPAnimDecoderDelete(WebPAnimDecoder* dec); +WEBP_EXTERN void WebPAnimDecoderDelete(WebPAnimDecoder* dec); #ifdef __cplusplus } // extern "C" diff --git a/VisualC/external/include/webp/encode.h b/VisualC/external/include/webp/encode.h index 35fde1d0..7ec3543d 100644 --- a/VisualC/external/include/webp/encode.h +++ b/VisualC/external/include/webp/encode.h @@ -35,7 +35,7 @@ typedef struct WebPMemoryWriter WebPMemoryWriter; // Return the encoder's version number, packed in hexadecimal using 8bits for // each of major/minor/revision. E.g: v2.5.7 is 0x020507. -WEBP_EXTERN(int) WebPGetEncoderVersion(void); +WEBP_EXTERN int WebPGetEncoderVersion(void); //------------------------------------------------------------------------------ // One-stop-shop call! No questions asked: @@ -46,37 +46,37 @@ WEBP_EXTERN(int) WebPGetEncoderVersion(void); // These functions compress using the lossy format, and the quality_factor // can go from 0 (smaller output, lower quality) to 100 (best quality, // larger output). -WEBP_EXTERN(size_t) WebPEncodeRGB(const uint8_t* rgb, +WEBP_EXTERN size_t WebPEncodeRGB(const uint8_t* rgb, + int width, int height, int stride, + float quality_factor, uint8_t** output); +WEBP_EXTERN size_t WebPEncodeBGR(const uint8_t* bgr, + int width, int height, int stride, + float quality_factor, uint8_t** output); +WEBP_EXTERN size_t WebPEncodeRGBA(const uint8_t* rgba, int width, int height, int stride, float quality_factor, uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeBGR(const uint8_t* bgr, +WEBP_EXTERN size_t WebPEncodeBGRA(const uint8_t* bgra, int width, int height, int stride, float quality_factor, uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeRGBA(const uint8_t* rgba, - int width, int height, int stride, - float quality_factor, uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeBGRA(const uint8_t* bgra, - int width, int height, int stride, - float quality_factor, uint8_t** output); // These functions are the equivalent of the above, but compressing in a // lossless manner. Files are usually larger than lossy format, but will // not suffer any compression loss. -WEBP_EXTERN(size_t) WebPEncodeLosslessRGB(const uint8_t* rgb, +WEBP_EXTERN size_t WebPEncodeLosslessRGB(const uint8_t* rgb, + int width, int height, int stride, + uint8_t** output); +WEBP_EXTERN size_t WebPEncodeLosslessBGR(const uint8_t* bgr, + int width, int height, int stride, + uint8_t** output); +WEBP_EXTERN size_t WebPEncodeLosslessRGBA(const uint8_t* rgba, int width, int height, int stride, uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeLosslessBGR(const uint8_t* bgr, +WEBP_EXTERN size_t WebPEncodeLosslessBGRA(const uint8_t* bgra, int width, int height, int stride, uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeLosslessRGBA(const uint8_t* rgba, - int width, int height, int stride, - uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeLosslessBGRA(const uint8_t* bgra, - int width, int height, int stride, - uint8_t** output); // Releases memory returned by the WebPEncode*() functions above. -WEBP_EXTERN(void) WebPFree(void* ptr); +WEBP_EXTERN void WebPFree(void* ptr); //------------------------------------------------------------------------------ // Coding parameters @@ -93,12 +93,15 @@ typedef enum WebPImageHint { // Compression parameters. struct WebPConfig { int lossless; // Lossless encoding (0=lossy(default), 1=lossless). - float quality; // between 0 (smallest file) and 100 (biggest) + float quality; // between 0 and 100. For lossy, 0 gives the smallest + // size and 100 the largest. For lossless, this + // parameter is the amount of effort put into the + // compression: 0 is the fastest but gives larger + // files compared to the slowest, but best, 100. int method; // quality/speed trade-off (0=fast, 6=slower-better) WebPImageHint image_hint; // Hint for image type (lossless only for now). - // Parameters related to lossy compression only: int target_size; // if non-zero, set the desired target size in bytes. // Takes precedence over the 'compression' parameter. float target_PSNR; // if non-zero, specifies the minimal distortion to @@ -159,7 +162,7 @@ typedef enum WebPPreset { } WebPPreset; // Internal, version-checked, entry point -WEBP_EXTERN(int) WebPConfigInitInternal(WebPConfig*, WebPPreset, float, int); +WEBP_EXTERN int WebPConfigInitInternal(WebPConfig*, WebPPreset, float, int); // Should always be called, to initialize a fresh WebPConfig structure before // modification. Returns false in case of version mismatch. WebPConfigInit() @@ -186,15 +189,15 @@ static WEBP_INLINE int WebPConfigPreset(WebPConfig* config, // speed and final compressed size. // This function will overwrite several fields from config: 'method', 'quality' // and 'lossless'. Returns false in case of parameter error. -WEBP_EXTERN(int) WebPConfigLosslessPreset(WebPConfig* config, int level); +WEBP_EXTERN int WebPConfigLosslessPreset(WebPConfig* config, int level); // Returns true if 'config' is non-NULL and all configuration parameters are // within their valid ranges. -WEBP_EXTERN(int) WebPValidateConfig(const WebPConfig* config); +WEBP_EXTERN int WebPValidateConfig(const WebPConfig* config); //------------------------------------------------------------------------------ // Input / Output -// Structure for storing auxiliary statistics (mostly for lossy encoding). +// Structure for storing auxiliary statistics. struct WebPAuxStats { int coded_size; // final size @@ -242,16 +245,16 @@ struct WebPMemoryWriter { }; // The following must be called first before any use. -WEBP_EXTERN(void) WebPMemoryWriterInit(WebPMemoryWriter* writer); +WEBP_EXTERN void WebPMemoryWriterInit(WebPMemoryWriter* writer); // The following must be called to deallocate writer->mem memory. The 'writer' // object itself is not deallocated. -WEBP_EXTERN(void) WebPMemoryWriterClear(WebPMemoryWriter* writer); +WEBP_EXTERN void WebPMemoryWriterClear(WebPMemoryWriter* writer); // The custom writer to be used with WebPMemoryWriter as custom_ptr. Upon // completion, writer.mem and writer.size will hold the coded data. // writer.mem must be freed by calling WebPMemoryWriterClear. -WEBP_EXTERN(int) WebPMemoryWrite(const uint8_t* data, size_t data_size, - const WebPPicture* picture); +WEBP_EXTERN int WebPMemoryWrite(const uint8_t* data, size_t data_size, + const WebPPicture* picture); // Progress hook, called from time to time to report progress. It can return // false to request an abort of the encoding process, or true otherwise if @@ -354,7 +357,7 @@ struct WebPPicture { }; // Internal, version-checked, entry point -WEBP_EXTERN(int) WebPPictureInitInternal(WebPPicture*, int); +WEBP_EXTERN int WebPPictureInitInternal(WebPPicture*, int); // Should always be called, to initialize the structure. Returns false in case // of version mismatch. WebPPictureInit() must have succeeded before using the @@ -371,20 +374,20 @@ static WEBP_INLINE int WebPPictureInit(WebPPicture* picture) { // Allocate y/u/v buffers as per colorspace/width/height specification. // Note! This function will free the previous buffer if needed. // Returns false in case of memory error. -WEBP_EXTERN(int) WebPPictureAlloc(WebPPicture* picture); +WEBP_EXTERN int WebPPictureAlloc(WebPPicture* picture); // Release the memory allocated by WebPPictureAlloc() or WebPPictureImport*(). // Note that this function does _not_ free the memory used by the 'picture' // object itself. // Besides memory (which is reclaimed) all other fields of 'picture' are // preserved. -WEBP_EXTERN(void) WebPPictureFree(WebPPicture* picture); +WEBP_EXTERN void WebPPictureFree(WebPPicture* picture); // Copy the pixels of *src into *dst, using WebPPictureAlloc. Upon return, *dst // will fully own the copied pixels (this is not a view). The 'dst' picture need // not be initialized as its content is overwritten. // Returns false in case of memory allocation error. -WEBP_EXTERN(int) WebPPictureCopy(const WebPPicture* src, WebPPicture* dst); +WEBP_EXTERN int WebPPictureCopy(const WebPPicture* src, WebPPicture* dst); // Compute the single distortion for packed planes of samples. // 'src' will be compared to 'ref', and the raw distortion stored into @@ -393,19 +396,19 @@ WEBP_EXTERN(int) WebPPictureCopy(const WebPPicture* src, WebPPicture* dst); // 'x_step' is the horizontal stride (in bytes) between samples. // 'src/ref_stride' is the byte distance between rows. // Returns false in case of error (bad parameter, memory allocation error, ...). -WEBP_EXTERN(int) WebPPlaneDistortion(const uint8_t* src, size_t src_stride, - const uint8_t* ref, size_t ref_stride, - int width, int height, - size_t x_step, - int type, // 0 = PSNR, 1 = SSIM, 2 = LSIM - float* distortion, float* result); +WEBP_EXTERN int WebPPlaneDistortion(const uint8_t* src, size_t src_stride, + const uint8_t* ref, size_t ref_stride, + int width, int height, + size_t x_step, + int type, // 0 = PSNR, 1 = SSIM, 2 = LSIM + float* distortion, float* result); // Compute PSNR, SSIM or LSIM distortion metric between two pictures. Results // are in dB, stored in result[] in the B/G/R/A/All order. The distortion is // always performed using ARGB samples. Hence if the input is YUV(A), the // picture will be internally converted to ARGB (just for the measurement). // Warning: this function is rather CPU-intensive. -WEBP_EXTERN(int) WebPPictureDistortion( +WEBP_EXTERN int WebPPictureDistortion( const WebPPicture* src, const WebPPicture* ref, int metric_type, // 0 = PSNR, 1 = SSIM, 2 = LSIM float result[5]); @@ -418,8 +421,8 @@ WEBP_EXTERN(int) WebPPictureDistortion( // must be fully be comprised inside the 'src' source picture. If the source // picture uses the YUV420 colorspace, the top and left coordinates will be // snapped to even values. -WEBP_EXTERN(int) WebPPictureCrop(WebPPicture* picture, - int left, int top, int width, int height); +WEBP_EXTERN int WebPPictureCrop(WebPPicture* picture, + int left, int top, int width, int height); // Extracts a view from 'src' picture into 'dst'. The rectangle for the view // is defined by the top-left corner pixel coordinates (left, top) as well @@ -432,42 +435,42 @@ WEBP_EXTERN(int) WebPPictureCrop(WebPPicture* picture, // with WebPPictureInit() if it is different from 'src', since its content will // be overwritten. // Returns false in case of memory allocation error or invalid parameters. -WEBP_EXTERN(int) WebPPictureView(const WebPPicture* src, - int left, int top, int width, int height, - WebPPicture* dst); +WEBP_EXTERN int WebPPictureView(const WebPPicture* src, + int left, int top, int width, int height, + WebPPicture* dst); // Returns true if the 'picture' is actually a view and therefore does // not own the memory for pixels. -WEBP_EXTERN(int) WebPPictureIsView(const WebPPicture* picture); +WEBP_EXTERN int WebPPictureIsView(const WebPPicture* picture); // Rescale a picture to new dimension width x height. // If either 'width' or 'height' (but not both) is 0 the corresponding // dimension will be calculated preserving the aspect ratio. // No gamma correction is applied. // Returns false in case of error (invalid parameter or insufficient memory). -WEBP_EXTERN(int) WebPPictureRescale(WebPPicture* pic, int width, int height); +WEBP_EXTERN int WebPPictureRescale(WebPPicture* pic, int width, int height); // Colorspace conversion function to import RGB samples. // Previous buffer will be free'd, if any. // *rgb buffer should have a size of at least height * rgb_stride. // Returns false in case of memory error. -WEBP_EXTERN(int) WebPPictureImportRGB( +WEBP_EXTERN int WebPPictureImportRGB( WebPPicture* picture, const uint8_t* rgb, int rgb_stride); // Same, but for RGBA buffer. -WEBP_EXTERN(int) WebPPictureImportRGBA( +WEBP_EXTERN int WebPPictureImportRGBA( WebPPicture* picture, const uint8_t* rgba, int rgba_stride); // Same, but for RGBA buffer. Imports the RGB direct from the 32-bit format // input buffer ignoring the alpha channel. Avoids needing to copy the data // to a temporary 24-bit RGB buffer to import the RGB only. -WEBP_EXTERN(int) WebPPictureImportRGBX( +WEBP_EXTERN int WebPPictureImportRGBX( WebPPicture* picture, const uint8_t* rgbx, int rgbx_stride); // Variants of the above, but taking BGR(A|X) input. -WEBP_EXTERN(int) WebPPictureImportBGR( +WEBP_EXTERN int WebPPictureImportBGR( WebPPicture* picture, const uint8_t* bgr, int bgr_stride); -WEBP_EXTERN(int) WebPPictureImportBGRA( +WEBP_EXTERN int WebPPictureImportBGRA( WebPPicture* picture, const uint8_t* bgra, int bgra_stride); -WEBP_EXTERN(int) WebPPictureImportBGRX( +WEBP_EXTERN int WebPPictureImportBGRX( WebPPicture* picture, const uint8_t* bgrx, int bgrx_stride); // Converts picture->argb data to the YUV420A format. The 'colorspace' @@ -476,14 +479,14 @@ WEBP_EXTERN(int) WebPPictureImportBGRX( // non-opaque transparent values is detected, and 'colorspace' will be // adjusted accordingly. Note that this method is lossy. // Returns false in case of error. -WEBP_EXTERN(int) WebPPictureARGBToYUVA(WebPPicture* picture, - WebPEncCSP /*colorspace = WEBP_YUV420*/); +WEBP_EXTERN int WebPPictureARGBToYUVA(WebPPicture* picture, + WebPEncCSP /*colorspace = WEBP_YUV420*/); // Same as WebPPictureARGBToYUVA(), but the conversion is done using // pseudo-random dithering with a strength 'dithering' between // 0.0 (no dithering) and 1.0 (maximum dithering). This is useful // for photographic picture. -WEBP_EXTERN(int) WebPPictureARGBToYUVADithered( +WEBP_EXTERN int WebPPictureARGBToYUVADithered( WebPPicture* picture, WebPEncCSP colorspace, float dithering); // Performs 'sharp' RGBA->YUVA420 downsampling and colorspace conversion. @@ -491,9 +494,9 @@ WEBP_EXTERN(int) WebPPictureARGBToYUVADithered( // method is roughly 2x slower than WebPPictureARGBToYUVA() but produces better // and sharper YUV representation. // Returns false in case of error. -WEBP_EXTERN(int) WebPPictureSharpARGBToYUVA(WebPPicture* picture); +WEBP_EXTERN int WebPPictureSharpARGBToYUVA(WebPPicture* picture); // kept for backward compatibility: -WEBP_EXTERN(int) WebPPictureSmartARGBToYUVA(WebPPicture* picture); +WEBP_EXTERN int WebPPictureSmartARGBToYUVA(WebPPicture* picture); // Converts picture->yuv to picture->argb and sets picture->use_argb to true. // The input format must be YUV_420 or YUV_420A. The conversion from YUV420 to @@ -501,22 +504,22 @@ WEBP_EXTERN(int) WebPPictureSmartARGBToYUVA(WebPPicture* picture); // Note that the use of this colorspace is discouraged if one has access to the // raw ARGB samples, since using YUV420 is comparatively lossy. // Returns false in case of error. -WEBP_EXTERN(int) WebPPictureYUVAToARGB(WebPPicture* picture); +WEBP_EXTERN int WebPPictureYUVAToARGB(WebPPicture* picture); // Helper function: given a width x height plane of RGBA or YUV(A) samples -// clean-up the YUV or RGB samples under fully transparent area, to help -// compressibility (no guarantee, though). -WEBP_EXTERN(void) WebPCleanupTransparentArea(WebPPicture* picture); +// clean-up or smoothen the YUV or RGB samples under fully transparent area, +// to help compressibility (no guarantee, though). +WEBP_EXTERN void WebPCleanupTransparentArea(WebPPicture* picture); // Scan the picture 'picture' for the presence of non fully opaque alpha values. // Returns true in such case. Otherwise returns false (indicating that the // alpha plane can be ignored altogether e.g.). -WEBP_EXTERN(int) WebPPictureHasTransparency(const WebPPicture* picture); +WEBP_EXTERN int WebPPictureHasTransparency(const WebPPicture* picture); // Remove the transparency information (if present) by blending the color with // the background color 'background_rgb' (specified as 24bit RGB triplet). // After this call, all alpha values are reset to 0xff. -WEBP_EXTERN(void) WebPBlendAlpha(WebPPicture* pic, uint32_t background_rgb); +WEBP_EXTERN void WebPBlendAlpha(WebPPicture* pic, uint32_t background_rgb); //------------------------------------------------------------------------------ // Main call @@ -531,7 +534,7 @@ WEBP_EXTERN(void) WebPBlendAlpha(WebPPicture* pic, uint32_t background_rgb); // the former for lossy encoding, and the latter for lossless encoding // (when config.lossless is true). Automatic conversion from one format to // another is provided but they both incur some loss. -WEBP_EXTERN(int) WebPEncode(const WebPConfig* config, WebPPicture* picture); +WEBP_EXTERN int WebPEncode(const WebPConfig* config, WebPPicture* picture); //------------------------------------------------------------------------------ diff --git a/external/libwebp-0.6.0/src/webp/mux_types.h b/VisualC/external/include/webp/mux_types.h similarity index 100% rename from external/libwebp-0.6.0/src/webp/mux_types.h rename to VisualC/external/include/webp/mux_types.h diff --git a/VisualC/external/include/webp/types.h b/VisualC/external/include/webp/types.h index 98fff35a..989a763f 100644 --- a/VisualC/external/include/webp/types.h +++ b/VisualC/external/include/webp/types.h @@ -40,9 +40,9 @@ typedef long long int int64_t; // This explicitly marks library functions and allows for changing the // signature for e.g., Windows DLL builds. # if defined(__GNUC__) && __GNUC__ >= 4 -# define WEBP_EXTERN(type) extern __attribute__ ((visibility ("default"))) type +# define WEBP_EXTERN extern __attribute__ ((visibility ("default"))) # else -# define WEBP_EXTERN(type) extern type +# define WEBP_EXTERN extern # endif /* __GNUC__ >= 4 */ #endif /* WEBP_EXTERN */ diff --git a/VisualC/external/lib/x64/LICENSE.jpeg.txt b/VisualC/external/lib/x64/LICENSE.jpeg.txt index e677c820..4334bd08 100644 --- a/VisualC/external/lib/x64/LICENSE.jpeg.txt +++ b/VisualC/external/lib/x64/LICENSE.jpeg.txt @@ -1,5 +1,5 @@ The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ +https://hg.libsdl.org/SDL_image/file/default/external --- LEGAL ISSUES diff --git a/VisualC/external/lib/x64/LICENSE.png.txt b/VisualC/external/lib/x64/LICENSE.png.txt index ed7ec64d..673f4f03 100644 --- a/VisualC/external/lib/x64/LICENSE.png.txt +++ b/VisualC/external/lib/x64/LICENSE.png.txt @@ -1,5 +1,5 @@ The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ +https://hg.libsdl.org/SDL_image/file/default/external --- This copy of the libpng notices is provided for your convenience. In case of diff --git a/VisualC/external/lib/x64/LICENSE.tiff.txt b/VisualC/external/lib/x64/LICENSE.tiff.txt index 85b375af..79ef7a59 100644 --- a/VisualC/external/lib/x64/LICENSE.tiff.txt +++ b/VisualC/external/lib/x64/LICENSE.tiff.txt @@ -1,5 +1,5 @@ The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ +https://hg.libsdl.org/SDL_image/file/default/external --- Copyright (c) 1988-1997 Sam Leffler diff --git a/VisualC/external/lib/x64/LICENSE.webp.txt b/VisualC/external/lib/x64/LICENSE.webp.txt index da8a6bd8..f30ece0b 100644 --- a/VisualC/external/lib/x64/LICENSE.webp.txt +++ b/VisualC/external/lib/x64/LICENSE.webp.txt @@ -1,5 +1,5 @@ The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ +https://hg.libsdl.org/SDL_image/file/default/external --- Copyright (c) 2010, Google Inc. All rights reserved. diff --git a/VisualC/external/lib/x64/LICENSE.zlib.txt b/VisualC/external/lib/x64/LICENSE.zlib.txt index 724a4888..fed43beb 100644 --- a/VisualC/external/lib/x64/LICENSE.zlib.txt +++ b/VisualC/external/lib/x64/LICENSE.zlib.txt @@ -1,5 +1,5 @@ The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ +https://hg.libsdl.org/SDL_image/file/default/external --- Copyright notice: diff --git a/VisualC/external/lib/x64/libwebp-7.dll b/VisualC/external/lib/x64/libwebp-7.dll index 23117f5b6c87910343ab1c8cf3480bed9e64d262..19bea3b1fad94b0f074a2b227472b045eedc8621 100644 GIT binary patch literal 442368 zcmdSCdwf*YwZK2aB#=Pl1VxRlN@!zE)N0b&HY4kdEj|XXe6kBWQ+qT}~y|xkGlSBxQstHsDZ7tyI3=zc_22|$vUHi-=fqL(+|NQ>= z<)h3w`?2=gYp=cb+H0-7Px6wLp-3ncD&YTYHWXURul&{NfB)})TF4$d;gPYSKNmke zacwy9^u!AmEL>c^=$fnl^P0=PSKe^hRaafzSpMzrlwZ?yRr$iJ%46rAU;e$TFaOTz zM;tM_A_sbAJQTWo*_cBb+8a9kb7Mw~m=J0#422#W848^e3VnDaMM|aE9hd3C@;oBI zTiy%hMgHcE(uo5vjMV)Kh01kuP*)x`kinn9lpP~Oo1(mxj|z=1lGNN^-N?|#v_JSa zb5tlD9(?S8r@_WO-l&d>^QBY3zk-mmbqg)xk!~W_* z)pe&Y3Ci`>kgB-9^Ip#{LDyF zM)0&Qcv>r5XQf_hEVgANcB*{J^JpS zkE9&$E83}^-DJ5ZOcikMS57^0R7f3tz0Q9`K<~AT|31n}r5lSM_JN;$zW;U0{bD7h z-FV0u7}01vJb_~V^H&vyGGC!a!aeCT2mUBfH5+J;m>LEVtmK zY92tpK#+K^Jg;p�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

AhTc#h^d6`KFemuqbr8^I~ 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%0AAg^>+V?pHT1n1O-OgGU-YEne<1~ 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

9+=m16kJo9I5NKDIo?Q8y1Xsq8&J5Myd~Kk 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 E0YaxOr~m)} literal 560279 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


TqOa2;B|F|WL4JKc5}kok<)GfO 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

2@qc9)W((l~pD;VsRwK!tf`;_n52d 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 y_^7r;$Uu!y{-vS=?9Ln; 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%0DbGb2->d0hMuyWl0{MvKT>w4$ODMxIwX76`J_ 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

P-ARMewjKHqbK0D;GtL# z!@8F3YS6{IsgMQi9|n^bQ<>YcNoWx>9rH5?f&qHO&F9`>fN0-!^{{nmy4(PxG^Wj( z+{1%5+|5p~4fT5xz-=7~aKRBV0^klHvC>RBYlnI;2z=r8Vi=o=7z-qJl5z^xu$k{c z;(@=^{GOVidHw#UoBw9ee7~AJLOa8^aFNJJ0GJ6E0PAOPx=!A)HwCDQ*y6unQOrEe z17gfPUCe_zdU@DU{q|iwc)pg0$@NZePQL8; zFAc}fZ&);8@Lg~|e*oWw=kpQ&JMS3?*_?Tnfo2HZW`1h=(ky7q)^h8I)Usf(mcOTfCgf8=E#vi@Sx+aF_^~iiznO}ly)pS= zqJE7tl59h#nGe}HGE_tV7d0Pq4`n7m{;0++CZTw|elyn%8|yCfVdPjJQ<@p;SI8OA z8#OuwD}hq{6(9ho&WCi?nqyC)SA{_Yy=wMX`oixn|3Nk&-0MWL8>(skW^)j8`qqFU z1AQRqws{S@3VIu^jJ?P0g*lNg{)vu@wIblM#mD|oHQSN(-VgOH*{Y+~`=S2!{UUpQ zE1n005%gK48r|xyxc6jJq1P=PVXwQ2tE__=7qc-y^aZF4v7b%)JF2$UWW=&wkL_OovN3jv2} zuYQv2rDFfTxnaBb7hgt=ZmOoZ{XOsIeD6Y>!gH=q+|zVT>l;J~sdyKRf!$-@M~BX5 zH%XS(4U=%z>bAbz>v|I_<9RCe_Zk3ltHQYTGS)Qsgoz~!z56vg{=XpXj#t0Y$bw2= zhw)thWoN$gZ@&A6W2B$!RDoz4%v^)%FTMl z{CD2t$%4%{qVkUGON4KQkZHngfXB4f{1(ftzcN2?p1QOi#rsv{#D(S+08(q)@ZTP?ovFlLb7j7=LkUro_n%ir=-QTubsO8ZL1miRga!5^jErxeNq2-m85^VUnyy|a;cx-!BBglkxbxBRZb z;xC2qcF;fx_WqJl5wAsSq5R>QyH(zFvGIINB%(sWuU;7iLZG&Oj{PW9C;4Wq# zefa>lcADtlvw}mVv*~IMl*A$qlY|1XjX&iggYgUW+sDQ%9{)^rkfL9zD<9&_;1K5V zKPZTeJ8uVj9Q&E;&HWDDthr7c+4x_E#r50wgeo9)%p)dsUOeE)Koj!{R+*%^X<{Oq z{TkrM0OK$v0sSx4mtO-}X5)-xow7{X1?YB(1O~+%5_2Yy^Cyu={|<%J;$ZqHli3`= z*)(PI-^6za36QOZfir3QNQ1Mx7aJ6q3B#P3DzO6s`UXzVvU*B{U4yU?QU(-^+Uy3y z^=0a`aAtfX^!Hm1`gBv8W)0>SGML|hDGDASgM$YY1cHZEWu3vpy~e?qx4qWegmevM z2N=0K%aB3jC=%_<62mdk93++G&yiq|d+Y^#_FYa(ghO13pal?Er%7^c4xEp5w)QRo zjI-ZAwy*W&sd!JQw(!Q;NvayCw|~|NgmYyLHx!5GYKVIWa2F-l?TFQqiwgaFSAb%$ zziy~)eXg-Q#=X*}&(2CFUN^gU8|o65GrKl*M@SH_1Wf(OMRN=ECz1s3bh5;9Ue*- z%sZ;f(^3=95f?LwTl@tU2=U7U-AM1ra09(DkQnM|q zlXH*0b;_)b=$fmxcx1u~%V5wNN|nmbLpcpq32ynlfXy@DSR09C7AcF{%N`|J{>j+t zho>lQYTxC9@@y_9Dp9xg`S?OCS+W@izFvPUS+v=|9pY4)ayNa9Q%`6@w;ScOegT&> zRpz=0-C)f1OB2_kC)fBJ@443fqwv-tEy%n6#C{@@)xS7wt8NsI4BSNQNbeK~pkC+j zyQ#=n%iD!6_2GA`cR>ZTFQM0Ag^jBR`zHza1%$h>T9GE>1bd&|v6ZUbdd4YRr1DrQ zALWQ**PEa*Y8IW=*K?~e5WKvPw<;OdR#xw^+t!<6U4*nJ{t_;)wrg!PW%1?xM{wy|W0BXcBAoqd-H;2rK5T}3Ps9Gi?;fW_uK z;=LL1%I#F2dO-2H30ff{1-MP#2L)VQup6cvrb`$aT=9y| zL*hFS_F>NR+{{Rlwu=%iB1-{03{r8C+2B8l!W5Ak_`;jrwivR&tm7yxV$}N+*LaNO z@Y09XMFen&i#)CrnR~*{EWJyCqKfbWhgr;O?mMerT>2*cYx zcVrNO-B3v!szfnV%t5E;4J<+aWNd&VKzL>5eZ&hPTA62-jM@A`4Pojc$Z1;SeX%3k&q5)@Mx+X1gGto;qtA&gmcPmWdnFdy5=-KUjE&_~KSQm}5>P6A4}P3CAmzJ$4>@@$ZkBWs zsTJ;I_}t6q^?=d!uksnPqqw=NaHaWvZbPnZPfU6HTzWh zC0r71&GuI9Y*Xo{Z#qq;t}3OXUs2a8x>Vx#5o;@jvI9^FJdFiq)KXeyHU?$zHf`Y( z$t!})GxKHNbsaD|W#=G1F&rH^@_#CMh8OuMcf9MZ>Yk;4lvd=jU$7geAd>+2!K;IW*$*G%blNB$(IZi@M2ACVp@hEOi0uaC0u!oOobJ)>zz$^y4>kmzh z_9Iij;@VF{)-^0dEQzCj0W(^;A}-iwjXwtozo57>G0(@=TwwH=+24+RjRX+5c`AR= zm(w=(biaLvREk<3*OsEP0xH8u9X4hIE{ML(sq?H;{fDJVX@IJMEKZ7e&>9SpA$wJJ zo6c87S-FAVDf>YF!R{Z6l9YCTwp6l;X;3u^a(pRyvmab=Ugk`Q64^T}-YA@p0`hp! z|63RBDxR|QFlGu~cji6z)N*H?KATP0_bU0ha(7X!bJzalFgu{ zTh}#6>o)T^978}4O2xG*i@7tGQzR^*d@7Z>o4guB>!W5?5)17|=B)c3#$)T9*8WNM zUHkOCev9D46e+@c78x@0NEf1;D38EGi%451akIP7E1CwQ!tUF&^ev|8u6;C`$?%8e z_(J4-L>gyv^QU=leatl3m@-!RvHGWs>vP|)hGSJ!PT!EjoaUPt!4g(ZH@UY`H*q2T z^~xo_#$fFyv|O6#H9V+W*SOxhQ}!*7r0Om2%Y+gxCC$4Xgx9-?$~OC zVxanpcA%y8x6odq_HN>y6~e5MzzLfOu=#S|TB@|~`j{FCPcOJ84k>??dI1VhQ@73mM53wE7S}DC{q*JE=9Z4 zt@3#COlUY6*0Jg*fsIWyP+{aqN ze~5of0OO#v-jXeTP>5TD*p_L!D@??;^QxQ&66?DlJ{m(uPR&A8$K5 zR)0Kuo)h?}7g-8NT3}{Y>d&Guxf)*$q%wizE3g|Ed?cN64^NlOjkb_GHA)~+=hKpI zUXJb{-mCI2!!uq(+;ebh6Z$r`SJzb8tLrKy0?lh)gw`V>CUVrolg$mh@#yj>+h^cz zx$$70T)ss4FmKk6cee;b*K1kAPi7S08t&(7B;WxFeIIK% zEfDrIE8XN>s?Te!qXMrr&R;HV^XXBo)#-l)$w|E4mVfWi^-Zr8)ZcCG z?L{L?)U4}GL+fH1PN$m9oohi3+Ib|FvJE{ z$LB}${-y};Ly!aI`kHE#m(5~$R}2BVyH5mOi4YiBzOHOy$;%7rK}9!K3~#9ntex@e z6;C;w9&h=7J1o-&vmhX$8-7fuex zW*JrZ@D6vS%&v1mntZF^n-(;ie9BO=mRreWwn&B4j3w_> zi80-%t*@2z|KrElXc-9VoQha6XrVSJnEbsUu$BWrmO&x3Rc^K5*u5Jc&pgwtZ)T}$|}+lT^&XBg&c@_LB} z?&ft$r}|ft+fjmNRtB?a=^=nCQR$$GTmL$)eefodnsY8A**ggD_L^~wXT*f{QEf$R z@@Ab$*O+RD@P+C>rDINBv1wrQ(l=XAFk2JJMM%AP{VuZa7J+`em5SNYo^Qv~=` z+5$D1?}_YrFVn!8k)1zx?b7fccUrE;y_+|k?L2)#<{RWf_?@|(LYmOw1I~;KKWtt8nWZ*<*9$R~SDu5)gunxi}>%jtAMgdJBkaw{!SKC;eJ}B=5E&YY!G*j`iH( zeeTNi%lUarUC zhAC)3uOR3KlR-}SxxYpWiF-MG<033BjahFyttSQ=Ur>L=iAny{J!@N z0_ikHbhndFmY?{yidjcouJd0007XOovT`ux^e|;rkdpQ%Pz!xH!)wvz@pkBY+Rvjq z_wddOS6}8s+8<@!9tht)V%{DM-)!^taQHUXyoomTaL0O@d0Q8}9XKQHk0*g^KaWdD za@@Uzqa8&+4dikwJ`!Fg%Nc`N3?&n0q0}rGI>RFjD^l19T@jF~L6uy@+8uT9 z8+QxILrtj?5=V_l)Ik&Gq>mSE^l#z7WS zx%t+w1h1~}y70bGdiOUt`kjD({;%Swhm6+nP+ba1;p1i!&|3$$jwzxmdXzww}9aan(RjnmNKe7D2-UWapIhm$b+O2ft%uQ$CxIQjNv zxjD1y^P5?LC9Xx7Y+y8=yCB*TCmdY>(fN&iNs}GRf8A}*L}y^S(?KKC&V)0z_|4-t zH_U`{vi@Sv6i8g?rp7ma0@0`lyj(XGvFbGXwG1$a5D5%%PEJ0AM|Sftgub=(pC}0d zqaOY}>3mzlm24+fq>5r*kCC3mQJ>#IO2pd^h3&688!R43$y~ebt5A>#*j3_Ed)dXj zVZ-)y;P3DO?@+pb5+ahxJ6bynummD3GUS?DAK1aUsj2N0V#V-ek7={+wp`abte3gr z?*eW*RCB5X@3q+fP8E`%1h+h?TL$=v$V@|h!!~$}&c!-J7@fSg`gw605ZD`gUoql~ z@PsYNqVk)Ij-Hn}$NYo;hF2k~!WkE~lI&e-Nquv`djaykMw5B?1@Fzn&#HEKR_>0v zk*h%Y>v@5mN)27178nGgG@K9DPTuIRP`yF_bM0lm=?TRUy+@NEzPkJ=TfH4oucya% zdivPO0PViW}4Cs?Nq;QFMDjLSoh52oH6;8f3~H&!j^tGROA^Ath93LjO3ic{15M8({>8iK91?DycG&UE%C>qzpKLD(g~&b2~omOUGMN@s@F*$V|*gO+3TtIm%t@ z094L?3y)&MN_2lZlYXgqG^#+`9dBDCHPKd4Wk;Fy&txxDb~Qm)&LFGQUa2@@5qw~$ z^XUUYe-LDC)9^=kP4^;2%!ESKG83mWpv+tR5y@q@H$qqnJY4^`XIg>y9o#+ALv8D^ zONq~nDBHzCdPO!{-)>ZzdItAwu)&A$>5zY;SaR;7m||k=g1Jn5Pku%7ysq zXft)eYfGvxM&5&V<~KUMk(<~y{%fwpjyo?0T7L4Cg;#d!&? zO}4ZSH9p-ng{Pawn=XXv|GZnj-QaxJUj4NHt5O3Ei75nzS1Fh-*Fc|lV_mq)$gdtN zFrW5@DTs$dwWq!VX8lh(U&@n<5%#EWy_EBIMKERc4*LI0TTbgM`K_uXj7ifD95E{ zSg<>i;cRxgPqcS_|8v6zF{oQ832Wws!}J0R*Lr$+m|5{--od^{yneh?wRJXj)#}s0 ztW@Nz9NKu(>@Q-aE%I-g6wKWfF>52!*GrFZZW#CKC)8R8@$C}vZmfuSx1hx_9l23` zX<`)VJXD$qW-do`V}n_g%yj_Ma?{2z{VYRIvPqa!_Ixm{{xxbonbfNJv-SLE*ZqHY zw#~8+r|+`x7xc(Uez!3B{UZNMbUgynP#DmD?`t*B|ljHNMNFZ&XSV z7)xKz<$Bgb0KDE&Zat_8FTIcpHIP%C`kpFqxWbhAKCsU#b?Bv>mw^>!rL+Y0{j_@U zG4PimE&QdQ)LKGiA#=Z!DP=xj$EBkA<9E%S?+)e9n6t*zm#1^MJTu_NIQO90S-{r<9npagl~gcu zhBUtEp>OneS~t3b?Q1*|J`i)LE?l5;5xI9 z9?JdePHuAmgZvJnAE5x4&&Tl?{L75HevCY)h5Gy0szk2!T&|KQ)@R-mF;U~S5vT(&kA@x93P!@{__lSvn3Z5hs*Tm6x2Up;5X;{Z?bdo%RcAx$L&Yr=N`xRZTzo~lOuBeaiG7#e>(hr z?s0O(&qU_6MS0Fw&dAxv{ndPzc(fww9d#D(J_D~d&f+J(jlV0ad-0B2ai5Y}F*c`} zT`j3w`e?D-olo958GRtGxcD>2KC#e?eC~v+s6KZ4<=_E9%n-iAEi2G7j6S&vsb*8% z%+y2>U95f&F4O7nSpF}X7hSwlO-C1RRY#)MHhNh!51W8olGK@*sXI?qZwPo*OygO# zjn1X(Bsyu+1P|IDM9{UJD{m4DqD(8dF0Y>8%x?PX%+&nz5W63VA~*#*`cW?Z>YtyL zO4R1o)<3y$`3zj8kA>L(M-ZeG=O!p&+^~d+bK#;V;vf9zVB!pKq6^2J>sB9Xe8PEe zqm}qvtbSwE!hP|aC|=xOt*w6@9h4~TZZt{eg(Zo6`^3U&UgX<@2gHVx<3*Ljao$5u zB;9S0B$g}xwz6hY;&9R({C4*vvWb*Uw3qGB9UlDea#9h3#`A&p z2=EHyRJ)RF+@Yol9`)HzsWHDgAY~_9o@agrUdhg<@y_u(-5DZYn6o>dHJMn)W65rw zO6p*P;1ee)b#Cx{y~(1Nh}Yw^>>r@A^s&*A$-5${>rjN*$C6J=PW=a@)JG%9l7GOb zGrA**vLyt4KchyC?8;9Mj2dib*RXabmJMrYe%YUCX;?ECsF}AN@10--^nn(2qBk@6 zY|DkyQ{OtxwA_=Qet)Rto@~o>>QmWdRS0mW@ zR(C$aj|uF_ibcFubSujey)l9}?A3h{>vb0WJDP@yMcg!m37^ZpA0PwdYWnrDj`s%P zoanHVJ~29)`df>b2y6z{|9*S*`zVGyA;_Bi=CowRLzHk*x1LuM^Z*bT>c9uurr+7d z!p1AgvI#-!-zuB%=i8r=EV`euJcZtd^Qd~@OwOna01G;;cN*w$Qr|kShG8-r0Z;_P zr*{{0+mBq(V6T41vECKr778S^0VobOTk|Q$dY;a(Axs#D=V^)F5bSwu)H~p0=i?~z zaV_(~A;x}~C_sJQ@%H`JY_-XK)9lp~?~bPCe8NCW<|)o{!|$*Z6TPm~6;Nz{*^9uM(>ObbGHO@T*BLCs~{=h5GfPZQ3ISowbSbkclnXgk<>i4_*RBAJ$b=O zCm4+P;^f`hg~^f*ZlzN3(`!`6lJt>Ls&yRoTwrQlGF0o^)VeFI^~C5@6P3OPClpOi zUCV49MZYoXz35EdO`Q)ial2D<&Y;qDX5rXe;Ovq!`$ zb+&q8muEzF+ExGb2An3 zu{Gv$k12NZg0q6DW}QEy>CRk9zFd zY;)9EN}c(PVfF58y*P?b%^AMV%J%wbE~XGERh3iJd2b&RJonEtz& z{>huC+p8~VNkuNy>}PIcI=M4F7tkN#-$u||*bA|FWiM1?eghjGV=uIT1Rm}*8fZMM zC~FQCwO?E?7`px&MbI9>dOOhbX?BK2GFGrUBz|RCR2z`7ga^MX3`<7 zh~c2&Mf#~JWPlv7^Roq$HANJC1t3abQW8nc9cY@*Jhqk9k-Zk{x%yRQa&s21ztbcE zarz=6>9bDrMFWkO&Q6t_>h;U{LNm31=})!#(M4!JGSGNtq`LFgH=Nc!D~2?(_1Hk; z7Tmz~DjWY0>y2BuJWOC$=a_36WX9?ZjN2+RGK^INhRY@XCvZ{;Etzr<&LfWa_T|P8mosJPBZp% zU(hchq0VB0(ey6um)7dEf#XVQLlTaHO_ zDKQmCH5k~d4^W62)b$^nld1?Q$OE8Z8Gi4h$h8o~U#+j~NqF=gpV0+Nh z+^`>KW%ONr^}~npkAx3ne#S#zscDN&Z2n+Vt;ar{_`K;O{b2~__uts9{{7znHO_2R zP}=bG*Y}}}+00yG&6?rXT&^DrUZNvg3NGZYR*#_<^zfX8EMo};z(o{oECf@h^|cd% zxJa2UfB-y|jG*dwuX#Gr-S2HC)u%eeq(eZ(n}P*ItbU7)_=c1b(-ISihV+Za;Ff-! zDQa31>Db^MW4FHu9Vd&-H;ND#gx;K8={&X>>$=p$oBSR=nNsF9A1PH^Srsk$zaAxO!hChS|52Ps+9 zRGvjmR1}~l>}1$Ea$zRSHCTUn>-8A>ZvTGz<5N~Ikl&A#KT)5)D$ zW!!ww%AKYaRxjo~@Bb4Xz(7!Y$f$q*cOH6wAXzZ_4*~MfMU&KmKW%GYesUbi20{Fs z_bKn`vEXMs3cKhx&_`jfZPo_cs=d|e*P=fo^dLJ_vF;1K{2O7N!5=5IHyU@C8ozE@ z_`-wF2Q3s_uNDm2`m$-@oDIXOJPK3{uhPp8FcMq6@tG|JGZ8>gGxwrdx3Fz*bApA) z)NpITzO2$?;Z5r@$y$a2cdb5^Q9vtqv-I zi{ZFgRdx?~5awdS@ZsWr zwrO2R&CIS90Je7OD!L&5<(gh;MJ{`Lg4&wTKQsR)&Rx>t5_51a05d}iiTW13lN z+1V_KlfS_+K{n&w0|vi}!`6((Q)L$$ul%aXdx6Nxm&UzgaqGoe>mALA`V_a`L$S|# zCmtd)xQ-(DGWsA^5LV)XSxU-N(gI!;*8MF~F38ij@9_d9cEKsxmnf2IA_g?; z>t?7d6O1l7@gc~vy;1K4E{3C%pM(v1)EG6A`lKpfGBXwbC=ADuQ81%!KefgSa)#O; z-n7`{!KMfM@tyOisUlhoV(pI%x z4d1mvup44Yp|Ty!ioC-1^6Oeg8wNiG_?)fK8yZC6!OpMNKscLiCFVvVZ95V?w+82w zXm3S7OXs1=S0A%nP>&Qe3j?2 zrF>V6j``@~3fS%=ohw@T_g!|sHgc8=3y-kW7yj{CRTUnrY;%2t8{x}*S4#qz!8XS|)f%yxAZH;HX4LGFvq|*bH(dk-GXZwmM5Lr?Y4q6_m zn2of+;EdTbQWc9M#JKaeXOa4FQ5rb>KiGR)5oJYD-zuo>4P;8>AXr*0g^(+7%ZVr*J z2(2vffg}Oc`g(V;UYc|xnxJPz4npo{m~2P3$=I1>=kXXam8&=$6+sd#xZE7zUQcB5 zleE#z%&uf+pY(b-9!|}kibcp7gY&5<7Sy+Gu)d?CRdkqCZz{GFtB+98a#f^bLhv#p z6}Pk1#mj_b^Yge2C{lHf*Ol#E|7b$*a!tj+5C)bs8{|3_5!#VdfvluxmBg zRa8FvWZAWU3AYa7t^d0yb(gbv=l>s2YCtI)6+izn%(FA&aZBX4^&Uq7g!rj#Kj1ZU z1UZQ~fKnC%VS5V>c5vBXw=I#U9bvQY=mBX<17GWT_HVrR{Xu*U53iM6hSMovW-c%z zBDX=_WF9WNhZ;qMh;bEB+Q4UVF`t~5i~E99*(dZeehx2s7;_a5vHCxVk=kRiIiN9{ zRRgp?+`)1lYwKToN6gf}^BE59lKV}z`FIbdanV_*Mt(xi;*E`ZtGT%I2anv0M-3IuCXBh%d-u&n(gdhL;%o1+b}ht$z`=%)s&zPK#>aZga<| z46vPLbp|V17-!kU1<|$Ni)T@mrj-lpG&ii#jyF?PpGS?7zz{`@Q-5xUvW~- zA_fS_e!V`+>gQ&4KUL8BxDkH;VV&me=#;IYdXpB)1joO6OS+RI+^{7E}qWWIwX-cSJKm|b~#Tzm(gAC z@RqOp>`mNCciAOd?Q7*;bTg|gM+#oiYz1j{ux!5T8r{PJF?E-vCZ3B!7W0FbZDZrWSpIfoQK$m0E#LVwaMyu_NC5-10JL zbxWAze~cEjm7CqPqEv(~C?O79)1ytQexCRFu>XgsO8=BN{y*NAm}{4i#XY2{DG_ig zsNEiu6Sh@m!*5}y@+C(YCsVSJ?4jdJIkx z=FlKz6;$U1EJ5507=pO>dd&M1lPqk+%0a;HF-qKlltkqhNCE;ha7lh5?(L3wo9rjx zy`HdP6!ObbB{6O##^w^jFk-DgygmojlEkU$qmvHrT*wVe9@nc^=L7{lssa^%sQ^^w zm7kIG9`AI*f#>Rmbde!Zj9k)~W8pA_TovSsrM_fxEI290+XKbZ>?h(EpUA@N4Bjq1 zp$_E#r4G>Yobyf$6&EC^_!m!5($w&m20Z8d6EW-cnDs{78i-qnBu=zGU?vz9*iOi< znD;s?ZzuJ}y+3AIGg&IOvP$L_P<~?s(O}D~*BWg3ACExN64K_8QxU=S{6!?WB}9oh z*FFhJK6NsZ-1rxfq%?MhkmUMdNK%&qfHhbWjAO7QJ|XUs&Y(cij6jG62Gr^c`@Zl0 zZr}He==+8b?Ryr(5AS|s}zhkpke?~ zkl`V%VY1+E@+yo9d27r@%!+@5kOu4`$fBP1tY>G&p~&is);UDD=3wF(D5D9q-h zDn`d)wm1yd8JZ+Z1tN;T;P}v|-Sd4~yVaV9&*? zqoX7)9Tt6Ns*Px=|C7R$8WmXRtk1>m+g*!*#8~}|ia35B>Kq*Hxz=Vy)+S1&Yqwv* zS0Tj(hGJqa{XOq!D#N>qC&L%vW&d~Ki?F-@5HGr`xIau3u=uOYi|#6Z#8Y^KXNXxz zX=a(=iGgTUa3EgX@YpO^K!%3*oi$aWzO_V@7v#a5j!%@MOsslRDwSv%OtU3vT1-0YX?iFLh{ckA| zc3A!MXjQ(0>O^^WnPMx<8KT~*8WwmV+hkC_mmOcYvVl}7Uf)oTdZ2Y8^WP})|9F9? zca)rxUEE;{``^q~LGTqWENglJ8Y565!Q#&N%ZvL<(T!R&{exLFbYva9h-AHR8H@3DWv)WmNtM`+&hm$ z|6G}GqZ4>@vt{q&5RLkglIc!2>X$`h(H)s-KQXngw!Yi3w(?lQqkfBA$J!kYHkV`V zj9A-1)7r?3cWMtut)otA1uCVvY~gXO>x&mc6AmO!fgDU9wL9h%qe`!7q1aH)((4h+Fe;I2RQZ93EH(OdU1V`ow{27voLJRXz|$%1E&k~ah$SU z0Q~Ru1=FYXnX+>WTS?O!gxNA!HoK*>xYRyFdsusP21Q5i(NGWyUND>ut%&QT(o$7A zV&`hp`v2ou#1c=l^;rA)Iuc(2qsHqWHcYwDDr=wvRejC;oGOC(2D7pOqeIwrE9O4< z*b;V~Rp^`>f4ne-QJj#g?LM8wrH(hNFltA@wM=1aKe&}z?8wFtw?>h;c_C~C|sTJt?hS)XWK;qV+j*@e6j%4Aa6SVqSIb<_C2jJ9$m(g{%GpxnemgQkZ( zF7Q~Dbn0roy;@X##?b=)iOg!g3%Pd+vs!yEcs>gnuT6Bt%vTPi`RzNKupB(=nz6Y^tzN|D3i%T5BIfJ* z0U+0(1yH|;4kV2)jd~e*o(O^jDpUQ{by~s&+`q=H7vk2w$i=#DPUSCeT(j1qk<2{p zT*Ub`OnMawC~3XKW2GMPSEvw+draM-9O+vefSEE1h4LZoF1)$o(r9%64}<-Z3$J9s zohVljM9P>pzGQr>)>_962X+D`3?GwRQmLB}q8M_sA&G{1w>IeAZ{f>M(x*4Tww2x` zvE6U{8rI;IZvDKfy7QBGJ^mff&kDEK}1tPIDD*u|*fh0H4{Z zq6vLt!M9RJZvFwoX}_IME(Z9oJGjG%S@;4uI?%ZBx(&1dG1HkK+WEX9prh$>e6kgC zXXm7_gilRu7pMXPO=mkTRZPr@n=X!}YVvXPHKFgL%R#F7ElXg(Nk7xA-qDDKn*-6C zwxZR0L8#5BWpx^725nRmno9PA)xXx(;^+xq?DoW$SqGa)DOb$&{75)1Hsa9@4`a{c?2If*Op%WFJ8d6hZb zq^R`fW&_u=jiHyS8ljM5)<4*eC@ZyWJUK(A_X+I4@+j8#!r=a#vbFh=PaOnB#FIB7 z$GU~{^qZyeGP{-)g*%-QN)NjtM-uKU9cR3j&pU zpoEq9&U@4I^Ap!|Ig~JtG?TY*Q*>P=rXBK^IJ+u2y^af=ZQRA+n{O-UwzaqYy?84B zhfSXeoHgL?v8b7Qmw^F!IT^jp@k*L?`s2W;*RTuK2eSC#G;^&AW2?ypHxEv(=7PxG zy=EYT3jz7eY7Fc!cm;7k@m`l*MmsUDFXkQ3OyzOpe&+nB0w5bl8N^++fp`gtKe2#@ zRN%K%>)|{qsPSt=M73_L8g7sD7t0H9!ty!)ner+()V}t(-wC<%zubPde9*orj}Ghq zdU+Z=x&4~|O8H^!=VZ$dGcX&0A6gGi;3U$%g;8$iNAN2b@r&^4+$qu&i+0#4jus`v z>Ji8npLIn>QqTxiHeP-i`vtK?Go8`-dk z;nr8bnHYyhbMSoX@)I$LU}K1`?Hsvyotd4)r{uxCX>v669b}n|+_mz{GNT0Cbg1tU zfMmi5)Tp2XyBKKSgD1^*l?koGWWL7*6|onY_xm(ZF6-~%m+f7pkHomUssM>&{ZX84 zPT|1jP6xfFUPadOI_Vi_DO}4rXjQ#e{U(Dr)VPnXY|e(Fs2b6m;r3}G`qOf7C5=kI zyqRC;aqT)akEdU6SFN`ZT1mn!I$6k1#6zqfC|I-}%d;=r(E5HJU=T@7$0qNx*HM$^ zZEh+m+q?$28b}@}1?!AQ_GnLY$JTRH7k%tH3n4gfk?LFpemo zBTx>43tt#2GRR&2ij&Co&o6JeViM zj8Q_|+NoPV%4zoEmLIozF>kB&{)n~Pko<`L-9Jhq_@YliT}+hjI8%qi`r>%?G1Haj zBT_jGmr~uD8>xP|>Eft_-ZwB@5IrN?JUB8#1yaX|k%`1~s$U2ez~Fpy+*$NaZ;Ny- zRTseAE{qoEgA|1W|w2G?J$(fpQS&2xyG=2`gc#1bLV zseaM4zFkn_RKMQ%n*iVg*oFKMD31Vpz%0`%>%v z>aLsdqqNRkcI7mlA$eiIuZ-xYa`aMlPGWx?0K`KaOp<@*{oI$gp1_M7Np_pLwXF{f z=Z%7Q3|lof6+bV>kG&uouQPG4n<|1uAYzd?t2>Q&3QG7EQ-f}BYPbP_3~`x%yzH<9 z(34sZ?%fJ&Qxoy;x>HVPX>SO=q-1hN2f9g^_~c_1`Zk(ar-@3z<^0Q9`bsTc+$bAB<4h-=_BZyM}ndgnj z$V|E2rXwnw3k0>3Yy2GUc(FHFf73J&JxKnXRi+j;OcOp$!J!6@6Ec?r%UYBw^u;h;_#7yorm)C3Cz#)C zr)WSH)`eX7(0akyRCd$-w5Y&I1(l|;^V2u|RPO%$yRXncsC~&HNhsA8FDDggv&{5pPr6dpco@m^#%>PAhb)ox;Qg3b%>=go>7DiWhrf?N zz(9}-U`4SLRib|@Ma{XmWQ(D}q?&3Bjx?Cl z|2N~`!fyKvg8%|((Ae*^ZpMWDSUx~1tOdN#9iIB__M6CvyK=itLK8YigqrF4>AwkM zpW=ekdJS|aRs#Qj<*=}vzvh$xWKO&|1hxR_%wlu1k+}~jRoU10-1nkp_+8{R&~I&b z@+BiDo=mq{Uw>ctMZQAehcmz9H)x(<6kj>4YMMzGae{`kz=3 zbfsQxy$1g=7WCLSs`WD`oYvA4$=vqNCFeWI;`W_OJ}W-_GZOrj%ie2(W2L#Dx;R$2 z)Xu|a)s)VQuP7q06yDa}8Is>X-^1L%<9l7Wi4s;l8$KU)pUaq7afAcAGLoz-(nC37 zSQewyU-H}I2ufPz$zgfu&#C2Lr`8O_QfVOMDL2L4lWqWt%{$>K@btt=l0!F3NK|;M z;!WaO9xHh)4IayRoDe*g`s?tH17T1Jl$rVT_TZ3|xm~?!GCBiCjLLEXh8yPJ`Rc&oi+Ca!P5e09ZAa8|)H&NEM|G>a?Y7UF9`1g$R0-Z2 z@3_Boy>9=lH9DyF`diHowA<2rjU~pEVaClzW_35R`pZ%^Xv(KgeMdT$%rPl7drhzIN zVAW=uJGE@{r;*JFeZ*mDT5xd?ksN&FdoqedtJbA7t2dos0PPG+{gyUi*v~*{Sn7A~ zKDkQdZ{V|Yjp%5+s(!Rr#kqi`wPrnpB3$|WSw?b9MAKjL9>3cug&bRRKXf83J8vSQbZ7JECo z`;7!YZgpX>OLA#EZ}xG3vRg z+wi4(18#`LtaQKcb#)Km$tvn?wz{138tgp1hRVw{zuB743Oo|$V zQwWD1ZbF&)s#WboX(M#G$=O8CENbyDq@BK>nEgD6kL%Qr>>79QqBYjSC(eo_zgm=B zOvL*;O+q|{Ou}T?4~_8KZH98dZ7nENm4v%2+`k5|pS09K)uy+tBY{|CQ0u1y+{q_ZpG z%7xk>6I@E?cm%+{6)#o6VG_2d!$fV63OWuk125b!Bcc(_z1Pp<$;>jSnmU=wV(&n< zR#T_gPjSdYRXg3sfx_Uh8mb?-(9u@vA0pI<;T1F=|AQCmzmm{+1-~DSA3UCH0=^Ucv>4kK#lux)sZP$HBZCp-CqI@#SKfaZ#kRTgzXV3O^?m+62JBxU9OTB=2W zZbq@gk=u>n2awmXh3vLH)R1%_w-KMs9fjS!9ov(1I1-QLrRsRM-SsSHQTo=hqC8_; z(y0P-%8F#0^xt_FwQYhCE^Fq^O)hqwb?O#^iTW$*y#C)7@*;V1464^Ul*R|gN{+I2 zB<01Bnp4$Zr1zq%r5lNLgCYvp(+9zY0z9O5z3P6ZP>XWPuTnXbn3}4x$(aS4(#LIPn!Gpd~Ze2Qtq*#2+&ueb3>cdV+k6&_mf$ z{uS?~Je2eQ)W6EiqG*UuuhOlTF1&ONrrWO>y7pp5hu?gC8m02QI0VR~9O4U8PW+>OQ$>&KC(v->4mwg+MlNpRcStF& z`Fv^;YWPYF+B%mpD;Y!PcuNreBvoNvB4;^wkXE~D;Tki zt1C^x6&b@FjEVp#3;dy=4Ng*6J87ch3?s#{=tM8?#zfw#^*3R zmT}CImc!zRhXvCbEFk5NX!Q;PKVWN`ez}kbd(HFqnyt*mk%fq}`1&+dDh8VbVT@SE z9B-?GW1aL%g+z{Ef|Q0fT#N3P2hzuiBcr>iX7pa~RLAW8_4!ezfJm2xj5~R%*M(>0 zOVrcEi(uKiZcr+d<>mHe<=am8F{Q-3ZS(=pbDCK!uxh>MYx59%)#k}n5+TEj5{0$U z&{Z*O8=I_2v0j>~7sZY_j$)tZJB%=1ki%+nJyJ3)_?0~ZRaVnof=8_|7RQd)>r=rPh293$b!sMdNHn{LyctFZ~hG!}zAnrDK8%DXkMLaRrq{A!MmHK#HE zo6P6+1Z(Imv@k8@Tb^kzlhg@kuO5q#;ger@+JY5BOtKy&kK`PS)1os!c6iUUycL!< z4TxB-P(nf8ydFd;=|-Z7&MU~HWLA;~|8K8Z&+OsnyPFO==?qLyXS#oq!>Kj7)2tsc z$?%iJ98HQ$=`t_f_L^NzHK%Bt9F!?e`^C&YxacVygnuA^HIk;<&dJ>#Bb_v*dvbSm zmmN<_gaLm4(p9G5&ZtM2-fhlg{0Vm9QZT}^y~aT8;pZZsmTmO3RQ{=xdkCvIc~`V* zk7NI+lQugY>rkY6!)>Fhw>3@hb`V6qx~u7kQ@w5JpWyRUgd|>@UJhUT-jsNINM0-d zquFTcCVYLe;QO!ZzHaXTas7(N|KTYdj4+{y1VKZ4{aZOBP{$s;IjRIv53lbed|l-v z`EPDM0pP?L-9tt45hT(ELL)(tM_um(#Rqh_%gP^h< z&5M~9w1A<$`trROy>~>VVw6=&p>Jxz7iRvwO zyk9(orku;l{AnGxR#~{!vlL9P)NVh{f`W`sx&a)NXAobmme<529+v3gv+esD5vI>C zXnK+gS~jX3Lc)cg_2F;$(70Dm*YVW%^m2*6S`OBbkq%*_#6uE=dw$db)H{av>#hSq zziNVhDVVqETV>F<2UUu`^&@4exrmD)-V>MVX}O+e(hqe%aXAkw^>9u5dqIDPRpx@WJpXUS{6npr8 zhgi>@yirp99e)KVPUiN9UnA8&6g=EnmO~j*R+JS7539;bgNJ*|DtTbbE!R6N^gaAK zhKaY=5K@{q<}dij$%<04^09DT{32ahX za-eFH56vJjC8YiD#*qW2&A27uD_5q%4U1IjLGylGQvD@#&bXPb(nBqBI1#U8blCw> zqvH@-h0*F-<>j|C{O!^&SO(E1ioe`XQ*MF!&&D)eo_(Act>z|=NHd&Boe?e>G^&oa zGTjGb^=yJMK7iCfm{jXw?&yp@;IGCGyZu`BUEXMm`g6njn?A{%p=!fS#f%KiW2B5# z$L+gn89mdYk5JRgo-P))3ju>V0vp>M^gwqsXkVV_K~xyH-(h_Bh2vVpZL`L^lJ{(J z&)14*!8GV4ZgQQO&YpfoX37ytC31)46E`p*fs*CpYD7J;FAskChB#~!V%!OC>VlsF z6+6^VTo?4offWSN4Fu&~`I?o(oqmm*oXQc#K-Gz5Q*154dK}Ie-d!s-*FF3k_54Ki zbVKIf$R;C?uQTN7$@ym==dN*YfaB490wG_XsyG{;jY8U!pCk}oj+YKTIM$Pdrx?iL zOkW@3{Ggn*E%vgCcR?vKrG|N@l3}8)JVrT$x{T=nl#V24sSqS zBUh($Eqv$_@^oW9HZL`H+uvxks7qC`Jz`XdQ!m!B&ThMxLBd>>PEW?qJ}!XO*avoa z#4?YU-2jXyKAOFV#wMYNc1{{&<_xNn=Q?dSHx;#?hYMJ-(r@j`wsx0oZMCfhr2a|5pMX|HQWd1FsIA^1{=t6`P|5H8Id>)rVEfwr z%?onxJ^#;hp7WgNJm-0ylb>v8>X#9vpDY_s>)aYLFDGy2WpLhkVWa(+^TwpfsWR(T zRj7v>gUtLvI2_=U;sgs#MisG0>FAR|A-*T;+rwl^Prf^qmhV62z8iT;Gp3(#V;tpU zca+CQ%29&_ZknM3K;zJ=l;+ZxaYX6I>&DJny9Q=7i%xaqJLPRb3W#zAo%ibF}$n`(CFO18=b1wLE||FNo* z0qy}kxzi6g`+Ch$90%1#m9)lW+ijK+MXMsHf~0gBAcg@Wi`Ax-6g8Gl4lJEt&=!YxF2p!nrR}6bS$h~b zK-bhuE-xHW;6F0mco|%45_8Ych#}HWdNs7pecQS-RiWVn7=jbMkfc-*ZP()BLeO#jyl&SH+$k=xOtb7~!%F7#3lFBby+V(Y&(=3$g zk9Fr}R<6xjxeU&zJNb3%ZJV2#QCFML_JC=4LGx*;z0IdUoC+wt&|3M+k*Y+VLk)>P zXr&9`1Js3}+0%aWyjDJzc+-n88Wt?QP{C@ucAJHJB_&ojia0!zC9W_a0Vb?9&%1&p zhdc;)1CyYH%N?XW*%f1o77s`lDYm&{KNO-2)=!vmH^D6dB9to$?)=uI7SOV zv}&8330Jt?L44>Dtr0`%LvI9MC65H_K}9=eQUe975==kpvfZf_Ef#=j9?kk9bE$e4 zqYaSKMqnZ~-DT;+zr7ULQ0v)OXvi_nj46ivrps1pD@dY6GLtxyRRFlK1oTK%N$4ka zq|y0Rpyk6Sb}IV`tpQW+u4toG&CgM6^Rv+@_Zha1vq!)syf9slWyV)X#b>fni@uuH zFe1B&Wek@81s3?pqg+;nL*hMbrP~i1(MK_SMY@BeK=Tm4>d0_8*_K3Z<7}B3)~Cr6VVX$uII;fy--~8hkbJDFNpK;a>_t&&CPvzSj_mKDHkgz#C^(yh7{OX079mqjd#qD@xnulzN; zU)V%3Z;Wyz`(sXNWp%Zd$OKFII-XhC1H1iT3;v?=pmGlf6Amd&05Y*yL?WybBEfQ1 zZ4Xk!Fx3cP%-xyBi86DV+sF*Mb?rys!!Y~JSTh-Xg5TC)X0HPFwvlmegAFdouGiLD zd{^L-L$DPs7FauZ!iL&^4sjIl6YZx%*_vGgmlbD!#fQfb~kW)2K!8jfv znxdx`=1QJO{!Rv@1GT~a(Jiu4A0wDprOGpO*7_}=r(v<4>wUTE2z#o)T9(qpp4A?) zE!sm}R(08-exmN|)`oLCLArD<)Sce@dyyZsl%WO%WLNLim@vsAJhPn# znT!Fk%Z>+4>4RvI5MU$mI`VGFHHaV;0Y;bmeHa2~KViUj<^+Z|k1)Y})fx)wX9q4T z%Sw?nGdUYWO_Z{8qpFd^70&!Oth6oB8?SF?Kf@by0T3awW(iwJ@ie!Lw3v{j0>(KM zaEp8@90UpTu+n?q)(pEVAnAarp3v-GNLe6{BzYSJBgKZYKEd^-+9CDuWO+yt0cP=` zDP1jJ{|#o3gyTQfgle-Uyg_-x)`UY4=U`264gXzhlV0XQq zTNNO=l7~JcQoWW|_*=1ewB60LR%0NdrC^EcG#0VYb9i~S4?PprF~@pRc7q+yYN

@$pOB)4&~R{WNUK5`GBS*ZgPpQj$AWH= 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

XUO!Zc;=lBFgDH%Ievo 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ⅇUFmAJv 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

XF2AKu6(MK`}ZB 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 z%0A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 diff --git a/VisualC/external/lib/x86/LICENSE.jpeg.txt b/VisualC/external/lib/x86/LICENSE.jpeg.txt index e677c820..4334bd08 100644 --- a/VisualC/external/lib/x86/LICENSE.jpeg.txt +++ b/VisualC/external/lib/x86/LICENSE.jpeg.txt @@ -1,5 +1,5 @@ The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ +https://hg.libsdl.org/SDL_image/file/default/external --- LEGAL ISSUES diff --git a/VisualC/external/lib/x86/LICENSE.png.txt b/VisualC/external/lib/x86/LICENSE.png.txt index ed7ec64d..673f4f03 100644 --- a/VisualC/external/lib/x86/LICENSE.png.txt +++ b/VisualC/external/lib/x86/LICENSE.png.txt @@ -1,5 +1,5 @@ The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ +https://hg.libsdl.org/SDL_image/file/default/external --- This copy of the libpng notices is provided for your convenience. In case of diff --git a/VisualC/external/lib/x86/LICENSE.tiff.txt b/VisualC/external/lib/x86/LICENSE.tiff.txt index 85b375af..79ef7a59 100644 --- a/VisualC/external/lib/x86/LICENSE.tiff.txt +++ b/VisualC/external/lib/x86/LICENSE.tiff.txt @@ -1,5 +1,5 @@ The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ +https://hg.libsdl.org/SDL_image/file/default/external --- Copyright (c) 1988-1997 Sam Leffler diff --git a/VisualC/external/lib/x86/LICENSE.webp.txt b/VisualC/external/lib/x86/LICENSE.webp.txt index da8a6bd8..f30ece0b 100644 --- a/VisualC/external/lib/x86/LICENSE.webp.txt +++ b/VisualC/external/lib/x86/LICENSE.webp.txt @@ -1,5 +1,5 @@ The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ +https://hg.libsdl.org/SDL_image/file/default/external --- Copyright (c) 2010, Google Inc. All rights reserved. diff --git a/VisualC/external/lib/x86/LICENSE.zlib.txt b/VisualC/external/lib/x86/LICENSE.zlib.txt index 724a4888..fed43beb 100644 --- a/VisualC/external/lib/x86/LICENSE.zlib.txt +++ b/VisualC/external/lib/x86/LICENSE.zlib.txt @@ -1,5 +1,5 @@ The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ +https://hg.libsdl.org/SDL_image/file/default/external --- Copyright notice: diff --git a/VisualC/external/lib/x86/libwebp-7.dll b/VisualC/external/lib/x86/libwebp-7.dll index 0092e1c6b5cc87d11f72f14546b87171ed42fb8d..dc871fe0a62f66d85defe91ec9b88b380133d659 100644 GIT binary patch literal 410112 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

)6a^SA2 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

)D}70FdLbM! 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 literal 416256 zcmeEvdwf*Ywf~%C5+*o$#yaSgdf{?W?2f=gnUfXjpjXj~34UN#KXG@3`a6aNu8V3oMM>5tx5RpmO4*z)$X+bK4c? zpFc8agRZM`IBK;V$FADLH>GPk=(yk;=V=+2IHqJd98{d60xwcM_-{a*W9@7e z&am*-5JUXc-$CTZ%aW@{sCGFV0jnGfusr_Mqb}RgT8x*rY=?J*iaz&GN4CTD)pI8? z*7=4 zd}ZgzxA3+Fcm5F7v2V~v4nLmPej#5u!TkTfe@uZ%#z(%mGuVtAiGx4LatLQobS1J6 zIUUjczy4#*zs~;kM*M`&k5frFjIF-Hj$69$*i7EOrK@eScz+6Dc;sYvbZ4aTF-PEE zXGc5qHQz$IkDofPdnB_1& zaz{HNy^sAF5yn7<-tw-M;W9iD*8x$5fO*@%Ei-3yx*f&|O+`cw&v}gEDF2!D%4yC% zZ^>T0<*NXnu6g&cn#J^>GhORW0JUm;wQ#>(uco(LfTHRRt!g;{&_hW?I=VkHqJQ<* zi1%ZyfBz-g9{!4)>|vA0;i5k1l9OG+8%*^8xRFIlSf~!-Uf7W=N~Ka}JMudoBhAqX ziA4!?L5JuLk9~|iz^GY>5?w~0v*f@MU0xL38U73}shuSU7Jn*=f{B8ugZP#YYy4GCA?a#4JZLbvl(o zlIn$L81XS9P{wJMao~}790^uIk|4PcS;SHE`ETLH0e+b(UYjDiCke1Xesrf8HLc;7 zvm>=O=Y;P_X?(ABRY+fnR?3(#76h)E!}v=vsfOer_9^_CVFm} zdFza>#0N>I!>mXd1KN`B5ET2FU?!YOrBom5(HBwHT^*|)_wsp-*^)_daQM^^3W zBBfT%=!(wBN|p02)O9v~qip=nLi>VqN5}u3N)_%TKcF?yt894b8uuNw+B$@{sCqB) z0LsY8?5lh6*<;M1T9^OUtFK%C|w5n zy=#t3>6^O148_SUD1q{69%z|^T9P{u3D$SDfpTDU5-_b66TRC&B_IzrTR}SMEsHF~ zEKV!{iXg!>7H2s$q4*fP86$i>TJv=l53AynZ8E;Yp}(ntPR0e<7F*qQv3FOaJM zp+L5?s>JJ>M$!}*r!=vul{qW{$hInVifX66YA=x2+jZmZOuaoOs$F{fh>k>taWGR< zyH(hUaPx6ZZ|@OPJbL>j`s&}JNSUUuehANwL)k4m_2|zLG$*IbJA5D@8}EXSLJJBK z1wTe$ff~VyWFj=)#^Vl`SR6u66iCR9sP+va<+nmLqI#AUsuk69tWce(o@a&XMfCzJ zG)+`DL~3NVzNy+-(y2etp|^K{0a{Y%bmW*Nm3SJt<{;n_@OtgpTwy=SCG z>Z{riK($V}C?LlN(LSfqp@|n`hcDA!lof&4>B|5=(0d9r@fG&x^~*&;#1(!jY9SBf zbMwM@EXqwsdFA+gM0t@~1UB**Ne#gQ(F?$y*zwEo5|raTMyDor$3DJHJJNf?IK&os z#G%*;R^^wIyx{e9ozZP#Hy)#R%Sk>JF?x3?@YEkdRLO#%D;@A|AtU0ga2xX$po)CJ z$t7Dt1_BphWGSf+<}dN+D;FUvbV#ngaz2|~QB=5d^vB4YuV8>Y9B^DH=|M>!O8V0! zsc)>3m#LD)c1d@-B$a~)CB4H+x|fX7R~`j+DCyEyeuPjPhpEvYqfhjf)p!^EdV9Zd zTKjT`aWKQ!TBamkF7iT$DUyNIBs#U`Ax+;@v?YY`s-#(_1@fwKj zJa%aGX?eF#yc|1unfB6!Z#)A`9VM?X9yR(?z5P?G64Zc-s8$v_OX7>(FWd%w)OP^L z7s=cGq7$7^*pt^|Q96b}VqGVIk1rd&r*J`T(qZ(WP(NcWj@y zJ|M3TYBzgCSMN!2K;QH!CmssFnBef>1$)rl>Tt1YkT+t zW9xKFc`JJw-4Tu+Z8`)KpfS2Xd^g@3CPs94T)ivz|7 zr=$Dt8lh_HdmMe#cUjB+NIyXMqWhZ?coyS%knh@OC2uV=Gi!szCAGouG6S7c43vD} z&#^ z_hc%?ap&tyQSH!MF1EvRd;u7%WdvTK9uqg9?~*6*BSQh;P@}331w|Q0uv!!Uc)Ibd z!IN?j#?zVDt;WL0h{rS3FoYJcWNkEs)G+9p46(XMUG%6Py`4e#Lu77!(`(`-uv*wS zITAT@DW3YOkAby0PD4a7E9ixJVK!*Jr$s-q7NdgBPsUiJB#xWnB!XDv5ogCrymZt#|7((vK zL{*)r@+@8sHYi5cTyaA{M1p)1y<&2K>Gg=olxClZ5T0~Qu#v@lCIh4%Np*u)RQZyZqO=$w3DL*^Dheh~BTD-e zl2PUF`-PgMCG#-e*!J{PAm=XZh@Eg5Co;krw|1dbAu6({Ijsbh-b_d<4z-Q_^*8jhu#lm z^gS`R4f+2x2_sqGLsotmzdrC}0J3#~tN_^EI!{DaEDz+VuUe} zx#WtoTSajLK7I=l-vG%^Nd14o#B^)W($|w*;8w4kPX04JipDci1$SiwYPIZl` z-++3|--Fwl^_tg>ZcR*e8KuPo%D1$gu@gQchS6zluo-FQGMN7b zVw#hJc&NGc2dR?dk$(re7TKua&~oV600@^F<-(lF*t){h3 zegMgA%iCTeY5u$6`VsB?*n9c=~ zL1-$UG+sd~p|FF|!}19)a_aZZM4VZr6#$S_i#aFKLx39SGl_s0^KYDst+`-9BT6=2EKs2&zec_KS4{RdUT zq0*wyI5in%;z-Jq4esZ*Seec;r( z5fjok!CT^RWIp-d_%-tfA@5_PwSb+3Ry|NhW4yMwMh-+ly zdt#|mHYUVUmu&pVIPMWk-I2edB46Q7fXSDV@R3_K9Mm^$*N%%q+3=qDsnbf34gHA4 zOhQXC;cvzX7t$iz4Db;B2Z0jBbnqIpDdAvXes=(56QA0gRS6~o&nPA{I-IaV*8GNq zp$f0_pjuIPu%tio89)^wvR2kX^)gb{4T!paBppsJ;uwndEdwKhG2|s;@700MQq{hSTHg99=Ocr?=WZu)nhTCTz?Qv0EvTH42X+mol{J4g5F{Z6tx=@d%5}` z>#Fw1)$gf*SFW&Pd~$^q<4@ke&amurrI0p5)j;14BoC0ip&cmKG-1c~C);Vw!oT<| z^T5`v>`Z1OSK7=6a>em+BksXpeB61~L$@9mS&vKj=pOggd*Z9fUn;WPsUpi=h@=Ko zk*iDXQ1|NV7)th^NTvGDA95xlWQ`}w1`lcStijcEdniNwFAq8@Q=*inF zAELyf$aJkMGfHU%Th#$vy^Q{b5aI~e%4iXKg$y~MKU^8CFt)5k8WvB!n++_@jd%e8 zqs3^PjQa5lH6Oi`J=zjvP8rHaOpDH#T1*vQj=k%QZZj)9dXySR{@Kb^ADouCjyNLI zbTP#%*AY2wyO`pW>xdhJe)+u0Ejq{42g{n51uGnK$u#s{eB3-#p zyCrrIKED$dW5DkUb0Da88_G(b3|2nsLFXHIKrd|(|5-?~>}L#Yg4WwcyUH(AH>@rcQUm!Y4@|vum0?a+a$zE{s#&Tk z+QWp4RziYZ3jQn$esB;z{q5(1{h-yHSs0m1743Dihzj!|>L0o8kK~0dN-(431wqe! zuIc|7Y6JO8_4Y{`rt~lm!dpZ<_8~OXX|aP=!f9}4P&;O9q4Ls@BVUhx2mFNv0`dmY zrw_p<5*uaF*K0L4Xwmmk(ihfibZ1j;y3|=k5N*+PgVhwPWXl+9R&3Q{wfxL3c*)M5 z)R2?J1c|LW?EXWX#Ut!Q^2u*3qLQc10<}9e$(3vdJblOkeSs8fGqWy zPbpQ7bki9lNd=bP?n0L2Z{hRdv{&@!?L~Pqr^PUE^0dAW%q;B+Ptv$~dbAq@RU8d# z#ykv9CuE3*^K>r5)oNmKc|R7q-lHkDR^6Kc|DPyw5dgZf>` ze?xU=%&+_~2?}6+&y-WJq}zC{abix>&0DaYi1JpXM()D>YAK{Zwkl0_{Jf^AvNZ@q zb6$q629Igv{pfyzi7b@WMaICKd+G~!Vl?`G4?&2wN^mA7c}mlY-q_o&yxwOoi}w8h z4yZ%$R>w|c0PagH--Oj?j5#o14`TCy8kCI<%=X-$ z@%s#SyTHqV0)~Q;A^xxtQNnl>zgAVkph2Lw{E6{<6TkWtVthD^nU_)z5BwF_2t)lo zz?j5HR0&@6QEKYk(yFaaQzKsK103kY1H>RQGOp4P1l{sgN6c+2HE42JP0}A$3nVG= zq8|MxO0;Tv8bf8K>`j~pd>}oQP)#8lO!7Z4yrlWlP$Sv{4iHfo>h}T0B#TM<#SY8< zBDE`F4Toe!0j!7f1txSoG+j;+nF?rlJ-V1dlbvB4&(PbSpdqG5??7xk%F&B|@hH26 ze{xctte7Sr3gF$WzgUl*!0bI+j}16W-Vn;H66-kHHD!y3_>}8t5ta1deH|$Prdx9Y zaLg*Fxtz(%EIsk=`YM{RM8C$(W8;f%sV+Qa5{CXTO{F4 z8<{zgF0#zbi2=ZF{TpB#$FFI}p|KHql<eZuu#&6BHS3%=ZQk{Q=M=>RxR4Xg$ z^NxU`dHtX#wtTE3{e_}^U)R%qjN?)oqLf1pKB81)RNHk6ap{fR%)>drRew3+y0V)n_3lk=u;H#iqrR1}t z$&>i_5Ab+(FB3(SND-HliqIul^_5d19R3s+#APoah; zYc-*(t+1o(jQTBpo{oAOq-4EALPnP2Dp+D3urMbrgLRXt18}`%3Dl`@g`R`qOt`r9Zu> z03P!XkXj7I$vp@F%!+7G4zf;?~RDQkX8)%f(Z&p3Rf=2oqTL~A=jJVS6gryA#d-qS1MoHekGS5M5$E8)84GMDYN< zj^a5gTD^s`Af8hS82zQUo2r+v7&OF`=&W~~SP+JNzvN7Z z?j~)!wi_c=fq0U3k(z;Y;=NeoZj3UmUl=rgu+Fz5XLpzz2mEZH+I|2&1L2%(G@3|* zK1kC3C@;$a;Y)mot-{hG5J)wc(@7G$5@V4ICBmpB91o!iW~K!v#(JeeT*O!mhsyFA z3l3A0_pt$~kdBX?r)nJ=O#BqXGgv|mgle>-enDlf$8F`J`W5K-uq zv?UTeW4TZR$#t+P0U^XH@KjQRXD#28uON~8@6+OCY*5gT?Y<$Ka^%3_Ykp3#z9^x2=N5A#>yY(1Q4|KNL)`2br zA0#e@g$o3%IGDuMHR!amU}EMk(dhl*AE0}EU`py@}*5G;|%xU~B`{Le&Ad_pUn_PS}XA^|4e{vNpGNg}FNtqMCn`)yn~5|Ivm zvn^Z{TXB#L3;$=|Au?Xt-ki$4ljtAW+ChNm4%x;rKyKK~-=>h6f1%je!nD14J(%uw zidD^c(^~}7tINQt(FB95i-Ci9g9Il%QPua%O=XBH+|PHceE@mmMXqQ#6TwwZN6GY{ zf6;r!3*;*}m0|?4rh~uhS@-SmPWrW8`QVi`0AjAalCUsn{wbyE&XUO{JDC|_n_8|6VC9(#)&Mw zWjx8Scg0qMP{~Txxj1XPnOR1jraZFt90Dk}NMBysO2$WG% z8adhVWER^JkydGm9M|A6}3Mkg7Mx#5^gU~cQ-BP&-ZMj2)D>1v; z(om0~uvKrEEwk!<4#+r^GYm!CvdUVxtg1mtr>v@^pj>!>{4cr%_Q(Hw=ol%YTk)psQPr1Q^r6R{IGnV>_|S#QDjEQDpeyN;PkQN0nRo= zkG|$@Jk9ZLaCD`36LM9HQLeIN1r6#j9U`@g*FinwTZ#xR5fWh?fgrU~v@xfAXn;VK z8r0V){`^Gr^o^xFD6IfZb`hkm68libtm;5}#45$6t69#RrjIUSB6QI3NTj-&@8w>@7Gr>OC(e*oy*WMl6f-Tet!S#Rm2y{9_EEY~dNg?^5b zbo#v!ore<%HT3?Fe-~QCLSJZ zF+n9Mft{(MDkR#dNb%Aj+NeBbl>LkMd710j$AFB?4y{K-TbQ8uTc{)v!>WbZjM(G> zRH^J=qZEQwk2ko84r2dA(u;7SdMWFreCRDNAwTM64OU%)^?>33w|e%#(==S*zsIvu z`l@dZO7d?2BTWoY$dO#j5><`nWW@p(6EhyZNV*X+msipVw=9QXqRp^4XepB9cOXbX z<21D6X(HTjiDd+bIV>fZEFfUKkUGgsyeL%?eTs#v8ri$QXJv5S^dui;Bs$W{LPN;T z@&g8I!5DD1^du|zHo1{Y7k8k9IinJ&rFJG~6A)&O=TwU)_A0g5C9?Gvm_wFojegr| zHqrPxgJ_IZhu2E5>CuEYiymQwEM@oy0I^9ZP9|@Ji?7tAy3viV06%La8l=MINFHig zgu2RV{ErzNY?)dft*TL49jyS!w#{*atwrST`v7QiNG|n{ zS?Y_F6Gw5W9<4>iNg`y|N3kDjWf?K8u;3>WQ{hhn#_&`w21^=SXs~GETF6LH+oG79 zazjj%!*%0fQWPfKrO8cTEM@~e$W4~cb|$6(QRFxPpoROBJ^{7C$K8BC9x&<=~koCsO=iL-EL^0vR( z@;2lzXhb(Oz!?6Cc*Dfpx3J@xk;M2|^f0!1U5bS1W<_oy9|eK=wMN%6G0lhRjAem9 zTOjrgG&M}C2z}#L_P3?45amx~tW|2kk9>cE6};89f>D(?(szGhN1|70rtrIIph_PM z?FZ9aT7ZwN2mt{0366u9|6T;cpMw#{absl*Mw1fxTnN*&t;b zGw)qIm^rdb8XasVqQ@d#8j6y5`wrgvo@z5ERRVh_(?@@dzN`rK-A8EY{caZh+>(Bt z1?V6wb>Jk?x(+zZ0wb|0c1b;U7+nuk!yFOed{mxG z%;)KRrhgdq*0SDzM|g`HKdP|^*qa;z&&KF?@+Aq&Dj*kdWHjZb9YoxULIC4W=`Fmg+VzG$? zk+K873p>RFd}47-#R`M1$GXsyFiDNAF6>=M`XKMn@DGu{ReSq>4mV+>wXc0{+tk92 zDct?<0SEFN9rrQ#!9ZvLHexOfIl>nj*JLbq8_#k^;D}_(a_r9vXUEkDi%}@sIysC% z;9~G;7PelB%eePK-slw&5m;_3Qi4wtoAQ+wrjh|Cl_{L{;jBiH5FD4M6j_A zs071qd3}hmfWeY%B?@iwXT$^B?fd2R*t-%=8YLr_yoUv_Y*~&S*I0H#)nlDv1dv3) zC9;7d0$!1MiyZ6WX$yOxv(Kwq_1B{D!|UIM`ioKj4?)y+YIlk920YxNJd6kSzBS^3 z&2I}7S9W33?XW+32eBhpF7k*%fTTsA- z@<6Cp>tV~~_noLDSKCo?sL3fh``V3^9{wlP;+i?Z@L3uB*L zrp3ie40Ch8nV->{!eHaY;*}R0X1)h-`4rs3!?fQgcyKg8-}I`!=|#{#v%-tRLe`{! zvk!ML@iT0D!(rN>+E1GgS@%W{H%&!hHQvYxI5hx7Sw6GEhr)hEIJ@u-C@d%V2D7Lt z{Kyp;p6gpy72e1bXiwT|7|yQ?kA^kOaeuM8H3ANA0l@FAZE|3kL}aKa6yW|tS4lQYDN zI0wi%K$*T~HIWC*J}TKF@v)pw%OYfYuRwaSSr6JRK$GfG(`2WdA5irIw&|Z_mfeZ8 z8r0~=S!g;97J#O2=DiNdDMFZgak>7;<$ceXu>s+v?NX~y31MZtj83Dn5}0=P7|6<| zRA$~4$Q)Z=I(C{kq2Id|xE)2L7QPc{_36_As`+n>VI>v;ih=QTw9i5X?ta8mDTNTv zPNob~nNUf&(j8VuW3pDz@qs`Q@TsTZPfzZrAp*M-{KY6g=)v_Eu7-e;=;@Gj$(b(MG|wDMbp5iLd_+B} z7}^W|li$bb!+jdf4sKNYE;eX?j1CH=_n#m;*AoWaM6N{A4eS6c6P}1^{!-XMk$qS} zuoWOw8BbMsvDfDin(8Y&Dn1uGpzC;a{xi~o1WkdUiH!gRN%uzH9x4uHRjiQb_92fP z2`fdq&A>Pa5zXQ89(J>Y!xwlVh?VgQS7y02TvVuT;o%&z08aam1JdV^yaMFAwj9T_ zDe}db04sfBjZd|p)hwAUrw~Gcoad1>UI_5bMRIAeF@OQLGFWO1khO|1=(_NRO>w0f zdM5wN9fkXGY`bJ>X!!`a)E7-PLEqQfTVQd1eHrdONHu+=Z^Guv!jzT-eL1T8HLHH` z5(txsybH<1cm{|b(8o)L!;`11l!J&gV;qi0$xtPlVh`9;aH=$v6Gzbktn+AHCD#`> zjgZ&lTxk;~?V?X_xs%2L#K$^Hq_4ge?`Q`_CZFt0BI)gD5dxHwG6mco%I#*Lld!3d zzPi5OpL72=^?OK;kW)!NubgJnZ(&IOm~x9ta!M8wv4uYDwi#OMg0jOqjF#G98!PS6y}};dcW`vCzyMT|i10kH7r7wg z9*x~t9@1VeDQE5FSkr5oV4UVLDv#d6{kx!yFHM=-EXvUAupH|g>B&OCM5IT0ym-N_ z%DCqIfSF67K=kO1B+tKD{FJX`kDhBBc90Xexq2qt^>TSo+Z)}_rZr6v+xxQ6o+ zxH5SGn8Gb$VqPZYk0oB2%|JyB!HExuc30R%0tWDiqQI+UKDLZ#X$|b7@_%5!4rs5 zs8E)1WXw91>&6-9%(Q_?a_6c$E1Ze9n$Toi888NN1~Vjxro$`B&Pe3akv+9qi>35j`cA=-f&BZD$_=A+<4rrN({?MqS`qFggzHJfpvZ|(*j=rk+$bk zReo6$Dyb>f*NkRb2t1|VcQJyQI7F#$!X9@7I7C2eCLVqZ?X@a@Km`@_Ru%Ngx*}9d zV-kxd0dO@!xE#rEg`Ae01JeKot;xR3Tgl2`WPQy>4q9Yp{XX6cfeO+nt>LSMl7XPw zqW(pG5HItlp>5RiO*L3gJy+RAOC0|w2x&EbJ7@of`kEGc%})yWjBbIulVXB(f}b0 zhqUH!_Ee37AGCmm$YU|c7yD}gtkq_KlQVN=rp(2yCgEvj71m`l7S|c4+~M(N)p27W zb8&?|@xWR23d{djq0~#fBJEFfxrr5~HFnMJCg}2x$c?b?Y=glD@ecve-8c-u%gYHM z{1;%LwkiS*ebx7{5H6=oH%^Vz*JF&PyZAPEelSQEIrQiz1ZAnj@m}ms_ye+9J)*CA z1Yz`w-m;znb^cdhuNKZ}5>A*St7n0dbvRytN3opXHtTrd2M^oVP;cU&rvi~!#+wsh z3u@G)m0&2Qm04*atphJ`j3B9AZ#j>+G7|y8-)!c$na=-2BRSAdH@z=yt^zJJmLjDHcB8!`119gYSO;$kVcC0i^9mg*^w;3Z}2+MOu?G7X+uLk!8c>I4X#9G}tm5hZ?NJB`7c)Tmq=^ih{aZ*3M3xw-Vb) zNx1Y3#b&aXz+|Ykrw+AZHDM`U$&M{toi#x=b zPr+5f4XNYt+;G5F9zH6Mi)#fFg zUWd0D(_3u1HzT=Liz!Y+FV$-&VsB??+y4>MS$!Ewq+o);R(Me{-Zfa{N5_ZQ(`NlB z#e7Z|0GFBP;K8~xco1cZ!H3|6vf;eQenwL)O_n~#G}IwB2a2#_nlb_b0=4PR#TGw{ zPbz@~8KWllPKNe6D` zeum?z1{#3+Xc1W@zh@e{w&Tm{Qm8s`;T-^73~*%x2X{pMAh_Y6Ab*%3af&ls@P_#C zJ^+`Q;G7V^lR-v?bJSiLwVqK?R4^5_{`j6WpGA2nSn*VHB0_5YL~$T_dE(mHddqhZ zoxBS_iT8jj?b+m0SO-tE|1&VJE=EI|CsT@W7Zx&sv(8%Lg$>zz+;rA};4WZYoOlz~ z0VxSCp>nzyz(j>J69q9o+=yM)6)p_<74AeB^(A+ag~+I|Lrrh%W-2N48OS|7c@jlo zkAO}!S51IY~(#`65h1)zc9QU2JwE z2>|?Ol(h?LDY4mOr3cdKbGNv7QmE!+8pQn6tM_V-SjuChT>1^409H_J^rF<3h>cPt zjgk!(!ksHN`;Y}Vo*S*U08+(fKl7+V|Hg5r9__cxFQuPhHr^)Jvtd}1#jjk?mWVdh zp7q39v?<)z6Bp6OU%8%@iZ=er^#m^3_$$||>Qtq2eNe^ox6h!z6prcSFUgEHe}X&c z2_Q!`%z$kUb(!1-;XFrrot2)O%sY4a0xLb3OrE>E$4U<*e|PTm{^_cIe{w$3?KKgI zv-4S4>#4cI(;do4b)C~+P>XDHU~A8ko7M7A3R6R{Zq`dKv<$`*c(e?Sq@6Se6eyF; z-2HDl+mM($zf;kR3YE#t+^dfniS^d7fOj(O1c{J{>pZwk%mTCFd4Ry)hUj@r#MO~A zcyU5&Bi|-F=6Bsss_qe=?)oH_aN)rC%4T4Mu~XmjlJV(?T?g}aU`3@FhHN3hV&qtptn0crniHPiKJW^aU!NzE_dDDakGZ~$YxvfY8=FB z-@pg7Q9y5f1)>I&^!6@+0|nh;*RDRIv{(OmOmE-UvJKM`A6z40PhPh;&e8odVAm-o zvzf5q>vsyV0lVFEoel17O^_i}rThGduYxkdhGvy%*DD6#fEqI$i)hE_w<5 zB%pVTNE$lDbqGEH>o2qvt2$UgQ>9ttfT@cu%9x}D#9Mm1Kl`rxuw}8d%8RQHS$Toc zk!f`LL>0C{IS60}F8GKY^kFe8;z<4w%tLA&+Y2)0!i^KuV8aHTt7S&>4>T-D^<2cuVvS_VL3=8Q#a+tv<#f z3>1b>9AL||)|Kii6Pp)H+Q_o{eY3#yAov_vgByUbsQ`;|wvzzU$3$=%2Exg%Bv;C< z#xMGY^swRBer+{;xl7+3JER)U&P%$Hl|_?NQFOU0c^nnwb%{@b->!q`*1S%T9h=y9 z>^gV`C!(yyglMBnE_Z^*TZ=i#h&blQA7qPbk%fBnmHUQsb>7Rn4o3HzjVUq1 zC9prY^-7eRAOH2)g?#M+cQz~FaydnjE-}NA9FOc^J;jA@kp??hc|33Xt`D$+3NBkt_7M=N z*6#zFIC*>b!ZW&e<+;08Z6H9&qmRj~a6Vc+-QFw!rW zfM>Qw;9io1YuCrD;3`z`MHYV+_&CySQ&lCuM6n!fO&)!TbI_(;ALhM$R$cAQKSObg z#=QL;>_kogm3Qy@*rswnl)BAT4VKQ`2SSO{wnhib596x-G$slT4!SAzLY?u{Bum|J zfA4VQNbJ4OqHc#Jvjb@emIy%I^4@DgSVRaBSF#_QIco%I0fn{iKwGUD0I6v!E;XJ3Fm;$m`t6i`ud*e4&(+HRl8~K-FZaIaLx$4n3Hh z2X;zJ4d%@DSkjf28VJZ4W63*!ozDJUW>*?`c=q8MSnN)Y7*>F4-Wsch7dQj{gTv4X zDfqDuluA=2fUwf=IY)^7?&PnBRv7(dr zax3&?cj;vBq8T#7=*%=gg~@K*!}N}7+DnkNoF44?5uM4eSYQ*U>MR6M(?L7xkR1iy zTnLD)Vb4&M+FFmOtwRNO5bMGF^p!u>vM;f~04uB*v~y%pYr=Rez<-&fgMKegwwTVn z<_7N7gGE(jyRD~<#!D`;1t8c3IQmr|45*DX!M=ZnJq~7vT@yT03yq^u7{FC|dV7m6 zAb&Z#wenK59(U!P7rqOZYN=Fgt;5Y)%rVQr74I-hRmQ2|)SkG6GT+b^tDC10rSOjo3TbH}Hn^MjdFbcs=%hmUc*c!>qqBQ>ixCaB{WZm^X6esKHLrrR|Ix2jFb!F?V3;t1E7eT3i0aet8>km|odi#wd z^wt|-&*7vy%0-KZId!Z1#%qG)An1I@r=kC3@~#hbeh z!#*$hSWQ2Yn0{b~hj|CC_|C()&bOM7_k8Iht9y_$HW42Hk`W$7VqTk8ivIV3kwj##-bxLxs(Pa z2!Z^&-T}UOyEs4|fkF8`Nw*WU2iEgIfw7?b{Lg=DQQ$4i7eIm2s_x^U0GxDY6Y9o! z*515hph21fik{ndeF!n|fTD!f=+w61PR*Z=z?{gVxAG*u%$@(1nr`-rk0J7XyzPr~ zyH5cc+bPUN1brHy4?u}vBKM}qwQOH%0AN3yxS8+mDl%;m1*8@QJHrk3y#x=)nJD-l>Hzlna=ecM9ubfOt~T z8K8KZm&cZqGnjAsB{_Pl2H+AK&ECY#g?m6lH1y;dG`!oQ;iq|TSq*(dc*GHix)+=Y zEkeksZM#KDvuLKwf68}1v`M2Abi#4E8IBfw_T=~ICG=f4y9Js-ZJubn)6!S+TCT}@ zz{Uf+5=5X&Apn~TYRqR=uxVgX(0Z?h!dv26D0kvO=>koN!$IJH$^R6WS#~S0@<+v} z%-ga*d>txA`MZ7r=V)oQchNn#C(@eTR=cs8af(ZSE%u3;(Zt2I$p+}rG=>&_JYMJD zOf^nws*c=s(5%eJ7`QNbo<*|2t9G3wBpR_=E>i8URm*`85L2>$p?s>5Hp>5-~X2Rhl51mij_C<%(y`^`7N@Kp(zD2fiV-mvQj-rNjBK=;53zXPdbf) ztU9cRHk@L)MR&*>97H+IaqO;PD5tSt9apE})UnfFwDBWuUrXaw=SpUyk!h^5&M0v| z?L6R{#_Pjs)go)tzryQt2ib?-t#*n81lq7q znb`VedN80STo@H+VZO?V5cOfFJs%VoicdMe3{K*`9+Rw`|Ocz zVFiXIHi52$JpclmXqLt~ECgy6b)W^w*~$xN0Wb1<;If$;rmVdw)E5{H_mMF62=`hZ zw>H-kBfv3l&aXb%@7m(E(z+IX)#OxcF@icF;cPFlp`U$K|iT|V*-Ji8d?vvK_~=sCfe_|E638$mRg2pJt0lf>#= z4t4&Yao7{Aj<`Vbn?%zZj(%hfM?jMe(_h1=6;z!`cPmJrY$g?~CXEM~b7c-v*eq1V z-bNJK$wuN$-^Msqo`r!2j%O&U5QRdbFw>R%7C_>iyp#Bv6{ngVO#T*#opU{)44^D| z#^s>@Sf2lbEQ9+A(}v6?<}_>V)i~L-+K-WN6Fln2@iFnzc?htU&Vg4-GGdhcqLXw&4o%p#J;#b2b zoFO^ALKoY`5?7Mn-$P%K7>Og-p})Y~m*9SPy?6^W$D z2cUs?iQf^#Xizn}5AhV{+AL0h~2w7~v?##H+Y8rPli z1&z`Cf`(f;=x(*nXAXWp;}fgC!fopN857m_Gj^Z#{fsBA?`PbONk!iyR(_suL0`IR zu&8&|W`jgO)*~U5UE!iQqyy<8*DS1UC8iFN6egT9bJk8Ox9v zpPjwFiH^f67{2`xay?7rU};o#c5VJ4f|fmxbl#g2@dA=79#V)3S~|1|aU0%Q`cZA* za%C*eVa3hYJQPNi%}X^cGSIv<<8mxI!F_bb_dwF;6M^6P@TYil7H2mv&3q`#^ME)n z*}T-LMgG>jH0$!n$Cv?Xdi%{dC$(^d-o7*kmx#vR_2lf++rJX~z!m!trYw?SsNCqv zIUrun*|Xw<)OEOp=R^J)?`pVN9cv!Fhm3dBS1KMp8uNsI8B1oB!v0^>hVyrq<50mj zp+B%$)Vk126hO%az+9J*!9}s<6y_dY95KBG4=aK@&F%H<^nMDQO92Jyd1(8~=(gz2 zcon+?7d0pz&|9jgrWclBJ3KF~SjCyU-aZ!XyGh+)gLduJ+rON%7k7xqfjcytulExp zjQym>hiE-sF*f>JXXNtcl-MUu<3p_#nB#t%)){$73NTLq+h_clqAI_2#^w5I19ga# zm;~~=LZ8`m3I<+_geo&q+4`#8K&bhy%!lwn7C3XT-r*#0g3mKSIWr!n#=pV|W?7rckH=Zj4Xs$jO!NXEm)ZM{xUW;*2)e-&| zGg=1pK#qJ+hNpjCMKZ?0YLITquC2`%D z%|QkyPCFuR0Ky>APYe+~xe9s`Y19jf-VMXjevGu{yPUWbsz8OZF4v>HcLiJq{<$d| z{^XplxhvjHT{lJXNA1GYt?s$N8O~NuI_6c9$AS< zQB}++p3EjHg(`}N>zu5LQJ1Qy(C~uiA&LlB>d{@uC9BGy;?>=6#`0qOGb|Y*>csdZ ztAb2Z*DfvRwx#GyPzcl`cyRBSVeN3A)sEj36Tbz+YrY>*fEVpSX|pO*d<<#^WYq%J z@iIv?j10FS?=#S%*fk&Vwyt4E!|;V<1|oZt58IjPbz&=vSy!xYFLW?(;293*YgU~t zqo|Rq@Z~`G-GW${Ma{#r9lhE@Z3?;p^%$p}k%P#)dw8CmcAing^1vzzs?Y73Rr4Tl zLk(aBiAPZaq7W3vkS`#r8ir*^7)UJKhUQIbt-aO_3&Kb_BL{HWOl2OP^QLspQOM~@ z=Y(|=RJ;6`HO&H-T9n{{2(@*O)EQ~T{c;Rsmhn^$hzDYU#Od!k?FG)*u6NAx)U(to zz&$9U#b~DK3{mkcqbn$auhi<%8T5hR(i{#0)x)~~d}JAp$U5N6p;A;n5lDaZbP&tN zp+t`|`dE?z!0mggN9O`BTVE#*;eN$w0_WG#2ga6qq@| zIz5X60`f0FkJOn)GjijMNG107zfCt$2;5n#>`siLJZA3}Fo`t#6cLaUXGa45><%P1qQN1fgRZ4on_^i-7Ntmw8k}7G#8hi3voPV_HK2}BEfb$x zFF?Q|4T_Uc0ka~6H4K|d%W$fIL{Vh2D1(l5qp#~oG~hxv7Ny+@22oVvIc8D`>g|!3 zS@tT^L8lY?(>RK$2(&C%ZI;my>o}WE{|Q0JISo4Diq5jg3eYJ4y?}7Xp$vS1OT6v^ zf=C02Xlsg7Km?rFiF;{DE6mtxGEDatg5LGMIKJy(4yXqj1aff4)Iaqzno*6gp=z9Z z^Z*np%7HA%)|!dnJO&$ED^8P%@IFUuP+LH8t+m*|4WNY`E8hJ*e9qX12&#kSIM0TD zZ8g-EQ1sDx*jJ*j?d;=HZ87%!aQhGsw)_Dj1)^qkD@LE!9Xfp`!~YD}u}Hj`HS#as z%o_RE-Aw3dd61hqO5t?s_hc(29Jh#I0Ty-2X5NRdw?9J3G@Y$_`+bxq^WK|6U_g9& zrh`Cg;lg*h>N3D9>@eAYW1i4)YdcnKr9QEIk_uC7jldJArX0#WfrFf&T(txDOo{H~ z7z~PM#*76$Z8e4YWHKKuE=Y9Hto1#KJW;2T)XD7Wwi~Q>v+z-K<+|~EqF$HT%TrpvArd;P07~Br805hq}w}E~lrIOvx_yOW*rxsTU zgg115cjP*JJ2Ucqu>)9s@b|bH4N3Qs{)I=h&ZDu6a1K&B@yX2c(@>A$%z zp}r8`UE#)L{ro4sYTZvilsTEv_q(}moc}`-0zh{Z5iFy4;@#j4Xtx4C28Q`Btob2@ zhuaQ{P;4SB$D8EsPTZ=?vxJ~-wxbf^8 z)`grrYnmU#eW2#^nVbkEKHSOb@f~eslm^UJ3gs2D2;JrkarYZ6jW#J2>Gf9Eu>6^ z)Zc-WLW0c`s(Jdo`G6|b(xf_yhuy!v#LMG{SPU*y>qC{8(%6)K@DV^A&|8!Zn&u0? zn)WM&A+fmAIu!@ zWg(2_sZp~~2&ag^SXV*jy(AtM5A{up^6}~hooIupZ8}WS`Uw_=Q=>xa${1@i$XWg# zAWI1d(l&ajqA`S;^^?CwvJGW_Y;8 zzlzJ?LmUyWQk0EXQ9lA*i)?La{}B3@I<8FC&5?}@zV4=yv|%~4x!V)|NuIGKvsf-7z*`ZS{OCZqQPbW=ILwvM%ez7fcd3y5C^EjcfP_O?!xV|?_k z^Wn=~BUp?ak$3}*kqyQ-IHF38qZ#O?axyX%$q7x$_js^I__ubR! zfuNHGwhzB0-XMP*#!-<&{017>s40YxpY{Q2zW5wCSN5H!#yjE$Sk54}E%(EQ@6r+* zF6%s)^gy;o2q8 z6L&Ab|C@^JRY-tBvQFWn9TIh6>uz_f3NsO_(T!n!&9_l4F5yPk7lAU4J`d80w70D5 zDm=s~Y~>#V>w<%rY^G)xV6o9|ak%Ia-Gsx;ns;qL*ID*6A_~})JrO$!RbkM$fW0sedv4||O_)RxMh9I``Ru36#4MtbBw^3WIKUgq z{b3eJmrn|D6I)mX|C54pPO`%wsi~o^X-4MS#>}m?xO-_TM<9_yzuLe8<9e#nS^f>N zEsYRlL1ccLoqo_GeSrhD2)CGd9Ocf!i!SFS5Sd8+nID>7S^NnsUO=+=Q+^vk(J*ya z8+iYlw+1p7Hq>1>qf_o?8i20~ht5FsukH)^zY-WwXI__x{N?p`9~LezztVlqzG%^s zX%1!PSEgP>`C231fMVT=T!6n`+QqpZTsBGub6W)oM`P zrv@fzd@l^+Y4iyV4T`@augB9?w8!%L^Uyk0!Ru9)n!Kjr=>{qQ1mU%o<&W)2<}+=X zD;DGGry( zoz(p&nHjY}Sj?pFC2Qv1`}B9k{rojI!Frlmb?EB?uoB~+{4G?K-Sq(J-ZgSc6ZNiH z1kmN)U0Ra~&BMR?n#HtoJt`Bi@d_~@a@JZ7rE%5r}L$9N0R)Vug-2m9?zBnp(;U;%f}}-gt-)FTj{pP4 z*78GQMF0XgmDGwlyTM-^dcbkIZ$RXRbaBAxbYIJn42{MxUrk*`m=1`fW~5dHGoK6A z49~y$$bbIhxo2@zYPa*R>o;xRpN(~tx_GlG$y|H{^-IJJ-+8MZ%$7hROtl!w!Yvfo zlQ~WTqnc8$u}j|Os=$+!&W1_Uu|PR@?Lpc!018>Cl6^a$rt-|Ci`=G$OjCv1)R<|C zxlPS-OVQMlX{vOaS~GZnXllzeRl7~?60e))xVxw0dm}qoikU#uT;8bFkZ7lk*1}~* z^nM67112yrC%Q7fKmv+c|B1!lRWx;YnzMX2!UNw(?=eu9R1(HLFJF+s{hWm2ddkiy zAc7v_jbmkM+XY@@meC9%t#Mfj+&jx3rlP=BFdLPrSV`uFa`!UC*W{$k4dJ>QA{`N4 zk&`TaF~gXz1(wvIhR%V30nNwv(kS}A%oHzpr_&qpE*hlI=rx^XUBV_F6jH0SXK6Pr zf4ZZ>#)#u zN0m^C$697`_ckzRu69hu`_uS*IqX%q=^N z&4M~`V2#;JcE=5m{Y=p9jvGGfM=Uj8j8(hS-LG!U=HY-K->sRMM~u_pcF4Nj&|h4} z+u%{SWE|M^Y#5}vG|hTJc~_f@Pm}eoW?Z|={VlEx9Kn^`Tl>imJUcWo?lajzL2D+s z)eUaRKSwO`0oF}r@p+&$UOU3}j%Mm{5kXg6y=C6vq!%n4RYJE?voWq70u=1Pag*ryb zg+Qp%9kBCO!@4&gSRdGJczH@=6azL*+jg8R2GdN`Zx-x(GnZDoPv-X(wVq_wQ&q$F zm}Mz{C;8sf+{8jlbMp&9FUs63^_pRG&a!TeB)tTqt>6HSmiYNxR1SFOI}cID5(O(8 z$RwkjT(`Q{Gc9M95}ZqAMlrEz8<$IR0cI+4gCrxL=NUFJnn#>XV``A8VX`rUEI@&r zUf+Y7gmhD<#_*_C5c0T>F+bX;@h+e9@I~^RDn~cCi0&n?uvX`U%O1H;y{vyh<*nA3%bU@&ZK2YK5K6kH)53yHt*oasX% zeg-t{6rFM1sMdi@=r|E7!U%s(Z@_CE1cmMFXTdWEYc8OGj~T*;x=9d7<{C(5Mw6!@ zw0t34*Qy0@E?L3IufVk=p;Ck@5%!4NuVlv<3tCJ@p}p;n6!N_t_= zS^`uTEdv5{E%;3635zH$57%7|LqA~UI@D{QFYRwAH=sOhF)72sm1gamxDw=wxn;LS zh&nAlW#m0!B)zz^>TqYS(VQ%tE)Oi~{!(Nkxz5+VLxSwYQ4&Sfg75ed7G<=3mOL)4Tz zV0sT3HI(+x@@v~nMlF%1rfzCNMBo#LlUvA+X571Y$ZHojilQ7x@ww?$wfO^bdW~g) z)Zij#*}o}gZc%=N8i0(w%#g&>ZE_RUUg{UZtm|t6^m6Gx>Qy##tp+E~wqG#hJE2$1 zj1M=+z?f;8|2wdk8U*l?;tFYyi904?g4L3huxCG*&5zd#!2;RS$NK2>yrT0F1eRUG zy4~9#n;Wn0=h0y4@MLvlsqKZP|w$My;m?q0`lLrP>f( zw;2V2KZBt1Q0_l4U&ud%e2|&w%QZ`lTmws&Py=Gxot`=&P36%68$7hw2)%<4F?79Y zD6re7>AW5?2T6uBK+`k%e*sA*Vnz{fn-DBU<$|58!%3aDItG&47UuIOqpG6h?v zD;M=ofWwx!P*D>Oq1~p6OjEPl6w5TVxJ~g)Q>)ulnQ3Zso2oKR?QTo!>gIm?ygPVV3FK6%gr__lK%!d3=ngDAX@XwKpy)St54+-9srsP zbTMktaZ8ogRL*CG*R+Tq23D_hfh=Q^W7ssL=$vlNkd|65DG5U=?pS{?PHxdw5VP%r zFh7yYzmaQ2zkKQOh?QFruX#QDcm2?h;wdd)X?>DX15Eo5rPo7G*+PSzMxnp|jaL`#^MZ?-E+}CGrR`hwb z|G~m1RBFd9|2UPU16memn90E>sc3~lHS4VB2P^DVy1WB_VZ@BUX7H1f4pIGIEZOsO zL9_KRIG`$Xh=hGf7S!@W`ZSlb7GTURIY&4%XDYQ$_e@hVl6|!lKtX$bCg7IBA?(=K zdY=ylp15v>(;MP?4QpHJMZ@XlvbwFw9bWK142&Hp1=rjz^+_!&+-AF1Aw`3y!Q7?PAS7K$4s45;FIUA)iwyLQkoNL>2?Aq` zKA_UL-Y_VxkG2l;tPj^y*e~BL_VO!6dYElDyTn`Pxpzyy)p1LIld%aikK4|JMD-@X zJXgX~mD!f|H!V~{I#%8*#>K45UGwVbX(4^1yTxzRZCd0tEjHv&58s|@XX52F+^^>h z^iJHpwwl<11<nuVHLgb!Y{OvlT-jq&xz_V1s;vxt+X)Cxl$0nl7!D z$b3F6--dr%P;>zm5i}>`<;m7ck%z$&wcUr{Ah4fePS^!Jt{v} zWiqutn#;bJ_oB!_WV<>7d@=L5F*a#LgVQa}j~n9`)I5(pfHb}2L9lCpfi(c@!}pX_ z|K0b$oScm5_yy?NKjmDwp>C7YvK5+44US9xo_vzM4beLf9)Q@hL(`aB!Q2YYpqMMb z)ST-+lW;{mdw5zQuR--165Ddm>9A@)!A7V1Ho*jnZswO2xLJC-zfzct6rH1fky9dW zGr#4GKjv#xCL0QEHO)B)zh-6Sw@M|*t@~DNM}B9z!%!_o7+Z|65WPEj8UZ641_n(p zokpEOiYpirqf5DtDfZ~iG!KDG?-R*xD-Q!Nn z23f@nCihD14x6k9vSZUO?B{6Z5O0zGl;xEcdhp;X^fqc7_-*!o z+w|+7uQduCZ+*mYx48=EY`9tB-`jAT!ZDU}sTMSw%-OirKgRmaN&Ubti@nhJJ7&(jxyYX7&m<_v@)j#iViHzotbQV`vjQ#XR7kYtLIG881{&)d{&4_qhL>K3~!8LA&R&~LBqpR zN2lGAA0r*+;XH2mTuGpe!7^;P+s zfc?4^siO^@|2R@@=RbKfcW0`4>OmcT{+s#Hq(ft7Mor}dk9om!Oj}DY)!IfH<|3FL zG$L*BNaW?<;uI*tJ*xhK|GJ#p@-Ih{Z+nfO3goY}7^_(F=yd8f4iEz{Esz48%yg(CC`6glGQvrTZ6=M6Sc~?8mS$>k8*F_W3{)U)F3a90L@qrJl=*o&1 zxsl%*WD;`V@mLUsp*h>YyWgtp;mb>%-p`d>C*}LC>miOPjyN=^IIwZ6DYt1?=Hj3i z{L4db#w`!VO?FO=$b?)uCXK@-;V+w7uempeTnVed4>8gQMvWhnui z6Ib@nw%&=aC>ORs0$r0vV~$Sc=X4RLjWEO3?ku0k7JyhY&%+;vA|yeGcieS9g$T8~ zcm33c+FWyNMO?Fc*UyPFY$qSm0GacTnswb6M`V%EtMi+wmoc=$B-FNKGCbe1rnr)p||0~WC0(FmjUk|tu=W|b5Ryv?m=zg5jJ2Tjq8`s@exE^O9wfFZfqrjWZB3drUg`tDC;4R~peCnKz z@u}6#SFb`|yeQb0AJ@GuxeFlMJZK{2CeRlzx44Kho?Xa+{No!fJE-afSar z*obWQ+zqFZcV+ zcAfoiKKv&S5_CbPqETf?`L?8~M}EmyS+XxPdl7C~f1UY-W*jDJ*JkXDYvs0QN%AL| z){uU`k6#x3{_VJGrg6>2ftmt;Y#wy`m(;-%Zx(N8K4QYgzQ7r$DQ~{Tb=d~hZBIU( znLUp;XDq~qdS)BAL{s`au$_St#ph1>fT5<@k>uoly|;@UwrW{D%2>0wUtfR}y@V|O zBWLP(f8DLRb6^em9B->qzaunhjr_I_k!29jG|#)$JYnYDx(J!KK6C5!=IRLw1#A@d zQ30p83rT4%RQ>2Z)bV{1qNE=<%=w6Xrq3WtHDH&!kKMkQ!K|v;IOcGE$^B{>Jg^7seOcS}xPfNX0{n|ZqJLiH?8+p*Egc(`7r4nF z`IXeF5DV;f_e;go%4hx4$}3Ph>r_H#ySU)!h(~njabvkxt8?BsaExg}o8<~4wrqL@ z%d)dqdcnWPyB!CW=xzg>diGnTz!#&*lX>l~dSl(Us6P*xIuD~vp?2rt?5B0Ai%4?E zmDJuqWR!J`Yr3E=kPb^4C6x7#1Qe?r7J?XS+9HQ4m})K!C6B&|Dxp7)F`i8bH^o^)h&p(B=&K%FyIA0 zLDVN@S-Qm^`o(!W+{u?Iz)-Vblm`ZK4{b$C34Q|7qms_2ti7*n1*lz<&{_5sNyz?0 z#HLkWFd-)6B{99Uc8lz5PIC`!;#o`$eEFtBf%Wq%?h;?6SYa~e-zRa%u3s+8Tyv?B zva2%fm>pN=)rc9&{9K5ypx4e%LKNbBBPYeW(W*zhONK@();~ivUI&WxAr$M)6!or2 z=k->Q6ywW`5uTYa*O&IsE(e*+p|^o5A`l)6pl=STOj-(fMW5}p zsMOK87DeF2ZI^lP8pvU&aY6qU&=+7v$@~_&Vv^)dF{nCze;*B9NE1%)$LH@4@E@sj z9?%`AijFhbU#x`OE*eJJk$ozJne_u@>E_{N9>==}Wo)C%<}qj45zY9lSM|UOUeV14 z>+;D140sG9*}4H|+3OM-d&3_|hby(6cpO#tq#IeZkla>=(}i@?%=OhhJATCsDsj61lf3zV z=TFU!{8ScK_n8#~ulR&iuy2-eyYzeh^%kdFZ>Vv_<&wFComFme%{iE{CUsQ|MMy5m6>4AoZsmpMAK(sGiG9e+3QgJQ)6ducAh$y>rs z3S@2$A!}u3S901QzTT}J0akFlUnINSkbxI{n4S@W;vQ$Cj%9Yag;*V_)alUbIsSW6 znbUX@`SPcY;Qeyu#yKdJdj4L`%nI`=SL?ylp|V>ifQV~h$`@26yLn8Bmcr)F+j z#ErO-fGM7oS6{`LLgfY7vka^q6(8uQ7CC?e@ulqX5VzXra zfOS~}*hXkz1W-%Av%}OdBQtxhu`{aY%^vsZ>>Fhepwx2>nc4Hyn5H+Mjo3T7&p1DQ zvMkkiDi6vB2B&Oye!7zVVkxLGa}qw8yAs8W)JfW~0YjtL+Qz)7cT=jzO&L35$djZ7 z=8V>6y@L`{6&QpPJ;OW)M8g#tQhv?KN}jMLMs9-C2(yjZw)_F)e`Csnh^%k)W z6@uU&Ny%-dbl$vFXC|F6=B0#Q4d)X`7n+88*nIkt4PQk5E-?EF1iZ}x$ql^xMvNww3pTGd!}75a&qzF%Yd zCH>MIqhB&=SZWQ0`yckY(roN?iq zzK)Z;O9mgBfbHqs4HCe2hEuD;si6ss#3JXeO0f;ft!a#ZGB9wK2R=p;yHV zOVx@T4eZy8{hN{dum#v0qW%mlI=zB1u?Q2UVCx*RjiQi}L^;ZJCIT zT$7tP0roS2(rxaAqT~BbA*Xv9{Eygn@+wN(jr=EB{?t9bk*NqZD8z50|J$tJ{OO{X zp|V?Jl4`h`+kJ@TkFA=4hnG+W_%ycY7NtGL)tLpq$6R9^Mcm)C^pZP#kKrvnQBVsN z-ttpR+CH&B-u(=q$lDT2e`5Key-Au$S@tsP!3?Cv8O~kJpw%bBPZKoMng6K{(dpV~Knfk||Blfb6+7y8 zgtLr)CB?vV6@(4d+{1L`8m9s7Vt)=^7WBy)w7zW63N<5hS5Ll0R|~3BxiB7c?oI*< zpH-s0t2H>dz1!p59We8fYE!FZ>fZq-7N-s}CKuZL%@F4Mv2zzemvl^}-o*h(O`jaE zaON-p@?Wgekaa|*h9)|9{Q~Oqph&9HnL``DdU4X+%g}nf=s)Z#_$p0PUwui3#LEUY z4{c7*Q$+IB$QLFLead24I#c@hB2PPA3|9sYk*bFvx9?}u%iZ>H{@2Rllj!Zhk=JIA z8Sx?Xi$Z^X3Xxh3en&h^+gy@;j$=by5O>(#=j8(q7bVVJui5rA1^ujkm(;be-?dO~ zt$*q`m2&y%pbgaKAK*j!5AH+ySI{2kM&$l%;J1}jm;91{{qk$>790fTOZTrT-S;n} zuV22ZyU`O$yqWS%tkz~q5D0lQMXNy%cRqVv*5e%X6rsYB++Osaslv;{-wyoyhiwZu zm+JT-Vw``gbD(sMeuA-gECGcdCAjksD7Vr#YIS;a z#*o+5FCX3$!}3jFv2bYRQAbbmyFP($Ba%q|x75Hov>qUU0LQo;cW9Ekk3k}$3p?&F zG0ISCMecO8zzAx(%en7gU=XI9JjUt*zi!vep|1-__-}Gh{CbfUQ45LMY=a$OqC9t_ zm_uLk6u*v91ZRW(7D62@?7!fCA!LEd(RZsG{K@^1(RZtpVWf*>skuyj?W&O(`AVRJ zs~IET+^Am5#Q!&GFa~-r%b;Wdwg|lmLASc#79p-2@NoyoSNQ6DzmRX|)4S$3v}23h z%fq3PZ0M|AP)5BmAd@ZV1~!~ZLOvQe-*@peCvmGd(ezbkBWqhT_ zY-U_rV06`tbt4=(lzW7|KXpxGKQHr}kUO5Kpv5xmmYKm!t**WLnpON&-8%L#u>-lH ze-HUL7{g)JcZ)^CY0Gn45m&$@kCcsIlDS|OJo5~UY(?jI_CQ>V-dvF$Sd8Z`VAg7u z0kdY8rX4{o0CQQI%`BWiyk?yrKaY5Qx)WH{a_-*T5!=I$l1*qO+f+XYd!V6U?hx=% zwl_pt( zt16)p&|=6rcM5l$Y1WLL+P32hCmncpgt@|O*A5IQ^6&lg>7ryr(wzgZjqz;pH~615 z{(1hbKi>$g)1Q&5aK2MdoS)&t`7iK+e;Px38U~ah;53pw976HkF~Pj>a`h^xu1vwaK8oPr;2z1Rtdt!G~DGt+p_zO3wX|Y9u`9MKqXX z)G$N$z`lR+Zo}Hh8r;=uCRHMCM03BxHk9_~cy=pdIROUO|4sjJW`es5zX6Q1Db$jY z8_!l9l4=XD{lFx%F%pNHCS2s+*0hkfJEoSrZHCwiWlUCvITeNz9dX7TmR zB?3N*(F8vc>CE70w@gaSi${j|Q!ck#k!)^ScVF@v2CCd$Z$CcYv##@Vq;XfU^Frkb ztfeF_yzxg-vG`oBphWAQS^QC@xRD?q8_*uf2J zIIBGV@hgs8$*%-Ibvl@KK+Uw=ux?_BXd`#SoBeThrQaa0f+Nd zRf1R7AbwbG%ACO!(Ba{sTX&h?l3R5CQ{ldl-9h<|c6YF5;{n{$ZE|059$eq`nyR5> z*Gf*sOS0R`CvJCod6b5O=A6^}Jl96L9y2LB%Ey`C*FxDGnd~i^&mXDVlU!!z=={ex z<|rBX2gyGM-VPYF^r;Jgdw=J}HR}c@uL(MOI~XWYd(An?zpL8uCNuvJP-G12lgeKS zAVA#5As7d6o4Zz-W(UgC6^<#JTy5K1W!l?PXfO4qr2jZg(oOIB;m%w5j9DEplL&9i zN$xF}DF^yufkRMzQ-&QA{;8baNnHnZ%Goh}{<^LuQi9-oWlMJ8^fVXd+PNNY!UTG` zX8Yh1+5GA0=2C7}$^>U`vX48vW!O2Ujt(d9Nv#eV_^?02BHIM|I`s>JU8OPM&6c?KA$tQq#IdT4~>kxsm}7D@K`HbxV1L@0a#rh>;6yWdctQY(u)gt_}hM&vvCtM!+ytJf^1%of2}_9UGosw&V2M~En-`SN2M zTS*I%fK0MN8gH!m`!Gyv9dcj5xh1|^^X_xJUY2^pnZItz6x5@y2PY1t=fulg=y0F& z;GXQxh`XGRJN+t2M5$si<61^XSuuUuP|TVqbFiF$5x<2Dv_ws)%(I*u-pyPo05t6eztGnylx*x-t1|v2we7 zS$`dwQ%e?p|I5ayeBH{9ByW)P^^cQdl_f9mO#C?2QvISrm4xm$p=v@awkfWbP{T_K z)hpG6zPYsQO{>-;l$qF;TT8Yo($h+{}b@0ZHuPsRa z6BGW>{2RaaS*DEp*uW3EUZ$4vu7moU%+{=P0_#)T#-|3yTa&(lK6K^(EdPQ(b5}|x zeZ@%~8lSw^UHKt6S_wDUvx98MIY$t$NiRWhT=#g#b<9_)NbW#ixB#LPKXumvO#ViF znPGMDI5AaGS1alkp)v>%oTnNwto!34R@}QUGge*e%#o7wzqxjq8>dnqBH7?4|2{%? zJ#*JUfjVFdvXqCMN3Y=2Bf>$v^XMf*&ZC{2Idj6B9xx=QpgOTiTB=Az=;QXVex#vxDMD22V zKcZ$|@+!{H9xe+E99Si*8TW;b2?sWDBf))vX=9mz)BE*6`pis4Jn+OH$(gB&^8}Ed zA4oju=CcRO0#EqWZYfl|C4CW$>!Py6P`xF z(jPu{lu8>GUotn~pNfRIH5PW5~zH0oLaNN)EsjX__3gALG6gOM%8a z6OLP$N8l*d?L&L^@u6*w9h>n3Cj$5EVot#Q;JbkPf#ZR@s3G0_L4ljt!rfxvt(`ok zm&cS@^ck;~S9RWri-uz}&g8Y}XOEZjGsT=v@4{KrQAZSzC(_;LQ{#*2=9y$Pbp9f% z1en$0&2;TuG&kKoi&Z5!ojWD(1}}4C(U*OAgJXJ?Zk}6&LJOMUF6^E*y+} zZXZnk1{p%?EuLKw-`%w&vv4qT{acvIdRLWsZReIG-VSV;-hRZZg$)Drb?&W8yxQrB z0m85)&PEw6F26GK>7TN^AlI=u=h=*xyk8i1;d>Is zUmY()pt=qqJhhGAhA=uc9Yr2v8Hyy|Ol4zOI=x`(Df+WCy_bA1ahwvZFFC!FAGd&R4`IJ*lE)t~n|&MfujoJ8>J#Q!0?vot$U>OHW8A@EwJlydMSg!M*o zfEaUYGbEsfQ_}5^nuNbH^YZ;AnYYadY?aevM_7m3<-!cd|TkxvS9{@$6bbFZ>?JPq6 z6|cpiH}vkCChnl=Q1h3;2i$oSFF9s^5@Y;$<)j@txt=j>o~ChRWd(52@WNNwjKHs& zUpBp5gg*NHQs0NXn*tlOlZe7S8Ba5U^1&KK#y1J&>DJGrO*EmIbP5y%9xoJ=_Xws5 z8fsvsUnFYSypE6C(mZ2B8d2eNYZ(lMrSJ-`zw4ZL9b59xfsYx$U5wJ-=VGfn(y1C?3I z^QnwA&yrZoa6~JQ+xa8q7eFn7u5b?O^P|9F7AUrEUKLL^?A>rU&7(8g83s2TrblJ< za64vqDUqbLH$d^;oH~tD(7+$?T23|-UemqIYf0LV&sZo}R2gAdhatOJsnsFNrY$`F zcnKacrS_K$y^GUo_!eHk5c>S-3{7aB+TI{5t!RcF<|r};TMM@Z^eAH#g@nlhExgecK#;O<$aI9L5P~2DcOPC`V4+^y$Am~R#^$f4o1v&L7pdOY zmq~wx!UthbYO|PkbA#0gIlWbZ)b>T}-U8cwiRYPu$nXrBXtQYf%V#M0BnB;kgLV6o zD~l_b|`V zw}z8%_+a_)ka|LR+}51i`X*4l%4WZaAMI*Sgq$G2_KGV zd{g+=`grj+BVT4}yeP)0J_bLY`Bu=qDVWTwjFB&{sM&aI{@_%0ab1T@535yRVKDQp z5YG*BL&RMePX3<4#q~z=iB8B_BcL7bv~k9G?{4qWxx@vGiq2k;vWm&mY4HPB2bxrg0>hUsxTOoDF|_9wX)iGB+LyVU6By#CnwM8JW^ z?fVnEsPQ^Y$3m5Vq(0N1jb3m{aSZ!Q)D!L=+Mkg93F{~M+&kV&EcDMz*JJt@QU8LY z=LG#b;e4?Bo8#42=pU0LN&iOIxZ;o1cU<|N*^fKJcbD%&Cz9{qxnEeqxct%jf+wm^ z6duZ)dq0~Hn1MMjHN2*=BmgNARWUG`n>sPnuE9XZZ7fl&`dUR>kqJVHL+(onERw6v zcY5nj^Xeb0tB)^UpZVy|Wo!9#;w7*CjUG82n_ z!+B)!r=iX0)QriTIEdDlPlS5|N+Z9@I&K7M}V{9oj(|gSkR}xO=u%u8Du(_UH#_v>jZRR9l2qU~h3C`5QQ!=Oes4VrO ze}gN~C_YD-G)B8&(-KdB=reKuQ12`q)KI)%C8kTQ5}jUE(JmvJ*lJ5sY^p8x&niaBbcP*2GN#^<)TK%Ve!*!=EM83A4bIZgNO5gK1=S=sabp{JrXXAdU9*8(SU5p-Ms>_Y|xB9Zi(pQ>i-fyPk_QWAC z`UTsF^GLAFLKs-@gD1Fx1t`^k55a6q3lr;2i{nQ%cM1&*EVuJV=OZ(GI*1gx2Q(pi zpf@+tiEEB9_D9Vv6=uwM z+^%r4gR-2)GuXxpvWF(5uQ>`)hAhcQ-CI!xomg%ez>{yqRIVTU_$yic$NSlPqfrmeGJE>Ft5Mf&2t?6G%fbKAj#zH)>`()yP1Hq?*S+=u?q<5yzR3NOrEX^Z|u%W^D6~a4=-F$Y?HRI9PP5VIc)B zmUsq4V|E^}oGe{&vQL|bMMO;B^Mp?z3#Y^9TS85+wThmT7RINM(3TFK#eGln$|!e} zFSp!m1_!;>h#s|2&bfv_?K?RImPY8RBm|YuLi)v$is5mLp)=eL>`TS8=~! z`CBam-U@$fhV*zy#gbH;Pn%LMv>MtB#w}^;M7`Azp}cgqlE2)LX4of9+(gJqzY=+y zoKk)Vp~lt`YGj{1h8kr^V7C5oC{D@)xRo*(3j7$~Xt7NAoIkRbGQ1&Y>4$x4j2*L< zwmVDB6Csuw*DXBuLyx5T z^cXMFBXK@GLYbE%aML=WiwTX;<7irR9vN9tFW|oU0^R|QoWp&f z{Btmn|EC&QM&0?p)YQioa?ny;;M0;8I);hVJ47@n*1^;f2aPVD4&cHms@;sIXogRw-jZP7KtB5CW-hmNx5gN zpe07u}{sxYS7RerNQ1Uopi4j9|&kljvgg^0~Hggru z(l!{%@iud9&eA$1jo!==Cy^RvVs_$YGe_JM;>1i4&fDUjfSFVs!%WDt!?KI2kD zn-w``Ge;!mw33XGNu)Qha?omJ{GV>-B8AOd#rdpU{$>tA0|c|3BhpZq#KFLT4!q1h zZ)9UvfuMEVjU6RgkX1l>l`mSa6`2wpEs8KPr{`=VKaXAlSsm5dpSZ^Zc8DMt&`NmB zM$bsmG}S99`a8(CR(>{HIR>l6r%!Fd>~^joGHV61ySb3Ro2xM7iNkF}wA^nsA~V^* zR;|3qv#`|bSFqR}V?3kvu8ITgQbVpHX7+fbO3G&Es4(lC$P?Mtgg?O%zyS7aTl@u! zoQ%d~yQf3U2zcS|Lj+N0=~qRBvSKxct~Pr@s+v!bKF3*#;Ux4s9ZjM{OB;8Nh?JN_ zUX|hyiG1%fM9QOPT0K93{;f8#$Le1xcd{*aKxD>^8)^fbLhQ>nHbSf|M8>7Uwih#_$z!YdottyPGuA0Z{93Aj0E5WfO7QWI^&q zHa7f;IIF~b7yd+^T^eMrDpMOnZxl=*#{z zb(7&xzJ}5c_*f1VgF{utkI$e`t{f{D*|9zzhYA%r6hkgQ=&98+tdic2w;^I^f*N9$ zKZdbe8^w(#67P(XcS$P7ys3 zQ)FSp4MB|@LTkNmL1~J`$1yC7JX=Mv=n#xf-ta0SA5&yFP78FU5Ge&I46NB%+G!aW zp^niEEOa6U7CsIGW3ESGVsNY|dekBpi^9dyGm*VnC(Qv$dZsbP4W0}&FdQL{dq#1p zU_3o3F9vSG=qn46f_F2oPhX^D}n#26l5@lBph8ZM4s zMr0)-b=}&^O7x}Bg0^TZJ&fF0v;{nbv_mX%qLDFtZ=5Jpkd=($JN#!=e6vL>44zz2 zrwUe8(&yMkljZ17WHyG=%siISjHZ*bwL6gGIUgr#8l6zAV;8ajm!dnlifPi1ssGwl11F8?klk+tkw(k8;xi9mSqneM-PF!j z_vxCxbT~c$fW)wo6B3O;n%b2U9Yi#8!0@eZ` zp8R!cwY|OwgN*lV?A)!zPEb;tv5q(RF2(1pOki|(a9^RsD0?sqZwOpe0JCK4N>+;W zg(W~9(~Z4#ou|s2rfq!SBhm5cwsC5|E}PsD7z!Na0$e=M`Av7wZk3=6Cb$@OkUBmR zJdN~NfVw)*bN8BCMN+&~e2P0Ufxs50_sqnW16f@RpsO3Q2d9xX9!V?lM0(CR-bRq2 zLoE4Jidq9h8U7w6BA&cIRj_4LHwyTM5P)5_vcMnkuI0U%^mrfi0H6ob^gy7mO75Ve zaaeFX@T39I9q7Ek2mLzTkDO|)`BcVI(qM9zfZ*MOU>rkIQ&zBbXhRVXJT~xn0kH-7 zDk#Ea94gfm@TBE0y~0~K%*{@VP9G+`qXN?!(1{>vpy@o{%{?kKg41Ap1q&VJKN6hM zvp-#Sg0k3Ns<^oj`g8#l-~KLhYM7~c%>6z+Y)uO#{o^VKZ97f;FGeVKxnI`REJHEpT@bAk2v(>GZmXs%nhYimd@CR%%~VtVMVQ;0wv6)iJgE z@QYvB3%8L>UFP#x79QbR`1-S-bN3oZYPO!e&%*B>qz79!*e8+;gS#WZ}_7iE?`0v*Sf*)F(-LLH*YIvnvUR$0RB<4QRj(szKf0Mhg21JAo=NfReu9plu(FKYGAX;RBT|ce_8xE z{8WsM_U!%ib)A>c7;avD{I>O!WWsm5o4Q`Ht=X1M3tKW3ciUe1Ky0;{CURTxF3Vpk zl8>0pUJ*ayCt}CN_MU%7d%-_@dt$zY{_TH9dq@84?O8_23ksdLi&3#;Fp@q#za7NI zK&I`kBktjvO=lm3YL_?!rnxGpDD-ea^@H8wT^Q8q9O( z-c!*2@B~XIQ`OI5;wHZ6 z*4|y{`p@hb6!~kh|F->W{q{eu=Fj}IxBic|b)#t+Yfp*(Ueg@daShP%O}k_n$>r@F3CGyYw#7(#?D&ay#^mB3od)>gXFX&7m8F+P-h zC^gC~)5;TOVV6sS7%MU47~|=pHP${{fVHeRl9_$P#m`B#8Vl&wfPpjFS*i1|?p3R|Q>r3Q{v6-{v&ZGDF!~jk} zj!vr?NDL%42iBT;U&x%CI9!Z&diC&eFmcq~#hu-nqlu%5fxzaBR6&OmPrFA|dRKy* z&mXhblc&`@NnlH2S74BrMImtK63(WBncxcdX`f&$`K&Ss3S{lx5mHedi@^@X}#l%w>EZSzC&F(Bm(8|71j?-6cN`rU}j!ZnnJH#Mr z;@+`~OD6aL3!LF4D=o>XPk}8y^D(QaR+tBH2!b<^xPA4gAhZ_f%gF4`vcEVkep-C| zlxJGO4~zL0v(~$t%<3*2iN@A&n{;1x=d{4S4LlWWU!4fXNAU0jz6uOAfhzY!5!xDe zxAO1aFzDy^@#6Hp;Pm2AB5}YS%I=yL7}_ut*oR9Ri=9n02FAcX2G!5GL+&9}vUkIw zzy|B&gjzO0?ZV(TBUNNyEnrd4Kt&&%xS3_%5|+EcUlt6WEY1R30_*LhwaCi~p`#Hf ze`o~+9$!9?@GtqGg8d4<<}%T{o!%F@X1t}#usrR%h6vti*@(=C;pwOPohO;XLvf{>^vcb7yyUXk1{(p2d*vJaQY(X9lywrQ8hRObYyG(tOX6eR?&tjNs=c3FfCoZ? znB*G8?sHfc;g40ff6{*ql(r0iVuSHMvtR4ts^RyFZew=BZ33$TSxb|Z$<2kvRR3>f zwUK(WC9_B#c4uUogD$FJs-K6$g-wT3oXBi-mfuY#vx#$8@o@46p6R?=FB?^P?NVRL zwQwz;)n3Jal2MNA>Tkak#Laa#xNIsJpGxG7kJa?yVuTZrWGFKg2JG}cOG@?G&t(?> zX9=&**89RiWpb-gl2NJjo~HKXZ&RyV%s45AN_ErH+SsG{B(4@76XtiWt9va=X8(ZA zhb=I&e^7s+lbB{EJv5hafU*L_R^Faq|F^F5Otb$R5Bjq5YGXFfYm;xXls@H8>Esqm zF6=+44ZS9%1pwDT|E6y5%`q*O7ahUm+I@lz^vmV8A-E*9)jfsj{jJF3_~TJ`{KBFQul7y=I7a}? zJd(=lSh7Dm5SG)MR~`AiIh_9Dkh?0iZFhE{V&Z1t`ONUG8|Y2pzSnW?@^^s19U`K0wJ24EE|K)loNg!`1?lxXKMW!?hq3iCU~WfS}K)W@`%Cpe)kFC~Tod+?BUDYpjg zvRk-lH`v^}!-Qrv-w64_hqAAh!+r1xF2`i7 z3|CKNhsvE|BL$lI$r&re9L*eW{o|B`VbJ==?H(4R!-W;_iLrgky3eXlI~kumzO#{p z_KaTMc8*#6o!mj;Uc+OlHEUb2fx88C47`~dy>6(kqh}&VY@YOa5vhsHM7o205sVrUO zH0&Ih=`hT+GRcYadE6vs#H-k{wSBi_(=Nli#@qERp4=jR7m`hzxM{oUO#Y_e%1$xI z;ij@^7dM^bikns%Zfb3x{RQe#@p(I+7G!=I*S*6`cYFyy@Z~CE(hAB)V>>Du;%bT0 z{gu?9+*MWbwZdj@cDf@R3EZ?GHCWnl9*=t`ucF~*z^vpo6>ReL1x3`VgVc!RkAPq- zep+&$!b5Ayf4@xmNZ0hPoemD22W7}#$d0!y(+m678F}P&tXr=q`{gS5t)xIqY5dA; zq@^EZBc+uvFSRuCG;*A$b3o^&L*8uM`jwkY0S(H!X{Ynxvvn9EWEwD7UqKDL(UhaC z7yJ=_g^c>bdW}Ob^rq{Hs-&o%fw!(qK>BpD5ihV~F8iCoo%HZrwmBZe z0xK089gg;FL#0=D_>O<3<$9=PMu2`+V*wxIpZJLo(#SwG1a|j4?p#=~M6az|>Ga4f zl+yEMK8z`fvIZnvQzeFn{Puxo&VB*fsm3SHPEZsh+{hbKl0d39?c6lzJh;XS-zhTT2(T7u zChjaV264d6OY4$Kyo!INMF}Vk%qV;z8F|GTskMx}tu8v6;p#!E20Bo`rZN5{Jw|d3 zimSkjb(;+VLj*)!t8uNk<#YH8ew$k!kMVrn5t73Qhb$z4!x(vd38t0P8zR?IUo4vs zrCZ|HP>QWAX_{X#D3i6V;?_sq-R@5JF?Obv&YgM^hH+JfdQ$EIL4 z!Nf|h;(He5A(so1H`bUJ$68?2r1Fp-abLl4Z2nT!I^Ga4xI7k)@g*=ML$aFAf)4|1=&;edJNClpJlzJ~~vd_BZ*eiS zjZmyY{rCf+xh9lTstLVGsNwxe-A(8r6MBnK>@39%66!OdBg!{TaU~3Jp9uvCHN+Gb zQk)5e6?eAcB7~NFK%pq1`#-2qIUx&6MKRP+3^fw6@HG>%@U;-K@U;@M@U;=L@U;`N z@Xb*^1Jzu`nb17N8K|yToCz&ZoPlp4Aq!szAq(FkLKeQo#gIgW-El!L*4*$Rg*49= zepsPCVa%%mlt`oE(Q}w z99YxhGBly+ay#Go){(S~}O>8*bm&mMYSlGe=w00F!2UfA#MI@u@ zfy+p;3w)TZHUNg*!vlZs`&ZSXHv`aS=%F-;cp>M(rrMt83GsydPCALs(A?6jIKZL` z6Dt=Jqm*tZlSRjhDqpj|W(OctlwI2jGUl-7KqJg9iRS$N(@@#MIFC1*)MGU;Bg5e^I1W4$*zJYOd)D3Y2Y2^@&8&H}F7Fp5u14YobryUD6M9WC ziY}EOx)F9BTzddP^YL-yTtZw(&*QP;xX%DmIH8Si#93~x*wYK4C`4CyQ~kqc-H#hI zsV;v7DzutuujFm-y9)XSOCR!0i_`R$%+0mVgFIh&LnD~usp;~}ZLPfLFdZ$@w3>Bd z)0tV31M%esC;&>gon*a2C*Mf6L_T_T%M>lilJY6Q)2t$8f=WUF~ zJ0E9-k~~;W<#v4n;y4YM<|TZyCqEEhM#syi5bWYt_(&1f=v5r}YUCJL&f{eu*+ST@ ziBBK0?Z6dzW2Te-b%rw6w74rXvvm=Ymt>4~9p9dsU?9bs}1>i8`BsZT@sVO|z` zjtQh)MDV~oufz^XFarWyG|C6Aixy#sI&M`4U)MkpPCk+Hy#Q0uTU7Fl=ELmhfq15v zAN=(Pbz#V$@nCXWp-5qT)Fvbn%7pO5e~RGx$vtomVb!enKe?B$;cdn9N~9Uh&lqFJ zj&NK`T9C}eNMy;cWiI1%HhD?rGA74mwOEKGG8ea?8x415E^ADOOZn;#b_o`;uu)X5 zx|MglL{(+8DpIo=0xkrB!}?i`rdp$4bma?X1u&3nU^DN(>U*jGy_WaYPmPYO=N+H3 z{)E+olD`yZ6!hCnNM&L(6sOus>fnqY#5T;QB;zOe%#6<&Ri)vKv}fvHm7Dju5iBjPW}#3P5)B9 zlDR-{1$?xDkB!bU|GXyd20=-FiMn=peAlakqYyHGok4`q0*HyHyZQ|_`Ykr@BPaT# zA^b08hbDKuyiFyKiyEhU1!JOb6R$ujTLvED zyp$_LHLPHr-o@h}k6N@n(bD-Zir)OrABN?Iy!*~Hgy;94r?Q4k)y5UH4J{_luBW5# zZ)yUV{ypz3`!B|Xw$#6cWBYd|O6+&(AO1fyoW(v~W%{_Z&h+sK+ebsX^f5o)eIk98 z>Ep`anwi6z4)KmQ(@*q%qxu;R`2AdGW&!;?NI%aQ-OsCv{nV7O{WKd8qfa!wRYykK z7qFSug1%mTwPX2p08gJW|0Of$pP9ek4B_EW;sv_w4kX5mq|>9L5Ytl)L2)z%)E^(s zYv`p^Ddyy%Fqnu{6Xw4t+BjxFM-%iHi`~;!-(Np%e{WL6iTjHxh$jVYf9=@bsQ#Ym z_xH&^t-pnlHT`{0BYTzUvoyN!HQVPf-g%0B9y_?B`>eO>Y!@$47jG$fPyJm$e|L=O z?+xnjRe|@~;k(8R@Kv}gh5go@xWhUl;!wko@t022*)^rZ{uuws{k{2J$2aw+RETrX zsv*NNllW-H8KW#lmC%@d4JCNV#K#D?5+IB2zqMrN#iJ%c--y0?L&dwVtQ1FfI+W)Y z+itSeX9rH1zsd4jEkpDB%uF1Fe?`nlnRU+T`3^D;i%r)nX7PN=Or-w#&zp&)Wdcr( zclRw_S;G?TBGz+>3LTs@f4^BfheBR=wUGQzmV?h#>L6!I5xNG1Z4)0)&ywWZke({d zt@L<&MZNnP1ax3v6xa>#4eahW5zWmS^rr!y9B%zjhnMA>eNVbjyCl@;^i$a;!+wUl2)<8Vq{hDU-}bXFf(I z>8>0F-VCJ{!Q&R(#69VjAInZCl5WzC#(Kmaj<|8<__Q7PU^{$wWaO8I%*gwLxNZ!L zd(Fr{Hh;LV3ck(cad#doHQlX3NKG5f$g_BLM@B*T4@xaUh@%`J4F3SG8A;ES?8bW< zPWP8U6flR`b(z=H@G|NSZpb;kIpxUinqr~ffTyg+cDXOr;&Gx*=)TXpAUbpcM1R!p zMp42UgXnX{bc6Swiij?^h;I0k5d9Dx9)a;aBKiguIw7Keq|{M}7K8@TCs3fp9kn^Ig+UmI5v+Tdh0*ADt_JZ2D;k%|Vw)G_9z>FOxgUq-h z8#2Iw$L)CA5#F$!!Op^^#?Wf_L+F!7OU?hJ?}EtuO)jsDPOR2Pmo&2k_Ck#|bAvn1>V?Q;Up2VRhhg!uYw?i4QJO&y-U-iR-DX**=)v?-&P@~?>0 ztUPX(h-VF>czS-HnOcWJiRTzD6h|w)JGDgEHNZS2ogJJs|JeecxMzy^gcX;a?vJX{ z;tp%Gy|>VizC0iXq4%3btlH{>Fz7Hm(kJ?pJH?d}reXd*fll{06Kgkz*Nrn6s8PJ) zm(`{xYwRB91xW`({!C!v-t?5h2p8x@-d-dGNOhdQro?Jg}yBjex0D*FIIv!BX1yWY#4OSq;AF=C((`A zT1nc-5^g<_v;oWTf}i#78E=FQ%oCt2aqar-_EY9>wQCNovgciO?@etqmo zaVu$F3Z=?6NGFEq_d7aq)JzQ|)b1Ihme74x z1~Hw0`u}g{-Uhy^>dO1iNiGmHdM*+*wo&8Lw3F1dP1Yjg(4GM^0LuTcphm4e zV)1Gal&HBX5KQ#L^)RC$3k`P-t*?M}jg-*FV1>WIxlbu$m zp9*d6FQYhi1j5i$%naOu)=7XJ(;F>&##OHonYZCbGiA1kNO~IOq*YbQ zFlFp8c9Oaj1hAmLp&D_S;Gi2)4G#G1HGWec9zPfNEF)Ff|6s_zf7ot#AhlsjMHGOV zdoHH?X!(nMimbn14zxi7!nOfO@!6+=TsuC8LcTH>sKCFSf$AM990a%9808~xyMW#@ zFjU_%Fb~zVSEzi;;w~S1fWca8p^j$#GD^_X6-fmqH-yI@3d}FmFYqgL5=dV2psBP} z3XB{-)O|?>reJJBfnf#1yl~Jt?ipT}P+$tia!ZijhBBkT?04Gzi4|h-e)hRWgF&Js z^_NxZ{$^^)p_Yj)@o`3tu@o&*F_b{B;##|BKusOQ_!{O(Um4&U@j2WZb6d~lV%mdD zS`(#1q`rLMG%w%7Gh^>LHa0$AmGFBR1$bNNiQ}g5_1Mb{{m5Q6N8&{GGOOQ+Fyp!8 z>0RJkFIi&WJ_>le zLGL(Ybr_(Eq~N4rXD3oI$q3@lO2<)s1th2^6eEBedJZ&GDZSuHwk4-)VwNv%lMWvz zu&dMTtf2BNvL_}eeo8UTNRdr1+v$+i4jR5Il9U!$|Be~1Zy0{LEFgNO!fQqJoQ*Vi zDtw2CehoIZJsjDSkWX(IqQ~UbkeR~TZ%ie6`KTkGqIahSTF;xpB4mk*j^x|Z8 zTNenbU<_YiTZC^IYR{CM!L1skI5&n==MWaOVqhR|Q=7Vm4rHCD%#H;!kb4tt8lL&Q z%&U#fzqyf8^Kz{hp_8mwslb^4s9UAU2>(48oR* zca1SRk|<&^?*#r0TOc54%iDHz{n3rVn{SUX=e!Q3_rrX}*8(+ePNro%Sp8@Moia!E z7PV8x&9_N0s66|wvFP~3*uYaJe!f(ZeWT4$oinTZ4J$C=cer2| ziB`UTl6@R~)xD-mPBrBGtNp(EJ<}x^XtaQ8B8+LJsi8o9MQGBdG&Eo6Vh!e;0#Ee-y2nu!vW0_*TsUOdo+Tr zsCvEHU?6~Z&aCbWbdPA|YaGW>xIxCAErrJi6PB?M(J@C7tzdG6sm~DB?U}<7mN3r} zb+jT=a5rvUIVlt3`W_uab{3nkWkS!C#iu=?R8>?TwF6_EEIw@WnKBhFU?w#K?RweR z7ZXc&-^u8LgK9Yy)vhiD!Ykcu)0V0Ue#L{>e8hNOsSTx{54jP@$^+rQ%G8UTI5Hst8gL_3P>cDWJ4Fm8-N9vUV+avkv50<@U8PZmt zY+VX;LDn-8bO~p&C|>L~d{Lc-Jd))?%nfEpA7Zl!iOH+o(-J15%&|73iY7_p!W`gi z@%UB@(wdAi$8uYm?>Ag(G_GSfTjW;w*`JiYfuYDMUD%E&IxA@=@;ci(TizSzb;%=L zvaj6I3hw^KI%o)G1S~gPjW%Qt>^v0zYo&F9VO+K$$pdp_W_+i#C$s)y-i((IxxXVR zU+nWW`r5v4N}E6A`F%VG%-q1-a|CJP)D}g8$W#`BThU@>HQDq& z?mS?7rm=fiX;Pj)$JjosdB5CPb=J4Mi*%Wi*hL6 zbV3?32ZP{jqpT%FV}()HjA%rIsordOfK<2jK^s^zL^%G$*ylN3(l9i6rfUJu2*>E< z?7x&==54OtVp_n=WY9uIT{TOV)$28;qhE1oE!Jwoc~2FI(c9Bk-jKoau?->?^iQ>n zHKxBQD87u|w*9t8DILuj*WuEJo)ie9>xW7Ij=zXL!Ej4i+!6f`r%wd<8cvy5dG^YL zH%OU~{xKkoZy#2fAb2vM&1_taNOl{fJ8B37HWrc<&K|ZuY%q$@AXQ>yz#A_8&*%}e ztsWu1ioL`xex0_{0Zw{^bcp$Z4$+EINDETbh(LD`Gb1@fVaN^?2D1?)E(1oezME7Y zfJU;+3jb*37c#s}NT&iZc`K?$QXzgkM1|0f_`si0i zyA6-Qe}Fk`^aiZJ@=)B;(lrh^WW%nI5IAl{LK{1prd=z=VW3Sff7-NZrR5#pvr2l( z+#VR*C3Px=F0rb1pgUNA!T7LU!Wsg-1?8g~WRB*Nqf5RndAekeX89a_;Tm<8S%C=A zKMDlF*QWSph|vGMrRny&K3L!M39vpv-wBZ+G6yC?2NITrOE65lUGYoKxIIa z*z6p1di;qua@?+;bt8xhqauWL$aEOp*6Irxb8to_T1kF+Tin}YD8o=hpk1OxFzN!@ zFshY5h&&p;l%g(7QCbW=J_&(t>>2im?Gy1XX$aCEbQE~pSYJ}~hp!FM2R07q3#Pb+ z!Oy)zajjj6T@KP1KAsRmR@%%(FR-c44AK`m68ZvIM>`l;BLNGgcAZ3Cu7RrHPrQr# znUD+W!qPxpu**Kj%(72|qv2xLZyJi|P4?a&yFAbqGT6C~wy>^xlNlIFj!IeXk^dP} z%Rp1O)@lkRBgk54w*qYeSC5AAftEmzCpCn`($ySbPihIqs*_X{PNO0;o~4Q~>ugkn zM872Tw;v4X2c4tiTAVRBi@%@L4{8VL2R|C3AIQWoJ7I4q=4P7g4YER1w7d&fNE_Qq zy3*PkG^d@;@X0X`G}F??;m|_=@q|t_6*E*E70Q|$3_t2ZKOAaqP`3mNagBlPfG(-B zmiFkaY1JFd6l4X;mHK?6w`Zuu;ogLjATk1sDyt-jenzl3%rP6xsv6%*S{#;GMIpz3 z+$_e>xN@f_Xn<7{&ZGeihY;LmaL|OAXVHW&C5#S169PTwG)+LqNijNHXBCF3KS23` zwjir?l{GJfNn(GHDWbq86GjJe6FLO%Dw!o6qK`yTT!EMaeX~pR!z%0H6|L+(>9rzb zat&*TeWB^T<((Mn-}bjs8O(>lbT-$>m!$E1_~|Ui2WvJLKGn)F)%ra#qdVQQ%?^pg zLEz?gS8p*SWM;9$!}`4a%C4x=)GVv13IC~+i|9R>38NLF2BT=Xoymq9k67EnEbx!D zUXGTTEZPu{ONIqwBf(TJAsaZIvRs36!N_Zq_a&Q=AS19|y*+3LLm_C#+SJ7ww{d*X z4&w?%JMyIDSa&F|#R!qX1|F@i7I+(E%rQYe?AlX)^;%JTU_B^jv zsVQ0?(KPDgu*$S%iVR#pLi7D)8~iw`K$}Ipd0AS8}8c zG@Kup4a`E#7GycgEqrM01{hKNtO{J0z5R)`8rdtRw(J{c;(R2?7!vTa%T7lH4Gj|g zW@h)DWJ*pVHZNyDo|||6UfO__|3<#wHz425^LGZ`H_vsjNASLRt`!sj&G9&-iMC@e zm~HF@HrBqC`A;L|6Y@s3gMdF^FE|HJkQgX^1Y{FJ7wKMQbO5^^!v4b)-;deG-=o>s z3(Cg@ULV*CQvE)jw0#V)Nk`0=GF?{^QxEX+-a>o5^Y5vA`Zbk}L4_0&J*|MI&GSWaX z_Ja86s2hxql>?5AuQQ(6$vkL`1oi?0eZpQa67&gsf$gfmUhvBSeSrQMVlOZhaC&>e ze~CU&-6qz84$)$i0Y?1*x(54#K4!)GStNxjUPp-xR>PB z{Il}n(F0&7q~#C~{HFqG$-XcF3F``vAcgK3og(+66*{oNP|H1tmq6ajNn?n-x5C~S zhw;wPjCy2&Up*l3VV}V7W+cSDX3+yk?-A06i2bZH75lQuu;wPQ&pLq>`_ZY2D_d@5 zzR|8mW??_1y@O=ENQ72J%Re_dDf5HL{vc-NHqN)7ez3q#L3KW;w(b{Zu1_G{)VY3m zw3YEXvV<1=SIhXUgpAM1V68iABpGkX)<|~5!fadz6bPVTfXfZ`#rQ!|uzyeD`{j?p ze}er9GY90gks68guTdJQ-0X}`I_>7prE&7!w7f;{pqFrcj-Td$Qeud z|8A!IXDH<(!P$RS8QXw>xBi;Q_jUBH%|5D>>G6jL&G(=E%g*-+3}xo~>4AH}R9J6S z%A6lDsm&^Zyg%Kv|6fm)^cc*|4B|A?{`*cR>C;oEZ3Da;NpF~)x?X1+)Ad>+o;i5h zzsA@tpeH#?ti&N<@fO>R)5!du;bi_9wBqK|$@~#o!OTBHGQXT}X+dJvpYSh0z$+O{ z^)>51RqQKQW`R>@{brdRiHgt(=KFVqyp|!;{mtImq0{~Of#Amu9sQbCug^^IBS5O` zlz%F#GMa?0mke4N+6USXS!NobJ+TI7RIOkQ?qDD`Q=rWZru!|Z0TTSf!1{|oUK-y_ zAQ(yPe=TM5nQf=~M(jUeB~G~{wGsbBIW)}PTgxCIXzRF@Q}&&t0SDT;yaN_|gaB6N zLsloi=YTm2(6OYb=CtieEGioRNrV2p=pCUz1!xJ{fhG_#nt&D>2haR38KeTR*K}a! zPdTZR{{a;sIr9evz`xbb{s(IU>WBf^HQ1f&DKTAU{8>ICUg7& zJHYf*JAj-qgE>B3T!llX*-;Ymwm1jvMv_c3*QZD&LQ)7qKG7Q#IgDtkejtojs3)0P?7|8|z zoZ+Z07$f$9#Zt&=@EOUvU!S2H9`G~>$WhmOq5OC+#E{e%Vi)EP#A6^P8?CT08J<)8g)b`p!V9Fr zla%@ysfw$W`UR=tFDUgAskCd9dYM$-RZ9IvPbVt%ds6n>X62bLmXoqytRkf^PKkMQ zNi2x$AmAc4=8clenmRw664)Vl+SLK!CgVlr4Bws()jCHo?IyMVzbn;AYTaE*?IpG7 z7Nz!+>X@h0`+Co`>=>!48fNju+5%hpx_BXcGIzIM}qu)W4JRbf(a8gsY)<@dNd;Xi(UT3UKKXuyMHyh+OAq342@;}>8iY@7zp zb>56$eu>l81H=-A#F!ZEPdmqHJ8s)A_!}qjCI;1f_WeAerpWfZf-^2KipI}}L)Gs% ziT+f-Q`hP(2Cf5wk@!O&HF>KoTn5VR)$Qi4*+99*|H)+n&2K;j0N80jc;bSVV;2y& z8B~MclZKVn|Q{SzH}auq<*e+QCB^QN z>FMs0siEq9h7?W+zPI2u z0!$I{T4RtvQ(C@Qk~_~`lJ!90TCNW}o9CZj-_sA}{6QD@ruZzc=;0v9KYIk?Ov+AN z?yMTOg}qrNDq~h-B#5%M#~hxUXj4;J#XUU0UImSx)vf z3`!1y+B2|U)O;^QvnA{wgy?3`hx_Vf?yEOx^yK*2clkxD-B-WhY;<3JD4oMD{oJk2 zT0d){pZyRqvG)kEe)(mYC0qSz7o$0b+$D1w;UOXCH5%8ecKyyaZW}=6&+>8~6OEQ^ zb(fSsmhP8N(yV|EC{n)*0uNVFZ(@G@au`n2zT0?B8&ZO4NXax~3u8iq`hA+B{(Syv^`oNLIERYWl@YA@7 z-Z*RM%nnj^dnfm!4~FiSDl-9{0uqIyQ`yVzyjh`YDXdz zfSO>I6~_-aNDYom^mCMyV4Kf=%837i?i1Uh6_qCS;YW0zc=*5drrn_0LQ?b{+-iG8 zVn0wZ=*$9i!qh2T9j9oBKnNK|EY}<8WN|_Ttu69Hk3k2;Fz-^QE;F(`Y)A)E!HKSz zpMvU5c10tT8_i`{+ZdQIr7mgIR)e*~KI-btc7@c=u{FON&YoU(UCW7cs#kvqHVV2@ zH}KS6g*!|T)B;GyZi!wTy}?ObE&ya)6`;#d2yqBDy_0NdJ*f%+9zo2t@UUicbcj0!rkU zhQ_et;-7gL9tE+S&rc`;|0fZ_w7^|_(Fl!b_<^W9Wp~>5xF0bd)y)umvj2k!RvF}t z6u;`>SpT`?IxuFSBry|BBguWSm9oZnbokvO9aL89Yg^6XX9-dsAY& zr=ZrB&*-_V5GO{D<>#ukD{A<~2>Zpl{vqLCdu(jiuZ8Fo`5oD7Ql1po_#V2ZS25%#ou7SdLW|NP;vtOA| zaO6I!qgh61FM%rgmOwpER%_V%)`LF=EM?%`oobo8>|`K#_xd6&u%y?mqzF zsUZXYV2I_aa261c8VWIyMOIE4(~nA(lspI`$(`D7ib2o-(-I`*INOq-3B!3@dXT$y zqx^0%RhW<$_QCTS9RfP=w^VF6dp|HfG7FRAL*bl^JQ+GZ#8-!xCuV%u2nhLh6M`1X z2QM1R1;82$Yv&t3kmTmJVnl?tA)Iax!i~nBAb};yw+0169Vwd-qF)kmn5}sL8hDu{ z$A+QLuF+jlv&7K#Z@M2&ew+clGpS9|yXeq{FEDhQRG^}nUR&V-DN(NvRibp1y`dkC z@FX1%1W!CGioeQTTxclX3iDGa-k9iCTIcQcmT*S|nWJw;g8APPG=F9=pAF65$GpkX zJZ<^7p?S4s2+gOoqoFZL=?ju61%hp|^!|@S=>3MjIK4{*6eJd&Mf@Ki4-CmMw2K3C zbHbCRl`#VGpXz5;XX#zY9-#N3PBdpg@9`1o-OLpxWiU`+JjGUH$_zNX;qT<8^7yMn z^B=@6|10?We~P#3==2W)c522jyj_cHXTjUG-*k{PQq(9-Cz`e7A9B#53}1iftoge1 zB}>lIloIRf#$WzpNqQchzkf0Le1N}?4)}X$lE(r#ZOTb8b5Flj2aQib2sq>4sO!h%swHH0=> z@DO?0M2AHnOC*j6l$e{!Z>WD-{!CU=r+B?3{cNI~&WZD!HeXdc*?dzp@;7txryOmC z_S0%t@oI%ms;5X5;jB~%b+1I07a6l$Am3vb<`2KVm&e*$-rsADE}vBK<4P4M@B2y> zk(%TwRjj}P^wX>iKOhelStVwrjW8GLr?$?nz0Rbbv;~5vid2KO`ieN&Lv1jOR^xDlK9U5UyKi`+lhX#jY>1 z`atnI%S1Eqs;cld@xz{V_~T`orTb^giTh>`S ziFrz}s2#l0wG~vJg1?gY%n?*!kf$TM@?#gpt`8>;O>Jx0G0JIkS~MB)Lszks0Un*$ zO*x!=MR<#^vZm;)ZS0TbW`Kh_1xnA)Jo=_iTs-D3`NbFWe)a5(*!3ZMo`oCz6Nuqt zHh%}dF?>3%&-Ba7vZypf`GhE|@I&*3%U9E1y_Q!vwvvM__ZRMu9J|(C@^V_<^Uuz3 zZ=&GbZ#&z6$HXYjIm`il?pKyYmZryY>mw~$S7qndHA|`S*3mneuc#RJ)vRmSN_17KnZq8ihT@%ue&aWssl|CMUDxUivqK`$S!vFJh^r6oO(T6gYb!JZ* zppW2{Vd>*kdTGA>w|T&S+b#8bf3J4DoZrrmkMeTW%lUsM>AiL6UtIq=W#T{Z2Zhjz zg??T2@6f`N`Jw^VL^7SF84dZe_j&3q9c{Lbrg+EceByU-MCqzR`Ya=I>~i-jE9l?I zl!jubY)jo+T6nbe)cqVB7QZ5HUb33C{xOm-couN7$e6M=!se8(VKx;xmRGljb09lZ zSEe^NRKHwcn{m#fW%DrSH|ywOZPkJ38SCuszBtkxj;vrg{>vSaR(|SsxQp-JS=i<- zzI}(M6|{SH6=GVweP>}dH@EI8+~VhsBLayQH`v2W3!OvUWO{2MrOYca%D6Ie(&B%+|YCzt!QFU!7Li3#;*ST`W4& ziOus#&S{+fzF&^+F!z`@|76*!y59j+CHR}xzzNI^gr{i;fy-=REo;0#?Xzixhp)tq zuaq8b>zn13-r$#BS=iOq*LI?rcLnf%XL0GsUz(U>2k>yhifz4{VwWQguh?}zp z{9h8$4{C*voR4sD;W0XxYCXK9CtMegtjq%$W&7&3CB@Jw-$U;IHQ#5RQT>Y;JHyu> z8vgs+OZxE$Knmk|u--44fFnTeClSKNroAR|EL3-pX4m(r;JTf>nB!$nh_r?x{o%S* z77a#`POgV|tvWJsn)n73fXw*{ww{toAoDt};n{#8;(m#;^7eTtQJBs|; zOVbK<>SqX&&LY48ynl9I;ig!2zS+1VkIIrQ>eoH)l8VtzFZ7k^=YGL^3%8Fe(PT?b z6rSMVN&H66_l}ZR(#Ijnd)ybdyG!O?I{K$|s;)Uf)?IM-WTm zQ><7!eo?x2%zMj(qSm3a$oWt56Y@isX~1&+YZM@y)<|Et?$41q`B{s+6ZNcsi?Zu} z#gI(^XS&VOZ)9%>#~(iH@0#i^smXI++?a9mq~G?7%k3G5zXb{RhBo4KY;M@-&D>dD_Vx6kdmU$j!qCHXZtY#};^;)l6#0ad-sHY|5zbt1&ccoB=vyj- z6Ws9wnfMiV$&1Z2GvOEFr(N}fMcliO$zu`R<(8~3Sxp7k+M=nk?w?|ze5<7q^`P@| zj)ES_f20FW;NxOyFBJuNVrq(<0#k#V{YJ7(*<|p@YqeR(;k&-(G><)|27^Q%c?|>4$EL_+AHb<_Et8!EcU!`MemK(oAk**~*0vke+a5(4J6Z5k1BmVQ+uX zeu6fl5nXBFqmMyq*nKhgDZL1nWL>^gFP?u!S^?HUKQm8^V+ z#ZSd+srw}r);b}a;_@G1Zl}3E#|9Hd7pw0Cw{Zr&?lIOj21gY8p>ZucwRpLq@O2>J zz-;YjnBc8Cy2A@`euLP|(RbA-Ql%N8{PARPn;AJS)g|lUZ-TSTd9x$SEAQIesdK|Y z3<4A`$x(i!%^)*qD^@N!rRLY3%gQagJ?u%U!S7J)8m#i3!LsHv3W1bEMy@_Eu!(Es z15NhPx9#BPyg2R(S6+fH{wxo}oQ+{Zkv)Q(^gAbMmLU(VqYa1r=-~ zb`iCi6ZIH=xmT9ve;DolN)AZom-$%9R%g{V=G_$9=Dzsa(YKv7j^S4048TF98DP-s z0ns{ykcx+^bpA(FnaUF8xAzG1CH*Bwz{>>TCH^N|*xN@nLq=U2?Qi@J`aUU7HB&Sm zYIvtzVk8m@#mR-zrKZ+ieY|8nVZd1=RjFC$TW>;@xffm*>2~V2pz-qPRy97s|r6`s8m6!0sjl36P@0MRaE}bZ8 zQ4EHDQ>MV{fu}8o$u7-{-q;bnb7yoi8Z|>9I(ZkaoVzuFtfSKJ5H#lQUdlg7Nhkc$ z1%B;kaJ)~iKBA_2FJ-B!(tG^cl5{`!OMcePe&vVKahTOREhlht58kZas`snc+pmfQ z!86+Nt7x(GwWFTFAP%v{Pvj{B9Lk<(%bV4}}FKwk8j3a)D`ljtuoVSQtg0j{zy^1}Wb$XNm%0Kn)_CjDSK$`=z%H z5JVUXQ54j$U-~r>DP$RK%As7S)leBR!Jv+4(*y&;C0q?_$$B8!`009^2ARgp*K5%` z%=Po;`e8lJx=nQ8m%H|@zcWwnG}o)l^Kbd(=i6uBGP!q|+=u;X8`?{B|3dO;JDi~ou5h=;M}iHUpzr8!aRRYI4Iep; z(97qF3t*vW>m!jv?;|5Y(==3;*OilalpAgO2g;8&iCOD88B0yZb6iE$Z0qwMwB=~# zoTY7H6qc)(rDtX(ipq;N?KEFD2St(5VGGIhOK+#FuwVOWkse>M+rm)ex1&vw#5>7{ z2GGoC(|7F?7}qWx%#=E zPjb0k%8j<@E%sN^pCNx5`O#-yP^r&6Y9HyX1EXQdAG4?C~2$)=Je&=x#<;Gw&nObJqxPEo#377Qd(m>&8b$Yj^M?E48Y#gWP#^E*_QP-an%ImTve6oTji2n6t5|dMmC_B)9MthrJVC+=;s{ zbUF1cX=xMFA{)}IHtGIib7o6dCR?nt(>Sr%eG$#C-Pv$-2LTYLU`dxAnU5ZsH~%}( zMo!6AwkLo|)Vl)Iy8>qwzEtD3Fg8P!m)X*xk|=(CTH&fowz$7om)Wu>Q&m#>hBOp; z<_5=@9vt1ll>3w_E=Uxs)>^GGP!it>ltgn>XYCOG%L=NW?bA;8)my@{HY`hbU!B+I zzIy*?rsWtGWN-TRMb#T0=k(p`_r86TlUDtPx%Mlkr57n2#$MLaA1+*jL4fg-^(kYG z(8tFM_sAll=$Y80Do&Oit9x3e(~@S&rS-8(VmIf-s*C-3A&d}w@D|)M6uTo_{hFy` zgQ=q@T)kDd)I?1E*OZ6qI1{@b6=R|v#r7Gm$JyM{li|eeZW8ac+A(%c@EW6hj%KXJ zWiD!tww;O1gqQhrj5ER)z>@f;r7t5|K1OHv%%qGl>CWp%SwCg6b$~kLB;XxT9lRrs zGLx=Gj!YYqQD^{KL)<>S+{Vk=5z2gp;L4E@thzh{Q&Ha4ix^REqc$A!`P{~SInY-a z^&D!M?N84e+C5(~-J@<`PgFz2%O7zesPs&YpKDIhO zV0&GnkGkliMBiZlTz`8>v-qR7^5%gyvxbJLxk0(m`AZsuIrhF|f3 zeC^l^@*_(bK&T|^OO9AA-Wa3u>icAL^1@z4$g9ZoDzfU{^?#_W#?{_B|KHP?^0+46 zS8N>Mc@-V8n|X0}>}KBWjNP2&RqSQ=(M~@S);Im|NVmakGYRGU{}SeF4~cYuFIvR0!jUEwNC1^KYR64wytiw0m*BxtwW@orrqszJG&M!BM0NP4-Lk)KkWjcJN~%LiR)U^ z7V>9nREiqy&tCn2zwPng@uIUnewzj-YH|Aq0~t?ewEx?pcp;zIh0BC}7kaT4%1r1* z6JWF6I!b*hqPdQq0@`t!0UwGS&xB^yE8yz2n9XFSgS=UYO*}jhSw?6C?Xp5~+7OV= zk~AcU2OEbXb_4(WdJM%Z^?#a%cy}9CL4PsM&&~5Dcf?qTo4lK;^ge+yD$J*i?;*EB zZo>|}#;4vM9)MRb?lteo8I9~S0(T2^TyTwGwMXQVVh~jb^TsYS$_#L&5K9uLr{Ie*rZ`U) zU!@l((RI+Gi}(#C>#Glm5}W+oFo>u>E@OxH8E;;w?mbh@OA^Bn4_$JL@NkJwNF`W+ zdGA9p;zZoZf`EDTXF2v&+1(oCsLjfU#x~^!NV>DbyK{HsSZ3YZ`aoF9u~;%M-_V~h zTZHn#uSL$#aW#OKuDY#}#6HM}7%!sI0qVudvNv7=)d?{|+<%xl1`&;4`C(B_d<7fV z)xiK2@}E}s&T1M;+Kjlp7HC)-<_*I&*0~K^5m$ppA2sib-$cz~aSB4{9gnO)-EkLx z+H^qKp1SuFH7lM1(nV^>09sqq)s)uBA^p_76aT4wY1*i?1mauM4KJ7+(vL-^|B_It zj;j6m2%Qvvje?x5@qU`i&uR>3)SX&yYN_wU{}-Bdj+k@v>$qzuGw zCH?P<;+HE{MRGs5giXn6EsBKA$}s(>-R8rr345;ha0mrruzk+@Bb6fgrpCS&irtjy zwIAJux~1J}nI1~?D%8~w#^F|PBXf}P3|Y8A4w<=;Uaf408OhlX=ddCYHhMMwx(U5n z{Yh~<_#hJ}3%a9XAIO7cET1}+CDF8AKDVYz#aa*Zw2*mJY4==M&yFRXQ()&E%) z+l@XB=A;A1Zptdz8oNHbWPPAyGodhAc6I`wP(JX47`jH;2EH8bbN_-0x8ZMr)?JM_ zF!vV!Q^5c9*cW0qh42V?@lBAv(aX*Ub6pm9nZlj$ezb#Y0e3|*8p~wdvTHP1VQZex zemIPIK0J@f&6Hqr6T{}hhfL1$K?Rf4r_4{$_@g^o-cF~aT;5R8-Z2&iIMI;#_R(2k zx?Z0ZLIGff*-!2z`h_z*>uor?fpY?SF89`cgh2jypRE%0Qv)L}E$s>gZ_oACke6d; zM1YzHsQI=p1B_BjMz<-8b&gmOHldYyc;J?#qm@qYSokUWoFSeoL$a;^1mTF&xV-apBIO6W2 zjOD_-ydTf_jRU|$H~9F^&Gchw?U*3iSF}mG9GvUwem<(}XdR{3Nd}dbG`Eg=9FW)H zeA7CrfmHLqDJ2(%m;TpNGaAX`e@^E8f>hW* z(5$CI`9~12BGvx&jm>p`#SNoAt=}M(4EK3q?;nLogZ|E(OW4l1$98k){gchI0_s=t zi`qYQ-by4z(?4CmI=%nip&eW-D5rXg!>BPq*Zw^1jL*Sq@5h4 zH+I|D*Sz~qUIlNcdm)lgL#zXXSwFJ;EsHi5Nqd7el=^e~@sKOcUoeB*eD@W6d+jQu z*h_&;ssRN6U(7E7iv8MAK|J*s>%YY0a$i|4c;aD!)FSV-P|PXYRM!zH%6B+IA{4>Q zQ}-W{ylF!P#V> za$otQw~SRj9q#r@v%u>aWlmHPh!j1+fEg8-Zy0ZbkbuQ@m1ltcrzEhc{vVJBmM3_r z4oV4Ab6zZ?%=rz#rq!O?6>f@^M#@U->!eelnjIj92cBU)1N=ZUQDHxK^FF}M@u&Ai zPNXmRtKXsy8-3VYRkFSf`_YsqGUWhBKbCFwLiukM^-i8G zQ2Js}=tp&kFZRyII8iR6{LxH6YD1c}m9?wbt&kr@c32{TnZ5imHNy6Xv<;moCzR&L zVlQAwIqPld;b;&lh=9N(dv8%E^8#gP1$h z8qpOUe4e@!6<~pU{JSB_&v-ndAMf!;^}}0{V+D1)@YI67@cSrPZO1!3%Q0)qLK)Yd zv=6-NPsYBhxH1_LUA;$jB?pfVa=4PiwZ2C)gSzI#m;ge;0bLY32LP^$73IfDA9G6U z1zcy{ApvEeaV%^BG<#IzvQTkz>|Et63pwY+Vye#ho~DPSsfaYo@4RWIB6WXCR9JQp zz9yu(jekO~>}s^_5xKipm6$+c1Y_5D*^dd( z_PRF>yRjXYn7`Tr74Jx^%Xt(iXF|M80{mrRI{MK`Z&m$jQ{*mP&r`XD1V;GL$&cDx zld(Cda8=-;Tz0&!*$!V#41WJt33{Qf)Ya@SbDuX*-_xkIveDG5w0 zx9-(p_=ScKZL+K9%?pO9kLbn2w(qIXe@%TO;q$2x@OftKV@%DH)`mg4IwW7P%BN4p z9yp14y#0!}{o5w%J->1kr_6f$>vyRa>t9!o7H&6v45{VS zziqns9n-~~1|MVhd!ZjDF#bb>@l<|b@NMZS2biWSe$P`UW95)hd&w&F%iJF&plKnV zReSxrs=*S~vHG>Tp}X=dHJJ(t`DlQ{D?RjdqT+ux6%XSNJ8bg=F@hiIPcN#qGagN6x zdGut-TOX->^dxc3_-pGXnpy7^ZgPoB53q}k|$;)Su>Al}DLdT%n> z?GCqe<#>pz9>T%7i{r*ZttBBspXLy76*KkaC2fUmv5Q*v+c;jhHl9HnoG_g4PwB)_3p zacn9qprtd%I|z3CiRtWf=*%f>t?%!LOde98v2LF6%AT+}Vi!|jv$M{V8N=K+7l!h+ z0I0Xe90j38Og#6yi{Eq?FL&0ti#HaoyE-TePe_U~2ieNo$k|@_dVOE;jEMU=>W+7F zSe}ajS*T@ac&usp*rkGa>_LxHt_KJymi4oQgs^O?t*||XJ&j%Eg<}|Dm@eP;(H6ncYQ|m$)Nh39$(SoPTAnTs0F9o(HN;W z>@r_N{mbAU8%~sUdf7j%V-HQH;UUDPdtdvta0|N#A~JiZEN8|px+n40tR}SW3AA?7 z)gtkSZ>IJFZ|QHLf;1HBf|9LmdvF`TKz3Y+efR(haX}>R=-Cx5?V+bS{_yOK`&VDQ zeRWGb;nRToB*zeE{}9MS1h}K z>%}cyApprb7aTK){tg1ObkM0s~$Y) zEIqO;y>={5mJ$+ga$jVZQ=73eT@gd4JDc}yyEU!#I^zY~dL6R~ECknCmx$}K8O)5^ zf2H7(^{q5cPYsT|&aR4CO`Ai%?)WXf5gfTh^NY5xE}I+P9^V$8m*LF~$5`aUmj)x! z5s0;l-71h^Z-)ER7ANaRe)i4IoF8Q}zP3ODSFxqDb~@BJEjIC4ekw91K3jIQ_HA!l z;l{=zwZHe`7`t!~$#G_9Sw7}XWmPcSee_!ZC>l`5d!=klYMAn(dbeh~k7*j6XcI&ew5d*Qx;2eP)rDi<$;51|RnaOn zj7B-3rwI-1R6eG8C1gSo4_~}F)F{MkZ`pP?9w-y7;5G6f2T1cgZJ`pRK$$n_CG(VW zQrnWFw`hyZuJjt!RQ>zKeubk>Z#WlbG0?GH>G9(j+Dn=(At(DRuB~hAZ~3iy5TX)2 ziH<~55W&$EqI>L@#ct!~1Uc;#IjyDaU8&^MZpf)+5IOBglG8Mi)5WbfSZcb#Qqv8V znr;ZF>3^u)&XV;8M2ISns?)sQuCENx(<8&<{#FqblO;n?IhLUMEkQMjpdM-B_;^cB z(`s*_VHL5gpOzhfb>!4`!tmdu_gmy3En3QRzB8!zACiqpPSJU(xR+N;0{63;prr0W zwDg4pE#*1)Bue{ArgwYx!*!?9(Ziyniy@^yN~^hUJaVy9JPaXd;H;V1ZdeFr=RLi zSTjR?uSSjg*xTllf7QsbN|F1R;wEhl{lN|p2TA zI98A5Kmqv!y-Fsq%la-3VK#iGzL&r)ElYjxb6{amc_X~{-*^vRZbXrXwr0jTg22|d zCjMET8<>g)c!1zIhkW`s!~n`^on!~lBs+j6*#R`k44_l@x5zd*#Tc}vLi3Xv-`jRk z>-DyP>umwo+XAi+MxeYV`YFgg$ac5u zvmB2dvR}(4%V7GUm8JKXF(uT!2l zZiPubPO53S@}i_VOzJ13@-``NFW+`-P->ChYg4L;RPhR>cJs8teDMN#&%L3%G^JK5 z6(Y6Yq%uiWwJI-*)H;(2lbW@r6!QFuuM#*CM8o-NLl!%lCtoXlM;Mp>7aE~1-BN+X{0QW)0GEk zjjW_plD1%0Dc1luQ+XyeTX_b!IixI@b4gh+Ye`u!=aaHvJ`$vA$0t@c*0GQ=J{GJK zi3TECNt)HvdE(kr*Dv1eyza`x`o-F_TfZ2(o?+*6av@Ocu2RO;#8@pGtfsI8%#JGm zT1B^=Q2XJQcjTWt0llXbZJ-$FB;n()J(`i`?T>Vvr<@H>Cd*ml4@#c_uSa{*tOx<{W;#7E$@zU-gHc0WIyz4+Jzr`vD4{i-NarL*Pr-R zPH>2p=bszPV#{dbk-7`CLFC+{OiG*CYM*983(O0lFGb^g8=IFo%k6HarK>>0W&Gbp zQ+w9(zjT(nkKdY0!yt?__cd*_zdXNqmiynq(v~gUF{L1NVIJ>rhsfs2`crIPsO;c( z{@Sm+I?M8ZcgZ8uit)S44!cW!|3wo=U`bZB)8niHW7%^2iDkti%d%LE`jfk)Qt#I4 z-Jg6oc=rL8R#z$D0D&>Tr+@=^+GXbvSDQ!!n^7XzXZrVk_MP}ej7yC)P-zrC&5yuB z0s-3kq>WF;QN-GVwR)EMI~adIy_y9crqb6nX|%Kj1g)Os*7E!2s`>+(Kh{1Z z9C8ny_9($lzZP^(tjooqK8N>fD7WS{?)iQW@Apz>kIJNu9-jA7cg-J3^NnCq zJsK6gbjHGo`2h4lm|VVE$SMeBQ2#gLg-Wn zz_5?Jeaa(XfV)o_YN#ppFpm!N=`W#mK{r%7CE7vZyGcQOACrsnN8LyMAW`Bwhrm7WJI`F>P7CPbkB zsd-#J&i}oTM-^DDqNl3BY!y8kU%@|^KMa)|UL9$kM2lM@OZBs?jHcJL*ZqdZ8`qL7 z+MLOMC_|f%a})D>>Ze}q%~nM@{8vrlGP{b)WMzF-sdJzTDDGaB`M#b|#l1^OROFEW z(cS9<$OIwxRrF&VT8PsThv5o>un*R`5N~r(Hxw2OlYxE1;$ydPG8i9$JpyV<;~#)T zBJGe;yEw82SIvU}(?yPmwFW@iUk4BfeKrJaPy~?ehXI6VT|AR0n+=dvdM+S&-q&W) zh!CTVeaj6RJL;k%q0#L3G!!D8R$DD5K@C$Pz3#&Nvcn55!aDV7ck#p$Jbbk&f2-3@ z_yz1uHV72-*ZV0T7iTMUpBPWS``2kG08RH+$z=aqVIA8v3S@-*2lJ5KS^gb){@;bE zg&@~5k7brLbMSNKDC*8^qE!s3b_QEJL%EAzVL})XCe%XH74%(Asl#RB7+R?T3_jW! zIqiL9=8xu5l)?ApjD#hS-M6$1U~5*@dB|QlEt$5ryfZ4YvY32^W;+yW0O_v9?&RNmlV|ega6coidaCT`jZQN8Gbl&AFAm3hPsGXny%6ZV zd-U#e_FL{}98^6W_S>dr`>nbU?jC0}y|;(-s0u6Q$UhAHhiS{<4$6Y<-Fuk!i2Z@t z8oFLw`#8_~sPj1O?V|_oC(lR^Fn&M1(*v%0DMuvo4gMe4;ZTSY9ni+YbNHVePPiik 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%0AV>jBoP9=NEKC+*r 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 will then reflect // the error condition, if available). -WEBP_EXTERN(WebPIDecoder*) WebPIDecode(const uint8_t* data, size_t data_size, - WebPDecoderConfig* config); +WEBP_EXTERN WebPIDecoder* WebPIDecode(const uint8_t* data, size_t data_size, + WebPDecoderConfig* config); // Non-incremental version. This version decodes the full data at once, taking // 'config' into account. Returns decoding status (which should be VP8_STATUS_OK // if the decoding was successful). Note that 'config' cannot be NULL. -WEBP_EXTERN(VP8StatusCode) WebPDecode(const uint8_t* data, size_t data_size, - WebPDecoderConfig* config); +WEBP_EXTERN VP8StatusCode WebPDecode(const uint8_t* data, size_t data_size, + WebPDecoderConfig* config); #ifdef __cplusplus } // extern "C" diff --git a/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/demux.h b/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/demux.h new file mode 100644 index 00000000..555d6413 --- /dev/null +++ b/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/demux.h @@ -0,0 +1,363 @@ +// Copyright 2012 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// Demux API. +// Enables extraction of image and extended format data from WebP files. + +// Code Example: Demuxing WebP data to extract all the frames, ICC profile +// and EXIF/XMP metadata. +/* + WebPDemuxer* demux = WebPDemux(&webp_data); + + uint32_t width = WebPDemuxGetI(demux, WEBP_FF_CANVAS_WIDTH); + uint32_t height = WebPDemuxGetI(demux, WEBP_FF_CANVAS_HEIGHT); + // ... (Get information about the features present in the WebP file). + uint32_t flags = WebPDemuxGetI(demux, WEBP_FF_FORMAT_FLAGS); + + // ... (Iterate over all frames). + WebPIterator iter; + if (WebPDemuxGetFrame(demux, 1, &iter)) { + do { + // ... (Consume 'iter'; e.g. Decode 'iter.fragment' with WebPDecode(), + // ... and get other frame properties like width, height, offsets etc. + // ... see 'struct WebPIterator' below for more info). + } while (WebPDemuxNextFrame(&iter)); + WebPDemuxReleaseIterator(&iter); + } + + // ... (Extract metadata). + WebPChunkIterator chunk_iter; + if (flags & ICCP_FLAG) WebPDemuxGetChunk(demux, "ICCP", 1, &chunk_iter); + // ... (Consume the ICC profile in 'chunk_iter.chunk'). + WebPDemuxReleaseChunkIterator(&chunk_iter); + if (flags & EXIF_FLAG) WebPDemuxGetChunk(demux, "EXIF", 1, &chunk_iter); + // ... (Consume the EXIF metadata in 'chunk_iter.chunk'). + WebPDemuxReleaseChunkIterator(&chunk_iter); + if (flags & XMP_FLAG) WebPDemuxGetChunk(demux, "XMP ", 1, &chunk_iter); + // ... (Consume the XMP metadata in 'chunk_iter.chunk'). + WebPDemuxReleaseChunkIterator(&chunk_iter); + WebPDemuxDelete(demux); +*/ + +#ifndef WEBP_WEBP_DEMUX_H_ +#define WEBP_WEBP_DEMUX_H_ + +#include "./decode.h" // for WEBP_CSP_MODE +#include "./mux_types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define WEBP_DEMUX_ABI_VERSION 0x0107 // MAJOR(8b) + MINOR(8b) + +// Note: forward declaring enumerations is not allowed in (strict) C and C++, +// the types are left here for reference. +// typedef enum WebPDemuxState WebPDemuxState; +// typedef enum WebPFormatFeature WebPFormatFeature; +typedef struct WebPDemuxer WebPDemuxer; +typedef struct WebPIterator WebPIterator; +typedef struct WebPChunkIterator WebPChunkIterator; +typedef struct WebPAnimInfo WebPAnimInfo; +typedef struct WebPAnimDecoderOptions WebPAnimDecoderOptions; + +//------------------------------------------------------------------------------ + +// Returns the version number of the demux library, packed in hexadecimal using +// 8bits for each of major/minor/revision. E.g: v2.5.7 is 0x020507. +WEBP_EXTERN int WebPGetDemuxVersion(void); + +//------------------------------------------------------------------------------ +// Life of a Demux object + +typedef enum WebPDemuxState { + WEBP_DEMUX_PARSE_ERROR = -1, // An error occurred while parsing. + WEBP_DEMUX_PARSING_HEADER = 0, // Not enough data to parse full header. + WEBP_DEMUX_PARSED_HEADER = 1, // Header parsing complete, + // data may be available. + WEBP_DEMUX_DONE = 2 // Entire file has been parsed. +} WebPDemuxState; + +// Internal, version-checked, entry point +WEBP_EXTERN WebPDemuxer* WebPDemuxInternal( + const WebPData*, int, WebPDemuxState*, int); + +// Parses the full WebP file given by 'data'. For single images the WebP file +// header alone or the file header and the chunk header may be absent. +// Returns a WebPDemuxer object on successful parse, NULL otherwise. +static WEBP_INLINE WebPDemuxer* WebPDemux(const WebPData* data) { + return WebPDemuxInternal(data, 0, NULL, WEBP_DEMUX_ABI_VERSION); +} + +// Parses the possibly incomplete WebP file given by 'data'. +// If 'state' is non-NULL it will be set to indicate the status of the demuxer. +// Returns NULL in case of error or if there isn't enough data to start parsing; +// and a WebPDemuxer object on successful parse. +// Note that WebPDemuxer keeps internal pointers to 'data' memory segment. +// If this data is volatile, the demuxer object should be deleted (by calling +// WebPDemuxDelete()) and WebPDemuxPartial() called again on the new data. +// This is usually an inexpensive operation. +static WEBP_INLINE WebPDemuxer* WebPDemuxPartial( + const WebPData* data, WebPDemuxState* state) { + return WebPDemuxInternal(data, 1, state, WEBP_DEMUX_ABI_VERSION); +} + +// Frees memory associated with 'dmux'. +WEBP_EXTERN void WebPDemuxDelete(WebPDemuxer* dmux); + +//------------------------------------------------------------------------------ +// Data/information extraction. + +typedef enum WebPFormatFeature { + WEBP_FF_FORMAT_FLAGS, // bit-wise combination of WebPFeatureFlags + // corresponding to the 'VP8X' chunk (if present). + WEBP_FF_CANVAS_WIDTH, + WEBP_FF_CANVAS_HEIGHT, + WEBP_FF_LOOP_COUNT, // only relevant for animated file + WEBP_FF_BACKGROUND_COLOR, // idem. + WEBP_FF_FRAME_COUNT // Number of frames present in the demux object. + // In case of a partial demux, this is the number + // of frames seen so far, with the last frame + // possibly being partial. +} WebPFormatFeature; + +// Get the 'feature' value from the 'dmux'. +// NOTE: values are only valid if WebPDemux() was used or WebPDemuxPartial() +// returned a state > WEBP_DEMUX_PARSING_HEADER. +// If 'feature' is WEBP_FF_FORMAT_FLAGS, the returned value is a bit-wise +// combination of WebPFeatureFlags values. +// If 'feature' is WEBP_FF_LOOP_COUNT, WEBP_FF_BACKGROUND_COLOR, the returned +// value is only meaningful if the bitstream is animated. +WEBP_EXTERN uint32_t WebPDemuxGetI( + const WebPDemuxer* dmux, WebPFormatFeature feature); + +//------------------------------------------------------------------------------ +// Frame iteration. + +struct WebPIterator { + int frame_num; + int num_frames; // equivalent to WEBP_FF_FRAME_COUNT. + int x_offset, y_offset; // offset relative to the canvas. + int width, height; // dimensions of this frame. + int duration; // display duration in milliseconds. + WebPMuxAnimDispose dispose_method; // dispose method for the frame. + int complete; // true if 'fragment' contains a full frame. partial images + // may still be decoded with the WebP incremental decoder. + WebPData fragment; // The frame given by 'frame_num'. Note for historical + // reasons this is called a fragment. + int has_alpha; // True if the frame contains transparency. + WebPMuxAnimBlend blend_method; // Blend operation for the frame. + + uint32_t pad[2]; // padding for later use. + void* private_; // for internal use only. +}; + +// Retrieves frame 'frame_number' from 'dmux'. +// 'iter->fragment' points to the frame on return from this function. +// Setting 'frame_number' equal to 0 will return the last frame of the image. +// Returns false if 'dmux' is NULL or frame 'frame_number' is not present. +// Call WebPDemuxReleaseIterator() when use of the iterator is complete. +// NOTE: 'dmux' must persist for the lifetime of 'iter'. +WEBP_EXTERN int WebPDemuxGetFrame( + const WebPDemuxer* dmux, int frame_number, WebPIterator* iter); + +// Sets 'iter->fragment' to point to the next ('iter->frame_num' + 1) or +// previous ('iter->frame_num' - 1) frame. These functions do not loop. +// Returns true on success, false otherwise. +WEBP_EXTERN int WebPDemuxNextFrame(WebPIterator* iter); +WEBP_EXTERN int WebPDemuxPrevFrame(WebPIterator* iter); + +// Releases any memory associated with 'iter'. +// Must be called before any subsequent calls to WebPDemuxGetChunk() on the same +// iter. Also, must be called before destroying the associated WebPDemuxer with +// WebPDemuxDelete(). +WEBP_EXTERN void WebPDemuxReleaseIterator(WebPIterator* iter); + +//------------------------------------------------------------------------------ +// Chunk iteration. + +struct WebPChunkIterator { + // The current and total number of chunks with the fourcc given to + // WebPDemuxGetChunk(). + int chunk_num; + int num_chunks; + WebPData chunk; // The payload of the chunk. + + uint32_t pad[6]; // padding for later use + void* private_; +}; + +// Retrieves the 'chunk_number' instance of the chunk with id 'fourcc' from +// 'dmux'. +// 'fourcc' is a character array containing the fourcc of the chunk to return, +// e.g., "ICCP", "XMP ", "EXIF", etc. +// Setting 'chunk_number' equal to 0 will return the last chunk in a set. +// Returns true if the chunk is found, false otherwise. Image related chunk +// payloads are accessed through WebPDemuxGetFrame() and related functions. +// Call WebPDemuxReleaseChunkIterator() when use of the iterator is complete. +// NOTE: 'dmux' must persist for the lifetime of the iterator. +WEBP_EXTERN int WebPDemuxGetChunk(const WebPDemuxer* dmux, + const char fourcc[4], int chunk_number, + WebPChunkIterator* iter); + +// Sets 'iter->chunk' to point to the next ('iter->chunk_num' + 1) or previous +// ('iter->chunk_num' - 1) chunk. These functions do not loop. +// Returns true on success, false otherwise. +WEBP_EXTERN int WebPDemuxNextChunk(WebPChunkIterator* iter); +WEBP_EXTERN int WebPDemuxPrevChunk(WebPChunkIterator* iter); + +// Releases any memory associated with 'iter'. +// Must be called before destroying the associated WebPDemuxer with +// WebPDemuxDelete(). +WEBP_EXTERN void WebPDemuxReleaseChunkIterator(WebPChunkIterator* iter); + +//------------------------------------------------------------------------------ +// WebPAnimDecoder API +// +// This API allows decoding (possibly) animated WebP images. +// +// Code Example: +/* + WebPAnimDecoderOptions dec_options; + WebPAnimDecoderOptionsInit(&dec_options); + // Tune 'dec_options' as needed. + WebPAnimDecoder* dec = WebPAnimDecoderNew(webp_data, &dec_options); + WebPAnimInfo anim_info; + WebPAnimDecoderGetInfo(dec, &anim_info); + for (uint32_t i = 0; i < anim_info.loop_count; ++i) { + while (WebPAnimDecoderHasMoreFrames(dec)) { + uint8_t* buf; + int timestamp; + WebPAnimDecoderGetNext(dec, &buf, ×tamp); + // ... (Render 'buf' based on 'timestamp'). + // ... (Do NOT free 'buf', as it is owned by 'dec'). + } + WebPAnimDecoderReset(dec); + } + const WebPDemuxer* demuxer = WebPAnimDecoderGetDemuxer(dec); + // ... (Do something using 'demuxer'; e.g. get EXIF/XMP/ICC data). + WebPAnimDecoderDelete(dec); +*/ + +typedef struct WebPAnimDecoder WebPAnimDecoder; // Main opaque object. + +// Global options. +struct WebPAnimDecoderOptions { + // Output colorspace. Only the following modes are supported: + // MODE_RGBA, MODE_BGRA, MODE_rgbA and MODE_bgrA. + WEBP_CSP_MODE color_mode; + int use_threads; // If true, use multi-threaded decoding. + uint32_t padding[7]; // Padding for later use. +}; + +// Internal, version-checked, entry point. +WEBP_EXTERN int WebPAnimDecoderOptionsInitInternal( + WebPAnimDecoderOptions*, int); + +// Should always be called, to initialize a fresh WebPAnimDecoderOptions +// structure before modification. Returns false in case of version mismatch. +// WebPAnimDecoderOptionsInit() must have succeeded before using the +// 'dec_options' object. +static WEBP_INLINE int WebPAnimDecoderOptionsInit( + WebPAnimDecoderOptions* dec_options) { + return WebPAnimDecoderOptionsInitInternal(dec_options, + WEBP_DEMUX_ABI_VERSION); +} + +// Internal, version-checked, entry point. +WEBP_EXTERN WebPAnimDecoder* WebPAnimDecoderNewInternal( + const WebPData*, const WebPAnimDecoderOptions*, int); + +// Creates and initializes a WebPAnimDecoder object. +// Parameters: +// webp_data - (in) WebP bitstream. This should remain unchanged during the +// lifetime of the output WebPAnimDecoder object. +// dec_options - (in) decoding options. Can be passed NULL to choose +// reasonable defaults (in particular, color mode MODE_RGBA +// will be picked). +// Returns: +// A pointer to the newly created WebPAnimDecoder object, or NULL in case of +// parsing error, invalid option or memory error. +static WEBP_INLINE WebPAnimDecoder* WebPAnimDecoderNew( + const WebPData* webp_data, const WebPAnimDecoderOptions* dec_options) { + return WebPAnimDecoderNewInternal(webp_data, dec_options, + WEBP_DEMUX_ABI_VERSION); +} + +// Global information about the animation.. +struct WebPAnimInfo { + uint32_t canvas_width; + uint32_t canvas_height; + uint32_t loop_count; + uint32_t bgcolor; + uint32_t frame_count; + uint32_t pad[4]; // padding for later use +}; + +// Get global information about the animation. +// Parameters: +// dec - (in) decoder instance to get information from. +// info - (out) global information fetched from the animation. +// Returns: +// True on success. +WEBP_EXTERN int WebPAnimDecoderGetInfo(const WebPAnimDecoder* dec, + WebPAnimInfo* info); + +// Fetch the next frame from 'dec' based on options supplied to +// WebPAnimDecoderNew(). This will be a fully reconstructed canvas of size +// 'canvas_width * 4 * canvas_height', and not just the frame sub-rectangle. The +// returned buffer 'buf' is valid only until the next call to +// WebPAnimDecoderGetNext(), WebPAnimDecoderReset() or WebPAnimDecoderDelete(). +// Parameters: +// dec - (in/out) decoder instance from which the next frame is to be fetched. +// buf - (out) decoded frame. +// timestamp - (out) timestamp of the frame in milliseconds. +// Returns: +// False if any of the arguments are NULL, or if there is a parsing or +// decoding error, or if there are no more frames. Otherwise, returns true. +WEBP_EXTERN int WebPAnimDecoderGetNext(WebPAnimDecoder* dec, + uint8_t** buf, int* timestamp); + +// Check if there are more frames left to decode. +// Parameters: +// dec - (in) decoder instance to be checked. +// Returns: +// True if 'dec' is not NULL and some frames are yet to be decoded. +// Otherwise, returns false. +WEBP_EXTERN int WebPAnimDecoderHasMoreFrames(const WebPAnimDecoder* dec); + +// Resets the WebPAnimDecoder object, so that next call to +// WebPAnimDecoderGetNext() will restart decoding from 1st frame. This would be +// helpful when all frames need to be decoded multiple times (e.g. +// info.loop_count times) without destroying and recreating the 'dec' object. +// Parameters: +// dec - (in/out) decoder instance to be reset +WEBP_EXTERN void WebPAnimDecoderReset(WebPAnimDecoder* dec); + +// Grab the internal demuxer object. +// Getting the demuxer object can be useful if one wants to use operations only +// available through demuxer; e.g. to get XMP/EXIF/ICC metadata. The returned +// demuxer object is owned by 'dec' and is valid only until the next call to +// WebPAnimDecoderDelete(). +// +// Parameters: +// dec - (in) decoder instance from which the demuxer object is to be fetched. +WEBP_EXTERN const WebPDemuxer* WebPAnimDecoderGetDemuxer( + const WebPAnimDecoder* dec); + +// Deletes the WebPAnimDecoder object. +// Parameters: +// dec - (in/out) decoder instance to be deleted +WEBP_EXTERN void WebPAnimDecoderDelete(WebPAnimDecoder* dec); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif /* WEBP_WEBP_DEMUX_H_ */ diff --git a/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/encode.h b/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/encode.h index 35fde1d0..7ec3543d 100644 --- a/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/encode.h +++ b/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/encode.h @@ -35,7 +35,7 @@ typedef struct WebPMemoryWriter WebPMemoryWriter; // Return the encoder's version number, packed in hexadecimal using 8bits for // each of major/minor/revision. E.g: v2.5.7 is 0x020507. -WEBP_EXTERN(int) WebPGetEncoderVersion(void); +WEBP_EXTERN int WebPGetEncoderVersion(void); //------------------------------------------------------------------------------ // One-stop-shop call! No questions asked: @@ -46,37 +46,37 @@ WEBP_EXTERN(int) WebPGetEncoderVersion(void); // These functions compress using the lossy format, and the quality_factor // can go from 0 (smaller output, lower quality) to 100 (best quality, // larger output). -WEBP_EXTERN(size_t) WebPEncodeRGB(const uint8_t* rgb, +WEBP_EXTERN size_t WebPEncodeRGB(const uint8_t* rgb, + int width, int height, int stride, + float quality_factor, uint8_t** output); +WEBP_EXTERN size_t WebPEncodeBGR(const uint8_t* bgr, + int width, int height, int stride, + float quality_factor, uint8_t** output); +WEBP_EXTERN size_t WebPEncodeRGBA(const uint8_t* rgba, int width, int height, int stride, float quality_factor, uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeBGR(const uint8_t* bgr, +WEBP_EXTERN size_t WebPEncodeBGRA(const uint8_t* bgra, int width, int height, int stride, float quality_factor, uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeRGBA(const uint8_t* rgba, - int width, int height, int stride, - float quality_factor, uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeBGRA(const uint8_t* bgra, - int width, int height, int stride, - float quality_factor, uint8_t** output); // These functions are the equivalent of the above, but compressing in a // lossless manner. Files are usually larger than lossy format, but will // not suffer any compression loss. -WEBP_EXTERN(size_t) WebPEncodeLosslessRGB(const uint8_t* rgb, +WEBP_EXTERN size_t WebPEncodeLosslessRGB(const uint8_t* rgb, + int width, int height, int stride, + uint8_t** output); +WEBP_EXTERN size_t WebPEncodeLosslessBGR(const uint8_t* bgr, + int width, int height, int stride, + uint8_t** output); +WEBP_EXTERN size_t WebPEncodeLosslessRGBA(const uint8_t* rgba, int width, int height, int stride, uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeLosslessBGR(const uint8_t* bgr, +WEBP_EXTERN size_t WebPEncodeLosslessBGRA(const uint8_t* bgra, int width, int height, int stride, uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeLosslessRGBA(const uint8_t* rgba, - int width, int height, int stride, - uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeLosslessBGRA(const uint8_t* bgra, - int width, int height, int stride, - uint8_t** output); // Releases memory returned by the WebPEncode*() functions above. -WEBP_EXTERN(void) WebPFree(void* ptr); +WEBP_EXTERN void WebPFree(void* ptr); //------------------------------------------------------------------------------ // Coding parameters @@ -93,12 +93,15 @@ typedef enum WebPImageHint { // Compression parameters. struct WebPConfig { int lossless; // Lossless encoding (0=lossy(default), 1=lossless). - float quality; // between 0 (smallest file) and 100 (biggest) + float quality; // between 0 and 100. For lossy, 0 gives the smallest + // size and 100 the largest. For lossless, this + // parameter is the amount of effort put into the + // compression: 0 is the fastest but gives larger + // files compared to the slowest, but best, 100. int method; // quality/speed trade-off (0=fast, 6=slower-better) WebPImageHint image_hint; // Hint for image type (lossless only for now). - // Parameters related to lossy compression only: int target_size; // if non-zero, set the desired target size in bytes. // Takes precedence over the 'compression' parameter. float target_PSNR; // if non-zero, specifies the minimal distortion to @@ -159,7 +162,7 @@ typedef enum WebPPreset { } WebPPreset; // Internal, version-checked, entry point -WEBP_EXTERN(int) WebPConfigInitInternal(WebPConfig*, WebPPreset, float, int); +WEBP_EXTERN int WebPConfigInitInternal(WebPConfig*, WebPPreset, float, int); // Should always be called, to initialize a fresh WebPConfig structure before // modification. Returns false in case of version mismatch. WebPConfigInit() @@ -186,15 +189,15 @@ static WEBP_INLINE int WebPConfigPreset(WebPConfig* config, // speed and final compressed size. // This function will overwrite several fields from config: 'method', 'quality' // and 'lossless'. Returns false in case of parameter error. -WEBP_EXTERN(int) WebPConfigLosslessPreset(WebPConfig* config, int level); +WEBP_EXTERN int WebPConfigLosslessPreset(WebPConfig* config, int level); // Returns true if 'config' is non-NULL and all configuration parameters are // within their valid ranges. -WEBP_EXTERN(int) WebPValidateConfig(const WebPConfig* config); +WEBP_EXTERN int WebPValidateConfig(const WebPConfig* config); //------------------------------------------------------------------------------ // Input / Output -// Structure for storing auxiliary statistics (mostly for lossy encoding). +// Structure for storing auxiliary statistics. struct WebPAuxStats { int coded_size; // final size @@ -242,16 +245,16 @@ struct WebPMemoryWriter { }; // The following must be called first before any use. -WEBP_EXTERN(void) WebPMemoryWriterInit(WebPMemoryWriter* writer); +WEBP_EXTERN void WebPMemoryWriterInit(WebPMemoryWriter* writer); // The following must be called to deallocate writer->mem memory. The 'writer' // object itself is not deallocated. -WEBP_EXTERN(void) WebPMemoryWriterClear(WebPMemoryWriter* writer); +WEBP_EXTERN void WebPMemoryWriterClear(WebPMemoryWriter* writer); // The custom writer to be used with WebPMemoryWriter as custom_ptr. Upon // completion, writer.mem and writer.size will hold the coded data. // writer.mem must be freed by calling WebPMemoryWriterClear. -WEBP_EXTERN(int) WebPMemoryWrite(const uint8_t* data, size_t data_size, - const WebPPicture* picture); +WEBP_EXTERN int WebPMemoryWrite(const uint8_t* data, size_t data_size, + const WebPPicture* picture); // Progress hook, called from time to time to report progress. It can return // false to request an abort of the encoding process, or true otherwise if @@ -354,7 +357,7 @@ struct WebPPicture { }; // Internal, version-checked, entry point -WEBP_EXTERN(int) WebPPictureInitInternal(WebPPicture*, int); +WEBP_EXTERN int WebPPictureInitInternal(WebPPicture*, int); // Should always be called, to initialize the structure. Returns false in case // of version mismatch. WebPPictureInit() must have succeeded before using the @@ -371,20 +374,20 @@ static WEBP_INLINE int WebPPictureInit(WebPPicture* picture) { // Allocate y/u/v buffers as per colorspace/width/height specification. // Note! This function will free the previous buffer if needed. // Returns false in case of memory error. -WEBP_EXTERN(int) WebPPictureAlloc(WebPPicture* picture); +WEBP_EXTERN int WebPPictureAlloc(WebPPicture* picture); // Release the memory allocated by WebPPictureAlloc() or WebPPictureImport*(). // Note that this function does _not_ free the memory used by the 'picture' // object itself. // Besides memory (which is reclaimed) all other fields of 'picture' are // preserved. -WEBP_EXTERN(void) WebPPictureFree(WebPPicture* picture); +WEBP_EXTERN void WebPPictureFree(WebPPicture* picture); // Copy the pixels of *src into *dst, using WebPPictureAlloc. Upon return, *dst // will fully own the copied pixels (this is not a view). The 'dst' picture need // not be initialized as its content is overwritten. // Returns false in case of memory allocation error. -WEBP_EXTERN(int) WebPPictureCopy(const WebPPicture* src, WebPPicture* dst); +WEBP_EXTERN int WebPPictureCopy(const WebPPicture* src, WebPPicture* dst); // Compute the single distortion for packed planes of samples. // 'src' will be compared to 'ref', and the raw distortion stored into @@ -393,19 +396,19 @@ WEBP_EXTERN(int) WebPPictureCopy(const WebPPicture* src, WebPPicture* dst); // 'x_step' is the horizontal stride (in bytes) between samples. // 'src/ref_stride' is the byte distance between rows. // Returns false in case of error (bad parameter, memory allocation error, ...). -WEBP_EXTERN(int) WebPPlaneDistortion(const uint8_t* src, size_t src_stride, - const uint8_t* ref, size_t ref_stride, - int width, int height, - size_t x_step, - int type, // 0 = PSNR, 1 = SSIM, 2 = LSIM - float* distortion, float* result); +WEBP_EXTERN int WebPPlaneDistortion(const uint8_t* src, size_t src_stride, + const uint8_t* ref, size_t ref_stride, + int width, int height, + size_t x_step, + int type, // 0 = PSNR, 1 = SSIM, 2 = LSIM + float* distortion, float* result); // Compute PSNR, SSIM or LSIM distortion metric between two pictures. Results // are in dB, stored in result[] in the B/G/R/A/All order. The distortion is // always performed using ARGB samples. Hence if the input is YUV(A), the // picture will be internally converted to ARGB (just for the measurement). // Warning: this function is rather CPU-intensive. -WEBP_EXTERN(int) WebPPictureDistortion( +WEBP_EXTERN int WebPPictureDistortion( const WebPPicture* src, const WebPPicture* ref, int metric_type, // 0 = PSNR, 1 = SSIM, 2 = LSIM float result[5]); @@ -418,8 +421,8 @@ WEBP_EXTERN(int) WebPPictureDistortion( // must be fully be comprised inside the 'src' source picture. If the source // picture uses the YUV420 colorspace, the top and left coordinates will be // snapped to even values. -WEBP_EXTERN(int) WebPPictureCrop(WebPPicture* picture, - int left, int top, int width, int height); +WEBP_EXTERN int WebPPictureCrop(WebPPicture* picture, + int left, int top, int width, int height); // Extracts a view from 'src' picture into 'dst'. The rectangle for the view // is defined by the top-left corner pixel coordinates (left, top) as well @@ -432,42 +435,42 @@ WEBP_EXTERN(int) WebPPictureCrop(WebPPicture* picture, // with WebPPictureInit() if it is different from 'src', since its content will // be overwritten. // Returns false in case of memory allocation error or invalid parameters. -WEBP_EXTERN(int) WebPPictureView(const WebPPicture* src, - int left, int top, int width, int height, - WebPPicture* dst); +WEBP_EXTERN int WebPPictureView(const WebPPicture* src, + int left, int top, int width, int height, + WebPPicture* dst); // Returns true if the 'picture' is actually a view and therefore does // not own the memory for pixels. -WEBP_EXTERN(int) WebPPictureIsView(const WebPPicture* picture); +WEBP_EXTERN int WebPPictureIsView(const WebPPicture* picture); // Rescale a picture to new dimension width x height. // If either 'width' or 'height' (but not both) is 0 the corresponding // dimension will be calculated preserving the aspect ratio. // No gamma correction is applied. // Returns false in case of error (invalid parameter or insufficient memory). -WEBP_EXTERN(int) WebPPictureRescale(WebPPicture* pic, int width, int height); +WEBP_EXTERN int WebPPictureRescale(WebPPicture* pic, int width, int height); // Colorspace conversion function to import RGB samples. // Previous buffer will be free'd, if any. // *rgb buffer should have a size of at least height * rgb_stride. // Returns false in case of memory error. -WEBP_EXTERN(int) WebPPictureImportRGB( +WEBP_EXTERN int WebPPictureImportRGB( WebPPicture* picture, const uint8_t* rgb, int rgb_stride); // Same, but for RGBA buffer. -WEBP_EXTERN(int) WebPPictureImportRGBA( +WEBP_EXTERN int WebPPictureImportRGBA( WebPPicture* picture, const uint8_t* rgba, int rgba_stride); // Same, but for RGBA buffer. Imports the RGB direct from the 32-bit format // input buffer ignoring the alpha channel. Avoids needing to copy the data // to a temporary 24-bit RGB buffer to import the RGB only. -WEBP_EXTERN(int) WebPPictureImportRGBX( +WEBP_EXTERN int WebPPictureImportRGBX( WebPPicture* picture, const uint8_t* rgbx, int rgbx_stride); // Variants of the above, but taking BGR(A|X) input. -WEBP_EXTERN(int) WebPPictureImportBGR( +WEBP_EXTERN int WebPPictureImportBGR( WebPPicture* picture, const uint8_t* bgr, int bgr_stride); -WEBP_EXTERN(int) WebPPictureImportBGRA( +WEBP_EXTERN int WebPPictureImportBGRA( WebPPicture* picture, const uint8_t* bgra, int bgra_stride); -WEBP_EXTERN(int) WebPPictureImportBGRX( +WEBP_EXTERN int WebPPictureImportBGRX( WebPPicture* picture, const uint8_t* bgrx, int bgrx_stride); // Converts picture->argb data to the YUV420A format. The 'colorspace' @@ -476,14 +479,14 @@ WEBP_EXTERN(int) WebPPictureImportBGRX( // non-opaque transparent values is detected, and 'colorspace' will be // adjusted accordingly. Note that this method is lossy. // Returns false in case of error. -WEBP_EXTERN(int) WebPPictureARGBToYUVA(WebPPicture* picture, - WebPEncCSP /*colorspace = WEBP_YUV420*/); +WEBP_EXTERN int WebPPictureARGBToYUVA(WebPPicture* picture, + WebPEncCSP /*colorspace = WEBP_YUV420*/); // Same as WebPPictureARGBToYUVA(), but the conversion is done using // pseudo-random dithering with a strength 'dithering' between // 0.0 (no dithering) and 1.0 (maximum dithering). This is useful // for photographic picture. -WEBP_EXTERN(int) WebPPictureARGBToYUVADithered( +WEBP_EXTERN int WebPPictureARGBToYUVADithered( WebPPicture* picture, WebPEncCSP colorspace, float dithering); // Performs 'sharp' RGBA->YUVA420 downsampling and colorspace conversion. @@ -491,9 +494,9 @@ WEBP_EXTERN(int) WebPPictureARGBToYUVADithered( // method is roughly 2x slower than WebPPictureARGBToYUVA() but produces better // and sharper YUV representation. // Returns false in case of error. -WEBP_EXTERN(int) WebPPictureSharpARGBToYUVA(WebPPicture* picture); +WEBP_EXTERN int WebPPictureSharpARGBToYUVA(WebPPicture* picture); // kept for backward compatibility: -WEBP_EXTERN(int) WebPPictureSmartARGBToYUVA(WebPPicture* picture); +WEBP_EXTERN int WebPPictureSmartARGBToYUVA(WebPPicture* picture); // Converts picture->yuv to picture->argb and sets picture->use_argb to true. // The input format must be YUV_420 or YUV_420A. The conversion from YUV420 to @@ -501,22 +504,22 @@ WEBP_EXTERN(int) WebPPictureSmartARGBToYUVA(WebPPicture* picture); // Note that the use of this colorspace is discouraged if one has access to the // raw ARGB samples, since using YUV420 is comparatively lossy. // Returns false in case of error. -WEBP_EXTERN(int) WebPPictureYUVAToARGB(WebPPicture* picture); +WEBP_EXTERN int WebPPictureYUVAToARGB(WebPPicture* picture); // Helper function: given a width x height plane of RGBA or YUV(A) samples -// clean-up the YUV or RGB samples under fully transparent area, to help -// compressibility (no guarantee, though). -WEBP_EXTERN(void) WebPCleanupTransparentArea(WebPPicture* picture); +// clean-up or smoothen the YUV or RGB samples under fully transparent area, +// to help compressibility (no guarantee, though). +WEBP_EXTERN void WebPCleanupTransparentArea(WebPPicture* picture); // Scan the picture 'picture' for the presence of non fully opaque alpha values. // Returns true in such case. Otherwise returns false (indicating that the // alpha plane can be ignored altogether e.g.). -WEBP_EXTERN(int) WebPPictureHasTransparency(const WebPPicture* picture); +WEBP_EXTERN int WebPPictureHasTransparency(const WebPPicture* picture); // Remove the transparency information (if present) by blending the color with // the background color 'background_rgb' (specified as 24bit RGB triplet). // After this call, all alpha values are reset to 0xff. -WEBP_EXTERN(void) WebPBlendAlpha(WebPPicture* pic, uint32_t background_rgb); +WEBP_EXTERN void WebPBlendAlpha(WebPPicture* pic, uint32_t background_rgb); //------------------------------------------------------------------------------ // Main call @@ -531,7 +534,7 @@ WEBP_EXTERN(void) WebPBlendAlpha(WebPPicture* pic, uint32_t background_rgb); // the former for lossy encoding, and the latter for lossless encoding // (when config.lossless is true). Automatic conversion from one format to // another is provided but they both incur some loss. -WEBP_EXTERN(int) WebPEncode(const WebPConfig* config, WebPPicture* picture); +WEBP_EXTERN int WebPEncode(const WebPConfig* config, WebPPicture* picture); //------------------------------------------------------------------------------ diff --git a/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/mux_types.h b/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/mux_types.h new file mode 100644 index 00000000..b37e2c67 --- /dev/null +++ b/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/mux_types.h @@ -0,0 +1,98 @@ +// Copyright 2012 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// Data-types common to the mux and demux libraries. +// +// Author: Urvang (urvang@google.com) + +#ifndef WEBP_WEBP_MUX_TYPES_H_ +#define WEBP_WEBP_MUX_TYPES_H_ + +#include // free() +#include // memset() +#include "./types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +// Note: forward declaring enumerations is not allowed in (strict) C and C++, +// the types are left here for reference. +// typedef enum WebPFeatureFlags WebPFeatureFlags; +// typedef enum WebPMuxAnimDispose WebPMuxAnimDispose; +// typedef enum WebPMuxAnimBlend WebPMuxAnimBlend; +typedef struct WebPData WebPData; + +// VP8X Feature Flags. +typedef enum WebPFeatureFlags { + ANIMATION_FLAG = 0x00000002, + XMP_FLAG = 0x00000004, + EXIF_FLAG = 0x00000008, + ALPHA_FLAG = 0x00000010, + ICCP_FLAG = 0x00000020, + + ALL_VALID_FLAGS = 0x0000003e +} WebPFeatureFlags; + +// Dispose method (animation only). Indicates how the area used by the current +// frame is to be treated before rendering the next frame on the canvas. +typedef enum WebPMuxAnimDispose { + WEBP_MUX_DISPOSE_NONE, // Do not dispose. + WEBP_MUX_DISPOSE_BACKGROUND // Dispose to background color. +} WebPMuxAnimDispose; + +// Blend operation (animation only). Indicates how transparent pixels of the +// current frame are blended with those of the previous canvas. +typedef enum WebPMuxAnimBlend { + WEBP_MUX_BLEND, // Blend. + WEBP_MUX_NO_BLEND // Do not blend. +} WebPMuxAnimBlend; + +// Data type used to describe 'raw' data, e.g., chunk data +// (ICC profile, metadata) and WebP compressed image data. +struct WebPData { + const uint8_t* bytes; + size_t size; +}; + +// Initializes the contents of the 'webp_data' object with default values. +static WEBP_INLINE void WebPDataInit(WebPData* webp_data) { + if (webp_data != NULL) { + memset(webp_data, 0, sizeof(*webp_data)); + } +} + +// Clears the contents of the 'webp_data' object by calling free(). Does not +// deallocate the object itself. +static WEBP_INLINE void WebPDataClear(WebPData* webp_data) { + if (webp_data != NULL) { + free((void*)webp_data->bytes); + WebPDataInit(webp_data); + } +} + +// Allocates necessary storage for 'dst' and copies the contents of 'src'. +// Returns true on success. +static WEBP_INLINE int WebPDataCopy(const WebPData* src, WebPData* dst) { + if (src == NULL || dst == NULL) return 0; + WebPDataInit(dst); + if (src->bytes != NULL && src->size != 0) { + dst->bytes = (uint8_t*)malloc(src->size); + if (dst->bytes == NULL) return 0; + memcpy((void*)dst->bytes, src->bytes, src->size); + dst->size = src->size; + } + return 1; +} + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif /* WEBP_WEBP_MUX_TYPES_H_ */ diff --git a/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/types.h b/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/types.h index 98fff35a..989a763f 100644 --- a/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/types.h +++ b/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/types.h @@ -40,9 +40,9 @@ typedef long long int int64_t; // This explicitly marks library functions and allows for changing the // signature for e.g., Windows DLL builds. # if defined(__GNUC__) && __GNUC__ >= 4 -# define WEBP_EXTERN(type) extern __attribute__ ((visibility ("default"))) type +# define WEBP_EXTERN extern __attribute__ ((visibility ("default"))) # else -# define WEBP_EXTERN(type) extern type +# define WEBP_EXTERN extern # endif /* __GNUC__ >= 4 */ #endif /* WEBP_EXTERN */ diff --git a/Xcode/Frameworks/webp.framework/Versions/A/webp b/Xcode/Frameworks/webp.framework/Versions/A/webp index 6d7fd7fa3cfb452dd8ab86346b2bb6eb85507876..861411dc3e0ecb2fd723ec6354869a696bb84c55 100755 GIT binary patch literal 653148 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%0An}6eqf| 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%0AH)aeC-DSh!vssdFRM(X}3W=G3#gWb-T}M2hat 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%0A9KVfCH>QfDN_rh8AeFTOAfHHl4i_udI9?t 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%0A#{LE3E303^3MFKS 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 I$?1RpA71iy@Bjb+ literal 1354828 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‹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 F_9NASVYBp?RFV| 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
uF!_}U~VpR((=@Qv@TW2Qku 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≷Ej8(aZ0?hRP;!M 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 z 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
hAJ_jE_Wz{) z!nHqW=*e$#@`s*ff8ap$m%(YOJN_(xz~JN$zs&vv#IL#bPcZaUzUD)qr|o-GzVE3L zuHSPL2M?kSIwdSl@r!Lw{|J4xHX~mSo^N}edXpk4b!Z=MzveX6ZNEEr%lHWxoZ6oj z|5)*BuKnirpW1KoV)dVncxL@C0jK(ZV{MN!QvN@se9d+FW__uAlT-b(;{ROynrna3 zXfOFqPX74cNs0Si4&wgPT>G=`+%5fQa`H#tV*k$K*IfIf_+1?(;#9uL$)8?FbCl{S ze$8nrEx!=%)22k6{3a)V?njz~>Hi;lZvrPtQKtWwoT4Hnhaf7}>Y#Wq)C||)fi)*H zFw+!s0U~zQbk{J=^ig#8FawIT3nB_)iChXoskk5_wt|APN~?IFsJ-HWE=sF_x~$kM ztHOHy-zVPZ$%@LVX?w-#-T!aR&-7G&BjSlSA~G^EGBYxQdNEvsK4m{2G4#2odI#)P z)Qc1SU$9@yx&9dH#nNX}`j}zAbg1i3q+TpNzB9!JM*d@lzP`lu8>tsdpSSPQut^^? z^y4SE{`J(0r7yU5qK_H+>`5NrV(P`x7k6y7A2al&lIuUL{F9|0b9rJvX6SQe*ME_E zvGgVE*oL1D`!8nbN7lLiJJgF29`&baf7qmt8TxVRAEI77U45?0?f*{cCre*-^NIbK zVZX-kPnqrKuUPs5c5K5B@*i_Zf4AFz9`)m7>EFCVkSBWaAr>C(zt%H5hOBkXPBqTC zH2l9M#TTadeJTEAiocfPpQQMADSrAv&GwO>soLxPEqr&B-nqtTuYZ+luS-2%URRm_ zEQ?gE@`|qyDDRl3vVTj;{+G65ze@Xu=H0&diP|q(d~yDdH*S~z5!%0<_QkSaVi|&w z|CmwVCaC`g^NBh5`een~u|I|a8?LWg9_S5~@JnavgKkBBpk*(8mmY@iZ_0E2$StKc3RZ41I3U^|w$jmcE+O#~jj6{hdlb zInk%?C#w-dpE=X*f0uf(^fmWR&X1Ub{Wo}kAIm;j`W$v_!%v6(7c=yuXSsfodNIP! zvcE#AKNmCflmF=YKT|K3egr$V;Rp6(hQ5l$d~JKipc!HJN96^5%+ODK$o1DzFP1(Sj_k)A z^f$QvqtcV5FPIh^81@SQ+rZH0KJ5BWQ7?vnI3KWM8-AcKMht!RM%RCldNG1QU$Z}K zVCZ9pKJyXRf0KIgkBr;Z$1#&&Q+#8A8u=Mxe7|OVVuTO*iNc5cM2z%gZ}RkPf0%`j zSo&NP9{QM}&r|<2>c!HJrSvgFKS}*FsTWH>?#WB?A2al0AM*hFQ!kdjh8^4RgY?G? zeeq`3+rm}epCltZ%I}S-^FjP73!gK8ZOe=?emA?;Pk@!=JozNB^`EpJ^$=O>Qojwn ztCa`))0dJn3;coMRmM3Pv)_-V`1TZkJ;gss@qeT^b9i(7*%UuN#RsQ&af(k!aV5po z6u%+GZ%Of`DgI!JKc3<*r}#%H{%wl4o7bFw9RI2MkGom;?&x?t#~A&$^!uUlPkQ}2 z&-`(Ii4i~QSKMDk{fv1k`&Xvye`G86CusjUN4S0Q6SaSc#TVy)p>ezZ>m==el=j84 zpJy3@k^h)+e&%lV^7{hyV(GKku?;`a#|(Y`HrM}kITTLtmr*MC!%T z=a@Y(^f5y}`dJS!K)qP{YDyn7^f_Bo4%^w(i=~g#3;Qt#`_#W(_Q}%ML+p+6iy8Xj z=iUBQ)QhDbN$F#Tew_O2s25LHU;KjG|FrCrrLSYhHvAy}F~k1kov!~D^}yke*7X8Uv%#z{V_v7_5%-aHuYlZV|(rF=YHt=8ueo7C$STiU(B$dz2EikQ~t@)kEQf6 zLq9&@`j1mDmcE|S#|(Y-C$9ej_2TL3vk$ob+e$xqy86)vUH>5UV(D}4odKi#V-ETM znFsit@=un&n(A-H41M8Y*YEO5KOe=?kEir8L!bSX>z_@%So-`9;qWKv7awThbM6)X zKO)6TQhZ{HPd7&Yx6c0UWhwt#Q~b3QKb+#Hys9}p&q?t?DLyjAYf^k#ir<#v52yGu zDgKufKbYdjQjGGRs(-iZkh{xRcxtWiH)aJ?Aeaee3GisXEZd8*_0MvE^lzqc8;E5E{Tz5YCA{-OSmWk0_D zBK^?WjB=Zbeaz60?&11FsTWIMz>aPBf&G}FpWM^+ zwlr?24`PIe{Zh()%+MG2cKs^q#nM-?V;g>8KW6C1_HlhD^gnuIpb;j~V*>3*7$o)Qb^5oPXOv-O#7=pWom0 zw@6Qxek`aP`j}yVlHor~y;%BuN*^=yxfib<5L!Ut-+udX$^v_Up7Smi-!S;0NUwGtxgg*Y&qhFGl##elQKvPecrT?O@mc z3-w~@$D{DDA2al&LtOu3>cxp3JGS8`=p%+cf0*n4NWB=rkp5B>9{QM}uO06CeHQug z7fU~q8h;xz^x1;zUr4=J`iUJZ5w?M0KW6AB7rFjO>c!G$v11#4ppO~)%o5jkP%nnp zEc+{@?8gj!;b_-)Q7@K0haKDS1N$*UUpmJ1o2eHgJnT={A2#VH0yzi!%Uyqg?31O> zW5+h>V}`!E!u8isFP47N<%vG#kp2$W->meLr>id>>-sNKFP45ZWj|)v&lFw%uhfgB zuch=cLtmr*SJaEAtIr+h_P1Z`^~#~jLUmFo-C zXUNh|r1UXEKf&;8s258g+v_mLn4zz)cKfGNFP8qsl>L~eYX8r+_`0dZ&*jGL+W+Dj zx4-uiKYn7_ucqwBjP#FDe+czr>FX(d%+QzCy8R{8i=`h)>0^d|g8J3ei>05$j&1nq zu>WF)e*6Tt-$%U|;b+-j4Li2s2l|+yFTKX~Z&3Ql2oL>e>iQou^x2bLe=+r9>926_ z#D2_E9sjz;7a#u*8@D_Dqa`=6-%)=2#j;;Wr9Wn*e{!AcXHzehzLe6(41KZU`Xi_p zOP@*QKjxs{-~kp%PnN#0vmFH6z#aBq%+S{cTz@R}V(CXy_G5;=FysMFq+Tq2Y_FaD zkuzQ2MZH-1TB`hFhW+eWt{FX(d%)vhO56M1R`q7j=X6TETxc!Hz7fU~q(#H(_IQ5g%i>0rp z^f5zUz0~dhhI+B|aeeDB$C#n7U*`JXEB|EaYbpCNL!ZCg^-o&r?Qg=SL;b0y^f3qf z)bC7vUGYhegxH23q`w+5^x1d2{avXSBN*&wqwvtj41MlBuHT1xvGk)B2R1PDF+)F2 z{VeLm(#QFQK4$0(SGxU!sTWIMhjH7$(ANRBfuWzE{^it*;g9?muwxs3ppO~)+r zeC3~v@Ieo;ZHeA7F!UvcUrN1L`nbGcKW6B&SG)aVsTWIMi|j!kGxT-pPoiEdeJQ1n z8T!mMZhr&yV(IO*W7xp3AM;fGmn{}wH?{bAi!u5ykEhUUpe$17s#bJ(#BKS+Pf(2v(W|1YFojPN-A6YibpV-EJO^#Jo^pDcYYrH?t-zs>_3 zE&F8YYpLsh%+Qx^a{X(m7fYYp*)m}pxWoR78Tye=xW1QqvGfn5?8iLS@qdHG7a#u% zjoTgn>OZ^v9ggi>Is4-r?zAO1*fx`U3SQQZJsazDoV6)QhDrhTJ#uA2aelM*SP8 z7fWAF>0^dIKj!(rhaK4$1A zKIiHG67^z)NBt>a$2R;xA2am1FSz~()Qb^5)IaRlh9BtD{g>jMu78AjvGkKc-O$Gj z`-LyMe!FA*{1Z=CpZ}8UpGmz~`g+QK%&2oQ4%+MFU?)pzrFP47P(tr&N`!Pd5N&Ppd7fU|@v2D^%1agLc{2Oln0qVum z)sKGD^}nZHEPdU*6Ziny%*YVp%=-0u2c`mWo5i1x*@UrgDL8R;LT z{?F8lr7vK|HvDwhe=$Qp`8~J)oE3ij#0Zb`Cx;!|@B@9!&}YBz`Xi_pBRurHoFw{~ zp&!4`^=qjYOaIB#^Ou;XD*qviFE0N#8@DU}+E3j6pJ`t#`*q6$HZbyE2iOKi`tv_^ z{oWm3eq#6||Ajs5Kik02#|(Y-x2}H~^X6Q?M zy8d|T#nQ+2kp7sVpWM&&ebkGkukYEM{+OY!9qjsZs258=n#zC7&=-z${gu>5er}oT@1b5S{kUg8IesxiKS}+MsTWUIKX$a+{}uIO>Bmy` zV}|{aV_g3S>c!H3CZ&&gs`GD`W1G*vJ&oI)e}(04|1IV}%Z!R;KYm_=@{bwmFRpO? z<1~((TG91iqh2h10Xw$g2l|*{ zfBZPt|B!ky!q2k5QTI;tF^BZ8^#K2_^pm9@OX*{VzHpKU_&xPv=}VRdY+$6n1h5SZ zeVzJe*olSXFNXgt`>Uqzzhj0zyUy+JN4+@Fr|zGt5ko)H?fREdFP1)j-hlMS9PDp& z{SmTHmOi!zeayjrpX-m3ee!hmlLM|_L%mq~l9eGgFzlBAwt->4Satmn^WV}?F^rt3dQy;%BuN*^=yg|l4$N$SPY zk4E*S!yID{=|9``cPag3=?f@B+rZEl0Jedl&yTqNe(J^WpJjgq?AV5%ppO{(>YH5u z8|uXf27Nx2{+OY!pX2&nkF)R*OaH7?|10LH+W-A6zHYOxZH{rf_J8brw_m4yvFukF z0T}s@8R^fz)%CYfFP1*eFZ3}(U%J5cU!q5mxtV$JoBQ7=ZYS@u_r!b2Z3^keUI{dOz;_=~0gYDypTRLB467GJm7 z*Y*PAcE`W=F1LRr?TckU#|Xekf6Pe#DD|V%ixD3A{|D^Yh9Br-o+|xcPo@8%t)zeA z5>NkzRbGB#+0VhaZL*&WYRgy{EMHc{a%YN&i@;Y+vUGN`;XDS_=(!jp4e=EU*mT6i?sh{^GE#?KT-Rar|jRb z75gRH-|sbUU;ISv&$0O8@_&VKyZl#a|3=yuKT-R)r|jRg75gK!f81spkPP zBfir6JiceYj^`s;`V!*=qdyok^kWQvAob$u>T~aR`vvO7(#Q8Nupcw**Qj4by?BFh zyYd)I-Cx8U_ixh2_w^QEH_HM)Z!^a6{aNbx7C-3u`2*7Q zYA4$VvhiQ`N@3R)AJ>!N38UeJUdB$ zF=phaMEwt`7fWAE>0^d|l=?@h7fYW{>0^d|g8H2;VYuFjr7xuPF+-ob-SeNLUM&4z zdS03TXV)J_y;%C#UWYlx4Et5;mr*a4KF%-nF+*Rc{$%RK(q~ikDQ4(LKkwZgF4( z!+y-c{_kA>#}e(66aB7GNBW4N&+OiurGdY+0WPUX`Zin3*Q}L z^8a3C-0u2P+R4-N5%WiRifuQPXZ$<^>4_Qn8Qz^Ui_$qNBcFhaeD37j_aDsBWv8QJTkj@dfsUMC=c;v#^*9E_)+?*+qok+ zluyLSU-hXT-v=0Bq5S8-AdVIoRib{s(2BEd8su3-UxS{;h@2xmWmq$F636W{M9;G2-vWf85g7 z=OZk9e15DlMtykutbeyV5zi0OU)$aDKW_f04`M`(`uS7@whfH@$2^t&U#0B-f%en= zzdG&rT4G^eEc^Ljy%%zr9?4BlR`1^rJg? z2EZu4n4vH1>-t-%7fb)slzs8Ig-82PAD&+O@DmGf|B~$y1Js9fe=Yx9PtVB}KOSPG zXLL7@0vz%aG4eCu`SU@41I03>$gxZMzC4-Hxh-1{g|Q8=3W0b>c!Ge z?gHx#`!PeGdAaMaq+Tq2+&_l>n4uqgrR#5?UMziFf1r;U`r@lye+Ttq=|8%CNPbd& z;;&lxoO^};?@94}DSj};j~Jsq2K8 zJYq(9&ouP*ZP z`y=(@>FV=~UBCM&JfF$Zms0j)hW#4D?@zs0`jM1AX6Um^-2N-67fT;1vc&=Jz<>DT zPtYIb`nA%Nr5_8S8~T``A7}Ves259L-^n8Y!+y-rS3BJPKTerVk8{LKxy{bM(H{SnLlgqu%} zU(853$M4FBoq z$EdGUFP6S;@n8ePejQ*N81_r2d-^{{y%_$mU$Q@JVCYK#+rZF|QU4{`C&NGJpN7zp zK4R!|=eYgvQ!kc&BB&esn4!;{>-vYN7fU~a9oz7O^v4YS$eUgNIQ3$LNBV=1KhVb< z^yj&Lw;l_R_{h?aA`aWY(8mmY{w=QGpL((MBdPvX%+Qa%)%8bGFP1)T?_ob?=yPv# z{jt=Gr7womH_{(7^i}HDQ7@jZevJBI>c!IMQubqp{R!&dLcMsp`pgBM|94R@o~}Me z{rjmGOP@_0znGE!{M+6BC#e@p|AAEg#b2}Vp+B_68)$@|sy+R_h3{ru`1z$V+SBy? z&IHrbeX7@IvC{L*9Xt|nhy54xRQAub_+tC#8@FrEGZ%Y#JWl&!*^lcV?8l7qEKc!IMg1VuP z8TuOa@1FUSd=lbn?{rnM2Ur)7XF(d!gYhAxD_2TL3v)8$P4)x;c z>PJ81`eoFMrN1nd{+Op~zseS0+X4o&@OVuhc)I!;_1~smJYD@5^$$}op00k9`tAC?{)(ro&wawn?^)D~4>Ug4i!LcYlxG3| z*@pOWJYvT2D1G1KdnMx&C+Ugm5A^Br)3y6te+>0v=?kg*^O#|O{3otIiF&d06WFm0 zKd>J&^rH{BzL$D2!XxXW_J>XSn4vE{==w92f3oz4r`kjD`4%4i%gHmmfB7!(u4ZWQ zlY_l$$yxGk;x+DnH~9+kedId%SK{M6Jkm2&`@7vhbNjoOG1}jsr`~_pf9CnU!2D-f zq+;cF%)OKHiaC_mFFin=`Vv|CTF8B)ykmxblHor}y;%BEs=mbxeepls{vFhdrJux( zZTRW1|6+!|@Tlv*Nxc~1QC~QnQKFA|s`7ux;_EiOwm%rREB}e#y8TU6FMqM@=doiO zevtl{k^bysu0M}@F~TGLdHchb=p6%x{8RsK>I-D)OW3hZ`k0}wKkoK#pk6F}E_J@d z4E@;eU4J|EV(C9(=TvMz=Bdj6n-*VO{y#NtSN_$EH%PBJ&C6db`^A*~m_zz^aQ*4j zkCCO%r1Bqg(C_5>_ef8c{;a1q=RfAD@_&QH7w7-e#_jrFh27o$frFlZvFz7&YqlRV z(m(zWt}jq8mVPYTtdAM`+FaM4NWED4V(R>l8TyGsUEf2!So%?~UP=9pIoN-N>ra<` zvh=rO$2RW zvGmp5JpwR}Pt4GdyvFtaM7>!03GCR0ALwI-zVuqx-$K0@;ZgpR?w#mkhQ8S40lq@L zSo$1xY{L)i#|(Y7+x6qriytyRHz@r-=#ic=uZ~H4F(bZwugCW&;}c6C+i#biVxQ}G z8fJYYOaHP|dnew@!sk4x;r|0t{PGkpPw^UKoNxIHJ%gR%w>$TcN6EwDi`@Sl@)-FN z@;Lcw@+A2>a^@YbNB*WdpKrDB-BJGTG;Vi3j|_PE9kR*GPptAQF%B@wKV}@i3F?og zUM&4dyLbfBi;uVPD8H4{%um(A$N71Kal8B!&hY#^%=Czro`NSQsgE%uKO@xto_ewL zcG(V_@)I-klhi-$bT3b_^yANH*2fI}*ae>c=Tk41ellf0X6Q#Rbp0Ia#nNAr(#Jei zeLBkGi_3qdal7&_zTNGQ(Y{#riz)jtBmH&izeT-R`ia!_H)iNZ-s$!qq+Trj&Z+i5 z{2L3OW7_bu(`K)qBk%I_ZBOIaAMs69UN5omad{nTjPm-o)csEFU7p?#nExz`RQw6! zbCD2kus6&8@&~vBxWoR78TlW(-Q)Wv;}c6?PnBQH(3kFT{RH)5>2q#AIe%gfpy8a;Q#nRXPa3<-GIoQA3_48$)EPZVU zF92|d{TDOzxqor}TI$8pKb9&#@qmR#dpLfjC-4ID56Cx@C&<4bKT1aYQ`N^mS@>?+ z#?LNiv_F4y-}3ZtHhX5>Fl{YBJ^r>ieee=YT5>EreS_G5jC!&3 zIqcYmALwI-zVsv4@A!HzU-3T1arr<$%l-=XhfVPn0y!hTI^#Q#@rk7$i^3y4F^BZr z@98NhJ!I(%DSgbrKEt0N`zifsN*^=y#R<3HN4;3~KakRkUvJ@a^uy2FQhbGRxSxD) z`~GJ7{CK~GkI$D+8sq%iQV-RQ4ZC+5Zjgr`xCegI@k8 zoaN;&mi=5R|1pR9Mtv{!Me=m@Rfc~P^f~c`Ex$EWX(O@y6}y&&Y4x{_V6cmi;VtY{O57 z{TFkn|G#tn*Qu|Or7uBjoAjkXjrMYq;UA%1EPXBt5Bo90e)ci9zth=Xe&T(N&!rYW zif^25V8jLR zA2CCpr@l(PSo%UrA2ak->QAR$EPW0;w&4fm88h^?-+TJc8u9dt5q_5a73~k3^f5y} zLH#)+t`|#R4eEwIX6TE5aQhcfFP1)^(#H(_2=$jxFP6TZ(#H&a?vHN&-PDVvuch?j z4_bJv=X^cab4K{7&W}%7`1t(zoN>GMYLw}D&YQeE#Y#_{{|oEY z$;;!F)QhFhT0XIXVL#?jp41;reU3a`eV*Z0Q!kdj1mm`WVZQ{h4GjA=>bu^=`kb;~ z4WS$Qn4!=7+4Da{y%=6N9|o~w8-8G4eEyp0=J| zclPw(E&F8Yo|*de%5xtJAD8EW#wgDl zQvJ~q({ri$qyHvWdiZ)FX&+*akLL$Xzn_T;)+fL=Mjj>KOCI6-jGvRUeE<1p>GyK| z?r-+^M#%e<$H+$-KOKqO+rxLzzqXHam%@`bk@Ney|GCuHpY41Jx%MLGYozA^{1~}- zu={_WJWBp9d7S)!G1512xQCx4kH6aaafUA}cYexw9)5(phcU`?VukzfPybwpb6(-e zuM)3z{}tp>^2yS#asQ3v{PE7i(x2e`7KML}^QGdGoIgMwC*MM@pX~l$C1c(gZ14xU!1>Au6@t>XAD1nuk+*dFMQv5x3_x!^7lKxz!>QreaQJB za^@G#hco>6BhDSLNRKajJ3aDLj`JigqYou6Zj0f=41+r}|{YQ3i?k3lFavmg4 zlFugRcXs~^$%S266KX;%+_4|$w?KY0X&Xxqc&>~7A# zCD+JLvhyGWu)1#!0K1YV{_d9KJi@VM-=`r=RcA2M>s$I?Vi5kkGkKhRH+f{a`~QMm>TurSB2Q1X==>aV{y673Pm+t|FOX~GadPzp*Z+`QIMMmv z$obbeKQ8@A&QG@MF!De0TIapVW3O|5AvsfaK9pSOa$ZE9Ag>~q*oj_89w(nhuC90e z2syjKxker%qo08EWlnYfQF3vk^B8%w*ZD4Tt*Sql?msr*{`-?h zs?H0^c|H&-lQWy#e+xNBeg}Dsd@Z?fx`)4mTqOUHTq6HYyxGG)^_`x+!WQS}l5=lz zK8T!ooAUy4_5$ZM3V)&V26F8(=d;P9mpflVp18vKCS#QU*t?y-KrX${`TODzIX^$H*h!a{U*Kk^a&> z&g0~<2b_OIo_yT-VRG)N+lA}TNdNc=&INMzBAeG z%8HT9!sId{;1@*kZ`rne{epHTqD1poPUA)zeT*i^E-`kye7#X zq<`*(?*A!r^#JEDlS?mk{+|2~bp9zhpLhO+G2+k7asDIyN9Q{4YtMng@jlr3CFIf} z&P&Mo!<@?sf4K7iIa_dk3wd&p^X25s66YJqg`=Iv$faYPzb*ge&OawtS2+Jc;X9nO zS9$u2$2!j%oLS}JuO?5BZzk7QyZ={=QQpNh z&JWUmjQl%tX|4P3XwTVD{uAW=$m1ut|AFMvYn&I7vnM+rXAFCzCFe5zC)YXml8Y7R z&EgHt|46P4IA2IE3^`v$9y!zb{p9Rf&Nq?A&vE_~xptoOo#grj&fih^3!NV#=WEW7 zN&imgr(DhQA@4@6U+n&Sk~8meewO^n`;m*6xc>{t&b;H-M^1KK^~U=z3%^da*6zp$M+4 z)_Uu&C2RfkKC;$BeTF-Q-u8>gS}*$*WUYUFELrPWcagO|^=7ixo4$ao^`oyLYdz>&$Xeg|F0$5Z{t;R0 zFF#7wddj=J&(p8*YR5*7~>E_j`O=kM;m#)Hkg!`zo^5i(N&|JZXmvwhd&h=lVvn)@Qwhto2rJ zBy0WDFBv00S`YOB`fGjDUz4?7Y32i-KCM5xD_QG_?rR**Kd$%r60+9od^uU`Zyrt7 zdYZ2zYkkZrS?gV%t?+9-{}++99_6*hC_k+)`7yHAi@bxZ^&jt+Ki6~of&BYC{+}Bo zKU!~br)xcat)KWz@sNjq5n1aU&LeBR!ewNwKlobX5I@%w9HhV22Rxsw_5SK)t>u-IYto5(%CuiQXLpUFPMb479|0hpxj=U#1 zPd<=bATK5t$;XpRrF*N#;7w zkJc;MgRJ#OUT6%x))RRJ{k5LQ(e&4P9VgO1^Jy=?Dp~7YoJZFB74IQyJ&K#jT3_NW zvet{ZkF50{CdpdQVf*VnKU$w*KjYB;aealu$XXv^wfwo>!8)?mFBmpP{nUK<7m_vK z{d>upzy2n&=A$1YYkv7}$UnPds9*P!HUIjb$eIs*-w(Nc&2Ro&TkVyPx4TKlfSEbN=mjFudl^uG3%hVSkjY`K|9HYrg7lQlDAq>3NW>`I{dj zYd+?u-{ASv{K_vRYrf>8$eRE7wPek2JV4g`#OIMU-*8=gl&9xoWX%VBH(B%hK4gsY zta85I-;*`}?mi#(^lCobmy$KV?W@Qmo7~=7vgV)dA!|O_Gs&7C_8sy+-SzJ`MtU@V z>qqIY`B*`yAK3_`Ke50=-YyQw8S@VIumaO?b zHwD=x zk@dZEc9h4D-!Jb^*7wLq8l!yleePFS8koA4vIjd48m{n^*$&+oy0O4j#Szai`Us%L)O^P}&jW|Q^((*m--Us_An_e2%r zV4vT|Y$WUZm_f3>ciBSL_bVf0eUI{1vc505h^+5L-eVljpUlqT{Qn^RHQxS4`fL3B zXUQ55|5dWax8FzBc=bof8h^gs&2CTQ$)8Eq`0$sKHQxJ3W0Z%+Z?BR+$7A=9HNN_6 zvc^kaLe}`_50N$g_^V`%C;qW9>}h=PZ^;_(yTdJ>evP-?)A;GuHLc~m{PrV{ljo2# z|KR=$$yxHzsq@>(W3!#FB2SP%NS-9$Nd8aq&E&_) zpCvRyyP^4aL&pJ$Bx)XB5SH}<;!tI4;Jk0Xzf*BQf}*7q5ve}?O` zoJHQAd>(mc@;k^+BVS>R__V&ujp8kyo==lCALSS2e}Vh|l&ty6cDR-KqyOIIQSyt) zW8_zmC&`P9ksi&@)FI}4Oec^vKU0_ZB2UjCS@ScUL)QFEZzpShrpw5hpXr~-n&0RS zV;ry2J3Rhz`fGlfAJIR1x%>Yo{WTv*_BPLt<^!2W)_frSWX%V1jxp@zuJZUUCfCVz zhR^Z)(;LY89`!bcuU_r?uhL)Ne|(3m?-w2bTUWUFeh>dJ_^H-D7oHrhAHOl)&p4~^ z3qR$&4|!K|j=T@~0P^#VpZ+vEp5!Iu0{LX}Qt}pZk$egH1o9}kME)ju1NjkhmAvDp z-ToHxEb<8XmE`lutI0KTFZl}cIpjL|1LW(;w}N-I_f6!_lPAevCubIT`F>l>`CK0) zYkt?q#hkx&*V{dQ&F}hLvgUWqi#fmRLgW3OZsmW1+gnYZM=p~K#r|82Krm@%(2_^y9M+xk!Eyxkf&m z{1x(Y@;Lb<@+5f!Ir|!qe+zjZ^2OvF`FipJ|U1oGMB68S3f2J)xKRq}VqTgZ=+N66dX;pv?uKZ{&C+3mlG z{1x&m$m8T9`Cf8`JV8E_{B!a<$&=)NB0om{3_0^UxBqSOlgU3OXUV@L??ZmlnCB-) z-kW>?`6c8$`7rW4@=|hvd@^|{xtCldzn**o`2uo@{9f_~@=fF_d5pY;d=GhqJV8F6 z{4lvj{vG)W@^+u|{MX4@^7Z5#d6ax0`8M(b@)-F<@>j^Gk;lnrk?$qHjXXjAF!|@? zJIIsd`^k@y|3uDo`ti?x-t+Th@(ajW@?7#hxk5gG{6=z~d<}UX`D5e)`HSSG z&o~FI9N1uWOH2LVWrj-%b~|&+qZSLC*ftc5M5B{lWg|zXi z=Rc7r=#S58;Gcci{qb1{IRAk29Qps$c@cTy=gzChBa9Ej(xD%paR1HZ(fge-Y#ROr z+Iu&-_@MjWNY?ymw~@6T%9qJnpX7UFtrzkLS?hP~WCt{)hwGC(m#p;LZlUnh^UJTPo9gy-{? zUz4*(diXz+GsigZw!McRA?L`MBitXuz7XHY(ax_X*XWO7RPY}^-2E|ZDA<3w^Qq+e zE1fr!$LRlN>6f`bhTTA4-P8Fas{gvCud9F|K4YJn9c#y31D*iy$`XRep zv`D|!<9IPy>thtinTy^2iDb=R->dMPAAW?a^;NL!58~H)DYua|fBju#t%ou}*7^p& zA!~k<9qlnR;>)sq*@LY4Q(i#U{62V0kMLSQ{8(c{`{&yUDPEuAEh)x#;jtdml*at- z6kn6#Yg7E;6yKcU+f$5bJY#!!j2-ijQvA~tKc3>J*==d8$78gZ4@of|3&s8`Q{0o{ zvr_!d6knI(n^Ju7?wQQH?C%o$yUhMBx4$dw@7?zI9{an}{;smW_uAjp_IHi_)$Q+n z_V<4K`+)sjYkwcKzkjm7>+J7(`}>gn-C%zowm;iO@OP>0-{@SJ3A?#W=i1`Dg&Qhe z8&~z5(qA6lG*}5vM^%Ow7S}B6Uq2vB_LsK_zTColfa5FciVJ!x{oV6>s~gIhPVmCs zO1Xbib@gDmf2dj>tn?4hAFRl4pnrYODa-nMOg~&1?6=jRToc@v4-5_UR)&U(gO#Dm zuzad#6nnN*dWRzJE%#f(VQf*QYoNPnfBwp&7Q}vFGiEt!gkNyf$`sB|a~nz8DP_p8 zDHd=WN!sbeHEUzrhK&%5`y09Q{UqfH(x$UYFcmCvZW}zwNpmcX9JzZcSi^hCV1>s3 zdv;6~Y+Ap*GU)k2>whk6G3ldx{8#d%33RM#OZoT%P3 zRYZg12L?A*21A(j;ib~(W;2Fmc_9&{zVG!pb z4?*mVC_S;oo-VWiI6+nqGzy@_c~Q^shRR@t1t{;{-hr;Bcoq&+&uDfS9H=%qEb18= z9vB=>jy9ue)E+u4Ee|zXkFMrOm-SUGilly1k+`ya)6OR}rNcuf$Ehi>xwebLoKtbM zv|);7Xl+krbCbQ5m7y-H{7r7FHk1deTPgZgedWR7t@yP>jsv%P0HGN_8pm`=uPU#v zEG#z;8MsmGpcS$2R!*d~<=!4tTd#_l&d$ztXI2KSW$ok+e&iN zy3Tby{oU4@9<*l2+RB55dIvUbtn?pL9UM5d(ltDEP-Tm^3A6hvn-A*kS+}{eu6kg8 z_F=R02MrB&9n@XvIw(`d_1V(bHM{GH#53EXACe7=%^J$t5)05eMxUm zl^3+x2hE;+5Xu*&ip+2D?9E4Iw#->(7&7!W*nGQFbIac5LWu@66~R%1<#j2ircmk` zg-%*3;QZ4Edb(Hj4s2FoZ(Lz1UQn%O)(@8ZDl=B14QnV+>wtz*3D=aKemmjKr8qdy zWfj1VeWr7z6>PtqwwtyPv; zvkRE-6*pOX@4J>*TX~PL+B#C*1Dmb6U)E?&3< z^!DHpggLlxrqe`T{_}gS6-j7GdB|~jdGM5q^`JMQ%D$%OlrzhA?c2DpJbbYKSQ`O4 z)PJly8~hGA)b^6daFBXutcoYbSjDG)6l6uQT!&|QquiHAN5l4U(F%=?7qDFkg441- zJ9w+?oGSPEiQhd`J*bzDgRC!aegA%5=i^9XSsc@%@^CqBK)Ue!!EQOaHdK#OVqMTPYz89Nm6fX9q8w{YKqc{6Jx~k}%g|??v5J!z z)A=15spOQ3sd09r?-CkOs}UBW+-I4Cn^zFKzFN?xhj`}H@_Y@q!Rc`Jte}lki`1@u z9*i}z)tV}6DqVbB;IhVjxO4KLBEhEM;X;gD+9}?6q8d8L-oI=2)W^cMe;VdC*om`- z)A}ZZ1AWI<@x*25ufFZGO3vHIs@H7mwLgKoNSrfGcacNY=oWIQ+PHs=%&8)+*wh;y zjMyo((DMnGX2K!xQw#-5e^w@xNoam}l7<@)dpy{CMsP*o9)nD0t6S%s!`4|1=&@(o z!(AIf@J>rZlf&wPqpT0o5BIori8%2uha2)n7A@OD!<}8#O+EG$zH`%%9=Am~ZpyGj zYcjXy?!C}(Ld99|;O#QuK5;ghTtY@#>P2T?Pj#r%+QrVnxiefxnoO&{v^m}@mK9f7 z0$0w>SYdDDG{ORsvSr?3srM_w?kDs_W;*8*EFcZ&sti?8Aeqkabanl}VBhgeS4XsZ zvo)}ZAKptOu*j-(1WkVP7anZU`<*hL!!2#>(sf?qXnRS>p2T&|VYaWZ4d;2byQ&9w zTZu*vk&RS{M3V$DmqiP$d$oFn{kL|p{kIhVty~0LY5y$`d&}X0y`^jHzeNj?mDMZo z|JubNTj77WcMPn?lWpH!URgh^eRCGh+jKhQ;b-mQ@Uzr^7A-VNq6qtuD0q;=Gm?b^ zefIpXGH;6&U2+7DMd#CtdHKLVb*?3{zf$QQ>Rcb5SIo_Hb`Lc6qkxt(yURs(tX{Nh zbF7*qRzmHF9jquKZ&ZSqQAe6N9l~o$ab9#dO^_U@AXhaAKrhsqNM#2!mN`n-ML7$TKu9=SsWK`uuE^*6YdX`q63Mt@3N12hE-EfJv~YS+ghq-YL*tp*Xx>xS&k(K5MF0g`H1xd+bB)8X9y(6g7Kit{TcnHFKSb zb{1PpuF-YSt?4#Ca}zU6%kuf%-J#>PdSHP)NSNQ>y|U7c-ld&;%adk1ylr3Bf4aRa zs>qXW-IXo$NJ596tjCb{vfEvyAaxIJwL`tqg(Sl^sqzQ zdYQSDJMM3g2v2{~zd?I!FSiEsGgt!Yd4t>sGgt@D!XDt%cm6f6?aJU^u zxMlivP+c>^a+DO>}G%Qma4rGw1%*)@2U-hJ^dR~z9z9Z zCR@`czHPOM-DZP{sM$GbmXwdJT@G8a<;I(1OKf|dn>~{hOzFvJljO`uXDw|leJrEO zWnH(X&@>2z!4>~ej|x`lRSKV#GB8oeN&1*Z)1B$11SEvK9;P}*t!AfgQCUMxhD+Uji0 zDIJkWdjN`1-kk_ZRkF>rGMDL$9Lue)mZY|hZGs}HtznT(q_(Y(CAi_!&{+;4z5X5~Nh&?<+^{MeP71peGytPLNLIU=Ao4n&ScW z>VY+D(Hn@I(F-|vZtQ^~ZPJ9-1}pUqD?*-_3_AnD>@@}rQAJVlO;g5z<=(8@-3 z+c}z~**VE_2Kk+l3u0s_KFw4yaR%9iP@!h#8kn}WwS@V#&)#US+s5a1Fu{}CMuuA_ z0hI+OhTUM$~E8AkOZO$5PXV<{c@HQ^sV4^7*3(cq( zu=OuiR)%`IHFMj(to2@SE0#0M&q zadg8;VY(JruiYTT*Z#IJod!hKYBEGHBWG=Fsco_GyiLN*%!%7#ZmVhYQx^ws+g_Dn zfr+r=wG>1Dt>@SmhGv9=xN6x7JifvB9j_0oVwZ*XFuIDDpg7*d}L}eHY)_1bC`$g4CLJ7YjQQ!4a_We-ww!6ATQ@EK)4OjaZUeV zWxYKE;M2xco7P$5)HNI)oQ8+vf8jL&8cjsWGbuceTv_Q(PWz#D0r2jjHN=8V{oTFx zZIBJMvxk_{Ee@SFPdmm!E+05$EVo;*_$4<%UM2>ci>vg+p0qWlr71t|hQr|)aYpt}+b+XmJsZzUl zb9F>2QdJU8QMGJBRWMl!gEYF+)e{n{jjgqi9*U)XfTpS%PSbR)L^RFkou?ZEnB9z1SIbgwbnZqG4Z-qUNBuGV{x;KEy& z)Lle^Nw>18^XYd$Nn;$}9L4*scTHA`?BDvH-{$DPr*V_h*kkafzHoFW=*Oz*o&Yya zW|?=0q{g5XG>RBQ*SNj0r+&T74dF~3A3tRMX{{8bakYt;N$v zNi}<>##e2{Gg3z5DrUA=(uP$qxX!OhhM;%`#5RDTG14V+Y%`ALZ!zSiX<$uku6Zbq zdMEZqziFtDr~SmnsHSoluwh|rbhN!{YLMlt0p=B6s?Y4D=@kxj5AI}AE0+be!N z*$IqP$2{NOX2)##2*Z?8ZdQ&dml!Qlph{803zE`%!ed_)bMpX?HEZ2Mvuo1CG=_XI zfW3|1+VGV|2#$}5a>Jn>ZmW4v%Za>%G`pIel)Lu{k`68Jz7LtREuZ#VRXAjh9_Iwm zyV9oHze8+D8E@N?TeS3Rzvl-R>%O=jER|^MAtY(b{ZpEtk&F$OFq$jChDgq`fYTS@AoV43E zL2S)fOtQz+us$IrI$38jHL*>mC~6;?j@(QpD>-&Bs^bMo^4H|^qy4K_+>KAbV-)}nz`l~ejE z{lh~joG=(^#RB@y?z1cnW!Bl7>&-Uvqs={NlbM_C%FHEyYqpt_9JX@@hv~|aQmdW)qU=wJ0me`#p?oG^R59yPhVKqS?F-}i zZ0KMz-%8}b5xI2Xgfo~!c+kEyNIplPIh@sa+Sd3Gfr5s^GDaA=9Af>T-r=%MHI4-g zdd@6kZ1jxPimlmJ6esO1sKW^{O5O{YLoRUfJbP<4#ROBYQ*ewOvbVO#&MKR@*(dcYT1AJ4T}-Vp!sW*=x2p$iB6lk6TV4yHnGY2*gs@lg z>&jMhi<@j*Yf`6u>QIZwb`A+K`t+ghV&4^PoNsejtp6jene( z7)0C1nO}WqY2w4Nq8aqx%2v;2>;!Kz$RoLoiNH`g4C=P>l#?~#JYI6KKnn*p^$#x! zb7@CGmkli%;B>kQn;Z){*hz4T-DP+g%F*BC*$_8h6(oEI6Q{x7*EJ=p<4k)!gfpVa zHMp!E=s2^4q@c#y2wHORD`n&ja9es$!i1g5+K4VsE7F8iOY&x>4!#?j#awwXd8^^iH*)nrNQ(BX#&Dr;nLiDA=F%CEJxC^sa z*Z9u2G1At&Q)o59?mjRhm|X;hFol7lv@Z(7b-}N0{=uB}Ol(*RpC4>Is@&IC_BjZb z9BZEg(qRB25z2$+u>}1*hXDnKoAzx2#kRUOvZNiV4)xF6byH_WVl=6u>7|+)Wo$3B z<1+SsaKn3f=od%zB)r%4rL|Y&XfN*LClRMaf>)x>#1r0#^&u%ZORq zjEp4*b9lfyP&1y*hE-(}&q21j@L^j&HL8AIMhhuc^>NwEWvj^|vV^X&6?M1`_u21* zQy5mZs%oq2B_qu+%iESkJ@)PYk^!G9#k#nXCSS_gO*1;RCLQj<6BrA#z}DvqL)b7L zJxpmhdmv0-zcpXK8OF1j)51a}l^MFzYgl8+H2Q41W3%E~QQla=LkfL~f%1YIzZ1q- zM(=gPF?1XC4Tc3=ROt%$2^b%M$;?)ihX;GMG_8lko~E^}Lrd%%cMSip^!D})HGQFB z&r{+Lz@z1q++tIVeEeY#JXJEc; zfuR_A{~Daay}CWmnYpVeKADvKhuk_=B*7!Xc$2{Bl6Z6EKKhpfk@ry|Mq zKuh59bqXI?%-$FtVPLj8i@RN7W^d5rna&|S7Kzhf4T7~%Ob{SR#O#d-XV1F0R!XP< zA)Sr0aWj@cnW%V>o(O?$B^R5Uvhl0PByeNsN4#R%)QRhX4wStZM?s)$u#Jn2ci?CKTCo7cZ;vnUp> zuwf;+Mg*agGEnXgPf!~VdaV5UIl4&cwnuw2MJFjPur6_uT%PN91ga%GF|o70hm5?D}J4V0vwYM7ZyFmo@!8SR*KMvHVyI zX1;#)G?ly9j^7z2SB=EQ#}5Tv;%4s$>{{OJc6?8@axB(g4NYWAe3;@nI*9rd?dWZSAQP6B_S5FT*gj7gS+Y>*3bB9(vR1u3_Zn#N?r=~WCl$CQJ^LJO%puYJ&fV zRui;V1XUTc^7^~n(01yp1fR+r4MgN(@0M*5PB{9V`;0G6)@(Vd=;qOO^&!lz2*0F? zhh9CWSdb^({+lapg?RZ69WU_1^b3tB|GuggX5(yHh^lE7s-`8V{!gu{h5FcfQlT+t zr|JK1izLNKk20n?43w+Liwy~c)?3mH7Cf1zy&_Jy9NRPunm>XUaJgXag_IMfYe+d^ z#)g!WCT(bSws{-qh^Eteqh>luwe=6yaGDN_L78fD+(y%KOmih1^%v6Vj@nTLQAP%b zB2TNhCPmJ@C-nE#TITxlEzR>){5Mx?QITt!4-~jg9h7zK&hy3&guPp`^9lV_KOV`P zoniLQFy5;rRP&+q7%;xWW3Us^&eX=z5nEj*0){11ViQ}jMS`Eg~@cEct8^5*zu?vGwT1P1p>Sp zpbE4cOF1@?R_; zQb|0;Z=04OJfYHXGM&_0JI9;+{~w&vH{4A%4kZuC-zU=5dIc>rAKFAqEi)gQTg%Lc z=GHRvp}Dopd}wYhGas5;>&%C6Y?=8GjxCco!cj9Hs+W^`a^}Z5dL+l0zP8zfwWw#- ze`%bz$&&$lP~cBB@HuHRS8L*G*K5rJo4Eab%GlF82KY@=c+L_%7V;xIW0SRp_M_>* zCi9TCoF*;jNXrS*a(1+w8m;F=>q*giMkJ?0k~sV9@$ZwQ4h&i`BxPg!|C=UB4Nnu0+Q!=~J-+aoB+}Be?OZLEsi)+`(P`?1azKCrw zFN621^wEA4R`wwhZ`RUTcff~zr?lp?Rh2VAkjc5bNt`& zJ*(Z{blG_R;lWK^KG%wk^oyMM39GfbQ+}gq+1Xa#L!$Zkt3FHQ$9w$H57E#iv}ag4 z4-<~rcYOalKIg;b)rxrlAG%t7nc{mj%Za_m`O6=BA%1&YQ%(OwKEa8g5#ZA39p^y@n_yL{8`BMFd0eKEOwNTNuJHo ze+$1uYVkG5i02=0P}<&iKuNmA3=Q-Q2q9gn0p}Fw3%1nov$M>J3CF8-$r52LfkOJp|RuMP5K{my5^9YM}hHt%G?+_f4;V*eZH-aXsQ` z&}CgcOVyuEImGKF=19+TbB>W=2F})?UaAH7T3e<%a_&`$Wf%Xz?Fo^@Ez%-24#^F*#PwO_E42|tf2mr7 z|IkUapL=E!DZ13*qaIqu9q8UsP$v7V9#b!2kecVdyr^@WU7RROrrt(@T*Lio5`3L1 zW2WbhDN=Rk#a4Np6N`m{7Hd4EqPWS*YghU5!ZD)>sWnZM(jn&b&x|^4lWxt{MA(VZ z@=AtxZ1>;h41Y)g}AiU-_5l0b`E7lJ6{i`~bu4}z9j{?H01Z_x~Fqj1C@)tsh}JdkKQ z&@wS3ilTFhJ2c^*454h%k!XGEjB{ca}2`)P%>(yUUE`OUav zJ3Grnky30u4J&fBa$$|ei1Op*SLSBQ+*qcW6oi7DW`WQD=*t%Vwd z$xu|KKE#euMeXaGlEW;8(*^dqG%7QJ4@{TjV-x3WZsn@Gey`zaL9<`Au#8#}oF#8~ zF_y{~?&fi^uw8OfI+VzS(P*|5D{pwFXitkg$)pyM=~0y;GsNc8xKbPPWP+A~lGGmF zStd{a3|2ibN{mGD`yl7$fE$ggb)cxBq)`jj6sUuA}9*&U~x+KiRCO4svt%`{t~VLKwsR{r}1x4@lD diff --git a/external/libwebp-0.6.0/CMakeLists.txt b/external/libwebp-0.6.0/CMakeLists.txt deleted file mode 100644 index 0c62dd19..00000000 --- a/external/libwebp-0.6.0/CMakeLists.txt +++ /dev/null @@ -1,189 +0,0 @@ -cmake_minimum_required(VERSION 2.8.7) - -project(libwebp C) - -# Options for coder / decoder executables. -option(WEBP_BUILD_CWEBP "Build the cwebp command line tool." OFF) -option(WEBP_BUILD_DWEBP "Build the dwebp command line tool." OFF) -option(WEBP_BUILD_GIF2WEBP "Build the gif2webp conversion tool." OFF) -option(WEBP_BUILD_IMG2WEBP "Build the img2webp animation tool." OFF) -option(WEBP_EXPERIMENTAL_FEATURES "Build with experimental features." OFF) -option(WEBP_ENABLE_SWAP_16BIT_CSP "Enable byte swap for 16 bit colorspaces." OFF) - -set(WEBP_DEP_LIBRARIES) -set(WEBP_DEP_INCLUDE_DIRS) - -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE "Release" CACHE - "Build type: Release, Debug or RelWithDebInfo" STRING FORCE - ) -endif() - -include(cmake/config.h.cmake) - -################################################################################ -# Options. -if(WEBP_ENABLE_SWAP_16BIT_CSP) - add_definitions(-DWEBP_SWAP_16BIT_CSP) -endif() - -################################################################################ -# Android only. -if(ANDROID) - include_directories(${ANDROID_NDK}/sources/android/cpufeatures) - add_library(cpufeatures STATIC - ${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c - ) - target_link_libraries(cpufeatures dl) - set(WEBP_DEP_LIBRARIES ${WEBP_DEP_LIBRARIES} cpufeatures) - set(WEBP_DEP_INCLUDE_DIRS ${WEBP_DEP_INCLUDE_DIRS} - ${ANDROID_NDK}/sources/android/cpufeatures - ) -endif() - -################################################################################ -# WebP source files. -# Read the Makefile.am to get the source files. - -function(parse_Makefile_am FOLDER VAR) - file(READ ${FOLDER}/Makefile.am MAKEFILE_AM) - string(REGEX MATCHALL "_SOURCES \\+= [^\n]*" - FILES_PER_LINE ${MAKEFILE_AM} - ) - set(SRCS ${${VAR}}) - foreach(FILES ${FILES_PER_LINE}) - string(SUBSTRING ${FILES} 12 -1 FILES) - string(REGEX MATCHALL "[0-9a-z\\._]+" - FILES ${FILES} - ) - foreach(FILE ${FILES}) - list(APPEND SRCS ${FOLDER}/${FILE}) - endforeach() - endforeach() - set(${VAR} ${SRCS} PARENT_SCOPE) -endfunction() - -set(WEBP_SRCS) -parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/dec "WEBP_SRCS") -parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/demux "WEBP_SRCS") -parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/dsp "WEBP_SRCS") -parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/enc "WEBP_SRCS") -parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/utils "WEBP_SRCS") - -# Remove the files specific to SIMD we don't use. -foreach(FILE ${WEBP_SIMD_FILES_NOT_TO_INCLUDE}) - list(REMOVE_ITEM WEBP_SRCS ${FILE}) -endforeach() - -# Build the library. -add_definitions(-Wall) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/ ${WEBP_DEP_INCLUDE_DIRS}) -add_library(webp ${WEBP_SRCS}) -target_link_libraries(webp ${WEBP_DEP_LIBRARIES}) - -# Change the compile flags for SIMD files we use. -list(LENGTH WEBP_SIMD_FILES_TO_INCLUDE WEBP_SIMD_FILES_TO_INCLUDE_LENGTH) -math(EXPR WEBP_SIMD_FILES_TO_INCLUDE_RANGE - "${WEBP_SIMD_FILES_TO_INCLUDE_LENGTH}-1" -) - -foreach(I_FILE RANGE ${WEBP_SIMD_FILES_TO_INCLUDE_RANGE}) - list(GET WEBP_SIMD_FILES_TO_INCLUDE ${I_FILE} FILE) - list(GET WEBP_SIMD_FLAGS_TO_INCLUDE ${I_FILE} SIMD_COMPILE_FLAG) - set_source_files_properties(${FILE} PROPERTIES - COMPILE_FLAGS ${SIMD_COMPILE_FLAG} - ) -endforeach() - -# Build the executables if asked for. -if(WEBP_BUILD_CWEBP OR WEBP_BUILD_DWEBP OR - WEBP_BUILD_GIF2WEBP OR WEBP_BUILD_IMG2WEBP) - # Example utility library. - set(exampleutil_SRCS - ${CMAKE_CURRENT_SOURCE_DIR}/examples/stopwatch.h - ${CMAKE_CURRENT_SOURCE_DIR}/examples/example_util.c - ${CMAKE_CURRENT_SOURCE_DIR}/examples/example_util.h) - add_library(exampleutil ${exampleutil_SRCS}) - target_link_libraries(exampleutil webp ${WEBP_DEP_LIBRARIES}) - - set(imageioutil_SRCS - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/imageio_util.c - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/imageio_util.h) - add_library(imageioutil ${imageioutil_SRCS}) - target_link_libraries(imageioutil ${WEBP_DEP_LIBRARIES}) - - # Image-decoding utility library. - set(imagedec_SRCS - ${CMAKE_CURRENT_SOURCE_DIR}/examples/gifdec.c - ${CMAKE_CURRENT_SOURCE_DIR}/examples/gifdec.h - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/image_dec.c - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/image_dec.h - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/jpegdec.c - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/jpegdec.h - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/metadata.c - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/metadata.h - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/pngdec.c - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/pngdec.h - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/tiffdec.c - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/tiffdec.h - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/webpdec.c - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/webpdec.h - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/wicdec.c - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/wicdec.h) - add_library(imagedec ${imagedec_SRCS}) - target_link_libraries(imagedec webp ${WEBP_DEP_LIBRARIES} - ${WEBP_DEP_IMG_LIBRARIES}) - - # Image-encoding utility library. - set(imageenc_SRCS - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/image_enc.c - ${CMAKE_CURRENT_SOURCE_DIR}/imageio/image_enc.h) - add_library(imageenc ${imageenc_SRCS}) - target_link_libraries(imageenc webp imageioutil - ${WEBP_DEP_LIBRARIES} ${WEBP_DEP_IMG_LIBRARIES}) -endif() - -if(WEBP_BUILD_DWEBP) - # dwebp - include_directories(${WEBP_DEP_IMG_INCLUDE_DIRS}) - add_executable(dwebp - ${CMAKE_CURRENT_SOURCE_DIR}/examples/dwebp.c - ${CMAKE_CURRENT_SOURCE_DIR}/examples/stopwatch.h) - target_link_libraries(dwebp imagedec imageenc webp - exampleutil imageioutil - ${WEBP_DEP_LIBRARIES} ${WEBP_DEP_IMG_LIBRARIES} - ) -endif() - -if(WEBP_BUILD_CWEBP) - # cwebp - include_directories(${WEBP_DEP_IMG_INCLUDE_DIRS}) - add_executable(cwebp - ${CMAKE_CURRENT_SOURCE_DIR}/examples/cwebp.c - ${CMAKE_CURRENT_SOURCE_DIR}/examples/stopwatch.h) - target_link_libraries(cwebp imagedec webp exampleutil imageioutil - ${WEBP_DEP_LIBRARIES} ${WEBP_DEP_IMG_LIBRARIES} - ) -endif() - -if(WEBP_BUILD_GIF2WEBP) - # gif2webp - include_directories(${WEBP_DEP_IMG_INCLUDE_DIRS}) - set(GIF2WEBP_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/examples/gif2webp.c) - parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/mux "GIF2WEBP_SRCS") - add_executable(gif2webp ${GIF2WEBP_SRCS}) - target_link_libraries(gif2webp imagedec webp exampleutil imageioutil - ${WEBP_DEP_LIBRARIES} ${WEBP_DEP_IMG_LIBRARIES} - ) -endif() - -if(WEBP_BUILD_IMG2WEBP) - # img2webp - include_directories(${WEBP_DEP_IMG_INCLUDE_DIRS}) - set(IMG2WEBP_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/examples/img2webp.c) - parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/mux "IMG2WEBP_SRCS") - add_executable(img2webp ${IMG2WEBP_SRCS}) - target_link_libraries(img2webp imagedec webp exampleutil imageioutil - ${WEBP_DEP_LIBRARIES} ${WEBP_DEP_IMG_LIBRARIES} - ) -endif() diff --git a/external/libwebp-0.6.0/doc/TODO b/external/libwebp-0.6.0/doc/TODO deleted file mode 100644 index b0a9382d..00000000 --- a/external/libwebp-0.6.0/doc/TODO +++ /dev/null @@ -1,13 +0,0 @@ -, 20111004 - -* Determine that normative RFC 2119 terms (MUST, SHOULD, MAY, etc.) are - truly intended in all cases where capitalized. - -* Several passages could be made clearer. - - * Overall edit for scope. Portions are phrased as an introduction to - the 0.1.3 RIFF container additions, rather than a holistic guide to - WebP. - - * To wit, suggest s/[spec|specification]/guide/g . "Spec" can imply a - standards track; in any case it's too formal for a work in progress. diff --git a/external/libwebp-0.6.0/examples/Makefile.am b/external/libwebp-0.6.0/examples/Makefile.am deleted file mode 100644 index 4422a398..00000000 --- a/external/libwebp-0.6.0/examples/Makefile.am +++ /dev/null @@ -1,75 +0,0 @@ -AM_CPPFLAGS += -I$(top_builddir)/src -I$(top_srcdir)/src - -bin_PROGRAMS = dwebp cwebp -if BUILD_ANIMDIFF - noinst_PROGRAMS = anim_diff -endif -if BUILD_GIF2WEBP - bin_PROGRAMS += gif2webp -endif -if BUILD_IMG2WEBP - bin_PROGRAMS += img2webp -endif -if WANT_MUX - bin_PROGRAMS += webpmux -endif -if BUILD_VWEBP - bin_PROGRAMS += vwebp -endif - -noinst_LTLIBRARIES = libexample_util.la - -libexample_util_la_SOURCES = example_util.c example_util.h -libexample_util_la_LIBADD = ../src/libwebp.la - -anim_diff_SOURCES = anim_diff.c anim_util.c anim_util.h -anim_diff_CPPFLAGS = $(AM_CPPFLAGS) $(USE_EXPERIMENTAL_CODE) $(GIF_INCLUDES) -anim_diff_LDADD = ../src/demux/libwebpdemux.la -anim_diff_LDADD += libexample_util.la ../imageio/libimageio_util.la -anim_diff_LDADD += $(GIF_LIBS) -lm - -cwebp_SOURCES = cwebp.c stopwatch.h -cwebp_CPPFLAGS = $(AM_CPPFLAGS) $(USE_EXPERIMENTAL_CODE) -cwebp_LDADD = libexample_util.la ../imageio/libimageio_util.la -cwebp_LDADD += ../imageio/libimagedec.la ../src/libwebp.la -cwebp_LDADD += $(JPEG_LIBS) $(PNG_LIBS) $(TIFF_LIBS) - -dwebp_SOURCES = dwebp.c stopwatch.h -dwebp_CPPFLAGS = $(AM_CPPFLAGS) $(USE_EXPERIMENTAL_CODE) -dwebp_CPPFLAGS += $(JPEG_INCLUDES) $(PNG_INCLUDES) -dwebp_LDADD = libexample_util.la -dwebp_LDADD += ../imageio/libimagedec.la -dwebp_LDADD += ../imageio/libimageenc.la -dwebp_LDADD += ../imageio/libimageio_util.la -dwebp_LDADD += ../src/libwebp.la -dwebp_LDADD +=$(PNG_LIBS) $(JPEG_LIBS) - -gif2webp_SOURCES = gif2webp.c gifdec.c gifdec.h -gif2webp_CPPFLAGS = $(AM_CPPFLAGS) $(USE_EXPERIMENTAL_CODE) $(GIF_INCLUDES) -gif2webp_LDADD = libexample_util.la ../imageio/libimageio_util.la -gif2webp_LDADD += ../src/mux/libwebpmux.la ../src/libwebp.la $(GIF_LIBS) - -vwebp_SOURCES = vwebp.c -vwebp_CPPFLAGS = $(AM_CPPFLAGS) $(USE_EXPERIMENTAL_CODE) $(GL_INCLUDES) -vwebp_LDADD = libexample_util.la ../imageio/libimageio_util.la -vwebp_LDADD += ../src/demux/libwebpdemux.la $(GL_LIBS) - -webpmux_SOURCES = webpmux.c -webpmux_CPPFLAGS = $(AM_CPPFLAGS) $(USE_EXPERIMENTAL_CODE) -webpmux_LDADD = libexample_util.la ../imageio/libimageio_util.la -webpmux_LDADD += ../src/mux/libwebpmux.la ../src/libwebp.la - -img2webp_SOURCES = img2webp.c -img2webp_CPPFLAGS = $(AM_CPPFLAGS) $(USE_EXPERIMENTAL_CODE) -img2webp_LDADD = libexample_util.la ../imageio/libimageio_util.la -img2webp_LDADD += ../imageio/libimagedec.la -img2webp_LDADD += ../src/mux/libwebpmux.la ../src/libwebp.la -img2webp_LDADD += $(PNG_LIBS) $(JPEG_LIBS) $(TIFF_LIBS) - -if BUILD_LIBWEBPDECODER - anim_diff_LDADD += ../src/libwebpdecoder.la - vwebp_LDADD += ../src/libwebpdecoder.la -else - anim_diff_LDADD += ../src/libwebp.la - vwebp_LDADD += ../src/libwebp.la -endif diff --git a/external/libwebp-0.6.0/examples/example_util.c b/external/libwebp-0.6.0/examples/example_util.c deleted file mode 100644 index 8b408ce2..00000000 --- a/external/libwebp-0.6.0/examples/example_util.c +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2012 Google Inc. All Rights Reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the COPYING file in the root of the source -// tree. An additional intellectual property rights grant can be found -// in the file PATENTS. All contributing project authors may -// be found in the AUTHORS file in the root of the source tree. -// ----------------------------------------------------------------------------- -// -// Utility functions used by the example programs. -// - -#include "./example_util.h" - -#include -#include -#include - -//------------------------------------------------------------------------------ -// String parsing - -uint32_t ExUtilGetUInt(const char* const v, int base, int* const error) { - char* end = NULL; - const uint32_t n = (v != NULL) ? (uint32_t)strtoul(v, &end, base) : 0u; - if (end == v && error != NULL && !*error) { - *error = 1; - fprintf(stderr, "Error! '%s' is not an integer.\n", - (v != NULL) ? v : "(null)"); - } - return n; -} - -int ExUtilGetInt(const char* const v, int base, int* const error) { - return (int)ExUtilGetUInt(v, base, error); -} - -int ExUtilGetInts(const char* v, int base, int max_output, int output[]) { - int n, error = 0; - for (n = 0; v != NULL && n < max_output; ++n) { - const int value = ExUtilGetInt(v, base, &error); - if (error) return -1; - output[n] = value; - v = strchr(v, ','); - if (v != NULL) ++v; // skip over the trailing ',' - } - return n; -} - -float ExUtilGetFloat(const char* const v, int* const error) { - char* end = NULL; - const float f = (v != NULL) ? (float)strtod(v, &end) : 0.f; - if (end == v && error != NULL && !*error) { - *error = 1; - fprintf(stderr, "Error! '%s' is not a floating point number.\n", - (v != NULL) ? v : "(null)"); - } - return f; -} diff --git a/external/libwebp-0.6.0/extras/Makefile.am b/external/libwebp-0.6.0/extras/Makefile.am deleted file mode 100644 index 4863c613..00000000 --- a/external/libwebp-0.6.0/extras/Makefile.am +++ /dev/null @@ -1,26 +0,0 @@ -AM_CPPFLAGS += -I$(top_builddir)/src -I$(top_srcdir)/src -noinst_LTLIBRARIES = libwebpextras.la - -noinst_HEADERS = -noinst_HEADERS += ../src/webp/types.h - -libwebpextras_la_SOURCES = -libwebpextras_la_SOURCES += extras.c extras.h quality_estimate.c - -libwebpextras_la_CPPFLAGS = $(AM_CPPFLAGS) -libwebpextras_la_LDFLAGS = -lm -libwebpextras_la_LIBADD = ../src/libwebp.la - -noinst_PROGRAMS = get_disto webp_quality - -get_disto_SOURCES = get_disto.c -get_disto_CPPFLAGS = $(AM_CPPFLAGS) -get_disto_LDADD = ../imageio/libimageio_util.la ../imageio/libimagedec.la -get_disto_LDADD += ../src/libwebp.la -get_disto_LDADD += $(PNG_LIBS) $(JPEG_LIBS) $(TIFF_LIBS) - -webp_quality_SOURCES = webp_quality.c -webp_quality_CPPFLAGS = $(AM_CPPFLAGS) $(USE_EXPERIMENTAL_CODE) -webp_quality_LDADD = ../imageio/libimageio_util.la -webp_quality_LDADD += libwebpextras.la -webp_quality_LDADD += ../src/libwebp.la diff --git a/external/libwebp-0.6.0/src/dsp/argb.c b/external/libwebp-0.6.0/src/dsp/argb.c deleted file mode 100644 index cc1f9a96..00000000 --- a/external/libwebp-0.6.0/src/dsp/argb.c +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2014 Google Inc. All Rights Reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the COPYING file in the root of the source -// tree. An additional intellectual property rights grant can be found -// in the file PATENTS. All contributing project authors may -// be found in the AUTHORS file in the root of the source tree. -// ----------------------------------------------------------------------------- -// -// ARGB making functions. -// -// Author: Djordje Pesut (djordje.pesut@imgtec.com) - -#include "./dsp.h" - -static WEBP_INLINE uint32_t MakeARGB32(int a, int r, int g, int b) { - return (((uint32_t)a << 24) | (r << 16) | (g << 8) | b); -} - -static void PackARGB(const uint8_t* a, const uint8_t* r, const uint8_t* g, - const uint8_t* b, int len, uint32_t* out) { - int i; - for (i = 0; i < len; ++i) { - out[i] = MakeARGB32(a[4 * i], r[4 * i], g[4 * i], b[4 * i]); - } -} - -static void PackRGB(const uint8_t* r, const uint8_t* g, const uint8_t* b, - int len, int step, uint32_t* out) { - int i, offset = 0; - for (i = 0; i < len; ++i) { - out[i] = MakeARGB32(0xff, r[offset], g[offset], b[offset]); - offset += step; - } -} - -void (*VP8PackARGB)(const uint8_t*, const uint8_t*, const uint8_t*, - const uint8_t*, int, uint32_t*); -void (*VP8PackRGB)(const uint8_t*, const uint8_t*, const uint8_t*, - int, int, uint32_t*); - -extern void VP8EncDspARGBInitMIPSdspR2(void); -extern void VP8EncDspARGBInitSSE2(void); - -static volatile VP8CPUInfo argb_last_cpuinfo_used = - (VP8CPUInfo)&argb_last_cpuinfo_used; - -WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspARGBInit(void) { - if (argb_last_cpuinfo_used == VP8GetCPUInfo) return; - - VP8PackARGB = PackARGB; - VP8PackRGB = PackRGB; - - // If defined, use CPUInfo() to overwrite some pointers with faster versions. - if (VP8GetCPUInfo != NULL) { -#if defined(WEBP_USE_SSE2) - if (VP8GetCPUInfo(kSSE2)) { - VP8EncDspARGBInitSSE2(); - } -#endif -#if defined(WEBP_USE_MIPS_DSP_R2) - if (VP8GetCPUInfo(kMIPSdspR2)) { - VP8EncDspARGBInitMIPSdspR2(); - } -#endif - } - argb_last_cpuinfo_used = VP8GetCPUInfo; -} diff --git a/external/libwebp-0.6.0/src/dsp/argb_mips_dsp_r2.c b/external/libwebp-0.6.0/src/dsp/argb_mips_dsp_r2.c deleted file mode 100644 index af65acb8..00000000 --- a/external/libwebp-0.6.0/src/dsp/argb_mips_dsp_r2.c +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright 2014 Google Inc. All Rights Reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the COPYING file in the root of the source -// tree. An additional intellectual property rights grant can be found -// in the file PATENTS. All contributing project authors may -// be found in the AUTHORS file in the root of the source tree. -// ----------------------------------------------------------------------------- -// -// ARGB making functions (mips version). -// -// Author: Djordje Pesut (djordje.pesut@imgtec.com) - -#include "./dsp.h" - -#if defined(WEBP_USE_MIPS_DSP_R2) - -static void PackARGB(const uint8_t* a, const uint8_t* r, const uint8_t* g, - const uint8_t* b, int len, uint32_t* out) { - int temp0, temp1, temp2, temp3, offset; - const int rest = len & 1; - const uint32_t* const loop_end = out + len - rest; - const int step = 4; - __asm__ volatile ( - "xor %[offset], %[offset], %[offset] \n\t" - "beq %[loop_end], %[out], 0f \n\t" - "2: \n\t" - "lbux %[temp0], %[offset](%[a]) \n\t" - "lbux %[temp1], %[offset](%[r]) \n\t" - "lbux %[temp2], %[offset](%[g]) \n\t" - "lbux %[temp3], %[offset](%[b]) \n\t" - "ins %[temp1], %[temp0], 16, 16 \n\t" - "ins %[temp3], %[temp2], 16, 16 \n\t" - "addiu %[out], %[out], 4 \n\t" - "precr.qb.ph %[temp0], %[temp1], %[temp3] \n\t" - "sw %[temp0], -4(%[out]) \n\t" - "addu %[offset], %[offset], %[step] \n\t" - "bne %[loop_end], %[out], 2b \n\t" - "0: \n\t" - "beq %[rest], $zero, 1f \n\t" - "lbux %[temp0], %[offset](%[a]) \n\t" - "lbux %[temp1], %[offset](%[r]) \n\t" - "lbux %[temp2], %[offset](%[g]) \n\t" - "lbux %[temp3], %[offset](%[b]) \n\t" - "ins %[temp1], %[temp0], 16, 16 \n\t" - "ins %[temp3], %[temp2], 16, 16 \n\t" - "precr.qb.ph %[temp0], %[temp1], %[temp3] \n\t" - "sw %[temp0], 0(%[out]) \n\t" - "1: \n\t" - : [temp0]"=&r"(temp0), [temp1]"=&r"(temp1), [temp2]"=&r"(temp2), - [temp3]"=&r"(temp3), [offset]"=&r"(offset), [out]"+&r"(out) - : [a]"r"(a), [r]"r"(r), [g]"r"(g), [b]"r"(b), [step]"r"(step), - [loop_end]"r"(loop_end), [rest]"r"(rest) - : "memory" - ); -} - -static void PackRGB(const uint8_t* r, const uint8_t* g, const uint8_t* b, - int len, int step, uint32_t* out) { - int temp0, temp1, temp2, offset; - const int rest = len & 1; - const int a = 0xff; - const uint32_t* const loop_end = out + len - rest; - __asm__ volatile ( - "xor %[offset], %[offset], %[offset] \n\t" - "beq %[loop_end], %[out], 0f \n\t" - "2: \n\t" - "lbux %[temp0], %[offset](%[r]) \n\t" - "lbux %[temp1], %[offset](%[g]) \n\t" - "lbux %[temp2], %[offset](%[b]) \n\t" - "ins %[temp0], %[a], 16, 16 \n\t" - "ins %[temp2], %[temp1], 16, 16 \n\t" - "addiu %[out], %[out], 4 \n\t" - "precr.qb.ph %[temp0], %[temp0], %[temp2] \n\t" - "sw %[temp0], -4(%[out]) \n\t" - "addu %[offset], %[offset], %[step] \n\t" - "bne %[loop_end], %[out], 2b \n\t" - "0: \n\t" - "beq %[rest], $zero, 1f \n\t" - "lbux %[temp0], %[offset](%[r]) \n\t" - "lbux %[temp1], %[offset](%[g]) \n\t" - "lbux %[temp2], %[offset](%[b]) \n\t" - "ins %[temp0], %[a], 16, 16 \n\t" - "ins %[temp2], %[temp1], 16, 16 \n\t" - "precr.qb.ph %[temp0], %[temp0], %[temp2] \n\t" - "sw %[temp0], 0(%[out]) \n\t" - "1: \n\t" - : [temp0]"=&r"(temp0), [temp1]"=&r"(temp1), [temp2]"=&r"(temp2), - [offset]"=&r"(offset), [out]"+&r"(out) - : [a]"r"(a), [r]"r"(r), [g]"r"(g), [b]"r"(b), [step]"r"(step), - [loop_end]"r"(loop_end), [rest]"r"(rest) - : "memory" - ); -} - -//------------------------------------------------------------------------------ -// Entry point - -extern void VP8EncDspARGBInitMIPSdspR2(void); - -WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspARGBInitMIPSdspR2(void) { - VP8PackARGB = PackARGB; - VP8PackRGB = PackRGB; -} - -#else // !WEBP_USE_MIPS_DSP_R2 - -WEBP_DSP_INIT_STUB(VP8EncDspARGBInitMIPSdspR2) - -#endif // WEBP_USE_MIPS_DSP_R2 diff --git a/external/libwebp-0.6.0/src/dsp/argb_sse2.c b/external/libwebp-0.6.0/src/dsp/argb_sse2.c deleted file mode 100644 index afcb1957..00000000 --- a/external/libwebp-0.6.0/src/dsp/argb_sse2.c +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2014 Google Inc. All Rights Reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the COPYING file in the root of the source -// tree. An additional intellectual property rights grant can be found -// in the file PATENTS. All contributing project authors may -// be found in the AUTHORS file in the root of the source tree. -// ----------------------------------------------------------------------------- -// -// ARGB making functions (SSE2 version). -// -// Author: Skal (pascal.massimino@gmail.com) - -#include "./dsp.h" - -#if defined(WEBP_USE_SSE2) - -#include -#include -#include - -static WEBP_INLINE uint32_t MakeARGB32(int a, int r, int g, int b) { - return (((uint32_t)a << 24) | (r << 16) | (g << 8) | b); -} - -static void PackARGB(const uint8_t* a, const uint8_t* r, const uint8_t* g, - const uint8_t* b, int len, uint32_t* out) { - if (g == r + 1) { // RGBA input order. Need to swap R and B. - int i = 0; - const int len_max = len & ~3; // max length processed in main loop - const __m128i red_blue_mask = _mm_set1_epi32(0x00ff00ffu); - assert(b == r + 2); - assert(a == r + 3); - for (; i < len_max; i += 4) { - const __m128i A = _mm_loadu_si128((const __m128i*)(r + 4 * i)); - const __m128i B = _mm_and_si128(A, red_blue_mask); // R 0 B 0 - const __m128i C = _mm_andnot_si128(red_blue_mask, A); // 0 G 0 A - const __m128i D = _mm_shufflelo_epi16(B, _MM_SHUFFLE(2, 3, 0, 1)); - const __m128i E = _mm_shufflehi_epi16(D, _MM_SHUFFLE(2, 3, 0, 1)); - const __m128i F = _mm_or_si128(E, C); - _mm_storeu_si128((__m128i*)(out + i), F); - } - for (; i < len; ++i) { - out[i] = MakeARGB32(a[4 * i], r[4 * i], g[4 * i], b[4 * i]); - } - } else { - assert(g == b + 1); - assert(r == b + 2); - assert(a == b + 3); - memcpy(out, b, len * 4); - } -} - -//------------------------------------------------------------------------------ -// Entry point - -extern void VP8EncDspARGBInitSSE2(void); - -WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspARGBInitSSE2(void) { - VP8PackARGB = PackARGB; -} - -#else // !WEBP_USE_SSE2 - -WEBP_DSP_INIT_STUB(VP8EncDspARGBInitSSE2) - -#endif // WEBP_USE_SSE2 diff --git a/external/libwebp-0.6.0/src/dsp/lossless_enc_sse41.c b/external/libwebp-0.6.0/src/dsp/lossless_enc_sse41.c deleted file mode 100644 index 821057cc..00000000 --- a/external/libwebp-0.6.0/src/dsp/lossless_enc_sse41.c +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2015 Google Inc. All Rights Reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the COPYING file in the root of the source -// tree. An additional intellectual property rights grant can be found -// in the file PATENTS. All contributing project authors may -// be found in the AUTHORS file in the root of the source tree. -// ----------------------------------------------------------------------------- -// -// SSE4.1 variant of methods for lossless encoder -// -// Author: Skal (pascal.massimino@gmail.com) - -#include "./dsp.h" - -#if defined(WEBP_USE_SSE41) -#include -#include -#include "./lossless.h" - -//------------------------------------------------------------------------------ -// Subtract-Green Transform - -static void SubtractGreenFromBlueAndRed(uint32_t* argb_data, int num_pixels) { - int i; - const __m128i kCstShuffle = _mm_set_epi8(-1, 13, -1, 13, -1, 9, -1, 9, - -1, 5, -1, 5, -1, 1, -1, 1); - for (i = 0; i + 4 <= num_pixels; i += 4) { - const __m128i in = _mm_loadu_si128((__m128i*)&argb_data[i]); - const __m128i in_0g0g = _mm_shuffle_epi8(in, kCstShuffle); - const __m128i out = _mm_sub_epi8(in, in_0g0g); - _mm_storeu_si128((__m128i*)&argb_data[i], out); - } - // fallthrough and finish off with plain-C - if (i != num_pixels) { - VP8LSubtractGreenFromBlueAndRed_C(argb_data + i, num_pixels - i); - } -} - -//------------------------------------------------------------------------------ -// Entry point - -extern void VP8LEncDspInitSSE41(void); - -WEBP_TSAN_IGNORE_FUNCTION void VP8LEncDspInitSSE41(void) { - VP8LSubtractGreenFromBlueAndRed = SubtractGreenFromBlueAndRed; -} - -#else // !WEBP_USE_SSE41 - -WEBP_DSP_INIT_STUB(VP8LEncDspInitSSE41) - -#endif // WEBP_USE_SSE41 diff --git a/external/libwebp-0.6.0/src/enc/backward_references_enc.c b/external/libwebp-0.6.0/src/enc/backward_references_enc.c deleted file mode 100644 index 7c0559ff..00000000 --- a/external/libwebp-0.6.0/src/enc/backward_references_enc.c +++ /dev/null @@ -1,1800 +0,0 @@ -// Copyright 2012 Google Inc. All Rights Reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the COPYING file in the root of the source -// tree. An additional intellectual property rights grant can be found -// in the file PATENTS. All contributing project authors may -// be found in the AUTHORS file in the root of the source tree. -// ----------------------------------------------------------------------------- -// -// Author: Jyrki Alakuijala (jyrki@google.com) -// - -#include -#include - -#include "./backward_references_enc.h" -#include "./histogram_enc.h" -#include "../dsp/lossless.h" -#include "../dsp/lossless_common.h" -#include "../dsp/dsp.h" -#include "../utils/color_cache_utils.h" -#include "../utils/utils.h" - -#define VALUES_IN_BYTE 256 - -#define MIN_BLOCK_SIZE 256 // minimum block size for backward references - -#define MAX_ENTROPY (1e30f) - -// 1M window (4M bytes) minus 120 special codes for short distances. -#define WINDOW_SIZE_BITS 20 -#define WINDOW_SIZE ((1 << WINDOW_SIZE_BITS) - 120) - -// Minimum number of pixels for which it is cheaper to encode a -// distance + length instead of each pixel as a literal. -#define MIN_LENGTH 4 -// If you change this, you need MAX_LENGTH_BITS + WINDOW_SIZE_BITS <= 32 as it -// is used in VP8LHashChain. -#define MAX_LENGTH_BITS 12 -// We want the max value to be attainable and stored in MAX_LENGTH_BITS bits. -#define MAX_LENGTH ((1 << MAX_LENGTH_BITS) - 1) -#if MAX_LENGTH_BITS + WINDOW_SIZE_BITS > 32 -#error "MAX_LENGTH_BITS + WINDOW_SIZE_BITS > 32" -#endif - -// ----------------------------------------------------------------------------- - -static const uint8_t plane_to_code_lut[128] = { - 96, 73, 55, 39, 23, 13, 5, 1, 255, 255, 255, 255, 255, 255, 255, 255, - 101, 78, 58, 42, 26, 16, 8, 2, 0, 3, 9, 17, 27, 43, 59, 79, - 102, 86, 62, 46, 32, 20, 10, 6, 4, 7, 11, 21, 33, 47, 63, 87, - 105, 90, 70, 52, 37, 28, 18, 14, 12, 15, 19, 29, 38, 53, 71, 91, - 110, 99, 82, 66, 48, 35, 30, 24, 22, 25, 31, 36, 49, 67, 83, 100, - 115, 108, 94, 76, 64, 50, 44, 40, 34, 41, 45, 51, 65, 77, 95, 109, - 118, 113, 103, 92, 80, 68, 60, 56, 54, 57, 61, 69, 81, 93, 104, 114, - 119, 116, 111, 106, 97, 88, 84, 74, 72, 75, 85, 89, 98, 107, 112, 117 -}; - -static int DistanceToPlaneCode(int xsize, int dist) { - const int yoffset = dist / xsize; - const int xoffset = dist - yoffset * xsize; - if (xoffset <= 8 && yoffset < 8) { - return plane_to_code_lut[yoffset * 16 + 8 - xoffset] + 1; - } else if (xoffset > xsize - 8 && yoffset < 7) { - return plane_to_code_lut[(yoffset + 1) * 16 + 8 + (xsize - xoffset)] + 1; - } - return dist + 120; -} - -// Returns the exact index where array1 and array2 are different. For an index -// inferior or equal to best_len_match, the return value just has to be strictly -// inferior to best_len_match. The current behavior is to return 0 if this index -// is best_len_match, and the index itself otherwise. -// If no two elements are the same, it returns max_limit. -static WEBP_INLINE int FindMatchLength(const uint32_t* const array1, - const uint32_t* const array2, - int best_len_match, int max_limit) { - // Before 'expensive' linear match, check if the two arrays match at the - // current best length index. - if (array1[best_len_match] != array2[best_len_match]) return 0; - - return VP8LVectorMismatch(array1, array2, max_limit); -} - -// ----------------------------------------------------------------------------- -// VP8LBackwardRefs - -struct PixOrCopyBlock { - PixOrCopyBlock* next_; // next block (or NULL) - PixOrCopy* start_; // data start - int size_; // currently used size -}; - -static void ClearBackwardRefs(VP8LBackwardRefs* const refs) { - assert(refs != NULL); - if (refs->tail_ != NULL) { - *refs->tail_ = refs->free_blocks_; // recycle all blocks at once - } - refs->free_blocks_ = refs->refs_; - refs->tail_ = &refs->refs_; - refs->last_block_ = NULL; - refs->refs_ = NULL; -} - -void VP8LBackwardRefsClear(VP8LBackwardRefs* const refs) { - assert(refs != NULL); - ClearBackwardRefs(refs); - while (refs->free_blocks_ != NULL) { - PixOrCopyBlock* const next = refs->free_blocks_->next_; - WebPSafeFree(refs->free_blocks_); - refs->free_blocks_ = next; - } -} - -void VP8LBackwardRefsInit(VP8LBackwardRefs* const refs, int block_size) { - assert(refs != NULL); - memset(refs, 0, sizeof(*refs)); - refs->tail_ = &refs->refs_; - refs->block_size_ = - (block_size < MIN_BLOCK_SIZE) ? MIN_BLOCK_SIZE : block_size; -} - -VP8LRefsCursor VP8LRefsCursorInit(const VP8LBackwardRefs* const refs) { - VP8LRefsCursor c; - c.cur_block_ = refs->refs_; - if (refs->refs_ != NULL) { - c.cur_pos = c.cur_block_->start_; - c.last_pos_ = c.cur_pos + c.cur_block_->size_; - } else { - c.cur_pos = NULL; - c.last_pos_ = NULL; - } - return c; -} - -void VP8LRefsCursorNextBlock(VP8LRefsCursor* const c) { - PixOrCopyBlock* const b = c->cur_block_->next_; - c->cur_pos = (b == NULL) ? NULL : b->start_; - c->last_pos_ = (b == NULL) ? NULL : b->start_ + b->size_; - c->cur_block_ = b; -} - -// Create a new block, either from the free list or allocated -static PixOrCopyBlock* BackwardRefsNewBlock(VP8LBackwardRefs* const refs) { - PixOrCopyBlock* b = refs->free_blocks_; - if (b == NULL) { // allocate new memory chunk - const size_t total_size = - sizeof(*b) + refs->block_size_ * sizeof(*b->start_); - b = (PixOrCopyBlock*)WebPSafeMalloc(1ULL, total_size); - if (b == NULL) { - refs->error_ |= 1; - return NULL; - } - b->start_ = (PixOrCopy*)((uint8_t*)b + sizeof(*b)); // not always aligned - } else { // recycle from free-list - refs->free_blocks_ = b->next_; - } - *refs->tail_ = b; - refs->tail_ = &b->next_; - refs->last_block_ = b; - b->next_ = NULL; - b->size_ = 0; - return b; -} - -static WEBP_INLINE void BackwardRefsCursorAdd(VP8LBackwardRefs* const refs, - const PixOrCopy v) { - PixOrCopyBlock* b = refs->last_block_; - if (b == NULL || b->size_ == refs->block_size_) { - b = BackwardRefsNewBlock(refs); - if (b == NULL) return; // refs->error_ is set - } - b->start_[b->size_++] = v; -} - -int VP8LBackwardRefsCopy(const VP8LBackwardRefs* const src, - VP8LBackwardRefs* const dst) { - const PixOrCopyBlock* b = src->refs_; - ClearBackwardRefs(dst); - assert(src->block_size_ == dst->block_size_); - while (b != NULL) { - PixOrCopyBlock* const new_b = BackwardRefsNewBlock(dst); - if (new_b == NULL) return 0; // dst->error_ is set - memcpy(new_b->start_, b->start_, b->size_ * sizeof(*b->start_)); - new_b->size_ = b->size_; - b = b->next_; - } - return 1; -} - -// ----------------------------------------------------------------------------- -// Hash chains - -int VP8LHashChainInit(VP8LHashChain* const p, int size) { - assert(p->size_ == 0); - assert(p->offset_length_ == NULL); - assert(size > 0); - p->offset_length_ = - (uint32_t*)WebPSafeMalloc(size, sizeof(*p->offset_length_)); - if (p->offset_length_ == NULL) return 0; - p->size_ = size; - - return 1; -} - -void VP8LHashChainClear(VP8LHashChain* const p) { - assert(p != NULL); - WebPSafeFree(p->offset_length_); - - p->size_ = 0; - p->offset_length_ = NULL; -} - -// ----------------------------------------------------------------------------- - -#define HASH_MULTIPLIER_HI (0xc6a4a793ULL) -#define HASH_MULTIPLIER_LO (0x5bd1e996ULL) - -static WEBP_INLINE uint32_t GetPixPairHash64(const uint32_t* const argb) { - uint32_t key; - key = (argb[1] * HASH_MULTIPLIER_HI) & 0xffffffffu; - key += (argb[0] * HASH_MULTIPLIER_LO) & 0xffffffffu; - key = key >> (32 - HASH_BITS); - return key; -} - -// Returns the maximum number of hash chain lookups to do for a -// given compression quality. Return value in range [8, 86]. -static int GetMaxItersForQuality(int quality) { - return 8 + (quality * quality) / 128; -} - -static int GetWindowSizeForHashChain(int quality, int xsize) { - const int max_window_size = (quality > 75) ? WINDOW_SIZE - : (quality > 50) ? (xsize << 8) - : (quality > 25) ? (xsize << 6) - : (xsize << 4); - assert(xsize > 0); - return (max_window_size > WINDOW_SIZE) ? WINDOW_SIZE : max_window_size; -} - -static WEBP_INLINE int MaxFindCopyLength(int len) { - return (len < MAX_LENGTH) ? len : MAX_LENGTH; -} - -int VP8LHashChainFill(VP8LHashChain* const p, int quality, - const uint32_t* const argb, int xsize, int ysize, - int low_effort) { - const int size = xsize * ysize; - const int iter_max = GetMaxItersForQuality(quality); - const uint32_t window_size = GetWindowSizeForHashChain(quality, xsize); - int pos; - int argb_comp; - uint32_t base_position; - int32_t* hash_to_first_index; - // Temporarily use the p->offset_length_ as a hash chain. - int32_t* chain = (int32_t*)p->offset_length_; - assert(size > 0); - assert(p->size_ != 0); - assert(p->offset_length_ != NULL); - - if (size <= 2) { - p->offset_length_[0] = p->offset_length_[size - 1] = 0; - return 1; - } - - hash_to_first_index = - (int32_t*)WebPSafeMalloc(HASH_SIZE, sizeof(*hash_to_first_index)); - if (hash_to_first_index == NULL) return 0; - - // Set the int32_t array to -1. - memset(hash_to_first_index, 0xff, HASH_SIZE * sizeof(*hash_to_first_index)); - // Fill the chain linking pixels with the same hash. - argb_comp = (argb[0] == argb[1]); - for (pos = 0; pos < size - 2;) { - uint32_t hash_code; - const int argb_comp_next = (argb[pos + 1] == argb[pos + 2]); - if (argb_comp && argb_comp_next) { - // Consecutive pixels with the same color will share the same hash. - // We therefore use a different hash: the color and its repetition - // length. - uint32_t tmp[2]; - uint32_t len = 1; - tmp[0] = argb[pos]; - // Figure out how far the pixels are the same. - // The last pixel has a different 64 bit hash, as its next pixel does - // not have the same color, so we just need to get to the last pixel equal - // to its follower. - while (pos + (int)len + 2 < size && argb[pos + len + 2] == argb[pos]) { - ++len; - } - if (len > MAX_LENGTH) { - // Skip the pixels that match for distance=1 and length>MAX_LENGTH - // because they are linked to their predecessor and we automatically - // check that in the main for loop below. Skipping means setting no - // predecessor in the chain, hence -1. - memset(chain + pos, 0xff, (len - MAX_LENGTH) * sizeof(*chain)); - pos += len - MAX_LENGTH; - len = MAX_LENGTH; - } - // Process the rest of the hash chain. - while (len) { - tmp[1] = len--; - hash_code = GetPixPairHash64(tmp); - chain[pos] = hash_to_first_index[hash_code]; - hash_to_first_index[hash_code] = pos++; - } - argb_comp = 0; - } else { - // Just move one pixel forward. - hash_code = GetPixPairHash64(argb + pos); - chain[pos] = hash_to_first_index[hash_code]; - hash_to_first_index[hash_code] = pos++; - argb_comp = argb_comp_next; - } - } - // Process the penultimate pixel. - chain[pos] = hash_to_first_index[GetPixPairHash64(argb + pos)]; - - WebPSafeFree(hash_to_first_index); - - // Find the best match interval at each pixel, defined by an offset to the - // pixel and a length. The right-most pixel cannot match anything to the right - // (hence a best length of 0) and the left-most pixel nothing to the left - // (hence an offset of 0). - assert(size > 2); - p->offset_length_[0] = p->offset_length_[size - 1] = 0; - for (base_position = size - 2; base_position > 0;) { - const int max_len = MaxFindCopyLength(size - 1 - base_position); - const uint32_t* const argb_start = argb + base_position; - int iter = iter_max; - int best_length = 0; - uint32_t best_distance = 0; - uint32_t best_argb; - const int min_pos = - (base_position > window_size) ? base_position - window_size : 0; - const int length_max = (max_len < 256) ? max_len : 256; - uint32_t max_base_position; - - pos = chain[base_position]; - if (!low_effort) { - int curr_length; - // Heuristic: use the comparison with the above line as an initialization. - if (base_position >= (uint32_t)xsize) { - curr_length = FindMatchLength(argb_start - xsize, argb_start, - best_length, max_len); - if (curr_length > best_length) { - best_length = curr_length; - best_distance = xsize; - } - --iter; - } - // Heuristic: compare to the previous pixel. - curr_length = - FindMatchLength(argb_start - 1, argb_start, best_length, max_len); - if (curr_length > best_length) { - best_length = curr_length; - best_distance = 1; - } - --iter; - // Skip the for loop if we already have the maximum. - if (best_length == MAX_LENGTH) pos = min_pos - 1; - } - best_argb = argb_start[best_length]; - - for (; pos >= min_pos && --iter; pos = chain[pos]) { - int curr_length; - assert(base_position > (uint32_t)pos); - - if (argb[pos + best_length] != best_argb) continue; - - curr_length = VP8LVectorMismatch(argb + pos, argb_start, max_len); - if (best_length < curr_length) { - best_length = curr_length; - best_distance = base_position - pos; - best_argb = argb_start[best_length]; - // Stop if we have reached a good enough length. - if (best_length >= length_max) break; - } - } - // We have the best match but in case the two intervals continue matching - // to the left, we have the best matches for the left-extended pixels. - max_base_position = base_position; - while (1) { - assert(best_length <= MAX_LENGTH); - assert(best_distance <= WINDOW_SIZE); - p->offset_length_[base_position] = - (best_distance << MAX_LENGTH_BITS) | (uint32_t)best_length; - --base_position; - // Stop if we don't have a match or if we are out of bounds. - if (best_distance == 0 || base_position == 0) break; - // Stop if we cannot extend the matching intervals to the left. - if (base_position < best_distance || - argb[base_position - best_distance] != argb[base_position]) { - break; - } - // Stop if we are matching at its limit because there could be a closer - // matching interval with the same maximum length. Then again, if the - // matching interval is as close as possible (best_distance == 1), we will - // never find anything better so let's continue. - if (best_length == MAX_LENGTH && best_distance != 1 && - base_position + MAX_LENGTH < max_base_position) { - break; - } - if (best_length < MAX_LENGTH) { - ++best_length; - max_base_position = base_position; - } - } - } - return 1; -} - -static WEBP_INLINE int HashChainFindOffset(const VP8LHashChain* const p, - const int base_position) { - return p->offset_length_[base_position] >> MAX_LENGTH_BITS; -} - -static WEBP_INLINE int HashChainFindLength(const VP8LHashChain* const p, - const int base_position) { - return p->offset_length_[base_position] & ((1U << MAX_LENGTH_BITS) - 1); -} - -static WEBP_INLINE void HashChainFindCopy(const VP8LHashChain* const p, - int base_position, - int* const offset_ptr, - int* const length_ptr) { - *offset_ptr = HashChainFindOffset(p, base_position); - *length_ptr = HashChainFindLength(p, base_position); -} - -static WEBP_INLINE void AddSingleLiteral(uint32_t pixel, int use_color_cache, - VP8LColorCache* const hashers, - VP8LBackwardRefs* const refs) { - PixOrCopy v; - if (use_color_cache) { - const uint32_t key = VP8LColorCacheGetIndex(hashers, pixel); - if (VP8LColorCacheLookup(hashers, key) == pixel) { - v = PixOrCopyCreateCacheIdx(key); - } else { - v = PixOrCopyCreateLiteral(pixel); - VP8LColorCacheSet(hashers, key, pixel); - } - } else { - v = PixOrCopyCreateLiteral(pixel); - } - BackwardRefsCursorAdd(refs, v); -} - -static int BackwardReferencesRle(int xsize, int ysize, - const uint32_t* const argb, - int cache_bits, VP8LBackwardRefs* const refs) { - const int pix_count = xsize * ysize; - int i, k; - const int use_color_cache = (cache_bits > 0); - VP8LColorCache hashers; - - if (use_color_cache && !VP8LColorCacheInit(&hashers, cache_bits)) { - return 0; - } - ClearBackwardRefs(refs); - // Add first pixel as literal. - AddSingleLiteral(argb[0], use_color_cache, &hashers, refs); - i = 1; - while (i < pix_count) { - const int max_len = MaxFindCopyLength(pix_count - i); - const int rle_len = FindMatchLength(argb + i, argb + i - 1, 0, max_len); - const int prev_row_len = (i < xsize) ? 0 : - FindMatchLength(argb + i, argb + i - xsize, 0, max_len); - if (rle_len >= prev_row_len && rle_len >= MIN_LENGTH) { - BackwardRefsCursorAdd(refs, PixOrCopyCreateCopy(1, rle_len)); - // We don't need to update the color cache here since it is always the - // same pixel being copied, and that does not change the color cache - // state. - i += rle_len; - } else if (prev_row_len >= MIN_LENGTH) { - BackwardRefsCursorAdd(refs, PixOrCopyCreateCopy(xsize, prev_row_len)); - if (use_color_cache) { - for (k = 0; k < prev_row_len; ++k) { - VP8LColorCacheInsert(&hashers, argb[i + k]); - } - } - i += prev_row_len; - } else { - AddSingleLiteral(argb[i], use_color_cache, &hashers, refs); - i++; - } - } - if (use_color_cache) VP8LColorCacheClear(&hashers); - return !refs->error_; -} - -static int BackwardReferencesLz77(int xsize, int ysize, - const uint32_t* const argb, int cache_bits, - const VP8LHashChain* const hash_chain, - VP8LBackwardRefs* const refs) { - int i; - int i_last_check = -1; - int ok = 0; - int cc_init = 0; - const int use_color_cache = (cache_bits > 0); - const int pix_count = xsize * ysize; - VP8LColorCache hashers; - - if (use_color_cache) { - cc_init = VP8LColorCacheInit(&hashers, cache_bits); - if (!cc_init) goto Error; - } - ClearBackwardRefs(refs); - for (i = 0; i < pix_count;) { - // Alternative#1: Code the pixels starting at 'i' using backward reference. - int offset = 0; - int len = 0; - int j; - HashChainFindCopy(hash_chain, i, &offset, &len); - if (len >= MIN_LENGTH) { - const int len_ini = len; - int max_reach = 0; - assert(i + len < pix_count); - // Only start from what we have not checked already. - i_last_check = (i > i_last_check) ? i : i_last_check; - // We know the best match for the current pixel but we try to find the - // best matches for the current pixel AND the next one combined. - // The naive method would use the intervals: - // [i,i+len) + [i+len, length of best match at i+len) - // while we check if we can use: - // [i,j) (where j<=i+len) + [j, length of best match at j) - for (j = i_last_check + 1; j <= i + len_ini; ++j) { - const int len_j = HashChainFindLength(hash_chain, j); - const int reach = - j + (len_j >= MIN_LENGTH ? len_j : 1); // 1 for single literal. - if (reach > max_reach) { - len = j - i; - max_reach = reach; - } - } - } else { - len = 1; - } - // Go with literal or backward reference. - assert(len > 0); - if (len == 1) { - AddSingleLiteral(argb[i], use_color_cache, &hashers, refs); - } else { - BackwardRefsCursorAdd(refs, PixOrCopyCreateCopy(offset, len)); - if (use_color_cache) { - for (j = i; j < i + len; ++j) VP8LColorCacheInsert(&hashers, argb[j]); - } - } - i += len; - } - - ok = !refs->error_; - Error: - if (cc_init) VP8LColorCacheClear(&hashers); - return ok; -} - -// ----------------------------------------------------------------------------- - -typedef struct { - double alpha_[VALUES_IN_BYTE]; - double red_[VALUES_IN_BYTE]; - double blue_[VALUES_IN_BYTE]; - double distance_[NUM_DISTANCE_CODES]; - double* literal_; -} CostModel; - -static int BackwardReferencesTraceBackwards( - int xsize, int ysize, const uint32_t* const argb, int quality, - int cache_bits, const VP8LHashChain* const hash_chain, - VP8LBackwardRefs* const refs); - -static void ConvertPopulationCountTableToBitEstimates( - int num_symbols, const uint32_t population_counts[], double output[]) { - uint32_t sum = 0; - int nonzeros = 0; - int i; - for (i = 0; i < num_symbols; ++i) { - sum += population_counts[i]; - if (population_counts[i] > 0) { - ++nonzeros; - } - } - if (nonzeros <= 1) { - memset(output, 0, num_symbols * sizeof(*output)); - } else { - const double logsum = VP8LFastLog2(sum); - for (i = 0; i < num_symbols; ++i) { - output[i] = logsum - VP8LFastLog2(population_counts[i]); - } - } -} - -static int CostModelBuild(CostModel* const m, int cache_bits, - VP8LBackwardRefs* const refs) { - int ok = 0; - VP8LHistogram* const histo = VP8LAllocateHistogram(cache_bits); - if (histo == NULL) goto Error; - - VP8LHistogramCreate(histo, refs, cache_bits); - - ConvertPopulationCountTableToBitEstimates( - VP8LHistogramNumCodes(histo->palette_code_bits_), - histo->literal_, m->literal_); - ConvertPopulationCountTableToBitEstimates( - VALUES_IN_BYTE, histo->red_, m->red_); - ConvertPopulationCountTableToBitEstimates( - VALUES_IN_BYTE, histo->blue_, m->blue_); - ConvertPopulationCountTableToBitEstimates( - VALUES_IN_BYTE, histo->alpha_, m->alpha_); - ConvertPopulationCountTableToBitEstimates( - NUM_DISTANCE_CODES, histo->distance_, m->distance_); - ok = 1; - - Error: - VP8LFreeHistogram(histo); - return ok; -} - -static WEBP_INLINE double GetLiteralCost(const CostModel* const m, uint32_t v) { - return m->alpha_[v >> 24] + - m->red_[(v >> 16) & 0xff] + - m->literal_[(v >> 8) & 0xff] + - m->blue_[v & 0xff]; -} - -static WEBP_INLINE double GetCacheCost(const CostModel* const m, uint32_t idx) { - const int literal_idx = VALUES_IN_BYTE + NUM_LENGTH_CODES + idx; - return m->literal_[literal_idx]; -} - -static WEBP_INLINE double GetLengthCost(const CostModel* const m, - uint32_t length) { - int code, extra_bits; - VP8LPrefixEncodeBits(length, &code, &extra_bits); - return m->literal_[VALUES_IN_BYTE + code] + extra_bits; -} - -static WEBP_INLINE double GetDistanceCost(const CostModel* const m, - uint32_t distance) { - int code, extra_bits; - VP8LPrefixEncodeBits(distance, &code, &extra_bits); - return m->distance_[code] + extra_bits; -} - -static void AddSingleLiteralWithCostModel(const uint32_t* const argb, - VP8LColorCache* const hashers, - const CostModel* const cost_model, - int idx, int use_color_cache, - double prev_cost, float* const cost, - uint16_t* const dist_array) { - double cost_val = prev_cost; - const uint32_t color = argb[0]; - const int ix = use_color_cache ? VP8LColorCacheContains(hashers, color) : -1; - if (ix >= 0) { - // use_color_cache is true and hashers contains color - const double mul0 = 0.68; - cost_val += GetCacheCost(cost_model, ix) * mul0; - } else { - const double mul1 = 0.82; - if (use_color_cache) VP8LColorCacheInsert(hashers, color); - cost_val += GetLiteralCost(cost_model, color) * mul1; - } - if (cost[idx] > cost_val) { - cost[idx] = (float)cost_val; - dist_array[idx] = 1; // only one is inserted. - } -} - -// ----------------------------------------------------------------------------- -// CostManager and interval handling - -// Empirical value to avoid high memory consumption but good for performance. -#define COST_CACHE_INTERVAL_SIZE_MAX 100 - -// To perform backward reference every pixel at index index_ is considered and -// the cost for the MAX_LENGTH following pixels computed. Those following pixels -// at index index_ + k (k from 0 to MAX_LENGTH) have a cost of: -// distance_cost_ at index_ + GetLengthCost(cost_model, k) -// (named cost) (named cached cost) -// and the minimum value is kept. GetLengthCost(cost_model, k) is cached in an -// array of size MAX_LENGTH. -// Instead of performing MAX_LENGTH comparisons per pixel, we keep track of the -// minimal values using intervals, for which lower_ and upper_ bounds are kept. -// An interval is defined by the index_ of the pixel that generated it and -// is only useful in a range of indices from start_ to end_ (exclusive), i.e. -// it contains the minimum value for pixels between start_ and end_. -// Intervals are stored in a linked list and ordered by start_. When a new -// interval has a better minimum, old intervals are split or removed. -typedef struct CostInterval CostInterval; -struct CostInterval { - double lower_; - double upper_; - int start_; - int end_; - double distance_cost_; - int index_; - CostInterval* previous_; - CostInterval* next_; -}; - -// The GetLengthCost(cost_model, k) part of the costs is also bounded for -// efficiency in a set of intervals of a different type. -// If those intervals are small enough, they are not used for comparison and -// written into the costs right away. -typedef struct { - double lower_; // Lower bound of the interval. - double upper_; // Upper bound of the interval. - int start_; - int end_; // Exclusive. - int do_write_; // If !=0, the interval is saved to cost instead of being kept - // for comparison. -} CostCacheInterval; - -// This structure is in charge of managing intervals and costs. -// It caches the different CostCacheInterval, caches the different -// GetLengthCost(cost_model, k) in cost_cache_ and the CostInterval's (whose -// count_ is limited by COST_CACHE_INTERVAL_SIZE_MAX). -#define COST_MANAGER_MAX_FREE_LIST 10 -typedef struct { - CostInterval* head_; - int count_; // The number of stored intervals. - CostCacheInterval* cache_intervals_; - size_t cache_intervals_size_; - double cost_cache_[MAX_LENGTH]; // Contains the GetLengthCost(cost_model, k). - double min_cost_cache_; // The minimum value in cost_cache_[1:]. - double max_cost_cache_; // The maximum value in cost_cache_[1:]. - float* costs_; - uint16_t* dist_array_; - // Most of the time, we only need few intervals -> use a free-list, to avoid - // fragmentation with small allocs in most common cases. - CostInterval intervals_[COST_MANAGER_MAX_FREE_LIST]; - CostInterval* free_intervals_; - // These are regularly malloc'd remains. This list can't grow larger than than - // size COST_CACHE_INTERVAL_SIZE_MAX - COST_MANAGER_MAX_FREE_LIST, note. - CostInterval* recycled_intervals_; - // Buffer used in BackwardReferencesHashChainDistanceOnly to store the ends - // of the intervals that can have impacted the cost at a pixel. - int* interval_ends_; - int interval_ends_size_; -} CostManager; - -static int IsCostCacheIntervalWritable(int start, int end) { - // 100 is the length for which we consider an interval for comparison, and not - // for writing. - // The first intervals are very small and go in increasing size. This constant - // helps merging them into one big interval (up to index 150/200 usually from - // which intervals start getting much bigger). - // This value is empirical. - return (end - start + 1 < 100); -} - -static void CostIntervalAddToFreeList(CostManager* const manager, - CostInterval* const interval) { - interval->next_ = manager->free_intervals_; - manager->free_intervals_ = interval; -} - -static int CostIntervalIsInFreeList(const CostManager* const manager, - const CostInterval* const interval) { - return (interval >= &manager->intervals_[0] && - interval <= &manager->intervals_[COST_MANAGER_MAX_FREE_LIST - 1]); -} - -static void CostManagerInitFreeList(CostManager* const manager) { - int i; - manager->free_intervals_ = NULL; - for (i = 0; i < COST_MANAGER_MAX_FREE_LIST; ++i) { - CostIntervalAddToFreeList(manager, &manager->intervals_[i]); - } -} - -static void DeleteIntervalList(CostManager* const manager, - const CostInterval* interval) { - while (interval != NULL) { - const CostInterval* const next = interval->next_; - if (!CostIntervalIsInFreeList(manager, interval)) { - WebPSafeFree((void*)interval); - } // else: do nothing - interval = next; - } -} - -static void CostManagerClear(CostManager* const manager) { - if (manager == NULL) return; - - WebPSafeFree(manager->costs_); - WebPSafeFree(manager->cache_intervals_); - WebPSafeFree(manager->interval_ends_); - - // Clear the interval lists. - DeleteIntervalList(manager, manager->head_); - manager->head_ = NULL; - DeleteIntervalList(manager, manager->recycled_intervals_); - manager->recycled_intervals_ = NULL; - - // Reset pointers, count_ and cache_intervals_size_. - memset(manager, 0, sizeof(*manager)); - CostManagerInitFreeList(manager); -} - -static int CostManagerInit(CostManager* const manager, - uint16_t* const dist_array, int pix_count, - const CostModel* const cost_model) { - int i; - const int cost_cache_size = (pix_count > MAX_LENGTH) ? MAX_LENGTH : pix_count; - // This constant is tied to the cost_model we use. - // Empirically, differences between intervals is usually of more than 1. - const double min_cost_diff = 0.1; - - manager->costs_ = NULL; - manager->cache_intervals_ = NULL; - manager->interval_ends_ = NULL; - manager->head_ = NULL; - manager->recycled_intervals_ = NULL; - manager->count_ = 0; - manager->dist_array_ = dist_array; - CostManagerInitFreeList(manager); - - // Fill in the cost_cache_. - manager->cache_intervals_size_ = 1; - manager->cost_cache_[0] = 0; - for (i = 1; i < cost_cache_size; ++i) { - manager->cost_cache_[i] = GetLengthCost(cost_model, i); - // Get an approximation of the number of bound intervals. - if (fabs(manager->cost_cache_[i] - manager->cost_cache_[i - 1]) > - min_cost_diff) { - ++manager->cache_intervals_size_; - } - // Compute the minimum of cost_cache_. - if (i == 1) { - manager->min_cost_cache_ = manager->cost_cache_[1]; - manager->max_cost_cache_ = manager->cost_cache_[1]; - } else if (manager->cost_cache_[i] < manager->min_cost_cache_) { - manager->min_cost_cache_ = manager->cost_cache_[i]; - } else if (manager->cost_cache_[i] > manager->max_cost_cache_) { - manager->max_cost_cache_ = manager->cost_cache_[i]; - } - } - - // With the current cost models, we have 15 intervals, so we are safe by - // setting a maximum of COST_CACHE_INTERVAL_SIZE_MAX. - if (manager->cache_intervals_size_ > COST_CACHE_INTERVAL_SIZE_MAX) { - manager->cache_intervals_size_ = COST_CACHE_INTERVAL_SIZE_MAX; - } - manager->cache_intervals_ = (CostCacheInterval*)WebPSafeMalloc( - manager->cache_intervals_size_, sizeof(*manager->cache_intervals_)); - if (manager->cache_intervals_ == NULL) { - CostManagerClear(manager); - return 0; - } - - // Fill in the cache_intervals_. - { - double cost_prev = -1e38f; // unprobably low initial value - CostCacheInterval* prev = NULL; - CostCacheInterval* cur = manager->cache_intervals_; - const CostCacheInterval* const end = - manager->cache_intervals_ + manager->cache_intervals_size_; - - // Consecutive values in cost_cache_ are compared and if a big enough - // difference is found, a new interval is created and bounded. - for (i = 0; i < cost_cache_size; ++i) { - const double cost_val = manager->cost_cache_[i]; - if (i == 0 || - (fabs(cost_val - cost_prev) > min_cost_diff && cur + 1 < end)) { - if (i > 1) { - const int is_writable = - IsCostCacheIntervalWritable(cur->start_, cur->end_); - // Merge with the previous interval if both are writable. - if (is_writable && cur != manager->cache_intervals_ && - prev->do_write_) { - // Update the previous interval. - prev->end_ = cur->end_; - if (cur->lower_ < prev->lower_) { - prev->lower_ = cur->lower_; - } else if (cur->upper_ > prev->upper_) { - prev->upper_ = cur->upper_; - } - } else { - cur->do_write_ = is_writable; - prev = cur; - ++cur; - } - } - // Initialize an interval. - cur->start_ = i; - cur->do_write_ = 0; - cur->lower_ = cost_val; - cur->upper_ = cost_val; - } else { - // Update the current interval bounds. - if (cost_val < cur->lower_) { - cur->lower_ = cost_val; - } else if (cost_val > cur->upper_) { - cur->upper_ = cost_val; - } - } - cur->end_ = i + 1; - cost_prev = cost_val; - } - manager->cache_intervals_size_ = cur + 1 - manager->cache_intervals_; - } - - manager->costs_ = (float*)WebPSafeMalloc(pix_count, sizeof(*manager->costs_)); - if (manager->costs_ == NULL) { - CostManagerClear(manager); - return 0; - } - // Set the initial costs_ high for every pixel as we will keep the minimum. - for (i = 0; i < pix_count; ++i) manager->costs_[i] = 1e38f; - - // The cost at pixel is influenced by the cost intervals from previous pixels. - // Let us take the specific case where the offset is the same (which actually - // happens a lot in case of uniform regions). - // pixel i contributes to j>i a cost of: offset cost + cost_cache_[j-i] - // pixel i+1 contributes to j>i a cost of: 2*offset cost + cost_cache_[j-i-1] - // pixel i+2 contributes to j>i a cost of: 3*offset cost + cost_cache_[j-i-2] - // and so on. - // A pixel i influences the following length(j) < MAX_LENGTH pixels. What is - // the value of j such that pixel i + j cannot influence any of those pixels? - // This value is such that: - // max of cost_cache_ < j*offset cost + min of cost_cache_ - // (pixel i + j 's cost cannot beat the worst cost given by pixel i). - // This value will be used to optimize the cost computation in - // BackwardReferencesHashChainDistanceOnly. - { - // The offset cost is computed in GetDistanceCost and has a minimum value of - // the minimum in cost_model->distance_. The case where the offset cost is 0 - // will be dealt with differently later so we are only interested in the - // minimum non-zero offset cost. - double offset_cost_min = 0.; - int size; - for (i = 0; i < NUM_DISTANCE_CODES; ++i) { - if (cost_model->distance_[i] != 0) { - if (offset_cost_min == 0.) { - offset_cost_min = cost_model->distance_[i]; - } else if (cost_model->distance_[i] < offset_cost_min) { - offset_cost_min = cost_model->distance_[i]; - } - } - } - // In case all the cost_model->distance_ is 0, the next non-zero cost we - // can have is from the extra bit in GetDistanceCost, hence 1. - if (offset_cost_min < 1.) offset_cost_min = 1.; - - size = 1 + (int)ceil((manager->max_cost_cache_ - manager->min_cost_cache_) / - offset_cost_min); - // Empirically, we usually end up with a value below 100. - if (size > MAX_LENGTH) size = MAX_LENGTH; - - manager->interval_ends_ = - (int*)WebPSafeMalloc(size, sizeof(*manager->interval_ends_)); - if (manager->interval_ends_ == NULL) { - CostManagerClear(manager); - return 0; - } - manager->interval_ends_size_ = size; - } - - return 1; -} - -// Given the distance_cost for pixel 'index', update the cost at pixel 'i' if it -// is smaller than the previously computed value. -static WEBP_INLINE void UpdateCost(CostManager* const manager, int i, int index, - double distance_cost) { - int k = i - index; - double cost_tmp; - assert(k >= 0 && k < MAX_LENGTH); - cost_tmp = distance_cost + manager->cost_cache_[k]; - - if (manager->costs_[i] > cost_tmp) { - manager->costs_[i] = (float)cost_tmp; - manager->dist_array_[i] = k + 1; - } -} - -// Given the distance_cost for pixel 'index', update the cost for all the pixels -// between 'start' and 'end' excluded. -static WEBP_INLINE void UpdateCostPerInterval(CostManager* const manager, - int start, int end, int index, - double distance_cost) { - int i; - for (i = start; i < end; ++i) UpdateCost(manager, i, index, distance_cost); -} - -// Given two intervals, make 'prev' be the previous one of 'next' in 'manager'. -static WEBP_INLINE void ConnectIntervals(CostManager* const manager, - CostInterval* const prev, - CostInterval* const next) { - if (prev != NULL) { - prev->next_ = next; - } else { - manager->head_ = next; - } - - if (next != NULL) next->previous_ = prev; -} - -// Pop an interval in the manager. -static WEBP_INLINE void PopInterval(CostManager* const manager, - CostInterval* const interval) { - CostInterval* const next = interval->next_; - - if (interval == NULL) return; - - ConnectIntervals(manager, interval->previous_, next); - if (CostIntervalIsInFreeList(manager, interval)) { - CostIntervalAddToFreeList(manager, interval); - } else { // recycle regularly malloc'd intervals too - interval->next_ = manager->recycled_intervals_; - manager->recycled_intervals_ = interval; - } - --manager->count_; - assert(manager->count_ >= 0); -} - -// Update the cost at index i by going over all the stored intervals that -// overlap with i. -static WEBP_INLINE void UpdateCostPerIndex(CostManager* const manager, int i) { - CostInterval* current = manager->head_; - - while (current != NULL && current->start_ <= i) { - if (current->end_ <= i) { - // We have an outdated interval, remove it. - CostInterval* next = current->next_; - PopInterval(manager, current); - current = next; - } else { - UpdateCost(manager, i, current->index_, current->distance_cost_); - current = current->next_; - } - } -} - -// Given a current orphan interval and its previous interval, before -// it was orphaned (which can be NULL), set it at the right place in the list -// of intervals using the start_ ordering and the previous interval as a hint. -static WEBP_INLINE void PositionOrphanInterval(CostManager* const manager, - CostInterval* const current, - CostInterval* previous) { - assert(current != NULL); - - if (previous == NULL) previous = manager->head_; - while (previous != NULL && current->start_ < previous->start_) { - previous = previous->previous_; - } - while (previous != NULL && previous->next_ != NULL && - previous->next_->start_ < current->start_) { - previous = previous->next_; - } - - if (previous != NULL) { - ConnectIntervals(manager, current, previous->next_); - } else { - ConnectIntervals(manager, current, manager->head_); - } - ConnectIntervals(manager, previous, current); -} - -// Insert an interval in the list contained in the manager by starting at -// interval_in as a hint. The intervals are sorted by start_ value. -static WEBP_INLINE void InsertInterval(CostManager* const manager, - CostInterval* const interval_in, - double distance_cost, double lower, - double upper, int index, int start, - int end) { - CostInterval* interval_new; - - if (IsCostCacheIntervalWritable(start, end) || - manager->count_ >= COST_CACHE_INTERVAL_SIZE_MAX) { - // Write down the interval if it is too small. - UpdateCostPerInterval(manager, start, end, index, distance_cost); - return; - } - if (manager->free_intervals_ != NULL) { - interval_new = manager->free_intervals_; - manager->free_intervals_ = interval_new->next_; - } else if (manager->recycled_intervals_ != NULL) { - interval_new = manager->recycled_intervals_; - manager->recycled_intervals_ = interval_new->next_; - } else { // malloc for good - interval_new = (CostInterval*)WebPSafeMalloc(1, sizeof(*interval_new)); - if (interval_new == NULL) { - // Write down the interval if we cannot create it. - UpdateCostPerInterval(manager, start, end, index, distance_cost); - return; - } - } - - interval_new->distance_cost_ = distance_cost; - interval_new->lower_ = lower; - interval_new->upper_ = upper; - interval_new->index_ = index; - interval_new->start_ = start; - interval_new->end_ = end; - PositionOrphanInterval(manager, interval_new, interval_in); - - ++manager->count_; -} - -// When an interval has its start_ or end_ modified, it needs to be -// repositioned in the linked list. -static WEBP_INLINE void RepositionInterval(CostManager* const manager, - CostInterval* const interval) { - if (IsCostCacheIntervalWritable(interval->start_, interval->end_)) { - // Maybe interval has been resized and is small enough to be removed. - UpdateCostPerInterval(manager, interval->start_, interval->end_, - interval->index_, interval->distance_cost_); - PopInterval(manager, interval); - return; - } - - // Early exit if interval is at the right spot. - if ((interval->previous_ == NULL || - interval->previous_->start_ <= interval->start_) && - (interval->next_ == NULL || - interval->start_ <= interval->next_->start_)) { - return; - } - - ConnectIntervals(manager, interval->previous_, interval->next_); - PositionOrphanInterval(manager, interval, interval->previous_); -} - -// Given a new cost interval defined by its start at index, its last value and -// distance_cost, add its contributions to the previous intervals and costs. -// If handling the interval or one of its subintervals becomes to heavy, its -// contribution is added to the costs right away. -static WEBP_INLINE void PushInterval(CostManager* const manager, - double distance_cost, int index, - int last) { - size_t i; - CostInterval* interval = manager->head_; - CostInterval* interval_next; - const CostCacheInterval* const cost_cache_intervals = - manager->cache_intervals_; - - for (i = 0; i < manager->cache_intervals_size_ && - cost_cache_intervals[i].start_ < last; - ++i) { - // Define the intersection of the ith interval with the new one. - int start = index + cost_cache_intervals[i].start_; - const int end = index + (cost_cache_intervals[i].end_ > last - ? last - : cost_cache_intervals[i].end_); - const double lower_in = cost_cache_intervals[i].lower_; - const double upper_in = cost_cache_intervals[i].upper_; - const double lower_full_in = distance_cost + lower_in; - const double upper_full_in = distance_cost + upper_in; - - if (cost_cache_intervals[i].do_write_) { - UpdateCostPerInterval(manager, start, end, index, distance_cost); - continue; - } - - for (; interval != NULL && interval->start_ < end && start < end; - interval = interval_next) { - const double lower_full_interval = - interval->distance_cost_ + interval->lower_; - const double upper_full_interval = - interval->distance_cost_ + interval->upper_; - - interval_next = interval->next_; - - // Make sure we have some overlap - if (start >= interval->end_) continue; - - if (lower_full_in >= upper_full_interval) { - // When intervals are represented, the lower, the better. - // [**********************************************************] - // start end - // [----------------------------------] - // interval->start_ interval->end_ - // If we are worse than what we already have, add whatever we have so - // far up to interval. - const int start_new = interval->end_; - InsertInterval(manager, interval, distance_cost, lower_in, upper_in, - index, start, interval->start_); - start = start_new; - continue; - } - - // We know the two intervals intersect. - if (upper_full_in >= lower_full_interval) { - // There is no clear cut on which is best, so let's keep both. - // [*********[*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*]***********] - // start interval->start_ interval->end_ end - // OR - // [*********[*-*-*-*-*-*-*-*-*-*-*-]----------------------] - // start interval->start_ end interval->end_ - const int end_new = (interval->end_ <= end) ? interval->end_ : end; - InsertInterval(manager, interval, distance_cost, lower_in, upper_in, - index, start, end_new); - start = end_new; - } else if (start <= interval->start_ && interval->end_ <= end) { - // [----------------------------------] - // interval->start_ interval->end_ - // [**************************************************************] - // start end - // We can safely remove the old interval as it is fully included. - PopInterval(manager, interval); - } else { - if (interval->start_ <= start && end <= interval->end_) { - // [--------------------------------------------------------------] - // interval->start_ interval->end_ - // [*****************************] - // start end - // We have to split the old interval as it fully contains the new one. - const int end_original = interval->end_; - interval->end_ = start; - InsertInterval(manager, interval, interval->distance_cost_, - interval->lower_, interval->upper_, interval->index_, - end, end_original); - } else if (interval->start_ < start) { - // [------------------------------------] - // interval->start_ interval->end_ - // [*****************************] - // start end - interval->end_ = start; - } else { - // [------------------------------------] - // interval->start_ interval->end_ - // [*****************************] - // start end - interval->start_ = end; - } - - // The interval has been modified, we need to reposition it or write it. - RepositionInterval(manager, interval); - } - } - // Insert the remaining interval from start to end. - InsertInterval(manager, interval, distance_cost, lower_in, upper_in, index, - start, end); - } -} - -static int BackwardReferencesHashChainDistanceOnly( - int xsize, int ysize, const uint32_t* const argb, int quality, - int cache_bits, const VP8LHashChain* const hash_chain, - VP8LBackwardRefs* const refs, uint16_t* const dist_array) { - int i; - int ok = 0; - int cc_init = 0; - const int pix_count = xsize * ysize; - const int use_color_cache = (cache_bits > 0); - const size_t literal_array_size = sizeof(double) * - (NUM_LITERAL_CODES + NUM_LENGTH_CODES + - ((cache_bits > 0) ? (1 << cache_bits) : 0)); - const size_t cost_model_size = sizeof(CostModel) + literal_array_size; - CostModel* const cost_model = - (CostModel*)WebPSafeCalloc(1ULL, cost_model_size); - VP8LColorCache hashers; - const int skip_length = 32 + quality; - const int skip_min_distance_code = 2; - CostManager* cost_manager = - (CostManager*)WebPSafeMalloc(1ULL, sizeof(*cost_manager)); - - if (cost_model == NULL || cost_manager == NULL) goto Error; - - cost_model->literal_ = (double*)(cost_model + 1); - if (use_color_cache) { - cc_init = VP8LColorCacheInit(&hashers, cache_bits); - if (!cc_init) goto Error; - } - - if (!CostModelBuild(cost_model, cache_bits, refs)) { - goto Error; - } - - if (!CostManagerInit(cost_manager, dist_array, pix_count, cost_model)) { - goto Error; - } - - // We loop one pixel at a time, but store all currently best points to - // non-processed locations from this point. - dist_array[0] = 0; - // Add first pixel as literal. - AddSingleLiteralWithCostModel(argb + 0, &hashers, cost_model, 0, - use_color_cache, 0.0, cost_manager->costs_, - dist_array); - - for (i = 1; i < pix_count - 1; ++i) { - int offset = 0, len = 0; - double prev_cost = cost_manager->costs_[i - 1]; - HashChainFindCopy(hash_chain, i, &offset, &len); - if (len >= 2) { - // If we are dealing with a non-literal. - const int code = DistanceToPlaneCode(xsize, offset); - const double offset_cost = GetDistanceCost(cost_model, code); - const int first_i = i; - int j_max = 0, interval_ends_index = 0; - const int is_offset_zero = (offset_cost == 0.); - - if (!is_offset_zero) { - j_max = (int)ceil( - (cost_manager->max_cost_cache_ - cost_manager->min_cost_cache_) / - offset_cost); - if (j_max < 1) { - j_max = 1; - } else if (j_max > cost_manager->interval_ends_size_ - 1) { - // This could only happen in the case of MAX_LENGTH. - j_max = cost_manager->interval_ends_size_ - 1; - } - } // else j_max is unused anyway. - - // Instead of considering all contributions from a pixel i by calling: - // PushInterval(cost_manager, prev_cost + offset_cost, i, len); - // we optimize these contributions in case offset_cost stays the same for - // consecutive pixels. This describes a set of pixels similar to a - // previous set (e.g. constant color regions). - for (; i < pix_count - 1; ++i) { - int offset_next, len_next; - prev_cost = cost_manager->costs_[i - 1]; - - if (is_offset_zero) { - // No optimization can be made so we just push all of the - // contributions from i. - PushInterval(cost_manager, prev_cost, i, len); - } else { - // j_max is chosen as the smallest j such that: - // max of cost_cache_ < j*offset cost + min of cost_cache_ - // Therefore, the pixel influenced by i-j_max, cannot be influenced - // by i. Only the costs after the end of what i contributed need to be - // updated. cost_manager->interval_ends_ is a circular buffer that - // stores those ends. - const double distance_cost = prev_cost + offset_cost; - int j = cost_manager->interval_ends_[interval_ends_index]; - if (i - first_i <= j_max || - !IsCostCacheIntervalWritable(j, i + len)) { - PushInterval(cost_manager, distance_cost, i, len); - } else { - for (; j < i + len; ++j) { - UpdateCost(cost_manager, j, i, distance_cost); - } - } - // Store the new end in the circular buffer. - assert(interval_ends_index < cost_manager->interval_ends_size_); - cost_manager->interval_ends_[interval_ends_index] = i + len; - if (++interval_ends_index > j_max) interval_ends_index = 0; - } - - // Check whether i is the last pixel to consider, as it is handled - // differently. - if (i + 1 >= pix_count - 1) break; - HashChainFindCopy(hash_chain, i + 1, &offset_next, &len_next); - if (offset_next != offset) break; - len = len_next; - UpdateCostPerIndex(cost_manager, i); - AddSingleLiteralWithCostModel(argb + i, &hashers, cost_model, i, - use_color_cache, prev_cost, - cost_manager->costs_, dist_array); - } - // Submit the last pixel. - UpdateCostPerIndex(cost_manager, i + 1); - - // This if is for speedup only. It roughly doubles the speed, and - // makes compression worse by .1 %. - if (len >= skip_length && code <= skip_min_distance_code) { - // Long copy for short distances, let's skip the middle - // lookups for better copies. - // 1) insert the hashes. - if (use_color_cache) { - int k; - for (k = 0; k < len; ++k) { - VP8LColorCacheInsert(&hashers, argb[i + k]); - } - } - // 2) jump. - { - const int i_next = i + len - 1; // for loop does ++i, thus -1 here. - for (; i <= i_next; ++i) UpdateCostPerIndex(cost_manager, i + 1); - i = i_next; - } - goto next_symbol; - } - if (len > 2) { - // Also try the smallest interval possible (size 2). - double cost_total = - prev_cost + offset_cost + GetLengthCost(cost_model, 1); - if (cost_manager->costs_[i + 1] > cost_total) { - cost_manager->costs_[i + 1] = (float)cost_total; - dist_array[i + 1] = 2; - } - } - } else { - // The pixel is added as a single literal so just update the costs. - UpdateCostPerIndex(cost_manager, i + 1); - } - - AddSingleLiteralWithCostModel(argb + i, &hashers, cost_model, i, - use_color_cache, prev_cost, - cost_manager->costs_, dist_array); - - next_symbol: ; - } - // Handle the last pixel. - if (i == (pix_count - 1)) { - AddSingleLiteralWithCostModel( - argb + i, &hashers, cost_model, i, use_color_cache, - cost_manager->costs_[pix_count - 2], cost_manager->costs_, dist_array); - } - - ok = !refs->error_; - Error: - if (cc_init) VP8LColorCacheClear(&hashers); - CostManagerClear(cost_manager); - WebPSafeFree(cost_model); - WebPSafeFree(cost_manager); - return ok; -} - -// We pack the path at the end of *dist_array and return -// a pointer to this part of the array. Example: -// dist_array = [1x2xx3x2] => packed [1x2x1232], chosen_path = [1232] -static void TraceBackwards(uint16_t* const dist_array, - int dist_array_size, - uint16_t** const chosen_path, - int* const chosen_path_size) { - uint16_t* path = dist_array + dist_array_size; - uint16_t* cur = dist_array + dist_array_size - 1; - while (cur >= dist_array) { - const int k = *cur; - --path; - *path = k; - cur -= k; - } - *chosen_path = path; - *chosen_path_size = (int)(dist_array + dist_array_size - path); -} - -static int BackwardReferencesHashChainFollowChosenPath( - const uint32_t* const argb, int cache_bits, - const uint16_t* const chosen_path, int chosen_path_size, - const VP8LHashChain* const hash_chain, VP8LBackwardRefs* const refs) { - const int use_color_cache = (cache_bits > 0); - int ix; - int i = 0; - int ok = 0; - int cc_init = 0; - VP8LColorCache hashers; - - if (use_color_cache) { - cc_init = VP8LColorCacheInit(&hashers, cache_bits); - if (!cc_init) goto Error; - } - - ClearBackwardRefs(refs); - for (ix = 0; ix < chosen_path_size; ++ix) { - const int len = chosen_path[ix]; - if (len != 1) { - int k; - const int offset = HashChainFindOffset(hash_chain, i); - BackwardRefsCursorAdd(refs, PixOrCopyCreateCopy(offset, len)); - if (use_color_cache) { - for (k = 0; k < len; ++k) { - VP8LColorCacheInsert(&hashers, argb[i + k]); - } - } - i += len; - } else { - PixOrCopy v; - const int idx = - use_color_cache ? VP8LColorCacheContains(&hashers, argb[i]) : -1; - if (idx >= 0) { - // use_color_cache is true and hashers contains argb[i] - // push pixel as a color cache index - v = PixOrCopyCreateCacheIdx(idx); - } else { - if (use_color_cache) VP8LColorCacheInsert(&hashers, argb[i]); - v = PixOrCopyCreateLiteral(argb[i]); - } - BackwardRefsCursorAdd(refs, v); - ++i; - } - } - ok = !refs->error_; - Error: - if (cc_init) VP8LColorCacheClear(&hashers); - return ok; -} - -// Returns 1 on success. -static int BackwardReferencesTraceBackwards( - int xsize, int ysize, const uint32_t* const argb, int quality, - int cache_bits, const VP8LHashChain* const hash_chain, - VP8LBackwardRefs* const refs) { - int ok = 0; - const int dist_array_size = xsize * ysize; - uint16_t* chosen_path = NULL; - int chosen_path_size = 0; - uint16_t* dist_array = - (uint16_t*)WebPSafeMalloc(dist_array_size, sizeof(*dist_array)); - - if (dist_array == NULL) goto Error; - - if (!BackwardReferencesHashChainDistanceOnly( - xsize, ysize, argb, quality, cache_bits, hash_chain, - refs, dist_array)) { - goto Error; - } - TraceBackwards(dist_array, dist_array_size, &chosen_path, &chosen_path_size); - if (!BackwardReferencesHashChainFollowChosenPath( - argb, cache_bits, chosen_path, chosen_path_size, hash_chain, refs)) { - goto Error; - } - ok = 1; - Error: - WebPSafeFree(dist_array); - return ok; -} - -static void BackwardReferences2DLocality(int xsize, - const VP8LBackwardRefs* const refs) { - VP8LRefsCursor c = VP8LRefsCursorInit(refs); - while (VP8LRefsCursorOk(&c)) { - if (PixOrCopyIsCopy(c.cur_pos)) { - const int dist = c.cur_pos->argb_or_distance; - const int transformed_dist = DistanceToPlaneCode(xsize, dist); - c.cur_pos->argb_or_distance = transformed_dist; - } - VP8LRefsCursorNext(&c); - } -} - -// Computes the entropies for a color cache size (in bits) between 0 (unused) -// and cache_bits_max (inclusive). -// Returns 1 on success, 0 in case of allocation error. -static int ComputeCacheEntropies(const uint32_t* argb, - const VP8LBackwardRefs* const refs, - int cache_bits_max, double entropies[]) { - int cc_init[MAX_COLOR_CACHE_BITS + 1] = { 0 }; - VP8LColorCache hashers[MAX_COLOR_CACHE_BITS + 1]; - VP8LRefsCursor c = VP8LRefsCursorInit(refs); - VP8LHistogram* histos[MAX_COLOR_CACHE_BITS + 1] = { NULL }; - int ok = 0; - int i; - - for (i = 0; i <= cache_bits_max; ++i) { - histos[i] = VP8LAllocateHistogram(i); - if (histos[i] == NULL) goto Error; - if (i == 0) continue; - cc_init[i] = VP8LColorCacheInit(&hashers[i], i); - if (!cc_init[i]) goto Error; - } - - assert(cache_bits_max >= 0); - // Do not use the color cache for cache_bits=0. - while (VP8LRefsCursorOk(&c)) { - VP8LHistogramAddSinglePixOrCopy(histos[0], c.cur_pos); - VP8LRefsCursorNext(&c); - } - if (cache_bits_max > 0) { - c = VP8LRefsCursorInit(refs); - while (VP8LRefsCursorOk(&c)) { - const PixOrCopy* const v = c.cur_pos; - if (PixOrCopyIsLiteral(v)) { - const uint32_t pix = *argb++; - // The keys of the caches can be derived from the longest one. - int key = HashPix(pix, 32 - cache_bits_max); - for (i = cache_bits_max; i >= 1; --i, key >>= 1) { - if (VP8LColorCacheLookup(&hashers[i], key) == pix) { - ++histos[i]->literal_[NUM_LITERAL_CODES + NUM_LENGTH_CODES + key]; - } else { - VP8LColorCacheSet(&hashers[i], key, pix); - ++histos[i]->blue_[pix & 0xff]; - ++histos[i]->literal_[(pix >> 8) & 0xff]; - ++histos[i]->red_[(pix >> 16) & 0xff]; - ++histos[i]->alpha_[pix >> 24]; - } - } - } else { - // Update the histograms for distance/length. - int len = PixOrCopyLength(v); - int code_dist, code_len, extra_bits; - uint32_t argb_prev = *argb ^ 0xffffffffu; - VP8LPrefixEncodeBits(len, &code_len, &extra_bits); - VP8LPrefixEncodeBits(PixOrCopyDistance(v), &code_dist, &extra_bits); - for (i = 1; i <= cache_bits_max; ++i) { - ++histos[i]->literal_[NUM_LITERAL_CODES + code_len]; - ++histos[i]->distance_[code_dist]; - } - // Update the colors caches. - do { - if (*argb != argb_prev) { - // Efficiency: insert only if the color changes. - int key = HashPix(*argb, 32 - cache_bits_max); - for (i = cache_bits_max; i >= 1; --i, key >>= 1) { - hashers[i].colors_[key] = *argb; - } - argb_prev = *argb; - } - argb++; - } while (--len != 0); - } - VP8LRefsCursorNext(&c); - } - } - for (i = 0; i <= cache_bits_max; ++i) { - entropies[i] = VP8LHistogramEstimateBits(histos[i]); - } - ok = 1; -Error: - for (i = 0; i <= cache_bits_max; ++i) { - if (cc_init[i]) VP8LColorCacheClear(&hashers[i]); - VP8LFreeHistogram(histos[i]); - } - return ok; -} - -// Evaluate optimal cache bits for the local color cache. -// The input *best_cache_bits sets the maximum cache bits to use (passing 0 -// implies disabling the local color cache). The local color cache is also -// disabled for the lower (<= 25) quality. -// Returns 0 in case of memory error. -static int CalculateBestCacheSize(const uint32_t* const argb, - int xsize, int ysize, int quality, - const VP8LHashChain* const hash_chain, - VP8LBackwardRefs* const refs, - int* const lz77_computed, - int* const best_cache_bits) { - int i; - int cache_bits_high = (quality <= 25) ? 0 : *best_cache_bits; - double entropy_min = MAX_ENTROPY; - double entropies[MAX_COLOR_CACHE_BITS + 1]; - - assert(cache_bits_high <= MAX_COLOR_CACHE_BITS); - - *lz77_computed = 0; - if (cache_bits_high == 0) { - *best_cache_bits = 0; - // Local color cache is disabled. - return 1; - } - // Compute LZ77 with no cache (0 bits), as the ideal LZ77 with a color cache - // is not that different in practice. - if (!BackwardReferencesLz77(xsize, ysize, argb, 0, hash_chain, refs)) { - return 0; - } - // Find the cache_bits giving the lowest entropy. The search is done in a - // brute-force way as the function (entropy w.r.t cache_bits) can be - // anything in practice. - if (!ComputeCacheEntropies(argb, refs, cache_bits_high, entropies)) { - return 0; - } - for (i = 0; i <= cache_bits_high; ++i) { - if (i == 0 || entropies[i] < entropy_min) { - entropy_min = entropies[i]; - *best_cache_bits = i; - } - } - return 1; -} - -// Update (in-place) backward references for specified cache_bits. -static int BackwardRefsWithLocalCache(const uint32_t* const argb, - int cache_bits, - VP8LBackwardRefs* const refs) { - int pixel_index = 0; - VP8LColorCache hashers; - VP8LRefsCursor c = VP8LRefsCursorInit(refs); - if (!VP8LColorCacheInit(&hashers, cache_bits)) return 0; - - while (VP8LRefsCursorOk(&c)) { - PixOrCopy* const v = c.cur_pos; - if (PixOrCopyIsLiteral(v)) { - const uint32_t argb_literal = v->argb_or_distance; - const int ix = VP8LColorCacheContains(&hashers, argb_literal); - if (ix >= 0) { - // hashers contains argb_literal - *v = PixOrCopyCreateCacheIdx(ix); - } else { - VP8LColorCacheInsert(&hashers, argb_literal); - } - ++pixel_index; - } else { - // refs was created without local cache, so it can not have cache indexes. - int k; - assert(PixOrCopyIsCopy(v)); - for (k = 0; k < v->len; ++k) { - VP8LColorCacheInsert(&hashers, argb[pixel_index++]); - } - } - VP8LRefsCursorNext(&c); - } - VP8LColorCacheClear(&hashers); - return 1; -} - -static VP8LBackwardRefs* GetBackwardReferencesLowEffort( - int width, int height, const uint32_t* const argb, - int* const cache_bits, const VP8LHashChain* const hash_chain, - VP8LBackwardRefs refs_array[2]) { - VP8LBackwardRefs* refs_lz77 = &refs_array[0]; - *cache_bits = 0; - if (!BackwardReferencesLz77(width, height, argb, 0, hash_chain, refs_lz77)) { - return NULL; - } - BackwardReferences2DLocality(width, refs_lz77); - return refs_lz77; -} - -static VP8LBackwardRefs* GetBackwardReferences( - int width, int height, const uint32_t* const argb, int quality, - int* const cache_bits, const VP8LHashChain* const hash_chain, - VP8LBackwardRefs refs_array[2]) { - int lz77_is_useful; - int lz77_computed; - double bit_cost_lz77, bit_cost_rle; - VP8LBackwardRefs* best = NULL; - VP8LBackwardRefs* refs_lz77 = &refs_array[0]; - VP8LBackwardRefs* refs_rle = &refs_array[1]; - VP8LHistogram* histo = NULL; - - if (!CalculateBestCacheSize(argb, width, height, quality, hash_chain, - refs_lz77, &lz77_computed, cache_bits)) { - goto Error; - } - - if (lz77_computed) { - // Transform refs_lz77 for the optimized cache_bits. - if (*cache_bits > 0) { - if (!BackwardRefsWithLocalCache(argb, *cache_bits, refs_lz77)) { - goto Error; - } - } - } else { - if (!BackwardReferencesLz77(width, height, argb, *cache_bits, hash_chain, - refs_lz77)) { - goto Error; - } - } - - if (!BackwardReferencesRle(width, height, argb, *cache_bits, refs_rle)) { - goto Error; - } - - histo = VP8LAllocateHistogram(*cache_bits); - if (histo == NULL) goto Error; - - { - // Evaluate LZ77 coding. - VP8LHistogramCreate(histo, refs_lz77, *cache_bits); - bit_cost_lz77 = VP8LHistogramEstimateBits(histo); - // Evaluate RLE coding. - VP8LHistogramCreate(histo, refs_rle, *cache_bits); - bit_cost_rle = VP8LHistogramEstimateBits(histo); - // Decide if LZ77 is useful. - lz77_is_useful = (bit_cost_lz77 < bit_cost_rle); - } - - // Choose appropriate backward reference. - if (lz77_is_useful) { - // TraceBackwards is costly. Don't execute it at lower quality. - const int try_lz77_trace_backwards = (quality >= 25); - best = refs_lz77; // default guess: lz77 is better - if (try_lz77_trace_backwards) { - VP8LBackwardRefs* const refs_trace = refs_rle; - if (!VP8LBackwardRefsCopy(refs_lz77, refs_trace)) { - best = NULL; - goto Error; - } - if (BackwardReferencesTraceBackwards(width, height, argb, quality, - *cache_bits, hash_chain, - refs_trace)) { - double bit_cost_trace; - // Evaluate LZ77 coding. - VP8LHistogramCreate(histo, refs_trace, *cache_bits); - bit_cost_trace = VP8LHistogramEstimateBits(histo); - if (bit_cost_trace < bit_cost_lz77) { - best = refs_trace; - } - } - } - } else { - best = refs_rle; - } - - BackwardReferences2DLocality(width, best); - - Error: - VP8LFreeHistogram(histo); - return best; -} - -VP8LBackwardRefs* VP8LGetBackwardReferences( - int width, int height, const uint32_t* const argb, int quality, - int low_effort, int* const cache_bits, - const VP8LHashChain* const hash_chain, VP8LBackwardRefs refs_array[2]) { - if (low_effort) { - return GetBackwardReferencesLowEffort(width, height, argb, cache_bits, - hash_chain, refs_array); - } else { - return GetBackwardReferences(width, height, argb, quality, cache_bits, - hash_chain, refs_array); - } -} diff --git a/external/libwebp-0.6.0/src/enc/delta_palettization_enc.c b/external/libwebp-0.6.0/src/enc/delta_palettization_enc.c deleted file mode 100644 index eaf0f050..00000000 --- a/external/libwebp-0.6.0/src/enc/delta_palettization_enc.c +++ /dev/null @@ -1,455 +0,0 @@ -// Copyright 2015 Google Inc. All Rights Reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the COPYING file in the root of the source -// tree. An additional intellectual property rights grant can be found -// in the file PATENTS. All contributing project authors may -// be found in the AUTHORS file in the root of the source tree. -// ----------------------------------------------------------------------------- -// -// Author: Mislav Bradac (mislavm@google.com) -// - -#include "./delta_palettization_enc.h" - -#ifdef WEBP_EXPERIMENTAL_FEATURES -#include "../webp/types.h" -#include "../dsp/lossless.h" - -#define MK_COL(r, g, b) (((r) << 16) + ((g) << 8) + (b)) - -// Format allows palette up to 256 entries, but more palette entries produce -// bigger entropy. In the future it will probably be useful to add more entries -// that are far from the origin of the palette or choose remaining entries -// dynamically. -#define DELTA_PALETTE_SIZE 226 - -// Palette used for delta_palettization. Entries are roughly sorted by distance -// of their signed equivalents from the origin. -static const uint32_t kDeltaPalette[DELTA_PALETTE_SIZE] = { - MK_COL(0u, 0u, 0u), - MK_COL(255u, 255u, 255u), - MK_COL(1u, 1u, 1u), - MK_COL(254u, 254u, 254u), - MK_COL(2u, 2u, 2u), - MK_COL(4u, 4u, 4u), - MK_COL(252u, 252u, 252u), - MK_COL(250u, 0u, 0u), - MK_COL(0u, 250u, 0u), - MK_COL(0u, 0u, 250u), - MK_COL(6u, 0u, 0u), - MK_COL(0u, 6u, 0u), - MK_COL(0u, 0u, 6u), - MK_COL(0u, 0u, 248u), - MK_COL(0u, 0u, 8u), - MK_COL(0u, 248u, 0u), - MK_COL(0u, 248u, 248u), - MK_COL(0u, 248u, 8u), - MK_COL(0u, 8u, 0u), - MK_COL(0u, 8u, 248u), - MK_COL(0u, 8u, 8u), - MK_COL(8u, 8u, 8u), - MK_COL(248u, 0u, 0u), - MK_COL(248u, 0u, 248u), - MK_COL(248u, 0u, 8u), - MK_COL(248u, 248u, 0u), - MK_COL(248u, 8u, 0u), - MK_COL(8u, 0u, 0u), - MK_COL(8u, 0u, 248u), - MK_COL(8u, 0u, 8u), - MK_COL(8u, 248u, 0u), - MK_COL(8u, 8u, 0u), - MK_COL(23u, 23u, 23u), - MK_COL(13u, 13u, 13u), - MK_COL(232u, 232u, 232u), - MK_COL(244u, 244u, 244u), - MK_COL(245u, 245u, 250u), - MK_COL(50u, 50u, 50u), - MK_COL(204u, 204u, 204u), - MK_COL(236u, 236u, 236u), - MK_COL(16u, 16u, 16u), - MK_COL(240u, 16u, 16u), - MK_COL(16u, 240u, 16u), - MK_COL(240u, 240u, 16u), - MK_COL(16u, 16u, 240u), - MK_COL(240u, 16u, 240u), - MK_COL(16u, 240u, 240u), - MK_COL(240u, 240u, 240u), - MK_COL(0u, 0u, 232u), - MK_COL(0u, 232u, 0u), - MK_COL(232u, 0u, 0u), - MK_COL(0u, 0u, 24u), - MK_COL(0u, 24u, 0u), - MK_COL(24u, 0u, 0u), - MK_COL(32u, 32u, 32u), - MK_COL(224u, 32u, 32u), - MK_COL(32u, 224u, 32u), - MK_COL(224u, 224u, 32u), - MK_COL(32u, 32u, 224u), - MK_COL(224u, 32u, 224u), - MK_COL(32u, 224u, 224u), - MK_COL(224u, 224u, 224u), - MK_COL(0u, 0u, 176u), - MK_COL(0u, 0u, 80u), - MK_COL(0u, 176u, 0u), - MK_COL(0u, 176u, 176u), - MK_COL(0u, 176u, 80u), - MK_COL(0u, 80u, 0u), - MK_COL(0u, 80u, 176u), - MK_COL(0u, 80u, 80u), - MK_COL(176u, 0u, 0u), - MK_COL(176u, 0u, 176u), - MK_COL(176u, 0u, 80u), - MK_COL(176u, 176u, 0u), - MK_COL(176u, 80u, 0u), - MK_COL(80u, 0u, 0u), - MK_COL(80u, 0u, 176u), - MK_COL(80u, 0u, 80u), - MK_COL(80u, 176u, 0u), - MK_COL(80u, 80u, 0u), - MK_COL(0u, 0u, 152u), - MK_COL(0u, 0u, 104u), - MK_COL(0u, 152u, 0u), - MK_COL(0u, 152u, 152u), - MK_COL(0u, 152u, 104u), - MK_COL(0u, 104u, 0u), - MK_COL(0u, 104u, 152u), - MK_COL(0u, 104u, 104u), - MK_COL(152u, 0u, 0u), - MK_COL(152u, 0u, 152u), - MK_COL(152u, 0u, 104u), - MK_COL(152u, 152u, 0u), - MK_COL(152u, 104u, 0u), - MK_COL(104u, 0u, 0u), - MK_COL(104u, 0u, 152u), - MK_COL(104u, 0u, 104u), - MK_COL(104u, 152u, 0u), - MK_COL(104u, 104u, 0u), - MK_COL(216u, 216u, 216u), - MK_COL(216u, 216u, 40u), - MK_COL(216u, 216u, 176u), - MK_COL(216u, 216u, 80u), - MK_COL(216u, 40u, 216u), - MK_COL(216u, 40u, 40u), - MK_COL(216u, 40u, 176u), - MK_COL(216u, 40u, 80u), - MK_COL(216u, 176u, 216u), - MK_COL(216u, 176u, 40u), - MK_COL(216u, 176u, 176u), - MK_COL(216u, 176u, 80u), - MK_COL(216u, 80u, 216u), - MK_COL(216u, 80u, 40u), - MK_COL(216u, 80u, 176u), - MK_COL(216u, 80u, 80u), - MK_COL(40u, 216u, 216u), - MK_COL(40u, 216u, 40u), - MK_COL(40u, 216u, 176u), - MK_COL(40u, 216u, 80u), - MK_COL(40u, 40u, 216u), - MK_COL(40u, 40u, 40u), - MK_COL(40u, 40u, 176u), - MK_COL(40u, 40u, 80u), - MK_COL(40u, 176u, 216u), - MK_COL(40u, 176u, 40u), - MK_COL(40u, 176u, 176u), - MK_COL(40u, 176u, 80u), - MK_COL(40u, 80u, 216u), - MK_COL(40u, 80u, 40u), - MK_COL(40u, 80u, 176u), - MK_COL(40u, 80u, 80u), - MK_COL(80u, 216u, 216u), - MK_COL(80u, 216u, 40u), - MK_COL(80u, 216u, 176u), - MK_COL(80u, 216u, 80u), - MK_COL(80u, 40u, 216u), - MK_COL(80u, 40u, 40u), - MK_COL(80u, 40u, 176u), - MK_COL(80u, 40u, 80u), - MK_COL(80u, 176u, 216u), - MK_COL(80u, 176u, 40u), - MK_COL(80u, 176u, 176u), - MK_COL(80u, 176u, 80u), - MK_COL(80u, 80u, 216u), - MK_COL(80u, 80u, 40u), - MK_COL(80u, 80u, 176u), - MK_COL(80u, 80u, 80u), - MK_COL(0u, 0u, 192u), - MK_COL(0u, 0u, 64u), - MK_COL(0u, 0u, 128u), - MK_COL(0u, 192u, 0u), - MK_COL(0u, 192u, 192u), - MK_COL(0u, 192u, 64u), - MK_COL(0u, 192u, 128u), - MK_COL(0u, 64u, 0u), - MK_COL(0u, 64u, 192u), - MK_COL(0u, 64u, 64u), - MK_COL(0u, 64u, 128u), - MK_COL(0u, 128u, 0u), - MK_COL(0u, 128u, 192u), - MK_COL(0u, 128u, 64u), - MK_COL(0u, 128u, 128u), - MK_COL(176u, 216u, 216u), - MK_COL(176u, 216u, 40u), - MK_COL(176u, 216u, 176u), - MK_COL(176u, 216u, 80u), - MK_COL(176u, 40u, 216u), - MK_COL(176u, 40u, 40u), - MK_COL(176u, 40u, 176u), - MK_COL(176u, 40u, 80u), - MK_COL(176u, 176u, 216u), - MK_COL(176u, 176u, 40u), - MK_COL(176u, 176u, 176u), - MK_COL(176u, 176u, 80u), - MK_COL(176u, 80u, 216u), - MK_COL(176u, 80u, 40u), - MK_COL(176u, 80u, 176u), - MK_COL(176u, 80u, 80u), - MK_COL(192u, 0u, 0u), - MK_COL(192u, 0u, 192u), - MK_COL(192u, 0u, 64u), - MK_COL(192u, 0u, 128u), - MK_COL(192u, 192u, 0u), - MK_COL(192u, 192u, 192u), - MK_COL(192u, 192u, 64u), - MK_COL(192u, 192u, 128u), - MK_COL(192u, 64u, 0u), - MK_COL(192u, 64u, 192u), - MK_COL(192u, 64u, 64u), - MK_COL(192u, 64u, 128u), - MK_COL(192u, 128u, 0u), - MK_COL(192u, 128u, 192u), - MK_COL(192u, 128u, 64u), - MK_COL(192u, 128u, 128u), - MK_COL(64u, 0u, 0u), - MK_COL(64u, 0u, 192u), - MK_COL(64u, 0u, 64u), - MK_COL(64u, 0u, 128u), - MK_COL(64u, 192u, 0u), - MK_COL(64u, 192u, 192u), - MK_COL(64u, 192u, 64u), - MK_COL(64u, 192u, 128u), - MK_COL(64u, 64u, 0u), - MK_COL(64u, 64u, 192u), - MK_COL(64u, 64u, 64u), - MK_COL(64u, 64u, 128u), - MK_COL(64u, 128u, 0u), - MK_COL(64u, 128u, 192u), - MK_COL(64u, 128u, 64u), - MK_COL(64u, 128u, 128u), - MK_COL(128u, 0u, 0u), - MK_COL(128u, 0u, 192u), - MK_COL(128u, 0u, 64u), - MK_COL(128u, 0u, 128u), - MK_COL(128u, 192u, 0u), - MK_COL(128u, 192u, 192u), - MK_COL(128u, 192u, 64u), - MK_COL(128u, 192u, 128u), - MK_COL(128u, 64u, 0u), - MK_COL(128u, 64u, 192u), - MK_COL(128u, 64u, 64u), - MK_COL(128u, 64u, 128u), - MK_COL(128u, 128u, 0u), - MK_COL(128u, 128u, 192u), - MK_COL(128u, 128u, 64u), - MK_COL(128u, 128u, 128u), -}; - -#undef MK_COL - -//------------------------------------------------------------------------------ -// TODO(skal): move the functions to dsp/lossless.c when the correct -// granularity is found. For now, we'll just copy-paste some useful bits -// here instead. - -// In-place sum of each component with mod 256. -static WEBP_INLINE void AddPixelsEq(uint32_t* a, uint32_t b) { - const uint32_t alpha_and_green = (*a & 0xff00ff00u) + (b & 0xff00ff00u); - const uint32_t red_and_blue = (*a & 0x00ff00ffu) + (b & 0x00ff00ffu); - *a = (alpha_and_green & 0xff00ff00u) | (red_and_blue & 0x00ff00ffu); -} - -static WEBP_INLINE uint32_t Clip255(uint32_t a) { - if (a < 256) { - return a; - } - // return 0, when a is a negative integer. - // return 255, when a is positive. - return ~a >> 24; -} - -// Delta palettization functions. -static WEBP_INLINE int Square(int x) { - return x * x; -} - -static WEBP_INLINE uint32_t Intensity(uint32_t a) { - return - 30 * ((a >> 16) & 0xff) + - 59 * ((a >> 8) & 0xff) + - 11 * ((a >> 0) & 0xff); -} - -static uint32_t CalcDist(uint32_t predicted_value, uint32_t actual_value, - uint32_t palette_entry) { - int i; - uint32_t distance = 0; - AddPixelsEq(&predicted_value, palette_entry); - for (i = 0; i < 32; i += 8) { - const int32_t av = (actual_value >> i) & 0xff; - const int32_t pv = (predicted_value >> i) & 0xff; - distance += Square(pv - av); - } - // We sum square of intensity difference with factor 10, but because Intensity - // returns 100 times real intensity we need to multiply differences of colors - // by 1000. - distance *= 1000u; - distance += Square(Intensity(predicted_value) - - Intensity(actual_value)); - return distance; -} - -static uint32_t Predict(int x, int y, uint32_t* image) { - const uint32_t t = (y == 0) ? ARGB_BLACK : image[x]; - const uint32_t l = (x == 0) ? ARGB_BLACK : image[x - 1]; - const uint32_t p = - (((((t >> 24) & 0xff) + ((l >> 24) & 0xff)) / 2) << 24) + - (((((t >> 16) & 0xff) + ((l >> 16) & 0xff)) / 2) << 16) + - (((((t >> 8) & 0xff) + ((l >> 8) & 0xff)) / 2) << 8) + - (((((t >> 0) & 0xff) + ((l >> 0) & 0xff)) / 2) << 0); - if (x == 0 && y == 0) return ARGB_BLACK; - if (x == 0) return t; - if (y == 0) return l; - return p; -} - -static WEBP_INLINE int AddSubtractComponentFullWithCoefficient( - int a, int b, int c) { - return Clip255(a + ((b - c) >> 2)); -} - -static WEBP_INLINE uint32_t ClampedAddSubtractFullWithCoefficient( - uint32_t c0, uint32_t c1, uint32_t c2) { - const int a = AddSubtractComponentFullWithCoefficient( - c0 >> 24, c1 >> 24, c2 >> 24); - const int r = AddSubtractComponentFullWithCoefficient((c0 >> 16) & 0xff, - (c1 >> 16) & 0xff, - (c2 >> 16) & 0xff); - const int g = AddSubtractComponentFullWithCoefficient((c0 >> 8) & 0xff, - (c1 >> 8) & 0xff, - (c2 >> 8) & 0xff); - const int b = AddSubtractComponentFullWithCoefficient( - c0 & 0xff, c1 & 0xff, c2 & 0xff); - return ((uint32_t)a << 24) | (r << 16) | (g << 8) | b; -} - -//------------------------------------------------------------------------------ - -// Find palette entry with minimum error from difference of actual pixel value -// and predicted pixel value. Propagate error of pixel to its top and left pixel -// in src array. Write predicted_value + palette_entry to new_image. Return -// index of best palette entry. -static int FindBestPaletteEntry(uint32_t src, uint32_t predicted_value, - const uint32_t palette[], int palette_size) { - int i; - int idx = 0; - uint32_t best_distance = CalcDist(predicted_value, src, palette[0]); - for (i = 1; i < palette_size; ++i) { - const uint32_t distance = CalcDist(predicted_value, src, palette[i]); - if (distance < best_distance) { - best_distance = distance; - idx = i; - } - } - return idx; -} - -static void ApplyBestPaletteEntry(int x, int y, - uint32_t new_value, uint32_t palette_value, - uint32_t* src, int src_stride, - uint32_t* new_image) { - AddPixelsEq(&new_value, palette_value); - if (x > 0) { - src[x - 1] = ClampedAddSubtractFullWithCoefficient(src[x - 1], - new_value, src[x]); - } - if (y > 0) { - src[x - src_stride] = - ClampedAddSubtractFullWithCoefficient(src[x - src_stride], - new_value, src[x]); - } - new_image[x] = new_value; -} - -//------------------------------------------------------------------------------ -// Main entry point - -static WebPEncodingError ApplyDeltaPalette(uint32_t* src, uint32_t* dst, - uint32_t src_stride, - uint32_t dst_stride, - const uint32_t* palette, - int palette_size, - int width, int height, - int num_passes) { - int x, y; - WebPEncodingError err = VP8_ENC_OK; - uint32_t* new_image = (uint32_t*)WebPSafeMalloc(width, sizeof(*new_image)); - uint8_t* const tmp_row = (uint8_t*)WebPSafeMalloc(width, sizeof(*tmp_row)); - if (new_image == NULL || tmp_row == NULL) { - err = VP8_ENC_ERROR_OUT_OF_MEMORY; - goto Error; - } - - while (num_passes--) { - uint32_t* cur_src = src; - uint32_t* cur_dst = dst; - for (y = 0; y < height; ++y) { - for (x = 0; x < width; ++x) { - const uint32_t predicted_value = Predict(x, y, new_image); - tmp_row[x] = FindBestPaletteEntry(cur_src[x], predicted_value, - palette, palette_size); - ApplyBestPaletteEntry(x, y, predicted_value, palette[tmp_row[x]], - cur_src, src_stride, new_image); - } - for (x = 0; x < width; ++x) { - cur_dst[x] = palette[tmp_row[x]]; - } - cur_src += src_stride; - cur_dst += dst_stride; - } - } - Error: - WebPSafeFree(new_image); - WebPSafeFree(tmp_row); - return err; -} - -// replaces enc->argb_ by a palettizable approximation of it, -// and generates optimal enc->palette_[] -WebPEncodingError WebPSearchOptimalDeltaPalette(VP8LEncoder* const enc) { - const WebPPicture* const pic = enc->pic_; - uint32_t* src = pic->argb; - uint32_t* dst = enc->argb_; - const int width = pic->width; - const int height = pic->height; - - WebPEncodingError err = VP8_ENC_OK; - memcpy(enc->palette_, kDeltaPalette, sizeof(kDeltaPalette)); - enc->palette_[DELTA_PALETTE_SIZE - 1] = src[0] - 0xff000000u; - enc->palette_size_ = DELTA_PALETTE_SIZE; - err = ApplyDeltaPalette(src, dst, pic->argb_stride, enc->current_width_, - enc->palette_, enc->palette_size_, - width, height, 2); - if (err != VP8_ENC_OK) goto Error; - - Error: - return err; -} - -#else // !WEBP_EXPERIMENTAL_FEATURES - -WebPEncodingError WebPSearchOptimalDeltaPalette(VP8LEncoder* const enc) { - (void)enc; - return VP8_ENC_ERROR_INVALID_CONFIGURATION; -} - -#endif // WEBP_EXPERIMENTAL_FEATURES diff --git a/external/libwebp-0.6.0/src/enc/delta_palettization_enc.h b/external/libwebp-0.6.0/src/enc/delta_palettization_enc.h deleted file mode 100644 index 63048ec6..00000000 --- a/external/libwebp-0.6.0/src/enc/delta_palettization_enc.h +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2015 Google Inc. All Rights Reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the COPYING file in the root of the source -// tree. An additional intellectual property rights grant can be found -// in the file PATENTS. All contributing project authors may -// be found in the AUTHORS file in the root of the source tree. -// ----------------------------------------------------------------------------- -// -// Author: Mislav Bradac (mislavm@google.com) -// - -#ifndef WEBP_ENC_DELTA_PALETTIZATION_H_ -#define WEBP_ENC_DELTA_PALETTIZATION_H_ - -#include "../webp/encode.h" -#include "../enc/vp8li_enc.h" - -// Replaces enc->argb_[] input by a palettizable approximation of it, -// and generates optimal enc->palette_[]. -// This function can revert enc->use_palette_ / enc->use_predict_ flag -// if delta-palettization is not producing expected saving. -WebPEncodingError WebPSearchOptimalDeltaPalette(VP8LEncoder* const enc); - -#endif // WEBP_ENC_DELTA_PALETTIZATION_H_ diff --git a/external/libwebp-0.6.0.patch b/external/libwebp-1.0.0.patch similarity index 54% rename from external/libwebp-0.6.0.patch rename to external/libwebp-1.0.0.patch index e9aba540..5b8157d9 100644 --- a/external/libwebp-0.6.0.patch +++ b/external/libwebp-1.0.0.patch @@ -1,7 +1,7 @@ -diff -ruN libwebp-0.6.0.orig/Android.mk libwebp-0.6.0/Android.mk ---- libwebp-0.6.0.orig/Android.mk 2017-10-22 10:55:55.645170270 -0700 -+++ libwebp-0.6.0/Android.mk 2017-10-22 12:31:09.944186793 -0700 -@@ -259,7 +259,7 @@ +diff -ruN libwebp-1.0.0.orig/Android.mk libwebp-1.0.0/Android.mk +--- libwebp-1.0.0.orig/Android.mk 2018-04-20 20:04:55.000000000 -0700 ++++ libwebp-1.0.0/Android.mk 2018-10-26 14:17:28.000000000 -0700 +@@ -273,7 +273,7 @@ WEBP_SRC_PATH := $(LOCAL_PATH) include $(WEBP_SRC_PATH)/imageio/Android.mk diff --git a/external/libwebp-0.6.0/AUTHORS b/external/libwebp-1.0.0/AUTHORS similarity index 96% rename from external/libwebp-0.6.0/AUTHORS rename to external/libwebp-1.0.0/AUTHORS index b6e9cfb8..83c7b9c5 100644 --- a/external/libwebp-0.6.0/AUTHORS +++ b/external/libwebp-1.0.0/AUTHORS @@ -35,4 +35,5 @@ Contributors: - Urvang Joshi (urvang at google dot com) - Vikas Arora (vikasa at google dot com) - Vincent Rabaud (vrabaud at google dot com) +- Vlad Tsyrklevich (vtsyrklevich at chromium dot org) - Yang Zhang (yang dot zhang at arm dot com) diff --git a/external/libwebp-0.6.0/Android.mk b/external/libwebp-1.0.0/Android.mk similarity index 91% rename from external/libwebp-0.6.0/Android.mk rename to external/libwebp-1.0.0/Android.mk index 4be1f95f..c25afe7f 100644 --- a/external/libwebp-0.6.0/Android.mk +++ b/external/libwebp-1.0.0/Android.mk @@ -11,12 +11,24 @@ ifeq ($(APP_OPTIM),release) endif endif +# mips32 fails to build with clang from r14b +# https://bugs.chromium.org/p/webp/issues/detail?id=343 +ifeq ($(findstring clang,$(NDK_TOOLCHAIN_VERSION)),clang) + ifeq ($(TARGET_ARCH),mips) + clang_version := $(shell $(TARGET_CC) --version) + ifneq ($(findstring clang version 3,$(clang_version)),) + WEBP_CFLAGS += -no-integrated-as + endif + endif +endif + ifneq ($(findstring armeabi-v7a, $(TARGET_ARCH_ABI)),) # Setting LOCAL_ARM_NEON will enable -mfpu=neon which may cause illegal # instructions to be generated for armv7a code. Instead target the neon code # specifically. NEON := c.neon USE_CPUFEATURES := yes + WEBP_CFLAGS += -DHAVE_CPU_FEATURES_H else NEON := c endif @@ -43,9 +55,6 @@ dsp_dec_srcs := \ src/dsp/alpha_processing_neon.$(NEON) \ src/dsp/alpha_processing_sse2.c \ src/dsp/alpha_processing_sse41.c \ - src/dsp/argb.c \ - src/dsp/argb_mips_dsp_r2.c \ - src/dsp/argb_sse2.c \ src/dsp/cpu.c \ src/dsp/dec.c \ src/dsp/dec_clip_tables.c \ @@ -76,10 +85,13 @@ dsp_dec_srcs := \ src/dsp/upsampling_msa.c \ src/dsp/upsampling_neon.$(NEON) \ src/dsp/upsampling_sse2.c \ + src/dsp/upsampling_sse41.c \ src/dsp/yuv.c \ src/dsp/yuv_mips32.c \ src/dsp/yuv_mips_dsp_r2.c \ + src/dsp/yuv_neon.$(NEON) \ src/dsp/yuv_sse2.c \ + src/dsp/yuv_sse41.c \ dsp_enc_srcs := \ src/dsp/cost.c \ @@ -101,14 +113,16 @@ dsp_enc_srcs := \ src/dsp/lossless_enc_neon.$(NEON) \ src/dsp/lossless_enc_sse2.c \ src/dsp/lossless_enc_sse41.c \ + src/dsp/ssim.c \ + src/dsp/ssim_sse2.c \ enc_srcs := \ src/enc/alpha_enc.c \ src/enc/analysis_enc.c \ + src/enc/backward_references_cost_enc.c \ src/enc/backward_references_enc.c \ src/enc/config_enc.c \ src/enc/cost_enc.c \ - src/enc/delta_palettization_enc.c \ src/enc/filter_enc.c \ src/enc/frame_enc.c \ src/enc/histogram_enc.c \ diff --git a/external/libwebp-1.0.0/CMakeLists.txt b/external/libwebp-1.0.0/CMakeLists.txt new file mode 100644 index 00000000..ea263b3a --- /dev/null +++ b/external/libwebp-1.0.0/CMakeLists.txt @@ -0,0 +1,371 @@ +cmake_minimum_required(VERSION 2.8.7) + +project(libwebp C) + +# Options for coder / decoder executables. +option(WEBP_ENABLE_SIMD "Enable any SIMD optimization." ON) +option(WEBP_BUILD_CWEBP "Build the cwebp command line tool." OFF) +option(WEBP_BUILD_DWEBP "Build the dwebp command line tool." OFF) +option(WEBP_BUILD_GIF2WEBP "Build the gif2webp conversion tool." OFF) +option(WEBP_BUILD_IMG2WEBP "Build the img2webp animation tool." OFF) +option(WEBP_BUILD_WEBPINFO "Build the webpinfo command line tool." OFF) +option(WEBP_BUILD_WEBP_JS "Emscripten build of webp.js." OFF) +option(WEBP_NEAR_LOSSLESS "Enable near-lossless encoding" ON) +option(WEBP_ENABLE_SWAP_16BIT_CSP "Enable byte swap for 16 bit colorspaces." OFF) + +if(WEBP_BUILD_WEBP_JS) + set(WEBP_ENABLE_SIMD OFF) +endif() + +set(WEBP_DEP_LIBRARIES) +set(WEBP_DEP_INCLUDE_DIRS) + +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Release" CACHE + "Build type: Release, Debug or RelWithDebInfo" STRING FORCE + ) +endif() + +# Include dependencies. +include(cmake/deps.cmake) + +################################################################################ +# Options. +if(WEBP_ENABLE_SWAP_16BIT_CSP) + add_definitions(-DWEBP_SWAP_16BIT_CSP=1) +endif() + +################################################################################ +# Android only. +if(ANDROID) + include_directories(${ANDROID_NDK}/sources/android/cpufeatures) + add_library(cpufeatures STATIC + ${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c + ) + target_link_libraries(cpufeatures dl) + set(WEBP_DEP_LIBRARIES ${WEBP_DEP_LIBRARIES} cpufeatures) + set(WEBP_DEP_INCLUDE_DIRS ${WEBP_DEP_INCLUDE_DIRS} + ${ANDROID_NDK}/sources/android/cpufeatures + ) + add_definitions(-DHAVE_CPU_FEATURES_H=1) + set(HAVE_CPU_FEATURES_H 1) +else() + set(HAVE_CPU_FEATURES_H 0) +endif() + +################################################################################ +# WebP source files. +# Read the Makefile.am to get the source files. + +# We expect the Makefiles to define the sources as defined in +# the first regex. E.g.: +# libimagedec_la_SOURCES = image_dec.c image_dec.h +function(parse_Makefile_am FOLDER VAR SRC_REGEX) + file(READ ${FOLDER}/Makefile.am MAKEFILE_AM) + string(REGEX MATCHALL "${SRC_REGEX}_SOURCES[ ]*\\+?=[ ]+[0-9a-z\\._ ]*" + FILES_PER_LINE ${MAKEFILE_AM} + ) + set(SRCS ${${VAR}}) + foreach(FILES ${FILES_PER_LINE}) + string(FIND ${FILES} "=" OFFSET) + math(EXPR OFFSET "${OFFSET} + 2") + string(SUBSTRING ${FILES} ${OFFSET} -1 FILES) + if(FILES) + string(REGEX MATCHALL "[0-9a-z\\._]+" + FILES ${FILES} + ) + foreach(FILE ${FILES}) + list(APPEND SRCS ${FOLDER}/${FILE}) + endforeach() + endif() + endforeach() + set(${VAR} ${SRCS} PARENT_SCOPE) +endfunction() + +set(WEBP_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src) +parse_Makefile_am(${WEBP_SRC_DIR}/dec "WEBP_DEC_SRCS" "") +parse_Makefile_am(${WEBP_SRC_DIR}/demux "WEBP_DEMUX_SRCS" "") +parse_Makefile_am(${WEBP_SRC_DIR}/dsp "WEBP_DSP_COMMON_SRCS" "COMMON") +parse_Makefile_am(${WEBP_SRC_DIR}/dsp "WEBP_DSP_ENC_SRCS" "ENC") +parse_Makefile_am(${WEBP_SRC_DIR}/dsp "WEBP_DSP_ENC_SRCS" "dsp_[^ ]*") +parse_Makefile_am(${WEBP_SRC_DIR}/dsp "WEBP_DSP_DEC_SRCS" "decode_[^ ]*") +parse_Makefile_am(${WEBP_SRC_DIR}/enc "WEBP_ENC_SRCS" "") +parse_Makefile_am(${WEBP_SRC_DIR}/utils "WEBP_UTILS_COMMON_SRCS" "COMMON") +parse_Makefile_am(${WEBP_SRC_DIR}/utils "WEBP_UTILS_ENC_SRCS" "ENC") +parse_Makefile_am(${WEBP_SRC_DIR}/utils "WEBP_UTILS_DEC_SRCS" "decode_[^ ]*") + +# Remove the files specific to SIMD we don't use. +foreach(FILE ${WEBP_SIMD_FILES_NOT_TO_INCLUDE}) + list(REMOVE_ITEM WEBP_DSP_ENC_SRCS ${FILE}) + list(REMOVE_ITEM WEBP_DSP_DEC_SRCS ${FILE}) +endforeach() + +### Define the mandatory libraries. +# Build the webpdecoder library. +if(MSVC) + # avoid security warnings for e.g., fopen() used in the examples. + add_definitions(-D_CRT_SECURE_NO_WARNINGS) +else() + add_definitions(-Wall) +endif() +include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${WEBP_DEP_INCLUDE_DIRS}) +add_library(webpdecode OBJECT ${WEBP_DEC_SRCS}) +add_library(webpdspdecode OBJECT ${WEBP_DSP_COMMON_SRCS} ${WEBP_DSP_DEC_SRCS}) +add_library(webputilsdecode OBJECT ${WEBP_UTILS_COMMON_SRCS} + ${WEBP_UTILS_DEC_SRCS}) +add_library(webpdecoder $ + $ $) +target_link_libraries(webpdecoder ${WEBP_DEP_LIBRARIES}) + +# Build the webp library. +add_library(webpencode OBJECT ${WEBP_ENC_SRCS}) +add_library(webpdsp OBJECT ${WEBP_DSP_COMMON_SRCS} ${WEBP_DSP_DEC_SRCS} + ${WEBP_DSP_ENC_SRCS}) +add_library(webputils OBJECT ${WEBP_UTILS_COMMON_SRCS} ${WEBP_UTILS_DEC_SRCS} + ${WEBP_UTILS_ENC_SRCS}) +add_library(webp $ $ + $ $) +target_link_libraries(webp ${WEBP_DEP_LIBRARIES}) + +# Make sure the OBJECT libraries are built with position independent code +# (it is not ON by default). +set_target_properties(webpdecode webpdspdecode webputilsdecode + webpencode webpdsp webputils PROPERTIES POSITION_INDEPENDENT_CODE ON) + +# Build the webp demux library. +add_library(webpdemux ${WEBP_DEMUX_SRCS}) +target_link_libraries(webpdemux webp) + +# Set the version numbers. +function(parse_version FILE NAME VAR) + file(READ ${CMAKE_CURRENT_SOURCE_DIR}/src/${FILE} SOURCE_FILE) + string(REGEX MATCH "${NAME}_la_LDFLAGS[^\n]* -version-info [0-9:]+" TMP + ${SOURCE_FILE}) + string(REGEX MATCH "[0-9:]+" TMP ${TMP}) + string(REGEX REPLACE ":" "." VERSION ${TMP}) + set(${VAR} "${VERSION}" PARENT_SCOPE) +endfunction() +parse_version(Makefile.am webp WEBP_WEBP_SOVERSION) +set_target_properties(webp PROPERTIES VERSION ${PACKAGE_VERSION} + SOVERSION ${WEBP_WEBP_SOVERSION}) +parse_version(Makefile.am webpdecoder WEBP_DECODER_SOVERSION) +set_target_properties(webpdecoder PROPERTIES VERSION ${PACKAGE_VERSION} + SOVERSION ${WEBP_DECODER_SOVERSION}) +parse_version(demux/Makefile.am webpdemux WEBP_DEMUX_SOVERSION) +set_target_properties(webpdemux PROPERTIES VERSION ${PACKAGE_VERSION} + SOVERSION ${WEBP_DEMUX_SOVERSION}) + +# Define the libraries to install. +set(INSTALLED_LIBRARIES webpdecoder webp webpdemux) + +### Deal with SIMD. +# Change the compile flags for SIMD files we use. +list(LENGTH WEBP_SIMD_FILES_TO_INCLUDE WEBP_SIMD_FILES_TO_INCLUDE_LENGTH) +math(EXPR WEBP_SIMD_FILES_TO_INCLUDE_RANGE + "${WEBP_SIMD_FILES_TO_INCLUDE_LENGTH}-1" +) + +foreach(I_FILE RANGE ${WEBP_SIMD_FILES_TO_INCLUDE_RANGE}) + list(GET WEBP_SIMD_FILES_TO_INCLUDE ${I_FILE} FILE) + list(GET WEBP_SIMD_FLAGS_TO_INCLUDE ${I_FILE} SIMD_COMPILE_FLAG) + set_source_files_properties(${FILE} PROPERTIES + COMPILE_FLAGS ${SIMD_COMPILE_FLAG} + ) +endforeach() + +# Build the executables if asked for. +if(WEBP_BUILD_CWEBP OR WEBP_BUILD_DWEBP OR + WEBP_BUILD_GIF2WEBP OR WEBP_BUILD_IMG2WEBP OR WEBP_BUILD_WEBP_JS) + # Example utility library. + parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/examples "EXAMPLEUTIL_SRCS" + "example_util_[^ ]*") + list(APPEND EXAMPLEUTIL_SRCS + ${CMAKE_CURRENT_SOURCE_DIR}/examples/stopwatch.h) + add_library(exampleutil ${EXAMPLEUTIL_SRCS}) + + parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/imageio "IMAGEIOUTILS_SRCS" + "imageio_util_[^ ]*") + add_library(imageioutil ${IMAGEIOUTILS_SRCS}) + target_link_libraries(imageioutil webp) + + # Image-decoding utility library. + parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/imageio "IMAGEDEC_SRCS" + "imagedec_[^ ]*") + add_library(imagedec ${IMAGEDEC_SRCS}) + target_link_libraries(imagedec imageioutil webpdemux webp + ${WEBP_DEP_IMG_LIBRARIES}) + + # Image-encoding utility library. + parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/imageio "IMAGEENC_SRCS" + "imageenc_[^ ]*") + add_library(imageenc ${IMAGEENC_SRCS}) + target_link_libraries(imageenc webp) + + set_property(TARGET exampleutil imageioutil imagedec imageenc + PROPERTY INCLUDE_DIRECTORIES + ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src) +endif() + +if(WEBP_BUILD_DWEBP) + # dwebp + include_directories(${WEBP_DEP_IMG_INCLUDE_DIRS}) + parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/examples "DWEBP_SRCS" + "dwebp") + add_executable(dwebp ${DWEBP_SRCS}) + target_link_libraries(dwebp exampleutil imagedec imageenc webpdecoder) + install(TARGETS dwebp RUNTIME DESTINATION bin) + set_property(TARGET dwebp PROPERTY INCLUDE_DIRECTORIES + ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src) +endif() + +if(WEBP_BUILD_CWEBP) + # cwebp + include_directories(${WEBP_DEP_IMG_INCLUDE_DIRS}) + parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/examples "CWEBP_SRCS" + "cwebp") + add_executable(cwebp ${CWEBP_SRCS}) + target_link_libraries(cwebp exampleutil imagedec webp) + install(TARGETS cwebp RUNTIME DESTINATION bin) + set_property(TARGET cwebp PROPERTY INCLUDE_DIRECTORIES + ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src) +endif() + +if(WEBP_BUILD_GIF2WEBP AND NOT GIF_FOUND) + unset(WEBP_BUILD_GIF2WEBP CACHE) +endif() + +if(WEBP_BUILD_GIF2WEBP OR WEBP_BUILD_IMG2WEBP) + parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/mux "WEBP_MUX_SRCS" + "") + add_library(webpmux ${WEBP_MUX_SRCS}) + target_link_libraries(webpmux webp) + parse_version(mux/Makefile.am webpmux WEBP_MUX_SOVERSION) + set_target_properties(webpmux PROPERTIES VERSION ${PACKAGE_VERSION} + SOVERSION ${WEBP_MUX_SOVERSION}) + list(APPEND INSTALLED_LIBRARIES webpmux) +endif() + +if(WEBP_BUILD_GIF2WEBP) + # gif2webp + include_directories(${WEBP_DEP_GIF_INCLUDE_DIRS}) + parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/examples "GIF2WEBP_SRCS" + "gif2webp") + add_executable(gif2webp ${GIF2WEBP_SRCS}) + target_link_libraries(gif2webp exampleutil imageioutil webp webpmux + ${WEBP_DEP_GIF_LIBRARIES}) + install(TARGETS gif2webp RUNTIME DESTINATION bin) + set_property(TARGET gif2webp PROPERTY INCLUDE_DIRECTORIES + ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src) +endif() + +if(WEBP_BUILD_IMG2WEBP) + # img2webp + include_directories(${WEBP_DEP_IMG_INCLUDE_DIRS}) + parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/examples "IMG2WEBP_SRCS" + "img2webp") + add_executable(img2webp ${IMG2WEBP_SRCS}) + target_link_libraries(img2webp exampleutil imagedec imageioutil webp webpmux) + install(TARGETS img2webp RUNTIME DESTINATION bin) + set_property(TARGET img2webp PROPERTY INCLUDE_DIRECTORIES + ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src) +endif() + +if (WEBP_BUILD_WEBPINFO) + # webpinfo + include_directories(${WEBP_DEP_IMG_INCLUDE_DIRS}) + parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/examples "WEBPINFO_SRCS" + "webpinfo") + add_executable(webpinfo ${WEBPINFO_SRCS}) + target_link_libraries(webpinfo exampleutil imageioutil) + install(TARGETS webpinfo RUNTIME DESTINATION bin) + set_property(TARGET webpinfo PROPERTY INCLUDE_DIRECTORIES + ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src) +endif() + +if(WEBP_BUILD_WEBP_JS) + # JavaScript version + add_executable(webp_js + ${CMAKE_CURRENT_SOURCE_DIR}/extras/webp_to_sdl.c) + target_link_libraries(webp_js webpdecoder SDL) + set(WEBP_HAVE_SDL 1) + set_target_properties(webp_js PROPERTIES LINK_FLAGS + "-s EXPORTED_FUNCTIONS='[\"_WebpToSDL\"]' -s INVOKE_RUN=0 \ + -s EXTRA_EXPORTED_RUNTIME_METHODS='[\"cwrap\"]'") + set_target_properties(webp_js PROPERTIES OUTPUT_NAME webp) + target_compile_definitions(webp_js PUBLIC EMSCRIPTEN WEBP_HAVE_SDL) + + # WASM version + add_executable(webp_wasm + ${CMAKE_CURRENT_SOURCE_DIR}/extras/webp_to_sdl.c) + target_link_libraries(webp_wasm webpdecoder SDL) + set_target_properties(webp_wasm PROPERTIES LINK_FLAGS + "-s WASM=1 -s 'BINARYEN_METHOD=\"native-wasm\"' \ + -s EXPORTED_FUNCTIONS='[\"_WebpToSDL\"]' -s INVOKE_RUN=0 \ + -s EXTRA_EXPORTED_RUNTIME_METHODS='[\"cwrap\"]'") + target_compile_definitions(webp_wasm PUBLIC EMSCRIPTEN WEBP_HAVE_SDL) + + target_compile_definitions(webpdecoder PUBLIC EMSCRIPTEN) +endif() + +# Generate the config.h file. +configure_file(${CMAKE_CURRENT_LIST_DIR}/cmake/config.h.in + ${CMAKE_CURRENT_BINARY_DIR}/src/webp/config.h) +add_definitions(-DHAVE_CONFIG_H) +# The webp folder is included as we reference config.h as +# ../webp/config.h or webp/config.h +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +# Install the different headers and libraries. +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/webp/decode.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/webp/demux.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/webp/encode.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/webp/mux.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/webp/mux_types.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/webp/types.h + DESTINATION include/webp) +install(TARGETS ${INSTALLED_LIBRARIES} + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) + +# Create the CMake version file. +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/WebPConfigVersion.cmake" + VERSION ${PACKAGE_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Create the Config file. +include(CMakePackageConfigHelpers) +set(ConfigPackageLocation share/WebP/cmake/) +configure_package_config_file( + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/WebPConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/WebPConfig.cmake + INSTALL_DESTINATION ${ConfigPackageLocation} +) + +# Install the generated CMake files. +install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/WebPConfigVersion.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/WebPConfig.cmake" + DESTINATION ${ConfigPackageLocation} +) + +# Install the man pages. +set(MAN_PAGES cwebp.1 dwebp.1 gif2webp.1 img2webp.1 vwebp.1 webpmux.1 + webpinfo.1) +set(EXEC_BUILDS "CWEBP" "DWEBP" "GIF2WEBP" "IMG2WEBP" "VWEBP" "WEBPMUX" + "WEBPINFO") +list(LENGTH MAN_PAGES MAN_PAGES_LENGTH) +math(EXPR MAN_PAGES_RANGE "${MAN_PAGES_LENGTH} - 1") + +foreach(I_MAN RANGE ${MAN_PAGES_RANGE}) + list(GET EXEC_BUILDS ${I_MAN} EXEC_BUILD) + if(WEBP_BUILD_${EXEC_BUILD}) + list(GET MAN_PAGES ${I_MAN} MAN_PAGE) + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/man/${MAN_PAGE} + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1 + COMPONENT doc + ) + endif() +endforeach() diff --git a/external/libwebp-0.6.0/COPYING b/external/libwebp-1.0.0/COPYING similarity index 100% rename from external/libwebp-0.6.0/COPYING rename to external/libwebp-1.0.0/COPYING diff --git a/external/libwebp-0.6.0/ChangeLog b/external/libwebp-1.0.0/ChangeLog similarity index 90% rename from external/libwebp-0.6.0/ChangeLog rename to external/libwebp-1.0.0/ChangeLog index 7ac7b5f8..9fd9acfe 100644 --- a/external/libwebp-0.6.0/ChangeLog +++ b/external/libwebp-1.0.0/ChangeLog @@ -1,9 +1,377 @@ +8d510751 webp-container-spec: correct frame duration=0 note +e6b2164e vwebp: Copy Chrome's behavior w/frame duration == 0 +d20b7707 update ChangeLog (tag: v1.0.0-rc3) +0d5fad46 add WEBP_DSP_INIT / WEBP_DSP_INIT_FUNC +c1cb86af fix 16b overflow in SSE2 +e577feb7 makefile.unix: add DEBUG flag for compiling w/ debug-symbol +99be34b3 cwebp,get_disto: fix bpp output +f5565ca8 cmake: Make sure we use near-lossless by default. +d898dc14 fix bug in WebPImport565: alpha value was not set +882784b0 update ChangeLog (tag: v1.0.0-rc2) +2f930e08 Revert "Use proper targets for CMake." +8165e8fb Use proper targets for CMake. +3f157dd5 Remove some very hard TODOs. +cd758a17 {de,}mux/Makefile.am: add missing headers +b892b8ba makefile.unix,dist: use ascii for text output +64a57d05 add -version option to anim_dump,anim_diff and img2webp +fc1b8e3a webp_js: fix webp_js demo html +15aa48d9 update ChangeLog (tag: v1.0.0-rc1) +e607dabc update AUTHORS +38410c08 [CFI] Remove function pointer casts +c57b2736 bump version to 1.0.0 +cba28853 update NEWS +c909d531 Merge "remove some deprecation warning on MacOSX" +217443c7 remove some deprecation warning on MacOSX +b672bdfa configure: quiet glut deprecation warnings on OS X +daa9fcaf configure: use sdl-config if available +dd174cae Merge "imagedec: support metadata reading for WebP image decoding" +641cedcc imagedec: support metadata reading for WebP image decoding +065b2ce1 anim_diff: add a couple missing newlines in Help() +c4cc1147 Merge "gif2webp: force low duration frames to 100ms" +09333097 gif2webp: force low duration frames to 100ms +e03f0ec3 sharp_yuv: use 14b fixed-point precision for gamma +b2db361c image_enc,WebPWritePNG: move locals after setjmp +74e82ec6 Merge "WebPPictureDistortion: fix big-endian results order" +645d04ca Merge "cwebp,get_disto: report bpp" +120f58c3 Merge "lossless*sse2: improve non-const 16-bit vector creation" +a7fe9412 WebPPictureDistortion: fix big-endian results order +e26fe066 cwebp,get_disto: report bpp +9df64e28 Merge changes Id5b4a1a4,Ia20ce844 +8043504f lossless*sse2: improve non-const 16-bit vector creation +1e3dfc48 Import: extract condition from loop +3b07d327 Import,RGBA: fix for BigEndian import +551948e4 Remove unused argument in VP8LBitsEntropy. +3005237a ReadWebP: fix for big-endian +499c395a Merge "anim_diff: expose the -max_diff option" +f69dcd69 Merge "remove WEBP_EXPERIMENTAL_FEATURES" +07d884d5 anim_diff: expose the -max_diff option +f4dd9256 remove WEBP_EXPERIMENTAL_FEATURES +94a8377b extract the command-line parsing helpers to example_util +fc09e6e2 PNM decoder: prevent unsupported depth=2 PAM case. +6de58603 MIPS64: Fix defined-but-not-used errors with WEBP_REDUCE_CSP +cbde5728 gif2webp: add support for reading from stdin +cf1c5054 Add an SSE4 version of some lossless color transforms. +45a8b5eb Fix lint error with man page. +cff38e8f Merge "PNG decoder: handle gAMA chunk" +59cb1a48 Merge "enable dc error-diffusion always" +78318b30 PNG decoder: handle gAMA chunk +664c21dd Merge "remove some TODOs" +815652de enable dc error-diffusion always +aec45cec remove some TODOs +5715dfce fix block-count[] increment in case of large image +c2d04f3e enable DC error-diffusion always for multi-pass +96bf07c5 use DC error diffusion for U/V at low-quality +1c59020b fix missing sse41 targets in makefile.unix +7a8e814b cosmetics: s/color_space/colorspace/ +05f6fe24 upsampling: rm asserts w/REDUCE_CSP+OMIT_C_CODE +b4cf5597 Merge "Upsampling SSE2/SSE4 speedup." +ccbeb32c Makefile.vc: add missing sse41 files +55403a9a Upsampling SSE2/SSE4 speedup. +807b53c4 Implement the upsampling/yuv functions in SSE41 +84101a81 Fix wasm WebP compilation +8bebd2a3 fix warning on MSVC +a7f93fe3 webpmux: allow reading argument from a file +b69f18a7 gif2webp.1: fix -loop_compatibility layout +72d530c0 Merge "fix lossless decoding w/WEBP_REDUCE_SIZE" +296c7dc4 fix lossless decoding w/WEBP_REDUCE_SIZE +0d5d029c Merge "ImgIoUtilReadFile: fix file leak upon error" +ae568ce7 ImgIoUtilReadFile: fix file leak upon error +796b5a8a Merge tag 'v0.6.1' +6b7a95fd update ChangeLog (tag: v0.6.1) +f66955de WEBP_REDUCE_CSP: restrict colorspace support +1af0df76 Merge "WEBP_REDUCE_CSP: restrict colorspace support" +6de20df0 WEBP_REDUCE_CSP: restrict colorspace support +a289d8e7 update ChangeLog (tag: v0.6.1-rc2) +c10a493c vwebp: disable double buffering on windows & mac +0d4466c2 webp_to_sdl.c: fix file mode +1b27bf8b WEBP_REDUCE_SIZE: disable all rescaler code +126be109 webpinfo: add -version option +0df22b9e WEBP_REDUCE_SIZE: disable all rescaler code +9add62b5 bump version to 0.6.1 +d3e26144 update NEWS +2edda639 README: add webpinfo section +9ca568ef Merge "right-size some tables" +31f1995c Merge "SSE2 implementation of HasAlphaXXX" +a80c46bd SSE2 implementation of HasAlphaXXX +083507f2 right-size some tables +2e5785b2 anim_utils.c: remove warning when !defined(WEBP_HAVE_GIF) +b299c47e add WEBP_REDUCE_SIZE +f593d71a enc: disable pic->stats/extra_info w/WEBP_DISABLE_STATS +541179a9 Merge "predictor_enc: fix build w/--disable-near-lossless" +5755a7ec predictor_enc: fix build w/--disable-near-lossless +eab5bab7 add WEBP_DISABLE_STATS +8052c585 remove some petty TODOs from vwebp. +c245343d move LOAD8x4 and STORE8x2 closer to their use location +b9e734fd dec,cosmetics: normalize function naming style +c188d546 dec: harmonize function suffixes +28c5ac81 dec_sse41: harmonize function suffixes +e65b72a3 Merge "introduce WebPHasAlpha8b and WebPHasAlpha32b" +b94cee98 dec_sse2: remove HE8uv_SSE2 +44a0ee3f introduce WebPHasAlpha8b and WebPHasAlpha32b +aebf59ac Merge "WebPPictureAllocARGB: align argb allocation" +c184665e WebPPictureAllocARGB: align argb allocation +3daf7509 WebPParseHeaders: remove obsolete animation TODO +80285d97 cmake: avoid security warnings under msvc +650eac55 cmake: don't set -Wall with MSVC +c462cd00 Remove useless code. +01a98217 Merge "remove WebPWorkerImpl declaration from the header" +3c49fc47 Merge "thread_utils: fix potentially bad call to Execute" +fde2782e thread_utils: fix potentially bad call to Execute +2a270c1d remove WebPWorkerImpl declaration from the header +f1f437cc remove mention of 'lossy-only parameters' from the doc +3879074d Merge "WebPMemToUint32: remove ptr cast to int" +04b029d2 WebPMemToUint32: remove ptr cast to int +b7971d0e dsp: avoid defining _C functions w/NEON builds +6ba98764 webpdec: correct alloc size check w/use_argb +5cfb3b0f normalize include guards +f433205e Merge changes Ia17c7dfc,I75423abb,Ia2f716b4,I161caa14,I4210081a, ... +8d033b14 {dec,enc}_neon: harmonize function suffixes x2 +0295e981 upsampling_neon: harmonize function suffixes +d572c4e5 yuv_neon: harmonize function suffixes +ab9c2500 rescaler_neon: harmonize function suffixes +93e0ce27 lossless_neon: harmonize function suffixes +22fbc50e lossless_enc_neon: harmonize function suffixes +447875b4 filters_neon,cosmetics: fix indent +e51bdd43 remove unused VP8TokenToStats() function +785da7ea enc_neon: harmonize function suffixes +bc1a251f dec_neon: harmonize function suffixes +61e535f1 dsp/lossless: workaround gcc-4.8 bug on arm +68b2eab7 cwebp: fix alpha reporting w/lossless & metadata +30042faa WebPDemuxGetI: add doc details around WebPFormatFeature +0a17f471 Merge "WIP: list includes as descendants of the project dir" +a4399721 WIP: list includes as descendants of the project dir +08275708 Merge "Make sure we reach the full range for alpha blending." +d361a6a7 yuv_sse2: harmonize function suffixes +6921aa6f upsampling_sse2: harmonize function suffixes +08c67d3e ssim_sse2: harmonize function suffixes +582a1b57 rescaler_sse2: harmonize function suffixes +2c1b18ba lossless_sse2: harmonize function suffixes +0ac46e81 lossless_enc_sse2: harmonize function suffixes +bc634d57 enc_sse2: harmonize function suffixes +bcb7347c dec_sse2: harmonize function suffixes +e14ad93c Make sure we reach the full range for alpha blending. +7038ca8d demux,StoreFrame: restore hdr size check to min req +fb3daad6 cpu: fix ssse3 check +be590e06 Merge "Fix CMake redefinition for HAVE_CPU_FEATURES_H" +35f736e1 Fix CMake redefinition for HAVE_CPU_FEATURES_H +a5216efc Fix integer overflow warning. +a9c8916b decode.h,WebPIDecGetRGB: clarify output ptr validity +3c74c645 gif2webp: handle 1-frame case properly + fix anim_diff +c7f295d3 Merge "gif2webp: introduce -loop_compatibility option" +b4e04677 gif2webp: introduce -loop_compatibility option +f78da3de add LOCAL_CLANG_PREREQ and avoid WORK_AROUND_GCC w/3.8+ +01c426f1 define WEBP_USE_INTRINSICS w/gcc-4.9+ +8635973d use sdl-config (if available) to determine the link flags +e9459382 use CPPFLAGS before CFLAGS +4a9d788e Merge "Android.mk,mips: fix clang build with r15" +4fbdc9fb Android.mk,mips: fix clang build with r15 +a80fcc4a ifdef code not used by Chrome/Android. +3993af12 Fix signed integer overflows. +f66f94ef anim_dump: small tool to dump frames from animated WebP +6eba857b Merge "rationalize the Makefile.am" +c5e34fba function definition cleanup +3822762a rationalize the Makefile.am +501ef6e4 configure style fix: animdiff -> anim_diff +f8bdc268 Merge "protect against NULL dump_folder[] value in ReadAnimatedImage()" +23bfc652 protect against NULL dump_folder[] value in ReadAnimatedImage() +8dc3d71b cosmetics,ReadAnimatedWebP: correct function comment +5bd40066 Merge changes I66a64a0a,I4d2e520f +7945575c cosmetics,webpinfo: remove an else after a return +8729fa11 cosmetics,cwebp: remove an else after a return +f324b7f9 cosmetics: normalize fn proto & decl param names +869eb369 CMake cleanups. +289e62a3 Remove declaration of unimplemented VP8ApplyNearLosslessPredict +20a94186 pnmdec,PAM: validate depth before calculating bytes_per_px +34130afe anim_encode: fix integer overflow +42c79aa6 Merge "Encoder: harmonize function suffixes" +b09307dc Encoder: harmonize function suffixes +bed0456d Merge "SSIM: harmonize the function suffix" +54f6a3cf lossless_sse2.c: fix some missed suffix changes +088f1dcc SSIM: harmonize the function suffix +86fc4dd9 webpdec: use ImgIoUtilCheckSizeArgumentsOverflow +08ea9ecd imageio: add ability restrict max image size +6f9daa4a jpegdec,ReadError: fix leaks on error +a0f72a4f VP8LTransformColorFunc: drop an non-respected 'const' from the signature. +8c934902 Merge "Lossess dec: harmonize the function suffixes" +622242aa Lossess dec: harmonize the function suffixes +1411f027 Lossless Enc: harmonize the function suffixes +24ad2e3c add const to two variables +46efe062 Merge "Allow the lossless cruncher to work for alpha." +8c3f9a47 Speed-up LZ77. +1aef4c71 Allow the lossless cruncher to work for alpha. +b8821dbd Improve the box LZ77 speed. +7beed280 add missing ()s to macro parameters +6473d20b Merge "fix Android standalone toolchain build" +dcefed95 Merge "build.gradle: fix arm64 build" +0c83a8bc Merge "yuv: harmonize suffix naming" +c6d1db4b fix Android standalone toolchain build +663a6d9d unify the ALTERNATE_CODE flag usage +73ea9f27 yuv: harmonize suffix naming +c71b68ac build.gradle: fix arm64 build +c4568b47 Rescaler: harmonize the suffix naming +6cb13b05 Merge "alpha_processing: harmonize the naming suffixes to be _C()" +83a3e69a Merge "simplify WEBP_EXTERN macro" +7295fde2 Merge "filters: harmonize the suffixes naming to _SSE2(), _C(), etc." +8e42ba4c simplify WEBP_EXTERN macro +331ab34b cost*.c: harmonize the suffix namings +b161f670 filters: harmonize the suffixes naming to _SSE2(), _C(), etc. +dec5e4d3 alpha_processing: harmonize the naming suffixes to be _C() +6878d427 fix memory leak in SDL_Init() +461ae555 Merge "configure: fix warnings in sdl check" +62486a22 configure: test for -Wundef +92982609 dsp.h: fix -Wundef w/__mips_dsp_rev +0265cede configure: fix warnings in sdl check +88c73d8a backward_references_enc.h: fix WINDOW_SIZE_BITS check +4ea49f6b rescaler_sse2.c: fix WEBP_RESCALER_FIX -> _RFIX typo +1b526638 Clean-up some CMake +87f57a4b Merge "cmake: fix gif lib detection when cross compiling" +b34a9db1 cosmetics,dec_sse2: remove some redundant comments +471c5755 cmake: fix gif lib detection when cross compiling +c793417a cmake: disable gif2webp if gif lib isn't found +dcbc1c88 cmake: split gif detection from IMG deps +66ad84f0 Merge "muxread: remove unreachable code" +50ec3ab7 muxread: remove unreachable code +7d67a164 Lossy encoding: smoothen transparent areas to improve compression +e50650c7 Merge "fix signature for DISABLE_TOKEN_BUFFER compilation" +671d2567 fix signature for DISABLE_TOKEN_BUFFER compilation +d6755580 cpu.cmake: use unique flag to test simd disable flags +28914528 Merge "Remove the argb* files." +8acb4942 Remove the argb* files. +3b62347b README: correct cmake invocation note +7ca0df13 Have the SSE2 version of PackARGB use common code. +7b250459 Merge "Re-use the transformed image when trying several LZ77 in lossless." +e132072f Re-use the transformed image when trying several LZ77 in lossless. +5d7a50ef Get code to compile in C++. +7b012987 configure: test for -Wparentheses-equality +f0569adb Fix man pages for multi-threading. +f1d5a397 multithread cruncher: only copy stats when picture->stats != NULL +f8c2ac15 Multi-thread the lossless cruncher. +a88c6522 Merge "Integrate a new LZ77 looking for matches in the neighborhood of a pixel only." +8f6df1d0 Unroll Predictors 10, 11 and 12. +355c3d1b Integrate a new LZ77 looking for matches in the neighborhood of a pixel only. +a1779a01 Refactor LZ77 handling in preparation for a new method. +67de68b5 Android.mk/build.gradle: fix mips build with clang from r14b +f209a548 Use the plane code and not the distance when computing statistics. +b903b80c Split cost-based backward references in its own file. +498cad34 Cosmetic changes in backward reference. +e4eb4587 lossless, VP8LTransformColor_C: make sure no overflow happens with colors. +af6deaff webpinfo: handle alpha flag mismatch +7caef29b Fix typo that creeped in. +39e19f92 Merge "near lossless: fix unsigned int overflow warnings." +9bbc0891 near lossless: fix unsigned int overflow warnings. +e1118d62 Merge "cosmetics,FindClosestDiscretized: use uint in mask creation" +186bc9b7 Merge "webpinfo: tolerate ALPH+VP8L" +b5887297 cosmetics,FindClosestDiscretized: use uint in mask creation +f1784aee near_lossless,FindClosestDiscretized: use unsigned ops +0d20abb3 webpinfo: tolerate ALPH+VP8L +972104b3 webpmux: tolerate false positive Alpha flag +dd7e83cc tiffdec,ReadTIFF: ensure data_size is < tsize_t max +d988eb7b tiffdec,MyRead: quiet -Wshorten-64-to-32 warning +dabda707 webpinfo: add support to parse Alpha bitstream +4c117643 webpinfo: correct background color output, BGRA->ARGB +defc98d7 Doc: clarify the role of quality in WebPConfig. +d78ff780 Merge "Fix code to compile with C++." +c8f14093 Fix code to compile with C++. +497dc6a7 pnmdec: sanitize invalid header output +d78e5867 Merge "configure: test for -Wconstant-conversion" +481e91eb Merge "pnmdec,PAM: set bytes_per_px based on depth when missing" +93b12753 configure: test for -Wconstant-conversion +645f0c53 pnmdec,PAM: set bytes_per_px based on depth when missing +e9154605 Merge "vwebp: activate GLUT double-buffering" +818d795b vwebp: activate GLUT double-buffering +d63e6f4b Add a man page for webpinfo +4d708435 Merge "NEON: implement ConvertRGB24ToY/BGR24/ARGB/RGBA32ToUV/ARGBToUV" +faf42213 NEON: implement ConvertRGB24ToY/BGR24/ARGB/RGBA32ToUV/ARGBToUV +b4d576fa Install man pages with CMake. +cbc1b921 webpinfo: add features to parse bitstream header +e644c556 Fix bad bit writer initialization. +b62cdad2 Merge "Implement a cruncher for lossless at method 6." +da3e4dfb use the exact constant for the gamma transfer function +a9c701e0 Merge "tiffdec: fix EXTRASAMPLES check" +adab8ce0 Implement a cruncher for lossless at method 6. +1b92b237 Merge "Fix VP8ApplyNearLossless to respect const and stride." +1923ff02 tiffdec: fix EXTRASAMPLES check +97cce5ba tiffdec: only request EXTRASAMPLES w/> 3 samples/px +0dcd85b6 Fix VP8ApplyNearLossless to respect const and stride. +f7682189 yuv: rationalize the C/SSE2 function naming +52245424 NEON implementation of some Sharp-YUV420 functions +690efd82 Avoid several backward reference copies. +4bb1f607 src/dec/vp8_dec.h, cosmetics: fix comments +285748be cmake: build/install webpinfo +78fd199c backward_references_enc.c: clear -Wshadow warnings +ae836410 WebPLog2FloorC: clear -Wshadow warning +d0b7404e Merge "WASM support" +134e314f WASM support +c08adb6f Merge "VP8LEnc: remove use of BitsLog2Ceiling()" +28c37ebd VP8LEnc: remove use of BitsLog2Ceiling() +2cb58ab2 webpinfo: output format as a human readable string +bb175a93 Merge "rename some symbols clashing with MSVC headers" +39eda658 Remove a duplicated pixel hash implementation. +36b8274d rename some symbols clashing with MSVC headers +274daf54 Add webpinfo tool. +ec5036e4 add explicit reference to /usr/local/{lib,inc} +18f0dfac Merge "fix TIFF encoder regarding rgbA/RGBA" +4e2b0b50 Merge "webpdec.h: fix a doc typo" +e2eeabff Merge "Install binaries, libraries and headers in CMake." +836607e6 webpdec.h: fix a doc typo +9273e441 fix TIFF encoder regarding rgbA/RGBA +17e3c11f Add limited PAM decoding support +5f624871 Install binaries, libraries and headers in CMake. +976adac1 Merge "lossless incremental decoding: fix missing eos_ test" +f8fad4fa lossless incremental decoding: fix missing eos_ test +27415d41 Merge "vwebp_sdl: fix the makefile.unix" +49566182 Merge "ImgIoUtilWriteFile(): use ImgIoUtilSetBinaryMode" +6f75a51b Analyze the transform entropy on the whole image. +a5e4e3af Use palette only if we can in entropy analysis. +75a9c3c4 Improve compression by better entropy analysis. +39cf6f4f vwebp_sdl: fix the makefile.unix +699b0416 ImgIoUtilWriteFile(): use ImgIoUtilSetBinaryMode +7d985bd1 Fix small entropy analysis bug. +6e7caf06 Optimize the color cache size. +833c9219 More efficient stochastic histogram merge. +5183326b Refactor the greedy histogram merge. +99f6f462 Merge "histogram_enc.c,MyRand: s/ul/u/ for unsigned constants" +80a22186 ssim.c: remove dead include +a128dfff histogram_enc.c,MyRand: s/ul/u/ for unsigned constants +693bf74e move the SSIM calculation code in ssim.c / ssim_sse2.c +10d791ca Merge "Fix the random generator in HistogramCombineStochastic." +fa63a966 Fix the random generator in HistogramCombineStochastic. +16be192f VP8LSetBitPos: remove the eos_ setting +027151ca don't erase the surface before blitting. +4105d565 disable WEBP_USE_XXX optimisations when EMSCRIPTEN is defined +9ee32a75 Merge "WebP-JS: emscripten-based Javascript decoder" +ca9f7b7d WebP-JS: emscripten-based Javascript decoder +868aa690 Perform greedy histogram merge in a unified way. +5b393f2d Merge "fix path typo for vwebp_sdl in Makefile.vc" +e0012bea CMake: only use libwebpdecoder for building dwebp +84c2a7b0 fix path typo for vwebp_sdl in Makefile.vc +1b0e4abf Merge "Add a flag to disable SIMD optimizations." +32263250 Add a flag to disable SIMD optimizations. +b494fdec optimize the ARGB->ARGB Import to use memcpy +f1536039 Merge "ReadWebP: decode directly into a pre-allocated buffer" +e69ed291 ReadWebP: decode directly into a pre-allocated buffer +57d8de8a Merge "vwebp_sdl: simple viewer based on SDL" +5cfd4ebc LZ77 interval speedups. Faster, smaller, simpler. +1e7ad88b PNM header decoder: add some basic numerical validation +17c7890c Merge "Add a decoder only library for WebP in CMake." +be733786 Merge "Add clang build fix for MSA" +03cda0e4 Add a decoder only library for WebP in CMake. +aa893914 Add clang build fix for MSA +31a92e97 Merge "imageio: add limited PNM support for reading" +dcf9d82a imageio: add limited PNM support for reading +6524fcd6 vwebp_sdl: simple viewer based on SDL +6cf24a24 get_disto: fix reference file read +43d472aa Merge tag 'v0.6.0' +50d1a848 update ChangeLog (tag: v0.6.0, origin/0.6.0, 0.6.0) 20a7fea0 extras/Makefile.am: fix libwebpextras.la reference 415f3ffe update ChangeLog (tag: v0.6.0-rc3) 3c6d1224 update NEWS ee4a4141 update AUTHORS 32ed856f Fix "all|no frames are keyframes" settings. +1c3190b6 Merge "Fix "all|no frames are keyframes" settings." f4dc56fd disable GradientUnfilter_NEON +4f3e3bbd disable GradientUnfilter_NEON +2dc0bdca Fix "all|no frames are keyframes" settings. 0d8e0588 img2webp: treat -loop as a no-op w/single images b0450139 ReadImage(): restore size reporting 0ad3b4ef update ChangeLog (tag: v0.6.0-rc2) diff --git a/external/libwebp-0.6.0/Makefile.am b/external/libwebp-1.0.0/Makefile.am similarity index 100% rename from external/libwebp-0.6.0/Makefile.am rename to external/libwebp-1.0.0/Makefile.am diff --git a/external/libwebp-1.0.0/Makefile.in b/external/libwebp-1.0.0/Makefile.in new file mode 100644 index 00000000..ff5056b2 --- /dev/null +++ b/external/libwebp-1.0.0/Makefile.in @@ -0,0 +1,838 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@WANT_EXTRAS_TRUE@am__append_1 = extras +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__DIST_COMMON) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/webp/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +CSCOPE = cscope +DIST_SUBDIRS = src imageio man extras examples +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/src/webp/config.h.in AUTHORS COPYING ChangeLog \ + NEWS README ar-lib compile config.guess config.sub install-sh \ + ltmain.sh missing +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +DIST_TARGETS = dist-gzip +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVX2_FLAGS = @AVX2_FLAGS@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GIF_INCLUDES = @GIF_INCLUDES@ +GIF_LIBS = @GIF_LIBS@ +GL_INCLUDES = @GL_INCLUDES@ +GL_LIBS = @GL_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JPEG_INCLUDES = @JPEG_INCLUDES@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPNG_CONFIG = @LIBPNG_CONFIG@ +LIBS = @LIBS@ +LIBSDL_CONFIG = @LIBSDL_CONFIG@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NEON_FLAGS = @NEON_FLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PNG_INCLUDES = @PNG_INCLUDES@ +PNG_LIBS = @PNG_LIBS@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SDL_INCLUDES = @SDL_INCLUDES@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSE2_FLAGS = @SSE2_FLAGS@ +SSE41_FLAGS = @SSE41_FLAGS@ +STRIP = @STRIP@ +TIFF_INCLUDES = @TIFF_INCLUDES@ +TIFF_LIBS = @TIFF_LIBS@ +USE_SWAP_16BIT_CSP = @USE_SWAP_16BIT_CSP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ACLOCAL_AMFLAGS = -I m4 +SUBDIRS = src imageio man $(am__append_1) examples +EXTRA_DIST = COPYING autogen.sh +all: all-recursive + +.SUFFIXES: +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +src/webp/config.h: src/webp/stamp-h1 + @test -f $@ || rm -f src/webp/stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) src/webp/stamp-h1 + +src/webp/stamp-h1: $(top_srcdir)/src/webp/config.h.in $(top_builddir)/config.status + @rm -f src/webp/stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status src/webp/config.h +$(top_srcdir)/src/webp/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f src/webp/stamp-h1 + touch $@ + +distclean-hdr: + -rm -f src/webp/config.h src/webp/stamp-h1 + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ + dist-xz dist-zip distcheck distclean distclean-generic \ + distclean-hdr distclean-libtool distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/external/libwebp-0.6.0/Makefile.vc b/external/libwebp-1.0.0/Makefile.vc similarity index 91% rename from external/libwebp-0.6.0/Makefile.vc rename to external/libwebp-1.0.0/Makefile.vc index ca0955ca..5d1bf865 100644 --- a/external/libwebp-0.6.0/Makefile.vc +++ b/external/libwebp-1.0.0/Makefile.vc @@ -29,7 +29,7 @@ PLATFORM_LDFLAGS = /SAFESEH NOLOGO = /nologo CCNODBG = cl.exe $(NOLOGO) /O2 /DNDEBUG CCDEBUG = cl.exe $(NOLOGO) /Od /Gm /Zi /D_DEBUG /RTC1 -CFLAGS = /Isrc $(NOLOGO) /W3 /EHsc /c +CFLAGS = /I. /Isrc $(NOLOGO) /W3 /EHsc /c CFLAGS = $(CFLAGS) /DWIN32 /D_CRT_SECURE_NO_WARNINGS /DWIN32_LEAN_AND_MEAN LDFLAGS = /LARGEADDRESSAWARE /MANIFEST /NXCOMPAT /DYNAMICBASE LDFLAGS = $(LDFLAGS) $(PLATFORM_LDFLAGS) @@ -155,6 +155,7 @@ CFGSET = TRUE !MESSAGE - all - build (de)mux-based targets for CFG !MESSAGE - gif2webp - requires libgif & >= VS2013 !MESSAGE - anim_diff - requires libgif & >= VS2013 +!MESSAGE - anim_dump !MESSAGE !MESSAGE RTLIBCFG controls the runtime library linkage - 'static' or 'dynamic'. !MESSAGE 'legacy' will produce a Windows 2000 compatible library. @@ -226,15 +227,15 @@ DSP_DEC_OBJS = \ $(DIROBJ)\dsp\upsampling_msa.obj \ $(DIROBJ)\dsp\upsampling_neon.obj \ $(DIROBJ)\dsp\upsampling_sse2.obj \ + $(DIROBJ)\dsp\upsampling_sse41.obj \ $(DIROBJ)\dsp\yuv.obj \ $(DIROBJ)\dsp\yuv_mips32.obj \ $(DIROBJ)\dsp\yuv_mips_dsp_r2.obj \ + $(DIROBJ)\dsp\yuv_neon.obj \ $(DIROBJ)\dsp\yuv_sse2.obj \ + $(DIROBJ)\dsp\yuv_sse41.obj \ DSP_ENC_OBJS = \ - $(DIROBJ)\dsp\argb.obj \ - $(DIROBJ)\dsp\argb_mips_dsp_r2.obj \ - $(DIROBJ)\dsp\argb_sse2.obj \ $(DIROBJ)\dsp\cost.obj \ $(DIROBJ)\dsp\cost_mips32.obj \ $(DIROBJ)\dsp\cost_mips_dsp_r2.obj \ @@ -254,6 +255,8 @@ DSP_ENC_OBJS = \ $(DIROBJ)\dsp\lossless_enc_neon.obj \ $(DIROBJ)\dsp\lossless_enc_sse2.obj \ $(DIROBJ)\dsp\lossless_enc_sse41.obj \ + $(DIROBJ)\dsp\ssim.obj \ + $(DIROBJ)\dsp\ssim_sse2.obj \ EX_ANIM_UTIL_OBJS = \ $(DIROBJ)\examples\anim_util.obj \ @@ -263,6 +266,7 @@ IMAGEIO_DEC_OBJS = \ $(DIROBJ)\imageio\jpegdec.obj \ $(DIROBJ)\imageio\metadata.obj \ $(DIROBJ)\imageio\pngdec.obj \ + $(DIROBJ)\imageio\pnmdec.obj \ $(DIROBJ)\imageio\tiffdec.obj \ $(DIROBJ)\imageio\webpdec.obj \ $(DIROBJ)\imageio\wicdec.obj \ @@ -279,10 +283,10 @@ EX_UTIL_OBJS = \ ENC_OBJS = \ $(DIROBJ)\enc\alpha_enc.obj \ $(DIROBJ)\enc\analysis_enc.obj \ + $(DIROBJ)\enc\backward_references_cost_enc.obj \ $(DIROBJ)\enc\backward_references_enc.obj \ $(DIROBJ)\enc\config_enc.obj \ $(DIROBJ)\enc\cost_enc.obj \ - $(DIROBJ)\enc\delta_palettization_enc.obj \ $(DIROBJ)\enc\filter_enc.obj \ $(DIROBJ)\enc\frame_enc.obj \ $(DIROBJ)\enc\histogram_enc.obj \ @@ -344,7 +348,8 @@ all: ex OUT_EXAMPLES = $(DIRBIN)\cwebp.exe $(DIRBIN)\dwebp.exe EXTRA_EXAMPLES = $(DIRBIN)\vwebp.exe $(DIRBIN)\webpmux.exe \ $(DIRBIN)\img2webp.exe $(DIRBIN)\get_disto.exe \ - $(DIRBIN)\webp_quality.exe + $(DIRBIN)\webp_quality.exe $(DIRBIN)\vwebp_sdl.exe \ + $(DIRBIN)\webpinfo.exe ex: $(OUT_LIBS) $(OUT_EXAMPLES) all: ex $(EXTRA_EXAMPLES) @@ -352,42 +357,52 @@ all: ex $(EXTRA_EXAMPLES) # C99 support which is only available from VS2013 onward. gif2webp: $(DIRBIN)\gif2webp.exe anim_diff: $(DIRBIN)\anim_diff.exe +anim_dump: $(DIRBIN)\anim_dump.exe $(DIRBIN)\anim_diff.exe: $(DIROBJ)\examples\anim_diff.obj $(EX_ANIM_UTIL_OBJS) $(DIRBIN)\anim_diff.exe: $(EX_UTIL_OBJS) $(IMAGEIO_UTIL_OBJS) $(DIRBIN)\anim_diff.exe: $(EX_GIF_DEC_OBJS) $(LIBWEBPDEMUX) $(LIBWEBP) +$(DIRBIN)\anim_dump.exe: $(DIROBJ)\examples\anim_dump.obj $(EX_ANIM_UTIL_OBJS) +$(DIRBIN)\anim_dump.exe: $(EX_UTIL_OBJS) $(IMAGEIO_UTIL_OBJS) +$(DIRBIN)\anim_dump.exe: $(EX_GIF_DEC_OBJS) $(LIBWEBPDEMUX) $(LIBWEBP) +$(DIRBIN)\anim_dump.exe: $(IMAGEIO_ENC_OBJS) $(DIRBIN)\cwebp.exe: $(DIROBJ)\examples\cwebp.obj $(IMAGEIO_DEC_OBJS) $(DIRBIN)\cwebp.exe: $(IMAGEIO_UTIL_OBJS) +$(DIRBIN)\cwebp.exe: $(LIBWEBPDEMUX) $(DIRBIN)\dwebp.exe: $(DIROBJ)\examples\dwebp.obj $(IMAGEIO_DEC_OBJS) $(DIRBIN)\dwebp.exe: $(IMAGEIO_ENC_OBJS) $(DIRBIN)\dwebp.exe: $(IMAGEIO_UTIL_OBJS) +$(DIRBIN)\dwebp.exe: $(LIBWEBPDEMUX) $(DIRBIN)\gif2webp.exe: $(DIROBJ)\examples\gif2webp.obj $(EX_GIF_DEC_OBJS) $(DIRBIN)\gif2webp.exe: $(EX_UTIL_OBJS) $(IMAGEIO_UTIL_OBJS) $(LIBWEBPMUX) $(DIRBIN)\gif2webp.exe: $(LIBWEBP) $(DIRBIN)\vwebp.exe: $(DIROBJ)\examples\vwebp.obj $(EX_UTIL_OBJS) $(DIRBIN)\vwebp.exe: $(IMAGEIO_UTIL_OBJS) $(LIBWEBPDEMUX) $(LIBWEBP) +$(DIRBIN)\vwebp_sdl.exe: $(DIROBJ)\extras\vwebp_sdl.obj +$(DIRBIN)\vwebp_sdl.exe: $(DIROBJ)\extras\webp_to_sdl.obj +$(DIRBIN)\vwebp_sdl.exe: $(IMAGEIO_UTIL_OBJS) $(LIBWEBP) $(DIRBIN)\webpmux.exe: $(DIROBJ)\examples\webpmux.obj $(LIBWEBPMUX) $(DIRBIN)\webpmux.exe: $(EX_UTIL_OBJS) $(IMAGEIO_UTIL_OBJS) $(LIBWEBP) $(DIRBIN)\img2webp.exe: $(DIROBJ)\examples\img2webp.obj $(LIBWEBPMUX) $(DIRBIN)\img2webp.exe: $(IMAGEIO_DEC_OBJS) -$(DIRBIN)\img2webp.exe: $(EX_UTIL_OBJS) $(IMAGEIO_UTIL_OBJS) $(LIBWEBP) +$(DIRBIN)\img2webp.exe: $(EX_UTIL_OBJS) $(IMAGEIO_UTIL_OBJS) +$(DIRBIN)\img2webp.exe: $(LIBWEBPDEMUX) $(LIBWEBP) $(DIRBIN)\get_disto.exe: $(DIROBJ)\extras\get_disto.obj -$(DIRBIN)\get_disto.exe: $(IMAGEIO_DEC_OBJS) $(IMAGEIO_UTIL_OBJS) $(LIBWEBP) - +$(DIRBIN)\get_disto.exe: $(IMAGEIO_DEC_OBJS) $(IMAGEIO_UTIL_OBJS) +$(DIRBIN)\get_disto.exe: $(LIBWEBPDEMUX) $(LIBWEBP) $(DIRBIN)\webp_quality.exe: $(DIROBJ)\extras\webp_quality.obj $(DIRBIN)\webp_quality.exe: $(IMAGEIO_UTIL_OBJS) $(DIRBIN)\webp_quality.exe: $(EXTRAS_OBJS) $(LIBWEBP) +$(DIRBIN)\webpinfo.exe: $(DIROBJ)\examples\webpinfo.obj +$(DIRBIN)\webpinfo.exe: $(IMAGEIO_DEC_OBJS) +$(DIRBIN)\webpinfo.exe: $(EX_UTIL_OBJS) $(IMAGEIO_UTIL_OBJS) +$(DIRBIN)\webpinfo.exe: $(LIBWEBPDEMUX) $(LIBWEBP) $(OUT_EXAMPLES): $(EX_UTIL_OBJS) $(LIBWEBP) $(EX_UTIL_OBJS) $(IMAGEIO_UTIL_OBJS): $(OUTPUT_DIRS) $(IMAGEIO_DEC_OBJS) $(IMAGEIO_ENC_OBJS) $(EXTRAS_OBJS): $(OUTPUT_DIRS) !ENDIF # ARCH == ARM -experimental: - $(MAKE) /f Makefile.vc \ - CFG=$(CFG) \ - CFLAGS="$(CFLAGS) /DWEBP_EXPERIMENTAL_FEATURES" /$(MAKEFLAGS) - $(LIBWEBPDECODER): $(LIBWEBPDECODER_OBJS) $(LIBWEBP): $(LIBWEBP_OBJS) $(LIBWEBPMUX): $(LIBWEBPMUX_OBJS) @@ -433,7 +448,7 @@ $(OUTPUT_DIRS): $(DIROBJ)\$(DLLINC): @echo #ifndef WEBP_DLL_H_ > $@ @echo #define WEBP_DLL_H_ >> $@ - @echo #define WEBP_EXTERN(type) __declspec(dllexport) type >> $@ + @echo #define WEBP_EXTERN __declspec(dllexport) >> $@ @echo #endif /* WEBP_DLL_H_ */ >> $@ .SUFFIXES: .c .obj .res .exe @@ -445,6 +460,9 @@ $(DIROBJ)\dsp\enc_avx2.obj: src\dsp\enc_avx2.c $(DIROBJ)\examples\anim_diff.obj: examples\anim_diff.c $(CC) $(CFLAGS) /DWEBP_HAVE_GIF /Fd$(LIBWEBP_PDBNAME) \ /Fo$(DIROBJ)\examples\ examples\$(@B).c +$(DIROBJ)\examples\anim_dump.obj: examples\anim_dump.c + $(CC) $(CFLAGS) /DWEBP_HAVE_GIF /Fd$(LIBWEBP_PDBNAME) \ + /Fo$(DIROBJ)\examples\ examples\$(@B).c $(DIROBJ)\examples\anim_util.obj: examples\anim_util.c $(CC) $(CFLAGS) /DWEBP_HAVE_GIF /Fd$(LIBWEBP_PDBNAME) \ /Fo$(DIROBJ)\examples\ examples\$(@B).c diff --git a/external/libwebp-0.6.0/NEWS b/external/libwebp-1.0.0/NEWS similarity index 87% rename from external/libwebp-0.6.0/NEWS rename to external/libwebp-1.0.0/NEWS index 3bf4bd05..480cb7d3 100644 --- a/external/libwebp-0.6.0/NEWS +++ b/external/libwebp-1.0.0/NEWS @@ -1,3 +1,26 @@ +- 4/2/2018: version 1.0.0 + This is a binary compatible release. + * lossy encoder improvements to avoid chroma shifts in various circumstances + (issues #308, #340) + * big-endian fixes for decode, RGBA import and WebPPictureDistortion + Tool updates: + gifwebp, anim_diff - default duration behavior (<= 10ms) changed to match + web browsers, transcoding tools (issue #379) + img2webp, webpmux - allow options to be passed in via a file (issue #355) + +- 11/24/2017: version 0.6.1 + This is a binary compatible release. + * lossless performance and compression improvements + a new 'cruncher' mode + (-m 6 -q 100) + * ARM performance improvements with clang (15-20% w/ndk r15c, issue #339) + * webp-js: emscripten/webassembly based javascript decoder + * miscellaneous bug & build fixes (issue #329, #332, #343, #353, #360, #361, + #363) + Tool updates / additions: + added webpinfo - prints file format information (issue #330) + gif2webp - loop behavior modified to match Chrome M63+ (crbug.com/649264); + '-loop_compatibility' can be used for the old behavior + - 1/26/2017: version 0.6.0 * lossless performance and compression improvements * miscellaneous performance improvements (SSE2, NEON, MSA) diff --git a/external/libwebp-0.6.0/PATENTS b/external/libwebp-1.0.0/PATENTS similarity index 100% rename from external/libwebp-0.6.0/PATENTS rename to external/libwebp-1.0.0/PATENTS diff --git a/external/libwebp-0.6.0/README b/external/libwebp-1.0.0/README similarity index 95% rename from external/libwebp-0.6.0/README rename to external/libwebp-1.0.0/README index 4c15c4ad..a76b3787 100644 --- a/external/libwebp-0.6.0/README +++ b/external/libwebp-1.0.0/README @@ -4,7 +4,7 @@ \__\__/\____/\_____/__/ ____ ___ / _/ / \ \ / _ \/ _/ / \_/ / / \ \ __/ \__ - \____/____/\_____/_____/____/v0.6.0 + \____/____/\_____/_____/____/v1.0.0 Description: ============ @@ -113,8 +113,8 @@ make install CMake: ------ -The support for CMake is minimal: it only helps you compile libwebp, cwebp and -dwebp. +With CMake, you can compile libwebp, cwebp, dwebp, gif2web, img2webp, webpinfo +and the JS bindings. Prerequisites: A compiler (e.g., gcc with autotools) and CMake. @@ -123,18 +123,25 @@ minimal build: $ sudo apt-get install build-essential cmake When building from git sources, you will need to run cmake to generate the -configure script. +makefiles. mkdir build && cd build && cmake ../ make make install -If you also want cwebp or dwebp, you will need to enable them through CMake: +If you also want any of the executables, you will need to enable them through +CMake, e.g.: cmake -DWEBP_BUILD_CWEBP=ON -DWEBP_BUILD_DWEBP=ON ../ or through your favorite interface (like ccmake or cmake-qt-gui). +Finally, once installed, you can also use WebP in your CMake project by doing: + +find_package(WebP) + +which will define the CMake variables WebP_INCLUDE_DIRS and WebP_LIBRARIES. + Gradle: ------- The support for Gradle is minimal: it only helps you compile libwebp, cwebp and @@ -360,6 +367,23 @@ Use following options to convert into alternate image formats: -quiet ....... quiet mode, don't print anything -noasm ....... disable all assembly optimizations +WebP file analysis tool: +======================== + +'webpinfo' can be used to print out the chunk level structure and bitstream +header information of WebP files. It can also check if the files are of valid +WebP format. + +Usage: webpinfo [options] in_files +Note: there could be multiple input files; + options must come before input files. +Options: + -version ........... Print version number and exit. + -quiet ............. Do not show chunk parsing information. + -diag .............. Show parsing error diagnosis. + -summary ........... Show chunk stats summary. + -bitstream_info .... Parse bitstream header. + Visualization tool: =================== @@ -434,6 +458,7 @@ File-level options (only used at the start of compression): -mixed ............... use mixed lossy/lossless automatic mode -v ................... verbose mode -h ................... this help + -version ............. print version number and exit Per-frame options (only used for subsequent images input): -d ............. frame duration in ms (default: 100) @@ -470,6 +495,8 @@ Options: -metadata ..... comma separated list of metadata to copy from the input to the output if present Valid values: all, none, icc, xmp (default) + -loop_compatibility .... use compatibility mode for Chrome + version prior to M62 (inclusive) -mt .................... use multi-threading if available -version ............... print version number and exit @@ -498,6 +525,11 @@ Options: -min_psnr ... minimum per-frame PSNR -raw_comparison ..... if this flag is not used, RGB is premultiplied before comparison + -max_diff ..... maximum allowed difference per channel + between corresponding pixels in subsequent + frames + -h .................. this help + -version ............ print version number and exit Building: --------- diff --git a/external/libwebp-0.6.0/README.mux b/external/libwebp-1.0.0/README.mux similarity index 96% rename from external/libwebp-0.6.0/README.mux rename to external/libwebp-1.0.0/README.mux index 04fedd16..bd4f92fa 100644 --- a/external/libwebp-0.6.0/README.mux +++ b/external/libwebp-1.0.0/README.mux @@ -1,7 +1,7 @@  __ __ ____ ____ ____ __ __ _ __ __ / \\/ \/ _ \/ _ \/ _ \/ \ \/ \___/_ / _\ \ / __/ _ \ __/ / / (_/ /__ - \__\__/\_____/_____/__/ \__//_/\_____/__/___/v0.4.0 + \__\__/\_____/_____/__/ \__//_/\_____/__/___/v1.0.0 Description: @@ -33,6 +33,7 @@ Usage: webpmux -get GET_OPTIONS INPUT -o OUTPUT webpmux -info INPUT webpmux [-h|-help] webpmux -version + webpmux argument_file_name GET_OPTIONS: Extract relevant data: @@ -92,6 +93,9 @@ INPUT & OUTPUT are in WebP format. Note: The nature of EXIF, XMP and ICC data is not checked and is assumed to be valid. +Note: if a single file name is passed as the argument, the arguments will be +tokenized from this file. The file name must not start with the character '-'. + Visualization tool: =================== diff --git a/external/libwebp-1.0.0/README.webp_js b/external/libwebp-1.0.0/README.webp_js new file mode 100644 index 00000000..2805354d --- /dev/null +++ b/external/libwebp-1.0.0/README.webp_js @@ -0,0 +1,76 @@ + __ __ ____ ____ ____ __ ____ + / \\/ \ _ \ _ \ _ \ (__)/ __\ + \ / __/ _ \ __/ _) \_ \ + \__\__/_____/____/_/ /____/____/ + +Description: +============ + +This file describes the compilation of libwebp into a JavaScript decoder +using Emscripten and CMake. + + - install the Emscripten SDK following the procedure described at: + https://kripken.github.io/emscripten-site/docs/getting_started/downloads.html + After installation, you should have some global variable positioned to the + location of the SDK. In particular, $EMSCRIPTEN should point to the + top-level directory containing Emscripten tools. + + - make sure the file $EMSCRIPTEN/cmake/Modules/Platform/Emscripten.cmake is + accessible. This is the toolchain file used by CMake to invoke Emscripten. + + - configure the project 'WEBP_JS' with CMake using: + + cd webp_js && \ + cmake -DWEBP_BUILD_WEBP_JS=ON \ + -DEMSCRIPTEN_GENERATE_BITCODE_STATIC_LIBRARIES=1 \ + -DCMAKE_TOOLCHAIN_FILE=$EMSCRIPTEN/cmake/Modules/Platform/Emscripten.cmake \ + ../ + + - compile webp.js using 'make'. + + - that's it! Upon completion, you should have the webp.js and + webp.js.mem files generated. + +The callable JavaScript function is WebPToSDL(), which decodes a raw WebP +bitstream into a canvas. See webp_js/index.html for a simple usage sample +(see below for instructions). + +Demo HTML page: +=============== + + The HTML page webp_js/index.html requires an HTTP server to serve the WebP + image example. It's easy to just use Python for that. + +cd webp_js && python -m SimpleHTTPServer 8080 + +and then navigate to http://localhost:8080 in your favorite browser. + + +Web-Assembly (WASM) version: +============================ + + CMakeLists.txt is configured to build the WASM version when using + the option WEBP_BUILD_WEBP_JS=ON. The compilation step will assemble + the files 'webp_wasm.js', 'webp_wasm.wasm' in the webp_js/ directory. + See webp_js/index_wasm.html for a simple demo page using the WASM version + of the library. + + You will need a fairly recent version of Emscripten (at least 1.37.8) and of + your WASM-enabled browser to run this version. Consider it very experimental! + +Caveat: +======= + + - First decoding using the library is usually slower, due to just-in-time + compilation. + + - Some versions of llvm produce the following compile error when SSE2 is + enabled. + +"Unsupported: %516 = bitcast <8 x i16> %481 to i128 + LLVM ERROR: BitCast Instruction not yet supported for integer types larger than 64 bits" + + The corresponding Emscripten bug is at: + https://github.com/kripken/emscripten/issues/3788 + + Therefore, SSE2 optimization is currently disabled in CMakeLists.txt. diff --git a/external/libwebp-1.0.0/aclocal.m4 b/external/libwebp-1.0.0/aclocal.m4 new file mode 100644 index 00000000..1c64bca6 --- /dev/null +++ b/external/libwebp-1.0.0/aclocal.m4 @@ -0,0 +1,1218 @@ +# generated automatically by aclocal 1.15.1 -*- Autoconf -*- + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.15' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.15.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.15.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# Copyright (C) 2011-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_AR([ACT-IF-FAIL]) +# ------------------------- +# Try to determine the archiver interface, and trigger the ar-lib wrapper +# if it is needed. If the detection of archiver interface fails, run +# ACT-IF-FAIL (default is to abort configure with a proper error message). +AC_DEFUN([AM_PROG_AR], +[AC_BEFORE([$0], [LT_INIT])dnl +AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl +AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([ar-lib])dnl +AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) +: ${AR=ar} + +AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], + [AC_LANG_PUSH([C]) + am_cv_ar_interface=ar + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], + [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([am_ar_try]) + if test "$ac_status" -eq 0; then + am_cv_ar_interface=ar + else + am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([am_ar_try]) + if test "$ac_status" -eq 0; then + am_cv_ar_interface=lib + else + am_cv_ar_interface=unknown + fi + fi + rm -f conftest.lib libconftest.a + ]) + AC_LANG_POP([C])]) + +case $am_cv_ar_interface in +ar) + ;; +lib) + # Microsoft lib, so override with the ar-lib wrapper script. + # FIXME: It is wrong to rewrite AR. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__AR in this case, + # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something + # similar. + AR="$am_aux_dir/ar-lib $AR" + ;; +unknown) + m4_default([$1], + [AC_MSG_ERROR([could not determine $AR interface])]) + ;; +esac +AC_SUBST([AR])dnl +]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each '.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/ax_pthread.m4]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) diff --git a/external/libwebp-1.0.0/ar-lib b/external/libwebp-1.0.0/ar-lib new file mode 100755 index 00000000..05094d34 --- /dev/null +++ b/external/libwebp-1.0.0/ar-lib @@ -0,0 +1,270 @@ +#! /bin/sh +# Wrapper for Microsoft lib.exe + +me=ar-lib +scriptversion=2012-03-01.08; # UTC + +# Copyright (C) 2010-2017 Free Software Foundation, Inc. +# Written by Peter Rosin . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + + +# func_error message +func_error () +{ + echo "$me: $1" 1>&2 + exit 1 +} + +file_conv= + +# func_file_conv build_file +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv in + mingw) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_at_file at_file operation archive +# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE +# for each of them. +# When interpreting the content of the @FILE, do NOT use func_file_conv, +# since the user would need to supply preconverted file names to +# binutils ar, at least for MinGW. +func_at_file () +{ + operation=$2 + archive=$3 + at_file_contents=`cat "$1"` + eval set x "$at_file_contents" + shift + + for member + do + $AR -NOLOGO $operation:"$member" "$archive" || exit $? + done +} + +case $1 in + '') + func_error "no command. Try '$0 --help' for more information." + ;; + -h | --h*) + cat < header file. */ +#cmakedefine HAVE_CPU_FEATURES_H 1 + /* Define to 1 if you have the header file. */ #cmakedefine HAVE_DLFCN_H 1 @@ -100,9 +103,6 @@ /* Version number of package */ #cmakedefine VERSION "@VERSION@" -/* Enable experimental code */ -#cmakedefine WEBP_EXPERIMENTAL_FEATURES 1 - /* Set to 1 if AVX2 is supported */ #cmakedefine WEBP_HAVE_AVX2 1 @@ -115,9 +115,19 @@ /* Set to 1 if JPEG library is installed */ #cmakedefine WEBP_HAVE_JPEG 1 +/* Set to 1 if NEON is supported */ +#cmakedefine WEBP_HAVE_NEON + +/* Set to 1 if runtime detection of NEON is enabled */ +/* TODO: handle properly in CMake */ +#cmakedefine WEBP_HAVE_NEON_RTCD + /* Set to 1 if PNG library is installed */ #cmakedefine WEBP_HAVE_PNG 1 +/* Set to 1 if SDL library is installed */ +#cmakedefine WEBP_HAVE_SDL 1 + /* Set to 1 if SSE2 is supported */ #cmakedefine WEBP_HAVE_SSE2 1 @@ -127,6 +137,9 @@ /* Set to 1 if TIFF library is installed */ #cmakedefine WEBP_HAVE_TIFF 1 +/* Enable near lossless encoding */ +#cmakedefine WEBP_NEAR_LOSSLESS 1 + /* Undefine this to disable thread support. */ #cmakedefine WEBP_USE_THREAD 1 diff --git a/external/libwebp-0.6.0/cmake/cpu.cmake b/external/libwebp-1.0.0/cmake/cpu.cmake similarity index 84% rename from external/libwebp-0.6.0/cmake/cpu.cmake rename to external/libwebp-1.0.0/cmake/cpu.cmake index 95fafcb9..5aa1bfda 100644 --- a/external/libwebp-0.6.0/cmake/cpu.cmake +++ b/external/libwebp-1.0.0/cmake/cpu.cmake @@ -1,7 +1,15 @@ ## Check for SIMD extensions. +include(CMakePushCheckState) -function(webp_check_compiler_flag WEBP_SIMD_FLAG) +function(webp_check_compiler_flag WEBP_SIMD_FLAG ENABLE_SIMD) + if(NOT ENABLE_SIMD) + message(STATUS "Disabling ${WEBP_SIMD_FLAG} optimization.") + set(WEBP_HAVE_${WEBP_SIMD_FLAG} 0 PARENT_SCOPE) + return() + endif() unset(WEBP_HAVE_FLAG_${WEBP_SIMD_FLAG} CACHE) + cmake_push_check_state() + set(CMAKE_REQUIRED_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}) check_c_source_compiles(" #include \"${CMAKE_CURRENT_LIST_DIR}/../src/dsp/dsp.h\" int main(void) { @@ -12,6 +20,7 @@ function(webp_check_compiler_flag WEBP_SIMD_FLAG) } " WEBP_HAVE_FLAG_${WEBP_SIMD_FLAG} ) + cmake_pop_check_state() if(WEBP_HAVE_FLAG_${WEBP_SIMD_FLAG}) set(WEBP_HAVE_${WEBP_SIMD_FLAG} 1 PARENT_SCOPE) else() @@ -55,12 +64,13 @@ foreach(I_SIMD RANGE ${WEBP_SIMD_FLAGS_RANGE}) # First try with no extra flag added as the compiler might have default flags # (especially on Android). unset(WEBP_HAVE_${WEBP_SIMD_FLAG} CACHE) + cmake_push_check_state() set(CMAKE_REQUIRED_FLAGS) - webp_check_compiler_flag(${WEBP_SIMD_FLAG}) + webp_check_compiler_flag(${WEBP_SIMD_FLAG} ${WEBP_ENABLE_SIMD}) if(NOT WEBP_HAVE_${WEBP_SIMD_FLAG}) list(GET SIMD_ENABLE_FLAGS ${I_SIMD} SIMD_COMPILE_FLAG) set(CMAKE_REQUIRED_FLAGS ${SIMD_COMPILE_FLAG}) - webp_check_compiler_flag(${WEBP_SIMD_FLAG}) + webp_check_compiler_flag(${WEBP_SIMD_FLAG} ${WEBP_ENABLE_SIMD}) else() set(SIMD_COMPILE_FLAG " ") endif() @@ -96,11 +106,12 @@ foreach(I_SIMD RANGE ${WEBP_SIMD_FLAGS_RANGE}) set(COMMON_PATTERNS) endif() set(CMAKE_REQUIRED_DEFINITIONS ${SIMD_COMPILE_FLAG}) - check_c_source_compiles("int main(void) {return 0;}" FLAG2 + check_c_source_compiles("int main(void) {return 0;}" + FLAG_${SIMD_COMPILE_FLAG} FAIL_REGEX "warning: argument unused during compilation:" ${COMMON_PATTERNS} ) - if(NOT FLAG2) + if(NOT FLAG_${SIMD_COMPILE_FLAG}) unset(HAS_COMPILE_FLAG CACHE) endif() endif() @@ -110,4 +121,5 @@ foreach(I_SIMD RANGE ${WEBP_SIMD_FLAGS_RANGE}) endif() endif() endif() + cmake_pop_check_state() endforeach() diff --git a/external/libwebp-0.6.0/cmake/config.h.cmake b/external/libwebp-1.0.0/cmake/deps.cmake similarity index 75% rename from external/libwebp-0.6.0/cmake/config.h.cmake rename to external/libwebp-1.0.0/cmake/deps.cmake index 0aade0c0..3d5d10a8 100644 --- a/external/libwebp-0.6.0/cmake/config.h.cmake +++ b/external/libwebp-1.0.0/cmake/deps.cmake @@ -65,14 +65,49 @@ endif() # Find the standard image libraries. set(WEBP_DEP_IMG_LIBRARIES) set(WEBP_DEP_IMG_INCLUDE_DIRS) -foreach(I_LIB PNG JPEG TIFF GIF) +foreach(I_LIB PNG JPEG TIFF) find_package(${I_LIB}) set(WEBP_HAVE_${I_LIB} ${${I_LIB}_FOUND}) if(${I_LIB}_FOUND) list(APPEND WEBP_DEP_IMG_LIBRARIES ${${I_LIB}_LIBRARIES}) - list(APPEND WEBP_DEP_IMG_INCLUDE_DIRS ${${I_LIB}_INCLUDE_DIRS}) + list(APPEND WEBP_DEP_IMG_INCLUDE_DIRS + ${${I_LIB}_INCLUDE_DIR} ${${I_LIB}_INCLUDE_DIRS}) endif() endforeach() +if(WEBP_DEP_IMG_INCLUDE_DIRS) + list(REMOVE_DUPLICATES WEBP_DEP_IMG_INCLUDE_DIRS) +endif() + +# GIF detection, gifdec isn't part of the imageio lib. +include(CMakePushCheckState) +set(WEBP_DEP_GIF_LIBRARIES) +set(WEBP_DEP_GIF_INCLUDE_DIRS) +find_package(GIF) +set(WEBP_HAVE_GIF ${GIF_FOUND}) +if(GIF_FOUND) + # GIF find_package only locates the header and library, it doesn't fail + # compile tests when detecting the version, but falls back to 3 (as of at + # least cmake 3.7.2). Make sure the library links to avoid incorrect + # detection when cross compiling. + cmake_push_check_state() + set(CMAKE_REQUIRED_LIBRARIES ${GIF_LIBRARIES}) + set(CMAKE_REQUIRED_INCLUDES ${GIF_INCLUDE_DIR}) + check_c_source_compiles(" + #include + int main(void) { + (void)DGifOpenFileHandle; + return 0; + } + " GIF_COMPILES + ) + cmake_pop_check_state() + if(GIF_COMPILES) + list(APPEND WEBP_DEP_GIF_LIBRARIES ${GIF_LIBRARIES}) + list(APPEND WEBP_DEP_GIF_INCLUDE_DIRS ${GIF_INCLUDE_DIR}) + else() + unset(GIF_FOUND) + endif() +endif() ## Check for specific headers. include(CheckIncludeFiles) @@ -129,13 +164,3 @@ strip_bracket(PACKAGE_URL) set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") set(PACKAGE_TARNAME ${PACKAGE_NAME}) set(VERSION ${PACKAGE_VERSION}) - -## Generate the config.h header. -configure_file(${CMAKE_CURRENT_LIST_DIR}/config.h.in - ${CMAKE_CURRENT_BINARY_DIR}/include/webp/config.h) -add_definitions(-DHAVE_CONFIG_H) -# The webp folder is included as we reference config.h as -# ../webp/config.h or webp/config.h -include_directories(${CMAKE_CURRENT_BINARY_DIR}/include - ${CMAKE_CURRENT_BINARY_DIR}/include/webp -) diff --git a/external/libwebp-1.0.0/compile b/external/libwebp-1.0.0/compile new file mode 100755 index 00000000..a85b723c --- /dev/null +++ b/external/libwebp-1.0.0/compile @@ -0,0 +1,347 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2012-10-14.11; # UTC + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/external/libwebp-1.0.0/config.guess b/external/libwebp-1.0.0/config.guess new file mode 100755 index 00000000..2e9ad7fe --- /dev/null +++ b/external/libwebp-1.0.0/config.guess @@ -0,0 +1,1462 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2016 Free Software Foundation, Inc. + +timestamp='2016-10-02' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# +# Please send patches to . + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2016 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case "${UNAME_MACHINE_ARCH}" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}${abi}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = hppa2.0w ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + *:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; + mips64el:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} + exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = 386; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; +esac + +cat >&2 </dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/external/libwebp-1.0.0/config.sub b/external/libwebp-1.0.0/config.sub new file mode 100755 index 00000000..dd2ca93c --- /dev/null +++ b/external/libwebp-1.0.0/config.sub @@ -0,0 +1,1825 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2016 Free Software Foundation, Inc. + +timestamp='2016-11-04' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2016 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | ba \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ + | pyramid \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | ba-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | e2k-* | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ + | pyramid-* \ + | riscv32-* | riscv64-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix* | -fuchsia*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -ios) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/external/libwebp-1.0.0/configure b/external/libwebp-1.0.0/configure new file mode 100755 index 00000000..d3025795 --- /dev/null +++ b/external/libwebp-1.0.0/configure @@ -0,0 +1,17413 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for libwebp 1.0.0. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: https://bugs.chromium.org/p/webp about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='libwebp' +PACKAGE_TARNAME='libwebp' +PACKAGE_VERSION='1.0.0' +PACKAGE_STRING='libwebp 1.0.0' +PACKAGE_BUGREPORT='https://bugs.chromium.org/p/webp' +PACKAGE_URL='http://developers.google.com/speed/webp' + +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +WANT_EXTRAS_FALSE +WANT_EXTRAS_TRUE +BUILD_LIBWEBPDECODER_FALSE +BUILD_LIBWEBPDECODER_TRUE +WANT_DEMUX_FALSE +WANT_DEMUX_TRUE +WANT_MUX_FALSE +WANT_MUX_TRUE +USE_SWAP_16BIT_CSP +BUILD_WEBPINFO_FALSE +BUILD_WEBPINFO_TRUE +BUILD_IMG2WEBP_FALSE +BUILD_IMG2WEBP_TRUE +BUILD_GIF2WEBP_FALSE +BUILD_GIF2WEBP_TRUE +BUILD_ANIMDIFF_FALSE +BUILD_ANIMDIFF_TRUE +GIF_INCLUDES +GIF_LIBS +TIFF_INCLUDES +TIFF_LIBS +JPEG_INCLUDES +JPEG_LIBS +PNG_INCLUDES +PNG_LIBS +LIBPNG_CONFIG +BUILD_VWEBP_SDL_FALSE +BUILD_VWEBP_SDL_TRUE +SDL_INCLUDES +SDL_LIBS +LIBSDL_CONFIG +BUILD_VWEBP_FALSE +BUILD_VWEBP_TRUE +GL_INCLUDES +GL_LIBS +PTHREAD_CFLAGS +PTHREAD_LIBS +PTHREAD_CC +ax_pthread_config +NEON_FLAGS +SSE2_FLAGS +SSE41_FLAGS +AVX2_FLAGS +AM_CFLAGS +pkgconfigdir +AM_CPPFLAGS +CPP +LT_SYS_LIBRARY_PATH +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +LIBTOOL +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +ac_ct_AR +AR +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +runstatedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_aix_soname +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_everything +enable_asserts +with_pkgconfigdir +enable_avx2 +enable_sse4_1 +enable_sse2 +enable_neon +enable_neon_rtcd +enable_threading +enable_gl +with_glincludedir +with_gllibdir +enable_sdl +with_sdlincludedir +with_sdllibdir +enable_png +with_pngincludedir +with_pnglibdir +enable_jpeg +with_jpegincludedir +with_jpeglibdir +enable_tiff +with_tiffincludedir +with_tifflibdir +enable_gif +with_gifincludedir +with_giflibdir +enable_wic +enable_swap_16bit_csp +enable_near_lossless +enable_libwebpmux +enable_libwebpdemux +enable_libwebpdecoder +enable_libwebpextras +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +LT_SYS_LIBRARY_PATH +CPP' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir runstatedir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures libwebp 1.0.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/libwebp] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of libwebp 1.0.0:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-everything Enable all optional targets. These can still be + disabled with --disable-target + --enable-asserts Enable assert checks + --disable-avx2 Disable detection of AVX2 support [default=auto] + --disable-sse4.1 Disable detection of SSE4.1 support [default=auto] + --disable-sse2 Disable detection of SSE2 support [default=auto] + --disable-neon Disable detection of NEON support [default=auto] + --disable-neon-rtcd Disable runtime detection of NEON support via + /proc/cpuinfo on Linux hosts [default=auto] + --disable-threading Disable detection of thread support + --disable-gl Disable detection of OpenGL support [default=auto] + --disable-sdl Disable detection of SDL support [default=auto] + --disable-png Disable detection of PNG format support + [default=auto] + --disable-jpeg Disable detection of JPEG format support + [default=auto] + --disable-tiff Disable detection of TIFF format support + [default=auto] + --disable-gif Disable detection of GIF format support + [default=auto] + --disable-wic Disable Windows Imaging Component (WIC) detection. + [default=auto] + --enable-swap-16bit-csp Enable byte swap for 16 bit colorspaces + --disable-near-lossless Disable near lossless encoding + --enable-libwebpmux Build libwebpmux [default=no] + --disable-libwebpdemux Disable libwebpdemux [default=no] + --enable-libwebpdecoder Build libwebpdecoder [default=no] + --enable-libwebpextras Build libwebpextras [default=no] + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). + --with-pkgconfigdir=DIR Path to the pkgconfig directory [LIBDIR/pkgconfig] + --with-glincludedir=DIR use GL includes from DIR + --with-gllibdir=DIR use GL libraries from DIR + --with-sdlincludedir=DIR + use SDL includes from DIR + --with-sdllibdir=DIR use SDL libraries from DIR + --with-pngincludedir=DIR + use PNG includes from DIR + --with-pnglibdir=DIR use PNG libraries from DIR + --with-jpegincludedir=DIR + use JPEG includes from DIR + --with-jpeglibdir=DIR use JPEG libraries from DIR + --with-tiffincludedir=DIR + use TIFF includes from DIR + --with-tifflibdir=DIR use TIFF libraries from DIR + --with-gifincludedir=DIR + use GIF includes from DIR + --with-giflibdir=DIR use GIF libraries from DIR + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +libwebp home page: . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +libwebp configure 1.0.0 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ----------------------------------------------- ## +## Report this to https://bugs.chromium.org/p/webp ## +## ----------------------------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_mongrel +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by libwebp $as_me 1.0.0, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# 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 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + + +am__api_version='1.15' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; 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_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +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_prog_STRIP="${ac_tool_prefix}strip" + $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 + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; 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_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +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_prog_ac_ct_STRIP="strip" + $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 + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; 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_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +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_prog_AWK="$ac_prog" + $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 + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='libwebp' + VERSION='1.0.0' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; 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_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +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_prog_CC="${ac_tool_prefix}gcc" + $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 + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; 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_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +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_prog_ac_ct_CC="gcc" + $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 + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; 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_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +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_prog_CC="${ac_tool_prefix}cc" + $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 + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; 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_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +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 + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $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 + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; 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_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +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_prog_CC="$ac_tool_prefix$ac_prog" + $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 + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; 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_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +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_prog_ac_ct_CC="$ac_prog" + $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 + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar lib "link -lib" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; 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_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +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_prog_AR="$ac_tool_prefix$ac_prog" + $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 + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar lib "link -lib" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; 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_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +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_prog_ac_ct_AR="$ac_prog" + $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 + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 +$as_echo_n "checking the archiver ($AR) interface... " >&6; } +if ${am_cv_ar_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + am_cv_ar_interface=ar + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int some_variable = 0; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=ar + else + am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=lib + else + am_cv_ar_interface=unknown + fi + fi + rm -f conftest.lib libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 +$as_echo "$am_cv_ar_interface" >&6; } + +case $am_cv_ar_interface in +ar) + ;; +lib) + # Microsoft lib, so override with the ar-lib wrapper script. + # FIXME: It is wrong to rewrite AR. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__AR in this case, + # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something + # similar. + AR="$am_aux_dir/ar-lib $AR" + ;; +unknown) + as_fn_error $? "could not determine $AR interface" "$LINENO" 5 + ;; +esac + + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.6' +macro_revision='2.4.6' + + + + + + + + + + + + + +ltmain=$ac_aux_dir/ltmain.sh + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case $ECHO in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + 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_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; 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_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +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_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $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 + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; 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_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +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_prog_ac_ct_DUMPBIN="$ac_prog" + $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 + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n "$lt_cv_sys_max_cmd_len"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi + ;; + darwin*) + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; 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_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +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_prog_OBJDUMP="${ac_tool_prefix}objdump" + $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 + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; 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_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +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_prog_ac_ct_OBJDUMP="objdump" + $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 + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; 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_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +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_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $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 + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; 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_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +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_prog_ac_ct_DLLTOOL="dlltool" + $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 + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; 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_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +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_prog_AR="$ac_tool_prefix$ac_prog" + $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 + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; 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_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +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_prog_ac_ct_AR="$ac_prog" + $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 + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; 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_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +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_prog_STRIP="${ac_tool_prefix}strip" + $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 + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; 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_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +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_prog_ac_ct_STRIP="strip" + $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 + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; 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_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +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_prog_RANLIB="${ac_tool_prefix}ranlib" + $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 + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; 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_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +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_prog_ac_ct_RANLIB="ranlib" + $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 + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +$as_echo "$with_sysroot" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +$as_echo_n "checking for a working dd... " >&6; } +if ${ac_cv_path_lt_DD+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +if test -z "$lt_DD"; then + ac_path_lt_DD_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + 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_prog in dd; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_lt_DD" || continue +if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi + $ac_path_lt_DD_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_lt_DD"; then + : + fi +else + ac_cv_path_lt_DD=$lt_DD +fi + +rm -f conftest.i conftest2.i conftest.out +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +$as_echo "$ac_cv_path_lt_DD" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +$as_echo_n "checking how to truncate binary pipes... " >&6; } +if ${lt_cv_truncate_bin+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +$as_echo "$lt_cv_truncate_bin" >&6; } + + + + + + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; 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_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +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_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $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 + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; 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_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +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_prog_ac_ct_MANIFEST_TOOL="mt" + $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 + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; 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_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +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_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $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 + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; 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_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +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_prog_ac_ct_DSYMUTIL="dsymutil" + $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 + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; 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_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +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_prog_NMEDIT="${ac_tool_prefix}nmedit" + $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 + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; 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_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +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_prog_ac_ct_NMEDIT="nmedit" + $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 + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; 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_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +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_prog_LIPO="${ac_tool_prefix}lipo" + $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 + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; 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_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +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_prog_ac_ct_LIPO="lipo" + $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 + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; 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_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +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_prog_OTOOL="${ac_tool_prefix}otool" + $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 + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; 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_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +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_prog_ac_ct_OTOOL="otool" + $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 + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; 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_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +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_prog_OTOOL64="${ac_tool_prefix}otool64" + $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 + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; 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_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +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_prog_ac_ct_OTOOL64="otool64" + $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 + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[012][,.]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options + + + + enable_dlopen=no + + + enable_win32_dll=no + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + pic_mode=default +fi + + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[5-9]*,yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +$as_echo_n "checking which variant of shared library versioning to provide... " >&6; } + +# Check whether --with-aix-soname was given. +if test "${with_aix_soname+set}" = set; then : + withval=$with_aix_soname; case $withval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else + if ${lt_cv_with_aix_soname+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_with_aix_soname=aix +fi + + with_aix_soname=$lt_cv_with_aix_soname +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +$as_echo "$with_aix_soname" >&6; } + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +func_cc_basename $compiler +cc_basename=$func_cc_basename_result + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/${ac_tool_prefix}file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC=$CC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test yes = "$GCC"; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + lt_prog_compiler_pic='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_pic_works"; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_static_works"; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test no = "$hard_links"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='$wl--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + export_dynamic_flag_spec='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test no = "$ld_shlibs"; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct=no + hardcode_direct_absolute=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + export_dynamic_flag_spec='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' $wl-bernotok' + allow_undefined_flag=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test yes = "$GCC"; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test yes = "$lt_cv_prog_compiler__b"; then + archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test yes = "$lt_cv_irix_exported_symbol"; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + link_all_deplibs=no + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + ld_shlibs=yes + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + else + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + osf3*) + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='$wl-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='$wl-z,text' + allow_undefined_flag='$wl-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='$wl-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test no = "$ld_shlibs" && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([A-Za-z]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + + + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test yes = "$hardcode_automatic"; then + + # We can hardcode non-existent directories. + if test no != "$hardcode_direct" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && + test no != "$hardcode_minus_L"; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test relink = "$hardcode_action" || + test yes = "$inherit_rpath"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen=shl_load +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen=dlopen +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report what library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + 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_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + + + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + + + + +# Check whether --enable-everything was given. +if test "${enable_everything+set}" = set; then : + enableval=$enable_everything; test "${enable_libwebpdecoder+set}" = "set" || enable_libwebpdecoder=$enableval + test "${enable_libwebpdemux+set}" = "set" || enable_libwebpdemux=$enableval + test "${enable_libwebpextras+set}" = "set" || enable_libwebpextras=$enableval + test "${enable_libwebpmux+set}" = "set" || enable_libwebpmux=$enableval +fi + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether asserts are enabled" >&5 +$as_echo_n "checking whether asserts are enabled... " >&6; } +# Check whether --enable-asserts was given. +if test "${enable_asserts+set}" = set; then : + enableval=$enable_asserts; +fi + +if test "x${enable_asserts-no}" = "xno"; then + AM_CPPFLAGS="${AM_CPPFLAGS} -DNDEBUG" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${enable_asserts-no}" >&5 +$as_echo "${enable_asserts-no}" >&6; } + + + +# Check whether --with-pkgconfigdir was given. +if test "${with_pkgconfigdir+set}" = set; then : + withval=$with_pkgconfigdir; pkgconfigdir="$withval" +else + pkgconfigdir='${libdir}/pkgconfig' +fi + + + + +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -fvisibility=hidden" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -fvisibility=hidden" >&5 +$as_echo_n "checking whether $CC supports -fvisibility=hidden... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -fvisibility=hidden" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wall" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5 +$as_echo_n "checking whether $CC supports -Wall... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wall" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wconstant-conversion" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wconstant-conversion" >&5 +$as_echo_n "checking whether $CC supports -Wconstant-conversion... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wconstant-conversion" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wdeclaration-after-statement" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wdeclaration-after-statement" >&5 +$as_echo_n "checking whether $CC supports -Wdeclaration-after-statement... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wdeclaration-after-statement" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wextra" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wextra" >&5 +$as_echo_n "checking whether $CC supports -Wextra... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wextra" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wfloat-conversion" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wfloat-conversion" >&5 +$as_echo_n "checking whether $CC supports -Wfloat-conversion... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wfloat-conversion" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wformat -Wformat-nonliteral" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wformat -Wformat-nonliteral" >&5 +$as_echo_n "checking whether $CC supports -Wformat -Wformat-nonliteral... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wformat -Wformat-nonliteral" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wformat -Wformat-security" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wformat -Wformat-security" >&5 +$as_echo_n "checking whether $CC supports -Wformat -Wformat-security... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wformat -Wformat-security" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wmissing-declarations" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wmissing-declarations" >&5 +$as_echo_n "checking whether $CC supports -Wmissing-declarations... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wmissing-declarations" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wmissing-prototypes" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wmissing-prototypes" >&5 +$as_echo_n "checking whether $CC supports -Wmissing-prototypes... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wmissing-prototypes" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wold-style-definition" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wold-style-definition" >&5 +$as_echo_n "checking whether $CC supports -Wold-style-definition... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wold-style-definition" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wparentheses-equality" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wparentheses-equality" >&5 +$as_echo_n "checking whether $CC supports -Wparentheses-equality... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wparentheses-equality" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wshadow" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wshadow" >&5 +$as_echo_n "checking whether $CC supports -Wshadow... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wshadow" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wshorten-64-to-32" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wshorten-64-to-32" >&5 +$as_echo_n "checking whether $CC supports -Wshorten-64-to-32... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wshorten-64-to-32" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wundef" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wundef" >&5 +$as_echo_n "checking whether $CC supports -Wundef... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wundef" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wunreachable-code" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wunreachable-code" >&5 +$as_echo_n "checking whether $CC supports -Wunreachable-code... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wunreachable-code" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wunused-but-set-variable" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wunused-but-set-variable" >&5 +$as_echo_n "checking whether $CC supports -Wunused-but-set-variable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wunused-but-set-variable" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wunused" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wunused" >&5 +$as_echo_n "checking whether $CC supports -Wunused... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wunused" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wvla" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wvla" >&5 +$as_echo_n "checking whether $CC supports -Wvla... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wvla" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62040 +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61622 +if test "$GCC" = "yes" ; then : + + gcc_version=`$CC -dumpversion` + gcc_wht_bug="" + case "$host_cpu" in + aarch64|arm64) + case "$gcc_version" in + 4.9|4.9.0|4.9.1) gcc_wht_bug=yes ;; + esac + esac + if test "$gcc_wht_bug" = "yes"; then : + + SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -frename-registers" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -frename-registers" >&5 +$as_echo_n "checking whether $CC supports -frename-registers... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -frename-registers" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +fi +fi +# Use -flax-vector-conversions, if available, when building intrinsics with +# older versions of gcc. The flag appeared in 4.3.x, but if backported, and +# -fno-lax-vector-conversions is set, errors may occur with the intrinsics +# files along with the older system includes, e.g., emmintrin.h. +# Originally observed with cc (GCC) 4.2.1 20070831 patched [FreeBSD] (9.3). +# https://bugs.chromium.org/p/webp/issues/detail?id=274 +if test "$GCC" = "yes" ; then : + + case "$host_cpu" in + amd64|i?86|x86_64) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + #if !defined(__clang__) && defined(__GNUC__) && \ + ((__GNUC__ << 8) | __GNUC_MINOR__) < 0x403 + #error old gcc + #endif + int main(void) { return 0; } + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -flax-vector-conversions" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -flax-vector-conversions" >&5 +$as_echo_n "checking whether $CC supports -flax-vector-conversions... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + INTRINSICS_CFLAGS="${INTRINSICS_CFLAGS} -flax-vector-conversions" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + esac +fi + + +# Check whether --enable-avx2 was given. +if test "${enable_avx2+set}" = set; then : + enableval=$enable_avx2; +fi + + +if test "x$enable_avx2" != "xno" -a "x$enable_sse4_1" != "xno" \ + -a "x$enable_sse2" != "xno"; then : + + AVX2_CFLAGS="$INTRINSICS_CFLAGS $AVX2_FLAGS" + SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -mavx2" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -mavx2" >&5 +$as_echo_n "checking whether $CC supports -mavx2... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AVX2_FLAGS="${AVX2_FLAGS} -mavx2" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" + if test -n "$AVX2_FLAGS"; then : + + SAVED_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $AVX2_FLAGS" + ac_fn_c_check_header_compile "$LINENO" "immintrin.h" "ac_cv_header_immintrin_h" " #ifndef __AVX2__ + #error avx2 is not enabled + #endif + +" +if test "x$ac_cv_header_immintrin_h" = xyes; then : + +$as_echo "#define WEBP_HAVE_AVX2 1" >>confdefs.h + +else + AVX2_FLAGS="" +fi + + + CFLAGS=$SAVED_CFLAGS +fi + +fi + +# Check whether --enable-sse4.1 was given. +if test "${enable_sse4_1+set}" = set; then : + enableval=$enable_sse4_1; +fi + + +if test "x$enable_sse4_1" != "xno" -a "x$enable_sse2" != "xno"; then : + + SSE41_FLAGS="$INTRINSICS_CFLAGS $SSE41_FLAGS" + SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -msse4.1" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -msse4.1" >&5 +$as_echo_n "checking whether $CC supports -msse4.1... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SSE41_FLAGS="${SSE41_FLAGS} -msse4.1" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" + if test -n "$SSE41_FLAGS"; then : + + SAVED_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $SSE41_FLAGS" + ac_fn_c_check_header_mongrel "$LINENO" "smmintrin.h" "ac_cv_header_smmintrin_h" "$ac_includes_default" +if test "x$ac_cv_header_smmintrin_h" = xyes; then : + +$as_echo "#define WEBP_HAVE_SSE41 1" >>confdefs.h + +else + SSE41_FLAGS="" +fi + + + CFLAGS=$SAVED_CFLAGS +fi + +fi + +# Check whether --enable-sse2 was given. +if test "${enable_sse2+set}" = set; then : + enableval=$enable_sse2; +fi + + +if test "x$enable_sse2" != "xno"; then : + + SSE2_FLAGS="$INTRINSICS_CFLAGS $SSE2_FLAGS" + SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -msse2" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -msse2" >&5 +$as_echo_n "checking whether $CC supports -msse2... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SSE2_FLAGS="${SSE2_FLAGS} -msse2" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" + if test -n "$SSE2_FLAGS"; then : + + SAVED_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $SSE2_FLAGS" + ac_fn_c_check_header_mongrel "$LINENO" "emmintrin.h" "ac_cv_header_emmintrin_h" "$ac_includes_default" +if test "x$ac_cv_header_emmintrin_h" = xyes; then : + +$as_echo "#define WEBP_HAVE_SSE2 1" >>confdefs.h + +else + SSE2_FLAGS="" +fi + + + CFLAGS=$SAVED_CFLAGS +fi + +fi + +# Check whether --enable-neon was given. +if test "${enable_neon+set}" = set; then : + enableval=$enable_neon; +fi + + +# Check whether --enable-neon_rtcd was given. +if test "${enable_neon_rtcd+set}" = set; then : + enableval=$enable_neon_rtcd; +fi + +# For ARM(7) hosts: +# Both NEON flags unset and NEON support detected = build all modules with NEON +# NEON detected with the use of -mfpu=neon = build only NEON modules with NEON +if test "x$enable_neon" != "xno"; then : + + case "$host_cpu" in + arm|armv7*) + # Test for NEON support without flags before falling back to -mfpu=neon + for flag in '' '-mfpu=neon'; do + LOCAL_NEON_FLAGS="$INTRINSICS_CFLAGS $NEON_FLAGS" + SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror $flag" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $flag" >&5 +$as_echo_n "checking whether $CC supports $flag... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + LOCAL_NEON_FLAGS="${LOCAL_NEON_FLAGS} $flag" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" + SAVED_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $LOCAL_NEON_FLAGS" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + int main(void) { + int8x8_t v = vdup_n_s8(0); + (void)v; + return 0; + } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + NEON_FLAGS="$(echo $LOCAL_NEON_FLAGS | $SED 's/^ *//')" + if test -n "$NEON_FLAGS"; then : + + if test "${host_os%%-*}" = "linux" -o \ + "x$enable_neon_rtcd" = "xno"; then : + + CFLAGS=$SAVED_CFLAGS + +$as_echo "#define WEBP_HAVE_NEON 1" >>confdefs.h + + break + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: NEON runtime cpu-detection is unavailable for ${host_os%%-*}. Force with CFLAGS=-mfpu=neon or --disable-neon-rtcd." >&5 +$as_echo "$as_me: WARNING: NEON runtime cpu-detection is unavailable for ${host_os%%-*}. Force with CFLAGS=-mfpu=neon or --disable-neon-rtcd." >&2;} + enable_neon_rtcd=no + NEON_FLAGS="" + +fi + +else + + CFLAGS=$SAVED_CFLAGS + +$as_echo "#define WEBP_HAVE_NEON 1" >>confdefs.h + + break + +fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$SAVED_CFLAGS + done + + if test -n "$NEON_FLAGS"; then : + + # If NEON is available and rtcd is disabled apply NEON_FLAGS globally. + if test "x$enable_neon_rtcd" = "xno"; then : + + AM_CFLAGS="$AM_CFLAGS $NEON_FLAGS" + NEON_FLAGS="" +else + +$as_echo "#define WEBP_HAVE_NEON_RTCD 1" >>confdefs.h + +fi +fi + + case "$host_os" in + *android*) for ac_header in cpu-features.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "cpu-features.h" "ac_cv_header_cpu_features_h" "$ac_includes_default" +if test "x$ac_cv_header_cpu_features_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_CPU_FEATURES_H 1 +_ACEOF + +fi + +done + ;; + esac + ;; + esac + +fi + + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_bswap16" >&5 +$as_echo_n "checking for __builtin_bswap16... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +(void)__builtin_bswap16(1u << 15) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_BUILTIN_BSWAP16 1" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext, + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_bswap32" >&5 +$as_echo_n "checking for __builtin_bswap32... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +(void)__builtin_bswap32(1u << 31) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_BUILTIN_BSWAP32 1" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext, + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_bswap64" >&5 +$as_echo_n "checking for __builtin_bswap64... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +(void)__builtin_bswap64(1ull << 63) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_BUILTIN_BSWAP64 1" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext, + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Check whether --enable-threading was given. +if test "${enable_threading+set}" = set; then : + enableval=$enable_threading; +else + enable_threading=yes +fi + +if test "$enable_threading" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for threading support..." >&5 +$as_echo "$as_me: checking for threading support..." >&6;} + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 +$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_join (); +int +main () +{ +return pthread_join (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +$as_echo "$ax_pthread_ok" >&6; } + if test x"$ax_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# ... -mt is also the pthreads flag for HP/aCC +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case ${host_os} in + solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthreads/-mt/ + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" + ;; + + darwin*) + ax_pthread_flags="-pthread $ax_pthread_flags" + ;; +esac + +# Clang doesn't consider unrecognized options an error unless we specify +# -Werror. We throw in some extra Clang-specific options to ensure that +# this doesn't happen for GCC, which also accepts -Werror. + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler needs -Werror to reject unknown flags" >&5 +$as_echo_n "checking if compiler needs -Werror to reject unknown flags... " >&6; } +save_CFLAGS="$CFLAGS" +ax_pthread_extra_flags="-Werror" +CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo(void); +int +main () +{ +foo() + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + ax_pthread_extra_flags= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +CFLAGS="$save_CFLAGS" + +if test x"$ax_pthread_ok" = xno; then +for flag in $ax_pthread_flags; do + + case $flag in + none) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 +$as_echo_n "checking whether pthreads work without any flags... " >&6; } + ;; + + -*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 +$as_echo_n "checking whether pthreads work with $flag... " >&6; } + PTHREAD_CFLAGS="$flag" + ;; + + pthread-config) + # Extract the first word of "pthread-config", so it can be a program name with args. +set dummy pthread-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_prog_ax_pthread_config+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ax_pthread_config"; then + ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test. +else +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_prog_ax_pthread_config="yes" + $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 + + test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no" +fi +fi +ax_pthread_config=$ac_cv_prog_ax_pthread_config +if test -n "$ax_pthread_config"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5 +$as_echo "$ax_pthread_config" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test x"$ax_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 +$as_echo_n "checking for the pthreads library -l$flag... " >&6; } + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + static void routine(void *a) { a = 0; } + static void *start_routine(void *a) { return a; } +int +main () +{ +pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +$as_echo "$ax_pthread_ok" >&6; } + if test "x$ax_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$ax_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 +$as_echo_n "checking for joinable pthread attribute... " >&6; } + attr_name=unknown + for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int attr = $attr; return attr /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + attr_name=$attr; break +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 +$as_echo "$attr_name" >&6; } + if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then + +cat >>confdefs.h <<_ACEOF +#define PTHREAD_CREATE_JOINABLE $attr_name +_ACEOF + + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 +$as_echo_n "checking if more special flags are required for pthreads... " >&6; } + flag=no + case ${host_os} in + aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";; + osf* | hpux*) flag="-D_REENTRANT";; + solaris*) + if test "$GCC" = "yes"; then + flag="-D_REENTRANT" + else + # TODO: What about Clang on Solaris? + flag="-mt -D_REENTRANT" + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag" >&5 +$as_echo "$flag" >&6; } + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5 +$as_echo_n "checking for PTHREAD_PRIO_INHERIT... " >&6; } +if ${ax_cv_PTHREAD_PRIO_INHERIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int i = PTHREAD_PRIO_INHERIT; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_PTHREAD_PRIO_INHERIT=yes +else + ax_cv_PTHREAD_PRIO_INHERIT=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 +$as_echo "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } + if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"; then : + +$as_echo "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h + +fi + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: compile with *_r variant + if test "x$GCC" != xyes; then + case $host_os in + aix*) + case "x/$CC" in #( + x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) : + #handle absolute path differently from PATH based program lookup + case "x$CC" in #( + x/*) : + if as_fn_executable_p ${CC}_r; then : + PTHREAD_CC="${CC}_r" +fi ;; #( + *) : + for ac_prog in ${CC}_r +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; 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_prog_PTHREAD_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$PTHREAD_CC"; then + ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. +else +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_prog_PTHREAD_CC="$ac_prog" + $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 + +fi +fi +PTHREAD_CC=$ac_cv_prog_PTHREAD_CC +if test -n "$PTHREAD_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 +$as_echo "$PTHREAD_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$PTHREAD_CC" && break +done +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + ;; +esac ;; #( + *) : + ;; +esac + ;; + esac + fi +fi + +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + + + + + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$ax_pthread_ok" = xyes; then + +$as_echo "#define WEBP_USE_THREAD 1" >>confdefs.h + + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + CC="$PTHREAD_CC" + + : +else + ax_pthread_ok=no + ac_fn_c_check_func "$LINENO" "_beginthreadex" "ac_cv_func__beginthreadex" +if test "x$ac_cv_func__beginthreadex" = xyes; then : + +$as_echo "#define WEBP_USE_THREAD 1" >>confdefs.h + +else + enable_threading=no +fi + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if threading is enabled... ${enable_threading-no}" >&5 +$as_echo "$as_me: checking if threading is enabled... ${enable_threading-no}" >&6;} + + +# Check whether --enable-gl was given. +if test "${enable_gl+set}" = set; then : + enableval=$enable_gl; +fi + +if test "x$enable_gl" != "xno"; then : + + GL_INCLUDES=""; GL_LIBS="" + +# Check whether --with-glincludedir was given. +if test "${with_glincludedir+set}" = set; then : + withval=$with_glincludedir; GL_INCLUDES="-I$withval" +fi + + +# Check whether --with-gllibdir was given. +if test "${with_gllibdir+set}" = set; then : + withval=$with_gllibdir; GL_LIBS="-L$withval" +fi + + + SAVED_CPPFLAGS=$CPPFLAGS + SAVED_LIBS=$LIBS + CPPFLAGS="$GL_INCLUDES $CPPFLAGS" + LIBS="$GL_LIBS $LIBS" + + glut_cflags="none" + glut_ldflags="none" + case $host_os in + darwin*) + # Special case for OSX builds. Append these to give the user a chance to + # override with --with-gl* + glut_cflags="$glut_cflags|-framework GLUT -framework OpenGL" + glut_ldflags="$glut_ldflags|-framework GLUT -framework OpenGL" + # quiet deprecation warnings for glut + SAVED_CFLAGS="$CFLAGS" + CFLAGS="-Werror -Wno-deprecated-declarations" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wno-deprecated-declarations" >&5 +$as_echo_n "checking whether $CC supports -Wno-deprecated-declarations... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + AM_CFLAGS="${AM_CFLAGS} -Wno-deprecated-declarations" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVED_CFLAGS" + ;; + esac + + GLUT_SAVED_CPPFLAGS="$CPPFLAGS" + SAVED_IFS="$IFS" + IFS="|" + for flag in $glut_cflags; do + # restore IFS immediately as the autoconf macros may need the default. + IFS="$SAVED_IFS" + unset ac_cv_header_GL_glut_h + unset ac_cv_header_OpenGL_glut_h + + case $flag in + none) ;; + *) CPPFLAGS="$flag $CPPFLAGS";; + esac + for ac_header in GL/glut.h GLUT/glut.h OpenGL/glut.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + glut_headers=yes; + test "$flag" = "none" || GL_INCLUDES="$CPPFLAGS"; + break +fi + +done + + CPPFLAGS="$GLUT_SAVED_CPPFLAGS" + test "$glut_headers" = "yes" && break + done + IFS="$SAVED_IFS" + + if test "$glut_headers" = "yes"; then + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + GLUT_SAVED_LDFLAGS="$LDFLAGS" + SAVED_IFS="$IFS" + IFS="|" + for flag in $glut_ldflags; do + # restore IFS immediately as the autoconf macros may need the default. + IFS="$SAVED_IFS" + unset ac_cv_search_glBegin + + case $flag in + none) ;; + *) LDFLAGS="$flag $LDFLAGS";; + esac + + # find libGL + GL_SAVED_LIBS="$LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing glBegin" >&5 +$as_echo_n "checking for library containing glBegin... " >&6; } +if ${ac_cv_search_glBegin+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char glBegin (); +int +main () +{ +return glBegin (); + ; + return 0; +} +_ACEOF +for ac_lib in '' GL OpenGL opengl32; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_glBegin=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_glBegin+:} false; then : + break +fi +done +if ${ac_cv_search_glBegin+:} false; then : + +else + ac_cv_search_glBegin=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_glBegin" >&5 +$as_echo "$ac_cv_search_glBegin" >&6; } +ac_res=$ac_cv_search_glBegin +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + LIBS="$GL_SAVED_LIBS" + + # A direct link to libGL may not be necessary on e.g., linux. + GLUT_SAVED_LIBS="$LIBS" + for lib in "" "-lglut" "-lglut $ac_cv_search_glBegin"; do + LIBS="$lib" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #ifdef __cplusplus + # define EXTERN_C extern "C" + #else + # define EXTERN_C + #endif + EXTERN_C char glOrtho(); + EXTERN_C char glutMainLoop(); + +int +main () +{ + + glOrtho(); + glutMainLoop(); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +$as_echo "#define WEBP_HAVE_GL 1" >>confdefs.h + + glut_support=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$glut_support" = "yes"; then + GL_LIBS="$LDFLAGS $lib" + break + fi + done + LIBS="$GLUT_SAVED_LIBS" + LDFLAGS="$GLUT_SAVED_LDFLAGS" + test "$glut_support" = "yes" && break + done + IFS="$SAVED_IFS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + fi + + + + CPPFLAGS=$SAVED_CPPFLAGS + LIBS=$SAVED_LIBS + + if test "$glut_support" = "yes" -a "$enable_libwebpdemux" = "yes"; then + build_vwebp=yes + fi + +fi + if test "$build_vwebp" = "yes"; then + BUILD_VWEBP_TRUE= + BUILD_VWEBP_FALSE='#' +else + BUILD_VWEBP_TRUE='#' + BUILD_VWEBP_FALSE= +fi + + + +# Check whether --enable-sdl was given. +if test "${enable_sdl+set}" = set; then : + enableval=$enable_sdl; +fi + +if test "x$enable_sdl" != "xno"; then : + + SDL_INCLUDES=""; SDL_LIBS="" + for ac_prog in sdl-config +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; 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_LIBSDL_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $LIBSDL_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_LIBSDL_CONFIG="$LIBSDL_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_LIBSDL_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 +LIBSDL_CONFIG=$ac_cv_path_LIBSDL_CONFIG +if test -n "$LIBSDL_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBSDL_CONFIG" >&5 +$as_echo "$LIBSDL_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$LIBSDL_CONFIG" && break +done + + if test -n "$LIBSDL_CONFIG"; then + SDL_INCLUDES=`$LIBSDL_CONFIG --cflags` + SDL_LIBS="`$LIBSDL_CONFIG --libs`" + fi + + +# Check whether --with-sdlincludedir was given. +if test "${with_sdlincludedir+set}" = set; then : + withval=$with_sdlincludedir; SDL_INCLUDES="-I$withval" +fi + + +# Check whether --with-sdllibdir was given. +if test "${with_sdllibdir+set}" = set; then : + withval=$with_sdllibdir; SDL_LIBS="-L$withval" +fi + + + sdl_header="no" + SAVED_CPPFLAGS=$CPPFLAGS + SAVED_LIBS=$LIBS + CPPFLAGS="$SDL_INCLUDES $CPPFLAGS" + LIBS="$SDL_LIBS $LIBS" + ac_fn_c_check_header_mongrel "$LINENO" "SDL/SDL.h" "ac_cv_header_SDL_SDL_h" "$ac_includes_default" +if test "x$ac_cv_header_SDL_SDL_h" = xyes; then : + sdl_header="SDL/SDL.h" +else + ac_fn_c_check_header_mongrel "$LINENO" "SDL.h" "ac_cv_header_SDL_h" "$ac_includes_default" +if test "x$ac_cv_header_SDL_h" = xyes; then : + sdl_header="SDL.h" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SDL library not available - no sdl.h" >&5 +$as_echo "$as_me: WARNING: SDL library not available - no sdl.h" >&2;} +fi + + +fi + + + if test x"$sdl_header" != "xno"; then + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + SDL_SAVED_LIBS="$LIBS" + for lib in "" "-lSDL" "-lSDLmain -lSDL"; do + LIBS="$SDL_SAVED_LIBS $lib" + # Perform a full link to ensure SDL_main is resolved if needed. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <$sdl_header> + int main(int argc, char** argv) { + SDL_Init(0); + return 0; + } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + SDL_LIBS="$LDFLAGS $LIBS" + SDL_INCLUDES="$SDL_INCLUDES -DWEBP_HAVE_SDL" + +$as_echo "#define WEBP_HAVE_SDL 1" >>confdefs.h + + sdl_support=yes + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test x"$sdl_support" = "xyes"; then + break + fi + done + # LIBS is restored by LIBCHECK_EPILOGUE + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + if test x"$sdl_header" = "xSDL.h"; then + SDL_INCLUDES="$SDL_INCLUDES -DWEBP_HAVE_JUST_SDL_H" + fi + fi + + + CPPFLAGS=$SAVED_CPPFLAGS + LIBS=$SAVED_LIBS + + if test x"$sdl_support" = "xyes"; then + build_vwebp_sdl=yes + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Optional SDL library not found" >&5 +$as_echo "$as_me: WARNING: Optional SDL library not found" >&2;} + fi + +fi + + if test "$build_vwebp_sdl" = "yes"; then + BUILD_VWEBP_SDL_TRUE= + BUILD_VWEBP_SDL_FALSE='#' +else + BUILD_VWEBP_SDL_TRUE='#' + BUILD_VWEBP_SDL_FALSE= +fi + + + +# Check whether --enable-png was given. +if test "${enable_png+set}" = set; then : + enableval=$enable_png; +fi + +if test "x$enable_png" != "xno"; then : + + PNG_INCLUDES=""; PNG_LIBS="" + for ac_prog in libpng-config libpng16-config libpng15-config libpng14-config \ + libpng12-config +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; 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_LIBPNG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $LIBPNG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_LIBPNG_CONFIG="$LIBPNG_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_LIBPNG_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 +LIBPNG_CONFIG=$ac_cv_path_LIBPNG_CONFIG +if test -n "$LIBPNG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBPNG_CONFIG" >&5 +$as_echo "$LIBPNG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$LIBPNG_CONFIG" && break +done + + if test -n "$LIBPNG_CONFIG"; then + PNG_INCLUDES=`$LIBPNG_CONFIG --cflags` + PNG_LIBS="`$LIBPNG_CONFIG --ldflags`" + fi + + +# Check whether --with-pngincludedir was given. +if test "${with_pngincludedir+set}" = set; then : + withval=$with_pngincludedir; PNG_INCLUDES="-I$withval" +fi + + +# Check whether --with-pnglibdir was given. +if test "${with_pnglibdir+set}" = set; then : + withval=$with_pnglibdir; PNG_LIBS="-L$withval" +fi + + + SAVED_CPPFLAGS=$CPPFLAGS + SAVED_LIBS=$LIBS + CPPFLAGS="$PNG_INCLUDES $CPPFLAGS" + LIBS="$PNG_LIBS $LIBS" + ac_fn_c_check_header_mongrel "$LINENO" "png.h" "ac_cv_header_png_h" "$ac_includes_default" +if test "x$ac_cv_header_png_h" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing png_get_libpng_ver" >&5 +$as_echo_n "checking for library containing png_get_libpng_ver... " >&6; } +if ${ac_cv_search_png_get_libpng_ver+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char png_get_libpng_ver (); +int +main () +{ +return png_get_libpng_ver (); + ; + return 0; +} +_ACEOF +for ac_lib in '' png; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $MATH_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_png_get_libpng_ver=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_png_get_libpng_ver+:} false; then : + break +fi +done +if ${ac_cv_search_png_get_libpng_ver+:} false; then : + +else + ac_cv_search_png_get_libpng_ver=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_png_get_libpng_ver" >&5 +$as_echo "$ac_cv_search_png_get_libpng_ver" >&6; } +ac_res=$ac_cv_search_png_get_libpng_ver +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + test "$ac_cv_search_png_get_libpng_ver" = "none required" \ + || PNG_LIBS="$PNG_LIBS $ac_cv_search_png_get_libpng_ver" + PNG_INCLUDES="$PNG_INCLUDES -DWEBP_HAVE_PNG" + +$as_echo "#define WEBP_HAVE_PNG 1" >>confdefs.h + + png_support=yes + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Optional png library not found" >&5 +$as_echo "$as_me: WARNING: Optional png library not found" >&2;} + PNG_LIBS="" + PNG_INCLUDES="" + +fi + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: png library not available - no png.h" >&5 +$as_echo "$as_me: WARNING: png library not available - no png.h" >&2;} + PNG_LIBS="" + PNG_INCLUDES="" + +fi + + + + + CPPFLAGS=$SAVED_CPPFLAGS + LIBS=$SAVED_LIBS + +fi + + +# Check whether --enable-jpeg was given. +if test "${enable_jpeg+set}" = set; then : + enableval=$enable_jpeg; +fi + +if test "x$enable_jpeg" != "xno"; then : + + JPEG_INCLUDES=""; JPEG_LIBS="" + +# Check whether --with-jpegincludedir was given. +if test "${with_jpegincludedir+set}" = set; then : + withval=$with_jpegincludedir; JPEG_INCLUDES="-I$withval" +fi + + +# Check whether --with-jpeglibdir was given. +if test "${with_jpeglibdir+set}" = set; then : + withval=$with_jpeglibdir; JPEG_LIBS="-L$withval" +fi + + + SAVED_CPPFLAGS=$CPPFLAGS + SAVED_LIBS=$LIBS + CPPFLAGS="$JPEG_INCLUDES $CPPFLAGS" + LIBS="$JPEG_LIBS $LIBS" + ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default" +if test "x$ac_cv_header_jpeglib_h" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_set_defaults in -ljpeg" >&5 +$as_echo_n "checking for jpeg_set_defaults in -ljpeg... " >&6; } +if ${ac_cv_lib_jpeg_jpeg_set_defaults+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ljpeg $MATH_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char jpeg_set_defaults (); +int +main () +{ +return jpeg_set_defaults (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_jpeg_jpeg_set_defaults=yes +else + ac_cv_lib_jpeg_jpeg_set_defaults=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_set_defaults" >&5 +$as_echo "$ac_cv_lib_jpeg_jpeg_set_defaults" >&6; } +if test "x$ac_cv_lib_jpeg_jpeg_set_defaults" = xyes; then : + JPEG_LIBS="$JPEG_LIBS -ljpeg" + JPEG_INCLUDES="$JPEG_INCLUDES -DWEBP_HAVE_JPEG" + +$as_echo "#define WEBP_HAVE_JPEG 1" >>confdefs.h + + jpeg_support=yes + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Optional jpeg library not found" >&5 +$as_echo "$as_me: WARNING: Optional jpeg library not found" >&2;} +fi + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: jpeg library not available - no jpeglib.h" >&5 +$as_echo "$as_me: WARNING: jpeg library not available - no jpeglib.h" >&2;} + +fi + + + + + CPPFLAGS=$SAVED_CPPFLAGS + LIBS=$SAVED_LIBS + +fi + + +# Check whether --enable-tiff was given. +if test "${enable_tiff+set}" = set; then : + enableval=$enable_tiff; +fi + +if test "x$enable_tiff" != "xno"; then : + + TIFF_INCLUDES=""; TIFF_LIBS="" + +# Check whether --with-tiffincludedir was given. +if test "${with_tiffincludedir+set}" = set; then : + withval=$with_tiffincludedir; TIFF_INCLUDES="-I$withval" +fi + + +# Check whether --with-tifflibdir was given. +if test "${with_tifflibdir+set}" = set; then : + withval=$with_tifflibdir; TIFF_LIBS="-L$withval" +fi + + + SAVED_CPPFLAGS=$CPPFLAGS + SAVED_LIBS=$LIBS + CPPFLAGS="$TIFF_INCLUDES $CPPFLAGS" + LIBS="$TIFF_LIBS $LIBS" + ac_fn_c_check_header_mongrel "$LINENO" "tiffio.h" "ac_cv_header_tiffio_h" "$ac_includes_default" +if test "x$ac_cv_header_tiffio_h" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIFFGetVersion in -ltiff" >&5 +$as_echo_n "checking for TIFFGetVersion in -ltiff... " >&6; } +if ${ac_cv_lib_tiff_TIFFGetVersion+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ltiff $MATH_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char TIFFGetVersion (); +int +main () +{ +return TIFFGetVersion (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_tiff_TIFFGetVersion=yes +else + ac_cv_lib_tiff_TIFFGetVersion=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tiff_TIFFGetVersion" >&5 +$as_echo "$ac_cv_lib_tiff_TIFFGetVersion" >&6; } +if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then : + TIFF_LIBS="$TIFF_LIBS -ltiff" + TIFF_INCLUDES="$TIFF_INCLUDES -DWEBP_HAVE_TIFF" + +$as_echo "#define WEBP_HAVE_TIFF 1" >>confdefs.h + + tiff_support=yes + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Optional tiff library not found" >&5 +$as_echo "$as_me: WARNING: Optional tiff library not found" >&2;} +fi + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: tiff library not available - no tiffio.h" >&5 +$as_echo "$as_me: WARNING: tiff library not available - no tiffio.h" >&2;} + +fi + + + + + CPPFLAGS=$SAVED_CPPFLAGS + LIBS=$SAVED_LIBS + +fi + + +# Check whether --enable-gif was given. +if test "${enable_gif+set}" = set; then : + enableval=$enable_gif; +fi + +if test "x$enable_gif" != "xno"; then : + + GIF_INCLUDES=""; GIF_LIBS="" + +# Check whether --with-gifincludedir was given. +if test "${with_gifincludedir+set}" = set; then : + withval=$with_gifincludedir; GIF_INCLUDES="-I$withval" +fi + + +# Check whether --with-giflibdir was given. +if test "${with_giflibdir+set}" = set; then : + withval=$with_giflibdir; GIF_LIBS="-L$withval" +fi + + + SAVED_CPPFLAGS=$CPPFLAGS + SAVED_LIBS=$LIBS + CPPFLAGS="$GIF_INCLUDES $CPPFLAGS" + LIBS="$GIF_LIBS $LIBS" + ac_fn_c_check_header_mongrel "$LINENO" "gif_lib.h" "ac_cv_header_gif_lib_h" "$ac_includes_default" +if test "x$ac_cv_header_gif_lib_h" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DGifOpenFileHandle in -lgif" >&5 +$as_echo_n "checking for DGifOpenFileHandle in -lgif... " >&6; } +if ${ac_cv_lib_gif_DGifOpenFileHandle+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lgif $MATH_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char DGifOpenFileHandle (); +int +main () +{ +return DGifOpenFileHandle (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_gif_DGifOpenFileHandle=yes +else + ac_cv_lib_gif_DGifOpenFileHandle=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_DGifOpenFileHandle" >&5 +$as_echo "$ac_cv_lib_gif_DGifOpenFileHandle" >&6; } +if test "x$ac_cv_lib_gif_DGifOpenFileHandle" = xyes; then : + GIF_LIBS="$GIF_LIBS -lgif" + +$as_echo "#define WEBP_HAVE_GIF 1" >>confdefs.h + + gif_support=yes + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Optional gif library not found" >&5 +$as_echo "$as_me: WARNING: Optional gif library not found" >&2;} +fi + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: gif library not available - no gif_lib.h" >&5 +$as_echo "$as_me: WARNING: gif library not available - no gif_lib.h" >&2;} + +fi + + + + + CPPFLAGS=$SAVED_CPPFLAGS + LIBS=$SAVED_LIBS + + if test "$gif_support" = "yes" -a \ + "$enable_libwebpdemux" = "yes"; then + build_anim_diff=yes + fi + + if test "$gif_support" = "yes" -a \ + "$enable_libwebpmux" = "yes"; then + build_gif2webp=yes + fi + +fi + if test "${build_anim_diff}" = "yes"; then + BUILD_ANIMDIFF_TRUE= + BUILD_ANIMDIFF_FALSE='#' +else + BUILD_ANIMDIFF_TRUE='#' + BUILD_ANIMDIFF_FALSE= +fi + + if test "${build_gif2webp}" = "yes"; then + BUILD_GIF2WEBP_TRUE= + BUILD_GIF2WEBP_FALSE='#' +else + BUILD_GIF2WEBP_TRUE='#' + BUILD_GIF2WEBP_FALSE= +fi + + +if test "$enable_libwebpdemux" = "yes" -a "$enable_libwebpmux" = "yes"; then + build_img2webp=yes +fi + if test "${build_img2webp}" = "yes"; then + BUILD_IMG2WEBP_TRUE= + BUILD_IMG2WEBP_FALSE='#' +else + BUILD_IMG2WEBP_TRUE='#' + BUILD_IMG2WEBP_FALSE= +fi + + +if test "$enable_libwebpmux" = "yes"; then + build_webpinfo=yes +fi + if test "${build_webpinfo}" = "yes"; then + BUILD_WEBPINFO_TRUE= + BUILD_WEBPINFO_FALSE='#' +else + BUILD_WEBPINFO_TRUE='#' + BUILD_WEBPINFO_FALSE= +fi + + + +# Check whether --enable-wic was given. +if test "${enable_wic+set}" = set; then : + enableval=$enable_wic; +else + enable_wic=yes +fi + + +case $host_os in +mingw*) +if test "$enable_wic" = "yes"; then + for ac_header in wincodec.h shlwapi.h windows.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + if test "$ac_cv_header_wincodec_h" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Windows Imaging Component support" >&5 +$as_echo_n "checking for Windows Imaging Component support... " >&6; } + SAVED_LIBS=$LIBS + LIBS="-lshlwapi -lole32 $LIBS" + # match include structure from [cd]webp.c + wic_headers=" + #define INITGUID + #define CINTERFACE + #define COBJMACROS + #define _WIN32_IE 0x500 + + #include + #include + #include + " + # test for functions from each lib and the GUID is created properly + wic_main=" + int main(void) { + CLSID_WICImagingFactory; + CoInitialize(NULL); + SHCreateStreamOnFile(NULL, 0, NULL); + return 0; + } + " + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $wic_headers + $wic_main +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + wic_support=yes +else + wic_support=no + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + test "$wic_support" = "yes" || LIBS=$SAVED_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${wic_support-no}" >&5 +$as_echo "${wic_support-no}" >&6; } + fi +fi +esac + + +USE_SWAP_16BIT_CSP="" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-swap-16bit-csp option is specified" >&5 +$as_echo_n "checking if --enable-swap-16bit-csp option is specified... " >&6; } +# Check whether --enable-swap-16bit-csp was given. +if test "${enable_swap_16bit_csp+set}" = set; then : + enableval=$enable_swap_16bit_csp; +fi + +if test "$enable_swap_16bit_csp" = "yes"; then + USE_SWAP_16BIT_CSP="-DWEBP_SWAP_16BIT_CSP=1" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${enable_swap_16bit_csp-no}" >&5 +$as_echo "${enable_swap_16bit_csp-no}" >&6; } + + + + +$as_echo "#define WEBP_NEAR_LOSSLESS 1" >>confdefs.h + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if --disable-near-lossless option is specified" >&5 +$as_echo_n "checking if --disable-near-lossless option is specified... " >&6; } +# Check whether --enable-near_lossless was given. +if test "${enable_near_lossless+set}" = set; then : + enableval=$enable_near_lossless; +else + enable_near_lossless=yes +fi + +if test "$enable_near_lossless" = "no"; then + +$as_echo "#define WEBP_NEAR_LOSSLESS 0" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libwebpmux is to be built" >&5 +$as_echo_n "checking whether libwebpmux is to be built... " >&6; } +# Check whether --enable-libwebpmux was given. +if test "${enable_libwebpmux+set}" = set; then : + enableval=$enable_libwebpmux; +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${enable_libwebpmux-no}" >&5 +$as_echo "${enable_libwebpmux-no}" >&6; } + if test "$enable_libwebpmux" = "yes"; then + WANT_MUX_TRUE= + WANT_MUX_FALSE='#' +else + WANT_MUX_TRUE='#' + WANT_MUX_FALSE= +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libwebpdemux is to be built" >&5 +$as_echo_n "checking whether libwebpdemux is to be built... " >&6; } +# Check whether --enable-libwebpdemux was given. +if test "${enable_libwebpdemux+set}" = set; then : + enableval=$enable_libwebpdemux; +else + enable_libwebpdemux=yes +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${enable_libwebpdemux-no}" >&5 +$as_echo "${enable_libwebpdemux-no}" >&6; } + if test "$enable_libwebpdemux" = "yes"; then + WANT_DEMUX_TRUE= + WANT_DEMUX_FALSE='#' +else + WANT_DEMUX_TRUE='#' + WANT_DEMUX_FALSE= +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether decoder library is to be built" >&5 +$as_echo_n "checking whether decoder library is to be built... " >&6; } +# Check whether --enable-libwebpdecoder was given. +if test "${enable_libwebpdecoder+set}" = set; then : + enableval=$enable_libwebpdecoder; +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${enable_libwebpdecoder-no}" >&5 +$as_echo "${enable_libwebpdecoder-no}" >&6; } + if test "$enable_libwebpdecoder" = "yes"; then + BUILD_LIBWEBPDECODER_TRUE= + BUILD_LIBWEBPDECODER_FALSE='#' +else + BUILD_LIBWEBPDECODER_TRUE='#' + BUILD_LIBWEBPDECODER_FALSE= +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libwebpextras is to be built" >&5 +$as_echo_n "checking whether libwebpextras is to be built... " >&6; } +# Check whether --enable-libwebpextras was given. +if test "${enable_libwebpextras+set}" = set; then : + enableval=$enable_libwebpextras; +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${enable_libwebpextras-no}" >&5 +$as_echo "${enable_libwebpextras-no}" >&6; } + if test "$enable_libwebpextras" = "yes"; then + WANT_EXTRAS_TRUE= + WANT_EXTRAS_FALSE='#' +else + WANT_EXTRAS_TRUE='#' + WANT_EXTRAS_FALSE= +fi + + + + +ac_config_headers="$ac_config_headers src/webp/config.h" + +ac_config_files="$ac_config_files Makefile src/Makefile man/Makefile examples/Makefile extras/Makefile imageio/Makefile src/dec/Makefile src/enc/Makefile src/dsp/Makefile src/demux/Makefile src/mux/Makefile src/utils/Makefile src/libwebp.pc src/libwebpdecoder.pc src/demux/libwebpdemux.pc src/mux/libwebpmux.pc" + + + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +if test -z "${BUILD_VWEBP_TRUE}" && test -z "${BUILD_VWEBP_FALSE}"; then + as_fn_error $? "conditional \"BUILD_VWEBP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_VWEBP_SDL_TRUE}" && test -z "${BUILD_VWEBP_SDL_FALSE}"; then + as_fn_error $? "conditional \"BUILD_VWEBP_SDL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_ANIMDIFF_TRUE}" && test -z "${BUILD_ANIMDIFF_FALSE}"; then + as_fn_error $? "conditional \"BUILD_ANIMDIFF\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_GIF2WEBP_TRUE}" && test -z "${BUILD_GIF2WEBP_FALSE}"; then + as_fn_error $? "conditional \"BUILD_GIF2WEBP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_IMG2WEBP_TRUE}" && test -z "${BUILD_IMG2WEBP_FALSE}"; then + as_fn_error $? "conditional \"BUILD_IMG2WEBP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_WEBPINFO_TRUE}" && test -z "${BUILD_WEBPINFO_FALSE}"; then + as_fn_error $? "conditional \"BUILD_WEBPINFO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${WANT_MUX_TRUE}" && test -z "${WANT_MUX_FALSE}"; then + as_fn_error $? "conditional \"WANT_MUX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${WANT_DEMUX_TRUE}" && test -z "${WANT_DEMUX_FALSE}"; then + as_fn_error $? "conditional \"WANT_DEMUX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_LIBWEBPDECODER_TRUE}" && test -z "${BUILD_LIBWEBPDECODER_FALSE}"; then + as_fn_error $? "conditional \"BUILD_LIBWEBPDECODER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${WANT_EXTRAS_TRUE}" && test -z "${WANT_EXTRAS_FALSE}"; then + as_fn_error $? "conditional \"WANT_EXTRAS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by libwebp $as_me 1.0.0, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to . +libwebp home page: ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +libwebp config.status 1.0.0 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' +configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_import \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_cv_nm_interface \ +nm_file_list_spec \ +lt_cv_truncate_bin \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +configure_time_dlsearch_path \ +configure_time_lt_sys_library_path; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' + +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile' + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "src/webp/config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/webp/config.h" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; + "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; + "extras/Makefile") CONFIG_FILES="$CONFIG_FILES extras/Makefile" ;; + "imageio/Makefile") CONFIG_FILES="$CONFIG_FILES imageio/Makefile" ;; + "src/dec/Makefile") CONFIG_FILES="$CONFIG_FILES src/dec/Makefile" ;; + "src/enc/Makefile") CONFIG_FILES="$CONFIG_FILES src/enc/Makefile" ;; + "src/dsp/Makefile") CONFIG_FILES="$CONFIG_FILES src/dsp/Makefile" ;; + "src/demux/Makefile") CONFIG_FILES="$CONFIG_FILES src/demux/Makefile" ;; + "src/mux/Makefile") CONFIG_FILES="$CONFIG_FILES src/mux/Makefile" ;; + "src/utils/Makefile") CONFIG_FILES="$CONFIG_FILES src/utils/Makefile" ;; + "src/libwebp.pc") CONFIG_FILES="$CONFIG_FILES src/libwebp.pc" ;; + "src/libwebpdecoder.pc") CONFIG_FILES="$CONFIG_FILES src/libwebpdecoder.pc" ;; + "src/demux/libwebpdemux.pc") CONFIG_FILES="$CONFIG_FILES src/demux/libwebpdemux.pc" ;; + "src/mux/libwebpmux.pc") CONFIG_FILES="$CONFIG_FILES src/mux/libwebpmux.pc" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# The names of the tagged configurations supported by this script. +available_tags='' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and where our libraries should be installed. +lt_sysroot=$lt_sysroot + +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain=$ac_aux_dir/ltmain.sh + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: +WebP Configuration Summary +-------------------------- + +Shared libraries: ${enable_shared} +Static libraries: ${enable_static} +Threading support: ${enable_threading-no} +libwebp: yes +libwebpdecoder: ${enable_libwebpdecoder-no} +libwebpdemux: ${enable_libwebpdemux-no} +libwebpmux: ${enable_libwebpmux-no} +libwebpextras: ${enable_libwebpextras-no} + +Tools: +cwebp : ${enable_libwebpdemux-no} + Input format support + ==================== + JPEG : ${jpeg_support-no} + PNG : ${png_support-no} + TIFF : ${tiff_support-no} + WIC : ${wic_support-no} +dwebp : ${enable_libwebpdemux-no} + Output format support + ===================== + PNG : ${png_support-no} + WIC : ${wic_support-no} +GIF support : ${gif_support-no} +anim_diff : ${build_anim_diff-no} +gif2webp : ${build_gif2webp-no} +img2webp : ${build_img2webp-no} +webpmux : ${enable_libwebpmux-no} +vwebp : ${build_vwebp-no} +webpinfo : ${build_webpinfo-no} +SDL support : ${sdl_support-no} +vwebp_sdl : ${build_vwebp_sdl-no} +" >&5 +$as_echo "$as_me: +WebP Configuration Summary +-------------------------- + +Shared libraries: ${enable_shared} +Static libraries: ${enable_static} +Threading support: ${enable_threading-no} +libwebp: yes +libwebpdecoder: ${enable_libwebpdecoder-no} +libwebpdemux: ${enable_libwebpdemux-no} +libwebpmux: ${enable_libwebpmux-no} +libwebpextras: ${enable_libwebpextras-no} + +Tools: +cwebp : ${enable_libwebpdemux-no} + Input format support + ==================== + JPEG : ${jpeg_support-no} + PNG : ${png_support-no} + TIFF : ${tiff_support-no} + WIC : ${wic_support-no} +dwebp : ${enable_libwebpdemux-no} + Output format support + ===================== + PNG : ${png_support-no} + WIC : ${wic_support-no} +GIF support : ${gif_support-no} +anim_diff : ${build_anim_diff-no} +gif2webp : ${build_gif2webp-no} +img2webp : ${build_img2webp-no} +webpmux : ${enable_libwebpmux-no} +vwebp : ${build_vwebp-no} +webpinfo : ${build_webpinfo-no} +SDL support : ${sdl_support-no} +vwebp_sdl : ${build_vwebp_sdl-no} +" >&6;} diff --git a/external/libwebp-0.6.0/configure.ac b/external/libwebp-1.0.0/configure.ac similarity index 87% rename from external/libwebp-0.6.0/configure.ac rename to external/libwebp-1.0.0/configure.ac index 454a7f38..896e5ff7 100644 --- a/external/libwebp-0.6.0/configure.ac +++ b/external/libwebp-1.0.0/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([libwebp], [0.6.0], +AC_INIT([libwebp], [1.0.0], [https://bugs.chromium.org/p/webp],, [http://developers.google.com/speed/webp]) AC_CANONICAL_HOST @@ -67,6 +67,7 @@ AC_DEFUN([TEST_AND_ADD_CFLAGS], CFLAGS="$SAVED_CFLAGS"]) TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-fvisibility=hidden]) TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wall]) +TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wconstant-conversion]) TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wdeclaration-after-statement]) TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wextra]) TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wfloat-conversion]) @@ -75,8 +76,10 @@ TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wformat -Wformat-security]) TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wmissing-declarations]) TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wmissing-prototypes]) TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wold-style-definition]) +TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wparentheses-equality]) TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wshadow]) TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wshorten-64-to-32]) +TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wundef]) TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wunreachable-code]) TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wunused-but-set-variable]) TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wunused]) @@ -241,9 +244,13 @@ AS_IF([test "x$enable_neon" != "xno"], [ NEON_FLAGS=""], [AC_DEFINE(WEBP_HAVE_NEON_RTCD, [1], [Set to 1 if runtime detection of NEON is enabled])])]) - ;; - esac - AC_SUBST([NEON_FLAGS])]) + + case "$host_os" in + *android*) AC_CHECK_HEADERS([cpu-features.h]) ;; + esac + ;; + esac + AC_SUBST([NEON_FLAGS])]) dnl === CLEAR_LIBVARS([var_pfx]) dnl === Clears _{INCLUDES,LIBS}. @@ -340,6 +347,8 @@ AS_IF([test "x$enable_gl" != "xno"], [ # override with --with-gl* glut_cflags="$glut_cflags|-framework GLUT -framework OpenGL" glut_ldflags="$glut_ldflags|-framework GLUT -framework OpenGL" + # quiet deprecation warnings for glut + TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-Wno-deprecated-declarations]) ;; esac @@ -428,6 +437,67 @@ AS_IF([test "x$enable_gl" != "xno"], [ ]) AM_CONDITIONAL([BUILD_VWEBP], [test "$build_vwebp" = "yes"]) +dnl === check for SDL support === + +AC_ARG_ENABLE([sdl], + AS_HELP_STRING([--disable-sdl], + [Disable detection of SDL support + @<:@default=auto@:>@])) +AS_IF([test "x$enable_sdl" != "xno"], [ + CLEAR_LIBVARS([SDL]) + AC_PATH_PROGS([LIBSDL_CONFIG], [sdl-config]) + if test -n "$LIBSDL_CONFIG"; then + SDL_INCLUDES=`$LIBSDL_CONFIG --cflags` + SDL_LIBS="`$LIBSDL_CONFIG --libs`" + fi + + WITHLIB_OPTION([sdl], [SDL]) + + sdl_header="no" + LIBCHECK_PROLOGUE([SDL]) + AC_CHECK_HEADER([SDL/SDL.h], [sdl_header="SDL/SDL.h"], + [AC_CHECK_HEADER([SDL.h], [sdl_header="SDL.h"], + [AC_MSG_WARN(SDL library not available - no sdl.h)])]) + if test x"$sdl_header" != "xno"; then + AC_LANG_PUSH(C) + SDL_SAVED_LIBS="$LIBS" + for lib in "" "-lSDL" "-lSDLmain -lSDL"; do + LIBS="$SDL_SAVED_LIBS $lib" + # Perform a full link to ensure SDL_main is resolved if needed. + AC_LINK_IFELSE( + [AC_LANG_SOURCE([ + #include <$sdl_header> + int main(int argc, char** argv) { + SDL_Init(0); + return 0; + }])], + [SDL_LIBS="$LDFLAGS $LIBS" + SDL_INCLUDES="$SDL_INCLUDES -DWEBP_HAVE_SDL" + AC_DEFINE(WEBP_HAVE_SDL, [1], + [Set to 1 if SDL library is installed]) + sdl_support=yes] + ) + if test x"$sdl_support" = "xyes"; then + break + fi + done + # LIBS is restored by LIBCHECK_EPILOGUE + AC_LANG_POP + if test x"$sdl_header" = "xSDL.h"; then + SDL_INCLUDES="$SDL_INCLUDES -DWEBP_HAVE_JUST_SDL_H" + fi + fi + LIBCHECK_EPILOGUE([SDL]) + + if test x"$sdl_support" = "xyes"; then + build_vwebp_sdl=yes + else + AC_MSG_WARN(Optional SDL library not found) + fi +]) + +AM_CONDITIONAL([BUILD_VWEBP_SDL], [test "$build_vwebp_sdl" = "yes"]) + dnl === check for PNG support === AC_ARG_ENABLE([png], AS_HELP_STRING([--disable-png], @@ -545,7 +615,7 @@ AS_IF([test "x$enable_gif" != "xno"], [ if test "$gif_support" = "yes" -a \ "$enable_libwebpdemux" = "yes"; then - build_animdiff=yes + build_anim_diff=yes fi if test "$gif_support" = "yes" -a \ @@ -553,14 +623,19 @@ AS_IF([test "x$enable_gif" != "xno"], [ build_gif2webp=yes fi ]) -AM_CONDITIONAL([BUILD_ANIMDIFF], [test "${build_animdiff}" = "yes"]) +AM_CONDITIONAL([BUILD_ANIMDIFF], [test "${build_anim_diff}" = "yes"]) AM_CONDITIONAL([BUILD_GIF2WEBP], [test "${build_gif2webp}" = "yes"]) -if test "$enable_libwebpmux" = "yes"; then +if test "$enable_libwebpdemux" = "yes" -a "$enable_libwebpmux" = "yes"; then build_img2webp=yes fi AM_CONDITIONAL([BUILD_IMG2WEBP], [test "${build_img2webp}" = "yes"]) +if test "$enable_libwebpmux" = "yes"; then + build_webpinfo=yes +fi +AM_CONDITIONAL([BUILD_WEBPINFO], [test "${build_webpinfo}" = "yes"]) + dnl === check for WIC support === AC_ARG_ENABLE([wic], @@ -613,7 +688,7 @@ if test "$enable_wic" = "yes"; then fi esac -dnl === If --enable-swap-16bit-csp is defined, add -DWEBP_SWAP_16BIT_CSP +dnl === If --enable-swap-16bit-csp is defined, add -DWEBP_SWAP_16BIT_CSP=1 USE_SWAP_16BIT_CSP="" AC_MSG_CHECKING(if --enable-swap-16bit-csp option is specified) @@ -621,23 +696,25 @@ AC_ARG_ENABLE([swap-16bit-csp], AS_HELP_STRING([--enable-swap-16bit-csp], [Enable byte swap for 16 bit colorspaces])) if test "$enable_swap_16bit_csp" = "yes"; then - USE_SWAP_16BIT_CSP="-DWEBP_SWAP_16BIT_CSP" + USE_SWAP_16BIT_CSP="-DWEBP_SWAP_16BIT_CSP=1" fi AC_MSG_RESULT(${enable_swap_16bit_csp-no}) AC_SUBST(USE_SWAP_16BIT_CSP) -dnl === If --enable-experimental is defined, add -DWEBP_EXPERIMENTAL_FEATURES - -USE_EXPERIMENTAL_CODE="" -AC_MSG_CHECKING(if --enable-experimental option is specified) -AC_ARG_ENABLE([experimental], AS_HELP_STRING([--enable-experimental], - [Activate experimental features])) -if test "$enable_experimental" = "yes"; then - AC_DEFINE(WEBP_EXPERIMENTAL_FEATURES, [1], [Enable experimental code]) - USE_EXPERIMENTAL_CODE="-DWEBP_EXPERIMENTAL_FEATURES" +dnl === If --disable-near-lossless is defined, add -DWEBP_NEAR_LOSSLESS=0 + +AC_DEFINE(WEBP_NEAR_LOSSLESS, [1], [Enable near lossless encoding]) +AC_MSG_CHECKING(if --disable-near-lossless option is specified) +AC_ARG_ENABLE([near_lossless], + AS_HELP_STRING([--disable-near-lossless], + [Disable near lossless encoding]), + [], [enable_near_lossless=yes]) +if test "$enable_near_lossless" = "no"; then + AC_DEFINE(WEBP_NEAR_LOSSLESS, [0], [Enable near lossless encoding]) + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) fi -AC_MSG_RESULT(${enable_experimental-no}) -AC_SUBST(USE_EXPERIMENTAL_CODE) dnl === Check whether libwebpmux should be built AC_MSG_CHECKING(whether libwebpmux is to be built) @@ -650,8 +727,9 @@ AM_CONDITIONAL([WANT_MUX], [test "$enable_libwebpmux" = "yes"]) dnl === Check whether libwebpdemux should be built AC_MSG_CHECKING(whether libwebpdemux is to be built) AC_ARG_ENABLE([libwebpdemux], - AS_HELP_STRING([--enable-libwebpdemux], - [Build libwebpdemux @<:@default=no@:>@])) + AS_HELP_STRING([--disable-libwebpdemux], + [Disable libwebpdemux @<:@default=no@:>@]), + [], [enable_libwebpdemux=yes]) AC_MSG_RESULT(${enable_libwebpdemux-no}) AM_CONDITIONAL([WANT_DEMUX], [test "$enable_libwebpdemux" = "yes"]) @@ -700,22 +778,25 @@ libwebpmux: ${enable_libwebpmux-no} libwebpextras: ${enable_libwebpextras-no} Tools: -cwebp : yes +cwebp : ${enable_libwebpdemux-no} Input format support ==================== JPEG : ${jpeg_support-no} PNG : ${png_support-no} TIFF : ${tiff_support-no} WIC : ${wic_support-no} -dwebp : yes +dwebp : ${enable_libwebpdemux-no} Output format support ===================== PNG : ${png_support-no} WIC : ${wic_support-no} GIF support : ${gif_support-no} -anim_diff : ${build_animdiff-no} +anim_diff : ${build_anim_diff-no} gif2webp : ${build_gif2webp-no} img2webp : ${build_img2webp-no} webpmux : ${enable_libwebpmux-no} vwebp : ${build_vwebp-no} +webpinfo : ${build_webpinfo-no} +SDL support : ${sdl_support-no} +vwebp_sdl : ${build_vwebp_sdl-no} ]) diff --git a/external/libwebp-1.0.0/depcomp b/external/libwebp-1.0.0/depcomp new file mode 100755 index 00000000..b39f98f9 --- /dev/null +++ b/external/libwebp-1.0.0/depcomp @@ -0,0 +1,791 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2016-01-11.22; # UTC + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The second -e expression handles DOS-style file names with drive + # letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/external/libwebp-0.6.0/doc/README b/external/libwebp-1.0.0/doc/README similarity index 100% rename from external/libwebp-0.6.0/doc/README rename to external/libwebp-1.0.0/doc/README diff --git a/external/libwebp-0.6.0/doc/template.html b/external/libwebp-1.0.0/doc/template.html similarity index 100% rename from external/libwebp-0.6.0/doc/template.html rename to external/libwebp-1.0.0/doc/template.html diff --git a/external/libwebp-0.6.0/doc/webp-container-spec.txt b/external/libwebp-1.0.0/doc/webp-container-spec.txt similarity index 99% rename from external/libwebp-0.6.0/doc/webp-container-spec.txt rename to external/libwebp-1.0.0/doc/webp-container-spec.txt index dbb49f14..94a7ca29 100644 --- a/external/libwebp-0.6.0/doc/webp-container-spec.txt +++ b/external/libwebp-1.0.0/doc/webp-container-spec.txt @@ -446,8 +446,9 @@ Frame Height Minus One: 24 bits (_uint24_) Frame Duration: 24 bits (_uint24_) : The time to wait before displaying the next frame, in 1 millisecond units. - In particular, frame duration of 0 is useful when one wants to update - multiple areas of the canvas at once during the animation. + Note the interpretation of frame duration of 0 (and often <= 10) is + implementation defined. Many tools and browsers assign a minimum duration + similar to GIF. Reserved: 6 bits diff --git a/external/libwebp-0.6.0/doc/webp-lossless-bitstream-spec.txt b/external/libwebp-1.0.0/doc/webp-lossless-bitstream-spec.txt similarity index 100% rename from external/libwebp-0.6.0/doc/webp-lossless-bitstream-spec.txt rename to external/libwebp-1.0.0/doc/webp-lossless-bitstream-spec.txt diff --git a/external/libwebp-0.6.0/examples/Android.mk b/external/libwebp-1.0.0/examples/Android.mk similarity index 78% rename from external/libwebp-0.6.0/examples/Android.mk rename to external/libwebp-1.0.0/examples/Android.mk index 00d53baf..486b8b80 100644 --- a/external/libwebp-0.6.0/examples/Android.mk +++ b/external/libwebp-1.0.0/examples/Android.mk @@ -27,7 +27,7 @@ LOCAL_SRC_FILES := \ LOCAL_CFLAGS := $(WEBP_CFLAGS) LOCAL_C_INCLUDES := $(LOCAL_PATH)/../src -LOCAL_STATIC_LIBRARIES := example_util imageio_util imagedec webp +LOCAL_STATIC_LIBRARIES := example_util imageio_util imagedec webpdemux webp LOCAL_MODULE := cwebp @@ -43,8 +43,7 @@ LOCAL_SRC_FILES := \ LOCAL_CFLAGS := $(WEBP_CFLAGS) LOCAL_C_INCLUDES := $(LOCAL_PATH)/../src -LOCAL_STATIC_LIBRARIES := example_util imagedec imageenc webp - +LOCAL_STATIC_LIBRARIES := example_util imagedec imageenc webpdemux webp LOCAL_MODULE := dwebp include $(BUILD_EXECUTABLE) @@ -75,8 +74,25 @@ LOCAL_SRC_FILES := \ LOCAL_CFLAGS := $(WEBP_CFLAGS) LOCAL_C_INCLUDES := $(LOCAL_PATH)/../src -LOCAL_STATIC_LIBRARIES := example_util imageio_util imagedec webpmux webp +LOCAL_STATIC_LIBRARIES := example_util imageio_util imagedec webpmux webpdemux \ + webp LOCAL_MODULE := img2webp_example include $(BUILD_EXECUTABLE) + +################################################################################ +# webpinfo + +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := \ + webpinfo.c \ + +LOCAL_CFLAGS := $(WEBP_CFLAGS) +LOCAL_C_INCLUDES := $(LOCAL_PATH)/../src +LOCAL_STATIC_LIBRARIES := example_util imageio_util webp + +LOCAL_MODULE := webpinfo_example + +include $(BUILD_EXECUTABLE) diff --git a/external/libwebp-1.0.0/examples/Makefile.am b/external/libwebp-1.0.0/examples/Makefile.am new file mode 100644 index 00000000..e10872fd --- /dev/null +++ b/external/libwebp-1.0.0/examples/Makefile.am @@ -0,0 +1,119 @@ +AM_CPPFLAGS += -I$(top_builddir)/src -I$(top_srcdir)/src + +bin_PROGRAMS = +if WANT_DEMUX + bin_PROGRAMS += dwebp cwebp +endif +if BUILD_ANIMDIFF + noinst_PROGRAMS = anim_diff anim_dump +endif +if BUILD_GIF2WEBP + bin_PROGRAMS += gif2webp +endif +if BUILD_IMG2WEBP + bin_PROGRAMS += img2webp +endif +if WANT_MUX + bin_PROGRAMS += webpmux +endif +if BUILD_VWEBP + bin_PROGRAMS += vwebp +endif +if BUILD_WEBPINFO + bin_PROGRAMS += webpinfo +endif + +noinst_LTLIBRARIES = libexample_util.la + +libexample_util_la_SOURCES = example_util.c example_util.h +libexample_util_la_LIBADD = ../src/libwebp.la + +anim_diff_SOURCES = anim_diff.c anim_util.c anim_util.h +anim_diff_CPPFLAGS = $(AM_CPPFLAGS) $(GIF_INCLUDES) +anim_diff_LDADD = +anim_diff_LDADD += ../src/demux/libwebpdemux.la +anim_diff_LDADD += libexample_util.la +anim_diff_LDADD += ../imageio/libimageio_util.la +anim_diff_LDADD += $(GIF_LIBS) -lm + +anim_dump_SOURCES = anim_dump.c anim_util.c anim_util.h +anim_dump_CPPFLAGS = $(AM_CPPFLAGS) $(PNG_INCLUDES) +anim_dump_CPPFLAGS += $(GIF_INCLUDES) +anim_dump_LDADD = +anim_dump_LDADD += ../src/demux/libwebpdemux.la +anim_dump_LDADD += libexample_util.la +anim_dump_LDADD += ../imageio/libimageio_util.la +anim_dump_LDADD += ../imageio/libimageenc.la +anim_dump_LDADD += $(PNG_LIBS) $(GIF_LIBS) $(TIFF_LIBS) -lm + +cwebp_SOURCES = cwebp.c stopwatch.h +cwebp_CPPFLAGS = $(AM_CPPFLAGS) +cwebp_LDADD = +cwebp_LDADD += libexample_util.la +cwebp_LDADD += ../imageio/libimageio_util.la +cwebp_LDADD += ../imageio/libimagedec.la +cwebp_LDADD += ../src/libwebp.la +cwebp_LDADD += $(JPEG_LIBS) $(PNG_LIBS) $(TIFF_LIBS) + +dwebp_SOURCES = dwebp.c stopwatch.h +dwebp_CPPFLAGS = $(AM_CPPFLAGS) +dwebp_CPPFLAGS += $(JPEG_INCLUDES) $(PNG_INCLUDES) +dwebp_LDADD = +dwebp_LDADD += libexample_util.la +dwebp_LDADD += ../imageio/libimagedec.la +dwebp_LDADD += ../imageio/libimageenc.la +dwebp_LDADD += ../imageio/libimageio_util.la +dwebp_LDADD += ../src/libwebp.la +dwebp_LDADD +=$(PNG_LIBS) $(JPEG_LIBS) + +gif2webp_SOURCES = gif2webp.c gifdec.c gifdec.h +gif2webp_CPPFLAGS = $(AM_CPPFLAGS) $(GIF_INCLUDES) +gif2webp_LDADD = +gif2webp_LDADD += libexample_util.la +gif2webp_LDADD += ../imageio/libimageio_util.la +gif2webp_LDADD += ../src/mux/libwebpmux.la +gif2webp_LDADD += ../src/libwebp.la +gif2webp_LDADD += $(GIF_LIBS) + +vwebp_SOURCES = vwebp.c +vwebp_CPPFLAGS = $(AM_CPPFLAGS) $(GL_INCLUDES) +vwebp_LDADD = +vwebp_LDADD += libexample_util.la +vwebp_LDADD += ../imageio/libimageio_util.la +vwebp_LDADD += ../src/demux/libwebpdemux.la +vwebp_LDADD += $(GL_LIBS) + +webpmux_SOURCES = webpmux.c +webpmux_CPPFLAGS = $(AM_CPPFLAGS) +webpmux_LDADD = +webpmux_LDADD += libexample_util.la +webpmux_LDADD += ../imageio/libimageio_util.la +webpmux_LDADD += ../src/mux/libwebpmux.la +webpmux_LDADD += ../src/libwebp.la + +img2webp_SOURCES = img2webp.c +img2webp_CPPFLAGS = $(AM_CPPFLAGS) +img2webp_LDADD = +img2webp_LDADD += libexample_util.la +img2webp_LDADD += ../imageio/libimageio_util.la +img2webp_LDADD += ../imageio/libimagedec.la +img2webp_LDADD += ../src/mux/libwebpmux.la +img2webp_LDADD += ../src/libwebp.la +img2webp_LDADD += $(PNG_LIBS) $(JPEG_LIBS) $(TIFF_LIBS) + +webpinfo_SOURCES = webpinfo.c +webpinfo_CPPFLAGS = $(AM_CPPFLAGS) +webpinfo_LDADD = +webpinfo_LDADD += libexample_util.la +webpinfo_LDADD += ../imageio/libimageio_util.la +webpinfo_LDADD += ../src/libwebp.la + +if BUILD_LIBWEBPDECODER + anim_diff_LDADD += ../src/libwebpdecoder.la + anim_dump_LDADD += ../src/libwebpdecoder.la + vwebp_LDADD += ../src/libwebpdecoder.la +else + anim_diff_LDADD += ../src/libwebp.la + anim_dump_LDADD += ../src/libwebp.la + vwebp_LDADD += ../src/libwebp.la +endif diff --git a/external/libwebp-1.0.0/examples/Makefile.in b/external/libwebp-1.0.0/examples/Makefile.in new file mode 100644 index 00000000..d3b73bfd --- /dev/null +++ b/external/libwebp-1.0.0/examples/Makefile.in @@ -0,0 +1,1018 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \ + $(am__EXEEXT_4) $(am__EXEEXT_5) $(am__EXEEXT_6) +@WANT_DEMUX_TRUE@am__append_1 = dwebp cwebp +@BUILD_ANIMDIFF_TRUE@noinst_PROGRAMS = anim_diff$(EXEEXT) \ +@BUILD_ANIMDIFF_TRUE@ anim_dump$(EXEEXT) +@BUILD_GIF2WEBP_TRUE@am__append_2 = gif2webp +@BUILD_IMG2WEBP_TRUE@am__append_3 = img2webp +@WANT_MUX_TRUE@am__append_4 = webpmux +@BUILD_VWEBP_TRUE@am__append_5 = vwebp +@BUILD_WEBPINFO_TRUE@am__append_6 = webpinfo +@BUILD_LIBWEBPDECODER_TRUE@am__append_7 = ../src/libwebpdecoder.la +@BUILD_LIBWEBPDECODER_TRUE@am__append_8 = ../src/libwebpdecoder.la +@BUILD_LIBWEBPDECODER_TRUE@am__append_9 = ../src/libwebpdecoder.la +@BUILD_LIBWEBPDECODER_FALSE@am__append_10 = ../src/libwebp.la +@BUILD_LIBWEBPDECODER_FALSE@am__append_11 = ../src/libwebp.la +@BUILD_LIBWEBPDECODER_FALSE@am__append_12 = ../src/libwebp.la +subdir = examples +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/webp/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libexample_util_la_DEPENDENCIES = ../src/libwebp.la +am_libexample_util_la_OBJECTS = example_util.lo +libexample_util_la_OBJECTS = $(am_libexample_util_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +@WANT_DEMUX_TRUE@am__EXEEXT_1 = dwebp$(EXEEXT) cwebp$(EXEEXT) +@BUILD_GIF2WEBP_TRUE@am__EXEEXT_2 = gif2webp$(EXEEXT) +@BUILD_IMG2WEBP_TRUE@am__EXEEXT_3 = img2webp$(EXEEXT) +@WANT_MUX_TRUE@am__EXEEXT_4 = webpmux$(EXEEXT) +@BUILD_VWEBP_TRUE@am__EXEEXT_5 = vwebp$(EXEEXT) +@BUILD_WEBPINFO_TRUE@am__EXEEXT_6 = webpinfo$(EXEEXT) +am__installdirs = "$(DESTDIR)$(bindir)" +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) +am_anim_diff_OBJECTS = anim_diff-anim_diff.$(OBJEXT) \ + anim_diff-anim_util.$(OBJEXT) +anim_diff_OBJECTS = $(am_anim_diff_OBJECTS) +am__DEPENDENCIES_1 = +anim_diff_DEPENDENCIES = ../src/demux/libwebpdemux.la \ + libexample_util.la ../imageio/libimageio_util.la \ + $(am__DEPENDENCIES_1) $(am__append_7) $(am__append_10) +am_anim_dump_OBJECTS = anim_dump-anim_dump.$(OBJEXT) \ + anim_dump-anim_util.$(OBJEXT) +anim_dump_OBJECTS = $(am_anim_dump_OBJECTS) +anim_dump_DEPENDENCIES = ../src/demux/libwebpdemux.la \ + libexample_util.la ../imageio/libimageio_util.la \ + ../imageio/libimageenc.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_8) \ + $(am__append_11) +am_cwebp_OBJECTS = cwebp-cwebp.$(OBJEXT) +cwebp_OBJECTS = $(am_cwebp_OBJECTS) +cwebp_DEPENDENCIES = libexample_util.la ../imageio/libimageio_util.la \ + ../imageio/libimagedec.la ../src/libwebp.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_dwebp_OBJECTS = dwebp-dwebp.$(OBJEXT) +dwebp_OBJECTS = $(am_dwebp_OBJECTS) +dwebp_DEPENDENCIES = libexample_util.la ../imageio/libimagedec.la \ + ../imageio/libimageenc.la ../imageio/libimageio_util.la \ + ../src/libwebp.la $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_gif2webp_OBJECTS = gif2webp-gif2webp.$(OBJEXT) \ + gif2webp-gifdec.$(OBJEXT) +gif2webp_OBJECTS = $(am_gif2webp_OBJECTS) +gif2webp_DEPENDENCIES = libexample_util.la \ + ../imageio/libimageio_util.la ../src/mux/libwebpmux.la \ + ../src/libwebp.la $(am__DEPENDENCIES_1) +am_img2webp_OBJECTS = img2webp-img2webp.$(OBJEXT) +img2webp_OBJECTS = $(am_img2webp_OBJECTS) +img2webp_DEPENDENCIES = libexample_util.la \ + ../imageio/libimageio_util.la ../imageio/libimagedec.la \ + ../src/mux/libwebpmux.la ../src/libwebp.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_vwebp_OBJECTS = vwebp-vwebp.$(OBJEXT) +vwebp_OBJECTS = $(am_vwebp_OBJECTS) +vwebp_DEPENDENCIES = libexample_util.la ../imageio/libimageio_util.la \ + ../src/demux/libwebpdemux.la $(am__DEPENDENCIES_1) \ + $(am__append_9) $(am__append_12) +am_webpinfo_OBJECTS = webpinfo-webpinfo.$(OBJEXT) +webpinfo_OBJECTS = $(am_webpinfo_OBJECTS) +webpinfo_DEPENDENCIES = libexample_util.la \ + ../imageio/libimageio_util.la ../src/libwebp.la +am_webpmux_OBJECTS = webpmux-webpmux.$(OBJEXT) +webpmux_OBJECTS = $(am_webpmux_OBJECTS) +webpmux_DEPENDENCIES = libexample_util.la \ + ../imageio/libimageio_util.la ../src/mux/libwebpmux.la \ + ../src/libwebp.la +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/webp +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libexample_util_la_SOURCES) $(anim_diff_SOURCES) \ + $(anim_dump_SOURCES) $(cwebp_SOURCES) $(dwebp_SOURCES) \ + $(gif2webp_SOURCES) $(img2webp_SOURCES) $(vwebp_SOURCES) \ + $(webpinfo_SOURCES) $(webpmux_SOURCES) +DIST_SOURCES = $(libexample_util_la_SOURCES) $(anim_diff_SOURCES) \ + $(anim_dump_SOURCES) $(cwebp_SOURCES) $(dwebp_SOURCES) \ + $(gif2webp_SOURCES) $(img2webp_SOURCES) $(vwebp_SOURCES) \ + $(webpinfo_SOURCES) $(webpmux_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_builddir)/src -I$(top_srcdir)/src +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVX2_FLAGS = @AVX2_FLAGS@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GIF_INCLUDES = @GIF_INCLUDES@ +GIF_LIBS = @GIF_LIBS@ +GL_INCLUDES = @GL_INCLUDES@ +GL_LIBS = @GL_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JPEG_INCLUDES = @JPEG_INCLUDES@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPNG_CONFIG = @LIBPNG_CONFIG@ +LIBS = @LIBS@ +LIBSDL_CONFIG = @LIBSDL_CONFIG@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NEON_FLAGS = @NEON_FLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PNG_INCLUDES = @PNG_INCLUDES@ +PNG_LIBS = @PNG_LIBS@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SDL_INCLUDES = @SDL_INCLUDES@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSE2_FLAGS = @SSE2_FLAGS@ +SSE41_FLAGS = @SSE41_FLAGS@ +STRIP = @STRIP@ +TIFF_INCLUDES = @TIFF_INCLUDES@ +TIFF_LIBS = @TIFF_LIBS@ +USE_SWAP_16BIT_CSP = @USE_SWAP_16BIT_CSP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +noinst_LTLIBRARIES = libexample_util.la +libexample_util_la_SOURCES = example_util.c example_util.h +libexample_util_la_LIBADD = ../src/libwebp.la +anim_diff_SOURCES = anim_diff.c anim_util.c anim_util.h +anim_diff_CPPFLAGS = $(AM_CPPFLAGS) $(GIF_INCLUDES) +anim_diff_LDADD = ../src/demux/libwebpdemux.la libexample_util.la \ + ../imageio/libimageio_util.la $(GIF_LIBS) -lm $(am__append_7) \ + $(am__append_10) +anim_dump_SOURCES = anim_dump.c anim_util.c anim_util.h +anim_dump_CPPFLAGS = $(AM_CPPFLAGS) $(PNG_INCLUDES) $(GIF_INCLUDES) +anim_dump_LDADD = ../src/demux/libwebpdemux.la libexample_util.la \ + ../imageio/libimageio_util.la ../imageio/libimageenc.la \ + $(PNG_LIBS) $(GIF_LIBS) $(TIFF_LIBS) -lm $(am__append_8) \ + $(am__append_11) +cwebp_SOURCES = cwebp.c stopwatch.h +cwebp_CPPFLAGS = $(AM_CPPFLAGS) +cwebp_LDADD = libexample_util.la ../imageio/libimageio_util.la \ + ../imageio/libimagedec.la ../src/libwebp.la $(JPEG_LIBS) \ + $(PNG_LIBS) $(TIFF_LIBS) +dwebp_SOURCES = dwebp.c stopwatch.h +dwebp_CPPFLAGS = $(AM_CPPFLAGS) $(JPEG_INCLUDES) $(PNG_INCLUDES) +dwebp_LDADD = libexample_util.la ../imageio/libimagedec.la \ + ../imageio/libimageenc.la ../imageio/libimageio_util.la \ + ../src/libwebp.la $(PNG_LIBS) $(JPEG_LIBS) +gif2webp_SOURCES = gif2webp.c gifdec.c gifdec.h +gif2webp_CPPFLAGS = $(AM_CPPFLAGS) $(GIF_INCLUDES) +gif2webp_LDADD = libexample_util.la ../imageio/libimageio_util.la \ + ../src/mux/libwebpmux.la ../src/libwebp.la $(GIF_LIBS) +vwebp_SOURCES = vwebp.c +vwebp_CPPFLAGS = $(AM_CPPFLAGS) $(GL_INCLUDES) +vwebp_LDADD = libexample_util.la ../imageio/libimageio_util.la \ + ../src/demux/libwebpdemux.la $(GL_LIBS) $(am__append_9) \ + $(am__append_12) +webpmux_SOURCES = webpmux.c +webpmux_CPPFLAGS = $(AM_CPPFLAGS) +webpmux_LDADD = libexample_util.la ../imageio/libimageio_util.la \ + ../src/mux/libwebpmux.la ../src/libwebp.la +img2webp_SOURCES = img2webp.c +img2webp_CPPFLAGS = $(AM_CPPFLAGS) +img2webp_LDADD = libexample_util.la ../imageio/libimageio_util.la \ + ../imageio/libimagedec.la ../src/mux/libwebpmux.la \ + ../src/libwebp.la $(PNG_LIBS) $(JPEG_LIBS) $(TIFF_LIBS) +webpinfo_SOURCES = webpinfo.c +webpinfo_CPPFLAGS = $(AM_CPPFLAGS) +webpinfo_LDADD = libexample_util.la ../imageio/libimageio_util.la \ + ../src/libwebp.la +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign examples/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign examples/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libexample_util.la: $(libexample_util_la_OBJECTS) $(libexample_util_la_DEPENDENCIES) $(EXTRA_libexample_util_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libexample_util_la_OBJECTS) $(libexample_util_la_LIBADD) $(LIBS) +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + || test -f $$p1 \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +anim_diff$(EXEEXT): $(anim_diff_OBJECTS) $(anim_diff_DEPENDENCIES) $(EXTRA_anim_diff_DEPENDENCIES) + @rm -f anim_diff$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(anim_diff_OBJECTS) $(anim_diff_LDADD) $(LIBS) + +anim_dump$(EXEEXT): $(anim_dump_OBJECTS) $(anim_dump_DEPENDENCIES) $(EXTRA_anim_dump_DEPENDENCIES) + @rm -f anim_dump$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(anim_dump_OBJECTS) $(anim_dump_LDADD) $(LIBS) + +cwebp$(EXEEXT): $(cwebp_OBJECTS) $(cwebp_DEPENDENCIES) $(EXTRA_cwebp_DEPENDENCIES) + @rm -f cwebp$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(cwebp_OBJECTS) $(cwebp_LDADD) $(LIBS) + +dwebp$(EXEEXT): $(dwebp_OBJECTS) $(dwebp_DEPENDENCIES) $(EXTRA_dwebp_DEPENDENCIES) + @rm -f dwebp$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dwebp_OBJECTS) $(dwebp_LDADD) $(LIBS) + +gif2webp$(EXEEXT): $(gif2webp_OBJECTS) $(gif2webp_DEPENDENCIES) $(EXTRA_gif2webp_DEPENDENCIES) + @rm -f gif2webp$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(gif2webp_OBJECTS) $(gif2webp_LDADD) $(LIBS) + +img2webp$(EXEEXT): $(img2webp_OBJECTS) $(img2webp_DEPENDENCIES) $(EXTRA_img2webp_DEPENDENCIES) + @rm -f img2webp$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(img2webp_OBJECTS) $(img2webp_LDADD) $(LIBS) + +vwebp$(EXEEXT): $(vwebp_OBJECTS) $(vwebp_DEPENDENCIES) $(EXTRA_vwebp_DEPENDENCIES) + @rm -f vwebp$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(vwebp_OBJECTS) $(vwebp_LDADD) $(LIBS) + +webpinfo$(EXEEXT): $(webpinfo_OBJECTS) $(webpinfo_DEPENDENCIES) $(EXTRA_webpinfo_DEPENDENCIES) + @rm -f webpinfo$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(webpinfo_OBJECTS) $(webpinfo_LDADD) $(LIBS) + +webpmux$(EXEEXT): $(webpmux_OBJECTS) $(webpmux_DEPENDENCIES) $(EXTRA_webpmux_DEPENDENCIES) + @rm -f webpmux$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(webpmux_OBJECTS) $(webpmux_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/anim_diff-anim_diff.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/anim_diff-anim_util.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/anim_dump-anim_dump.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/anim_dump-anim_util.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cwebp-cwebp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwebp-dwebp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/example_util.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gif2webp-gif2webp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gif2webp-gifdec.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/img2webp-img2webp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vwebp-vwebp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/webpinfo-webpinfo.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/webpmux-webpmux.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +anim_diff-anim_diff.o: anim_diff.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_diff_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT anim_diff-anim_diff.o -MD -MP -MF $(DEPDIR)/anim_diff-anim_diff.Tpo -c -o anim_diff-anim_diff.o `test -f 'anim_diff.c' || echo '$(srcdir)/'`anim_diff.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/anim_diff-anim_diff.Tpo $(DEPDIR)/anim_diff-anim_diff.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='anim_diff.c' object='anim_diff-anim_diff.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_diff_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o anim_diff-anim_diff.o `test -f 'anim_diff.c' || echo '$(srcdir)/'`anim_diff.c + +anim_diff-anim_diff.obj: anim_diff.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_diff_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT anim_diff-anim_diff.obj -MD -MP -MF $(DEPDIR)/anim_diff-anim_diff.Tpo -c -o anim_diff-anim_diff.obj `if test -f 'anim_diff.c'; then $(CYGPATH_W) 'anim_diff.c'; else $(CYGPATH_W) '$(srcdir)/anim_diff.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/anim_diff-anim_diff.Tpo $(DEPDIR)/anim_diff-anim_diff.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='anim_diff.c' object='anim_diff-anim_diff.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_diff_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o anim_diff-anim_diff.obj `if test -f 'anim_diff.c'; then $(CYGPATH_W) 'anim_diff.c'; else $(CYGPATH_W) '$(srcdir)/anim_diff.c'; fi` + +anim_diff-anim_util.o: anim_util.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_diff_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT anim_diff-anim_util.o -MD -MP -MF $(DEPDIR)/anim_diff-anim_util.Tpo -c -o anim_diff-anim_util.o `test -f 'anim_util.c' || echo '$(srcdir)/'`anim_util.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/anim_diff-anim_util.Tpo $(DEPDIR)/anim_diff-anim_util.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='anim_util.c' object='anim_diff-anim_util.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_diff_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o anim_diff-anim_util.o `test -f 'anim_util.c' || echo '$(srcdir)/'`anim_util.c + +anim_diff-anim_util.obj: anim_util.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_diff_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT anim_diff-anim_util.obj -MD -MP -MF $(DEPDIR)/anim_diff-anim_util.Tpo -c -o anim_diff-anim_util.obj `if test -f 'anim_util.c'; then $(CYGPATH_W) 'anim_util.c'; else $(CYGPATH_W) '$(srcdir)/anim_util.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/anim_diff-anim_util.Tpo $(DEPDIR)/anim_diff-anim_util.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='anim_util.c' object='anim_diff-anim_util.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_diff_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o anim_diff-anim_util.obj `if test -f 'anim_util.c'; then $(CYGPATH_W) 'anim_util.c'; else $(CYGPATH_W) '$(srcdir)/anim_util.c'; fi` + +anim_dump-anim_dump.o: anim_dump.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_dump_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT anim_dump-anim_dump.o -MD -MP -MF $(DEPDIR)/anim_dump-anim_dump.Tpo -c -o anim_dump-anim_dump.o `test -f 'anim_dump.c' || echo '$(srcdir)/'`anim_dump.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/anim_dump-anim_dump.Tpo $(DEPDIR)/anim_dump-anim_dump.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='anim_dump.c' object='anim_dump-anim_dump.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_dump_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o anim_dump-anim_dump.o `test -f 'anim_dump.c' || echo '$(srcdir)/'`anim_dump.c + +anim_dump-anim_dump.obj: anim_dump.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_dump_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT anim_dump-anim_dump.obj -MD -MP -MF $(DEPDIR)/anim_dump-anim_dump.Tpo -c -o anim_dump-anim_dump.obj `if test -f 'anim_dump.c'; then $(CYGPATH_W) 'anim_dump.c'; else $(CYGPATH_W) '$(srcdir)/anim_dump.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/anim_dump-anim_dump.Tpo $(DEPDIR)/anim_dump-anim_dump.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='anim_dump.c' object='anim_dump-anim_dump.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_dump_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o anim_dump-anim_dump.obj `if test -f 'anim_dump.c'; then $(CYGPATH_W) 'anim_dump.c'; else $(CYGPATH_W) '$(srcdir)/anim_dump.c'; fi` + +anim_dump-anim_util.o: anim_util.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_dump_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT anim_dump-anim_util.o -MD -MP -MF $(DEPDIR)/anim_dump-anim_util.Tpo -c -o anim_dump-anim_util.o `test -f 'anim_util.c' || echo '$(srcdir)/'`anim_util.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/anim_dump-anim_util.Tpo $(DEPDIR)/anim_dump-anim_util.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='anim_util.c' object='anim_dump-anim_util.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_dump_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o anim_dump-anim_util.o `test -f 'anim_util.c' || echo '$(srcdir)/'`anim_util.c + +anim_dump-anim_util.obj: anim_util.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_dump_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT anim_dump-anim_util.obj -MD -MP -MF $(DEPDIR)/anim_dump-anim_util.Tpo -c -o anim_dump-anim_util.obj `if test -f 'anim_util.c'; then $(CYGPATH_W) 'anim_util.c'; else $(CYGPATH_W) '$(srcdir)/anim_util.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/anim_dump-anim_util.Tpo $(DEPDIR)/anim_dump-anim_util.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='anim_util.c' object='anim_dump-anim_util.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(anim_dump_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o anim_dump-anim_util.obj `if test -f 'anim_util.c'; then $(CYGPATH_W) 'anim_util.c'; else $(CYGPATH_W) '$(srcdir)/anim_util.c'; fi` + +cwebp-cwebp.o: cwebp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cwebp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cwebp-cwebp.o -MD -MP -MF $(DEPDIR)/cwebp-cwebp.Tpo -c -o cwebp-cwebp.o `test -f 'cwebp.c' || echo '$(srcdir)/'`cwebp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cwebp-cwebp.Tpo $(DEPDIR)/cwebp-cwebp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cwebp.c' object='cwebp-cwebp.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cwebp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cwebp-cwebp.o `test -f 'cwebp.c' || echo '$(srcdir)/'`cwebp.c + +cwebp-cwebp.obj: cwebp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cwebp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cwebp-cwebp.obj -MD -MP -MF $(DEPDIR)/cwebp-cwebp.Tpo -c -o cwebp-cwebp.obj `if test -f 'cwebp.c'; then $(CYGPATH_W) 'cwebp.c'; else $(CYGPATH_W) '$(srcdir)/cwebp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cwebp-cwebp.Tpo $(DEPDIR)/cwebp-cwebp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cwebp.c' object='cwebp-cwebp.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cwebp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cwebp-cwebp.obj `if test -f 'cwebp.c'; then $(CYGPATH_W) 'cwebp.c'; else $(CYGPATH_W) '$(srcdir)/cwebp.c'; fi` + +dwebp-dwebp.o: dwebp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dwebp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dwebp-dwebp.o -MD -MP -MF $(DEPDIR)/dwebp-dwebp.Tpo -c -o dwebp-dwebp.o `test -f 'dwebp.c' || echo '$(srcdir)/'`dwebp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dwebp-dwebp.Tpo $(DEPDIR)/dwebp-dwebp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dwebp.c' object='dwebp-dwebp.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dwebp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dwebp-dwebp.o `test -f 'dwebp.c' || echo '$(srcdir)/'`dwebp.c + +dwebp-dwebp.obj: dwebp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dwebp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dwebp-dwebp.obj -MD -MP -MF $(DEPDIR)/dwebp-dwebp.Tpo -c -o dwebp-dwebp.obj `if test -f 'dwebp.c'; then $(CYGPATH_W) 'dwebp.c'; else $(CYGPATH_W) '$(srcdir)/dwebp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dwebp-dwebp.Tpo $(DEPDIR)/dwebp-dwebp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dwebp.c' object='dwebp-dwebp.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dwebp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dwebp-dwebp.obj `if test -f 'dwebp.c'; then $(CYGPATH_W) 'dwebp.c'; else $(CYGPATH_W) '$(srcdir)/dwebp.c'; fi` + +gif2webp-gif2webp.o: gif2webp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gif2webp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gif2webp-gif2webp.o -MD -MP -MF $(DEPDIR)/gif2webp-gif2webp.Tpo -c -o gif2webp-gif2webp.o `test -f 'gif2webp.c' || echo '$(srcdir)/'`gif2webp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gif2webp-gif2webp.Tpo $(DEPDIR)/gif2webp-gif2webp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gif2webp.c' object='gif2webp-gif2webp.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gif2webp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gif2webp-gif2webp.o `test -f 'gif2webp.c' || echo '$(srcdir)/'`gif2webp.c + +gif2webp-gif2webp.obj: gif2webp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gif2webp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gif2webp-gif2webp.obj -MD -MP -MF $(DEPDIR)/gif2webp-gif2webp.Tpo -c -o gif2webp-gif2webp.obj `if test -f 'gif2webp.c'; then $(CYGPATH_W) 'gif2webp.c'; else $(CYGPATH_W) '$(srcdir)/gif2webp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gif2webp-gif2webp.Tpo $(DEPDIR)/gif2webp-gif2webp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gif2webp.c' object='gif2webp-gif2webp.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gif2webp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gif2webp-gif2webp.obj `if test -f 'gif2webp.c'; then $(CYGPATH_W) 'gif2webp.c'; else $(CYGPATH_W) '$(srcdir)/gif2webp.c'; fi` + +gif2webp-gifdec.o: gifdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gif2webp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gif2webp-gifdec.o -MD -MP -MF $(DEPDIR)/gif2webp-gifdec.Tpo -c -o gif2webp-gifdec.o `test -f 'gifdec.c' || echo '$(srcdir)/'`gifdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gif2webp-gifdec.Tpo $(DEPDIR)/gif2webp-gifdec.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gifdec.c' object='gif2webp-gifdec.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gif2webp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gif2webp-gifdec.o `test -f 'gifdec.c' || echo '$(srcdir)/'`gifdec.c + +gif2webp-gifdec.obj: gifdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gif2webp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gif2webp-gifdec.obj -MD -MP -MF $(DEPDIR)/gif2webp-gifdec.Tpo -c -o gif2webp-gifdec.obj `if test -f 'gifdec.c'; then $(CYGPATH_W) 'gifdec.c'; else $(CYGPATH_W) '$(srcdir)/gifdec.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gif2webp-gifdec.Tpo $(DEPDIR)/gif2webp-gifdec.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gifdec.c' object='gif2webp-gifdec.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gif2webp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gif2webp-gifdec.obj `if test -f 'gifdec.c'; then $(CYGPATH_W) 'gifdec.c'; else $(CYGPATH_W) '$(srcdir)/gifdec.c'; fi` + +img2webp-img2webp.o: img2webp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(img2webp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT img2webp-img2webp.o -MD -MP -MF $(DEPDIR)/img2webp-img2webp.Tpo -c -o img2webp-img2webp.o `test -f 'img2webp.c' || echo '$(srcdir)/'`img2webp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/img2webp-img2webp.Tpo $(DEPDIR)/img2webp-img2webp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='img2webp.c' object='img2webp-img2webp.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(img2webp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o img2webp-img2webp.o `test -f 'img2webp.c' || echo '$(srcdir)/'`img2webp.c + +img2webp-img2webp.obj: img2webp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(img2webp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT img2webp-img2webp.obj -MD -MP -MF $(DEPDIR)/img2webp-img2webp.Tpo -c -o img2webp-img2webp.obj `if test -f 'img2webp.c'; then $(CYGPATH_W) 'img2webp.c'; else $(CYGPATH_W) '$(srcdir)/img2webp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/img2webp-img2webp.Tpo $(DEPDIR)/img2webp-img2webp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='img2webp.c' object='img2webp-img2webp.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(img2webp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o img2webp-img2webp.obj `if test -f 'img2webp.c'; then $(CYGPATH_W) 'img2webp.c'; else $(CYGPATH_W) '$(srcdir)/img2webp.c'; fi` + +vwebp-vwebp.o: vwebp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vwebp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vwebp-vwebp.o -MD -MP -MF $(DEPDIR)/vwebp-vwebp.Tpo -c -o vwebp-vwebp.o `test -f 'vwebp.c' || echo '$(srcdir)/'`vwebp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vwebp-vwebp.Tpo $(DEPDIR)/vwebp-vwebp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vwebp.c' object='vwebp-vwebp.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vwebp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vwebp-vwebp.o `test -f 'vwebp.c' || echo '$(srcdir)/'`vwebp.c + +vwebp-vwebp.obj: vwebp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vwebp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vwebp-vwebp.obj -MD -MP -MF $(DEPDIR)/vwebp-vwebp.Tpo -c -o vwebp-vwebp.obj `if test -f 'vwebp.c'; then $(CYGPATH_W) 'vwebp.c'; else $(CYGPATH_W) '$(srcdir)/vwebp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vwebp-vwebp.Tpo $(DEPDIR)/vwebp-vwebp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vwebp.c' object='vwebp-vwebp.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vwebp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vwebp-vwebp.obj `if test -f 'vwebp.c'; then $(CYGPATH_W) 'vwebp.c'; else $(CYGPATH_W) '$(srcdir)/vwebp.c'; fi` + +webpinfo-webpinfo.o: webpinfo.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(webpinfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT webpinfo-webpinfo.o -MD -MP -MF $(DEPDIR)/webpinfo-webpinfo.Tpo -c -o webpinfo-webpinfo.o `test -f 'webpinfo.c' || echo '$(srcdir)/'`webpinfo.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/webpinfo-webpinfo.Tpo $(DEPDIR)/webpinfo-webpinfo.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='webpinfo.c' object='webpinfo-webpinfo.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(webpinfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o webpinfo-webpinfo.o `test -f 'webpinfo.c' || echo '$(srcdir)/'`webpinfo.c + +webpinfo-webpinfo.obj: webpinfo.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(webpinfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT webpinfo-webpinfo.obj -MD -MP -MF $(DEPDIR)/webpinfo-webpinfo.Tpo -c -o webpinfo-webpinfo.obj `if test -f 'webpinfo.c'; then $(CYGPATH_W) 'webpinfo.c'; else $(CYGPATH_W) '$(srcdir)/webpinfo.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/webpinfo-webpinfo.Tpo $(DEPDIR)/webpinfo-webpinfo.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='webpinfo.c' object='webpinfo-webpinfo.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(webpinfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o webpinfo-webpinfo.obj `if test -f 'webpinfo.c'; then $(CYGPATH_W) 'webpinfo.c'; else $(CYGPATH_W) '$(srcdir)/webpinfo.c'; fi` + +webpmux-webpmux.o: webpmux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(webpmux_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT webpmux-webpmux.o -MD -MP -MF $(DEPDIR)/webpmux-webpmux.Tpo -c -o webpmux-webpmux.o `test -f 'webpmux.c' || echo '$(srcdir)/'`webpmux.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/webpmux-webpmux.Tpo $(DEPDIR)/webpmux-webpmux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='webpmux.c' object='webpmux-webpmux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(webpmux_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o webpmux-webpmux.o `test -f 'webpmux.c' || echo '$(srcdir)/'`webpmux.c + +webpmux-webpmux.obj: webpmux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(webpmux_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT webpmux-webpmux.obj -MD -MP -MF $(DEPDIR)/webpmux-webpmux.Tpo -c -o webpmux-webpmux.obj `if test -f 'webpmux.c'; then $(CYGPATH_W) 'webpmux.c'; else $(CYGPATH_W) '$(srcdir)/webpmux.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/webpmux-webpmux.Tpo $(DEPDIR)/webpmux-webpmux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='webpmux.c' object='webpmux-webpmux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(webpmux_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o webpmux-webpmux.obj `if test -f 'webpmux.c'; then $(CYGPATH_W) 'webpmux.c'; else $(CYGPATH_W) '$(srcdir)/webpmux.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) +installdirs: + for dir in "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libtool \ + clean-noinstLTLIBRARIES clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-binPROGRAMS clean-generic clean-libtool \ + clean-noinstLTLIBRARIES clean-noinstPROGRAMS cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-binPROGRAMS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/external/libwebp-0.6.0/examples/anim_diff.c b/external/libwebp-1.0.0/examples/anim_diff.c similarity index 93% rename from external/libwebp-0.6.0/examples/anim_diff.c rename to external/libwebp-1.0.0/examples/anim_diff.c index 011a6581..e74a915f 100644 --- a/external/libwebp-0.6.0/examples/anim_diff.c +++ b/external/libwebp-1.0.0/examples/anim_diff.c @@ -187,11 +187,11 @@ static void Help(void) { printf(" -min_psnr ... minimum per-frame PSNR\n"); printf(" -raw_comparison ..... if this flag is not used, RGB is\n"); printf(" premultiplied before comparison\n"); -#ifdef WEBP_EXPERIMENTAL_FEATURES - printf(" -max_diff ..... maximum allowed difference per channel " - " between corresponding pixels in subsequent" + printf(" -max_diff ..... maximum allowed difference per channel\n" + " between corresponding pixels in subsequent\n" " frames\n"); -#endif + printf(" -h .................. this help\n"); + printf(" -version ............ print version number and exit\n"); } int main(int argc, const char* argv[]) { @@ -207,11 +207,6 @@ int main(int argc, const char* argv[]) { const char* files[2] = { NULL, NULL }; AnimatedImage images[2]; - if (argc < 3) { - Help(); - return -1; - } - for (c = 1; c < argc; ++c) { int parse_error = 0; if (!strcmp(argv[c], "-dump_frames")) { @@ -236,7 +231,6 @@ int main(int argc, const char* argv[]) { } } else if (!strcmp(argv[c], "-raw_comparison")) { premultiply = 0; -#ifdef WEBP_EXPERIMENTAL_FEATURES } else if (!strcmp(argv[c], "-max_diff")) { if (c < argc - 1) { const char* const v = argv[++c]; @@ -250,7 +244,18 @@ int main(int argc, const char* argv[]) { } else { parse_error = 1; } -#endif + } else if (!strcmp(argv[c], "-h") || !strcmp(argv[c], "-help")) { + Help(); + return 0; + } else if (!strcmp(argv[c], "-version")) { + int dec_version, demux_version; + GetAnimatedImageVersions(&dec_version, &demux_version); + printf("WebP Decoder version: %d.%d.%d\nWebP Demux version: %d.%d.%d\n", + (dec_version >> 16) & 0xff, (dec_version >> 8) & 0xff, + (dec_version >> 0) & 0xff, + (demux_version >> 16) & 0xff, (demux_version >> 8) & 0xff, + (demux_version >> 0) & 0xff); + return 0; } else { if (!got_input1) { files[0] = argv[c]; @@ -267,6 +272,12 @@ int main(int argc, const char* argv[]) { return -1; } } + if (argc < 3) { + Help(); + return -1; + } + + if (!got_input2) { Help(); return -1; diff --git a/external/libwebp-1.0.0/examples/anim_dump.c b/external/libwebp-1.0.0/examples/anim_dump.c new file mode 100644 index 00000000..7b96cfec --- /dev/null +++ b/external/libwebp-1.0.0/examples/anim_dump.c @@ -0,0 +1,118 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// Decodes an animated WebP file and dumps the decoded frames as PNG or TIFF. +// +// Author: Skal (pascal.massimino@gmail.com) + +#include +#include // for 'strcmp'. + +#include "./anim_util.h" +#include "webp/decode.h" +#include "../imageio/image_enc.h" + +#if defined(_MSC_VER) && _MSC_VER < 1900 +#define snprintf _snprintf +#endif + +static void Help(void) { + printf("Usage: anim_dump [options] files...\n"); + printf("\nOptions:\n"); + printf(" -folder .... dump folder (default: '.')\n"); + printf(" -prefix .... prefix for dumped frames " + "(default: 'dump_')\n"); + printf(" -tiff ............... save frames as TIFF\n"); + printf(" -pam ................ save frames as PAM\n"); + printf(" -h .................. this help\n"); + printf(" -version ............ print version number and exit\n"); +} + +int main(int argc, const char* argv[]) { + int error = 0; + const char* dump_folder = "."; + const char* prefix = "dump_"; + const char* suffix = "png"; + WebPOutputFileFormat format = PNG; + int c; + + if (argc < 2) { + Help(); + return -1; + } + + for (c = 1; !error && c < argc; ++c) { + if (!strcmp(argv[c], "-folder")) { + if (c + 1 == argc) { + fprintf(stderr, "missing argument after option '%s'\n", argv[c]); + error = 1; + break; + } + dump_folder = argv[++c]; + } else if (!strcmp(argv[c], "-prefix")) { + if (c + 1 == argc) { + fprintf(stderr, "missing argument after option '%s'\n", argv[c]); + error = 1; + break; + } + prefix = argv[++c]; + } else if (!strcmp(argv[c], "-tiff")) { + format = TIFF; + suffix = "tiff"; + } else if (!strcmp(argv[c], "-pam")) { + format = PAM; + suffix = "pam"; + } else if (!strcmp(argv[c], "-h") || !strcmp(argv[c], "-help")) { + Help(); + return 0; + } else if (!strcmp(argv[c], "-version")) { + int dec_version, demux_version; + GetAnimatedImageVersions(&dec_version, &demux_version); + printf("WebP Decoder version: %d.%d.%d\nWebP Demux version: %d.%d.%d\n", + (dec_version >> 16) & 0xff, (dec_version >> 8) & 0xff, + (dec_version >> 0) & 0xff, + (demux_version >> 16) & 0xff, (demux_version >> 8) & 0xff, + (demux_version >> 0) & 0xff); + return 0; + } else { + uint32_t i; + AnimatedImage image; + const char* const file = argv[c]; + memset(&image, 0, sizeof(image)); + printf("Decoding file: %s as %s/%sxxxx.%s\n", + file, dump_folder, prefix, suffix); + if (!ReadAnimatedImage(file, &image, 0, NULL)) { + fprintf(stderr, "Error decoding file: %s\n Aborting.\n", file); + error = 1; + break; + } + for (i = 0; !error && i < image.num_frames; ++i) { + char out_file[1024]; + WebPDecBuffer buffer; + WebPInitDecBuffer(&buffer); + buffer.colorspace = MODE_RGBA; + buffer.is_external_memory = 1; + buffer.width = image.canvas_width; + buffer.height = image.canvas_height; + buffer.u.RGBA.rgba = image.frames[i].rgba; + buffer.u.RGBA.stride = buffer.width * sizeof(uint32_t); + buffer.u.RGBA.size = buffer.u.RGBA.stride * buffer.height; + snprintf(out_file, sizeof(out_file), "%s/%s%.4d.%s", + dump_folder, prefix, i, suffix); + if (!WebPSaveImage(&buffer, format, out_file)) { + fprintf(stderr, "Error while saving image '%s'\n", out_file); + error = 1; + } + WebPFreeDecBuffer(&buffer); + } + ClearAnimatedImage(&image); + } + } + return error ? 1 : 0; +} diff --git a/external/libwebp-0.6.0/examples/anim_util.c b/external/libwebp-1.0.0/examples/anim_util.c similarity index 95% rename from external/libwebp-0.6.0/examples/anim_util.c rename to external/libwebp-1.0.0/examples/anim_util.c index 38c2d8cd..c7a05c7c 100644 --- a/external/libwebp-0.6.0/examples/anim_util.c +++ b/external/libwebp-1.0.0/examples/anim_util.c @@ -16,7 +16,7 @@ #include #include -#ifdef WEBP_HAVE_GIF +#if defined(WEBP_HAVE_GIF) #include #endif #include "webp/format_constants.h" @@ -33,11 +33,13 @@ static const int kNumChannels = 4; // ----------------------------------------------------------------------------- // Common utilities. +#if defined(WEBP_HAVE_GIF) // Returns true if the frame covers the full canvas. static int IsFullFrame(int width, int height, int canvas_width, int canvas_height) { return (width == canvas_width && height == canvas_height); } +#endif // WEBP_HAVE_GIF static int CheckSizeForOverflow(uint64_t size) { return (size == (size_t)size); @@ -85,6 +87,7 @@ void ClearAnimatedImage(AnimatedImage* const image) { } } +#if defined(WEBP_HAVE_GIF) // Clear the canvas to transparent. static void ZeroFillCanvas(uint8_t* rgba, uint32_t canvas_width, uint32_t canvas_height) { @@ -126,6 +129,7 @@ static void CopyFrameRectangle(const uint8_t* src, uint8_t* dst, int stride, dst += stride; } } +#endif // WEBP_HAVE_GIF // Canonicalize all transparent pixels to transparent black to aid comparison. static void CleanupTransparentPixels(uint32_t* rgba, @@ -152,6 +156,8 @@ static int DumpFrame(const char filename[], const char dump_folder[], FILE* f = NULL; const char* row; + if (dump_folder == NULL) dump_folder = "."; + base_name = strrchr(filename, '/'); base_name = (base_name == NULL) ? filename : base_name + 1; max_len = strlen(dump_folder) + 1 + strlen(base_name) @@ -200,7 +206,7 @@ static int IsWebP(const WebPData* const webp_data) { return (WebPGetInfo(webp_data->bytes, webp_data->size, NULL, NULL) != 0); } -// Read animated WebP bitstream 'file_str' into 'AnimatedImage' struct. +// Read animated WebP bitstream 'webp_data' into 'AnimatedImage' struct. static int ReadAnimatedWebP(const char filename[], const WebPData* const webp_data, AnimatedImage* const image, int dump_frames, @@ -278,7 +284,7 @@ static int ReadAnimatedWebP(const char filename[], // ----------------------------------------------------------------------------- // GIF Decoding. -#ifdef WEBP_HAVE_GIF +#if defined(WEBP_HAVE_GIF) // Returns true if this is a valid GIF bitstream. static int IsGIF(const WebPData* const data) { @@ -423,6 +429,11 @@ static uint32_t GetBackgroundColorGIF(GifFileType* gif) { } // Find appropriate app extension and get loop count from the next extension. +// We use Chrome's interpretation of the 'loop_count' semantics: +// if not present -> loop once +// if present and loop_count == 0, return 0 ('infinite'). +// if present and loop_count != 0, it's the number of *extra* loops +// so we need to return loop_count + 1 as total loop number. static uint32_t GetLoopCountGIF(const GifFileType* const gif) { int i; for (i = 0; i < gif->ImageCount; ++i) { @@ -440,12 +451,13 @@ static uint32_t GetLoopCountGIF(const GifFileType* const gif) { if (signature_is_ok && eb2->Function == CONTINUE_EXT_FUNC_CODE && eb2->ByteCount >= 3 && eb2->Bytes[0] == 1) { - return ((uint32_t)(eb2->Bytes[2]) << 8) + - ((uint32_t)(eb2->Bytes[1]) << 0); + const uint32_t extra_loop = ((uint32_t)(eb2->Bytes[2]) << 8) + + ((uint32_t)(eb2->Bytes[1]) << 0); + return (extra_loop > 0) ? extra_loop + 1 : 0; } } } - return 0; // Default. + return 1; // Default. } // Get duration of 'n'th frame in milliseconds. @@ -581,6 +593,9 @@ static int ReadAnimatedGIF(const char filename[], AnimatedImage* const image, curr_frame = &image->frames[i]; curr_rgba = curr_frame->rgba; curr_frame->duration = GetFrameDurationGIF(gif, i); + // Force frames with a small or no duration to 100ms to be consistent + // with web browsers and other transcoding tools (like gif2webp itself). + if (curr_frame->duration <= 10) curr_frame->duration = 100; if (i == 0) { // Initialize as transparent. curr_frame->is_key_frame = 1; @@ -771,3 +786,9 @@ void GetDiffAndPSNR(const uint8_t rgba1[], const uint8_t rgba2[], *psnr = 4.3429448 * log(255. * 255. / sse); } } + +void GetAnimatedImageVersions(int* const decoder_version, + int* const demux_version) { + *decoder_version = WebPGetDecoderVersion(); + *demux_version = WebPGetDemuxVersion(); +} diff --git a/external/libwebp-0.6.0/examples/anim_util.h b/external/libwebp-1.0.0/examples/anim_util.h similarity index 92% rename from external/libwebp-0.6.0/examples/anim_util.h rename to external/libwebp-1.0.0/examples/anim_util.h index dbc9792c..8063121f 100644 --- a/external/libwebp-0.6.0/examples/anim_util.h +++ b/external/libwebp-1.0.0/examples/anim_util.h @@ -56,6 +56,10 @@ void GetDiffAndPSNR(const uint8_t rgba1[], const uint8_t rgba2[], uint32_t width, uint32_t height, int premultiply, int* const max_diff, double* const psnr); +// Return library versions used by anim_util. +void GetAnimatedImageVersions(int* const decoder_version, + int* const demux_version); + #ifdef __cplusplus } // extern "C" #endif diff --git a/external/libwebp-0.6.0/examples/cwebp.c b/external/libwebp-1.0.0/examples/cwebp.c similarity index 97% rename from external/libwebp-0.6.0/examples/cwebp.c rename to external/libwebp-1.0.0/examples/cwebp.c index 27e51382..de7190bd 100644 --- a/external/libwebp-0.6.0/examples/cwebp.c +++ b/external/libwebp-1.0.0/examples/cwebp.c @@ -140,10 +140,11 @@ static void PrintByteCount(const int bytes[4], int total_size, fprintf(stderr, "| %7d (%.1f%%)\n", total, 100.f * total / total_size); } -static void PrintPercents(const int counts[4], int total) { +static void PrintPercents(const int counts[4]) { int s; + const int total = counts[0] + counts[1] + counts[2] + counts[3]; for (s = 0; s < 4; ++s) { - fprintf(stderr, "| %2d%%", 100 * counts[s] / total); + fprintf(stderr, "| %2d%%", (int)(100. * counts[s] / total + .5)); } fprintf(stderr, "| %7d\n", total); } @@ -186,7 +187,8 @@ static void PrintExtraInfoLossless(const WebPPicture* const pic, } else { fprintf(stderr, "File: %s\n", file_name); fprintf(stderr, "Dimension: %d x %d\n", pic->width, pic->height); - fprintf(stderr, "Output: %d bytes\n", stats->coded_size); + fprintf(stderr, "Output: %d bytes (%.2f bpp)\n", stats->coded_size, + 8.f * stats->coded_size / pic->width / pic->height); PrintFullLosslessInfo(stats, "ARGB"); } } @@ -207,15 +209,18 @@ static void PrintExtraInfoLossy(const WebPPicture* const pic, int short_output, pic->width, pic->height, stats->alpha_data_size ? " (with alpha)" : ""); fprintf(stderr, "Output: " - "%d bytes Y-U-V-All-PSNR %2.2f %2.2f %2.2f %2.2f dB\n", + "%d bytes Y-U-V-All-PSNR %2.2f %2.2f %2.2f %2.2f dB\n" + " (%.2f bpp)\n", stats->coded_size, - stats->PSNR[0], stats->PSNR[1], stats->PSNR[2], stats->PSNR[3]); + stats->PSNR[0], stats->PSNR[1], stats->PSNR[2], stats->PSNR[3], + 8.f * stats->coded_size / pic->width / pic->height); if (total > 0) { int totals[4] = { 0, 0, 0, 0 }; - fprintf(stderr, "block count: intra4: %d\n" - " intra16: %d (-> %.2f%%)\n", - num_i4, num_i16, 100.f * num_i16 / total); - fprintf(stderr, " skipped block: %d (%.2f%%)\n", + fprintf(stderr, "block count: intra4: %6d (%.2f%%)\n" + " intra16: %6d (%.2f%%)\n" + " skipped: %6d (%.2f%%)\n", + num_i4, 100.f * num_i4 / total, + num_i16, 100.f * num_i16 / total, num_skip, 100.f * num_skip / total); fprintf(stderr, "bytes used: header: %6d (%.1f%%)\n" " mode-partition: %6d (%.1f%%)\n", @@ -239,7 +244,7 @@ static void PrintExtraInfoLossy(const WebPPicture* const pic, int short_output, PrintByteCount(stats->residual_bytes[2], stats->coded_size, totals); } fprintf(stderr, " macroblocks: "); - PrintPercents(stats->segment_size, total); + PrintPercents(stats->segment_size); fprintf(stderr, " quantizer: "); PrintValues(stats->segment_quant); fprintf(stderr, " filter level: "); @@ -463,8 +468,9 @@ static int WriteWebPWithMetadata(FILE* const out, } else { const int is_lossless = !memcmp(webp, "VP8L", kTagSize); if (is_lossless) { - // Presence of alpha is stored in the 29th bit of VP8L data. - if (webp[kChunkHeaderSize + 3] & (1 << 5)) flags |= kAlphaFlag; + // Presence of alpha is stored in the 37th bit (29th after the + // signature) of VP8L data. + if (webp[kChunkHeaderSize + 4] & (1 << 4)) flags |= kAlphaFlag; } ok = ok && (fwrite(kVP8XHeader, kChunkHeaderSize, 1, out) == 1); ok = ok && WriteLE32(out, flags); @@ -486,10 +492,10 @@ static int WriteWebPWithMetadata(FILE* const out, *metadata_written |= METADATA_XMP; } return ok; - } else { - // No metadata, just write the original image file. - return (fwrite(webp, webp_size, 1, out) == 1); } + + // No metadata, just write the original image file. + return (fwrite(webp, webp_size, 1, out) == 1); } //------------------------------------------------------------------------------ @@ -579,9 +585,6 @@ static void HelpLong(void) { printf(" -near_lossless ... use near-lossless image\n" " preprocessing (0..100=off), " "default=100\n"); -#ifdef WEBP_EXPERIMENTAL_FEATURES /* not documented yet */ - printf(" -delta_palette ......... use delta palettization\n"); -#endif // WEBP_EXPERIMENTAL_FEATURES printf(" -hint ......... specify image characteristics hint,\n"); printf(" one of: photo, picture or graph\n"); @@ -750,11 +753,6 @@ int main(int argc, const char *argv[]) { } else if (!strcmp(argv[c], "-near_lossless") && c < argc - 1) { config.near_lossless = ExUtilGetInt(argv[++c], 0, &parse_error); config.lossless = 1; // use near-lossless only with lossless -#ifdef WEBP_EXPERIMENTAL_FEATURES - } else if (!strcmp(argv[c], "-delta_palette")) { - config.use_delta_palette = 1; - config.lossless = 1; // delta-palette is for lossless only -#endif // WEBP_EXPERIMENTAL_FEATURES } else if (!strcmp(argv[c], "-hint") && c < argc - 1) { ++c; if (!strcmp(argv[c], "photo")) { diff --git a/external/libwebp-0.6.0/examples/dwebp.c b/external/libwebp-1.0.0/examples/dwebp.c similarity index 99% rename from external/libwebp-0.6.0/examples/dwebp.c rename to external/libwebp-1.0.0/examples/dwebp.c index ce1bac24..154069a7 100644 --- a/external/libwebp-0.6.0/examples/dwebp.c +++ b/external/libwebp-1.0.0/examples/dwebp.c @@ -332,9 +332,8 @@ int main(int argc, const char *argv[]) { case BMP: output_buffer->colorspace = bitstream->has_alpha ? MODE_BGRA : MODE_BGR; break; - case TIFF: // note: force pre-multiplied alpha - output_buffer->colorspace = - bitstream->has_alpha ? MODE_rgbA : MODE_RGB; + case TIFF: + output_buffer->colorspace = bitstream->has_alpha ? MODE_RGBA : MODE_RGB; break; case PGM: case RAW_YUV: diff --git a/external/libwebp-1.0.0/examples/example_util.c b/external/libwebp-1.0.0/examples/example_util.c new file mode 100644 index 00000000..825a1234 --- /dev/null +++ b/external/libwebp-1.0.0/examples/example_util.c @@ -0,0 +1,127 @@ +// Copyright 2012 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// Utility functions used by the example programs. +// + +#include "./example_util.h" + +#include +#include +#include +#include + +#include "webp/mux_types.h" +#include "../imageio/imageio_util.h" + +//------------------------------------------------------------------------------ +// String parsing + +uint32_t ExUtilGetUInt(const char* const v, int base, int* const error) { + char* end = NULL; + const uint32_t n = (v != NULL) ? (uint32_t)strtoul(v, &end, base) : 0u; + if (end == v && error != NULL && !*error) { + *error = 1; + fprintf(stderr, "Error! '%s' is not an integer.\n", + (v != NULL) ? v : "(null)"); + } + return n; +} + +int ExUtilGetInt(const char* const v, int base, int* const error) { + return (int)ExUtilGetUInt(v, base, error); +} + +int ExUtilGetInts(const char* v, int base, int max_output, int output[]) { + int n, error = 0; + for (n = 0; v != NULL && n < max_output; ++n) { + const int value = ExUtilGetInt(v, base, &error); + if (error) return -1; + output[n] = value; + v = strchr(v, ','); + if (v != NULL) ++v; // skip over the trailing ',' + } + return n; +} + +float ExUtilGetFloat(const char* const v, int* const error) { + char* end = NULL; + const float f = (v != NULL) ? (float)strtod(v, &end) : 0.f; + if (end == v && error != NULL && !*error) { + *error = 1; + fprintf(stderr, "Error! '%s' is not a floating point number.\n", + (v != NULL) ? v : "(null)"); + } + return f; +} + +//------------------------------------------------------------------------------ + +static void ResetCommandLineArguments(int argc, const char* argv[], + CommandLineArguments* const args) { + assert(args != NULL); + args->argc_ = argc; + args->argv_ = argv; + args->own_argv_ = 0; + WebPDataInit(&args->argv_data_); +} + +void ExUtilDeleteCommandLineArguments(CommandLineArguments* const args) { + if (args != NULL) { + if (args->own_argv_) { + free((void*)args->argv_); + WebPDataClear(&args->argv_data_); + } + ResetCommandLineArguments(0, NULL, args); + } +} + +#define MAX_ARGC 16384 +int ExUtilInitCommandLineArguments(int argc, const char* argv[], + CommandLineArguments* const args) { + if (args == NULL || argv == NULL) return 0; + ResetCommandLineArguments(argc, argv, args); + if (argc == 1 && argv[0][0] != '-') { + char* cur; + const char sep[] = " \t\r\n\f\v"; + if (!ExUtilReadFileToWebPData(argv[0], &args->argv_data_)) { + return 0; + } + args->own_argv_ = 1; + args->argv_ = (const char**)malloc(MAX_ARGC * sizeof(*args->argv_)); + if (args->argv_ == NULL) return 0; + + argc = 0; + for (cur = strtok((char*)args->argv_data_.bytes, sep); + cur != NULL; + cur = strtok(NULL, sep)) { + if (argc == MAX_ARGC) { + fprintf(stderr, "ERROR: Arguments limit %d reached\n", MAX_ARGC); + return 0; + } + assert(strlen(cur) != 0); + args->argv_[argc++] = cur; + } + args->argc_ = argc; + } + return 1; +} + +//------------------------------------------------------------------------------ + +int ExUtilReadFileToWebPData(const char* const filename, + WebPData* const webp_data) { + const uint8_t* data; + size_t size; + if (webp_data == NULL) return 0; + if (!ImgIoUtilReadFile(filename, &data, &size)) return 0; + webp_data->bytes = data; + webp_data->size = size; + return 1; +} diff --git a/external/libwebp-0.6.0/examples/example_util.h b/external/libwebp-1.0.0/examples/example_util.h similarity index 58% rename from external/libwebp-0.6.0/examples/example_util.h rename to external/libwebp-1.0.0/examples/example_util.h index 4bb42eb7..fe762a4d 100644 --- a/external/libwebp-0.6.0/examples/example_util.h +++ b/external/libwebp-1.0.0/examples/example_util.h @@ -14,6 +14,7 @@ #define WEBP_EXAMPLES_EXAMPLE_UTIL_H_ #include "webp/types.h" +#include "webp/mux_types.h" #ifdef __cplusplus extern "C" { @@ -35,6 +36,33 @@ float ExUtilGetFloat(const char* const v, int* const error); // actually parsed is returned, or -1 if an error occurred. int ExUtilGetInts(const char* v, int base, int max_output, int output[]); +// Reads a file named 'filename' into a WebPData structure. The content of +// webp_data is overwritten. Returns false in case of error. +int ExUtilReadFileToWebPData(const char* const filename, + WebPData* const webp_data); + +//------------------------------------------------------------------------------ +// Command-line arguments + +typedef struct { + int argc_; + const char** argv_; + WebPData argv_data_; + int own_argv_; +} CommandLineArguments; + +// Initializes the structure from the command-line parameters. If there is +// only one parameter and it does not start with a '-', then it is assumed to +// be a file name. This file will be read and tokenized into command-line +// arguments. The content of 'args' is overwritten. +// Returns false in case of error (memory allocation failure, non +// existing file, too many arguments, ...). +int ExUtilInitCommandLineArguments(int argc, const char* argv[], + CommandLineArguments* const args); + +// Deallocate all memory and reset 'args'. +void ExUtilDeleteCommandLineArguments(CommandLineArguments* const args); + #ifdef __cplusplus } // extern "C" #endif diff --git a/external/libwebp-0.6.0/examples/gif2webp.c b/external/libwebp-1.0.0/examples/gif2webp.c similarity index 88% rename from external/libwebp-0.6.0/examples/gif2webp.c rename to external/libwebp-1.0.0/examples/gif2webp.c index 68e7350a..b61f273e 100644 --- a/external/libwebp-0.6.0/examples/gif2webp.c +++ b/external/libwebp-1.0.0/examples/gif2webp.c @@ -23,6 +23,10 @@ #ifdef WEBP_HAVE_GIF +#if defined(HAVE_UNISTD_H) && HAVE_UNISTD_H +#include +#endif + #include #include "webp/encode.h" #include "webp/mux.h" @@ -30,6 +34,10 @@ #include "../imageio/imageio_util.h" #include "./gifdec.h" +#if !defined(STDIN_FILENO) +#define STDIN_FILENO 0 +#endif + //------------------------------------------------------------------------------ static int transparent_index = GIF_INDEX_INVALID; // Opaque by default. @@ -72,8 +80,10 @@ static void Help(void) { printf(" -metadata ..... comma separated list of metadata to\n"); printf(" "); printf("copy from the input to the output if present\n"); - printf(" " - "Valid values: all, none, icc, xmp (default)\n"); + printf(" "); + printf("Valid values: all, none, icc, xmp (default)\n"); + printf(" -loop_compatibility .... use compatibility mode for Chrome\n"); + printf(" version prior to M62 (inclusive)\n"); printf(" -mt .................... use multi-threading if available\n"); printf("\n"); printf(" -version ............... print version number and exit\n"); @@ -104,7 +114,7 @@ int main(int argc, const char *argv[]) { WebPAnimEncoderOptions enc_options; WebPConfig config; - int is_first_frame = 1; // Whether we are processing the first frame. + int frame_number = 0; // Whether we are processing the first frame. int done; int c; int quiet = 0; @@ -115,8 +125,9 @@ int main(int argc, const char *argv[]) { int stored_icc = 0; // Whether we have already stored an ICC profile. WebPData xmp_data; int stored_xmp = 0; // Whether we have already stored an XMP profile. - int loop_count = 0; + int loop_count = 0; // default: infinite int stored_loop_count = 0; // Whether we have found an explicit loop count. + int loop_compatibility = 0; WebPMux* mux = NULL; int default_kmin = 1; // Whether to use default kmin value. @@ -151,6 +162,8 @@ int main(int argc, const char *argv[]) { } else if (!strcmp(argv[c], "-mixed")) { enc_options.allow_mixed = 1; config.lossless = 0; + } else if (!strcmp(argv[c], "-loop_compatibility")) { + loop_compatibility = 1; } else if (!strcmp(argv[c], "-q") && c < argc - 1) { config.quality = ExUtilGetFloat(argv[++c], &parse_error); } else if (!strcmp(argv[c], "-m") && c < argc - 1) { @@ -258,9 +271,11 @@ int main(int argc, const char *argv[]) { // Start the decoder object #if LOCAL_GIF_PREREQ(5,0) - gif = DGifOpenFileName(in_file, &gif_error); + gif = !strcmp(in_file, "-") ? DGifOpenFileHandle(STDIN_FILENO, &gif_error) + : DGifOpenFileName(in_file, &gif_error); #else - gif = DGifOpenFileName(in_file); + gif = !strcmp(in_file, "-") ? DGifOpenFileHandle(STDIN_FILENO) + : DGifOpenFileName(in_file); #endif if (gif == NULL) goto End; @@ -277,7 +292,7 @@ int main(int argc, const char *argv[]) { if (!DGifGetImageDesc(gif)) goto End; - if (is_first_frame) { + if (frame_number == 0) { if (verbose) { printf("Canvas screen: %d x %d\n", gif->SWidth, gif->SHeight); } @@ -319,7 +334,6 @@ int main(int argc, const char *argv[]) { "a memory error.\n"); goto End; } - is_first_frame = 0; } // Some even more broken GIF can have sub-rect with zero width/height. @@ -336,13 +350,25 @@ int main(int argc, const char *argv[]) { GIFBlendFrames(&frame, &gif_rect, &curr_canvas); if (!WebPAnimEncoderAdd(enc, &curr_canvas, frame_timestamp, &config)) { - fprintf(stderr, "%s\n", WebPAnimEncoderGetError(enc)); + fprintf(stderr, "Error while adding frame #%d: %s\n", frame_number, + WebPAnimEncoderGetError(enc)); + goto End; + } else { + ++frame_number; } // Update canvases. GIFDisposeFrame(orig_dispose, &gif_rect, &prev_canvas, &curr_canvas); GIFCopyPixels(&curr_canvas, &prev_canvas); + // Force frames with a small or no duration to 100ms to be consistent + // with web browsers and other transcoding tools. This also avoids + // incorrect durations between frames when padding frames are + // discarded. + if (frame_duration <= 10) { + frame_duration = 100; + } + // Update timestamp (for next frame). frame_timestamp += frame_duration; @@ -386,7 +412,7 @@ int main(int argc, const char *argv[]) { if (verbose) { fprintf(stderr, "Loop count: %d\n", loop_count); } - stored_loop_count = (loop_count != 0); + stored_loop_count = loop_compatibility ? (loop_count != 0) : 1; } else { // An extension containing metadata. // We only store the first encountered chunk of each type, and // only if requested by the user. @@ -443,6 +469,23 @@ int main(int argc, const char *argv[]) { goto End; } + if (!loop_compatibility) { + if (!stored_loop_count) { + // if no loop-count element is seen, the default is '1' (loop-once) + // and we need to signal it explicitly in WebP. Note however that + // in case there's a single frame, we still don't need to store it. + if (frame_number > 1) { + stored_loop_count = 1; + loop_count = 1; + } + } else if (loop_count > 0) { + // adapt GIF's semantic to WebP's (except in the infinite-loop case) + loop_count += 1; + } + } + // loop_count of 0 is the default (infinite), so no need to signal it + if (loop_count == 0) stored_loop_count = 0; + if (stored_loop_count || stored_icc || stored_xmp) { // Re-mux to add loop count and/or metadata as needed. mux = WebPMuxCreate(&webp_data, 1); @@ -507,8 +550,13 @@ int main(int argc, const char *argv[]) { goto End; } if (!quiet) { - fprintf(stderr, "Saved output file (%d bytes): %s\n", - (int)webp_data.size, out_file); + if (!strcmp(out_file, "-")) { + fprintf(stderr, "Saved %d bytes to STDIO\n", + (int)webp_data.size); + } else { + fprintf(stderr, "Saved output file (%d bytes): %s\n", + (int)webp_data.size, out_file); + } } } else { if (!quiet) { diff --git a/external/libwebp-0.6.0/examples/gifdec.c b/external/libwebp-1.0.0/examples/gifdec.c similarity index 99% rename from external/libwebp-0.6.0/examples/gifdec.c rename to external/libwebp-1.0.0/examples/gifdec.c index 5442aa50..4219352f 100644 --- a/external/libwebp-0.6.0/examples/gifdec.c +++ b/external/libwebp-1.0.0/examples/gifdec.c @@ -28,11 +28,17 @@ #define GIF_DISPOSE_SHIFT 2 // from utils/utils.h +#ifdef __cplusplus +extern "C" { +#endif extern void WebPCopyPlane(const uint8_t* src, int src_stride, uint8_t* dst, int dst_stride, int width, int height); extern void WebPCopyPixels(const WebPPicture* const src, WebPPicture* const dst); +#ifdef __cplusplus +} +#endif void GIFGetBackgroundColor(const ColorMapObject* const color_map, int bgcolor_index, int transparent_index, diff --git a/external/libwebp-0.6.0/examples/gifdec.h b/external/libwebp-1.0.0/examples/gifdec.h similarity index 100% rename from external/libwebp-0.6.0/examples/gifdec.h rename to external/libwebp-1.0.0/examples/gifdec.h diff --git a/external/libwebp-0.6.0/examples/img2webp.c b/external/libwebp-1.0.0/examples/img2webp.c similarity index 90% rename from external/libwebp-0.6.0/examples/img2webp.c rename to external/libwebp-1.0.0/examples/img2webp.c index d9012cc4..2f750c59 100644 --- a/external/libwebp-0.6.0/examples/img2webp.c +++ b/external/libwebp-1.0.0/examples/img2webp.c @@ -48,6 +48,7 @@ static void Help(void) { printf(" -mixed ............... use mixed lossy/lossless automatic mode\n"); printf(" -v ................... verbose mode\n"); printf(" -h ................... this help\n"); + printf(" -version ............. print version number and exit\n"); printf("\n"); printf("Per-frame options (only used for subsequent images input):\n"); @@ -117,14 +118,13 @@ static int SetLoopCount(int loop_count, WebPData* const webp_data) { //------------------------------------------------------------------------------ -int main(int argc, char* argv[]) { +int main(int argc, const char* argv[]) { const char* output = NULL; WebPAnimEncoder* enc = NULL; int verbose = 0; int pic_num = 0; int duration = 100; int timestamp_ms = 0; - int ok = 1; int loop_count = 0; int width = 0, height = 0; WebPAnimEncoderOptions anim_config; @@ -133,17 +133,23 @@ int main(int argc, char* argv[]) { WebPData webp_data; int c; int have_input = 0; + CommandLineArguments cmd_args; + int ok = ExUtilInitCommandLineArguments(argc - 1, argv + 1, &cmd_args); + if (!ok) return 1; + argc = cmd_args.argc_; + argv = cmd_args.argv_; WebPDataInit(&webp_data); if (!WebPAnimEncoderOptionsInit(&anim_config) || !WebPConfigInit(&config) || !WebPPictureInit(&pic)) { fprintf(stderr, "Library version mismatch!\n"); - return 1; + ok = 0; + goto End; } // 1st pass of option parsing - for (c = 1; ok && c < argc; ++c) { + for (c = 0; ok && c < argc; ++c) { if (argv[c][0] == '-') { int parse_error = 0; if (!strcmp(argv[c], "-o") && c + 1 < argc) { @@ -171,7 +177,15 @@ int main(int argc, char* argv[]) { verbose = 1; } else if (!strcmp(argv[c], "-h") || !strcmp(argv[c], "-help")) { Help(); - return 0; + goto End; + } else if (!strcmp(argv[c], "-version")) { + const int enc_version = WebPGetEncoderVersion(); + const int mux_version = WebPGetMuxVersion(); + printf("WebP Encoder version: %d.%d.%d\nWebP Mux version: %d.%d.%d\n", + (enc_version >> 16) & 0xff, (enc_version >> 8) & 0xff, + enc_version & 0xff, (mux_version >> 16) & 0xff, + (mux_version >> 8) & 0xff, mux_version & 0xff); + goto End; } else { continue; } @@ -184,13 +198,13 @@ int main(int argc, char* argv[]) { } if (!have_input) { fprintf(stderr, "No input file(s) for generating animation!\n"); - return 0; + goto End; } // image-reading pass pic_num = 0; config.lossless = 1; - for (c = 1; ok && c < argc; ++c) { + for (c = 0; ok && c < argc; ++c) { if (argv[c] == NULL) continue; if (argv[c][0] == '-') { // parse local options int parse_error = 0; @@ -294,7 +308,7 @@ int main(int argc, char* argv[]) { fprintf(stderr, "[%d frames, %u bytes].\n", pic_num, (unsigned int)webp_data.size); } - WebPDataClear(&webp_data); + ExUtilDeleteCommandLineArguments(&cmd_args); return ok ? 0 : 1; } diff --git a/external/libwebp-0.6.0/examples/stopwatch.h b/external/libwebp-1.0.0/examples/stopwatch.h similarity index 100% rename from external/libwebp-0.6.0/examples/stopwatch.h rename to external/libwebp-1.0.0/examples/stopwatch.h diff --git a/external/libwebp-0.6.0/examples/test.webp b/external/libwebp-1.0.0/examples/test.webp similarity index 100% rename from external/libwebp-0.6.0/examples/test.webp rename to external/libwebp-1.0.0/examples/test.webp diff --git a/external/libwebp-0.6.0/examples/test_ref.ppm b/external/libwebp-1.0.0/examples/test_ref.ppm similarity index 100% rename from external/libwebp-0.6.0/examples/test_ref.ppm rename to external/libwebp-1.0.0/examples/test_ref.ppm diff --git a/external/libwebp-0.6.0/examples/vwebp.c b/external/libwebp-1.0.0/examples/vwebp.c similarity index 95% rename from external/libwebp-0.6.0/examples/vwebp.c rename to external/libwebp-1.0.0/examples/vwebp.c index 485d629b..a79c72cb 100644 --- a/external/libwebp-0.6.0/examples/vwebp.c +++ b/external/libwebp-1.0.0/examples/vwebp.c @@ -205,6 +205,11 @@ static void decode_callback(int what) { } } duration = curr->duration; + // Behavior copied from Chrome, cf: + // https://cs.chromium.org/chromium/src/third_party/WebKit/Source/ + // platform/graphics/DeferredImageDecoder.cpp? + // rcl=b4c33049f096cd283f32be9a58b9a9e768227c26&l=246 + if (duration <= 10) duration = 100; } if (!Decode()) { kParams.decoding_error = 1; @@ -248,9 +253,9 @@ static void HandleKey(unsigned char key, int pos_x, int pos_y) { } } } else if (key == 'i') { + // Note: doesn't handle refresh of animation's last-frame (it's quite + // more involved to do, since you need to save the previous frame). kParams.print_info = 1 - kParams.print_info; - // TODO(skal): handle refresh of animation's last-frame too. It's quite - // more involved though (need to save the previous frame). if (!kParams.has_animation) ClearPreviousFrame(); glutPostRedisplay(); } else if (key == 'd') { @@ -260,8 +265,8 @@ static void HandleKey(unsigned char key, int pos_x, int pos_y) { } static void HandleReshape(int width, int height) { - // TODO(skal): should we preserve aspect ratio? - // Also: handle larger-than-screen pictures correctly. + // Note: reshape doesn't preserve aspect ratio, and might + // be handling larger-than-screen pictures incorrectly. glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); @@ -378,13 +383,23 @@ static void HandleDisplay(void) { } } glPopMatrix(); +#if defined(__APPLE__) || defined(_WIN32) glFlush(); +#else + glutSwapBuffers(); +#endif } static void StartDisplay(void) { const int width = kParams.canvas_width; const int height = kParams.canvas_height; + // TODO(webp:365) GLUT_DOUBLE results in flickering / old frames to be + // partially displayed with animated webp + alpha. +#if defined(__APPLE__) || defined(_WIN32) glutInitDisplayMode(GLUT_RGBA); +#else + glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); +#endif glutInitWindowSize(width, height); glutCreateWindow("WebP viewer"); glutDisplayFunc(HandleDisplay); diff --git a/external/libwebp-1.0.0/examples/webpinfo.c b/external/libwebp-1.0.0/examples/webpinfo.c new file mode 100644 index 00000000..2dcd2775 --- /dev/null +++ b/external/libwebp-1.0.0/examples/webpinfo.c @@ -0,0 +1,1178 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// Command-line tool to print out the chunk level structure of WebP files +// along with basic integrity checks. +// +// Author: Hui Su (huisu@google.com) + +#include +#include + +#ifdef HAVE_CONFIG_H +#include "webp/config.h" +#endif + +#include "../imageio/imageio_util.h" +#include "webp/decode.h" +#include "webp/format_constants.h" +#include "webp/mux_types.h" + +#if defined(_MSC_VER) && _MSC_VER < 1900 +#define snprintf _snprintf +#endif + +#define LOG_ERROR(MESSAGE) \ + do { \ + if (webp_info->show_diagnosis_) { \ + fprintf(stderr, "Error: %s\n", MESSAGE); \ + } \ + } while (0) + +#define LOG_WARN(MESSAGE) \ + do { \ + if (webp_info->show_diagnosis_) { \ + fprintf(stderr, "Warning: %s\n", MESSAGE); \ + } \ + } while (0) + +static const char* const kFormats[3] = { + "Unknown", + "Lossy", + "Lossless" +}; + +static const char* const kLosslessTransforms[4] = { + "Predictor", + "Cross Color", + "Subtract Green", + "Color Indexing" +}; + +static const char* const kAlphaFilterMethods[4] = { + "None", + "Horizontal", + "Vertical", + "Gradient" +}; + +typedef enum { + WEBP_INFO_OK = 0, + WEBP_INFO_TRUNCATED_DATA, + WEBP_INFO_PARSE_ERROR, + WEBP_INFO_INVALID_PARAM, + WEBP_INFO_BITSTREAM_ERROR, + WEBP_INFO_MISSING_DATA, + WEBP_INFO_INVALID_COMMAND +} WebPInfoStatus; + +typedef enum ChunkID { + CHUNK_VP8, + CHUNK_VP8L, + CHUNK_VP8X, + CHUNK_ALPHA, + CHUNK_ANIM, + CHUNK_ANMF, + CHUNK_ICCP, + CHUNK_EXIF, + CHUNK_XMP, + CHUNK_UNKNOWN, + CHUNK_TYPES = CHUNK_UNKNOWN +} ChunkID; + +typedef struct { + size_t start_; + size_t end_; + const uint8_t* buf_; +} MemBuffer; + +typedef struct { + size_t offset_; + size_t size_; + const uint8_t* payload_; + ChunkID id_; +} ChunkData; + +typedef struct WebPInfo { + int canvas_width_; + int canvas_height_; + int loop_count_; + int num_frames_; + int chunk_counts_[CHUNK_TYPES]; + int anmf_subchunk_counts_[3]; // 0 VP8; 1 VP8L; 2 ALPH. + uint32_t bgcolor_; + int feature_flags_; + int has_alpha_; + // Used for parsing ANMF chunks. + int frame_width_, frame_height_; + size_t anim_frame_data_size_; + int is_processing_anim_frame_, seen_alpha_subchunk_, seen_image_subchunk_; + // Print output control. + int quiet_, show_diagnosis_, show_summary_; + int parse_bitstream_; +} WebPInfo; + +static void WebPInfoInit(WebPInfo* const webp_info) { + memset(webp_info, 0, sizeof(*webp_info)); +} + +static const char kWebPChunkTags[CHUNK_TYPES][4] = { + { 'V', 'P', '8', ' ' }, + { 'V', 'P', '8', 'L' }, + { 'V', 'P', '8', 'X' }, + { 'A', 'L', 'P', 'H' }, + { 'A', 'N', 'I', 'M' }, + { 'A', 'N', 'M', 'F' }, + { 'I', 'C', 'C', 'P' }, + { 'E', 'X', 'I', 'F' }, + { 'X', 'M', 'P', ' ' }, +}; + +// ----------------------------------------------------------------------------- +// Data reading. + +static int GetLE16(const uint8_t* const data) { + return (data[0] << 0) | (data[1] << 8); +} + +static int GetLE24(const uint8_t* const data) { + return GetLE16(data) | (data[2] << 16); +} + +static uint32_t GetLE32(const uint8_t* const data) { + return GetLE16(data) | ((uint32_t)GetLE16(data + 2) << 16); +} + +static int ReadLE16(const uint8_t** data) { + const int val = GetLE16(*data); + *data += 2; + return val; +} + +static int ReadLE24(const uint8_t** data) { + const int val = GetLE24(*data); + *data += 3; + return val; +} + +static uint32_t ReadLE32(const uint8_t** data) { + const uint32_t val = GetLE32(*data); + *data += 4; + return val; +} + +static int ReadFileToWebPData(const char* const filename, + WebPData* const webp_data) { + const uint8_t* data; + size_t size; + if (!ImgIoUtilReadFile(filename, &data, &size)) return 0; + webp_data->bytes = data; + webp_data->size = size; + return 1; +} + +// ----------------------------------------------------------------------------- +// MemBuffer object. + +static void InitMemBuffer(MemBuffer* const mem, const WebPData* webp_data) { + mem->buf_ = webp_data->bytes; + mem->start_ = 0; + mem->end_ = webp_data->size; +} + +static size_t MemDataSize(const MemBuffer* const mem) { + return (mem->end_ - mem->start_); +} + +static const uint8_t* GetBuffer(MemBuffer* const mem) { + return mem->buf_ + mem->start_; +} + +static void Skip(MemBuffer* const mem, size_t size) { + mem->start_ += size; +} + +static uint32_t ReadMemBufLE32(MemBuffer* const mem) { + const uint8_t* const data = mem->buf_ + mem->start_; + const uint32_t val = GetLE32(data); + assert(MemDataSize(mem) >= 4); + Skip(mem, 4); + return val; +} + +// ----------------------------------------------------------------------------- +// Lossy bitstream analysis. + +static int GetBits(const uint8_t* const data, size_t data_size, size_t nb, + int* val, uint64_t* const bit_pos) { + *val = 0; + while (nb-- > 0) { + const uint64_t p = (*bit_pos)++; + if ((p >> 3) >= data_size) { + return 0; + } else { + const int bit = !!(data[p >> 3] & (128 >> ((p & 7)))); + *val = (*val << 1) | bit; + } + } + return 1; +} + +static int GetSignedBits(const uint8_t* const data, size_t data_size, size_t nb, + int* val, uint64_t* const bit_pos) { + int sign; + if (!GetBits(data, data_size, nb, val, bit_pos)) return 0; + if (!GetBits(data, data_size, 1, &sign, bit_pos)) return 0; + if (sign) *val = -(*val); + return 1; +} + +#define GET_BITS(v, n) \ + do { \ + if (!GetBits(data, data_size, n, &(v), bit_pos)) { \ + LOG_ERROR("Truncated lossy bitstream."); \ + return WEBP_INFO_TRUNCATED_DATA; \ + } \ + } while (0) + +#define GET_SIGNED_BITS(v, n) \ + do { \ + if (!GetSignedBits(data, data_size, n, &(v), bit_pos)) { \ + LOG_ERROR("Truncated lossy bitstream."); \ + return WEBP_INFO_TRUNCATED_DATA; \ + } \ + } while (0) + +static WebPInfoStatus ParseLossySegmentHeader(const WebPInfo* const webp_info, + const uint8_t* const data, + size_t data_size, + uint64_t* const bit_pos) { + int use_segment; + GET_BITS(use_segment, 1); + printf(" Use segment: %d\n", use_segment); + if (use_segment) { + int update_map, update_data; + GET_BITS(update_map, 1); + GET_BITS(update_data, 1); + printf(" Update map: %d\n" + " Update data: %d\n", + update_map, update_data); + if (update_data) { + int i, a_delta; + int quantizer[4] = {0, 0, 0, 0}; + int filter_strength[4] = {0, 0, 0, 0}; + GET_BITS(a_delta, 1); + printf(" Absolute delta: %d\n", a_delta); + for (i = 0; i < 4; ++i) { + int bit; + GET_BITS(bit, 1); + if (bit) GET_SIGNED_BITS(quantizer[i], 7); + } + for (i = 0; i < 4; ++i) { + int bit; + GET_BITS(bit, 1); + if (bit) GET_SIGNED_BITS(filter_strength[i], 6); + } + printf(" Quantizer: %d %d %d %d\n", quantizer[0], quantizer[1], + quantizer[2], quantizer[3]); + printf(" Filter strength: %d %d %d %d\n", filter_strength[0], + filter_strength[1], filter_strength[2], filter_strength[3]); + } + if (update_map) { + int i; + int prob_segment[3] = {255, 255, 255}; + for (i = 0; i < 3; ++i) { + int bit; + GET_BITS(bit, 1); + if (bit) GET_BITS(prob_segment[i], 8); + } + printf(" Prob segment: %d %d %d\n", + prob_segment[0], prob_segment[1], prob_segment[2]); + } + } + return WEBP_INFO_OK; +} + +static WebPInfoStatus ParseLossyFilterHeader(const WebPInfo* const webp_info, + const uint8_t* const data, + size_t data_size, + uint64_t* const bit_pos) { + int simple_filter, level, sharpness, use_lf_delta; + GET_BITS(simple_filter, 1); + GET_BITS(level, 6); + GET_BITS(sharpness, 3); + GET_BITS(use_lf_delta, 1); + printf(" Simple filter: %d\n", simple_filter); + printf(" Level: %d\n", level); + printf(" Sharpness: %d\n", sharpness); + printf(" Use lf delta: %d\n", use_lf_delta); + if (use_lf_delta) { + int update; + GET_BITS(update, 1); + printf(" Update lf delta: %d\n", update); + if (update) { + int i; + for (i = 0; i < 4 + 4; ++i) { + int temp; + GET_BITS(temp, 1); + if (temp) GET_BITS(temp, 7); + } + } + } + return WEBP_INFO_OK; +} + +static WebPInfoStatus ParseLossyHeader(const ChunkData* const chunk_data, + const WebPInfo* const webp_info) { + const uint8_t* data = chunk_data->payload_; + size_t data_size = chunk_data->size_ - CHUNK_HEADER_SIZE; + const uint32_t bits = (uint32_t)data[0] | (data[1] << 8) | (data[2] << 16); + const int key_frame = !(bits & 1); + const int profile = (bits >> 1) & 7; + const int display = (bits >> 4) & 1; + const uint32_t partition0_length = (bits >> 5); + WebPInfoStatus status = WEBP_INFO_OK; + uint64_t bit_position = 0; + uint64_t* const bit_pos = &bit_position; + int colorspace, clamp_type; + printf(" Parsing lossy bitstream...\n"); + // Calling WebPGetFeatures() in ProcessImageChunk() should ensure this. + assert(chunk_data->size_ >= CHUNK_HEADER_SIZE + 10); + if (profile > 3) { + LOG_ERROR("Unknown profile."); + return WEBP_INFO_BITSTREAM_ERROR; + } + if (!display) { + LOG_ERROR("Frame is not displayable."); + return WEBP_INFO_BITSTREAM_ERROR; + } + data += 3; + data_size -= 3; + printf(" Key frame: %s\n" + " Profile: %d\n" + " Display: %s\n" + " Part. 0 length: %d\n", + key_frame ? "Yes" : "No", profile, + display ? "Yes" : "No", partition0_length); + if (key_frame) { + if (!(data[0] == 0x9d && data[1] == 0x01 && data[2] == 0x2a)) { + LOG_ERROR("Invalid lossy bitstream signature."); + return WEBP_INFO_BITSTREAM_ERROR; + } + printf(" Width: %d\n" + " X scale: %d\n" + " Height: %d\n" + " Y scale: %d\n", + ((data[4] << 8) | data[3]) & 0x3fff, data[4] >> 6, + ((data[6] << 8) | data[5]) & 0x3fff, data[6] >> 6); + data += 7; + data_size -= 7; + } else { + LOG_ERROR("Non-keyframe detected in lossy bitstream."); + return WEBP_INFO_BITSTREAM_ERROR; + } + if (partition0_length >= data_size) { + LOG_ERROR("Bad partition length."); + return WEBP_INFO_BITSTREAM_ERROR; + } + GET_BITS(colorspace, 1); + GET_BITS(clamp_type, 1); + printf(" Color space: %d\n", colorspace); + printf(" Clamp type: %d\n", clamp_type); + status = ParseLossySegmentHeader(webp_info, data, data_size, bit_pos); + if (status != WEBP_INFO_OK) return status; + status = ParseLossyFilterHeader(webp_info, data, data_size, bit_pos); + if (status != WEBP_INFO_OK) return status; + { // Partition number and size. + const uint8_t* part_size = data + partition0_length; + int num_parts, i; + size_t part_data_size; + GET_BITS(num_parts, 2); + num_parts = 1 << num_parts; + if ((int)(data_size - partition0_length) < (num_parts - 1) * 3) { + LOG_ERROR("Truncated lossy bitstream."); + return WEBP_INFO_TRUNCATED_DATA; + } + part_data_size = data_size - partition0_length - (num_parts - 1) * 3; + printf(" Total partitions: %d\n", num_parts); + for (i = 1; i < num_parts; ++i) { + const size_t psize = + part_size[0] | (part_size[1] << 8) | (part_size[2] << 16); + if (psize > part_data_size) { + LOG_ERROR("Truncated partition."); + return WEBP_INFO_TRUNCATED_DATA; + } + printf(" Part. %d length: %d\n", i, (int)psize); + part_data_size -= psize; + part_size += 3; + } + } + // Quantizer. + { + int base_q, bit; + int dq_y1_dc = 0, dq_y2_dc = 0, dq_y2_ac = 0, dq_uv_dc = 0, dq_uv_ac = 0; + GET_BITS(base_q, 7); + GET_BITS(bit, 1); + if (bit) GET_SIGNED_BITS(dq_y1_dc, 4); + GET_BITS(bit, 1); + if (bit) GET_SIGNED_BITS(dq_y2_dc, 4); + GET_BITS(bit, 1); + if (bit) GET_SIGNED_BITS(dq_y2_ac, 4); + GET_BITS(bit, 1); + if (bit) GET_SIGNED_BITS(dq_uv_dc, 4); + GET_BITS(bit, 1); + if (bit) GET_SIGNED_BITS(dq_uv_ac, 4); + printf(" Base Q: %d\n", base_q); + printf(" DQ Y1 DC: %d\n", dq_y1_dc); + printf(" DQ Y2 DC: %d\n", dq_y2_dc); + printf(" DQ Y2 AC: %d\n", dq_y2_ac); + printf(" DQ UV DC: %d\n", dq_uv_dc); + printf(" DQ UV AC: %d\n", dq_uv_ac); + } + if ((*bit_pos >> 3) >= partition0_length) { + LOG_ERROR("Truncated lossy bitstream."); + return WEBP_INFO_TRUNCATED_DATA; + } + return WEBP_INFO_OK; +} + +// ----------------------------------------------------------------------------- +// Lossless bitstream analysis. + +static int LLGetBits(const uint8_t* const data, size_t data_size, size_t nb, + int* val, uint64_t* const bit_pos) { + uint32_t i = 0; + *val = 0; + while (i < nb) { + const uint64_t p = (*bit_pos)++; + if ((p >> 3) >= data_size) { + return 0; + } else { + const int bit = !!(data[p >> 3] & (1 << ((p & 7)))); + *val = *val | (bit << i); + ++i; + } + } + return 1; +} + +#define LL_GET_BITS(v, n) \ + do { \ + if (!LLGetBits(data, data_size, n, &(v), bit_pos)) { \ + LOG_ERROR("Truncated lossless bitstream."); \ + return WEBP_INFO_TRUNCATED_DATA; \ + } \ + } while (0) + +static WebPInfoStatus ParseLosslessTransform(WebPInfo* const webp_info, + const uint8_t* const data, + size_t data_size, + uint64_t* const bit_pos) { + int use_transform, block_size, n_colors; + LL_GET_BITS(use_transform, 1); + printf(" Use transform: %s\n", use_transform ? "Yes" : "No"); + if (use_transform) { + int type; + LL_GET_BITS(type, 2); + printf(" 1st transform: %s (%d)\n", kLosslessTransforms[type], type); + switch (type) { + case PREDICTOR_TRANSFORM: + case CROSS_COLOR_TRANSFORM: + LL_GET_BITS(block_size, 3); + block_size = 1 << (block_size + 2); + printf(" Tran. block size: %d\n", block_size); + break; + case COLOR_INDEXING_TRANSFORM: + LL_GET_BITS(n_colors, 8); + n_colors += 1; + printf(" No. of colors: %d\n", n_colors); + break; + default: break; + } + } + return WEBP_INFO_OK; +} + +static WebPInfoStatus ParseLosslessHeader(const ChunkData* const chunk_data, + WebPInfo* const webp_info) { + const uint8_t* data = chunk_data->payload_; + size_t data_size = chunk_data->size_ - CHUNK_HEADER_SIZE; + uint64_t bit_position = 0; + uint64_t* const bit_pos = &bit_position; + WebPInfoStatus status; + printf(" Parsing lossless bitstream...\n"); + if (data_size < VP8L_FRAME_HEADER_SIZE) { + LOG_ERROR("Truncated lossless bitstream."); + return WEBP_INFO_TRUNCATED_DATA; + } + if (data[0] != VP8L_MAGIC_BYTE) { + LOG_ERROR("Invalid lossless bitstream signature."); + return WEBP_INFO_BITSTREAM_ERROR; + } + data += 1; + data_size -= 1; + { + int width, height, has_alpha, version; + LL_GET_BITS(width, 14); + LL_GET_BITS(height, 14); + LL_GET_BITS(has_alpha, 1); + LL_GET_BITS(version, 3); + width += 1; + height += 1; + printf(" Width: %d\n", width); + printf(" Height: %d\n", height); + printf(" Alpha: %d\n", has_alpha); + printf(" Version: %d\n", version); + } + status = ParseLosslessTransform(webp_info, data, data_size, bit_pos); + if (status != WEBP_INFO_OK) return status; + return WEBP_INFO_OK; +} + +static WebPInfoStatus ParseAlphaHeader(const ChunkData* const chunk_data, + WebPInfo* const webp_info) { + const uint8_t* data = chunk_data->payload_; + size_t data_size = chunk_data->size_ - CHUNK_HEADER_SIZE; + if (data_size <= ALPHA_HEADER_LEN) { + LOG_ERROR("Truncated ALPH chunk."); + return WEBP_INFO_TRUNCATED_DATA; + } + printf(" Parsing ALPH chunk...\n"); + { + const int compression_method = (data[0] >> 0) & 0x03; + const int filter = (data[0] >> 2) & 0x03; + const int pre_processing = (data[0] >> 4) & 0x03; + const int reserved_bits = (data[0] >> 6) & 0x03; + printf(" Compression: %d\n", compression_method); + printf(" Filter: %s (%d)\n", + kAlphaFilterMethods[filter], filter); + printf(" Pre-processing: %d\n", pre_processing); + if (compression_method > ALPHA_LOSSLESS_COMPRESSION) { + LOG_ERROR("Invalid Alpha compression method."); + return WEBP_INFO_BITSTREAM_ERROR; + } + if (pre_processing > ALPHA_PREPROCESSED_LEVELS) { + LOG_ERROR("Invalid Alpha pre-processing method."); + return WEBP_INFO_BITSTREAM_ERROR; + } + if (reserved_bits != 0) { + LOG_WARN("Reserved bits in ALPH chunk header are not all 0."); + } + data += ALPHA_HEADER_LEN; + data_size -= ALPHA_HEADER_LEN; + if (compression_method == ALPHA_LOSSLESS_COMPRESSION) { + uint64_t bit_pos = 0; + WebPInfoStatus status = + ParseLosslessTransform(webp_info, data, data_size, &bit_pos); + if (status != WEBP_INFO_OK) return status; + } + } + return WEBP_INFO_OK; +} + +// ----------------------------------------------------------------------------- +// Chunk parsing. + +static WebPInfoStatus ParseRIFFHeader(const WebPInfo* const webp_info, + MemBuffer* const mem) { + const size_t min_size = RIFF_HEADER_SIZE + CHUNK_HEADER_SIZE; + size_t riff_size; + + if (MemDataSize(mem) < min_size) { + LOG_ERROR("Truncated data detected when parsing RIFF header."); + return WEBP_INFO_TRUNCATED_DATA; + } + if (memcmp(GetBuffer(mem), "RIFF", CHUNK_SIZE_BYTES) || + memcmp(GetBuffer(mem) + CHUNK_HEADER_SIZE, "WEBP", CHUNK_SIZE_BYTES)) { + LOG_ERROR("Corrupted RIFF header."); + return WEBP_INFO_PARSE_ERROR; + } + riff_size = GetLE32(GetBuffer(mem) + TAG_SIZE); + if (riff_size < CHUNK_HEADER_SIZE) { + LOG_ERROR("RIFF size is too small."); + return WEBP_INFO_PARSE_ERROR; + } + if (riff_size > MAX_CHUNK_PAYLOAD) { + LOG_ERROR("RIFF size is over limit."); + return WEBP_INFO_PARSE_ERROR; + } + riff_size += CHUNK_HEADER_SIZE; + if (!webp_info->quiet_) { + printf("RIFF HEADER:\n"); + printf(" File size: %6d\n", (int)riff_size); + } + if (riff_size < mem->end_) { + LOG_WARN("RIFF size is smaller than the file size."); + mem->end_ = riff_size; + } else if (riff_size > mem->end_) { + LOG_ERROR("Truncated data detected when parsing RIFF payload."); + return WEBP_INFO_TRUNCATED_DATA; + } + Skip(mem, RIFF_HEADER_SIZE); + return WEBP_INFO_OK; +} + +static WebPInfoStatus ParseChunk(const WebPInfo* const webp_info, + MemBuffer* const mem, + ChunkData* const chunk_data) { + memset(chunk_data, 0, sizeof(*chunk_data)); + if (MemDataSize(mem) < CHUNK_HEADER_SIZE) { + LOG_ERROR("Truncated data detected when parsing chunk header."); + return WEBP_INFO_TRUNCATED_DATA; + } else { + const size_t chunk_start_offset = mem->start_; + const uint32_t fourcc = ReadMemBufLE32(mem); + const uint32_t payload_size = ReadMemBufLE32(mem); + const uint32_t payload_size_padded = payload_size + (payload_size & 1); + const size_t chunk_size = CHUNK_HEADER_SIZE + payload_size_padded; + int i; + if (payload_size > MAX_CHUNK_PAYLOAD) { + LOG_ERROR("Size of chunk payload is over limit."); + return WEBP_INFO_INVALID_PARAM; + } + if (payload_size_padded > MemDataSize(mem)){ + LOG_ERROR("Truncated data detected when parsing chunk payload."); + return WEBP_INFO_TRUNCATED_DATA; + } + for (i = 0; i < CHUNK_TYPES; ++i) { + if (!memcmp(kWebPChunkTags[i], &fourcc, TAG_SIZE)) break; + } + chunk_data->offset_ = chunk_start_offset; + chunk_data->size_ = chunk_size; + chunk_data->id_ = (ChunkID)i; + chunk_data->payload_ = GetBuffer(mem); + if (chunk_data->id_ == CHUNK_ANMF) { + if (payload_size != payload_size_padded) { + LOG_ERROR("ANMF chunk size should always be even."); + return WEBP_INFO_PARSE_ERROR; + } + // There are sub-chunks to be parsed in an ANMF chunk. + Skip(mem, ANMF_CHUNK_SIZE); + } else { + Skip(mem, payload_size_padded); + } + return WEBP_INFO_OK; + } +} + +// ----------------------------------------------------------------------------- +// Chunk analysis. + +static WebPInfoStatus ProcessVP8XChunk(const ChunkData* const chunk_data, + WebPInfo* const webp_info) { + const uint8_t* data = chunk_data->payload_; + if (webp_info->chunk_counts_[CHUNK_VP8] || + webp_info->chunk_counts_[CHUNK_VP8L] || + webp_info->chunk_counts_[CHUNK_VP8X]) { + LOG_ERROR("Already seen a VP8/VP8L/VP8X chunk when parsing VP8X chunk."); + return WEBP_INFO_PARSE_ERROR; + } + if (chunk_data->size_ != VP8X_CHUNK_SIZE + CHUNK_HEADER_SIZE) { + LOG_ERROR("Corrupted VP8X chunk."); + return WEBP_INFO_PARSE_ERROR; + } + ++webp_info->chunk_counts_[CHUNK_VP8X]; + webp_info->feature_flags_ = *data; + data += 4; + webp_info->canvas_width_ = 1 + ReadLE24(&data); + webp_info->canvas_height_ = 1 + ReadLE24(&data); + if (!webp_info->quiet_) { + printf(" ICCP: %d\n Alpha: %d\n EXIF: %d\n XMP: %d\n Animation: %d\n", + (webp_info->feature_flags_ & ICCP_FLAG) != 0, + (webp_info->feature_flags_ & ALPHA_FLAG) != 0, + (webp_info->feature_flags_ & EXIF_FLAG) != 0, + (webp_info->feature_flags_ & XMP_FLAG) != 0, + (webp_info->feature_flags_ & ANIMATION_FLAG) != 0); + printf(" Canvas size %d x %d\n", + webp_info->canvas_width_, webp_info->canvas_height_); + } + if (webp_info->canvas_width_ > MAX_CANVAS_SIZE) { + LOG_WARN("Canvas width is out of range in VP8X chunk."); + } + if (webp_info->canvas_height_ > MAX_CANVAS_SIZE) { + LOG_WARN("Canvas height is out of range in VP8X chunk."); + } + if ((uint64_t)webp_info->canvas_width_ * webp_info->canvas_height_ > + MAX_IMAGE_AREA) { + LOG_WARN("Canvas area is out of range in VP8X chunk."); + } + return WEBP_INFO_OK; +} + +static WebPInfoStatus ProcessANIMChunk(const ChunkData* const chunk_data, + WebPInfo* const webp_info) { + const uint8_t* data = chunk_data->payload_; + if (!webp_info->chunk_counts_[CHUNK_VP8X]) { + LOG_ERROR("ANIM chunk detected before VP8X chunk."); + return WEBP_INFO_PARSE_ERROR; + } + if (chunk_data->size_ != ANIM_CHUNK_SIZE + CHUNK_HEADER_SIZE) { + LOG_ERROR("Corrupted ANIM chunk."); + return WEBP_INFO_PARSE_ERROR; + } + webp_info->bgcolor_ = ReadLE32(&data); + webp_info->loop_count_ = ReadLE16(&data); + ++webp_info->chunk_counts_[CHUNK_ANIM]; + if (!webp_info->quiet_) { + printf(" Background color:(ARGB) %02x %02x %02x %02x\n", + (webp_info->bgcolor_ >> 24) & 0xff, + (webp_info->bgcolor_ >> 16) & 0xff, + (webp_info->bgcolor_ >> 8) & 0xff, + webp_info->bgcolor_ & 0xff); + printf(" Loop count : %d\n", webp_info->loop_count_); + } + if (webp_info->loop_count_ > MAX_LOOP_COUNT) { + LOG_WARN("Loop count is out of range in ANIM chunk."); + } + return WEBP_INFO_OK; +} + +static WebPInfoStatus ProcessANMFChunk(const ChunkData* const chunk_data, + WebPInfo* const webp_info) { + const uint8_t* data = chunk_data->payload_; + int offset_x, offset_y, width, height, duration, blend, dispose, temp; + if (webp_info->is_processing_anim_frame_) { + LOG_ERROR("ANMF chunk detected within another ANMF chunk."); + return WEBP_INFO_PARSE_ERROR; + } + if (!webp_info->chunk_counts_[CHUNK_ANIM]) { + LOG_ERROR("ANMF chunk detected before ANIM chunk."); + return WEBP_INFO_PARSE_ERROR; + } + if (chunk_data->size_ <= CHUNK_HEADER_SIZE + ANMF_CHUNK_SIZE) { + LOG_ERROR("Truncated data detected when parsing ANMF chunk."); + return WEBP_INFO_TRUNCATED_DATA; + } + offset_x = 2 * ReadLE24(&data); + offset_y = 2 * ReadLE24(&data); + width = 1 + ReadLE24(&data); + height = 1 + ReadLE24(&data); + duration = ReadLE24(&data); + temp = *data; + dispose = temp & 1; + blend = (temp >> 1) & 1; + ++webp_info->chunk_counts_[CHUNK_ANMF]; + if (!webp_info->quiet_) { + printf(" Offset_X: %d\n Offset_Y: %d\n Width: %d\n Height: %d\n" + " Duration: %d\n Dispose: %d\n Blend: %d\n", + offset_x, offset_y, width, height, duration, dispose, blend); + } + if (duration > MAX_DURATION) { + LOG_ERROR("Invalid duration parameter in ANMF chunk."); + return WEBP_INFO_INVALID_PARAM; + } + if (offset_x > MAX_POSITION_OFFSET || offset_y > MAX_POSITION_OFFSET) { + LOG_ERROR("Invalid offset parameters in ANMF chunk."); + return WEBP_INFO_INVALID_PARAM; + } + if ((uint64_t)offset_x + width > (uint64_t)webp_info->canvas_width_ || + (uint64_t)offset_y + height > (uint64_t)webp_info->canvas_height_) { + LOG_ERROR("Frame exceeds canvas in ANMF chunk."); + return WEBP_INFO_INVALID_PARAM; + } + webp_info->is_processing_anim_frame_ = 1; + webp_info->seen_alpha_subchunk_ = 0; + webp_info->seen_image_subchunk_ = 0; + webp_info->frame_width_ = width; + webp_info->frame_height_ = height; + webp_info->anim_frame_data_size_ = + chunk_data->size_ - CHUNK_HEADER_SIZE - ANMF_CHUNK_SIZE; + return WEBP_INFO_OK; +} + +static WebPInfoStatus ProcessImageChunk(const ChunkData* const chunk_data, + WebPInfo* const webp_info) { + const uint8_t* data = chunk_data->payload_ - CHUNK_HEADER_SIZE; + WebPBitstreamFeatures features; + const VP8StatusCode vp8_status = + WebPGetFeatures(data, chunk_data->size_, &features); + if (vp8_status != VP8_STATUS_OK) { + LOG_ERROR("VP8/VP8L bitstream error."); + return WEBP_INFO_BITSTREAM_ERROR; + } + if (!webp_info->quiet_) { + assert(features.format >= 0 && features.format <= 2); + printf(" Width: %d\n Height: %d\n Alpha: %d\n Animation: %d\n" + " Format: %s (%d)\n", + features.width, features.height, features.has_alpha, + features.has_animation, kFormats[features.format], features.format); + } + if (webp_info->is_processing_anim_frame_) { + ++webp_info->anmf_subchunk_counts_[chunk_data->id_ == CHUNK_VP8 ? 0 : 1]; + if (chunk_data->id_ == CHUNK_VP8L && webp_info->seen_alpha_subchunk_) { + LOG_ERROR("Both VP8L and ALPH sub-chunks are present in an ANMF chunk."); + return WEBP_INFO_PARSE_ERROR; + } + if (webp_info->frame_width_ != features.width || + webp_info->frame_height_ != features.height) { + LOG_ERROR("Frame size in VP8/VP8L sub-chunk differs from ANMF header."); + return WEBP_INFO_PARSE_ERROR; + } + if (webp_info->seen_image_subchunk_) { + LOG_ERROR("Consecutive VP8/VP8L sub-chunks in an ANMF chunk."); + return WEBP_INFO_PARSE_ERROR; + } + webp_info->seen_image_subchunk_ = 1; + } else { + if (webp_info->chunk_counts_[CHUNK_VP8] || + webp_info->chunk_counts_[CHUNK_VP8L]) { + LOG_ERROR("Multiple VP8/VP8L chunks detected."); + return WEBP_INFO_PARSE_ERROR; + } + if (chunk_data->id_ == CHUNK_VP8L && + webp_info->chunk_counts_[CHUNK_ALPHA]) { + LOG_WARN("Both VP8L and ALPH chunks are detected."); + } + if (webp_info->chunk_counts_[CHUNK_ANIM] || + webp_info->chunk_counts_[CHUNK_ANMF]) { + LOG_ERROR("VP8/VP8L chunk and ANIM/ANMF chunk are both detected."); + return WEBP_INFO_PARSE_ERROR; + } + if (webp_info->chunk_counts_[CHUNK_VP8X]) { + if (webp_info->canvas_width_ != features.width || + webp_info->canvas_height_ != features.height) { + LOG_ERROR("Image size in VP8/VP8L chunk differs from VP8X chunk."); + return WEBP_INFO_PARSE_ERROR; + } + } else { + webp_info->canvas_width_ = features.width; + webp_info->canvas_height_ = features.height; + if (webp_info->canvas_width_ < 1 || webp_info->canvas_height_ < 1 || + webp_info->canvas_width_ > MAX_CANVAS_SIZE || + webp_info->canvas_height_ > MAX_CANVAS_SIZE || + (uint64_t)webp_info->canvas_width_ * webp_info->canvas_height_ > + MAX_IMAGE_AREA) { + LOG_WARN("Invalid parameters in VP8/VP8L chunk."); + } + } + ++webp_info->chunk_counts_[chunk_data->id_]; + } + ++webp_info->num_frames_; + webp_info->has_alpha_ |= features.has_alpha; + if (webp_info->parse_bitstream_) { + const int is_lossy = (chunk_data->id_ == CHUNK_VP8); + const WebPInfoStatus status = + is_lossy ? ParseLossyHeader(chunk_data, webp_info) + : ParseLosslessHeader(chunk_data, webp_info); + if (status != WEBP_INFO_OK) return status; + } + return WEBP_INFO_OK; +} + +static WebPInfoStatus ProcessALPHChunk(const ChunkData* const chunk_data, + WebPInfo* const webp_info) { + if (webp_info->is_processing_anim_frame_) { + ++webp_info->anmf_subchunk_counts_[2]; + if (webp_info->seen_alpha_subchunk_) { + LOG_ERROR("Consecutive ALPH sub-chunks in an ANMF chunk."); + return WEBP_INFO_PARSE_ERROR; + } + webp_info->seen_alpha_subchunk_ = 1; + + if (webp_info->seen_image_subchunk_) { + LOG_ERROR("ALPHA sub-chunk detected after VP8 sub-chunk " + "in an ANMF chunk."); + return WEBP_INFO_PARSE_ERROR; + } + } else { + if (webp_info->chunk_counts_[CHUNK_ANIM] || + webp_info->chunk_counts_[CHUNK_ANMF]) { + LOG_ERROR("ALPHA chunk and ANIM/ANMF chunk are both detected."); + return WEBP_INFO_PARSE_ERROR; + } + if (!webp_info->chunk_counts_[CHUNK_VP8X]) { + LOG_ERROR("ALPHA chunk detected before VP8X chunk."); + return WEBP_INFO_PARSE_ERROR; + } + if (webp_info->chunk_counts_[CHUNK_VP8]) { + LOG_ERROR("ALPHA chunk detected after VP8 chunk."); + return WEBP_INFO_PARSE_ERROR; + } + if (webp_info->chunk_counts_[CHUNK_ALPHA]) { + LOG_ERROR("Multiple ALPHA chunks detected."); + return WEBP_INFO_PARSE_ERROR; + } + ++webp_info->chunk_counts_[CHUNK_ALPHA]; + } + webp_info->has_alpha_ = 1; + if (webp_info->parse_bitstream_) { + const WebPInfoStatus status = ParseAlphaHeader(chunk_data, webp_info); + if (status != WEBP_INFO_OK) return status; + } + return WEBP_INFO_OK; +} + +static WebPInfoStatus ProcessICCPChunk(const ChunkData* const chunk_data, + WebPInfo* const webp_info) { + (void)chunk_data; + if (!webp_info->chunk_counts_[CHUNK_VP8X]) { + LOG_ERROR("ICCP chunk detected before VP8X chunk."); + return WEBP_INFO_PARSE_ERROR; + } + if (webp_info->chunk_counts_[CHUNK_VP8] || + webp_info->chunk_counts_[CHUNK_VP8L] || + webp_info->chunk_counts_[CHUNK_ANIM]) { + LOG_ERROR("ICCP chunk detected after image data."); + return WEBP_INFO_PARSE_ERROR; + } + ++webp_info->chunk_counts_[CHUNK_ICCP]; + return WEBP_INFO_OK; +} + +static WebPInfoStatus ProcessChunk(const ChunkData* const chunk_data, + WebPInfo* const webp_info) { + WebPInfoStatus status = WEBP_INFO_OK; + ChunkID id = chunk_data->id_; + if (chunk_data->id_ == CHUNK_UNKNOWN) { + char error_message[50]; + snprintf(error_message, 50, "Unknown chunk at offset %6d, length %6d", + (int)chunk_data->offset_, (int)chunk_data->size_); + LOG_WARN(error_message); + } else { + if (!webp_info->quiet_) { + const char* tag = kWebPChunkTags[chunk_data->id_]; + printf("Chunk %c%c%c%c at offset %6d, length %6d\n", + tag[0], tag[1], tag[2], tag[3], (int)chunk_data->offset_, + (int)chunk_data->size_); + } + } + switch (id) { + case CHUNK_VP8: + case CHUNK_VP8L: + status = ProcessImageChunk(chunk_data, webp_info); + break; + case CHUNK_VP8X: + status = ProcessVP8XChunk(chunk_data, webp_info); + break; + case CHUNK_ALPHA: + status = ProcessALPHChunk(chunk_data, webp_info); + break; + case CHUNK_ANIM: + status = ProcessANIMChunk(chunk_data, webp_info); + break; + case CHUNK_ANMF: + status = ProcessANMFChunk(chunk_data, webp_info); + break; + case CHUNK_ICCP: + status = ProcessICCPChunk(chunk_data, webp_info); + break; + case CHUNK_EXIF: + case CHUNK_XMP: + ++webp_info->chunk_counts_[id]; + break; + case CHUNK_UNKNOWN: + default: + break; + } + if (webp_info->is_processing_anim_frame_ && id != CHUNK_ANMF) { + if (webp_info->anim_frame_data_size_ == chunk_data->size_) { + if (!webp_info->seen_image_subchunk_) { + LOG_ERROR("No VP8/VP8L chunk detected in an ANMF chunk."); + return WEBP_INFO_PARSE_ERROR; + } + webp_info->is_processing_anim_frame_ = 0; + } else if (webp_info->anim_frame_data_size_ > chunk_data->size_) { + webp_info->anim_frame_data_size_ -= chunk_data->size_; + } else { + LOG_ERROR("Truncated data detected when parsing ANMF chunk."); + return WEBP_INFO_TRUNCATED_DATA; + } + } + return status; +} + +static WebPInfoStatus Validate(const WebPInfo* const webp_info) { + if (webp_info->num_frames_ < 1) { + LOG_ERROR("No image/frame detected."); + return WEBP_INFO_MISSING_DATA; + } + if (webp_info->chunk_counts_[CHUNK_VP8X]) { + const int iccp = !!(webp_info->feature_flags_ & ICCP_FLAG); + const int exif = !!(webp_info->feature_flags_ & EXIF_FLAG); + const int xmp = !!(webp_info->feature_flags_ & XMP_FLAG); + const int animation = !!(webp_info->feature_flags_ & ANIMATION_FLAG); + const int alpha = !!(webp_info->feature_flags_ & ALPHA_FLAG); + if (!alpha && webp_info->has_alpha_) { + LOG_ERROR("Unexpected alpha data detected."); + return WEBP_INFO_PARSE_ERROR; + } + if (alpha && !webp_info->has_alpha_) { + LOG_WARN("Alpha flag is set with no alpha data present."); + } + if (iccp && !webp_info->chunk_counts_[CHUNK_ICCP]) { + LOG_ERROR("Missing ICCP chunk."); + return WEBP_INFO_MISSING_DATA; + } + if (exif && !webp_info->chunk_counts_[CHUNK_EXIF]) { + LOG_ERROR("Missing EXIF chunk."); + return WEBP_INFO_MISSING_DATA; + } + if (xmp && !webp_info->chunk_counts_[CHUNK_XMP]) { + LOG_ERROR("Missing XMP chunk."); + return WEBP_INFO_MISSING_DATA; + } + if (!iccp && webp_info->chunk_counts_[CHUNK_ICCP]) { + LOG_ERROR("Unexpected ICCP chunk detected."); + return WEBP_INFO_PARSE_ERROR; + } + if (!exif && webp_info->chunk_counts_[CHUNK_EXIF]) { + LOG_ERROR("Unexpected EXIF chunk detected."); + return WEBP_INFO_PARSE_ERROR; + } + if (!xmp && webp_info->chunk_counts_[CHUNK_XMP]) { + LOG_ERROR("Unexpected XMP chunk detected."); + return WEBP_INFO_PARSE_ERROR; + } + // Incomplete animation frame. + if (webp_info->is_processing_anim_frame_) return WEBP_INFO_MISSING_DATA; + if (!animation && webp_info->num_frames_ > 1) { + LOG_ERROR("More than 1 frame detected in non-animation file."); + return WEBP_INFO_PARSE_ERROR; + } + if (animation && (!webp_info->chunk_counts_[CHUNK_ANIM] || + !webp_info->chunk_counts_[CHUNK_ANMF])) { + LOG_ERROR("No ANIM/ANMF chunk detected in animation file."); + return WEBP_INFO_PARSE_ERROR; + } + } + return WEBP_INFO_OK; +} + +static void ShowSummary(const WebPInfo* const webp_info) { + int i; + printf("Summary:\n"); + printf("Number of frames: %d\n", webp_info->num_frames_); + printf("Chunk type : VP8 VP8L VP8X ALPH ANIM ANMF(VP8 /VP8L/ALPH) ICCP " + "EXIF XMP\n"); + printf("Chunk counts: "); + for (i = 0; i < CHUNK_TYPES; ++i) { + printf("%4d ", webp_info->chunk_counts_[i]); + if (i == CHUNK_ANMF) { + printf("%4d %4d %4d ", + webp_info->anmf_subchunk_counts_[0], + webp_info->anmf_subchunk_counts_[1], + webp_info->anmf_subchunk_counts_[2]); + } + } + printf("\n"); +} + +static WebPInfoStatus AnalyzeWebP(WebPInfo* const webp_info, + const WebPData* webp_data) { + ChunkData chunk_data; + MemBuffer mem_buffer; + WebPInfoStatus webp_info_status = WEBP_INFO_OK; + + InitMemBuffer(&mem_buffer, webp_data); + webp_info_status = ParseRIFFHeader(webp_info, &mem_buffer); + if (webp_info_status != WEBP_INFO_OK) goto Error; + + // Loop through all the chunks. Terminate immediately in case of error. + while (webp_info_status == WEBP_INFO_OK && MemDataSize(&mem_buffer) > 0) { + webp_info_status = ParseChunk(webp_info, &mem_buffer, &chunk_data); + if (webp_info_status != WEBP_INFO_OK) goto Error; + webp_info_status = ProcessChunk(&chunk_data, webp_info); + } + if (webp_info_status != WEBP_INFO_OK) goto Error; + if (webp_info->show_summary_) ShowSummary(webp_info); + + // Final check. + webp_info_status = Validate(webp_info); + + Error: + if (!webp_info->quiet_) { + if (webp_info_status == WEBP_INFO_OK) { + printf("No error detected.\n"); + } else { + printf("Errors detected.\n"); + } + } + return webp_info_status; +} + +static void HelpShort(void) { + printf("Usage: webpinfo [options] in_files\n" + "Try -longhelp for an exhaustive list of options.\n"); +} + +static void HelpLong(void) { + printf("Usage: webpinfo [options] in_files\n" + "Note: there could be multiple input files;\n" + " options must come before input files.\n" + "Options:\n" + " -version ........... Print version number and exit.\n" + " -quiet ............. Do not show chunk parsing information.\n" + " -diag .............. Show parsing error diagnosis.\n" + " -summary ........... Show chunk stats summary.\n" + " -bitstream_info .... Parse bitstream header.\n"); +} + +int main(int argc, const char* argv[]) { + int c, quiet = 0, show_diag = 0, show_summary = 0; + int parse_bitstream = 0; + WebPInfoStatus webp_info_status = WEBP_INFO_OK; + WebPInfo webp_info; + + if (argc == 1) { + HelpShort(); + return WEBP_INFO_OK; + } + + // Parse command-line input. + for (c = 1; c < argc; ++c) { + if (!strcmp(argv[c], "-h") || !strcmp(argv[c], "-help")) { + HelpShort(); + return WEBP_INFO_OK; + } else if (!strcmp(argv[c], "-H") || !strcmp(argv[c], "-longhelp")) { + HelpLong(); + return WEBP_INFO_OK; + } else if (!strcmp(argv[c], "-quiet")) { + quiet = 1; + } else if (!strcmp(argv[c], "-diag")) { + show_diag = 1; + } else if (!strcmp(argv[c], "-summary")) { + show_summary = 1; + } else if (!strcmp(argv[c], "-bitstream_info")) { + parse_bitstream = 1; + } else if (!strcmp(argv[c], "-version")) { + const int version = WebPGetDecoderVersion(); + printf("WebP Decoder version: %d.%d.%d\n", + (version >> 16) & 0xff, (version >> 8) & 0xff, version & 0xff); + return 0; + } else { // Assume the remaining are all input files. + break; + } + } + + if (c == argc) { + HelpShort(); + return WEBP_INFO_INVALID_COMMAND; + } + + // Process input files one by one. + for (; c < argc; ++c) { + WebPData webp_data; + const char* in_file = NULL; + WebPInfoInit(&webp_info); + webp_info.quiet_ = quiet; + webp_info.show_diagnosis_ = show_diag; + webp_info.show_summary_ = show_summary; + webp_info.parse_bitstream_ = parse_bitstream; + in_file = argv[c]; + if (in_file == NULL || !ReadFileToWebPData(in_file, &webp_data)) { + webp_info_status = WEBP_INFO_INVALID_COMMAND; + fprintf(stderr, "Failed to open input file %s.\n", in_file); + continue; + } + if (!webp_info.quiet_) printf("File: %s\n", in_file); + webp_info_status = AnalyzeWebP(&webp_info, &webp_data); + WebPDataClear(&webp_data); + } + return webp_info_status; +} diff --git a/external/libwebp-0.6.0/examples/webpmux.c b/external/libwebp-1.0.0/examples/webpmux.c similarity index 89% rename from external/libwebp-0.6.0/examples/webpmux.c rename to external/libwebp-1.0.0/examples/webpmux.c index 27de9e19..55e8d219 100644 --- a/external/libwebp-0.6.0/examples/webpmux.c +++ b/external/libwebp-1.0.0/examples/webpmux.c @@ -47,6 +47,7 @@ webpmux -info in.webp webpmux [ -h | -help ] webpmux -version + webpmux argument_file_name */ #ifdef HAVE_CONFIG_H @@ -108,28 +109,26 @@ static const char* const kDescriptions[LAST_FEATURE] = { }; typedef struct { - FeatureType type_; - FeatureArg* args_; - int arg_count_; -} Feature; + CommandLineArguments cmd_args_; -typedef struct { ActionType action_type_; const char* input_; const char* output_; - Feature feature_; -} WebPMuxConfig; + FeatureType type_; + FeatureArg* args_; + int arg_count_; +} Config; //------------------------------------------------------------------------------ // Helper functions. -static int CountOccurrences(const char* arglist[], int list_length, - const char* arg) { +static int CountOccurrences(const CommandLineArguments* const args, + const char* const arg) { int i; int num_occurences = 0; - for (i = 0; i < list_length; ++i) { - if (!strcmp(arglist[i], arg)) { + for (i = 0; i < args->argc_; ++i) { + if (!strcmp(args->argv_[i], arg)) { ++num_occurences; } } @@ -301,6 +300,7 @@ static void PrintHelp(void) { printf(" webpmux -info INPUT\n"); printf(" webpmux [-h|-help]\n"); printf(" webpmux -version\n"); + printf(" webpmux argument_file_name\n"); printf("\n"); printf("GET_OPTIONS:\n"); @@ -369,6 +369,10 @@ static void PrintHelp(void) { printf("\nNote: The nature of EXIF, XMP and ICC data is not checked"); printf(" and is assumed to be\nvalid.\n"); + printf("\nNote: if a single file name is passed as the argument, the " + "arguments will be\n"); + printf("tokenized from this file. The file name must not start with " + "the character '-'.\n"); } static void WarnAboutOddOffset(const WebPMuxFrameInfo* const info) { @@ -379,22 +383,12 @@ static void WarnAboutOddOffset(const WebPMuxFrameInfo* const info) { } } -static int ReadFileToWebPData(const char* const filename, - WebPData* const webp_data) { - const uint8_t* data; - size_t size; - if (!ImgIoUtilReadFile(filename, &data, &size)) return 0; - webp_data->bytes = data; - webp_data->size = size; - return 1; -} - static int CreateMux(const char* const filename, WebPMux** mux) { WebPData bitstream; assert(mux != NULL); - if (!ReadFileToWebPData(filename, &bitstream)) return 0; + if (!ExUtilReadFileToWebPData(filename, &bitstream)) return 0; *mux = WebPMuxCreate(&bitstream, 1); - free((void*)bitstream.bytes); + WebPDataClear(&bitstream); if (*mux != NULL) return 1; fprintf(stderr, "Failed to create mux object from file %s.\n", filename); return 0; @@ -517,9 +511,10 @@ static int ParseBgcolorArgs(const char* args, uint32_t* const bgcolor) { //------------------------------------------------------------------------------ // Clean-up. -static void DeleteConfig(WebPMuxConfig* config) { +static void DeleteConfig(Config* const config) { if (config != NULL) { - free(config->feature_.args_); + free(config->args_); + ExUtilDeleteCommandLineArguments(&config->cmd_args_); memset(config, 0, sizeof(*config)); } } @@ -531,7 +526,7 @@ static void DeleteConfig(WebPMuxConfig* config) { // Returns 1 on valid, 0 otherwise. // Also fills up num_feature_args to be number of feature arguments given. // (e.g. if there are 4 '-frame's and 1 '-loop', then num_feature_args = 5). -static int ValidateCommandLine(int argc, const char* argv[], +static int ValidateCommandLine(const CommandLineArguments* const cmd_args, int* num_feature_args) { int num_frame_args; int num_loop_args; @@ -543,27 +538,27 @@ static int ValidateCommandLine(int argc, const char* argv[], *num_feature_args = 0; // Simple checks. - if (CountOccurrences(argv, argc, "-get") > 1) { + if (CountOccurrences(cmd_args, "-get") > 1) { ERROR_GOTO1("ERROR: Multiple '-get' arguments specified.\n", ErrValidate); } - if (CountOccurrences(argv, argc, "-set") > 1) { + if (CountOccurrences(cmd_args, "-set") > 1) { ERROR_GOTO1("ERROR: Multiple '-set' arguments specified.\n", ErrValidate); } - if (CountOccurrences(argv, argc, "-strip") > 1) { + if (CountOccurrences(cmd_args, "-strip") > 1) { ERROR_GOTO1("ERROR: Multiple '-strip' arguments specified.\n", ErrValidate); } - if (CountOccurrences(argv, argc, "-info") > 1) { + if (CountOccurrences(cmd_args, "-info") > 1) { ERROR_GOTO1("ERROR: Multiple '-info' arguments specified.\n", ErrValidate); } - if (CountOccurrences(argv, argc, "-o") > 1) { + if (CountOccurrences(cmd_args, "-o") > 1) { ERROR_GOTO1("ERROR: Multiple output files specified.\n", ErrValidate); } // Compound checks. - num_frame_args = CountOccurrences(argv, argc, "-frame"); - num_loop_args = CountOccurrences(argv, argc, "-loop"); - num_bgcolor_args = CountOccurrences(argv, argc, "-bgcolor"); - num_durations_args = CountOccurrences(argv, argc, "-duration"); + num_frame_args = CountOccurrences(cmd_args, "-frame"); + num_loop_args = CountOccurrences(cmd_args, "-loop"); + num_bgcolor_args = CountOccurrences(cmd_args, "-bgcolor"); + num_durations_args = CountOccurrences(cmd_args, "-duration"); if (num_loop_args > 1) { ERROR_GOTO1("ERROR: Multiple loop counts specified.\n", ErrValidate); @@ -598,7 +593,7 @@ static int ValidateCommandLine(int argc, const char* argv[], #define ACTION_IS_NIL (config->action_type_ == NIL_ACTION) -#define FEATURETYPE_IS_NIL (feature->type_ == NIL_FEATURE) +#define FEATURETYPE_IS_NIL (config->type_ == NIL_FEATURE) #define CHECK_NUM_ARGS_LESS(NUM, LABEL) \ if (argc < i + (NUM)) { \ @@ -614,15 +609,15 @@ static int ValidateCommandLine(int argc, const char* argv[], // Parses command-line arguments to fill up config object. Also performs some // semantic checks. -static int ParseCommandLine(int argc, const char* argv[], - WebPMuxConfig* config) { +static int ParseCommandLine(Config* config) { int i = 0; int feature_arg_index = 0; int ok = 1; + int argc = config->cmd_args_.argc_; + const char* const* argv = config->cmd_args_.argv_; while (i < argc) { - Feature* const feature = &config->feature_; - FeatureArg* const arg = &feature->args_[feature_arg_index]; + FeatureArg* const arg = &config->args_[feature_arg_index]; if (argv[i][0] == '-') { // One of the action types or output. if (!strcmp(argv[i], "-set")) { if (ACTION_IS_NIL) { @@ -638,8 +633,8 @@ static int ParseCommandLine(int argc, const char* argv[], } else { ERROR_GOTO1("ERROR: Multiple actions specified.\n", ErrParse); } - if (FEATURETYPE_IS_NIL || feature->type_ == FEATURE_DURATION) { - feature->type_ = FEATURE_DURATION; + if (FEATURETYPE_IS_NIL || config->type_ == FEATURE_DURATION) { + config->type_ = FEATURE_DURATION; } else { ERROR_GOTO1("ERROR: Multiple features specified.\n", ErrParse); } @@ -656,7 +651,7 @@ static int ParseCommandLine(int argc, const char* argv[], } else if (!strcmp(argv[i], "-strip")) { if (ACTION_IS_NIL) { config->action_type_ = ACTION_STRIP; - feature->arg_count_ = 0; + config->arg_count_ = 0; } else { ERROR_GOTO1("ERROR: Multiple actions specified.\n", ErrParse); } @@ -668,8 +663,8 @@ static int ParseCommandLine(int argc, const char* argv[], } else { ERROR_GOTO1("ERROR: Multiple actions specified.\n", ErrParse); } - if (FEATURETYPE_IS_NIL || feature->type_ == FEATURE_ANMF) { - feature->type_ = FEATURE_ANMF; + if (FEATURETYPE_IS_NIL || config->type_ == FEATURE_ANMF) { + config->type_ = FEATURE_ANMF; } else { ERROR_GOTO1("ERROR: Multiple features specified.\n", ErrParse); } @@ -685,8 +680,8 @@ static int ParseCommandLine(int argc, const char* argv[], } else { ERROR_GOTO1("ERROR: Multiple actions specified.\n", ErrParse); } - if (FEATURETYPE_IS_NIL || feature->type_ == FEATURE_ANMF) { - feature->type_ = FEATURE_ANMF; + if (FEATURETYPE_IS_NIL || config->type_ == FEATURE_ANMF) { + config->type_ = FEATURE_ANMF; } else { ERROR_GOTO1("ERROR: Multiple features specified.\n", ErrParse); } @@ -705,7 +700,7 @@ static int ParseCommandLine(int argc, const char* argv[], ERROR_GOTO1("ERROR: Multiple actions specified.\n", ErrParse); } else { config->action_type_ = ACTION_INFO; - feature->arg_count_ = 0; + config->arg_count_ = 0; config->input_ = argv[i + 1]; } i += 2; @@ -741,7 +736,7 @@ static int ParseCommandLine(int argc, const char* argv[], if (!strcmp(argv[i], "icc") || !strcmp(argv[i], "exif") || !strcmp(argv[i], "xmp")) { if (FEATURETYPE_IS_NIL) { - feature->type_ = (!strcmp(argv[i], "icc")) ? FEATURE_ICCP : + config->type_ = (!strcmp(argv[i], "icc")) ? FEATURE_ICCP : (!strcmp(argv[i], "exif")) ? FEATURE_EXIF : FEATURE_XMP; } else { ERROR_GOTO1("ERROR: Multiple features specified.\n", ErrParse); @@ -757,7 +752,7 @@ static int ParseCommandLine(int argc, const char* argv[], } else if (!strcmp(argv[i], "frame") && (config->action_type_ == ACTION_GET)) { CHECK_NUM_ARGS_LESS(2, ErrParse); - feature->type_ = FEATURE_ANMF; + config->type_ = FEATURE_ANMF; arg->params_ = argv[i + 1]; ++feature_arg_index; i += 2; @@ -777,9 +772,8 @@ static int ParseCommandLine(int argc, const char* argv[], } // Additional checks after config is filled. -static int ValidateConfig(WebPMuxConfig* config) { +static int ValidateConfig(Config* const config) { int ok = 1; - Feature* const feature = &config->feature_; // Action. if (ACTION_IS_NIL) { @@ -795,7 +789,7 @@ static int ValidateConfig(WebPMuxConfig* config) { if (config->input_ == NULL) { if (config->action_type_ != ACTION_SET) { ERROR_GOTO1("ERROR: No input file specified.\n", ErrValidate2); - } else if (feature->type_ != FEATURE_ANMF) { + } else if (config->type_ != FEATURE_ANMF) { ERROR_GOTO1("ERROR: No input file specified.\n", ErrValidate2); } } @@ -811,27 +805,28 @@ static int ValidateConfig(WebPMuxConfig* config) { // Create config object from command-line arguments. static int InitializeConfig(int argc, const char* argv[], - WebPMuxConfig* config) { + Config* const config) { int num_feature_args = 0; - int ok = 1; + int ok; - assert(config != NULL); memset(config, 0, sizeof(*config)); + ok = ExUtilInitCommandLineArguments(argc, argv, &config->cmd_args_); + if (!ok) return 0; + // Validate command-line arguments. - if (!ValidateCommandLine(argc, argv, &num_feature_args)) { + if (!ValidateCommandLine(&config->cmd_args_, &num_feature_args)) { ERROR_GOTO1("Exiting due to command-line parsing error.\n", Err1); } - config->feature_.arg_count_ = num_feature_args; - config->feature_.args_ = - (FeatureArg*)calloc(num_feature_args, sizeof(*config->feature_.args_)); - if (config->feature_.args_ == NULL) { + config->arg_count_ = num_feature_args; + config->args_ = (FeatureArg*)calloc(num_feature_args, sizeof(*config->args_)); + if (config->args_ == NULL) { ERROR_GOTO1("ERROR: Memory allocation error.\n", Err1); } // Parse command-line. - if (!ParseCommandLine(argc, argv, config) || !ValidateConfig(config)) { + if (!ParseCommandLine(config) || !ValidateConfig(config)) { ERROR_GOTO1("Exiting due to command-line parsing error.\n", Err1); } @@ -847,7 +842,7 @@ static int InitializeConfig(int argc, const char* argv[], //------------------------------------------------------------------------------ // Processing. -static int GetFrame(const WebPMux* mux, const WebPMuxConfig* config) { +static int GetFrame(const WebPMux* mux, const Config* config) { WebPMuxError err = WEBP_MUX_OK; WebPMux* mux_single = NULL; int num = 0; @@ -857,7 +852,7 @@ static int GetFrame(const WebPMux* mux, const WebPMuxConfig* config) { WebPMuxFrameInfo info; WebPDataInit(&info.bitstream); - num = ExUtilGetInt(config->feature_.args_[0].params_, 10, &parse_error); + num = ExUtilGetInt(config->args_[0].params_, 10, &parse_error); if (num < 0) { ERROR_GOTO1("ERROR: Frame/Fragment index must be non-negative.\n", ErrGet); } @@ -891,18 +886,17 @@ static int GetFrame(const WebPMux* mux, const WebPMuxConfig* config) { } // Read and process config. -static int Process(const WebPMuxConfig* config) { +static int Process(const Config* config) { WebPMux* mux = NULL; WebPData chunk; WebPMuxError err = WEBP_MUX_OK; int ok = 1; - const Feature* const feature = &config->feature_; switch (config->action_type_) { case ACTION_GET: { ok = CreateMux(config->input_, &mux); if (!ok) goto Err2; - switch (feature->type_) { + switch (config->type_) { case FEATURE_ANMF: ok = GetFrame(mux, config); break; @@ -910,10 +904,10 @@ static int Process(const WebPMuxConfig* config) { case FEATURE_ICCP: case FEATURE_EXIF: case FEATURE_XMP: - err = WebPMuxGetChunk(mux, kFourccList[feature->type_], &chunk); + err = WebPMuxGetChunk(mux, kFourccList[config->type_], &chunk); if (err != WEBP_MUX_OK) { ERROR_GOTO3("ERROR (%s): Could not get the %s.\n", - ErrorString(err), kDescriptions[feature->type_], Err2); + ErrorString(err), kDescriptions[config->type_], Err2); } ok = WriteData(config->output_, &chunk); break; @@ -925,7 +919,7 @@ static int Process(const WebPMuxConfig* config) { break; } case ACTION_SET: { - switch (feature->type_) { + switch (config->type_) { case FEATURE_ANMF: { int i; WebPMuxAnimParams params = { 0xFFFFFFFF, 0 }; @@ -934,11 +928,11 @@ static int Process(const WebPMuxConfig* config) { ERROR_GOTO2("ERROR (%s): Could not allocate a mux object.\n", ErrorString(WEBP_MUX_MEMORY_ERROR), Err2); } - for (i = 0; i < feature->arg_count_; ++i) { - switch (feature->args_[i].subtype_) { + for (i = 0; i < config->arg_count_; ++i) { + switch (config->args_[i].subtype_) { case SUBTYPE_BGCOLOR: { uint32_t bgcolor; - ok = ParseBgcolorArgs(feature->args_[i].params_, &bgcolor); + ok = ParseBgcolorArgs(config->args_[i].params_, &bgcolor); if (!ok) { ERROR_GOTO1("ERROR: Could not parse the background color \n", Err2); @@ -949,7 +943,7 @@ static int Process(const WebPMuxConfig* config) { case SUBTYPE_LOOP: { int parse_error = 0; const int loop_count = - ExUtilGetInt(feature->args_[i].params_, 10, &parse_error); + ExUtilGetInt(config->args_[i].params_, 10, &parse_error); if (loop_count < 0 || loop_count > 65535) { // Note: This is only a 'necessary' condition for loop_count // to be valid. The 'sufficient' conditioned in checked in @@ -965,10 +959,10 @@ static int Process(const WebPMuxConfig* config) { case SUBTYPE_ANMF: { WebPMuxFrameInfo frame; frame.id = WEBP_CHUNK_ANMF; - ok = ReadFileToWebPData(feature->args_[i].filename_, - &frame.bitstream); + ok = ExUtilReadFileToWebPData(config->args_[i].filename_, + &frame.bitstream); if (!ok) goto Err2; - ok = ParseFrameArgs(feature->args_[i].params_, &frame); + ok = ParseFrameArgs(config->args_[i].params_, &frame); if (!ok) { WebPDataClear(&frame.bitstream); ERROR_GOTO1("ERROR: Could not parse frame properties.\n", @@ -1001,13 +995,13 @@ static int Process(const WebPMuxConfig* config) { case FEATURE_XMP: { ok = CreateMux(config->input_, &mux); if (!ok) goto Err2; - ok = ReadFileToWebPData(feature->args_[0].filename_, &chunk); + ok = ExUtilReadFileToWebPData(config->args_[0].filename_, &chunk); if (!ok) goto Err2; - err = WebPMuxSetChunk(mux, kFourccList[feature->type_], &chunk, 1); + err = WebPMuxSetChunk(mux, kFourccList[config->type_], &chunk, 1); free((void*)chunk.bytes); if (err != WEBP_MUX_OK) { ERROR_GOTO3("ERROR (%s): Could not set the %s.\n", - ErrorString(err), kDescriptions[feature->type_], Err2); + ErrorString(err), kDescriptions[config->type_], Err2); } break; } @@ -1043,11 +1037,11 @@ static int Process(const WebPMuxConfig* config) { for (i = 0; i < num_frames; ++i) durations[i] = -1; // Parse intervals to process. - for (i = 0; i < feature->arg_count_; ++i) { + for (i = 0; i < config->arg_count_; ++i) { int k; int args[3]; int duration, start, end; - const int nb_args = ExUtilGetInts(feature->args_[i].params_, + const int nb_args = ExUtilGetInts(config->args_[i].params_, 10, 3, args); ok = (nb_args >= 1); if (!ok) goto Err3; @@ -1105,12 +1099,12 @@ static int Process(const WebPMuxConfig* config) { case ACTION_STRIP: { ok = CreateMux(config->input_, &mux); if (!ok) goto Err2; - if (feature->type_ == FEATURE_ICCP || feature->type_ == FEATURE_EXIF || - feature->type_ == FEATURE_XMP) { - err = WebPMuxDeleteChunk(mux, kFourccList[feature->type_]); + if (config->type_ == FEATURE_ICCP || config->type_ == FEATURE_EXIF || + config->type_ == FEATURE_XMP) { + err = WebPMuxDeleteChunk(mux, kFourccList[config->type_]); if (err != WEBP_MUX_OK) { ERROR_GOTO3("ERROR (%s): Could not strip the %s.\n", - ErrorString(err), kDescriptions[feature->type_], Err2); + ErrorString(err), kDescriptions[config->type_], Err2); } } else { ERROR_GOTO1("ERROR: Invalid feature for action 'strip'.\n", Err2); @@ -1140,7 +1134,7 @@ static int Process(const WebPMuxConfig* config) { // Main. int main(int argc, const char* argv[]) { - WebPMuxConfig config; + Config config; int ok = InitializeConfig(argc - 1, argv + 1, &config); if (ok) { ok = Process(&config); diff --git a/external/libwebp-1.0.0/extras/Makefile.am b/external/libwebp-1.0.0/extras/Makefile.am new file mode 100644 index 00000000..14d567a3 --- /dev/null +++ b/external/libwebp-1.0.0/extras/Makefile.am @@ -0,0 +1,44 @@ +AM_CPPFLAGS += -I$(top_builddir) -I$(top_srcdir) +AM_CPPFLAGS += -I$(top_builddir)/src -I$(top_srcdir)/src +noinst_LTLIBRARIES = libwebpextras.la + +noinst_HEADERS = +noinst_HEADERS += ../src/webp/types.h + +libwebpextras_la_SOURCES = +libwebpextras_la_SOURCES += extras.c extras.h quality_estimate.c + +libwebpextras_la_CPPFLAGS = $(AM_CPPFLAGS) +libwebpextras_la_LDFLAGS = -lm +libwebpextras_la_LIBADD = ../src/libwebp.la + +noinst_PROGRAMS = +noinst_PROGRAMS += webp_quality +if WANT_DEMUX + noinst_PROGRAMS += get_disto +endif +if BUILD_VWEBP_SDL + noinst_PROGRAMS += vwebp_sdl +endif + +get_disto_SOURCES = get_disto.c +get_disto_CPPFLAGS = $(AM_CPPFLAGS) +get_disto_LDADD = +get_disto_LDADD += ../imageio/libimageio_util.la +get_disto_LDADD += ../imageio/libimagedec.la +get_disto_LDADD += ../src/libwebp.la +get_disto_LDADD += $(PNG_LIBS) $(JPEG_LIBS) $(TIFF_LIBS) + +webp_quality_SOURCES = webp_quality.c +webp_quality_CPPFLAGS = $(AM_CPPFLAGS) +webp_quality_LDADD = +webp_quality_LDADD += ../imageio/libimageio_util.la +webp_quality_LDADD += libwebpextras.la +webp_quality_LDADD += ../src/libwebp.la + +vwebp_sdl_SOURCES = vwebp_sdl.c webp_to_sdl.c webp_to_sdl.h +vwebp_sdl_CPPFLAGS = $(AM_CPPFLAGS) $(SDL_INCLUDES) +vwebp_sdl_LDADD = +vwebp_sdl_LDADD += ../imageio/libimageio_util.la +vwebp_sdl_LDADD += ../src/libwebp.la +vwebp_sdl_LDADD += $(SDL_LIBS) diff --git a/external/libwebp-1.0.0/extras/Makefile.in b/external/libwebp-1.0.0/extras/Makefile.in new file mode 100644 index 00000000..02822116 --- /dev/null +++ b/external/libwebp-1.0.0/extras/Makefile.in @@ -0,0 +1,760 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +noinst_PROGRAMS = webp_quality$(EXEEXT) $(am__EXEEXT_1) \ + $(am__EXEEXT_2) +@WANT_DEMUX_TRUE@am__append_1 = get_disto +@BUILD_VWEBP_SDL_TRUE@am__append_2 = vwebp_sdl +subdir = extras +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/webp/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libwebpextras_la_DEPENDENCIES = ../src/libwebp.la +am_libwebpextras_la_OBJECTS = libwebpextras_la-extras.lo \ + libwebpextras_la-quality_estimate.lo +libwebpextras_la_OBJECTS = $(am_libwebpextras_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libwebpextras_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libwebpextras_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +@WANT_DEMUX_TRUE@am__EXEEXT_1 = get_disto$(EXEEXT) +@BUILD_VWEBP_SDL_TRUE@am__EXEEXT_2 = vwebp_sdl$(EXEEXT) +PROGRAMS = $(noinst_PROGRAMS) +am_get_disto_OBJECTS = get_disto-get_disto.$(OBJEXT) +get_disto_OBJECTS = $(am_get_disto_OBJECTS) +am__DEPENDENCIES_1 = +get_disto_DEPENDENCIES = ../imageio/libimageio_util.la \ + ../imageio/libimagedec.la ../src/libwebp.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_vwebp_sdl_OBJECTS = vwebp_sdl-vwebp_sdl.$(OBJEXT) \ + vwebp_sdl-webp_to_sdl.$(OBJEXT) +vwebp_sdl_OBJECTS = $(am_vwebp_sdl_OBJECTS) +vwebp_sdl_DEPENDENCIES = ../imageio/libimageio_util.la \ + ../src/libwebp.la $(am__DEPENDENCIES_1) +am_webp_quality_OBJECTS = webp_quality-webp_quality.$(OBJEXT) +webp_quality_OBJECTS = $(am_webp_quality_OBJECTS) +webp_quality_DEPENDENCIES = ../imageio/libimageio_util.la \ + libwebpextras.la ../src/libwebp.la +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/webp +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libwebpextras_la_SOURCES) $(get_disto_SOURCES) \ + $(vwebp_sdl_SOURCES) $(webp_quality_SOURCES) +DIST_SOURCES = $(libwebpextras_la_SOURCES) $(get_disto_SOURCES) \ + $(vwebp_sdl_SOURCES) $(webp_quality_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_builddir) -I$(top_srcdir) \ + -I$(top_builddir)/src -I$(top_srcdir)/src +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVX2_FLAGS = @AVX2_FLAGS@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GIF_INCLUDES = @GIF_INCLUDES@ +GIF_LIBS = @GIF_LIBS@ +GL_INCLUDES = @GL_INCLUDES@ +GL_LIBS = @GL_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JPEG_INCLUDES = @JPEG_INCLUDES@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPNG_CONFIG = @LIBPNG_CONFIG@ +LIBS = @LIBS@ +LIBSDL_CONFIG = @LIBSDL_CONFIG@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NEON_FLAGS = @NEON_FLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PNG_INCLUDES = @PNG_INCLUDES@ +PNG_LIBS = @PNG_LIBS@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SDL_INCLUDES = @SDL_INCLUDES@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSE2_FLAGS = @SSE2_FLAGS@ +SSE41_FLAGS = @SSE41_FLAGS@ +STRIP = @STRIP@ +TIFF_INCLUDES = @TIFF_INCLUDES@ +TIFF_LIBS = @TIFF_LIBS@ +USE_SWAP_16BIT_CSP = @USE_SWAP_16BIT_CSP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +noinst_LTLIBRARIES = libwebpextras.la +noinst_HEADERS = ../src/webp/types.h +libwebpextras_la_SOURCES = extras.c extras.h quality_estimate.c +libwebpextras_la_CPPFLAGS = $(AM_CPPFLAGS) +libwebpextras_la_LDFLAGS = -lm +libwebpextras_la_LIBADD = ../src/libwebp.la +get_disto_SOURCES = get_disto.c +get_disto_CPPFLAGS = $(AM_CPPFLAGS) +get_disto_LDADD = ../imageio/libimageio_util.la \ + ../imageio/libimagedec.la ../src/libwebp.la $(PNG_LIBS) \ + $(JPEG_LIBS) $(TIFF_LIBS) +webp_quality_SOURCES = webp_quality.c +webp_quality_CPPFLAGS = $(AM_CPPFLAGS) +webp_quality_LDADD = ../imageio/libimageio_util.la libwebpextras.la \ + ../src/libwebp.la +vwebp_sdl_SOURCES = vwebp_sdl.c webp_to_sdl.c webp_to_sdl.h +vwebp_sdl_CPPFLAGS = $(AM_CPPFLAGS) $(SDL_INCLUDES) +vwebp_sdl_LDADD = ../imageio/libimageio_util.la ../src/libwebp.la \ + $(SDL_LIBS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign extras/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign extras/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libwebpextras.la: $(libwebpextras_la_OBJECTS) $(libwebpextras_la_DEPENDENCIES) $(EXTRA_libwebpextras_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpextras_la_LINK) $(libwebpextras_la_OBJECTS) $(libwebpextras_la_LIBADD) $(LIBS) + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +get_disto$(EXEEXT): $(get_disto_OBJECTS) $(get_disto_DEPENDENCIES) $(EXTRA_get_disto_DEPENDENCIES) + @rm -f get_disto$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(get_disto_OBJECTS) $(get_disto_LDADD) $(LIBS) + +vwebp_sdl$(EXEEXT): $(vwebp_sdl_OBJECTS) $(vwebp_sdl_DEPENDENCIES) $(EXTRA_vwebp_sdl_DEPENDENCIES) + @rm -f vwebp_sdl$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(vwebp_sdl_OBJECTS) $(vwebp_sdl_LDADD) $(LIBS) + +webp_quality$(EXEEXT): $(webp_quality_OBJECTS) $(webp_quality_DEPENDENCIES) $(EXTRA_webp_quality_DEPENDENCIES) + @rm -f webp_quality$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(webp_quality_OBJECTS) $(webp_quality_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_disto-get_disto.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpextras_la-extras.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpextras_la-quality_estimate.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vwebp_sdl-vwebp_sdl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vwebp_sdl-webp_to_sdl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/webp_quality-webp_quality.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libwebpextras_la-extras.lo: extras.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpextras_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpextras_la-extras.lo -MD -MP -MF $(DEPDIR)/libwebpextras_la-extras.Tpo -c -o libwebpextras_la-extras.lo `test -f 'extras.c' || echo '$(srcdir)/'`extras.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpextras_la-extras.Tpo $(DEPDIR)/libwebpextras_la-extras.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extras.c' object='libwebpextras_la-extras.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpextras_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpextras_la-extras.lo `test -f 'extras.c' || echo '$(srcdir)/'`extras.c + +libwebpextras_la-quality_estimate.lo: quality_estimate.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpextras_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpextras_la-quality_estimate.lo -MD -MP -MF $(DEPDIR)/libwebpextras_la-quality_estimate.Tpo -c -o libwebpextras_la-quality_estimate.lo `test -f 'quality_estimate.c' || echo '$(srcdir)/'`quality_estimate.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpextras_la-quality_estimate.Tpo $(DEPDIR)/libwebpextras_la-quality_estimate.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='quality_estimate.c' object='libwebpextras_la-quality_estimate.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpextras_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpextras_la-quality_estimate.lo `test -f 'quality_estimate.c' || echo '$(srcdir)/'`quality_estimate.c + +get_disto-get_disto.o: get_disto.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(get_disto_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT get_disto-get_disto.o -MD -MP -MF $(DEPDIR)/get_disto-get_disto.Tpo -c -o get_disto-get_disto.o `test -f 'get_disto.c' || echo '$(srcdir)/'`get_disto.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/get_disto-get_disto.Tpo $(DEPDIR)/get_disto-get_disto.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='get_disto.c' object='get_disto-get_disto.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(get_disto_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o get_disto-get_disto.o `test -f 'get_disto.c' || echo '$(srcdir)/'`get_disto.c + +get_disto-get_disto.obj: get_disto.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(get_disto_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT get_disto-get_disto.obj -MD -MP -MF $(DEPDIR)/get_disto-get_disto.Tpo -c -o get_disto-get_disto.obj `if test -f 'get_disto.c'; then $(CYGPATH_W) 'get_disto.c'; else $(CYGPATH_W) '$(srcdir)/get_disto.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/get_disto-get_disto.Tpo $(DEPDIR)/get_disto-get_disto.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='get_disto.c' object='get_disto-get_disto.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(get_disto_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o get_disto-get_disto.obj `if test -f 'get_disto.c'; then $(CYGPATH_W) 'get_disto.c'; else $(CYGPATH_W) '$(srcdir)/get_disto.c'; fi` + +vwebp_sdl-vwebp_sdl.o: vwebp_sdl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vwebp_sdl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vwebp_sdl-vwebp_sdl.o -MD -MP -MF $(DEPDIR)/vwebp_sdl-vwebp_sdl.Tpo -c -o vwebp_sdl-vwebp_sdl.o `test -f 'vwebp_sdl.c' || echo '$(srcdir)/'`vwebp_sdl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vwebp_sdl-vwebp_sdl.Tpo $(DEPDIR)/vwebp_sdl-vwebp_sdl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vwebp_sdl.c' object='vwebp_sdl-vwebp_sdl.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vwebp_sdl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vwebp_sdl-vwebp_sdl.o `test -f 'vwebp_sdl.c' || echo '$(srcdir)/'`vwebp_sdl.c + +vwebp_sdl-vwebp_sdl.obj: vwebp_sdl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vwebp_sdl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vwebp_sdl-vwebp_sdl.obj -MD -MP -MF $(DEPDIR)/vwebp_sdl-vwebp_sdl.Tpo -c -o vwebp_sdl-vwebp_sdl.obj `if test -f 'vwebp_sdl.c'; then $(CYGPATH_W) 'vwebp_sdl.c'; else $(CYGPATH_W) '$(srcdir)/vwebp_sdl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vwebp_sdl-vwebp_sdl.Tpo $(DEPDIR)/vwebp_sdl-vwebp_sdl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vwebp_sdl.c' object='vwebp_sdl-vwebp_sdl.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vwebp_sdl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vwebp_sdl-vwebp_sdl.obj `if test -f 'vwebp_sdl.c'; then $(CYGPATH_W) 'vwebp_sdl.c'; else $(CYGPATH_W) '$(srcdir)/vwebp_sdl.c'; fi` + +vwebp_sdl-webp_to_sdl.o: webp_to_sdl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vwebp_sdl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vwebp_sdl-webp_to_sdl.o -MD -MP -MF $(DEPDIR)/vwebp_sdl-webp_to_sdl.Tpo -c -o vwebp_sdl-webp_to_sdl.o `test -f 'webp_to_sdl.c' || echo '$(srcdir)/'`webp_to_sdl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vwebp_sdl-webp_to_sdl.Tpo $(DEPDIR)/vwebp_sdl-webp_to_sdl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='webp_to_sdl.c' object='vwebp_sdl-webp_to_sdl.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vwebp_sdl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vwebp_sdl-webp_to_sdl.o `test -f 'webp_to_sdl.c' || echo '$(srcdir)/'`webp_to_sdl.c + +vwebp_sdl-webp_to_sdl.obj: webp_to_sdl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vwebp_sdl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vwebp_sdl-webp_to_sdl.obj -MD -MP -MF $(DEPDIR)/vwebp_sdl-webp_to_sdl.Tpo -c -o vwebp_sdl-webp_to_sdl.obj `if test -f 'webp_to_sdl.c'; then $(CYGPATH_W) 'webp_to_sdl.c'; else $(CYGPATH_W) '$(srcdir)/webp_to_sdl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vwebp_sdl-webp_to_sdl.Tpo $(DEPDIR)/vwebp_sdl-webp_to_sdl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='webp_to_sdl.c' object='vwebp_sdl-webp_to_sdl.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vwebp_sdl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vwebp_sdl-webp_to_sdl.obj `if test -f 'webp_to_sdl.c'; then $(CYGPATH_W) 'webp_to_sdl.c'; else $(CYGPATH_W) '$(srcdir)/webp_to_sdl.c'; fi` + +webp_quality-webp_quality.o: webp_quality.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(webp_quality_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT webp_quality-webp_quality.o -MD -MP -MF $(DEPDIR)/webp_quality-webp_quality.Tpo -c -o webp_quality-webp_quality.o `test -f 'webp_quality.c' || echo '$(srcdir)/'`webp_quality.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/webp_quality-webp_quality.Tpo $(DEPDIR)/webp_quality-webp_quality.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='webp_quality.c' object='webp_quality-webp_quality.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(webp_quality_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o webp_quality-webp_quality.o `test -f 'webp_quality.c' || echo '$(srcdir)/'`webp_quality.c + +webp_quality-webp_quality.obj: webp_quality.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(webp_quality_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT webp_quality-webp_quality.obj -MD -MP -MF $(DEPDIR)/webp_quality-webp_quality.Tpo -c -o webp_quality-webp_quality.obj `if test -f 'webp_quality.c'; then $(CYGPATH_W) 'webp_quality.c'; else $(CYGPATH_W) '$(srcdir)/webp_quality.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/webp_quality-webp_quality.Tpo $(DEPDIR)/webp_quality-webp_quality.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='webp_quality.c' object='webp_quality-webp_quality.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(webp_quality_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o webp_quality-webp_quality.obj `if test -f 'webp_quality.c'; then $(CYGPATH_W) 'webp_quality.c'; else $(CYGPATH_W) '$(srcdir)/webp_quality.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES clean-noinstPROGRAMS \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/external/libwebp-0.6.0/extras/extras.c b/external/libwebp-1.0.0/extras/extras.c similarity index 93% rename from external/libwebp-0.6.0/extras/extras.c rename to external/libwebp-1.0.0/extras/extras.c index 2c013de6..2feb595c 100644 --- a/external/libwebp-0.6.0/extras/extras.c +++ b/external/libwebp-1.0.0/extras/extras.c @@ -10,14 +10,14 @@ // Additional WebP utilities. // -#include "./extras.h" +#include "extras/extras.h" #include "webp/format_constants.h" #include #include -#define XTRA_MAJ_VERSION 0 -#define XTRA_MIN_VERSION 1 +#define XTRA_MAJ_VERSION 1 +#define XTRA_MIN_VERSION 0 #define XTRA_REV_VERSION 0 //------------------------------------------------------------------------------ @@ -48,13 +48,14 @@ int WebPImportGray(const uint8_t* gray_data, WebPPicture* pic) { int WebPImportRGB565(const uint8_t* rgb565, WebPPicture* pic) { int x, y; + uint32_t* dst; if (pic == NULL || rgb565 == NULL) return 0; pic->colorspace = WEBP_YUV420; pic->use_argb = 1; if (!WebPPictureAlloc(pic)) return 0; + dst = pic->argb; for (y = 0; y < pic->height; ++y) { const int width = pic->width; - uint32_t* dst = pic->argb + y * pic->argb_stride; for (x = 0; x < width; ++x) { #ifdef WEBP_SWAP_16BIT_CSP const uint32_t rg = rgb565[2 * x + 1]; @@ -70,22 +71,24 @@ int WebPImportRGB565(const uint8_t* rgb565, WebPPicture* pic) { r = r | (r >> 5); g = g | (g >> 6); b = b | (b >> 5); - dst[x] = (r << 16) | (g << 8) | b; + dst[x] = (0xffu << 24) | (r << 16) | (g << 8) | b; } rgb565 += 2 * width; + dst += pic->argb_stride; } return 1; } int WebPImportRGB4444(const uint8_t* rgb4444, WebPPicture* pic) { int x, y; + uint32_t* dst; if (pic == NULL || rgb4444 == NULL) return 0; pic->colorspace = WEBP_YUV420; pic->use_argb = 1; if (!WebPPictureAlloc(pic)) return 0; + dst = pic->argb; for (y = 0; y < pic->height; ++y) { const int width = pic->width; - uint32_t* dst = pic->argb + y * pic->argb_stride; for (x = 0; x < width; ++x) { #ifdef WEBP_SWAP_16BIT_CSP const uint32_t rg = rgb4444[2 * x + 1]; @@ -106,6 +109,7 @@ int WebPImportRGB4444(const uint8_t* rgb4444, WebPPicture* pic) { dst[x] = (a << 24) | (r << 16) | (g << 8) | b; } rgb4444 += 2 * width; + dst += pic->argb_stride; } return 1; } diff --git a/external/libwebp-0.6.0/extras/extras.h b/external/libwebp-1.0.0/extras/extras.h similarity index 87% rename from external/libwebp-0.6.0/extras/extras.h rename to external/libwebp-1.0.0/extras/extras.h index 0d44c45f..fd4437a0 100644 --- a/external/libwebp-0.6.0/extras/extras.h +++ b/external/libwebp-1.0.0/extras/extras.h @@ -25,28 +25,28 @@ extern "C" { // Returns the version number of the extras library, packed in hexadecimal using // 8bits for each of major/minor/revision. E.g: v2.5.7 is 0x020507. -WEBP_EXTERN(int) WebPGetExtrasVersion(void); +WEBP_EXTERN int WebPGetExtrasVersion(void); //------------------------------------------------------------------------------ // Ad-hoc colorspace importers. // Import luma sample (gray scale image) into 'picture'. The 'picture' // width and height must be set prior to calling this function. -WEBP_EXTERN(int) WebPImportGray(const uint8_t* gray, WebPPicture* picture); +WEBP_EXTERN int WebPImportGray(const uint8_t* gray, WebPPicture* picture); // Import rgb sample in RGB565 packed format into 'picture'. The 'picture' // width and height must be set prior to calling this function. -WEBP_EXTERN(int) WebPImportRGB565(const uint8_t* rgb565, WebPPicture* pic); +WEBP_EXTERN int WebPImportRGB565(const uint8_t* rgb565, WebPPicture* pic); // Import rgb sample in RGB4444 packed format into 'picture'. The 'picture' // width and height must be set prior to calling this function. -WEBP_EXTERN(int) WebPImportRGB4444(const uint8_t* rgb4444, WebPPicture* pic); +WEBP_EXTERN int WebPImportRGB4444(const uint8_t* rgb4444, WebPPicture* pic); // Import a color mapped image. The number of colors is less or equal to // MAX_PALETTE_SIZE. 'pic' must have been initialized. Its content, if any, // will be discarded. Returns 'false' in case of error, or if indexed[] contains // invalid indices. -WEBP_EXTERN(int) +WEBP_EXTERN int WebPImportColorMappedARGB(const uint8_t* indexed, int indexed_stride, const uint32_t palette[], int palette_size, WebPPicture* pic); @@ -59,7 +59,7 @@ WebPImportColorMappedARGB(const uint8_t* indexed, int indexed_stride, // Otherwise (lossy bitstream), the returned value is in the range [0..100]. // Any error (invalid bitstream, animated WebP, incomplete header, etc.) // will return a value of -1. -WEBP_EXTERN(int) VP8EstimateQuality(const uint8_t* const data, size_t size); +WEBP_EXTERN int VP8EstimateQuality(const uint8_t* const data, size_t size); //------------------------------------------------------------------------------ diff --git a/external/libwebp-0.6.0/extras/get_disto.c b/external/libwebp-1.0.0/extras/get_disto.c similarity index 95% rename from external/libwebp-0.6.0/extras/get_disto.c rename to external/libwebp-1.0.0/extras/get_disto.c index ab1b0516..b4061477 100644 --- a/external/libwebp-0.6.0/extras/get_disto.c +++ b/external/libwebp-1.0.0/extras/get_disto.c @@ -24,8 +24,8 @@ #include #include "webp/encode.h" -#include "../imageio/image_dec.h" -#include "../imageio/imageio_util.h" +#include "imageio/image_dec.h" +#include "imageio/imageio_util.h" static size_t ReadPicture(const char* const filename, WebPPicture* const pic, int keep_alpha) { @@ -278,7 +278,7 @@ int main(int argc, const char *argv[]) { goto End; } size1 = ReadPicture(name1, &pic1, 1); - size2 = ReadPicture(name1, &pic2, 1); + size2 = ReadPicture(name2, &pic2, 1); if (size1 == 0 || size2 == 0) goto End; if (!keep_alpha) { @@ -290,9 +290,10 @@ int main(int argc, const char *argv[]) { fprintf(stderr, "Error while computing the distortion.\n"); goto End; } - printf("%u %.2f %.2f %.2f %.2f %.2f\n", + printf("%u %.2f %.2f %.2f %.2f %.2f [ %.2f bpp ]\n", (unsigned int)size1, - disto[4], disto[0], disto[1], disto[2], disto[3]); + disto[4], disto[0], disto[1], disto[2], disto[3], + 8.f * size1 / pic1.width / pic1.height); if (output != NULL) { uint8_t* data = NULL; @@ -322,6 +323,7 @@ int main(int argc, const char *argv[]) { fprintf(stderr, "Can only compute the difference map in ARGB format.\n"); goto End; } +#if !defined(WEBP_REDUCE_CSP) data_size = WebPEncodeLosslessBGRA((const uint8_t*)pic1.argb, pic1.width, pic1.height, pic1.argb_stride * 4, @@ -333,6 +335,12 @@ int main(int argc, const char *argv[]) { ret = ImgIoUtilWriteFile(output, data, data_size) ? 0 : 1; WebPFree(data); if (ret) goto End; +#else + (void)data; + (void)data_size; + fprintf(stderr, "Cannot save the difference map. Please recompile " + "without the WEBP_REDUCE_CSP flag.\n"); +#endif // WEBP_REDUCE_CSP } ret = 0; diff --git a/external/libwebp-0.6.0/extras/quality_estimate.c b/external/libwebp-1.0.0/extras/quality_estimate.c similarity index 98% rename from external/libwebp-0.6.0/extras/quality_estimate.c rename to external/libwebp-1.0.0/extras/quality_estimate.c index ee7ab5f8..17e98d96 100644 --- a/external/libwebp-0.6.0/extras/quality_estimate.c +++ b/external/libwebp-1.0.0/extras/quality_estimate.c @@ -11,7 +11,7 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./extras.h" +#include "extras/extras.h" #include "webp/decode.h" #include @@ -73,7 +73,7 @@ int VP8EstimateQuality(const uint8_t* const data, size_t size) { pos += 4; bit_pos = pos * 8; - GET_BIT(2); // color_space + clamp type + GET_BIT(2); // colorspace + clamp type // Segment header if (GET_BIT(1)) { // use_segment_ diff --git a/external/libwebp-1.0.0/extras/vwebp_sdl.c b/external/libwebp-1.0.0/extras/vwebp_sdl.c new file mode 100644 index 00000000..69171b9a --- /dev/null +++ b/external/libwebp-1.0.0/extras/vwebp_sdl.c @@ -0,0 +1,96 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// Simple SDL-based WebP file viewer. +// Does not support animation, just static images. +// +// Press 'q' to exit. +// +// Author: James Zern (jzern@google.com) + +#include + +#ifdef HAVE_CONFIG_H +#include "webp/config.h" +#endif + +#if defined(WEBP_HAVE_SDL) + +#include "webp_to_sdl.h" +#include "webp/decode.h" +#include "imageio/imageio_util.h" + +#if defined(WEBP_HAVE_JUST_SDL_H) +#include +#else +#include +#endif + +static void ProcessEvents(void) { + int done = 0; + SDL_Event event; + while (!done && SDL_WaitEvent(&event)) { + switch (event.type) { + case SDL_KEYUP: + switch (event.key.keysym.sym) { + case SDLK_q: done = 1; break; + default: break; + } + break; + default: break; + } + } +} + +int main(int argc, char* argv[]) { + int c; + int ok = 0; + for (c = 1; c < argc; ++c) { + const char* file = NULL; + const uint8_t* webp = NULL; + size_t webp_size = 0; + if (!strcmp(argv[c], "-h")) { + printf("Usage: %s [-h] image.webp [more_files.webp...]\n", argv[0]); + return 0; + } else { + file = argv[c]; + } + if (file == NULL) continue; + if (!ImgIoUtilReadFile(file, &webp, &webp_size)) { + fprintf(stderr, "Error opening file: %s\n", file); + goto Error; + } + if (webp_size != (size_t)(int)webp_size) { + fprintf(stderr, "File too large.\n"); + goto Error; + } + ok = WebpToSDL((const char*)webp, (int)webp_size); + free((void*)webp); + if (!ok) { + fprintf(stderr, "Error decoding file %s\n", file); + goto Error; + } + ProcessEvents(); + } + ok = 1; + + Error: + SDL_Quit(); + return ok ? 0 : 1; +} + +#else // !WEBP_HAVE_SDL + +int main(int argc, const char *argv[]) { + fprintf(stderr, "SDL support not enabled in %s.\n", argv[0]); + (void)argc; + return 0; +} + +#endif diff --git a/external/libwebp-0.6.0/extras/webp_quality.c b/external/libwebp-1.0.0/extras/webp_quality.c similarity index 95% rename from external/libwebp-0.6.0/extras/webp_quality.c rename to external/libwebp-1.0.0/extras/webp_quality.c index ff9b1aad..3f6ba202 100644 --- a/external/libwebp-0.6.0/extras/webp_quality.c +++ b/external/libwebp-1.0.0/extras/webp_quality.c @@ -11,8 +11,8 @@ #include #include -#include "./extras.h" -#include "../imageio/imageio_util.h" +#include "extras/extras.h" +#include "imageio/imageio_util.h" int main(int argc, const char *argv[]) { int c; diff --git a/external/libwebp-1.0.0/extras/webp_to_sdl.c b/external/libwebp-1.0.0/extras/webp_to_sdl.c new file mode 100644 index 00000000..2a74715b --- /dev/null +++ b/external/libwebp-1.0.0/extras/webp_to_sdl.c @@ -0,0 +1,110 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// Simple WebP-to-SDL wrapper. Useful for emscripten. +// +// Author: James Zern (jzern@google.com) + +#ifdef HAVE_CONFIG_H +#include "src/webp/config.h" +#endif + +#if defined(WEBP_HAVE_SDL) + +#include "webp_to_sdl.h" + +#include +#include "src/webp/decode.h" + +#if defined(WEBP_HAVE_JUST_SDL_H) +#include +#else +#include +#endif + +static int init_ok = 0; +int WebpToSDL(const char* data, unsigned int data_size) { + int ok = 0; + VP8StatusCode status; + WebPDecoderConfig config; + WebPBitstreamFeatures* const input = &config.input; + WebPDecBuffer* const output = &config.output; + SDL_Surface* screen = NULL; + SDL_Surface* surface = NULL; + + if (!WebPInitDecoderConfig(&config)) { + fprintf(stderr, "Library version mismatch!\n"); + return 1; + } + + if (!init_ok) { + SDL_Init(SDL_INIT_VIDEO); + init_ok = 1; + } + + status = WebPGetFeatures((uint8_t*)data, (size_t)data_size, &config.input); + if (status != VP8_STATUS_OK) goto Error; + + screen = SDL_SetVideoMode(input->width, input->height, 32, SDL_SWSURFACE); + if (screen == NULL) { + fprintf(stderr, "Unable to set video mode (32bpp %dx%d)!\n", + input->width, input->height); + goto Error; + } + + surface = SDL_CreateRGBSurface(SDL_SWSURFACE, + input->width, input->height, 32, + 0x000000ffu, // R mask + 0x0000ff00u, // G mask + 0x00ff0000u, // B mask + 0xff000000u); // A mask + + if (surface == NULL) { + fprintf(stderr, "Unable to create %dx%d RGBA surface!\n", + input->width, input->height); + goto Error; + } + if (SDL_MUSTLOCK(surface)) SDL_LockSurface(surface); + +#if SDL_BYTEORDER == SDL_BIG_ENDIAN + output->colorspace = MODE_BGRA; +#else + output->colorspace = MODE_RGBA; +#endif + output->width = surface->w; + output->height = surface->h; + output->u.RGBA.rgba = surface->pixels; + output->u.RGBA.stride = surface->pitch; + output->u.RGBA.size = surface->pitch * surface->h; + output->is_external_memory = 1; + + status = WebPDecode((const uint8_t*)data, (size_t)data_size, &config); + if (status != VP8_STATUS_OK) { + fprintf(stderr, "Error decoding image (%d)\n", status); + goto Error; + } + + if (SDL_MUSTLOCK(surface)) SDL_UnlockSurface(surface); + if (SDL_BlitSurface(surface, NULL, screen, NULL) || + SDL_Flip(screen)) { + goto Error; + } + + ok = 1; + + Error: + SDL_FreeSurface(surface); + SDL_FreeSurface(screen); + WebPFreeDecBuffer(output); + return ok; +} + +//------------------------------------------------------------------------------ + +#endif // WEBP_HAVE_SDL diff --git a/external/libwebp-1.0.0/extras/webp_to_sdl.h b/external/libwebp-1.0.0/extras/webp_to_sdl.h new file mode 100644 index 00000000..1b5ea980 --- /dev/null +++ b/external/libwebp-1.0.0/extras/webp_to_sdl.h @@ -0,0 +1,22 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// Simple WebP-to-SDL wrapper. Useful for emscripten. +// +// Author: James Zern (jzern@google.com) + +#ifndef WEBP_EXTRAS_WEBP_TO_SDL_H_ +#define WEBP_EXTRAS_WEBP_TO_SDL_H_ + +// Exports the method WebpToSDL(const char* data, int data_size) which decodes +// a WebP bitstream into an RGBA SDL surface. +// Return false on failure. +extern int WebpToSDL(const char* data, unsigned int data_size); + +#endif // WEBP_EXTRAS_WEBP_TO_SDL_H_ diff --git a/external/libwebp-0.6.0/gradle.properties b/external/libwebp-1.0.0/gradle.properties similarity index 100% rename from external/libwebp-0.6.0/gradle.properties rename to external/libwebp-1.0.0/gradle.properties diff --git a/external/libwebp-0.6.0/gradle/wrapper/gradle-wrapper.jar b/external/libwebp-1.0.0/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from external/libwebp-0.6.0/gradle/wrapper/gradle-wrapper.jar rename to external/libwebp-1.0.0/gradle/wrapper/gradle-wrapper.jar diff --git a/external/libwebp-0.6.0/gradle/wrapper/gradle-wrapper.properties b/external/libwebp-1.0.0/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from external/libwebp-0.6.0/gradle/wrapper/gradle-wrapper.properties rename to external/libwebp-1.0.0/gradle/wrapper/gradle-wrapper.properties diff --git a/external/libwebp-0.6.0/gradlew b/external/libwebp-1.0.0/gradlew similarity index 100% rename from external/libwebp-0.6.0/gradlew rename to external/libwebp-1.0.0/gradlew diff --git a/external/libwebp-0.6.0/gradlew.bat b/external/libwebp-1.0.0/gradlew.bat similarity index 100% rename from external/libwebp-0.6.0/gradlew.bat rename to external/libwebp-1.0.0/gradlew.bat diff --git a/external/libwebp-0.6.0/imageio/Android.mk b/external/libwebp-1.0.0/imageio/Android.mk similarity index 98% rename from external/libwebp-0.6.0/imageio/Android.mk rename to external/libwebp-1.0.0/imageio/Android.mk index 2f1edc9c..e779f71e 100644 --- a/external/libwebp-0.6.0/imageio/Android.mk +++ b/external/libwebp-1.0.0/imageio/Android.mk @@ -25,6 +25,7 @@ LOCAL_SRC_FILES := \ jpegdec.c \ metadata.c \ pngdec.c \ + pnmdec.c \ tiffdec.c \ webpdec.c \ diff --git a/external/libwebp-0.6.0/imageio/Makefile.am b/external/libwebp-1.0.0/imageio/Makefile.am similarity index 50% rename from external/libwebp-0.6.0/imageio/Makefile.am rename to external/libwebp-1.0.0/imageio/Makefile.am index d278a904..b0e6d8e8 100644 --- a/external/libwebp-0.6.0/imageio/Makefile.am +++ b/external/libwebp-1.0.0/imageio/Makefile.am @@ -1,22 +1,32 @@ AM_CPPFLAGS += -I$(top_builddir)/src -I$(top_srcdir)/src -noinst_LTLIBRARIES = libimageio_util.la libimagedec.la libimageenc.la +noinst_LTLIBRARIES = +noinst_LTLIBRARIES += libimageio_util.la +if WANT_DEMUX + noinst_LTLIBRARIES += libimagedec.la +endif +noinst_LTLIBRARIES += libimageenc.la noinst_HEADERS = noinst_HEADERS += ../src/webp/decode.h noinst_HEADERS += ../src/webp/types.h -libimageio_util_la_SOURCES = imageio_util.c imageio_util.h +libimageio_util_la_SOURCES = +libimageio_util_la_SOURCES += imageio_util.c imageio_util.h -libimagedec_la_SOURCES = image_dec.c image_dec.h +libimagedec_la_SOURCES = +libimagedec_la_SOURCES += image_dec.c image_dec.h libimagedec_la_SOURCES += jpegdec.c jpegdec.h libimagedec_la_SOURCES += metadata.c metadata.h libimagedec_la_SOURCES += pngdec.c pngdec.h +libimagedec_la_SOURCES += pnmdec.c pnmdec.h libimagedec_la_SOURCES += tiffdec.c tiffdec.h libimagedec_la_SOURCES += webpdec.c webpdec.h libimagedec_la_SOURCES += wicdec.c wicdec.h libimagedec_la_CPPFLAGS = $(JPEG_INCLUDES) $(PNG_INCLUDES) $(TIFF_INCLUDES) -libimagedec_la_CPPFLAGS += $(AM_CPPFLAGS) $(USE_EXPERIMENTAL_CODE) +libimagedec_la_CPPFLAGS += $(AM_CPPFLAGS) +libimagedec_la_LIBADD = ../src/demux/libwebpdemux.la -libimageenc_la_SOURCES = image_enc.c image_enc.h +libimageenc_la_SOURCES = +libimageenc_la_SOURCES += image_enc.c image_enc.h libimageenc_la_CPPFLAGS = $(JPEG_INCLUDES) $(PNG_INCLUDES) $(TIFF_INCLUDES) -libimageenc_la_CPPFLAGS += $(AM_CPPFLAGS) $(USE_EXPERIMENTAL_CODE) +libimageenc_la_CPPFLAGS += $(AM_CPPFLAGS) diff --git a/external/libwebp-1.0.0/imageio/Makefile.in b/external/libwebp-1.0.0/imageio/Makefile.in new file mode 100644 index 00000000..f23f0815 --- /dev/null +++ b/external/libwebp-1.0.0/imageio/Makefile.in @@ -0,0 +1,717 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@WANT_DEMUX_TRUE@am__append_1 = libimagedec.la +subdir = imageio +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/webp/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libimagedec_la_DEPENDENCIES = ../src/demux/libwebpdemux.la +am_libimagedec_la_OBJECTS = libimagedec_la-image_dec.lo \ + libimagedec_la-jpegdec.lo libimagedec_la-metadata.lo \ + libimagedec_la-pngdec.lo libimagedec_la-pnmdec.lo \ + libimagedec_la-tiffdec.lo libimagedec_la-webpdec.lo \ + libimagedec_la-wicdec.lo +libimagedec_la_OBJECTS = $(am_libimagedec_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +@WANT_DEMUX_TRUE@am_libimagedec_la_rpath = +libimageenc_la_LIBADD = +am_libimageenc_la_OBJECTS = libimageenc_la-image_enc.lo +libimageenc_la_OBJECTS = $(am_libimageenc_la_OBJECTS) +libimageio_util_la_LIBADD = +am_libimageio_util_la_OBJECTS = imageio_util.lo +libimageio_util_la_OBJECTS = $(am_libimageio_util_la_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/webp +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libimagedec_la_SOURCES) $(libimageenc_la_SOURCES) \ + $(libimageio_util_la_SOURCES) +DIST_SOURCES = $(libimagedec_la_SOURCES) $(libimageenc_la_SOURCES) \ + $(libimageio_util_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_builddir)/src -I$(top_srcdir)/src +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVX2_FLAGS = @AVX2_FLAGS@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GIF_INCLUDES = @GIF_INCLUDES@ +GIF_LIBS = @GIF_LIBS@ +GL_INCLUDES = @GL_INCLUDES@ +GL_LIBS = @GL_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JPEG_INCLUDES = @JPEG_INCLUDES@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPNG_CONFIG = @LIBPNG_CONFIG@ +LIBS = @LIBS@ +LIBSDL_CONFIG = @LIBSDL_CONFIG@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NEON_FLAGS = @NEON_FLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PNG_INCLUDES = @PNG_INCLUDES@ +PNG_LIBS = @PNG_LIBS@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SDL_INCLUDES = @SDL_INCLUDES@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSE2_FLAGS = @SSE2_FLAGS@ +SSE41_FLAGS = @SSE41_FLAGS@ +STRIP = @STRIP@ +TIFF_INCLUDES = @TIFF_INCLUDES@ +TIFF_LIBS = @TIFF_LIBS@ +USE_SWAP_16BIT_CSP = @USE_SWAP_16BIT_CSP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +noinst_LTLIBRARIES = libimageio_util.la $(am__append_1) libimageenc.la +noinst_HEADERS = ../src/webp/decode.h ../src/webp/types.h +libimageio_util_la_SOURCES = imageio_util.c imageio_util.h +libimagedec_la_SOURCES = image_dec.c image_dec.h jpegdec.c jpegdec.h \ + metadata.c metadata.h pngdec.c pngdec.h pnmdec.c pnmdec.h \ + tiffdec.c tiffdec.h webpdec.c webpdec.h wicdec.c wicdec.h +libimagedec_la_CPPFLAGS = $(JPEG_INCLUDES) $(PNG_INCLUDES) \ + $(TIFF_INCLUDES) $(AM_CPPFLAGS) +libimagedec_la_LIBADD = ../src/demux/libwebpdemux.la +libimageenc_la_SOURCES = image_enc.c image_enc.h +libimageenc_la_CPPFLAGS = $(JPEG_INCLUDES) $(PNG_INCLUDES) \ + $(TIFF_INCLUDES) $(AM_CPPFLAGS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign imageio/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign imageio/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libimagedec.la: $(libimagedec_la_OBJECTS) $(libimagedec_la_DEPENDENCIES) $(EXTRA_libimagedec_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(am_libimagedec_la_rpath) $(libimagedec_la_OBJECTS) $(libimagedec_la_LIBADD) $(LIBS) + +libimageenc.la: $(libimageenc_la_OBJECTS) $(libimageenc_la_DEPENDENCIES) $(EXTRA_libimageenc_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libimageenc_la_OBJECTS) $(libimageenc_la_LIBADD) $(LIBS) + +libimageio_util.la: $(libimageio_util_la_OBJECTS) $(libimageio_util_la_DEPENDENCIES) $(EXTRA_libimageio_util_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libimageio_util_la_OBJECTS) $(libimageio_util_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imageio_util.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libimagedec_la-image_dec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libimagedec_la-jpegdec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libimagedec_la-metadata.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libimagedec_la-pngdec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libimagedec_la-pnmdec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libimagedec_la-tiffdec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libimagedec_la-webpdec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libimagedec_la-wicdec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libimageenc_la-image_enc.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libimagedec_la-image_dec.lo: image_dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libimagedec_la-image_dec.lo -MD -MP -MF $(DEPDIR)/libimagedec_la-image_dec.Tpo -c -o libimagedec_la-image_dec.lo `test -f 'image_dec.c' || echo '$(srcdir)/'`image_dec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libimagedec_la-image_dec.Tpo $(DEPDIR)/libimagedec_la-image_dec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='image_dec.c' object='libimagedec_la-image_dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libimagedec_la-image_dec.lo `test -f 'image_dec.c' || echo '$(srcdir)/'`image_dec.c + +libimagedec_la-jpegdec.lo: jpegdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libimagedec_la-jpegdec.lo -MD -MP -MF $(DEPDIR)/libimagedec_la-jpegdec.Tpo -c -o libimagedec_la-jpegdec.lo `test -f 'jpegdec.c' || echo '$(srcdir)/'`jpegdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libimagedec_la-jpegdec.Tpo $(DEPDIR)/libimagedec_la-jpegdec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='jpegdec.c' object='libimagedec_la-jpegdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libimagedec_la-jpegdec.lo `test -f 'jpegdec.c' || echo '$(srcdir)/'`jpegdec.c + +libimagedec_la-metadata.lo: metadata.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libimagedec_la-metadata.lo -MD -MP -MF $(DEPDIR)/libimagedec_la-metadata.Tpo -c -o libimagedec_la-metadata.lo `test -f 'metadata.c' || echo '$(srcdir)/'`metadata.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libimagedec_la-metadata.Tpo $(DEPDIR)/libimagedec_la-metadata.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='metadata.c' object='libimagedec_la-metadata.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libimagedec_la-metadata.lo `test -f 'metadata.c' || echo '$(srcdir)/'`metadata.c + +libimagedec_la-pngdec.lo: pngdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libimagedec_la-pngdec.lo -MD -MP -MF $(DEPDIR)/libimagedec_la-pngdec.Tpo -c -o libimagedec_la-pngdec.lo `test -f 'pngdec.c' || echo '$(srcdir)/'`pngdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libimagedec_la-pngdec.Tpo $(DEPDIR)/libimagedec_la-pngdec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pngdec.c' object='libimagedec_la-pngdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libimagedec_la-pngdec.lo `test -f 'pngdec.c' || echo '$(srcdir)/'`pngdec.c + +libimagedec_la-pnmdec.lo: pnmdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libimagedec_la-pnmdec.lo -MD -MP -MF $(DEPDIR)/libimagedec_la-pnmdec.Tpo -c -o libimagedec_la-pnmdec.lo `test -f 'pnmdec.c' || echo '$(srcdir)/'`pnmdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libimagedec_la-pnmdec.Tpo $(DEPDIR)/libimagedec_la-pnmdec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pnmdec.c' object='libimagedec_la-pnmdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libimagedec_la-pnmdec.lo `test -f 'pnmdec.c' || echo '$(srcdir)/'`pnmdec.c + +libimagedec_la-tiffdec.lo: tiffdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libimagedec_la-tiffdec.lo -MD -MP -MF $(DEPDIR)/libimagedec_la-tiffdec.Tpo -c -o libimagedec_la-tiffdec.lo `test -f 'tiffdec.c' || echo '$(srcdir)/'`tiffdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libimagedec_la-tiffdec.Tpo $(DEPDIR)/libimagedec_la-tiffdec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tiffdec.c' object='libimagedec_la-tiffdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libimagedec_la-tiffdec.lo `test -f 'tiffdec.c' || echo '$(srcdir)/'`tiffdec.c + +libimagedec_la-webpdec.lo: webpdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libimagedec_la-webpdec.lo -MD -MP -MF $(DEPDIR)/libimagedec_la-webpdec.Tpo -c -o libimagedec_la-webpdec.lo `test -f 'webpdec.c' || echo '$(srcdir)/'`webpdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libimagedec_la-webpdec.Tpo $(DEPDIR)/libimagedec_la-webpdec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='webpdec.c' object='libimagedec_la-webpdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libimagedec_la-webpdec.lo `test -f 'webpdec.c' || echo '$(srcdir)/'`webpdec.c + +libimagedec_la-wicdec.lo: wicdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libimagedec_la-wicdec.lo -MD -MP -MF $(DEPDIR)/libimagedec_la-wicdec.Tpo -c -o libimagedec_la-wicdec.lo `test -f 'wicdec.c' || echo '$(srcdir)/'`wicdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libimagedec_la-wicdec.Tpo $(DEPDIR)/libimagedec_la-wicdec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wicdec.c' object='libimagedec_la-wicdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimagedec_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libimagedec_la-wicdec.lo `test -f 'wicdec.c' || echo '$(srcdir)/'`wicdec.c + +libimageenc_la-image_enc.lo: image_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimageenc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libimageenc_la-image_enc.lo -MD -MP -MF $(DEPDIR)/libimageenc_la-image_enc.Tpo -c -o libimageenc_la-image_enc.lo `test -f 'image_enc.c' || echo '$(srcdir)/'`image_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libimageenc_la-image_enc.Tpo $(DEPDIR)/libimageenc_la-image_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='image_enc.c' object='libimageenc_la-image_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libimageenc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libimageenc_la-image_enc.lo `test -f 'image_enc.c' || echo '$(srcdir)/'`image_enc.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/external/libwebp-0.6.0/imageio/image_dec.c b/external/libwebp-1.0.0/imageio/image_dec.c similarity index 89% rename from external/libwebp-0.6.0/imageio/image_dec.c rename to external/libwebp-1.0.0/imageio/image_dec.c index 67d47d5f..08a1b183 100644 --- a/external/libwebp-0.6.0/imageio/image_dec.c +++ b/external/libwebp-1.0.0/imageio/image_dec.c @@ -29,6 +29,10 @@ WebPInputFileFormat WebPGuessImageType(const uint8_t* const data, format = WEBP_TIFF_FORMAT; } else if (magic1 == 0x52494646 && magic2 == 0x57454250) { format = WEBP_WEBP_FORMAT; + } else if (((magic1 >> 24) & 0xff) == 'P') { + const int type = (magic1 >> 16) & 0xff; + // we only support 'P5 -> P7' for now. + if (type >= '5' && type <= '7') format = WEBP_PNM_FORMAT; } } return format; @@ -51,6 +55,7 @@ WebPImageReader WebPGetImageReader(WebPInputFileFormat format) { case WEBP_JPEG_FORMAT: return ReadJPEG; case WEBP_TIFF_FORMAT: return ReadTIFF; case WEBP_WEBP_FORMAT: return ReadWebP; + case WEBP_PNM_FORMAT: return ReadPNM; default: return FailReader; } } diff --git a/external/libwebp-0.6.0/imageio/image_dec.h b/external/libwebp-1.0.0/imageio/image_dec.h similarity index 98% rename from external/libwebp-0.6.0/imageio/image_dec.h rename to external/libwebp-1.0.0/imageio/image_dec.h index 28a24ebe..df411e19 100644 --- a/external/libwebp-0.6.0/imageio/image_dec.h +++ b/external/libwebp-1.0.0/imageio/image_dec.h @@ -23,6 +23,7 @@ #include "./metadata.h" #include "./jpegdec.h" #include "./pngdec.h" +#include "./pnmdec.h" #include "./tiffdec.h" #include "./webpdec.h" #include "./wicdec.h" @@ -36,6 +37,7 @@ typedef enum { WEBP_JPEG_FORMAT, WEBP_TIFF_FORMAT, WEBP_WEBP_FORMAT, + WEBP_PNM_FORMAT, WEBP_UNSUPPORTED_FORMAT } WebPInputFileFormat; diff --git a/external/libwebp-0.6.0/imageio/image_enc.c b/external/libwebp-1.0.0/imageio/image_enc.c similarity index 94% rename from external/libwebp-0.6.0/imageio/image_enc.c rename to external/libwebp-1.0.0/imageio/image_enc.c index 7c5c64be..d4134905 100644 --- a/external/libwebp-0.6.0/imageio/image_enc.c +++ b/external/libwebp-1.0.0/imageio/image_enc.c @@ -158,14 +158,8 @@ static void PNGAPI PNGErrorFunction(png_structp png, png_const_charp dummy) { } int WebPWritePNG(FILE* out_file, const WebPDecBuffer* const buffer) { - const uint32_t width = buffer->width; - const uint32_t height = buffer->height; - png_bytep row = buffer->u.RGBA.rgba; - const int stride = buffer->u.RGBA.stride; - const int has_alpha = WebPIsAlphaMode(buffer->colorspace); volatile png_structp png; volatile png_infop info; - png_uint_32 y; if (out_file == NULL || buffer == NULL) return 0; @@ -184,14 +178,23 @@ int WebPWritePNG(FILE* out_file, const WebPDecBuffer* const buffer) { return 0; } png_init_io(png, out_file); - png_set_IHDR(png, info, width, height, 8, - has_alpha ? PNG_COLOR_TYPE_RGBA : PNG_COLOR_TYPE_RGB, - PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, - PNG_FILTER_TYPE_DEFAULT); - png_write_info(png, info); - for (y = 0; y < height; ++y) { - png_write_rows(png, &row, 1); - row += stride; + { + const uint32_t width = buffer->width; + const uint32_t height = buffer->height; + png_bytep row = buffer->u.RGBA.rgba; + const int stride = buffer->u.RGBA.stride; + const int has_alpha = WebPIsAlphaMode(buffer->colorspace); + uint32_t y; + + png_set_IHDR(png, info, width, height, 8, + has_alpha ? PNG_COLOR_TYPE_RGBA : PNG_COLOR_TYPE_RGB, + PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, + PNG_FILTER_TYPE_DEFAULT); + png_write_info(png, info); + for (y = 0; y < height; ++y) { + png_write_rows(png, &row, 1); + row += stride; + } } png_write_end(png, info); png_destroy_write_struct((png_structpp)&png, (png_infopp)&info); @@ -361,6 +364,8 @@ int WebPWriteTIFF(FILE* fout, const WebPDecBuffer* const buffer) { const uint8_t* rgba = buffer->u.RGBA.rgba; const int stride = buffer->u.RGBA.stride; const uint8_t bytes_per_px = has_alpha ? 4 : 3; + const uint8_t assoc_alpha = + WebPIsPremultipliedMode(buffer->colorspace) ? 1 : 2; // For non-alpha case, we omit tag 0x152 (ExtraSamples). const uint8_t num_ifd_entries = has_alpha ? NUM_IFD_ENTRIES : NUM_IFD_ENTRIES - 1; @@ -388,7 +393,8 @@ int WebPWriteTIFF(FILE* fout, const WebPDecBuffer* const buffer) { EXTRA_DATA_OFFSET + 8, 0, 0, 0, 0x1c, 0x01, 3, 0, 1, 0, 0, 0, 1, 0, 0, 0, // 154: PlanarConfiguration 0x28, 0x01, 3, 0, 1, 0, 0, 0, 2, 0, 0, 0, // 166: ResolutionUnit (inch) - 0x52, 0x01, 3, 0, 1, 0, 0, 0, 1, 0, 0, 0, // 178: ExtraSamples: rgbA + 0x52, 0x01, 3, 0, 1, 0, 0, 0, + assoc_alpha, 0, 0, 0, // 178: ExtraSamples: rgbA/RGBA 0, 0, 0, 0, // 190: IFD terminator // EXTRA_DATA_OFFSET: 8, 0, 8, 0, 8, 0, 8, 0, // BitsPerSample @@ -539,22 +545,24 @@ int WebPWriteYUV(FILE* fout, const WebPDecBuffer* const buffer) { // Generic top-level call int WebPSaveImage(const WebPDecBuffer* const buffer, - WebPOutputFileFormat format, const char* const out_file) { + WebPOutputFileFormat format, + const char* const out_file_name) { FILE* fout = NULL; int needs_open_file = 1; - const int use_stdout = (out_file != NULL) && !strcmp(out_file, "-"); + const int use_stdout = (out_file_name != NULL) && !strcmp(out_file_name, "-"); int ok = 1; - if (buffer == NULL || out_file == NULL) return 0; + if (buffer == NULL || out_file_name == NULL) return 0; #ifdef HAVE_WINCODEC_H needs_open_file = (format != PNG); #endif if (needs_open_file) { - fout = use_stdout ? ImgIoUtilSetBinaryMode(stdout) : fopen(out_file, "wb"); + fout = use_stdout ? ImgIoUtilSetBinaryMode(stdout) + : fopen(out_file_name, "wb"); if (fout == NULL) { - fprintf(stderr, "Error opening output file %s\n", out_file); + fprintf(stderr, "Error opening output file %s\n", out_file_name); return 0; } } @@ -563,7 +571,7 @@ int WebPSaveImage(const WebPDecBuffer* const buffer, format == RGBA || format == BGRA || format == ARGB || format == rgbA || format == bgrA || format == Argb) { #ifdef HAVE_WINCODEC_H - ok &= WebPWritePNG(out_file, use_stdout, buffer); + ok &= WebPWritePNG(out_file_name, use_stdout, buffer); #else ok &= WebPWritePNG(fout, buffer); #endif diff --git a/external/libwebp-0.6.0/imageio/image_enc.h b/external/libwebp-1.0.0/imageio/image_enc.h similarity index 100% rename from external/libwebp-0.6.0/imageio/image_enc.h rename to external/libwebp-1.0.0/imageio/image_enc.h diff --git a/external/libwebp-0.6.0/imageio/imageio_util.c b/external/libwebp-1.0.0/imageio/imageio_util.c similarity index 81% rename from external/libwebp-0.6.0/imageio/imageio_util.c rename to external/libwebp-1.0.0/imageio/imageio_util.c index eabab9dd..3a4ade0d 100644 --- a/external/libwebp-0.6.0/imageio/imageio_util.c +++ b/external/libwebp-1.0.0/imageio/imageio_util.c @@ -47,7 +47,8 @@ int ImgIoUtilReadFromStdin(const uint8_t** data, size_t* data_size) { while (!feof(stdin)) { // We double the buffer size each time and read as much as possible. const size_t extra_size = (max_size == 0) ? kBlockSize : max_size; - void* const new_data = realloc(input, max_size + extra_size); + // we allocate one extra byte for the \0 terminator + void* const new_data = realloc(input, max_size + extra_size + 1); if (new_data == NULL) goto Error; input = (uint8_t*)new_data; max_size += extra_size; @@ -55,6 +56,7 @@ int ImgIoUtilReadFromStdin(const uint8_t** data, size_t* data_size) { if (size < max_size) break; } if (ferror(stdin)) goto Error; + if (input != NULL) input[size] = '\0'; // convenient 0-terminator *data = input; *data_size = size; return 1; @@ -68,7 +70,7 @@ int ImgIoUtilReadFromStdin(const uint8_t** data, size_t* data_size) { int ImgIoUtilReadFile(const char* const file_name, const uint8_t** data, size_t* data_size) { int ok; - void* file_data; + uint8_t* file_data; size_t file_size; FILE* in; const int from_stdin = (file_name == NULL) || !strcmp(file_name, "-"); @@ -87,8 +89,14 @@ int ImgIoUtilReadFile(const char* const file_name, fseek(in, 0, SEEK_END); file_size = ftell(in); fseek(in, 0, SEEK_SET); - file_data = malloc(file_size); - if (file_data == NULL) return 0; + // we allocate one extra byte for the \0 terminator + file_data = (uint8_t*)malloc(file_size + 1); + if (file_data == NULL) { + fclose(in); + fprintf(stderr, "memory allocation failure when reading file %s\n", + file_name); + return 0; + } ok = (fread(file_data, file_size, 1, in) == 1); fclose(in); @@ -98,11 +106,14 @@ int ImgIoUtilReadFile(const char* const file_name, free(file_data); return 0; } - *data = (uint8_t*)file_data; + file_data[file_size] = '\0'; // convenient 0-terminator + *data = file_data; *data_size = file_size; return 1; } +// ----------------------------------------------------------------------------- + int ImgIoUtilWriteFile(const char* const file_name, const uint8_t* data, size_t data_size) { int ok; @@ -112,7 +123,7 @@ int ImgIoUtilWriteFile(const char* const file_name, if (data == NULL) { return 0; } - out = to_stdout ? stdout : fopen(file_name, "wb"); + out = to_stdout ? ImgIoUtilSetBinaryMode(stdout) : fopen(file_name, "wb"); if (out == NULL) { fprintf(stderr, "Error! Cannot open output file '%s'\n", file_name); return 0; @@ -137,7 +148,11 @@ void ImgIoUtilCopyPlane(const uint8_t* src, int src_stride, int ImgIoUtilCheckSizeArgumentsOverflow(uint64_t nmemb, size_t size) { const uint64_t total_size = nmemb * size; - return (total_size == (size_t)total_size); + int ok = (total_size == (size_t)total_size); +#if defined(WEBP_MAX_IMAGE_SIZE) + ok = ok && (total_size <= (uint64_t)WEBP_MAX_IMAGE_SIZE); +#endif + return ok; } // ----------------------------------------------------------------------------- diff --git a/external/libwebp-0.6.0/imageio/imageio_util.h b/external/libwebp-1.0.0/imageio/imageio_util.h similarity index 92% rename from external/libwebp-0.6.0/imageio/imageio_util.h rename to external/libwebp-1.0.0/imageio/imageio_util.h index b44f59fd..72db159b 100644 --- a/external/libwebp-0.6.0/imageio/imageio_util.h +++ b/external/libwebp-1.0.0/imageio/imageio_util.h @@ -30,6 +30,9 @@ FILE* ImgIoUtilSetBinaryMode(FILE* file); // Allocates storage for entire file 'file_name' and returns contents and size // in 'data' and 'data_size'. Returns 1 on success, 0 otherwise. '*data' should // be deleted using free(). +// Note: for convenience, the data will be null-terminated with an extra byte +// (not accounted for in *data_size), in case the file is text and intended +// to be used as a C-string. // If 'file_name' is NULL or equal to "-", input is read from stdin by calling // the function ImgIoUtilReadFromStdin(). int ImgIoUtilReadFile(const char* const file_name, diff --git a/external/libwebp-0.6.0/imageio/jpegdec.c b/external/libwebp-1.0.0/imageio/jpegdec.c similarity index 99% rename from external/libwebp-0.6.0/imageio/jpegdec.c rename to external/libwebp-1.0.0/imageio/jpegdec.c index 70341bc3..eefe92f9 100644 --- a/external/libwebp-0.6.0/imageio/jpegdec.c +++ b/external/libwebp-1.0.0/imageio/jpegdec.c @@ -304,18 +304,18 @@ int ReadJPEG(const uint8_t* const data, size_t data_size, if (stride != (int)stride || !ImgIoUtilCheckSizeArgumentsOverflow(stride, height)) { - goto End; + goto Error; } rgb = (uint8_t*)malloc((size_t)stride * height); if (rgb == NULL) { - goto End; + goto Error; } buffer[0] = (JSAMPLE*)rgb; while (dinfo.output_scanline < dinfo.output_height) { if (jpeg_read_scanlines((j_decompress_ptr)&dinfo, buffer, 1) != 1) { - goto End; + goto Error; } buffer[0] += stride; } diff --git a/external/libwebp-0.6.0/imageio/jpegdec.h b/external/libwebp-1.0.0/imageio/jpegdec.h similarity index 100% rename from external/libwebp-0.6.0/imageio/jpegdec.h rename to external/libwebp-1.0.0/imageio/jpegdec.h diff --git a/external/libwebp-0.6.0/imageio/metadata.c b/external/libwebp-1.0.0/imageio/metadata.c similarity index 100% rename from external/libwebp-0.6.0/imageio/metadata.c rename to external/libwebp-1.0.0/imageio/metadata.c diff --git a/external/libwebp-0.6.0/imageio/metadata.h b/external/libwebp-1.0.0/imageio/metadata.h similarity index 100% rename from external/libwebp-0.6.0/imageio/metadata.h rename to external/libwebp-1.0.0/imageio/metadata.h diff --git a/external/libwebp-0.6.0/imageio/pngdec.c b/external/libwebp-1.0.0/imageio/pngdec.c similarity index 97% rename from external/libwebp-0.6.0/imageio/pngdec.c rename to external/libwebp-1.0.0/imageio/pngdec.c index 22e60f3c..46223533 100644 --- a/external/libwebp-0.6.0/imageio/pngdec.c +++ b/external/libwebp-1.0.0/imageio/pngdec.c @@ -185,7 +185,6 @@ static int ExtractMetadataFromPNG(png_structp png, } } } - return 1; } @@ -265,6 +264,16 @@ int ReadPNG(const uint8_t* const data, size_t data_size, has_alpha = !!(color_type & PNG_COLOR_MASK_ALPHA); } + // Apply gamma correction if needed. + { + double image_gamma = 1 / 2.2, screen_gamma = 2.2; + int srgb_intent; + if (png_get_sRGB(png, info, &srgb_intent) || + png_get_gAMA(png, info, &image_gamma)) { + png_set_gamma(png, screen_gamma, image_gamma); + } + } + if (!keep_alpha) { png_set_strip_alpha(png); has_alpha = 0; diff --git a/external/libwebp-0.6.0/imageio/pngdec.h b/external/libwebp-1.0.0/imageio/pngdec.h similarity index 100% rename from external/libwebp-0.6.0/imageio/pngdec.h rename to external/libwebp-1.0.0/imageio/pngdec.h diff --git a/external/libwebp-1.0.0/imageio/pnmdec.c b/external/libwebp-1.0.0/imageio/pnmdec.c new file mode 100644 index 00000000..8f5a4a00 --- /dev/null +++ b/external/libwebp-1.0.0/imageio/pnmdec.c @@ -0,0 +1,257 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// (limited) PNM decoder + +#include "./pnmdec.h" + +#include +#include +#include +#include +#include + +#include "webp/encode.h" +#include "./imageio_util.h" + +typedef enum { + WIDTH_FLAG = 1 << 0, + HEIGHT_FLAG = 1 << 1, + DEPTH_FLAG = 1 << 2, + MAXVAL_FLAG = 1 << 3, + TUPLE_FLAG = 1 << 4, + ALL_NEEDED_FLAGS = 0x1f +} PNMFlags; + +typedef struct { + const uint8_t* data; + size_t data_size; + int width, height; + int bytes_per_px; // 1, 3, 4 + int depth; + int max_value; + int type; // 5, 6 or 7 + int seen_flags; +} PNMInfo; + +// ----------------------------------------------------------------------------- +// PNM decoding + +#define MAX_LINE_SIZE 1024 +static const size_t kMinPNMHeaderSize = 3; + +static size_t ReadLine(const uint8_t* const data, size_t off, size_t data_size, + char out[MAX_LINE_SIZE + 1], size_t* const out_size) { + size_t i = 0; + *out_size = 0; + redo: + for (i = 0; i < MAX_LINE_SIZE && off < data_size; ++i) { + out[i] = data[off++]; + if (out[i] == '\n') break; + } + if (off < data_size) { + if (i == 0) goto redo; // empty line + if (out[0] == '#') goto redo; // skip comment + } + out[i] = 0; // safety sentinel + *out_size = i; + return off; +} + +static size_t FlagError(const char flag[]) { + fprintf(stderr, "PAM header error: flags '%s' already seen.\n", flag); + return 0; +} + +// inspired from http://netpbm.sourceforge.net/doc/pam.html +static size_t ReadPAMFields(PNMInfo* const info, size_t off) { + char out[MAX_LINE_SIZE + 1]; + size_t out_size; + int tmp; + assert(info != NULL); + while (1) { + off = ReadLine(info->data, off, info->data_size, out, &out_size); + if (off == 0) return 0; + if (sscanf(out, "WIDTH %d", &tmp) == 1) { + if (info->seen_flags & WIDTH_FLAG) return FlagError("WIDTH"); + info->seen_flags |= WIDTH_FLAG; + info->width = tmp; + } else if (sscanf(out, "HEIGHT %d", &tmp) == 1) { + if (info->seen_flags & HEIGHT_FLAG) return FlagError("HEIGHT"); + info->seen_flags |= HEIGHT_FLAG; + info->height = tmp; + } else if (sscanf(out, "DEPTH %d", &tmp) == 1) { + if (info->seen_flags & DEPTH_FLAG) return FlagError("DEPTH"); + info->seen_flags |= DEPTH_FLAG; + info->depth = tmp; + } else if (sscanf(out, "MAXVAL %d", &tmp) == 1) { + if (info->seen_flags & MAXVAL_FLAG) return FlagError("MAXVAL"); + info->seen_flags |= MAXVAL_FLAG; + info->max_value = tmp; + } else if (!strcmp(out, "TUPLTYPE RGB_ALPHA")) { + info->bytes_per_px = 4; + info->seen_flags |= TUPLE_FLAG; + } else if (!strcmp(out, "TUPLTYPE RGB")) { + info->bytes_per_px = 3; + info->seen_flags |= TUPLE_FLAG; + } else if (!strcmp(out, "TUPLTYPE GRAYSCALE")) { + info->bytes_per_px = 1; + info->seen_flags |= TUPLE_FLAG; + } else if (!strcmp(out, "ENDHDR")) { + break; + } else { + static const char kEllipsis[] = " ..."; + int i; + if (out_size > 20) sprintf(out + 20 - strlen(kEllipsis), kEllipsis); + for (i = 0; i < (int)strlen(out); ++i) { + if (!isprint(out[i])) out[i] = ' '; + } + fprintf(stderr, "PAM header error: unrecognized entry [%s]\n", out); + return 0; + } + } + if (!(info->seen_flags & TUPLE_FLAG)) { + if (info->depth > 0 && info->depth <= 4 && info->depth != 2) { + info->seen_flags |= TUPLE_FLAG; + info->bytes_per_px = info->depth * (info->max_value > 255 ? 2 : 1); + } else { + fprintf(stderr, "PAM: invalid bitdepth (%d).\n", info->depth); + return 0; + } + } + if (info->seen_flags != ALL_NEEDED_FLAGS) { + fprintf(stderr, "PAM: incomplete header.\n"); + return 0; + } + return off; +} + +static size_t ReadHeader(PNMInfo* const info) { + size_t off = 0; + char out[MAX_LINE_SIZE + 1]; + size_t out_size; + if (info == NULL) return 0; + if (info->data == NULL || info->data_size < kMinPNMHeaderSize) return 0; + + info->width = info->height = 0; + info->type = -1; + info->seen_flags = 0; + info->bytes_per_px = 0; + info->depth = 0; + info->max_value = 0; + + off = ReadLine(info->data, off, info->data_size, out, &out_size); + if (off == 0 || sscanf(out, "P%d", &info->type) != 1) return 0; + if (info->type == 7) { + off = ReadPAMFields(info, off); + } else { + off = ReadLine(info->data, off, info->data_size, out, &out_size); + if (off == 0 || sscanf(out, "%d %d", &info->width, &info->height) != 2) { + return 0; + } + off = ReadLine(info->data, off, info->data_size, out, &out_size); + if (off == 0 || sscanf(out, "%d", &info->max_value) != 1) return 0; + + // finish initializing missing fields + info->depth = (info->type == 5) ? 1 : 3; + info->bytes_per_px = info->depth * (info->max_value > 255 ? 2 : 1); + } + // perform some basic numerical validation + if (info->width <= 0 || info->height <= 0 || + info->type <= 0 || info->type >= 9 || + info->depth <= 0 || info->depth == 2 || info->depth > 4 || + info->bytes_per_px < info->depth || + info->max_value <= 0 || info->max_value >= 65536) { + return 0; + } + return off; +} + +int ReadPNM(const uint8_t* const data, size_t data_size, + WebPPicture* const pic, int keep_alpha, + struct Metadata* const metadata) { + int ok = 0; + int i, j; + uint64_t stride, pixel_bytes; + uint8_t* rgb = NULL, *tmp_rgb; + size_t offset; + PNMInfo info; + + info.data = data; + info.data_size = data_size; + offset = ReadHeader(&info); + if (offset == 0) { + fprintf(stderr, "Error parsing PNM header.\n"); + goto End; + } + + if (info.type < 5 || info.type > 7) { + fprintf(stderr, "Unsupported P%d PNM format.\n", info.type); + goto End; + } + + // Some basic validations. + if (pic == NULL) goto End; + if (info.width > WEBP_MAX_DIMENSION || info.height > WEBP_MAX_DIMENSION) { + fprintf(stderr, "Invalid %dx%d dimension for PNM\n", + info.width, info.height); + goto End; + } + + pixel_bytes = (uint64_t)info.width * info.height * info.bytes_per_px; + if (data_size < offset + pixel_bytes) { + fprintf(stderr, "Truncated PNM file (P%d).\n", info.type); + goto End; + } + stride = + (uint64_t)(info.bytes_per_px < 3 ? 3 : info.bytes_per_px) * info.width; + if (stride != (size_t)stride || + !ImgIoUtilCheckSizeArgumentsOverflow(stride, info.height)) { + goto End; + } + + rgb = (uint8_t*)malloc((size_t)stride * info.height); + if (rgb == NULL) goto End; + + // Convert input + tmp_rgb = rgb; + for (j = 0; j < info.height; ++j) { + assert(offset + info.bytes_per_px * info.width <= data_size); + if (info.depth == 1) { + // convert grayscale -> RGB + for (i = 0; i < info.width; ++i) { + const uint8_t v = data[offset + i]; + tmp_rgb[3 * i + 0] = tmp_rgb[3 * i + 1] = tmp_rgb[3 * i + 2] = v; + } + } else if (info.depth == 3) { // RGB + memcpy(tmp_rgb, data + offset, 3 * info.width * sizeof(*data)); + } else if (info.depth == 4) { // RGBA + memcpy(tmp_rgb, data + offset, 4 * info.width * sizeof(*data)); + } + offset += info.bytes_per_px * info.width; + tmp_rgb += stride; + } + + // WebP conversion. + pic->width = info.width; + pic->height = info.height; + ok = (info.depth == 4) ? WebPPictureImportRGBA(pic, rgb, (int)stride) + : WebPPictureImportRGB(pic, rgb, (int)stride); + if (!ok) goto End; + + ok = 1; + End: + free((void*)rgb); + + (void)metadata; + (void)keep_alpha; + return ok; +} + +// ----------------------------------------------------------------------------- diff --git a/external/libwebp-1.0.0/imageio/pnmdec.h b/external/libwebp-1.0.0/imageio/pnmdec.h new file mode 100644 index 00000000..c4d5823e --- /dev/null +++ b/external/libwebp-1.0.0/imageio/pnmdec.h @@ -0,0 +1,37 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// partial PNM format decoder (ppm/pgm) + +#ifndef WEBP_IMAGEIO_PNMDEC_H_ +#define WEBP_IMAGEIO_PNMDEC_H_ + +#include "webp/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct Metadata; +struct WebPPicture; + +// Reads a PNM file from 'data', returning the decoded output in 'pic'. +// The output is RGB or YUV depending on pic->use_argb value. +// Returns true on success. +// 'metadata' has no effect, but is kept for coherence with other signatures +// for image readers. +int ReadPNM(const uint8_t* const data, size_t data_size, + struct WebPPicture* const pic, int keep_alpha, + struct Metadata* const metadata); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // WEBP_IMAGEIO_PNMDEC_H_ diff --git a/external/libwebp-0.6.0/imageio/tiffdec.c b/external/libwebp-1.0.0/imageio/tiffdec.c similarity index 74% rename from external/libwebp-0.6.0/imageio/tiffdec.c rename to external/libwebp-1.0.0/imageio/tiffdec.c index 46e69dc6..92eb682d 100644 --- a/external/libwebp-0.6.0/imageio/tiffdec.c +++ b/external/libwebp-1.0.0/imageio/tiffdec.c @@ -15,6 +15,7 @@ #include "webp/config.h" #endif +#include #include #include @@ -107,7 +108,7 @@ static void MyUnmapFile(thandle_t opaque, void* base, toff_t size) { static tsize_t MyRead(thandle_t opaque, void* dst, tsize_t size) { MyData* const my_data = (MyData*)opaque; if (my_data->pos + size > my_data->size) { - size = my_data->size - my_data->pos; + size = (tsize_t)(my_data->size - my_data->pos); } if (size > 0) { memcpy(dst, my_data->data + my_data->pos, size); @@ -116,18 +117,55 @@ static tsize_t MyRead(thandle_t opaque, void* dst, tsize_t size) { return size; } +// Unmultiply Argb data. Taken from dsp/alpha_processing +// (we don't want to force a dependency to a libdspdec library). +#define MFIX 24 // 24bit fixed-point arithmetic +#define HALF ((1u << MFIX) >> 1) +#define KINV_255 ((1u << MFIX) / 255u) + +static uint32_t Unmult(uint8_t x, uint32_t mult) { + const uint32_t v = (x * mult + HALF) >> MFIX; + return (v > 255u) ? 255u : v; +} + +static WEBP_INLINE uint32_t GetScale(uint32_t a) { + return (255u << MFIX) / a; +} + +static void MultARGBRow(uint8_t* ptr, int width) { + int x; + for (x = 0; x < width; ++x, ptr += 4) { + const uint32_t alpha = ptr[3]; + if (alpha < 255) { + if (alpha == 0) { // alpha == 0 + ptr[0] = ptr[1] = ptr[2] = 0; + } else { + const uint32_t scale = GetScale(alpha); + ptr[0] = Unmult(ptr[0], scale); + ptr[1] = Unmult(ptr[1], scale); + ptr[2] = Unmult(ptr[2], scale); + } + } + } +} + int ReadTIFF(const uint8_t* const data, size_t data_size, WebPPicture* const pic, int keep_alpha, Metadata* const metadata) { MyData my_data = { data, (toff_t)data_size, 0 }; TIFF* tif; - uint32 width, height; - uint32* raster; + uint32_t width, height; + uint16_t samples_per_px = 0; + uint16_t extra_samples = 0; + uint16_t* extra_samples_ptr = NULL; + uint32_t* raster; int64_t alloc_size; int ok = 0; tdir_t dircount; - if (data == NULL || data_size == 0 || pic == NULL) return 0; + if (data == NULL || data_size == 0 || data_size > INT_MAX || pic == NULL) { + return 0; + } tif = TIFFClientOpen("Memory", "r", &my_data, MyRead, MyRead, MySeek, MyClose, @@ -143,17 +181,27 @@ int ReadTIFF(const uint8_t* const data, size_t data_size, "Only the first will be used, %d will be ignored.\n", dircount - 1); } + if (!TIFFGetFieldDefaulted(tif, TIFFTAG_SAMPLESPERPIXEL, &samples_per_px)) { + fprintf(stderr, "Error! Cannot retrieve TIFF samples-per-pixel info.\n"); + goto End; + } + if (samples_per_px < 3 || samples_per_px > 4) goto End; // not supported if (!(TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &width) && TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &height))) { fprintf(stderr, "Error! Cannot retrieve TIFF image dimensions.\n"); goto End; } - if (!ImgIoUtilCheckSizeArgumentsOverflow((uint64_t)width * height, sizeof(*raster))) { goto End; } + if (samples_per_px > 3 && !TIFFGetField(tif, TIFFTAG_EXTRASAMPLES, + &extra_samples, &extra_samples_ptr)) { + fprintf(stderr, "Error! Cannot retrieve TIFF ExtraSamples info.\n"); + goto End; + } + // _Tiffmalloc uses a signed type for size. alloc_size = (int64_t)((uint64_t)width * height * sizeof(*raster)); if (alloc_size < 0 || alloc_size != (tsize_t)alloc_size) goto End; @@ -169,6 +217,16 @@ int ReadTIFF(const uint8_t* const data, size_t data_size, #ifdef WORDS_BIGENDIAN TIFFSwabArrayOfLong(raster, width * height); #endif + // if we have an alpha channel, we must un-multiply from rgbA to RGBA + if (extra_samples == 1 && extra_samples_ptr != NULL && + extra_samples_ptr[0] == EXTRASAMPLE_ASSOCALPHA) { + uint32_t y; + uint8_t* tmp = (uint8_t*)raster; + for (y = 0; y < height; ++y) { + MultARGBRow(tmp, width); + tmp += stride; + } + } ok = keep_alpha ? WebPPictureImportRGBA(pic, (const uint8_t*)raster, stride) : WebPPictureImportRGBX(pic, (const uint8_t*)raster, stride); diff --git a/external/libwebp-0.6.0/imageio/tiffdec.h b/external/libwebp-1.0.0/imageio/tiffdec.h similarity index 100% rename from external/libwebp-0.6.0/imageio/tiffdec.h rename to external/libwebp-1.0.0/imageio/tiffdec.h diff --git a/external/libwebp-0.6.0/imageio/webpdec.c b/external/libwebp-1.0.0/imageio/webpdec.c similarity index 54% rename from external/libwebp-0.6.0/imageio/webpdec.c rename to external/libwebp-1.0.0/imageio/webpdec.c index 8fa803ec..a9d06548 100644 --- a/external/libwebp-0.6.0/imageio/webpdec.c +++ b/external/libwebp-1.0.0/imageio/webpdec.c @@ -9,12 +9,18 @@ // // WebP decode. +#ifdef HAVE_CONFIG_H +#include "webp/config.h" +#endif + #include "./webpdec.h" +#include #include #include #include "webp/decode.h" +#include "webp/demux.h" #include "webp/encode.h" #include "./imageio_util.h" #include "./metadata.h" @@ -91,25 +97,47 @@ VP8StatusCode DecodeWebPIncremental( fprintf(stderr, "Failed during WebPINewDecoder().\n"); return VP8_STATUS_OUT_OF_MEMORY; } else { -#ifdef WEBP_EXPERIMENTAL_FEATURES - size_t size = 0; - const size_t incr = 2 + (data_size / 20); - while (size < data_size) { - size_t next_size = size + (rand() % incr); - if (next_size > data_size) next_size = data_size; - status = WebPIUpdate(idec, data, next_size); - if (status != VP8_STATUS_OK && status != VP8_STATUS_SUSPENDED) break; - size = next_size; - } -#else status = WebPIUpdate(idec, data, data_size); -#endif WebPIDelete(idec); } } return status; } +// ----------------------------------------------------------------------------- +// Metadata + +static int ExtractMetadata(const uint8_t* const data, size_t data_size, + Metadata* const metadata) { + WebPData webp_data = { data, data_size }; + WebPDemuxer* const demux = WebPDemux(&webp_data); + WebPChunkIterator chunk_iter; + uint32_t flags; + + if (demux == NULL) return 0; + assert(metadata != NULL); + + flags = WebPDemuxGetI(demux, WEBP_FF_FORMAT_FLAGS); + + if ((flags & ICCP_FLAG) && WebPDemuxGetChunk(demux, "ICCP", 1, &chunk_iter)) { + MetadataCopy((const char*)chunk_iter.chunk.bytes, chunk_iter.chunk.size, + &metadata->iccp); + WebPDemuxReleaseChunkIterator(&chunk_iter); + } + if ((flags & EXIF_FLAG) && WebPDemuxGetChunk(demux, "EXIF", 1, &chunk_iter)) { + MetadataCopy((const char*)chunk_iter.chunk.bytes, chunk_iter.chunk.size, + &metadata->exif); + WebPDemuxReleaseChunkIterator(&chunk_iter); + } + if ((flags & XMP_FLAG) && WebPDemuxGetChunk(demux, "XMP ", 1, &chunk_iter)) { + MetadataCopy((const char*)chunk_iter.chunk.bytes, chunk_iter.chunk.size, + &metadata->xmp); + WebPDemuxReleaseChunkIterator(&chunk_iter); + } + WebPDemuxDelete(demux); + return 1; +} + // ----------------------------------------------------------------------------- int ReadWebP(const uint8_t* const data, size_t data_size, @@ -123,11 +151,6 @@ int ReadWebP(const uint8_t* const data, size_t data_size, if (data == NULL || data_size == 0 || pic == NULL) return 0; - // TODO(jzern): add Exif/XMP/ICC extraction. - if (metadata != NULL) { - fprintf(stderr, "Warning: metadata extraction from WebP is unsupported.\n"); - } - if (!WebPInitDecoderConfig(&config)) { fprintf(stderr, "Library version mismatch!\n"); return 0; @@ -138,52 +161,82 @@ int ReadWebP(const uint8_t* const data, size_t data_size, PrintWebPError("input data", status); return 0; } - { + + do { const int has_alpha = keep_alpha && bitstream->has_alpha; + uint64_t stride; + pic->width = bitstream->width; + pic->height = bitstream->height; + if (pic->use_argb) { + stride = (uint64_t)bitstream->width * 4; + } else { + stride = (uint64_t)bitstream->width * (has_alpha ? 5 : 3) / 2; + pic->colorspace = has_alpha ? WEBP_YUV420A : WEBP_YUV420; + } + + if (!ImgIoUtilCheckSizeArgumentsOverflow(stride, bitstream->height)) { + status = VP8_STATUS_OUT_OF_MEMORY; + break; + } + + ok = WebPPictureAlloc(pic); + if (!ok) { + status = VP8_STATUS_OUT_OF_MEMORY; + break; + } if (pic->use_argb) { - output_buffer->colorspace = has_alpha ? MODE_RGBA : MODE_RGB; +#ifdef WORDS_BIGENDIAN + output_buffer->colorspace = MODE_ARGB; +#else + output_buffer->colorspace = MODE_BGRA; +#endif + output_buffer->u.RGBA.rgba = (uint8_t*)pic->argb; + output_buffer->u.RGBA.stride = pic->argb_stride * sizeof(uint32_t); + output_buffer->u.RGBA.size = output_buffer->u.RGBA.stride * pic->height; } else { output_buffer->colorspace = has_alpha ? MODE_YUVA : MODE_YUV; + output_buffer->u.YUVA.y = pic->y; + output_buffer->u.YUVA.u = pic->u; + output_buffer->u.YUVA.v = pic->v; + output_buffer->u.YUVA.a = has_alpha ? pic->a : NULL; + output_buffer->u.YUVA.y_stride = pic->y_stride; + output_buffer->u.YUVA.u_stride = pic->uv_stride; + output_buffer->u.YUVA.v_stride = pic->uv_stride; + output_buffer->u.YUVA.a_stride = has_alpha ? pic->a_stride : 0; + output_buffer->u.YUVA.y_size = pic->height * pic->y_stride; + output_buffer->u.YUVA.u_size = (pic->height + 1) / 2 * pic->uv_stride; + output_buffer->u.YUVA.v_size = (pic->height + 1) / 2 * pic->uv_stride; + output_buffer->u.YUVA.a_size = pic->height * pic->a_stride; } + output_buffer->is_external_memory = 1; status = DecodeWebP(data, data_size, &config); - if (status == VP8_STATUS_OK) { - pic->width = output_buffer->width; - pic->height = output_buffer->height; - if (pic->use_argb) { - const uint8_t* const rgba = output_buffer->u.RGBA.rgba; - const int stride = output_buffer->u.RGBA.stride; - ok = has_alpha ? WebPPictureImportRGBA(pic, rgba, stride) - : WebPPictureImportRGB(pic, rgba, stride); - } else { - pic->colorspace = has_alpha ? WEBP_YUV420A : WEBP_YUV420; - ok = WebPPictureAlloc(pic); - if (!ok) { - status = VP8_STATUS_OUT_OF_MEMORY; - } else { - const WebPYUVABuffer* const yuva = &output_buffer->u.YUVA; - const int uv_width = (pic->width + 1) >> 1; - const int uv_height = (pic->height + 1) >> 1; - ImgIoUtilCopyPlane(yuva->y, yuva->y_stride, - pic->y, pic->y_stride, pic->width, pic->height); - ImgIoUtilCopyPlane(yuva->u, yuva->u_stride, - pic->u, pic->uv_stride, uv_width, uv_height); - ImgIoUtilCopyPlane(yuva->v, yuva->v_stride, - pic->v, pic->uv_stride, uv_width, uv_height); - if (has_alpha) { - ImgIoUtilCopyPlane(yuva->a, yuva->a_stride, - pic->a, pic->a_stride, pic->width, pic->height); - } - } + ok = (status == VP8_STATUS_OK); + if (ok && !keep_alpha && pic->use_argb) { + // Need to wipe out the alpha value, as requested. + int x, y; + uint32_t* argb = pic->argb; + for (y = 0; y < pic->height; ++y) { + for (x = 0; x < pic->width; ++x) argb[x] |= 0xff000000u; + argb += pic->argb_stride; } } - } + } while (0); // <- so we can 'break' out of the loop if (status != VP8_STATUS_OK) { PrintWebPError("input data", status); + ok = 0; } WebPFreeDecBuffer(output_buffer); + + if (ok && metadata != NULL) { + ok = ExtractMetadata(data, data_size, metadata); + if (!ok) { + PrintWebPError("metadata", VP8_STATUS_BITSTREAM_ERROR); + } + } + if (!ok) WebPPictureFree(pic); return ok; } diff --git a/external/libwebp-0.6.0/imageio/webpdec.h b/external/libwebp-1.0.0/imageio/webpdec.h similarity index 96% rename from external/libwebp-0.6.0/imageio/webpdec.h rename to external/libwebp-1.0.0/imageio/webpdec.h index 6db801f6..d329d41f 100644 --- a/external/libwebp-0.6.0/imageio/webpdec.h +++ b/external/libwebp-1.0.0/imageio/webpdec.h @@ -51,7 +51,7 @@ VP8StatusCode DecodeWebPIncremental( //------------------------------------------------------------------------------ -// Reads a WebP from 'in_file', returning the decoded output in 'pic'. +// Decodes a WebP contained in 'data', returning the decoded output in 'pic'. // Output is RGBA or YUVA, depending on pic->use_argb value. // If 'keep_alpha' is true and the WebP has an alpha channel, the output is RGBA // or YUVA. Otherwise, alpha channel is dropped and output is RGB or YUV. diff --git a/external/libwebp-0.6.0/imageio/wicdec.c b/external/libwebp-1.0.0/imageio/wicdec.c similarity index 100% rename from external/libwebp-0.6.0/imageio/wicdec.c rename to external/libwebp-1.0.0/imageio/wicdec.c diff --git a/external/libwebp-0.6.0/imageio/wicdec.h b/external/libwebp-1.0.0/imageio/wicdec.h similarity index 100% rename from external/libwebp-0.6.0/imageio/wicdec.h rename to external/libwebp-1.0.0/imageio/wicdec.h diff --git a/external/libwebp-1.0.0/install-sh b/external/libwebp-1.0.0/install-sh new file mode 100755 index 00000000..59990a10 --- /dev/null +++ b/external/libwebp-1.0.0/install-sh @@ -0,0 +1,508 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2014-09-12.12; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +tab=' ' +nl=' +' +IFS=" $tab$nl" + +# Set DOITPROG to "echo" to test this script. + +doit=${DOITPROG-} +doit_exec=${doit:-exec} + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +is_target_a_directory=possibly + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) is_target_a_directory=never;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + dstdir=`dirname "$dst"` + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + # $RANDOM is not portable (e.g. dash); use it when possible to + # lower collision chance + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 + + # As "mkdir -p" follows symlinks and we work in /tmp possibly; so + # create the $tmpdir first (and fail if unsuccessful) to make sure + # that nobody tries to guess the $tmpdir name. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + oIFS=$IFS + IFS=/ + set -f + set fnord $dstdir + shift + set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + set +f && + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/external/libwebp-0.6.0/iosbuild.sh b/external/libwebp-1.0.0/iosbuild.sh similarity index 100% rename from external/libwebp-0.6.0/iosbuild.sh rename to external/libwebp-1.0.0/iosbuild.sh diff --git a/external/libwebp-1.0.0/ltmain.sh b/external/libwebp-1.0.0/ltmain.sh new file mode 100644 index 00000000..a736cf99 --- /dev/null +++ b/external/libwebp-1.0.0/ltmain.sh @@ -0,0 +1,11156 @@ +#! /bin/sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2014-01-03.01 + +# libtool (GNU libtool) 2.4.6 +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +PROGRAM=libtool +PACKAGE=libtool +VERSION="2.4.6 Debian-2.4.6-2" +package_revision=2.4.6 + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2015-01-20.17; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# As a special exception to the GNU General Public License, if you distribute +# this file as part of a program or library that is built using GNU Libtool, +# you may include this file under the same distribution terms that you use +# for the rest of that program. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1+=\\ \$func_quote_for_eval_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1=\$$1\\ \$func_quote_for_eval_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_for_eval ARG... +# -------------------------- +# Aesthetically quote ARGs to be evaled later. +# This function returns two values: +# i) func_quote_for_eval_result +# double-quoted, suitable for a subsequent eval +# ii) func_quote_for_eval_unquoted_result +# has all characters that are still active within double +# quotes backslashified. +func_quote_for_eval () +{ + $debug_cmd + + func_quote_for_eval_unquoted_result= + func_quote_for_eval_result= + while test 0 -lt $#; do + case $1 in + *[\\\`\"\$]*) + _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; + *) + _G_unquoted_arg=$1 ;; + esac + if test -n "$func_quote_for_eval_unquoted_result"; then + func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" + else + func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + fi + + case $_G_unquoted_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_quoted_arg=\"$_G_unquoted_arg\" + ;; + *) + _G_quoted_arg=$_G_unquoted_arg + ;; + esac + + if test -n "$func_quote_for_eval_result"; then + func_append func_quote_for_eval_result " $_G_quoted_arg" + else + func_append func_quote_for_eval_result "$_G_quoted_arg" + fi + shift + done +} + + +# func_quote_for_expand ARG +# ------------------------- +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + $debug_cmd + + case $1 in + *[\\\`\"]*) + _G_arg=`$ECHO "$1" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; + *) + _G_arg=$1 ;; + esac + + case $_G_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_arg=\"$_G_arg\" + ;; + esac + + func_quote_for_expand_result=$_G_arg +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_for_expand "$_G_cmd" + eval "func_notquiet $func_quote_for_expand_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_for_expand "$_G_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Set a version string for this script. +scriptversion=2014-01-07.03; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# warranty; '. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# to the main code. A hook is just a named list of of function, that can +# be run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It is assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook funcions.n" ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + eval $_G_hook '"$@"' + + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + done + + func_quote_for_eval ${1+"$@"} + func_run_hooks_result=$func_quote_for_eval_result +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list in your hook function, remove any +# options that you action, and then pass back the remaining unprocessed +# options in '_result', escaped suitably for +# 'eval'. Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# +# func_quote_for_eval ${1+"$@"} +# my_options_prep_result=$func_quote_for_eval_result +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# # Note that for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# ;; +# *) set dummy "$_G_opt" "$*"; shift; break ;; +# esac +# done +# +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# +# func_quote_for_eval ${1+"$@"} +# my_option_validation_result=$func_quote_for_eval_result +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll alse need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + func_options_prep ${1+"$@"} + eval func_parse_options \ + ${func_options_prep_result+"$func_options_prep_result"} + eval func_validate_options \ + ${func_parse_options_result+"$func_parse_options_result"} + + eval func_run_hooks func_options \ + ${func_validate_options_result+"$func_validate_options_result"} + + # save modified positional parameters for caller + func_options_result=$func_run_hooks_result +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propogate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before +# returning. +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + func_run_hooks func_options_prep ${1+"$@"} + + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + func_parse_options_result= + + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} + + # Adjust func_parse_options positional parameters to match + eval set dummy "$func_run_hooks_result"; shift + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + test $# = 0 && func_missing_arg $_G_opt && break + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE + + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables after +# splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + test "x$func_split_equals_lhs" = "x$1" \ + && func_split_equals_rhs= + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /(C)/!b go + :more + /\./!{ + N + s|\n# | | + b more + } + :go + /^# Written by /,/# warranty; / { + s|^# || + s|^# *$|| + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + p + } + /^# Written by / { + s|^# || + p + } + /^warranty; /q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string. +scriptversion='(GNU libtool) 2.4.6' + + +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + $debug_cmd + + $warning_func ${1+"$@"} +} + + +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" + +# Additional text appended to 'usage_message' in response to '--help'. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname $scriptversion Debian-2.4.6-2 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." + exit 0 +} + + +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi + + +# func_fatal_configuration ARG... +# ------------------------------- +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func__fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." +} + + +# func_config +# ----------- +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + + +# func_features +# ------------- +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test yes = "$build_libtool_libs"; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test yes = "$build_old_libs"; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + + +# func_enable_tag TAGNAME +# ----------------------- +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname=$1 + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + + +# func_check_version_match +# ------------------------ +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + + nonopt= + preserve_args= + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac + + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result +} +func_add_hook func_options_prep libtool_options_prep + + +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result +} +func_add_hook func_parse_options libtool_parse_options + + + +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift + fi + + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } + + # Pass back the unparsed argument list + func_quote_for_eval ${1+"$@"} + libtool_validate_options_result=$func_quote_for_eval_result +} +func_add_hook func_validate_options libtool_validate_options + + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + + + +## ----------- ## +## Main. ## +## ----------- ## + +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if 'file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case $lalib_p_line in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test yes = "$lalib_p" +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $debug_cmd + + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# 'FILE.' does not work on cygwin managed mounts. +func_source () +{ + $debug_cmd + + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case $lt_sysroot:$1 in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result='='$func_stripname_result + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $debug_cmd + + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with '--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' + else + write_lobj=none + fi + + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $debug_cmd + + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result= + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result"; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $debug_cmd + + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $debug_cmd + + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $debug_cmd + + if test -z "$2" && test -n "$1"; then + func_error "Could not determine host file name corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result=$1 + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $debug_cmd + + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " '$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result=$3 + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $debug_cmd + + case $4 in + $1 ) func_to_host_path_result=$3$func_to_host_path_result + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via '$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $debug_cmd + + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $debug_cmd + + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result=$1 +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via '$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $debug_cmd + + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd=func_convert_path_$func_stripname_result + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $debug_cmd + + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result=$1 +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + +# func_mode_compile arg... +func_mode_compile () +{ + $debug_cmd + + # Get the compilation command and the source file. + base_compile= + srcfile=$nonopt # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg=$arg + arg_mode=normal + ;; + + target ) + libobj=$arg + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify '-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs=$IFS; IFS=, + for arg in $args; do + IFS=$save_ifs + func_append_quoted lastarg "$arg" + done + IFS=$save_ifs + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg=$srcfile + srcfile=$arg + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with '-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj=$func_basename_result + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from '$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name '$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test yes = "$build_old_libs"; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test yes = "$need_locks"; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test warn = "$need_locks"; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test yes = "$build_libtool_libs"; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test no != "$pic_mode"; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test yes = "$suppress_opt"; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test yes = "$compiler_c_o"; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test no != "$need_locks"; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a 'standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to '-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the '--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the 'install' or 'cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with '-') are ignored. + +Every other argument is treated as a filename. Files ending in '.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. + +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode '$opt_mode'" + ;; + esac + + echo + $ECHO "Try '$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test : = "$opt_help"; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + $SED '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $debug_cmd + + # The first argument is the command name. + cmd=$nonopt + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "'$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "'$file' was not linked with '-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir=$func_dirname_result + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir=$func_dirname_result + ;; + + *) + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir=$absdir + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic=$magic + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file=$progdir/$program + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file=$progdir/$program + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd=\$cmd$args + fi +} + +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $debug_cmd + + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "'$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument '$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and '=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_quiet && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the '$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the '$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the '$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $debug_cmd + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac + then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=false + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=: ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the '$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir=$func_dirname_result + destname=$func_basename_result + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "'$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "'$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir=$func_dirname_result + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking '$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname=$1 + shift + + srcname=$realname + test -n "$relink_command" && srcname=${realname}T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme=$stripme + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try 'ln -sf' first, because the 'ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib=$destdir/$realname + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name=$func_basename_result + instname=$dir/${name}i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest=$destfile + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to '$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test yes = "$build_old_libs"; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext= + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=.exe + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script '$wrapper'" + + finalize=: + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test no = "$fast_install" && test -n "$relink_command"; then + $opt_dry_run || { + if $finalize; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file=$func_basename_result + outputname=$tmpdir/$file + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_quiet || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink '$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file=$outputname + else + func_warning "cannot relink '$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name=$func_basename_result + + # Set up the ranlib parameters. + oldlib=$destdir/$name + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run '$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test install = "$opt_mode" && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms=${my_outputname}S.c + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist=$output_objdir/$my_outputname.nm + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* External symbol declarations for the compiler. */\ +" + + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols=$output_objdir/$outputname.exp + $opt_dry_run || { + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from '$dlprefile'" + func_basename "$dlprefile" + name=$func_basename_result + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename= + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname"; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename=$func_basename_result + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename"; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + $my_pic_p && pic_flag_for_symtable=" $pic_flag" + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' + + # Transform the symbol file into the correct name. + symfileobj=$output_objdir/${my_outputname}S.$objext + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for '$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $debug_cmd + + win32_libid_type=unknown + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s|.*|import| + p + q + } + }'` + ;; + esac + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $debug_cmd + + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $debug_cmd + + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1"; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result= + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test yes = "$lock_old_archive_extraction"; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $debug_cmd + + my_gentop=$1; shift + my_oldlibs=${1+"$@"} + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib=$func_basename_result + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" + cd "$darwin_curdir" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result=$my_oldobjs +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory where it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test yes = "$fast_install"; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + \$ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* declarations of non-ANSI functions */ +#if defined __MINGW32__ +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined __CYGWIN__ +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined other_platform || defined ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined _MSC_VER +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +#elif defined __MINGW32__ +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined __CYGWIN__ +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined other platforms ... */ +#endif + +#if defined PATH_MAX +# define LT_PATHMAX PATH_MAX +#elif defined MAXPATHLEN +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free (stale); stale = 0; } \ +} while (0) + +#if defined LT_DEBUGWRAPPER +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + size_t tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined HAVE_DOS_BASED_FILE_SYSTEM + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined HAVE_DOS_BASED_FILE_SYSTEM + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = (size_t) (q - p); + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (STREQ (str, pat)) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + size_t len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + size_t orig_value_len = strlen (orig_value); + size_t add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[--len] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $debug_cmd + + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $debug_cmd + + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # what system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll that has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + os2dllname= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=false + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module=$wl-single_module + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg=$1 + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir=$arg + prev= + continue + ;; + dlfiles|dlprefiles) + $preload || { + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=: + } + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test no = "$dlself"; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test dlprefiles = "$prev"; then + dlself=yes + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test dlfiles = "$prev"; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols=$arg + test -f "$arg" \ + || func_fatal_error "symbol file '$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex=$arg + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + if test none != "$pic_object"; then + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + fi + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file '$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; + precious_regex) + precious_files_regex=$arg + prev= + continue + ;; + release) + release=-$arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test rpath = "$prev"; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds=$arg + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg=$arg + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "'-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test X-export-symbols = "X$arg"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between '-L' and '$1'" + else + func_fatal_error "need path for '-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test X-lc = "X$arg" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc due to us having libc/libc_r. + test X-lc = "X$arg" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test X-lc = "X$arg" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test X-lc = "X$arg" && continue + ;; + esac + elif test X-lc_r = "X$arg"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -mllvm) + prev=mllvm + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module=$wl-multi_module + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -os2dllname) + prev=os2dllname + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files + # -stdlib=* select c++ std lib with clang + # -fsanitize=* Clang/GCC memory and address sanitizer + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -specs=*|-fsanitize=*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + fi + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + test none = "$pic_object" || { + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + } + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test dlfiles = "$prev"; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test dlprefiles = "$prev"; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the '$prevarg' option requires an argument" + + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname=$func_basename_result + libobjs_save=$libobjs + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + + func_dirname "$output" "/" "" + output_objdir=$func_dirname_result$objdir + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test lib = "$linkmode"; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=false + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test lib,link = "$linkmode,$pass"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs=$tmp_deplibs + fi + + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs + deplibs= + fi + if test prog = "$linkmode"; then + case $pass in + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test lib,dlpreopen = "$linkmode,$pass"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs=$dlprefiles + fi + if test dlopen = "$pass"; then + # Collect dlpreopened libraries + save_deplibs=$deplibs + deplibs= + fi + + for deplib in $libs; do + lib= + found=false + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test lib = "$linkmode"; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib=$searchdir/lib$name$search_ext + if test -f "$lib"; then + if test .la = "$search_ext"; then + found=: + else + found=false + fi + break 2 + fi + done + done + if $found; then + # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll=$l + done + if test "X$ll" = "X$old_library"; then # only static version available + found=false + func_dirname "$lib" "" "." + ladir=$func_dirname_result + lib=$ladir/$old_library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + *.ltframework) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test conv = "$pass" && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + if test scan = "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "'-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test link = "$pass"; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=false + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=: + fi + ;; + pass_all) + valid_a_lib=: + ;; + esac + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + fi + ;; + esac + continue + ;; + prog) + if test link != "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=: + continue + ;; + esac # case $deplib + + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "'$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir=$func_dirname_result + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test conv = "$pass"; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib=$l + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + + # This library was specified with -dlopen. + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" + if test -z "$dlname" || + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of '$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir=$ladir + fi + ;; + esac + func_basename "$lib" + laname=$func_basename_result + + # Find the relevant object directory and library name. + if test yes = "$installed"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir + else + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir + fi + test yes = "$hardcode_automatic" && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir=$ladir + absdir=$abs_ladir + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" + fi + case $host in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test lib = "$linkmode"; then + deplibs="$dir/$old_library $deplibs" + elif test prog,link = "$linkmode,$pass"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test prog = "$linkmode" && test link != "$pass"; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if $linkalldeplibs; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test prog,link = "$linkmode,$pass"; then + if test -n "$library_names" && + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then + # Make sure the rpath contains only unique directories. + case $temp_rpath: in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test built = "$use_static_libs" && test yes = "$installed"; then + use_static_libs=no + fi + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test no = "$installed"; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule= + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule=$dlpremoduletest + break + fi + done + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then + echo + if test prog = "$linkmode"; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname=$1 + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname=$dlname + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + esac + eval soname=\"$soname_spec\" + else + soname=$realname + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot=$soname + func_basename "$soroot" + soname=$func_basename_result + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from '$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for '$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test prog = "$linkmode" || test relink != "$opt_mode"; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test no = "$hardcode_direct"; then + add=$dir/$linklib + case $host in + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir=-L$dir ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we cannot + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library"; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add=$dir/$old_library + fi + elif test -n "$old_library"; then + add=$dir/$old_library + fi + fi + esac + elif test no = "$hardcode_minus_L"; then + case $host in + *-*-sunos*) add_shlibpath=$dir ;; + esac + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + relink) + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test yes != "$lib_linked"; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test prog = "$linkmode"; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test prog = "$linkmode" || test relink = "$opt_mode"; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add=-l$name + elif test yes = "$hardcode_automatic"; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib + else + add=$libdir/$linklib + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir=-L$libdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + fi + + if test prog = "$linkmode"; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test prog = "$linkmode"; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test yes = "$build_libtool_libs"; then + # Not a shared library + if test pass_all != "$deplibs_check_method"; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system cannot link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test yes = "$module"; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test lib = "$linkmode"; then + if test -n "$dependency_libs" && + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs=$temp_deplibs + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test no != "$link_all_deplibs"; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path=$deplib ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" + path= + fi + fi + ;; + *) + path=-L$absdir/$objdir + ;; + esac + else + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "'$deplib' seems to be moved" + + path=-L$absdir + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test link = "$pass"; then + if test prog = "$linkmode"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test dlopen != "$pass"; then + test conv = "$pass" || { + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + } + + if test prog,link = "$linkmode,$pass"; then + vars="compile_deplibs finalize_deplibs" + else + vars=deplibs + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i= + ;; + esac + if test -n "$i"; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test prog = "$linkmode"; then + dlfiles=$newdlfiles + fi + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "'-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "'-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs=$output + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form 'libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" + + if test no != "$need_lib_prefix"; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" + + install_libdir=$1 + + oldlibs= + if test -z "$rpath"; then + if test yes = "$build_libtool_libs"; then + # Building a libtool convenience library. + # Some compilers have problems with a '.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "'-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs=$IFS; IFS=: + set dummy $vinfo 0 0 0 + shift + IFS=$save_ifs + + test -n "$7" && \ + func_fatal_help "too many parameters to '-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major=$1 + number_minor=$2 + number_revision=$3 + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # that has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|freebsd-elf|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_revision + ;; + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_minor + lt_irix_increment=no + ;; + *) + func_fatal_configuration "$modename: unknown library version type '$version_type'" + ;; + esac + ;; + no) + current=$1 + revision=$2 + age=$3 + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac + ;; + + freebsd-aout) + major=.$current + versuffix=.$current.$revision + ;; + + freebsd-elf) + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + irix | nonstopux) + if test no = "$lt_irix_increment"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring=$verstring_prefix$major.$revision + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test 0 -ne "$loop"; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring_prefix$major.$iface:$verstring + done + + # Before this point, $major must not contain '.'. + major=.$major + versuffix=$major.$revision + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision + + # Add in all the interfaces that we are compatible with. + loop=$age + while test 0 -ne "$loop"; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring:$iface.0 + done + + # Make executables depend on our current version. + func_append verstring ":$current.0" + ;; + + qnx) + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current + ;; + + sunos) + major=.$current + versuffix=.$current.$revision + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 file systems. + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + + *) + func_fatal_configuration "unknown library version type '$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring=0.0 + ;; + esac + if test no = "$need_version"; then + versuffix= + else + versuffix=.0.0 + fi + fi + + # Remove version info from name if versioning should be avoided + if test yes,no = "$avoid_version,$need_version"; then + major= + versuffix= + verstring= + fi + + # Check to see if the archive will have undefined symbols. + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi + fi + else + # Don't allow undefined symbols. + allow_undefined_flag=$no_undefined_flag + fi + + fi + + func_generate_dlsyms "$libname" "$libname" : + func_append libobjs " $symfileobj" + test " " = "$libobjs" && libobjs= + + if test relink != "$opt_mode"; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles=$dlfiles + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles=$dlprefiles + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test yes = "$build_libtool_libs"; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test yes = "$build_libtool_need_lc"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release= + versuffix= + major= + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib=$potent_lib + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib=$potent_lib # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs= + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test none = "$deplibs_check_method"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test yes = "$droppeddeps"; then + if test yes = "$module"; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test no = "$allow_undefined"; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs=$new_libs + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test yes = "$hardcode_into_libs"; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname=$1 + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname=$realname + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib=$output_objdir/$realname + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + func_dll_def_p "$export_symbols" || { + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols=$export_symbols + export_symbols= + always_export_symbols=yes + } + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs=$IFS; IFS='~' + for cmd1 in $cmds; do + IFS=$save_ifs + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test yes = "$try_normal_branch" \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=$output_objdir/$output_la.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs=$tmp_deplibs + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test yes = "$compiler_needs_object" && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test : != "$skipped_export" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test yes = "$compiler_needs_object"; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-$k.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test -z "$objlist" || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test 1 -eq "$k"; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-$k.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-$k.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + } + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs=$IFS; IFS='~' + for cmd in $concat_cmds; do + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + ${skipped_export-false} && { + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + } + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs=$IFS; IFS='~' + for cmd in $cmds; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test yes = "$module" || test yes = "$export_dynamic"; then + # On all known operating systems, these are identical. + dlname=$soname + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "'-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object '$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj=$output + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags + else + gentop=$output_objdir/${obj}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects + + # Create the old-style object. + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs + + output=$obj + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + test yes = "$build_libtool_libs" || { + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + } + + if test -n "$pic_flag" || test default != "$pic_mode"; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output=$libobj + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "'-release' is ignored for programs" + + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test CXX = "$tagname"; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs=$new_libs + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath=$rpath + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath=$rpath + + if test -n "$libobjs" && test yes = "$build_old_libs"; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" false + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=: + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; + *cygwin* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false + fi + ;; + esac + $wrappers_required || { + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command=$compile_command$compile_rpath + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' + fi + + exit $exit_status + } + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test yes = "$no_install"; then + # We don't need to create a wrapper script. + link_command=$compile_var$compile_command$compile_rpath + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host"; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience + build_libtool_libs=no + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) + oldobjs="$old_deplibs $non_pic_objects" + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac + + if test -n "$addlibs"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase=$func_basename_result + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj"; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test -z "$oldobjs"; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test yes = "$build_old_libs" && old_library=$libname.$libext + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test yes = "$hardcode_automatic"; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test yes = "$installed"; then + if test -z "$install_libdir"; then + break + fi + output=$output_objdir/${outputname}i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name=$func_basename_result + func_resolve_sysroot "$deplib" + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs=$newdependency_libs + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles=$newdlprefiles + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles=$newdlprefiles + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result/$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test no,yes = "$installed,$need_relink"; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $debug_cmd + + RM=$nonopt + files= + rmforce=false + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=: ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir + else + odir=$dir/$objdir + fi + func_basename "$file" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir + + # Remember odir for removal later, being careful to avoid duplicates + if test clean = "$opt_mode"; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif $rmforce; then + continue + fi + + rmfiles=$file + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case $opt_mode in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && test none != "$pic_object"; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && test none != "$non_pic_object"; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test clean = "$opt_mode"; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the $objdir's in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi + +test -z "$opt_mode" && { + help=$generic_help + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode '$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# where we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/external/libwebp-0.6.0/m4/ax_pthread.m4 b/external/libwebp-1.0.0/m4/ax_pthread.m4 similarity index 100% rename from external/libwebp-0.6.0/m4/ax_pthread.m4 rename to external/libwebp-1.0.0/m4/ax_pthread.m4 diff --git a/external/libwebp-1.0.0/m4/libtool.m4 b/external/libwebp-1.0.0/m4/libtool.m4 new file mode 100644 index 00000000..ee80844b --- /dev/null +++ b/external/libwebp-1.0.0/m4/libtool.m4 @@ -0,0 +1,8387 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +]) + +# serial 58 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME + + +# _LT_CC_BASENAME(CC) +# ------------------- +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. +m4_defun([_LT_CC_BASENAME], +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl +m4_require([_LT_CMD_TRUNCATE])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from 'configure', and 'config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# 'config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain=$ac_aux_dir/ltmain.sh +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the 'libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to 'config.status' so that its +# declaration there will have the same value as in 'configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags='_LT_TAGS'dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into 'config.status', and then the shell code to quote escape them in +# for loops in 'config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# '#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test 0 = "$lt_write_fail" && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +'$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test 0 != $[#] +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try '$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try '$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test yes = "$silent" && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +_LT_COPYING +_LT_LIBTOOL_TAGS + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS=$save_LDFLAGS + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[[012]][[,.]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test yes = "$lt_cv_ld_force_load"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + m4_if([$1], [CXX], +[ if test yes != "$lt_cv_apple_cc_single_mod"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script that will find a shell with a builtin +# printf (that we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case $ECHO in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([$with_sysroot]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and where our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test yes = "[$]$2"; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS +]) + +if test yes = "[$]$2"; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n "$lt_cv_sys_max_cmd_len"; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes = "$cross_compiling"; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen=shl_load], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen=dlopen], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links=nottested +if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test no = "$hard_links"; then + AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", + [Define to the sub-directory where libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then + + # We can hardcode non-existent directories. + if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && + test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || + test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_PREPARE_MUNGE_PATH_LIST +# --------------------------- +# Make sure func_munge_path_list() is defined correctly. +m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], +[[# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x@S|@2 in + x) + ;; + *:) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" + ;; + x:*) + eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" + ;; + *) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + esac +} +]])# _LT_PREPARE_PATH_LIST + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +AC_ARG_VAR([LT_SYS_LIBRARY_PATH], +[User-defined run-time library search path.]) + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a[(]lib.so.V[)]' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], + [Detected run-time system search path for libraries]) +_LT_DECL([], [configure_time_lt_sys_library_path], [2], + [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program that can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$1"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac]) +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program that can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test no = "$withval" || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], +[if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi]) +rm -f conftest.i conftest2.i conftest.out]) +])# _LT_PATH_DD + + +# _LT_CMD_TRUNCATE +# ---------------- +# find command to truncate a binary pipe +m4_defun([_LT_CMD_TRUNCATE], +[m4_require([_LT_PATH_DD]) +AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) +_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], + [Command to truncate a binary pipe]) +])# _LT_CMD_TRUNCATE + + +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi]) +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# _LT_DLL_DEF_P([FILE]) +# --------------------- +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with func_dll_def_p in the libtool script +AC_DEFUN([_LT_DLL_DEF_P], +[dnl + test DEF = "`$SED -n dnl + -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace + -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments + -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl + -e q dnl Only consider the first "real" line + $1`" dnl +])# _LT_DLL_DEF_P + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM=-lm) + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], + [Transform the output of nm into a list of symbols to manually relocate]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], + [The name lister interface]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64, which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test yes = "$GCC"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS=$save_LDFLAGS]) + if test yes = "$lt_cv_irix_exported_symbol"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(ld_shlibs, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + osf3*) + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting $shlibpath_var if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC=$CC +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report what library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC=$lt_save_CC +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_caught_CXX_error"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test yes = "$GXX"; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='$wl' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GXX"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + # The "-G" linker flag allows undefined symbols. + _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require '-G' NOT '-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + + _LT_TAGVAR(GCC, $1)=$GXX + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test yes != "$_lt_caught_CXX_error" + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case @S|@2 in + .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; + *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "$p" || + test x-R = "$p"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test no = "$pre_test_object_deps_done"; then + case $prev in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)=$prev$p + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test no = "$pre_test_object_deps_done"; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)=$p + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)=$p + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test no = "$F77"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_F77"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$G77 + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_F77" + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test no = "$FC"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_FC"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_FC" + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f "$lt_ac_sed" && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test 10 -lt "$lt_ac_count" && break + lt_ac_count=`expr $lt_ac_count + 1` + if test "$lt_ac_count" -gt "$lt_ac_max"; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine what file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/external/libwebp-1.0.0/m4/ltoptions.m4 b/external/libwebp-1.0.0/m4/ltoptions.m4 new file mode 100644 index 00000000..94b08297 --- /dev/null +++ b/external/libwebp-1.0.0/m4/ltoptions.m4 @@ -0,0 +1,437 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 8 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option '$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl 'shared' nor 'disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], + [_LT_WITH_AIX_SONAME([aix])]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the 'shared' and +# 'disable-shared' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the 'static' and +# 'disable-static' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the 'fast-install' +# and 'disable-fast-install' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_AIX_SONAME([DEFAULT]) +# ---------------------------------- +# implement the --with-aix-soname flag, and support the `aix-soname=aix' +# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT +# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. +m4_define([_LT_WITH_AIX_SONAME], +[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl +shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[[5-9]]*,yes) + AC_MSG_CHECKING([which variant of shared library versioning to provide]) + AC_ARG_WITH([aix-soname], + [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], + [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], + [case $withval in + aix|svr4|both) + ;; + *) + AC_MSG_ERROR([Unknown argument to --with-aix-soname]) + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname], + [AC_CACHE_VAL([lt_cv_with_aix_soname], + [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) + with_aix_soname=$lt_cv_with_aix_soname]) + AC_MSG_RESULT([$with_aix_soname]) + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + +_LT_DECL([], [shared_archive_member_spec], [0], + [Shared archive member basename, for filename based shared library versioning on AIX])dnl +])# _LT_WITH_AIX_SONAME + +LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' +# LT_INIT options. +# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [pic_mode=m4_default([$1], [default])]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/external/libwebp-1.0.0/m4/ltsugar.m4 b/external/libwebp-1.0.0/m4/ltsugar.m4 new file mode 100644 index 00000000..48bc9344 --- /dev/null +++ b/external/libwebp-1.0.0/m4/ltsugar.m4 @@ -0,0 +1,124 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59, which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff --git a/external/libwebp-1.0.0/m4/ltversion.m4 b/external/libwebp-1.0.0/m4/ltversion.m4 new file mode 100644 index 00000000..fa04b52a --- /dev/null +++ b/external/libwebp-1.0.0/m4/ltversion.m4 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 4179 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.6]) +m4_define([LT_PACKAGE_REVISION], [2.4.6]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.6' +macro_revision='2.4.6' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff --git a/external/libwebp-1.0.0/m4/lt~obsolete.m4 b/external/libwebp-1.0.0/m4/lt~obsolete.m4 new file mode 100644 index 00000000..c6b26f88 --- /dev/null +++ b/external/libwebp-1.0.0/m4/lt~obsolete.m4 @@ -0,0 +1,99 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/external/libwebp-0.6.0/makefile.unix b/external/libwebp-1.0.0/makefile.unix similarity index 86% rename from external/libwebp-0.6.0/makefile.unix rename to external/libwebp-1.0.0/makefile.unix index 47b8c65f..cc0035df 100644 --- a/external/libwebp-0.6.0/makefile.unix +++ b/external/libwebp-1.0.0/makefile.unix @@ -25,13 +25,26 @@ ifeq ($(strip $(shell uname)), Darwin) # Failure observed with: gcc 4.2.1 and 4.0.1. EXTRA_FLAGS += -fno-common EXTRA_FLAGS += -DHAVE_GLUT_GLUT_H + EXTRA_FLAGS += -Wno-deprecated-declarations EXTRA_FLAGS += -I/opt/local/include EXTRA_LIBS += -L/opt/local/lib GL_LIBS = -framework GLUT -framework OpenGL else + EXTRA_FLAGS += -I/usr/local/include + EXTRA_LIBS += -L/usr/local/lib GL_LIBS = -lglut -lGL endif +# SDL flags: use sdl-config if it exists +SDL_CONFIG = $(shell sdl-config --version 2> /dev/null) +ifneq ($(SDL_CONFIG),) + SDL_LIBS = $(shell sdl-config --libs) + SDL_FLAGS = $(shell sdl-config --cflags) +else + # use best-guess + SDL_LIBS = -lSDL + SDL_FLAGS = +endif # To install libraries on Mac OS X: # 1. Install MacPorts (http://www.macports.org/install.php) @@ -51,11 +64,8 @@ endif # 'make -f makefile.unix EXTRA_FLAGS=-m32' to that effect. # EXTRA_FLAGS += -m32 -# Extra flags to enable experimental features and code -# EXTRA_FLAGS += -DWEBP_EXPERIMENTAL_FEATURES - # Extra flags to enable byte swap for 16 bit colorspaces. -# EXTRA_FLAGS += -DWEBP_SWAP_16BIT_CSP +# EXTRA_FLAGS += -DWEBP_SWAP_16BIT_CSP=1 # Extra flags to enable multi-threading EXTRA_FLAGS += -DWEBP_USE_THREAD @@ -101,8 +111,13 @@ endif AR = ar ARFLAGS = r -CPPFLAGS = -Isrc/ -Wall -CFLAGS = -O3 -DNDEBUG $(EXTRA_FLAGS) +CPPFLAGS = -I. -Isrc/ -Wall +ifeq ($(DEBUG), 1) + CFLAGS = -g +else + CFLAGS = -O3 -DNDEBUG +endif +CFLAGS += $(EXTRA_FLAGS) CC = gcc INSTALL = install GROFF = /usr/bin/groff @@ -164,15 +179,15 @@ DSP_DEC_OBJS = \ src/dsp/upsampling_msa.o \ src/dsp/upsampling_neon.o \ src/dsp/upsampling_sse2.o \ + src/dsp/upsampling_sse41.o \ src/dsp/yuv.o \ src/dsp/yuv_mips32.o \ src/dsp/yuv_mips_dsp_r2.o \ + src/dsp/yuv_neon.o \ src/dsp/yuv_sse2.o \ + src/dsp/yuv_sse41.o \ DSP_ENC_OBJS = \ - src/dsp/argb.o \ - src/dsp/argb_mips_dsp_r2.o \ - src/dsp/argb_sse2.o \ src/dsp/cost.o \ src/dsp/cost_mips32.o \ src/dsp/cost_mips_dsp_r2.o \ @@ -192,14 +207,16 @@ DSP_ENC_OBJS = \ src/dsp/lossless_enc_neon.o \ src/dsp/lossless_enc_sse2.o \ src/dsp/lossless_enc_sse41.o \ + src/dsp/ssim.o \ + src/dsp/ssim_sse2.o \ ENC_OBJS = \ src/enc/alpha_enc.o \ src/enc/analysis_enc.o \ + src/enc/backward_references_cost_enc.o \ src/enc/backward_references_enc.o \ src/enc/config_enc.o \ src/enc/cost_enc.o \ - src/enc/delta_palettization_enc.o \ src/enc/filter_enc.o \ src/enc/frame_enc.o \ src/enc/histogram_enc.o \ @@ -223,6 +240,7 @@ EX_FORMAT_DEC_OBJS = \ imageio/jpegdec.o \ imageio/metadata.o \ imageio/pngdec.o \ + imageio/pnmdec.o \ imageio/tiffdec.o \ imageio/webpdec.o \ @@ -296,7 +314,6 @@ HDRS = \ src/dsp/yuv.h \ src/enc/backward_references_enc.h \ src/enc/cost_enc.h \ - src/enc/delta_palettization_enc.h \ src/enc/histogram_enc.h \ src/enc/vp8i_enc.h \ src/enc/vp8li_enc.h \ @@ -328,8 +345,9 @@ OUT_LIBS += src/libwebp.a EXTRA_LIB = extras/libwebpextras.a OUT_EXAMPLES = examples/cwebp examples/dwebp EXTRA_EXAMPLES = examples/gif2webp examples/vwebp examples/webpmux \ - examples/anim_diff examples/img2webp -OTHER_EXAMPLES = extras/get_disto extras/webp_quality + examples/anim_diff examples/anim_dump \ + examples/img2webp examples/webpinfo +OTHER_EXAMPLES = extras/get_disto extras/webp_quality extras/vwebp_sdl OUTPUT = $(OUT_LIBS) $(OUT_EXAMPLES) ifeq ($(MAKECMDGOALS),clean) @@ -356,7 +374,7 @@ src/utils/bit_reader_utils.o: src/utils/endian_inl_utils.h src/utils/bit_writer_utils.o: src/utils/endian_inl_utils.h %.o: %.c $(HDRS) - $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ examples/libanim_util.a: $(ANIM_UTIL_OBJS) examples/libexample_util.a: $(EX_UTIL_OBJS) @@ -374,25 +392,36 @@ src/demux/libwebpdemux.a: $(LIBWEBPDEMUX_OBJS) $(AR) $(ARFLAGS) $@ $^ examples/anim_diff: examples/anim_diff.o $(ANIM_UTIL_OBJS) $(GIFDEC_OBJS) +examples/anim_dump: examples/anim_dump.o $(ANIM_UTIL_OBJS) examples/cwebp: examples/cwebp.o examples/dwebp: examples/dwebp.o examples/gif2webp: examples/gif2webp.o $(GIFDEC_OBJS) examples/vwebp: examples/vwebp.o examples/webpmux: examples/webpmux.o examples/img2webp: examples/img2webp.o +examples/webpinfo: examples/webpinfo.o examples/anim_diff: examples/libanim_util.a examples/libgifdec.a examples/anim_diff: src/demux/libwebpdemux.a examples/libexample_util.a examples/anim_diff: imageio/libimageio_util.a src/libwebp.a examples/anim_diff: EXTRA_LIBS += $(GIF_LIBS) examples/anim_diff: EXTRA_FLAGS += -DWEBP_HAVE_GIF +examples/anim_dump: examples/libanim_util.a +examples/anim_dump: src/demux/libwebpdemux.a +examples/anim_dump: examples/libexample_util.a +examples/anim_dump: imageio/libimageio_util.a +examples/anim_dump: imageio/libimageenc.a +examples/anim_dump: src/libwebp.a +examples/anim_dump: EXTRA_LIBS += $(GIF_LIBS) $(DWEBP_LIBS) examples/cwebp: examples/libexample_util.a examples/cwebp: imageio/libimagedec.a +examples/cwebp: src/demux/libwebpdemux.a examples/cwebp: imageio/libimageio_util.a examples/cwebp: src/libwebp.a examples/cwebp: EXTRA_LIBS += $(CWEBP_LIBS) examples/dwebp: examples/libexample_util.a examples/dwebp: imageio/libimagedec.a +examples/dwebp: src/demux/libwebpdemux.a examples/dwebp: imageio/libimageenc.a examples/dwebp: imageio/libimageio_util.a examples/dwebp: src/libwebp.a @@ -409,17 +438,30 @@ examples/webpmux: examples/libexample_util.a imageio/libimageio_util.a examples/webpmux: src/mux/libwebpmux.a src/libwebpdecoder.a examples/img2webp: examples/libexample_util.a imageio/libimageio_util.a examples/img2webp: imageio/libimagedec.a +examples/img2webp: src/demux/libwebpdemux.a examples/img2webp: src/mux/libwebpmux.a src/libwebp.a examples/img2webp: EXTRA_LIBS += $(CWEBP_LIBS) +examples/webpinfo: examples/libexample_util.a imageio/libimageio_util.a +examples/webpinfo: src/libwebpdecoder.a extras/get_disto: extras/get_disto.o -extras/get_disto: imageio/libimagedec.a imageio/libimageio_util.a src/libwebp.a +extras/get_disto: imageio/libimagedec.a +extras/get_disto: src/demux/libwebpdemux.a +extras/get_disto: imageio/libimageio_util.a +extras/get_disto: src/libwebp.a extras/get_disto: EXTRA_LIBS += $(CWEBP_LIBS) extras/webp_quality: extras/webp_quality.o extras/webp_quality: imageio/libimageio_util.a extras/webp_quality: $(EXTRA_LIB) src/libwebp.a +extras/vwebp_sdl: extras/vwebp_sdl.o +extras/vwebp_sdl: extras/webp_to_sdl.o +extras/vwebp_sdl: imageio/libimageio_util.a +extras/vwebp_sdl: src/libwebp.a +extras/vwebp_sdl: EXTRA_FLAGS += -DWEBP_HAVE_SDL $(SDL_FLAGS) +extras/vwebp_sdl: EXTRA_LIBS += $(SDL_LIBS) + $(OUT_EXAMPLES) $(EXTRA_EXAMPLES) $(OTHER_EXAMPLES): $(CC) -o $@ $^ $(LDFLAGS) @@ -435,9 +477,9 @@ dist: all $(INSTALL) -m644 src/mux/libwebpmux.a $(DESTDIR)/lib umask 022; \ for m in man/[cdv]webp.1 man/gif2webp.1 man/webpmux.1 \ - man/img2webp.1; do \ + man/img2webp.1 man/webpinfo.1; do \ basenam=$$(basename $$m .1); \ - $(GROFF) -t -e -man -T utf8 $$m \ + $(GROFF) -t -e -man -T ascii $$m \ | $(COL) -bx >$(DESTDIR)/doc/$${basenam}.txt; \ $(GROFF) -t -e -man -T html $$m \ | $(COL) -bx >$(DESTDIR)/doc/$${basenam}.html; \ diff --git a/external/libwebp-0.6.0/man/Makefile.am b/external/libwebp-1.0.0/man/Makefile.am similarity index 79% rename from external/libwebp-0.6.0/man/Makefile.am rename to external/libwebp-1.0.0/man/Makefile.am index f896ef93..a7ef77f3 100644 --- a/external/libwebp-0.6.0/man/Makefile.am +++ b/external/libwebp-1.0.0/man/Makefile.am @@ -8,4 +8,7 @@ endif if BUILD_VWEBP man_MANS += vwebp.1 endif +if BUILD_WEBPINFO + man_MANS += webpinfo.1 +endif EXTRA_DIST = $(man_MANS) diff --git a/external/libwebp-1.0.0/man/Makefile.in b/external/libwebp-1.0.0/man/Makefile.in new file mode 100644 index 00000000..842d4b65 --- /dev/null +++ b/external/libwebp-1.0.0/man/Makefile.in @@ -0,0 +1,548 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@WANT_MUX_TRUE@am__append_1 = webpmux.1 +@BUILD_GIF2WEBP_TRUE@am__append_2 = gif2webp.1 +@BUILD_VWEBP_TRUE@am__append_3 = vwebp.1 +@BUILD_WEBPINFO_TRUE@am__append_4 = webpinfo.1 +subdir = man +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/webp/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +man1dir = $(mandir)/man1 +am__installdirs = "$(DESTDIR)$(man1dir)" +NROFF = nroff +MANS = $(man_MANS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVX2_FLAGS = @AVX2_FLAGS@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GIF_INCLUDES = @GIF_INCLUDES@ +GIF_LIBS = @GIF_LIBS@ +GL_INCLUDES = @GL_INCLUDES@ +GL_LIBS = @GL_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JPEG_INCLUDES = @JPEG_INCLUDES@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPNG_CONFIG = @LIBPNG_CONFIG@ +LIBS = @LIBS@ +LIBSDL_CONFIG = @LIBSDL_CONFIG@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NEON_FLAGS = @NEON_FLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PNG_INCLUDES = @PNG_INCLUDES@ +PNG_LIBS = @PNG_LIBS@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SDL_INCLUDES = @SDL_INCLUDES@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSE2_FLAGS = @SSE2_FLAGS@ +SSE41_FLAGS = @SSE41_FLAGS@ +STRIP = @STRIP@ +TIFF_INCLUDES = @TIFF_INCLUDES@ +TIFF_LIBS = @TIFF_LIBS@ +USE_SWAP_16BIT_CSP = @USE_SWAP_16BIT_CSP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +man_MANS = cwebp.1 dwebp.1 $(am__append_1) $(am__append_2) \ + $(am__append_3) $(am__append_4) +EXTRA_DIST = $(man_MANS) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign man/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-man1: $(man_MANS) + @$(NORMAL_INSTALL) + @list1=''; \ + list2='$(man_MANS)'; \ + test -n "$(man1dir)" \ + && test -n "`echo $$list1$$list2`" \ + || exit 0; \ + echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ + { for i in $$list1; do echo "$$i"; done; \ + if test -n "$$list2"; then \ + for i in $$list2; do echo "$$i"; done \ + | sed -n '/\.1[a-z]*$$/p'; \ + fi; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ + done; } + +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list=''; test -n "$(man1dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.1[a-z]*$$/p'; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(MANS) +installdirs: + for dir in "$(DESTDIR)$(man1dir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-man + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: install-man1 + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-man + +uninstall-man: uninstall-man1 + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-man1 install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-man \ + uninstall-man1 + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/external/libwebp-0.6.0/man/cwebp.1 b/external/libwebp-1.0.0/man/cwebp.1 similarity index 98% rename from external/libwebp-0.6.0/man/cwebp.1 rename to external/libwebp-1.0.0/man/cwebp.1 index 81cbaa9b..c9433247 100644 --- a/external/libwebp-0.6.0/man/cwebp.1 +++ b/external/libwebp-1.0.0/man/cwebp.1 @@ -98,8 +98,7 @@ Crop the source to a rectangle with top\-left corner at coordinates This cropping area must be fully contained within the source rectangle. .TP .B \-mt -Use multi\-threading for encoding, if possible. This option is only effective -when using lossy compression on a source with a transparency channel. +Use multi\-threading for encoding, if possible. .TP .B \-low_memory Reduce memory usage of lossy encoding by saving four times the compressed diff --git a/external/libwebp-0.6.0/man/dwebp.1 b/external/libwebp-1.0.0/man/dwebp.1 similarity index 100% rename from external/libwebp-0.6.0/man/dwebp.1 rename to external/libwebp-1.0.0/man/dwebp.1 diff --git a/external/libwebp-0.6.0/man/gif2webp.1 b/external/libwebp-1.0.0/man/gif2webp.1 similarity index 89% rename from external/libwebp-0.6.0/man/gif2webp.1 rename to external/libwebp-1.0.0/man/gif2webp.1 index cf4b1dc9..a94f2ee5 100644 --- a/external/libwebp-0.6.0/man/gif2webp.1 +++ b/external/libwebp-1.0.0/man/gif2webp.1 @@ -1,5 +1,5 @@ .\" Hey, EMACS: -*- nroff -*- -.TH GIF2WEBP 1 "January 25, 2017" +.TH GIF2WEBP 1 "January 25, 2018" .SH NAME gif2webp \- Convert a GIF image to WebP .SH SYNOPSIS @@ -20,6 +20,12 @@ Specify the name of the output WebP file. If omitted, \fBgif2webp\fP will perform conversion but only report statistics. Using "\-" as output name will direct output to 'stdout'. .TP +.BI \-\- " string +Explicitly specify the input file. This option is useful if the input +file starts with an '\-' for instance. This option must appear \fBlast\fP. +Any other options afterward will be ignored. If the input file is "\-", +the data will be read from \fIstdin\fP instead of a file. +.TP .B \-h, \-help Usage information. .TP @@ -108,8 +114,11 @@ the value the smoother the picture will appear. Typical values are usually in the range of 20 to 50. .TP .B \-mt -Use multi-threading for encoding, if possible. This option is only effective -when using lossy compression. +Use multi-threading for encoding, if possible. +.TP +.B \-loop_compatibility +If enabled, handle the loop information in a compatible fashion for Chrome +version prior to M62 (inclusive) and Firefox. .TP .B \-v Print extra information. @@ -134,6 +143,8 @@ gif2webp \-lossy \-m 3 picture.gif \-o picture_lossy.webp gif2webp \-lossy \-f 50 picture.gif \-o picture.webp .br gif2webp \-q 70 \-o picture.webp \-\- \-\-\-picture.gif +.br +cat picture.gif | gif2webp \-o \- \-\- \- > output.webp .SH AUTHORS \fBgif2webp\fP is a part of libwebp and was written by the WebP team. diff --git a/external/libwebp-0.6.0/man/img2webp.1 b/external/libwebp-1.0.0/man/img2webp.1 similarity index 88% rename from external/libwebp-0.6.0/man/img2webp.1 rename to external/libwebp-1.0.0/man/img2webp.1 index 835ca374..da1d91dc 100644 --- a/external/libwebp-0.6.0/man/img2webp.1 +++ b/external/libwebp-1.0.0/man/img2webp.1 @@ -1,11 +1,13 @@ .\" Hey, EMACS: -*- nroff -*- -.TH IMG2WEBP 1 "January 23, 2017" +.TH IMG2WEBP 1 "April 3, 2018" .SH NAME img2webp \- create animated WebP file from a sequence of input images. .SH SYNOPSIS .B img2webp [file_level_options] [files] [per_frame_options...] .br +.B img2webp argument_file_name +.br .SH DESCRIPTION This manual page documents the .B img2webp @@ -13,6 +15,9 @@ command. .PP \fBimg2webp\fP compresses a sequence of images using the animated WebP format. Input images can either be PNG, JPEG, TIFF or WebP. +If a single file name (not starting with the character '\-') is supplied as +the argument, the command line argument are actually tokenized from this file. +This allows for easy scripting or using large number of arguments. .SH FILE-LEVEL OPTIONS The file-level options are applied at the beginning of the compression process, before the input frames are read. @@ -40,14 +45,17 @@ lossy or lossless compression for each frame heuristically. This global option disables the local option \fB-lossy\fP and \fB-lossless\fP . .TP .BI \-loop " int -Specifies the number of times the animation should loop. Using '0' means -'loop indefinitely'. +Specifies the number of times the animation should loop. Using '0' +means 'loop indefinitely'. .TP .BI \-v Be more verbose. .TP .B \-h, \-help A short usage summary. +.TP +.B \-version +Print the version numbers of the relevant libraries used. .SH PER-FRAME OPTIONS The per-frame options are applied for the images following as arguments in the diff --git a/external/libwebp-0.6.0/man/vwebp.1 b/external/libwebp-1.0.0/man/vwebp.1 similarity index 100% rename from external/libwebp-0.6.0/man/vwebp.1 rename to external/libwebp-1.0.0/man/vwebp.1 diff --git a/external/libwebp-1.0.0/man/webpinfo.1 b/external/libwebp-1.0.0/man/webpinfo.1 new file mode 100644 index 00000000..902ba9e0 --- /dev/null +++ b/external/libwebp-1.0.0/man/webpinfo.1 @@ -0,0 +1,80 @@ +.\" Hey, EMACS: -*- nroff -*- +.TH WEBPINFO 1 "November 24, 2017" +.SH NAME +webpinfo \- print out the chunk level structure of WebP files +along with basic integrity checks. +.SH SYNOPSIS +.B webpinfo +.I OPTIONS +.I INPUT +.br +.B webpinfo [\-h|\-help|\-H|\-longhelp] +.br + +.SH DESCRIPTION +This manual page documents the +.B webpinfo +command. +.PP +\fBwebpinfo\fP can be used to print out the chunk level structure and bitstream +header information of WebP files. It can also check if the files are of valid +WebP format. + +.SH OPTIONS +.TP +.B \-version +Print the version number (as major.minor.revision) and exit. +.TP +.B \-quiet +Do not show chunk parsing information. +.TP +.B \-diag +Show parsing error diagnosis. +.TP +.B \-summary +Show chunk stats summary. +.TP +.BI \-bitstream_info +Parse bitstream header. +.TP +.B \-h, \-help +A short usage summary. +.TP +.B \-H, \-longhelp +Detailed usage instructions. + +.SH INPUT +Input files in WebP format. Input files must come last, following +options (if any). There can be multiple input files. + +.SH BUGS +Please report all bugs to the issue tracker: +https://bugs.chromium.org/p/webp +.br +Patches welcome! See this page to get started: +http://www.webmproject.org/code/contribute/submitting\-patches/ + +.SH EXAMPLES +.br +webpinfo \-h +.br +webpinfo \-diag \-summary input_file.webp +.br +webpinfo \-bitstream_info input_file_1.webp input_file_2.webp +.br +webpinfo *.webp + +.SH AUTHORS +\fBwebpinfo\fP is a part of libwebp and was written by the WebP team. +.br +The latest source tree is available at +https://chromium.googlesource.com/webm/libwebp +.PP +This manual page was written by Hui Su , +for the Debian project (and may be used by others). + +.SH SEE ALSO +.BR webpmux (1) +.br +Please refer to http://developers.google.com/speed/webp/ for additional +information. diff --git a/external/libwebp-0.6.0/man/webpmux.1 b/external/libwebp-1.0.0/man/webpmux.1 similarity index 95% rename from external/libwebp-0.6.0/man/webpmux.1 rename to external/libwebp-1.0.0/man/webpmux.1 index 0d146f6b..eb41a61f 100644 --- a/external/libwebp-0.6.0/man/webpmux.1 +++ b/external/libwebp-1.0.0/man/webpmux.1 @@ -1,5 +1,5 @@ .\" Hey, EMACS: -*- nroff -*- -.TH WEBPMUX 1 "November 10, 2016" +.TH WEBPMUX 1 "December 1, 2017" .SH NAME webpmux \- create animated WebP files from non\-animated WebP images, extract frames from animated WebP images, and manage XMP/EXIF metadata and ICC profile. @@ -48,6 +48,8 @@ frames from animated WebP images, and manage XMP/EXIF metadata and ICC profile. .B webpmux [\-h|\-help] .br .B webpmux \-version +.br +.B webpmux argument_file_name .SH DESCRIPTION This manual page documents the .B webpmux @@ -55,6 +57,9 @@ command. .PP \fBwebpmux\fP can be used to create/extract from animated WebP files, as well as to add/extract/strip XMP/EXIF metadata and ICC profile. +If a single file name (not starting with the character '\-') is supplied as +the argument, the command line argument are actually tokenized from this file. +This allows for easy scripting or using large number of arguments. .SH OPTIONS .SS GET_OPTIONS (\-get): .TP diff --git a/external/libwebp-1.0.0/missing b/external/libwebp-1.0.0/missing new file mode 100755 index 00000000..f62bbae3 --- /dev/null +++ b/external/libwebp-1.0.0/missing @@ -0,0 +1,215 @@ +#! /bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2013-10-28.13; # UTC + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/external/libwebp-0.6.0/src/Makefile.am b/external/libwebp-1.0.0/src/Makefile.am similarity index 92% rename from external/libwebp-0.6.0/src/Makefile.am rename to external/libwebp-1.0.0/src/Makefile.am index cf82e77f..32cfa38e 100644 --- a/external/libwebp-0.6.0/src/Makefile.am +++ b/external/libwebp-1.0.0/src/Makefile.am @@ -22,6 +22,7 @@ commondir = $(includedir)/webp libwebp_la_SOURCES = libwebpinclude_HEADERS = libwebpinclude_HEADERS += webp/encode.h + noinst_HEADERS = noinst_HEADERS += webp/format_constants.h @@ -35,7 +36,7 @@ libwebp_la_LIBADD += utils/libwebputils.la # other than the ones listed on the command line, i.e., after linking, it will # not have unresolved symbols. Some platforms (Windows among them) require all # symbols in shared libraries to be resolved at library creation. -libwebp_la_LDFLAGS = -no-undefined -version-info 7:0:0 +libwebp_la_LDFLAGS = -no-undefined -version-info 7:2:0 libwebpincludedir = $(includedir)/webp pkgconfig_DATA = libwebp.pc @@ -47,7 +48,7 @@ if BUILD_LIBWEBPDECODER libwebpdecoder_la_LIBADD += dsp/libwebpdspdecode.la libwebpdecoder_la_LIBADD += utils/libwebputilsdecode.la - libwebpdecoder_la_LDFLAGS = -no-undefined -version-info 3:0:0 + libwebpdecoder_la_LDFLAGS = -no-undefined -version-info 3:2:0 pkgconfig_DATA += libwebpdecoder.pc endif diff --git a/external/libwebp-1.0.0/src/Makefile.in b/external/libwebp-1.0.0/src/Makefile.in new file mode 100644 index 00000000..384c08d0 --- /dev/null +++ b/external/libwebp-1.0.0/src/Makefile.in @@ -0,0 +1,880 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@WANT_MUX_TRUE@am__append_1 = mux +@WANT_DEMUX_TRUE@am__append_2 = demux +@BUILD_LIBWEBPDECODER_TRUE@am__append_3 = libwebpdecoder.la +@BUILD_LIBWEBPDECODER_TRUE@am__append_4 = libwebpdecoder.pc +subdir = src +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(common_HEADERS) \ + $(libwebpinclude_HEADERS) $(noinst_HEADERS) $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/webp/config.h +CONFIG_CLEAN_FILES = libwebp.pc libwebpdecoder.pc +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \ + "$(DESTDIR)$(commondir)" "$(DESTDIR)$(libwebpincludedir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +libwebp_la_DEPENDENCIES = dec/libwebpdecode.la dsp/libwebpdsp.la \ + enc/libwebpencode.la utils/libwebputils.la +am_libwebp_la_OBJECTS = +libwebp_la_OBJECTS = $(am_libwebp_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libwebp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libwebp_la_LDFLAGS) $(LDFLAGS) -o $@ +@BUILD_LIBWEBPDECODER_TRUE@libwebpdecoder_la_DEPENDENCIES = \ +@BUILD_LIBWEBPDECODER_TRUE@ dec/libwebpdecode.la \ +@BUILD_LIBWEBPDECODER_TRUE@ dsp/libwebpdspdecode.la \ +@BUILD_LIBWEBPDECODER_TRUE@ utils/libwebputilsdecode.la +am_libwebpdecoder_la_OBJECTS = +libwebpdecoder_la_OBJECTS = $(am_libwebpdecoder_la_OBJECTS) +libwebpdecoder_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libwebpdecoder_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +@BUILD_LIBWEBPDECODER_TRUE@am_libwebpdecoder_la_rpath = -rpath \ +@BUILD_LIBWEBPDECODER_TRUE@ $(libdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/webp +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libwebp_la_SOURCES) $(libwebpdecoder_la_SOURCES) +DIST_SOURCES = $(libwebp_la_SOURCES) $(libwebpdecoder_la_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(pkgconfig_DATA) +HEADERS = $(common_HEADERS) $(libwebpinclude_HEADERS) \ + $(noinst_HEADERS) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = dec enc dsp utils . mux demux +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/libwebp.pc.in \ + $(srcdir)/libwebpdecoder.pc.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVX2_FLAGS = @AVX2_FLAGS@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GIF_INCLUDES = @GIF_INCLUDES@ +GIF_LIBS = @GIF_LIBS@ +GL_INCLUDES = @GL_INCLUDES@ +GL_LIBS = @GL_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JPEG_INCLUDES = @JPEG_INCLUDES@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPNG_CONFIG = @LIBPNG_CONFIG@ +LIBS = @LIBS@ +LIBSDL_CONFIG = @LIBSDL_CONFIG@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NEON_FLAGS = @NEON_FLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PNG_INCLUDES = @PNG_INCLUDES@ +PNG_LIBS = @PNG_LIBS@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SDL_INCLUDES = @SDL_INCLUDES@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSE2_FLAGS = @SSE2_FLAGS@ +SSE41_FLAGS = @SSE41_FLAGS@ +STRIP = @STRIP@ +TIFF_INCLUDES = @TIFF_INCLUDES@ +TIFF_LIBS = @TIFF_LIBS@ +USE_SWAP_16BIT_CSP = @USE_SWAP_16BIT_CSP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# The mux and demux libraries depend on libwebp, thus the '.' to force +# the build order so it's available to them. +SUBDIRS = dec enc dsp utils . $(am__append_1) $(am__append_2) +lib_LTLIBRARIES = libwebp.la $(am__append_3) +common_HEADERS = webp/decode.h webp/types.h +commondir = $(includedir)/webp +libwebp_la_SOURCES = +libwebpinclude_HEADERS = webp/encode.h +noinst_HEADERS = webp/format_constants.h +libwebp_la_LIBADD = dec/libwebpdecode.la dsp/libwebpdsp.la \ + enc/libwebpencode.la utils/libwebputils.la + +# Use '-no-undefined' to declare that libwebp does not depend on any libraries +# other than the ones listed on the command line, i.e., after linking, it will +# not have unresolved symbols. Some platforms (Windows among them) require all +# symbols in shared libraries to be resolved at library creation. +libwebp_la_LDFLAGS = -no-undefined -version-info 7:2:0 +libwebpincludedir = $(includedir)/webp +pkgconfig_DATA = libwebp.pc $(am__append_4) +@BUILD_LIBWEBPDECODER_TRUE@libwebpdecoder_la_SOURCES = +@BUILD_LIBWEBPDECODER_TRUE@libwebpdecoder_la_LIBADD = \ +@BUILD_LIBWEBPDECODER_TRUE@ dec/libwebpdecode.la \ +@BUILD_LIBWEBPDECODER_TRUE@ dsp/libwebpdspdecode.la \ +@BUILD_LIBWEBPDECODER_TRUE@ utils/libwebputilsdecode.la +@BUILD_LIBWEBPDECODER_TRUE@libwebpdecoder_la_LDFLAGS = -no-undefined -version-info 3:2:0 +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +libwebp.pc: $(top_builddir)/config.status $(srcdir)/libwebp.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +libwebpdecoder.pc: $(top_builddir)/config.status $(srcdir)/libwebpdecoder.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libwebp.la: $(libwebp_la_OBJECTS) $(libwebp_la_DEPENDENCIES) $(EXTRA_libwebp_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebp_la_LINK) -rpath $(libdir) $(libwebp_la_OBJECTS) $(libwebp_la_LIBADD) $(LIBS) + +libwebpdecoder.la: $(libwebpdecoder_la_OBJECTS) $(libwebpdecoder_la_DEPENDENCIES) $(EXTRA_libwebpdecoder_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpdecoder_la_LINK) $(am_libwebpdecoder_la_rpath) $(libwebpdecoder_la_OBJECTS) $(libwebpdecoder_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) +install-commonHEADERS: $(common_HEADERS) + @$(NORMAL_INSTALL) + @list='$(common_HEADERS)'; test -n "$(commondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(commondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(commondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(commondir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(commondir)" || exit $$?; \ + done + +uninstall-commonHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(common_HEADERS)'; test -n "$(commondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(commondir)'; $(am__uninstall_files_from_dir) +install-libwebpincludeHEADERS: $(libwebpinclude_HEADERS) + @$(NORMAL_INSTALL) + @list='$(libwebpinclude_HEADERS)'; test -n "$(libwebpincludedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libwebpincludedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libwebpincludedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libwebpincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(libwebpincludedir)" || exit $$?; \ + done + +uninstall-libwebpincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(libwebpinclude_HEADERS)'; test -n "$(libwebpincludedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libwebpincludedir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(commondir)" "$(DESTDIR)$(libwebpincludedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-commonHEADERS install-libwebpincludeHEADERS \ + install-pkgconfigDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-commonHEADERS uninstall-libLTLIBRARIES \ + uninstall-libwebpincludeHEADERS uninstall-pkgconfigDATA + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libLTLIBRARIES \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-commonHEADERS install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES \ + install-libwebpincludeHEADERS install-man install-pdf \ + install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-commonHEADERS uninstall-libLTLIBRARIES \ + uninstall-libwebpincludeHEADERS uninstall-pkgconfigDATA + +.PRECIOUS: Makefile + + +${pkgconfig_DATA}: ${top_builddir}/config.status + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/external/libwebp-0.6.0/src/dec/Makefile.am b/external/libwebp-1.0.0/src/dec/Makefile.am similarity index 91% rename from external/libwebp-0.6.0/src/dec/Makefile.am rename to external/libwebp-1.0.0/src/dec/Makefile.am index 8919c42b..f8c6398d 100644 --- a/external/libwebp-0.6.0/src/dec/Makefile.am +++ b/external/libwebp-1.0.0/src/dec/Makefile.am @@ -1,3 +1,4 @@ +AM_CPPFLAGS += -I$(top_builddir) -I$(top_srcdir) noinst_LTLIBRARIES = libwebpdecode.la libwebpdecode_la_SOURCES = @@ -24,5 +25,5 @@ libwebpdecodeinclude_HEADERS += ../webp/types.h noinst_HEADERS = noinst_HEADERS += ../webp/format_constants.h -libwebpdecode_la_CPPFLAGS = $(AM_CPPFLAGS) $(USE_EXPERIMENTAL_CODE) +libwebpdecode_la_CPPFLAGS = $(AM_CPPFLAGS) libwebpdecodeincludedir = $(includedir)/webp diff --git a/external/libwebp-1.0.0/src/dec/Makefile.in b/external/libwebp-1.0.0/src/dec/Makefile.in new file mode 100644 index 00000000..f5e29741 --- /dev/null +++ b/external/libwebp-1.0.0/src/dec/Makefile.in @@ -0,0 +1,759 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/dec +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(libwebpdecodeinclude_HEADERS) \ + $(noinst_HEADERS) $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/webp/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libwebpdecode_la_LIBADD = +am_libwebpdecode_la_OBJECTS = libwebpdecode_la-alpha_dec.lo \ + libwebpdecode_la-buffer_dec.lo libwebpdecode_la-frame_dec.lo \ + libwebpdecode_la-idec_dec.lo libwebpdecode_la-io_dec.lo \ + libwebpdecode_la-quant_dec.lo libwebpdecode_la-tree_dec.lo \ + libwebpdecode_la-vp8_dec.lo libwebpdecode_la-vp8l_dec.lo \ + libwebpdecode_la-webp_dec.lo +libwebpdecode_la_OBJECTS = $(am_libwebpdecode_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/webp +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libwebpdecode_la_SOURCES) +DIST_SOURCES = $(libwebpdecode_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libwebpdecodeincludedir)" +HEADERS = $(libwebpdecodeinclude_HEADERS) $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_builddir) -I$(top_srcdir) +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVX2_FLAGS = @AVX2_FLAGS@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GIF_INCLUDES = @GIF_INCLUDES@ +GIF_LIBS = @GIF_LIBS@ +GL_INCLUDES = @GL_INCLUDES@ +GL_LIBS = @GL_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JPEG_INCLUDES = @JPEG_INCLUDES@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPNG_CONFIG = @LIBPNG_CONFIG@ +LIBS = @LIBS@ +LIBSDL_CONFIG = @LIBSDL_CONFIG@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NEON_FLAGS = @NEON_FLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PNG_INCLUDES = @PNG_INCLUDES@ +PNG_LIBS = @PNG_LIBS@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SDL_INCLUDES = @SDL_INCLUDES@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSE2_FLAGS = @SSE2_FLAGS@ +SSE41_FLAGS = @SSE41_FLAGS@ +STRIP = @STRIP@ +TIFF_INCLUDES = @TIFF_INCLUDES@ +TIFF_LIBS = @TIFF_LIBS@ +USE_SWAP_16BIT_CSP = @USE_SWAP_16BIT_CSP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +noinst_LTLIBRARIES = libwebpdecode.la +libwebpdecode_la_SOURCES = alpha_dec.c alphai_dec.h buffer_dec.c \ + common_dec.h vp8_dec.h frame_dec.c idec_dec.c io_dec.c \ + quant_dec.c tree_dec.c vp8_dec.c vp8i_dec.h vp8l_dec.c \ + vp8li_dec.h webp_dec.c webpi_dec.h +libwebpdecodeinclude_HEADERS = ../webp/decode.h ../webp/types.h +noinst_HEADERS = ../webp/format_constants.h +libwebpdecode_la_CPPFLAGS = $(AM_CPPFLAGS) +libwebpdecodeincludedir = $(includedir)/webp +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/dec/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/dec/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libwebpdecode.la: $(libwebpdecode_la_OBJECTS) $(libwebpdecode_la_DEPENDENCIES) $(EXTRA_libwebpdecode_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libwebpdecode_la_OBJECTS) $(libwebpdecode_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdecode_la-alpha_dec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdecode_la-buffer_dec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdecode_la-frame_dec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdecode_la-idec_dec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdecode_la-io_dec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdecode_la-quant_dec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdecode_la-tree_dec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdecode_la-vp8_dec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdecode_la-vp8l_dec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdecode_la-webp_dec.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libwebpdecode_la-alpha_dec.lo: alpha_dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdecode_la-alpha_dec.lo -MD -MP -MF $(DEPDIR)/libwebpdecode_la-alpha_dec.Tpo -c -o libwebpdecode_la-alpha_dec.lo `test -f 'alpha_dec.c' || echo '$(srcdir)/'`alpha_dec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdecode_la-alpha_dec.Tpo $(DEPDIR)/libwebpdecode_la-alpha_dec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alpha_dec.c' object='libwebpdecode_la-alpha_dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdecode_la-alpha_dec.lo `test -f 'alpha_dec.c' || echo '$(srcdir)/'`alpha_dec.c + +libwebpdecode_la-buffer_dec.lo: buffer_dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdecode_la-buffer_dec.lo -MD -MP -MF $(DEPDIR)/libwebpdecode_la-buffer_dec.Tpo -c -o libwebpdecode_la-buffer_dec.lo `test -f 'buffer_dec.c' || echo '$(srcdir)/'`buffer_dec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdecode_la-buffer_dec.Tpo $(DEPDIR)/libwebpdecode_la-buffer_dec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='buffer_dec.c' object='libwebpdecode_la-buffer_dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdecode_la-buffer_dec.lo `test -f 'buffer_dec.c' || echo '$(srcdir)/'`buffer_dec.c + +libwebpdecode_la-frame_dec.lo: frame_dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdecode_la-frame_dec.lo -MD -MP -MF $(DEPDIR)/libwebpdecode_la-frame_dec.Tpo -c -o libwebpdecode_la-frame_dec.lo `test -f 'frame_dec.c' || echo '$(srcdir)/'`frame_dec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdecode_la-frame_dec.Tpo $(DEPDIR)/libwebpdecode_la-frame_dec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='frame_dec.c' object='libwebpdecode_la-frame_dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdecode_la-frame_dec.lo `test -f 'frame_dec.c' || echo '$(srcdir)/'`frame_dec.c + +libwebpdecode_la-idec_dec.lo: idec_dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdecode_la-idec_dec.lo -MD -MP -MF $(DEPDIR)/libwebpdecode_la-idec_dec.Tpo -c -o libwebpdecode_la-idec_dec.lo `test -f 'idec_dec.c' || echo '$(srcdir)/'`idec_dec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdecode_la-idec_dec.Tpo $(DEPDIR)/libwebpdecode_la-idec_dec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='idec_dec.c' object='libwebpdecode_la-idec_dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdecode_la-idec_dec.lo `test -f 'idec_dec.c' || echo '$(srcdir)/'`idec_dec.c + +libwebpdecode_la-io_dec.lo: io_dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdecode_la-io_dec.lo -MD -MP -MF $(DEPDIR)/libwebpdecode_la-io_dec.Tpo -c -o libwebpdecode_la-io_dec.lo `test -f 'io_dec.c' || echo '$(srcdir)/'`io_dec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdecode_la-io_dec.Tpo $(DEPDIR)/libwebpdecode_la-io_dec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='io_dec.c' object='libwebpdecode_la-io_dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdecode_la-io_dec.lo `test -f 'io_dec.c' || echo '$(srcdir)/'`io_dec.c + +libwebpdecode_la-quant_dec.lo: quant_dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdecode_la-quant_dec.lo -MD -MP -MF $(DEPDIR)/libwebpdecode_la-quant_dec.Tpo -c -o libwebpdecode_la-quant_dec.lo `test -f 'quant_dec.c' || echo '$(srcdir)/'`quant_dec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdecode_la-quant_dec.Tpo $(DEPDIR)/libwebpdecode_la-quant_dec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='quant_dec.c' object='libwebpdecode_la-quant_dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdecode_la-quant_dec.lo `test -f 'quant_dec.c' || echo '$(srcdir)/'`quant_dec.c + +libwebpdecode_la-tree_dec.lo: tree_dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdecode_la-tree_dec.lo -MD -MP -MF $(DEPDIR)/libwebpdecode_la-tree_dec.Tpo -c -o libwebpdecode_la-tree_dec.lo `test -f 'tree_dec.c' || echo '$(srcdir)/'`tree_dec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdecode_la-tree_dec.Tpo $(DEPDIR)/libwebpdecode_la-tree_dec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tree_dec.c' object='libwebpdecode_la-tree_dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdecode_la-tree_dec.lo `test -f 'tree_dec.c' || echo '$(srcdir)/'`tree_dec.c + +libwebpdecode_la-vp8_dec.lo: vp8_dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdecode_la-vp8_dec.lo -MD -MP -MF $(DEPDIR)/libwebpdecode_la-vp8_dec.Tpo -c -o libwebpdecode_la-vp8_dec.lo `test -f 'vp8_dec.c' || echo '$(srcdir)/'`vp8_dec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdecode_la-vp8_dec.Tpo $(DEPDIR)/libwebpdecode_la-vp8_dec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vp8_dec.c' object='libwebpdecode_la-vp8_dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdecode_la-vp8_dec.lo `test -f 'vp8_dec.c' || echo '$(srcdir)/'`vp8_dec.c + +libwebpdecode_la-vp8l_dec.lo: vp8l_dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdecode_la-vp8l_dec.lo -MD -MP -MF $(DEPDIR)/libwebpdecode_la-vp8l_dec.Tpo -c -o libwebpdecode_la-vp8l_dec.lo `test -f 'vp8l_dec.c' || echo '$(srcdir)/'`vp8l_dec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdecode_la-vp8l_dec.Tpo $(DEPDIR)/libwebpdecode_la-vp8l_dec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vp8l_dec.c' object='libwebpdecode_la-vp8l_dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdecode_la-vp8l_dec.lo `test -f 'vp8l_dec.c' || echo '$(srcdir)/'`vp8l_dec.c + +libwebpdecode_la-webp_dec.lo: webp_dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdecode_la-webp_dec.lo -MD -MP -MF $(DEPDIR)/libwebpdecode_la-webp_dec.Tpo -c -o libwebpdecode_la-webp_dec.lo `test -f 'webp_dec.c' || echo '$(srcdir)/'`webp_dec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdecode_la-webp_dec.Tpo $(DEPDIR)/libwebpdecode_la-webp_dec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='webp_dec.c' object='libwebpdecode_la-webp_dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdecode_la-webp_dec.lo `test -f 'webp_dec.c' || echo '$(srcdir)/'`webp_dec.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-libwebpdecodeincludeHEADERS: $(libwebpdecodeinclude_HEADERS) + @$(NORMAL_INSTALL) + @list='$(libwebpdecodeinclude_HEADERS)'; test -n "$(libwebpdecodeincludedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libwebpdecodeincludedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libwebpdecodeincludedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libwebpdecodeincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(libwebpdecodeincludedir)" || exit $$?; \ + done + +uninstall-libwebpdecodeincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(libwebpdecodeinclude_HEADERS)'; test -n "$(libwebpdecodeincludedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libwebpdecodeincludedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libwebpdecodeincludedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-libwebpdecodeincludeHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libwebpdecodeincludeHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libwebpdecodeincludeHEADERS \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-libwebpdecodeincludeHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/external/libwebp-0.6.0/src/dec/alpha_dec.c b/external/libwebp-1.0.0/src/dec/alpha_dec.c similarity index 97% rename from external/libwebp-0.6.0/src/dec/alpha_dec.c rename to external/libwebp-1.0.0/src/dec/alpha_dec.c index 83ffd4b6..bce735bf 100644 --- a/external/libwebp-0.6.0/src/dec/alpha_dec.c +++ b/external/libwebp-1.0.0/src/dec/alpha_dec.c @@ -12,13 +12,13 @@ // Author: Skal (pascal.massimino@gmail.com) #include -#include "./alphai_dec.h" -#include "./vp8i_dec.h" -#include "./vp8li_dec.h" -#include "../dsp/dsp.h" -#include "../utils/quant_levels_dec_utils.h" -#include "../utils/utils.h" -#include "../webp/format_constants.h" +#include "src/dec/alphai_dec.h" +#include "src/dec/vp8i_dec.h" +#include "src/dec/vp8li_dec.h" +#include "src/dsp/dsp.h" +#include "src/utils/quant_levels_dec_utils.h" +#include "src/utils/utils.h" +#include "src/webp/format_constants.h" //------------------------------------------------------------------------------ // ALPHDecoder object. diff --git a/external/libwebp-0.6.0/src/dec/alphai_dec.h b/external/libwebp-1.0.0/src/dec/alphai_dec.h similarity index 89% rename from external/libwebp-0.6.0/src/dec/alphai_dec.h rename to external/libwebp-1.0.0/src/dec/alphai_dec.h index 561e8151..e0fa281a 100644 --- a/external/libwebp-0.6.0/src/dec/alphai_dec.h +++ b/external/libwebp-1.0.0/src/dec/alphai_dec.h @@ -11,11 +11,11 @@ // // Author: Urvang (urvang@google.com) -#ifndef WEBP_DEC_ALPHAI_H_ -#define WEBP_DEC_ALPHAI_H_ +#ifndef WEBP_DEC_ALPHAI_DEC_H_ +#define WEBP_DEC_ALPHAI_DEC_H_ -#include "./webpi_dec.h" -#include "../utils/filters_utils.h" +#include "src/dec/webpi_dec.h" +#include "src/utils/filters_utils.h" #ifdef __cplusplus extern "C" { @@ -51,4 +51,4 @@ void WebPDeallocateAlphaMemory(VP8Decoder* const dec); } // extern "C" #endif -#endif /* WEBP_DEC_ALPHAI_H_ */ +#endif /* WEBP_DEC_ALPHAI_DEC_H_ */ diff --git a/external/libwebp-0.6.0/src/dec/buffer_dec.c b/external/libwebp-1.0.0/src/dec/buffer_dec.c similarity index 90% rename from external/libwebp-0.6.0/src/dec/buffer_dec.c rename to external/libwebp-1.0.0/src/dec/buffer_dec.c index c685fd56..75eb3c40 100644 --- a/external/libwebp-0.6.0/src/dec/buffer_dec.c +++ b/external/libwebp-1.0.0/src/dec/buffer_dec.c @@ -13,15 +13,15 @@ #include -#include "./vp8i_dec.h" -#include "./webpi_dec.h" -#include "../utils/utils.h" +#include "src/dec/vp8i_dec.h" +#include "src/dec/webpi_dec.h" +#include "src/utils/utils.h" //------------------------------------------------------------------------------ // WebPDecBuffer // Number of bytes per pixel for the different color-spaces. -static const int kModeBpp[MODE_LAST] = { +static const uint8_t kModeBpp[MODE_LAST] = { 3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, // pre-multiplied modes 1, 1 }; @@ -36,7 +36,7 @@ static int IsValidColorspace(int webp_csp_mode) { // strictly speaking, the very last (or first, if flipped) row // doesn't require padding. #define MIN_BUFFER_SIZE(WIDTH, HEIGHT, STRIDE) \ - (uint64_t)(STRIDE) * ((HEIGHT) - 1) + (WIDTH) + ((uint64_t)(STRIDE) * ((HEIGHT) - 1) + (WIDTH)) static VP8StatusCode CheckDecBuffer(const WebPDecBuffer* const buffer) { int ok = 1; @@ -98,9 +98,14 @@ static VP8StatusCode AllocateBuffer(WebPDecBuffer* const buffer) { uint64_t uv_size = 0, a_size = 0, total_size; // We need memory and it hasn't been allocated yet. // => initialize output buffer, now that dimensions are known. - const int stride = w * kModeBpp[mode]; - const uint64_t size = (uint64_t)stride * h; + int stride; + uint64_t size; + if ((uint64_t)w * kModeBpp[mode] >= (1ull << 32)) { + return VP8_STATUS_INVALID_PARAM; + } + stride = w * kModeBpp[mode]; + size = (uint64_t)stride * h; if (!WebPIsRGBMode(mode)) { uv_stride = (w + 1) / 2; uv_size = (uint64_t)uv_stride * ((h + 1) / 2); @@ -169,11 +174,11 @@ VP8StatusCode WebPFlipBuffer(WebPDecBuffer* const buffer) { return VP8_STATUS_OK; } -VP8StatusCode WebPAllocateDecBuffer(int w, int h, +VP8StatusCode WebPAllocateDecBuffer(int width, int height, const WebPDecoderOptions* const options, - WebPDecBuffer* const out) { + WebPDecBuffer* const buffer) { VP8StatusCode status; - if (out == NULL || w <= 0 || h <= 0) { + if (buffer == NULL || width <= 0 || height <= 0) { return VP8_STATUS_INVALID_PARAM; } if (options != NULL) { // First, apply options if there is any. @@ -182,33 +187,39 @@ VP8StatusCode WebPAllocateDecBuffer(int w, int h, const int ch = options->crop_height; const int x = options->crop_left & ~1; const int y = options->crop_top & ~1; - if (x < 0 || y < 0 || cw <= 0 || ch <= 0 || x + cw > w || y + ch > h) { + if (x < 0 || y < 0 || cw <= 0 || ch <= 0 || + x + cw > width || y + ch > height) { return VP8_STATUS_INVALID_PARAM; // out of frame boundary. } - w = cw; - h = ch; + width = cw; + height = ch; } + if (options->use_scaling) { +#if !defined(WEBP_REDUCE_SIZE) int scaled_width = options->scaled_width; int scaled_height = options->scaled_height; if (!WebPRescalerGetScaledDimensions( - w, h, &scaled_width, &scaled_height)) { + width, height, &scaled_width, &scaled_height)) { return VP8_STATUS_INVALID_PARAM; } - w = scaled_width; - h = scaled_height; + width = scaled_width; + height = scaled_height; +#else + return VP8_STATUS_INVALID_PARAM; // rescaling not supported +#endif } } - out->width = w; - out->height = h; + buffer->width = width; + buffer->height = height; // Then, allocate buffer for real. - status = AllocateBuffer(out); + status = AllocateBuffer(buffer); if (status != VP8_STATUS_OK) return status; // Use the stride trick if vertical flip is needed. if (options != NULL && options->flip) { - status = WebPFlipBuffer(out); + status = WebPFlipBuffer(buffer); } return status; } diff --git a/external/libwebp-0.6.0/src/dec/common_dec.h b/external/libwebp-1.0.0/src/dec/common_dec.h similarity index 94% rename from external/libwebp-0.6.0/src/dec/common_dec.h rename to external/libwebp-1.0.0/src/dec/common_dec.h index 6961e224..9995f1a5 100644 --- a/external/libwebp-0.6.0/src/dec/common_dec.h +++ b/external/libwebp-1.0.0/src/dec/common_dec.h @@ -11,8 +11,8 @@ // // Author: Skal (pascal.massimino@gmail.com) -#ifndef WEBP_DEC_COMMON_H_ -#define WEBP_DEC_COMMON_H_ +#ifndef WEBP_DEC_COMMON_DEC_H_ +#define WEBP_DEC_COMMON_DEC_H_ // intra prediction modes enum { B_DC_PRED = 0, // 4x4 modes @@ -51,4 +51,4 @@ enum { MB_FEATURE_TREE_PROBS = 3, NUM_PROBAS = 11 }; -#endif // WEBP_DEC_COMMON_H_ +#endif // WEBP_DEC_COMMON_DEC_H_ diff --git a/external/libwebp-0.6.0/src/dec/frame_dec.c b/external/libwebp-1.0.0/src/dec/frame_dec.c similarity index 97% rename from external/libwebp-0.6.0/src/dec/frame_dec.c rename to external/libwebp-1.0.0/src/dec/frame_dec.c index f91e27f7..a9d5430d 100644 --- a/external/libwebp-0.6.0/src/dec/frame_dec.c +++ b/external/libwebp-1.0.0/src/dec/frame_dec.c @@ -12,13 +12,13 @@ // Author: Skal (pascal.massimino@gmail.com) #include -#include "./vp8i_dec.h" -#include "../utils/utils.h" +#include "src/dec/vp8i_dec.h" +#include "src/utils/utils.h" //------------------------------------------------------------------------------ // Main reconstruction function. -static const int kScan[16] = { +static const uint16_t kScan[16] = { 0 + 0 * BPS, 4 + 0 * BPS, 8 + 0 * BPS, 12 + 0 * BPS, 0 + 4 * BPS, 4 + 4 * BPS, 8 + 4 * BPS, 12 + 4 * BPS, 0 + 8 * BPS, 4 + 8 * BPS, 8 + 8 * BPS, 12 + 8 * BPS, @@ -320,7 +320,7 @@ static void PrecomputeFilterStrengths(VP8Decoder* const dec) { #define MIN_DITHER_AMP 4 #define DITHER_AMP_TAB_SIZE 12 -static const int kQuantToDitherAmp[DITHER_AMP_TAB_SIZE] = { +static const uint8_t kQuantToDitherAmp[DITHER_AMP_TAB_SIZE] = { // roughly, it's dqm->uv_mat_[1] 8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1 }; @@ -400,7 +400,9 @@ static void DitherRow(VP8Decoder* const dec) { #define MACROBLOCK_VPOS(mb_y) ((mb_y) * 16) // vertical position of a MB // Finalize and transmit a complete row. Return false in case of user-abort. -static int FinishRow(VP8Decoder* const dec, VP8Io* const io) { +static int FinishRow(void* arg1, void* arg2) { + VP8Decoder* const dec = (VP8Decoder*)arg1; + VP8Io* const io = (VP8Io*)arg2; int ok = 1; const VP8ThreadContext* const ctx = &dec->thread_ctx_; const int cache_id = ctx->id_; @@ -448,10 +450,9 @@ static int FinishRow(VP8Decoder* const dec, VP8Io* const io) { if (y_end > io->crop_bottom) { y_end = io->crop_bottom; // make sure we don't overflow on last row. } + // If dec->alpha_data_ is not NULL, we have some alpha plane present. io->a = NULL; if (dec->alpha_data_ != NULL && y_start < y_end) { - // TODO(skal): testing presence of alpha with dec->alpha_data_ is not a - // good idea. io->a = VP8DecompressAlphaRows(dec, io, y_start, y_end - y_start); if (io->a == NULL) { return VP8SetError(dec, VP8_STATUS_BITSTREAM_ERROR, @@ -558,7 +559,6 @@ VP8StatusCode VP8EnterCritical(VP8Decoder* const dec, VP8Io* const io) { if (io->bypass_filtering) { dec->filter_type_ = 0; } - // TODO(skal): filter type / strength / sharpness forcing // Define the area where we can skip in-loop filtering, in case of cropping. // @@ -569,8 +569,6 @@ VP8StatusCode VP8EnterCritical(VP8Decoder* const dec, VP8Io* const io) { // Means: there's a dependency chain that goes all the way up to the // top-left corner of the picture (MB #0). We must filter all the previous // macroblocks. - // TODO(skal): add an 'approximate_decoding' option, that won't produce - // a 1:1 bit-exactness for complex filtering? { const int extra_pixels = kFilterExtraRows[dec->filter_type_]; if (dec->filter_type_ == 2) { @@ -651,7 +649,7 @@ static int InitThreadContext(VP8Decoder* const dec) { } worker->data1 = dec; worker->data2 = (void*)&dec->thread_ctx_.io_; - worker->hook = (WebPWorkerHook)FinishRow; + worker->hook = FinishRow; dec->num_caches_ = (dec->filter_type_ > 0) ? MT_CACHE_LINES : MT_CACHE_LINES - 1; } else { @@ -728,7 +726,7 @@ static int AllocateMemory(VP8Decoder* const dec) { } mem = (uint8_t*)dec->mem_; - dec->intra_t_ = (uint8_t*)mem; + dec->intra_t_ = mem; mem += intra_pred_mode_size; dec->yuv_t_ = (VP8TopSamples*)mem; @@ -750,7 +748,7 @@ static int AllocateMemory(VP8Decoder* const dec) { mem = (uint8_t*)WEBP_ALIGN(mem); assert((yuv_size & WEBP_ALIGN_CST) == 0); - dec->yuv_b_ = (uint8_t*)mem; + dec->yuv_b_ = mem; mem += yuv_size; dec->mb_data_ = (VP8MBData*)mem; @@ -766,7 +764,7 @@ static int AllocateMemory(VP8Decoder* const dec) { const int extra_rows = kFilterExtraRows[dec->filter_type_]; const int extra_y = extra_rows * dec->cache_y_stride_; const int extra_uv = (extra_rows / 2) * dec->cache_uv_stride_; - dec->cache_y_ = ((uint8_t*)mem) + extra_y; + dec->cache_y_ = mem + extra_y; dec->cache_u_ = dec->cache_y_ + 16 * num_caches * dec->cache_y_stride_ + extra_uv; dec->cache_v_ = dec->cache_u_ @@ -776,7 +774,7 @@ static int AllocateMemory(VP8Decoder* const dec) { mem += cache_size; // alpha plane - dec->alpha_plane_ = alpha_size ? (uint8_t*)mem : NULL; + dec->alpha_plane_ = alpha_size ? mem : NULL; mem += alpha_size; assert(mem <= (uint8_t*)dec->mem_ + dec->mem_size_); diff --git a/external/libwebp-0.6.0/src/dec/idec_dec.c b/external/libwebp-1.0.0/src/dec/idec_dec.c similarity index 99% rename from external/libwebp-0.6.0/src/dec/idec_dec.c rename to external/libwebp-1.0.0/src/dec/idec_dec.c index 78fb2e71..a371ed75 100644 --- a/external/libwebp-0.6.0/src/dec/idec_dec.c +++ b/external/libwebp-1.0.0/src/dec/idec_dec.c @@ -15,10 +15,10 @@ #include #include -#include "./alphai_dec.h" -#include "./webpi_dec.h" -#include "./vp8i_dec.h" -#include "../utils/utils.h" +#include "src/dec/alphai_dec.h" +#include "src/dec/webpi_dec.h" +#include "src/dec/vp8i_dec.h" +#include "src/utils/utils.h" // In append mode, buffer allocations increase as multiples of this value. // Needs to be a power of 2. @@ -673,12 +673,12 @@ void WebPIDelete(WebPIDecoder* idec) { //------------------------------------------------------------------------------ // Wrapper toward WebPINewDecoder -WebPIDecoder* WebPINewRGB(WEBP_CSP_MODE mode, uint8_t* output_buffer, +WebPIDecoder* WebPINewRGB(WEBP_CSP_MODE csp, uint8_t* output_buffer, size_t output_buffer_size, int output_stride) { const int is_external_memory = (output_buffer != NULL) ? 1 : 0; WebPIDecoder* idec; - if (mode >= MODE_YUV) return NULL; + if (csp >= MODE_YUV) return NULL; if (is_external_memory == 0) { // Overwrite parameters to sane values. output_buffer_size = 0; output_stride = 0; @@ -689,7 +689,7 @@ WebPIDecoder* WebPINewRGB(WEBP_CSP_MODE mode, uint8_t* output_buffer, } idec = WebPINewDecoder(NULL); if (idec == NULL) return NULL; - idec->output_.colorspace = mode; + idec->output_.colorspace = csp; idec->output_.is_external_memory = is_external_memory; idec->output_.u.RGBA.rgba = output_buffer; idec->output_.u.RGBA.stride = output_stride; diff --git a/external/libwebp-0.6.0/src/dec/io_dec.c b/external/libwebp-1.0.0/src/dec/io_dec.c similarity index 98% rename from external/libwebp-0.6.0/src/dec/io_dec.c rename to external/libwebp-1.0.0/src/dec/io_dec.c index 8bfab869..e603f19c 100644 --- a/external/libwebp-0.6.0/src/dec/io_dec.c +++ b/external/libwebp-1.0.0/src/dec/io_dec.c @@ -13,11 +13,11 @@ #include #include -#include "../dec/vp8i_dec.h" -#include "./webpi_dec.h" -#include "../dsp/dsp.h" -#include "../dsp/yuv.h" -#include "../utils/utils.h" +#include "src/dec/vp8i_dec.h" +#include "src/dec/webpi_dec.h" +#include "src/dsp/dsp.h" +#include "src/dsp/yuv.h" +#include "src/utils/utils.h" //------------------------------------------------------------------------------ // Main YUV<->RGB conversion functions @@ -212,7 +212,7 @@ static int EmitAlphaRGBA4444(const VP8Io* const io, WebPDecParams* const p, int num_rows; const int start_y = GetAlphaSourceRow(io, &alpha, &num_rows); uint8_t* const base_rgba = buf->rgba + start_y * buf->stride; -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) uint8_t* alpha_dst = base_rgba; #else uint8_t* alpha_dst = base_rgba + 1; @@ -241,6 +241,7 @@ static int EmitAlphaRGBA4444(const VP8Io* const io, WebPDecParams* const p, //------------------------------------------------------------------------------ // YUV rescaling (no final RGB conversion needed) +#if !defined(WEBP_REDUCE_SIZE) static int Rescale(const uint8_t* src, int src_stride, int new_lines, WebPRescaler* const wrk) { int num_lines_out = 0; @@ -431,7 +432,7 @@ static int ExportAlphaRGBA4444(WebPDecParams* const p, int y_pos, int max_lines_out) { const WebPRGBABuffer* const buf = &p->output->u.RGBA; uint8_t* const base_rgba = buf->rgba + y_pos * buf->stride; -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) uint8_t* alpha_dst = base_rgba; #else uint8_t* alpha_dst = base_rgba + 1; @@ -541,6 +542,8 @@ static int InitRGBRescaler(const VP8Io* const io, WebPDecParams* const p) { return 1; } +#endif // WEBP_REDUCE_SIZE + //------------------------------------------------------------------------------ // Default custom functions @@ -561,10 +564,14 @@ static int CustomSetup(VP8Io* io) { WebPInitUpsamplers(); } if (io->use_scaling) { +#if !defined(WEBP_REDUCE_SIZE) const int ok = is_rgb ? InitRGBRescaler(io, p) : InitYUVRescaler(io, p); if (!ok) { return 0; // memory error } +#else + return 0; // rescaling support not compiled +#endif } else { if (is_rgb) { WebPInitSamplers(); @@ -598,9 +605,6 @@ static int CustomSetup(VP8Io* io) { } } - if (is_rgb) { - VP8YUVInit(); - } return 1; } diff --git a/external/libwebp-0.6.0/src/dec/quant_dec.c b/external/libwebp-1.0.0/src/dec/quant_dec.c similarity index 99% rename from external/libwebp-0.6.0/src/dec/quant_dec.c rename to external/libwebp-1.0.0/src/dec/quant_dec.c index 14e31989..f07212ad 100644 --- a/external/libwebp-0.6.0/src/dec/quant_dec.c +++ b/external/libwebp-1.0.0/src/dec/quant_dec.c @@ -11,7 +11,7 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./vp8i_dec.h" +#include "src/dec/vp8i_dec.h" static WEBP_INLINE int clip(int v, int M) { return v < 0 ? 0 : v > M ? M : v; diff --git a/external/libwebp-0.6.0/src/dec/tree_dec.c b/external/libwebp-1.0.0/src/dec/tree_dec.c similarity index 98% rename from external/libwebp-0.6.0/src/dec/tree_dec.c rename to external/libwebp-1.0.0/src/dec/tree_dec.c index 9e805f60..3f5a957d 100644 --- a/external/libwebp-0.6.0/src/dec/tree_dec.c +++ b/external/libwebp-1.0.0/src/dec/tree_dec.c @@ -11,15 +11,19 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./vp8i_dec.h" -#include "../utils/bit_reader_inl_utils.h" +#include "src/dec/vp8i_dec.h" +#include "src/utils/bit_reader_inl_utils.h" +#if !defined(USE_GENERIC_TREE) #if !defined(__arm__) && !defined(_M_ARM) && !defined(__aarch64__) // using a table is ~1-2% slower on ARM. Prefer the coded-tree approach then. -#define USE_GENERIC_TREE +#define USE_GENERIC_TREE 1 // ALTERNATE_CODE +#else +#define USE_GENERIC_TREE 0 #endif +#endif // USE_GENERIC_TREE -#ifdef USE_GENERIC_TREE +#if (USE_GENERIC_TREE == 1) static const int8_t kYModesIntra4[18] = { -B_DC_PRED, 1, -B_TM_PRED, 2, @@ -317,7 +321,7 @@ static void ParseIntraMode(VP8BitReader* const br, int x; for (x = 0; x < 4; ++x) { const uint8_t* const prob = kBModesProba[top[x]][ymode]; -#ifdef USE_GENERIC_TREE +#if (USE_GENERIC_TREE == 1) // Generic tree-parsing int i = kYModesIntra4[VP8GetBit(br, prob[0])]; while (i > 0) { @@ -335,7 +339,7 @@ static void ParseIntraMode(VP8BitReader* const br, (!VP8GetBit(br, prob[6]) ? B_LD_PRED : (!VP8GetBit(br, prob[7]) ? B_VL_PRED : (!VP8GetBit(br, prob[8]) ? B_HD_PRED : B_HU_PRED))); -#endif // USE_GENERIC_TREE +#endif // USE_GENERIC_TREE top[x] = ymode; } memcpy(modes, top, 4 * sizeof(*top)); @@ -498,7 +502,7 @@ static const uint8_t // Paragraph 9.9 -static const int kBands[16 + 1] = { +static const uint8_t kBands[16 + 1] = { 0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0 // extra entry as sentinel }; diff --git a/external/libwebp-0.6.0/src/dec/vp8_dec.c b/external/libwebp-1.0.0/src/dec/vp8_dec.c similarity index 98% rename from external/libwebp-0.6.0/src/dec/vp8_dec.c rename to external/libwebp-1.0.0/src/dec/vp8_dec.c index fad8d9cf..c904b529 100644 --- a/external/libwebp-0.6.0/src/dec/vp8_dec.c +++ b/external/libwebp-1.0.0/src/dec/vp8_dec.c @@ -13,12 +13,12 @@ #include -#include "./alphai_dec.h" -#include "./vp8i_dec.h" -#include "./vp8li_dec.h" -#include "./webpi_dec.h" -#include "../utils/bit_reader_inl_utils.h" -#include "../utils/utils.h" +#include "src/dec/alphai_dec.h" +#include "src/dec/vp8i_dec.h" +#include "src/dec/vp8li_dec.h" +#include "src/dec/webpi_dec.h" +#include "src/utils/bit_reader_inl_utils.h" +#include "src/utils/utils.h" //------------------------------------------------------------------------------ @@ -491,7 +491,7 @@ static int GetCoeffsAlt(VP8BitReader* const br, return 16; } -WEBP_TSAN_IGNORE_FUNCTION static void InitGetCoeffs(void) { +static WEBP_TSAN_IGNORE_FUNCTION void InitGetCoeffs(void) { if (GetCoeffs == NULL) { if (VP8GetCPUInfo != NULL && VP8GetCPUInfo(kSlowSSSE3)) { GetCoeffs = GetCoeffsAlt; diff --git a/external/libwebp-0.6.0/src/dec/vp8_dec.h b/external/libwebp-1.0.0/src/dec/vp8_dec.h similarity index 94% rename from external/libwebp-0.6.0/src/dec/vp8_dec.h rename to external/libwebp-1.0.0/src/dec/vp8_dec.h index b9337bbe..ca85b340 100644 --- a/external/libwebp-0.6.0/src/dec/vp8_dec.h +++ b/external/libwebp-1.0.0/src/dec/vp8_dec.h @@ -11,10 +11,10 @@ // // Author: Skal (pascal.massimino@gmail.com) -#ifndef WEBP_WEBP_DECODE_VP8_H_ -#define WEBP_WEBP_DECODE_VP8_H_ +#ifndef WEBP_DEC_VP8_DEC_H_ +#define WEBP_DEC_VP8_DEC_H_ -#include "../webp/decode.h" +#include "src/webp/decode.h" #ifdef __cplusplus extern "C" { @@ -33,7 +33,7 @@ extern "C" { // /* customize io's functions (setup()/put()/teardown()) if needed. */ // // VP8Decoder* dec = VP8New(); -// bool ok = VP8Decode(dec); +// int ok = VP8Decode(dec, &io); // if (!ok) printf("Error: %s\n", VP8StatusMessage(dec)); // VP8Delete(dec); // return ok; @@ -157,24 +157,24 @@ void VP8Delete(VP8Decoder* const dec); // Miscellaneous VP8/VP8L bitstream probing functions. // Returns true if the next 3 bytes in data contain the VP8 signature. -WEBP_EXTERN(int) VP8CheckSignature(const uint8_t* const data, size_t data_size); +WEBP_EXTERN int VP8CheckSignature(const uint8_t* const data, size_t data_size); // Validates the VP8 data-header and retrieves basic header information viz // width and height. Returns 0 in case of formatting error. *width/*height // can be passed NULL. -WEBP_EXTERN(int) VP8GetInfo( +WEBP_EXTERN int VP8GetInfo( const uint8_t* data, size_t data_size, // data available so far size_t chunk_size, // total data size expected in the chunk int* const width, int* const height); // Returns true if the next byte(s) in data is a VP8L signature. -WEBP_EXTERN(int) VP8LCheckSignature(const uint8_t* const data, size_t size); +WEBP_EXTERN int VP8LCheckSignature(const uint8_t* const data, size_t size); // Validates the VP8L data-header and retrieves basic header information viz // width, height and alpha. Returns 0 in case of formatting error. // width/height/has_alpha can be passed NULL. -WEBP_EXTERN(int) VP8LGetInfo( +WEBP_EXTERN int VP8LGetInfo( const uint8_t* data, size_t data_size, // data available so far int* const width, int* const height, int* const has_alpha); @@ -182,4 +182,4 @@ WEBP_EXTERN(int) VP8LGetInfo( } // extern "C" #endif -#endif /* WEBP_WEBP_DECODE_VP8_H_ */ +#endif /* WEBP_DEC_VP8_DEC_H_ */ diff --git a/external/libwebp-0.6.0/src/dec/vp8i_dec.h b/external/libwebp-1.0.0/src/dec/vp8i_dec.h similarity index 97% rename from external/libwebp-0.6.0/src/dec/vp8i_dec.h rename to external/libwebp-1.0.0/src/dec/vp8i_dec.h index 555853e8..c929933e 100644 --- a/external/libwebp-0.6.0/src/dec/vp8i_dec.h +++ b/external/libwebp-1.0.0/src/dec/vp8i_dec.h @@ -11,16 +11,16 @@ // // Author: Skal (pascal.massimino@gmail.com) -#ifndef WEBP_DEC_VP8I_H_ -#define WEBP_DEC_VP8I_H_ +#ifndef WEBP_DEC_VP8I_DEC_H_ +#define WEBP_DEC_VP8I_DEC_H_ #include // for memcpy() -#include "./common_dec.h" -#include "./vp8li_dec.h" -#include "../utils/bit_reader_utils.h" -#include "../utils/random_utils.h" -#include "../utils/thread_utils.h" -#include "../dsp/dsp.h" +#include "src/dec/common_dec.h" +#include "src/dec/vp8li_dec.h" +#include "src/utils/bit_reader_utils.h" +#include "src/utils/random_utils.h" +#include "src/utils/thread_utils.h" +#include "src/dsp/dsp.h" #ifdef __cplusplus extern "C" { @@ -30,8 +30,8 @@ extern "C" { // Various defines and enums // version numbers -#define DEC_MAJ_VERSION 0 -#define DEC_MIN_VERSION 6 +#define DEC_MAJ_VERSION 1 +#define DEC_MIN_VERSION 0 #define DEC_REV_VERSION 0 // YUV-cache parameters. Cache is 32-bytes wide (= one cacheline). @@ -57,7 +57,6 @@ extern "C" { // '|' = left sample, '-' = top sample, '+' = top-left sample // 't' = extra top-right sample for 4x4 modes #define YUV_SIZE (BPS * 17 + BPS * 9) -#define Y_SIZE (BPS * 17) #define Y_OFF (BPS * 1 + 8) #define U_OFF (Y_OFF + BPS * 16 + BPS) #define V_OFF (U_OFF + 16) @@ -317,4 +316,4 @@ const uint8_t* VP8DecompressAlphaRows(VP8Decoder* const dec, } // extern "C" #endif -#endif /* WEBP_DEC_VP8I_H_ */ +#endif /* WEBP_DEC_VP8I_DEC_H_ */ diff --git a/external/libwebp-0.6.0/src/dec/vp8l_dec.c b/external/libwebp-1.0.0/src/dec/vp8l_dec.c similarity index 98% rename from external/libwebp-0.6.0/src/dec/vp8l_dec.c rename to external/libwebp-1.0.0/src/dec/vp8l_dec.c index ef359a91..0570f53a 100644 --- a/external/libwebp-0.6.0/src/dec/vp8l_dec.c +++ b/external/libwebp-1.0.0/src/dec/vp8l_dec.c @@ -14,22 +14,22 @@ #include -#include "./alphai_dec.h" -#include "./vp8li_dec.h" -#include "../dsp/dsp.h" -#include "../dsp/lossless.h" -#include "../dsp/lossless_common.h" -#include "../dsp/yuv.h" -#include "../utils/endian_inl_utils.h" -#include "../utils/huffman_utils.h" -#include "../utils/utils.h" +#include "src/dec/alphai_dec.h" +#include "src/dec/vp8li_dec.h" +#include "src/dsp/dsp.h" +#include "src/dsp/lossless.h" +#include "src/dsp/lossless_common.h" +#include "src/dsp/yuv.h" +#include "src/utils/endian_inl_utils.h" +#include "src/utils/huffman_utils.h" +#include "src/utils/utils.h" #define NUM_ARGB_CACHE_ROWS 16 static const int kCodeLengthLiterals = 16; static const int kCodeLengthRepeatCode = 16; -static const int kCodeLengthExtraBits[3] = { 2, 3, 7 }; -static const int kCodeLengthRepeatOffsets[3] = { 3, 3, 11 }; +static const uint8_t kCodeLengthExtraBits[3] = { 2, 3, 7 }; +static const uint8_t kCodeLengthRepeatOffsets[3] = { 3, 3, 11 }; // ----------------------------------------------------------------------------- // Five Huffman codes are used at each meta code: @@ -86,7 +86,7 @@ static const uint8_t kCodeToPlane[CODE_TO_PLANE_CODES] = { // All values computed for 8-bit first level lookup with Mark Adler's tool: // http://www.hdfgroup.org/ftp/lib-external/zlib/zlib-1.2.5/examples/enough.c #define FIXED_TABLE_SIZE (630 * 3 + 410) -static const int kTableSize[12] = { +static const uint16_t kTableSize[12] = { FIXED_TABLE_SIZE + 654, FIXED_TABLE_SIZE + 656, FIXED_TABLE_SIZE + 658, @@ -485,6 +485,7 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize, //------------------------------------------------------------------------------ // Scaling. +#if !defined(WEBP_REDUCE_SIZE) static int AllocateAndInitRescaler(VP8LDecoder* const dec, VP8Io* const io) { const int num_channels = 4; const int in_width = io->mb_w; @@ -516,10 +517,13 @@ static int AllocateAndInitRescaler(VP8LDecoder* const dec, VP8Io* const io) { out_width, out_height, 0, num_channels, work); return 1; } +#endif // WEBP_REDUCE_SIZE //------------------------------------------------------------------------------ // Export to ARGB +#if !defined(WEBP_REDUCE_SIZE) + // We have special "export" function since we need to convert from BGRA static int Export(WebPRescaler* const rescaler, WEBP_CSP_MODE colorspace, int rgba_stride, uint8_t* const rgba) { @@ -561,6 +565,8 @@ static int EmitRescaledRowsRGBA(const VP8LDecoder* const dec, return num_lines_out; } +#endif // WEBP_REDUCE_SIZE + // Emit rows without any scaling. static int EmitRows(WEBP_CSP_MODE colorspace, const uint8_t* row_in, int in_stride, @@ -746,9 +752,12 @@ static void ProcessRows(VP8LDecoder* const dec, int row) { if (WebPIsRGBMode(output->colorspace)) { // convert to RGBA const WebPRGBABuffer* const buf = &output->u.RGBA; uint8_t* const rgba = buf->rgba + dec->last_out_row_ * buf->stride; - const int num_rows_out = io->use_scaling ? + const int num_rows_out = +#if !defined(WEBP_REDUCE_SIZE) + io->use_scaling ? EmitRescaledRowsRGBA(dec, rows_data, in_stride, io->mb_h, rgba, buf->stride) : +#endif // WEBP_REDUCE_SIZE EmitRows(output->colorspace, rows_data, in_stride, io->mb_w, io->mb_h, rgba, buf->stride); // Update 'last_out_row_'. @@ -1012,12 +1021,13 @@ static int DecodeAlphaData(VP8LDecoder* const dec, uint8_t* const data, ok = 0; goto End; } - assert(br->eos_ == VP8LIsEndOfStream(br)); + br->eos_ = VP8LIsEndOfStream(br); } // Process the remaining rows corresponding to last row-block. ExtractPalettedAlphaRows(dec, row > last_row ? last_row : row); End: + br->eos_ = VP8LIsEndOfStream(br); if (!ok || (br->eos_ && pos < end)) { ok = 0; dec->status_ = br->eos_ ? VP8_STATUS_SUSPENDED @@ -1090,11 +1100,12 @@ static int DecodeImageData(VP8LDecoder* const dec, uint32_t* const data, VP8LFillBitWindow(br); if (htree_group->use_packed_table) { code = ReadPackedSymbols(htree_group, br, src); + if (VP8LIsEndOfStream(br)) break; if (code == PACKED_NON_LITERAL_CODE) goto AdvanceByOne; } else { code = ReadSymbol(htree_group->htrees[GREEN], br); } - if (br->eos_) break; // early out + if (VP8LIsEndOfStream(br)) break; if (code < NUM_LITERAL_CODES) { // Literal if (htree_group->is_trivial_literal) { *src = htree_group->literal_arb | (code << 8); @@ -1104,7 +1115,7 @@ static int DecodeImageData(VP8LDecoder* const dec, uint32_t* const data, VP8LFillBitWindow(br); blue = ReadSymbol(htree_group->htrees[BLUE], br); alpha = ReadSymbol(htree_group->htrees[ALPHA], br); - if (br->eos_) break; + if (VP8LIsEndOfStream(br)) break; *src = ((uint32_t)alpha << 24) | (red << 16) | (code << 8) | blue; } AdvanceByOne: @@ -1132,7 +1143,7 @@ static int DecodeImageData(VP8LDecoder* const dec, uint32_t* const data, VP8LFillBitWindow(br); dist_code = GetCopyDistance(dist_symbol, br); dist = PlaneCodeToDistance(width, dist_code); - if (br->eos_) break; + if (VP8LIsEndOfStream(br)) break; if (src - data < (ptrdiff_t)dist || src_end - src < (ptrdiff_t)length) { goto Error; } else { @@ -1169,9 +1180,9 @@ static int DecodeImageData(VP8LDecoder* const dec, uint32_t* const data, } else { // Not reached goto Error; } - assert(br->eos_ == VP8LIsEndOfStream(br)); } + br->eos_ = VP8LIsEndOfStream(br); if (dec->incremental_ && br->eos_ && src < src_end) { RestoreState(dec); } else if (!br->eos_) { @@ -1630,12 +1641,19 @@ int VP8LDecodeImage(VP8LDecoder* const dec) { if (!AllocateInternalBuffers32b(dec, io->width)) goto Err; +#if !defined(WEBP_REDUCE_SIZE) if (io->use_scaling && !AllocateAndInitRescaler(dec, io)) goto Err; - +#else + if (io->use_scaling) { + dec->status_ = VP8_STATUS_INVALID_PARAM; + goto Err; + } +#endif if (io->use_scaling || WebPIsPremultipliedMode(dec->output_->colorspace)) { // need the alpha-multiply functions for premultiplied output or rescaling WebPInitAlphaProcessing(); } + if (!WebPIsRGBMode(dec->output_->colorspace)) { WebPInitConvertARGBToYUV(); if (dec->output_->u.YUVA.a != NULL) WebPInitAlphaProcessing(); diff --git a/external/libwebp-0.6.0/src/dec/vp8li_dec.h b/external/libwebp-1.0.0/src/dec/vp8li_dec.h similarity index 94% rename from external/libwebp-0.6.0/src/dec/vp8li_dec.h rename to external/libwebp-1.0.0/src/dec/vp8li_dec.h index 097a9d05..8e500cf9 100644 --- a/external/libwebp-0.6.0/src/dec/vp8li_dec.h +++ b/external/libwebp-1.0.0/src/dec/vp8li_dec.h @@ -12,14 +12,14 @@ // Author: Skal (pascal.massimino@gmail.com) // Vikas Arora(vikaas.arora@gmail.com) -#ifndef WEBP_DEC_VP8LI_H_ -#define WEBP_DEC_VP8LI_H_ +#ifndef WEBP_DEC_VP8LI_DEC_H_ +#define WEBP_DEC_VP8LI_DEC_H_ #include // for memcpy() -#include "./webpi_dec.h" -#include "../utils/bit_reader_utils.h" -#include "../utils/color_cache_utils.h" -#include "../utils/huffman_utils.h" +#include "src/dec/webpi_dec.h" +#include "src/utils/bit_reader_utils.h" +#include "src/utils/color_cache_utils.h" +#include "src/utils/huffman_utils.h" #ifdef __cplusplus extern "C" { @@ -132,4 +132,4 @@ void VP8LDelete(VP8LDecoder* const dec); } // extern "C" #endif -#endif /* WEBP_DEC_VP8LI_H_ */ +#endif /* WEBP_DEC_VP8LI_DEC_H_ */ diff --git a/external/libwebp-0.6.0/src/dec/webp_dec.c b/external/libwebp-1.0.0/src/dec/webp_dec.c similarity index 98% rename from external/libwebp-0.6.0/src/dec/webp_dec.c rename to external/libwebp-1.0.0/src/dec/webp_dec.c index a8e9c2c5..42d09887 100644 --- a/external/libwebp-0.6.0/src/dec/webp_dec.c +++ b/external/libwebp-1.0.0/src/dec/webp_dec.c @@ -13,11 +13,11 @@ #include -#include "./vp8i_dec.h" -#include "./vp8li_dec.h" -#include "./webpi_dec.h" -#include "../utils/utils.h" -#include "../webp/mux_types.h" // ALPHA_FLAG +#include "src/dec/vp8i_dec.h" +#include "src/dec/vp8li_dec.h" +#include "src/dec/webpi_dec.h" +#include "src/utils/utils.h" +#include "src/webp/mux_types.h" // ALPHA_FLAG //------------------------------------------------------------------------------ // RIFF layout is: @@ -421,7 +421,9 @@ VP8StatusCode WebPParseHeaders(WebPHeaderStructure* const headers) { NULL, NULL, NULL, &has_animation, NULL, headers); if (status == VP8_STATUS_OK || status == VP8_STATUS_NOT_ENOUGH_DATA) { - // TODO(jzern): full support of animation frames will require API additions. + // The WebPDemux API + libwebp can be used to decode individual + // uncomposited frames or the WebPAnimDecoder can be used to fully + // reconstruct them (see webp/demux.h). if (has_animation) { status = VP8_STATUS_UNSUPPORTED_FEATURE; } diff --git a/external/libwebp-0.6.0/src/dec/webpi_dec.h b/external/libwebp-1.0.0/src/dec/webpi_dec.h similarity index 97% rename from external/libwebp-0.6.0/src/dec/webpi_dec.h rename to external/libwebp-1.0.0/src/dec/webpi_dec.h index 696abc19..c378ba6f 100644 --- a/external/libwebp-0.6.0/src/dec/webpi_dec.h +++ b/external/libwebp-1.0.0/src/dec/webpi_dec.h @@ -11,15 +11,15 @@ // // Author: somnath@google.com (Somnath Banerjee) -#ifndef WEBP_DEC_WEBPI_H_ -#define WEBP_DEC_WEBPI_H_ +#ifndef WEBP_DEC_WEBPI_DEC_H_ +#define WEBP_DEC_WEBPI_DEC_H_ #ifdef __cplusplus extern "C" { #endif -#include "../utils/rescaler_utils.h" -#include "./vp8_dec.h" +#include "src/utils/rescaler_utils.h" +#include "src/dec/vp8_dec.h" //------------------------------------------------------------------------------ // WebPDecParams: Decoding output parameters. Transient internal object. @@ -130,4 +130,4 @@ int WebPAvoidSlowMemory(const WebPDecBuffer* const output, } // extern "C" #endif -#endif /* WEBP_DEC_WEBPI_H_ */ +#endif /* WEBP_DEC_WEBPI_DEC_H_ */ diff --git a/external/libwebp-0.6.0/src/demux/Makefile.am b/external/libwebp-1.0.0/src/demux/Makefile.am similarity index 64% rename from external/libwebp-0.6.0/src/demux/Makefile.am rename to external/libwebp-1.0.0/src/demux/Makefile.am index c47536bb..7e80bdc2 100644 --- a/external/libwebp-0.6.0/src/demux/Makefile.am +++ b/external/libwebp-1.0.0/src/demux/Makefile.am @@ -1,14 +1,18 @@ +AM_CPPFLAGS += -I$(top_builddir) -I$(top_srcdir) lib_LTLIBRARIES = libwebpdemux.la libwebpdemux_la_SOURCES = libwebpdemux_la_SOURCES += anim_decode.c demux.c libwebpdemuxinclude_HEADERS = +libwebpdemuxinclude_HEADERS += ../webp/decode.h libwebpdemuxinclude_HEADERS += ../webp/demux.h libwebpdemuxinclude_HEADERS += ../webp/mux_types.h libwebpdemuxinclude_HEADERS += ../webp/types.h +noinst_HEADERS = +noinst_HEADERS += ../webp/format_constants.h libwebpdemux_la_LIBADD = ../libwebp.la -libwebpdemux_la_LDFLAGS = -no-undefined -version-info 2:2:0 +libwebpdemux_la_LDFLAGS = -no-undefined -version-info 2:4:0 libwebpdemuxincludedir = $(includedir)/webp pkgconfig_DATA = libwebpdemux.pc diff --git a/external/libwebp-1.0.0/src/demux/Makefile.in b/external/libwebp-1.0.0/src/demux/Makefile.in new file mode 100644 index 00000000..80cb1bfb --- /dev/null +++ b/external/libwebp-1.0.0/src/demux/Makefile.in @@ -0,0 +1,735 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/demux +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(libwebpdemuxinclude_HEADERS) \ + $(noinst_HEADERS) $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/webp/config.h +CONFIG_CLEAN_FILES = libwebpdemux.pc +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \ + "$(DESTDIR)$(libwebpdemuxincludedir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +libwebpdemux_la_DEPENDENCIES = ../libwebp.la +am_libwebpdemux_la_OBJECTS = anim_decode.lo demux.lo +libwebpdemux_la_OBJECTS = $(am_libwebpdemux_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libwebpdemux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libwebpdemux_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/webp +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libwebpdemux_la_SOURCES) +DIST_SOURCES = $(libwebpdemux_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(pkgconfig_DATA) +HEADERS = $(libwebpdemuxinclude_HEADERS) $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/libwebpdemux.pc.in \ + $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_builddir) -I$(top_srcdir) +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVX2_FLAGS = @AVX2_FLAGS@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GIF_INCLUDES = @GIF_INCLUDES@ +GIF_LIBS = @GIF_LIBS@ +GL_INCLUDES = @GL_INCLUDES@ +GL_LIBS = @GL_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JPEG_INCLUDES = @JPEG_INCLUDES@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPNG_CONFIG = @LIBPNG_CONFIG@ +LIBS = @LIBS@ +LIBSDL_CONFIG = @LIBSDL_CONFIG@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NEON_FLAGS = @NEON_FLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PNG_INCLUDES = @PNG_INCLUDES@ +PNG_LIBS = @PNG_LIBS@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SDL_INCLUDES = @SDL_INCLUDES@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSE2_FLAGS = @SSE2_FLAGS@ +SSE41_FLAGS = @SSE41_FLAGS@ +STRIP = @STRIP@ +TIFF_INCLUDES = @TIFF_INCLUDES@ +TIFF_LIBS = @TIFF_LIBS@ +USE_SWAP_16BIT_CSP = @USE_SWAP_16BIT_CSP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +lib_LTLIBRARIES = libwebpdemux.la +libwebpdemux_la_SOURCES = anim_decode.c demux.c +libwebpdemuxinclude_HEADERS = ../webp/decode.h ../webp/demux.h \ + ../webp/mux_types.h ../webp/types.h +noinst_HEADERS = ../webp/format_constants.h +libwebpdemux_la_LIBADD = ../libwebp.la +libwebpdemux_la_LDFLAGS = -no-undefined -version-info 2:4:0 +libwebpdemuxincludedir = $(includedir)/webp +pkgconfig_DATA = libwebpdemux.pc +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/demux/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/demux/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +libwebpdemux.pc: $(top_builddir)/config.status $(srcdir)/libwebpdemux.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libwebpdemux.la: $(libwebpdemux_la_OBJECTS) $(libwebpdemux_la_DEPENDENCIES) $(EXTRA_libwebpdemux_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpdemux_la_LINK) -rpath $(libdir) $(libwebpdemux_la_OBJECTS) $(libwebpdemux_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/anim_decode.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/demux.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) +install-libwebpdemuxincludeHEADERS: $(libwebpdemuxinclude_HEADERS) + @$(NORMAL_INSTALL) + @list='$(libwebpdemuxinclude_HEADERS)'; test -n "$(libwebpdemuxincludedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libwebpdemuxincludedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libwebpdemuxincludedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libwebpdemuxincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(libwebpdemuxincludedir)" || exit $$?; \ + done + +uninstall-libwebpdemuxincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(libwebpdemuxinclude_HEADERS)'; test -n "$(libwebpdemuxincludedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libwebpdemuxincludedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libwebpdemuxincludedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-libwebpdemuxincludeHEADERS \ + install-pkgconfigDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libLTLIBRARIES \ + uninstall-libwebpdemuxincludeHEADERS uninstall-pkgconfigDATA + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES \ + install-libwebpdemuxincludeHEADERS install-man install-pdf \ + install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-libLTLIBRARIES uninstall-libwebpdemuxincludeHEADERS \ + uninstall-pkgconfigDATA + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/external/libwebp-0.6.0/src/demux/anim_decode.c b/external/libwebp-1.0.0/src/demux/anim_decode.c similarity index 99% rename from external/libwebp-0.6.0/src/demux/anim_decode.c rename to external/libwebp-1.0.0/src/demux/anim_decode.c index f1cf176e..05dd7073 100644 --- a/external/libwebp-0.6.0/src/demux/anim_decode.c +++ b/external/libwebp-1.0.0/src/demux/anim_decode.c @@ -11,15 +11,15 @@ // #ifdef HAVE_CONFIG_H -#include "../webp/config.h" +#include "src/webp/config.h" #endif #include #include -#include "../utils/utils.h" -#include "../webp/decode.h" -#include "../webp/demux.h" +#include "src/utils/utils.h" +#include "src/webp/decode.h" +#include "src/webp/demux.h" #define NUM_CHANNELS 4 diff --git a/external/libwebp-0.6.0/src/demux/demux.c b/external/libwebp-1.0.0/src/demux/demux.c similarity index 98% rename from external/libwebp-0.6.0/src/demux/demux.c rename to external/libwebp-1.0.0/src/demux/demux.c index 100eab8c..684215e3 100644 --- a/external/libwebp-0.6.0/src/demux/demux.c +++ b/external/libwebp-1.0.0/src/demux/demux.c @@ -11,21 +11,21 @@ // #ifdef HAVE_CONFIG_H -#include "../webp/config.h" +#include "src/webp/config.h" #endif #include #include #include -#include "../utils/utils.h" -#include "../webp/decode.h" // WebPGetFeatures -#include "../webp/demux.h" -#include "../webp/format_constants.h" +#include "src/utils/utils.h" +#include "src/webp/decode.h" // WebPGetFeatures +#include "src/webp/demux.h" +#include "src/webp/format_constants.h" -#define DMUX_MAJ_VERSION 0 -#define DMUX_MIN_VERSION 3 -#define DMUX_REV_VERSION 2 +#define DMUX_MAJ_VERSION 1 +#define DMUX_MIN_VERSION 0 +#define DMUX_REV_VERSION 0 typedef struct { size_t start_; // start location of the data @@ -205,12 +205,14 @@ static void SetFrameInfo(size_t start_offset, size_t size, frame->complete_ = complete; } -// Store image bearing chunks to 'frame'. +// Store image bearing chunks to 'frame'. 'min_size' is an optional size +// requirement, it may be zero. static ParseStatus StoreFrame(int frame_num, uint32_t min_size, MemBuffer* const mem, Frame* const frame) { int alpha_chunks = 0; int image_chunks = 0; - int done = (MemDataSize(mem) < min_size); + int done = (MemDataSize(mem) < CHUNK_HEADER_SIZE || + MemDataSize(mem) < min_size); ParseStatus status = PARSE_OK; if (done) return PARSE_NEED_MORE_DATA; @@ -401,9 +403,9 @@ static ParseStatus ParseSingleImage(WebPDemuxer* const dmux) { frame = (Frame*)WebPSafeCalloc(1ULL, sizeof(*frame)); if (frame == NULL) return PARSE_ERROR; - // For the single image case we allow parsing of a partial frame, but we need - // at least CHUNK_HEADER_SIZE for parsing. - status = StoreFrame(1, CHUNK_HEADER_SIZE, &dmux->mem_, frame); + // For the single image case we allow parsing of a partial frame, so no + // minimum size is imposed here. + status = StoreFrame(1, 0, &dmux->mem_, frame); if (status != PARSE_ERROR) { const int has_alpha = !!(dmux->feature_flags_ & ALPHA_FLAG); // Clear any alpha when the alpha flag is missing. diff --git a/external/libwebp-0.6.0/src/demux/libwebpdemux.pc.in b/external/libwebp-1.0.0/src/demux/libwebpdemux.pc.in similarity index 100% rename from external/libwebp-0.6.0/src/demux/libwebpdemux.pc.in rename to external/libwebp-1.0.0/src/demux/libwebpdemux.pc.in diff --git a/external/libwebp-0.6.0/src/demux/libwebpdemux.rc b/external/libwebp-1.0.0/src/demux/libwebpdemux.rc similarity index 81% rename from external/libwebp-0.6.0/src/demux/libwebpdemux.rc rename to external/libwebp-1.0.0/src/demux/libwebpdemux.rc index b9ab68b3..544a8b2f 100644 --- a/external/libwebp-0.6.0/src/demux/libwebpdemux.rc +++ b/external/libwebp-1.0.0/src/demux/libwebpdemux.rc @@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,3,0,2 - PRODUCTVERSION 0,3,0,2 + FILEVERSION 1,0,0,0 + PRODUCTVERSION 1,0,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -24,12 +24,12 @@ BEGIN BEGIN VALUE "CompanyName", "Google, Inc." VALUE "FileDescription", "libwebpdemux DLL" - VALUE "FileVersion", "0.3.2" + VALUE "FileVersion", "1.0.0" VALUE "InternalName", "libwebpdemux.dll" - VALUE "LegalCopyright", "Copyright (C) 2017" + VALUE "LegalCopyright", "Copyright (C) 2018" VALUE "OriginalFilename", "libwebpdemux.dll" VALUE "ProductName", "WebP Image Demuxer" - VALUE "ProductVersion", "0.3.2" + VALUE "ProductVersion", "1.0.0" END END BLOCK "VarFileInfo" diff --git a/external/libwebp-0.6.0/src/dsp/Makefile.am b/external/libwebp-1.0.0/src/dsp/Makefile.am similarity index 86% rename from external/libwebp-0.6.0/src/dsp/Makefile.am rename to external/libwebp-1.0.0/src/dsp/Makefile.am index 33fc1e42..0836d8fe 100644 --- a/external/libwebp-0.6.0/src/dsp/Makefile.am +++ b/external/libwebp-1.0.0/src/dsp/Makefile.am @@ -1,8 +1,15 @@ -noinst_LTLIBRARIES = libwebpdsp.la libwebpdsp_avx2.la -noinst_LTLIBRARIES += libwebpdsp_sse2.la libwebpdspdecode_sse2.la -noinst_LTLIBRARIES += libwebpdsp_sse41.la libwebpdspdecode_sse41.la -noinst_LTLIBRARIES += libwebpdsp_neon.la libwebpdspdecode_neon.la -noinst_LTLIBRARIES += libwebpdsp_msa.la libwebpdspdecode_msa.la +AM_CPPFLAGS += -I$(top_builddir) -I$(top_srcdir) +noinst_LTLIBRARIES = +noinst_LTLIBRARIES += libwebpdsp.la +noinst_LTLIBRARIES += libwebpdsp_avx2.la +noinst_LTLIBRARIES += libwebpdsp_sse2.la +noinst_LTLIBRARIES += libwebpdspdecode_sse2.la +noinst_LTLIBRARIES += libwebpdsp_sse41.la +noinst_LTLIBRARIES += libwebpdspdecode_sse41.la +noinst_LTLIBRARIES += libwebpdsp_neon.la +noinst_LTLIBRARIES += libwebpdspdecode_neon.la +noinst_LTLIBRARIES += libwebpdsp_msa.la +noinst_LTLIBRARIES += libwebpdspdecode_msa.la if BUILD_LIBWEBPDECODER noinst_LTLIBRARIES += libwebpdspdecode.la @@ -39,8 +46,6 @@ COMMON_SOURCES += yuv_mips32.c COMMON_SOURCES += yuv_mips_dsp_r2.c ENC_SOURCES = -ENC_SOURCES += argb.c -ENC_SOURCES += argb_mips_dsp_r2.c ENC_SOURCES += cost.c ENC_SOURCES += cost_mips32.c ENC_SOURCES += cost_mips_dsp_r2.c @@ -50,6 +55,7 @@ ENC_SOURCES += enc_mips_dsp_r2.c ENC_SOURCES += lossless_enc.c ENC_SOURCES += lossless_enc_mips32.c ENC_SOURCES += lossless_enc_mips_dsp_r2.c +ENC_SOURCES += ssim.c libwebpdsp_avx2_la_SOURCES = libwebpdsp_avx2_la_SOURCES += enc_avx2.c @@ -59,6 +65,8 @@ libwebpdsp_avx2_la_CFLAGS = $(AM_CFLAGS) $(AVX2_FLAGS) libwebpdspdecode_sse41_la_SOURCES = libwebpdspdecode_sse41_la_SOURCES += alpha_processing_sse41.c libwebpdspdecode_sse41_la_SOURCES += dec_sse41.c +libwebpdspdecode_sse41_la_SOURCES += upsampling_sse41.c +libwebpdspdecode_sse41_la_SOURCES += yuv_sse41.c libwebpdspdecode_sse41_la_CPPFLAGS = $(libwebpdsp_la_CPPFLAGS) libwebpdspdecode_sse41_la_CFLAGS = $(AM_CFLAGS) $(SSE41_FLAGS) @@ -81,6 +89,7 @@ libwebpdspdecode_neon_la_SOURCES += lossless_neon.c libwebpdspdecode_neon_la_SOURCES += neon.h libwebpdspdecode_neon_la_SOURCES += rescaler_neon.c libwebpdspdecode_neon_la_SOURCES += upsampling_neon.c +libwebpdspdecode_neon_la_SOURCES += yuv_neon.c libwebpdspdecode_neon_la_CPPFLAGS = $(libwebpdsp_neon_la_CPPFLAGS) libwebpdspdecode_neon_la_CFLAGS = $(libwebpdsp_neon_la_CFLAGS) @@ -95,10 +104,10 @@ libwebpdspdecode_msa_la_CPPFLAGS = $(libwebpdsp_msa_la_CPPFLAGS) libwebpdspdecode_msa_la_CFLAGS = $(libwebpdsp_msa_la_CFLAGS) libwebpdsp_sse2_la_SOURCES = -libwebpdsp_sse2_la_SOURCES += argb_sse2.c libwebpdsp_sse2_la_SOURCES += cost_sse2.c libwebpdsp_sse2_la_SOURCES += enc_sse2.c libwebpdsp_sse2_la_SOURCES += lossless_enc_sse2.c +libwebpdsp_sse2_la_SOURCES += ssim_sse2.c libwebpdsp_sse2_la_CPPFLAGS = $(libwebpdsp_la_CPPFLAGS) libwebpdsp_sse2_la_CFLAGS = $(AM_CFLAGS) $(SSE2_FLAGS) libwebpdsp_sse2_la_LIBADD = libwebpdspdecode_sse2.la @@ -132,10 +141,11 @@ noinst_HEADERS += ../webp/decode.h libwebpdsp_la_CPPFLAGS = libwebpdsp_la_CPPFLAGS += $(AM_CPPFLAGS) -libwebpdsp_la_CPPFLAGS += $(USE_EXPERIMENTAL_CODE) $(USE_SWAP_16BIT_CSP) +libwebpdsp_la_CPPFLAGS += $(USE_SWAP_16BIT_CSP) libwebpdsp_la_LDFLAGS = -lm libwebpdsp_la_LIBADD = -libwebpdsp_la_LIBADD += libwebpdsp_avx2.la libwebpdsp_sse2.la +libwebpdsp_la_LIBADD += libwebpdsp_avx2.la +libwebpdsp_la_LIBADD += libwebpdsp_sse2.la libwebpdsp_la_LIBADD += libwebpdsp_sse41.la libwebpdsp_la_LIBADD += libwebpdsp_neon.la libwebpdsp_la_LIBADD += libwebpdsp_msa.la diff --git a/external/libwebp-1.0.0/src/dsp/Makefile.in b/external/libwebp-1.0.0/src/dsp/Makefile.in new file mode 100644 index 00000000..72944b3b --- /dev/null +++ b/external/libwebp-1.0.0/src/dsp/Makefile.in @@ -0,0 +1,1591 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@BUILD_LIBWEBPDECODER_TRUE@am__append_1 = libwebpdspdecode.la +subdir = src/dsp +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(common_HEADERS) \ + $(noinst_HEADERS) $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/webp/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libwebpdsp_la_DEPENDENCIES = libwebpdsp_avx2.la libwebpdsp_sse2.la \ + libwebpdsp_sse41.la libwebpdsp_neon.la libwebpdsp_msa.la +am__objects_1 = libwebpdsp_la-alpha_processing.lo \ + libwebpdsp_la-alpha_processing_mips_dsp_r2.lo \ + libwebpdsp_la-cpu.lo libwebpdsp_la-dec.lo \ + libwebpdsp_la-dec_clip_tables.lo libwebpdsp_la-dec_mips32.lo \ + libwebpdsp_la-dec_mips_dsp_r2.lo libwebpdsp_la-filters.lo \ + libwebpdsp_la-filters_mips_dsp_r2.lo libwebpdsp_la-lossless.lo \ + libwebpdsp_la-lossless_mips_dsp_r2.lo \ + libwebpdsp_la-rescaler.lo libwebpdsp_la-rescaler_mips32.lo \ + libwebpdsp_la-rescaler_mips_dsp_r2.lo \ + libwebpdsp_la-upsampling.lo \ + libwebpdsp_la-upsampling_mips_dsp_r2.lo libwebpdsp_la-yuv.lo \ + libwebpdsp_la-yuv_mips32.lo libwebpdsp_la-yuv_mips_dsp_r2.lo +am__objects_2 = libwebpdsp_la-cost.lo libwebpdsp_la-cost_mips32.lo \ + libwebpdsp_la-cost_mips_dsp_r2.lo libwebpdsp_la-enc.lo \ + libwebpdsp_la-enc_mips32.lo libwebpdsp_la-enc_mips_dsp_r2.lo \ + libwebpdsp_la-lossless_enc.lo \ + libwebpdsp_la-lossless_enc_mips32.lo \ + libwebpdsp_la-lossless_enc_mips_dsp_r2.lo \ + libwebpdsp_la-ssim.lo +am_libwebpdsp_la_OBJECTS = $(am__objects_1) $(am__objects_2) +libwebpdsp_la_OBJECTS = $(am_libwebpdsp_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libwebpdsp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libwebpdsp_la_LDFLAGS) $(LDFLAGS) -o $@ +libwebpdsp_avx2_la_LIBADD = +am_libwebpdsp_avx2_la_OBJECTS = libwebpdsp_avx2_la-enc_avx2.lo +libwebpdsp_avx2_la_OBJECTS = $(am_libwebpdsp_avx2_la_OBJECTS) +libwebpdsp_avx2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libwebpdsp_avx2_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +libwebpdsp_msa_la_DEPENDENCIES = libwebpdspdecode_msa.la +am_libwebpdsp_msa_la_OBJECTS = libwebpdsp_msa_la-enc_msa.lo \ + libwebpdsp_msa_la-lossless_enc_msa.lo +libwebpdsp_msa_la_OBJECTS = $(am_libwebpdsp_msa_la_OBJECTS) +libwebpdsp_msa_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libwebpdsp_msa_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ +libwebpdsp_neon_la_DEPENDENCIES = libwebpdspdecode_neon.la +am_libwebpdsp_neon_la_OBJECTS = libwebpdsp_neon_la-enc_neon.lo \ + libwebpdsp_neon_la-lossless_enc_neon.lo +libwebpdsp_neon_la_OBJECTS = $(am_libwebpdsp_neon_la_OBJECTS) +libwebpdsp_neon_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libwebpdsp_neon_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +libwebpdsp_sse2_la_DEPENDENCIES = libwebpdspdecode_sse2.la +am_libwebpdsp_sse2_la_OBJECTS = libwebpdsp_sse2_la-cost_sse2.lo \ + libwebpdsp_sse2_la-enc_sse2.lo \ + libwebpdsp_sse2_la-lossless_enc_sse2.lo \ + libwebpdsp_sse2_la-ssim_sse2.lo +libwebpdsp_sse2_la_OBJECTS = $(am_libwebpdsp_sse2_la_OBJECTS) +libwebpdsp_sse2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libwebpdsp_sse2_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +libwebpdsp_sse41_la_DEPENDENCIES = libwebpdspdecode_sse41.la +am_libwebpdsp_sse41_la_OBJECTS = libwebpdsp_sse41_la-enc_sse41.lo \ + libwebpdsp_sse41_la-lossless_enc_sse41.lo +libwebpdsp_sse41_la_OBJECTS = $(am_libwebpdsp_sse41_la_OBJECTS) +libwebpdsp_sse41_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libwebpdsp_sse41_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +@BUILD_LIBWEBPDECODER_TRUE@libwebpdspdecode_la_DEPENDENCIES = \ +@BUILD_LIBWEBPDECODER_TRUE@ libwebpdspdecode_sse2.la \ +@BUILD_LIBWEBPDECODER_TRUE@ libwebpdspdecode_sse41.la \ +@BUILD_LIBWEBPDECODER_TRUE@ libwebpdspdecode_neon.la \ +@BUILD_LIBWEBPDECODER_TRUE@ libwebpdspdecode_msa.la +am__libwebpdspdecode_la_SOURCES_DIST = alpha_processing.c \ + alpha_processing_mips_dsp_r2.c common_sse2.h cpu.c dec.c \ + dec_clip_tables.c dec_mips32.c dec_mips_dsp_r2.c dsp.h \ + filters.c filters_mips_dsp_r2.c lossless.c lossless.h \ + lossless_common.h lossless_mips_dsp_r2.c mips_macro.h \ + rescaler.c rescaler_mips32.c rescaler_mips_dsp_r2.c \ + upsampling.c upsampling_mips_dsp_r2.c yuv.c yuv.h yuv_mips32.c \ + yuv_mips_dsp_r2.c +am__objects_3 = libwebpdspdecode_la-alpha_processing.lo \ + libwebpdspdecode_la-alpha_processing_mips_dsp_r2.lo \ + libwebpdspdecode_la-cpu.lo libwebpdspdecode_la-dec.lo \ + libwebpdspdecode_la-dec_clip_tables.lo \ + libwebpdspdecode_la-dec_mips32.lo \ + libwebpdspdecode_la-dec_mips_dsp_r2.lo \ + libwebpdspdecode_la-filters.lo \ + libwebpdspdecode_la-filters_mips_dsp_r2.lo \ + libwebpdspdecode_la-lossless.lo \ + libwebpdspdecode_la-lossless_mips_dsp_r2.lo \ + libwebpdspdecode_la-rescaler.lo \ + libwebpdspdecode_la-rescaler_mips32.lo \ + libwebpdspdecode_la-rescaler_mips_dsp_r2.lo \ + libwebpdspdecode_la-upsampling.lo \ + libwebpdspdecode_la-upsampling_mips_dsp_r2.lo \ + libwebpdspdecode_la-yuv.lo libwebpdspdecode_la-yuv_mips32.lo \ + libwebpdspdecode_la-yuv_mips_dsp_r2.lo +@BUILD_LIBWEBPDECODER_TRUE@am_libwebpdspdecode_la_OBJECTS = \ +@BUILD_LIBWEBPDECODER_TRUE@ $(am__objects_3) +libwebpdspdecode_la_OBJECTS = $(am_libwebpdspdecode_la_OBJECTS) +libwebpdspdecode_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libwebpdspdecode_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@BUILD_LIBWEBPDECODER_TRUE@am_libwebpdspdecode_la_rpath = +libwebpdspdecode_msa_la_LIBADD = +am_libwebpdspdecode_msa_la_OBJECTS = \ + libwebpdspdecode_msa_la-dec_msa.lo \ + libwebpdspdecode_msa_la-filters_msa.lo \ + libwebpdspdecode_msa_la-lossless_msa.lo \ + libwebpdspdecode_msa_la-rescaler_msa.lo \ + libwebpdspdecode_msa_la-upsampling_msa.lo +libwebpdspdecode_msa_la_OBJECTS = \ + $(am_libwebpdspdecode_msa_la_OBJECTS) +libwebpdspdecode_msa_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libwebpdspdecode_msa_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +libwebpdspdecode_neon_la_LIBADD = +am_libwebpdspdecode_neon_la_OBJECTS = \ + libwebpdspdecode_neon_la-alpha_processing_neon.lo \ + libwebpdspdecode_neon_la-dec_neon.lo \ + libwebpdspdecode_neon_la-filters_neon.lo \ + libwebpdspdecode_neon_la-lossless_neon.lo \ + libwebpdspdecode_neon_la-rescaler_neon.lo \ + libwebpdspdecode_neon_la-upsampling_neon.lo \ + libwebpdspdecode_neon_la-yuv_neon.lo +libwebpdspdecode_neon_la_OBJECTS = \ + $(am_libwebpdspdecode_neon_la_OBJECTS) +libwebpdspdecode_neon_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libwebpdspdecode_neon_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +libwebpdspdecode_sse2_la_LIBADD = +am_libwebpdspdecode_sse2_la_OBJECTS = \ + libwebpdspdecode_sse2_la-alpha_processing_sse2.lo \ + libwebpdspdecode_sse2_la-dec_sse2.lo \ + libwebpdspdecode_sse2_la-filters_sse2.lo \ + libwebpdspdecode_sse2_la-lossless_sse2.lo \ + libwebpdspdecode_sse2_la-rescaler_sse2.lo \ + libwebpdspdecode_sse2_la-upsampling_sse2.lo \ + libwebpdspdecode_sse2_la-yuv_sse2.lo +libwebpdspdecode_sse2_la_OBJECTS = \ + $(am_libwebpdspdecode_sse2_la_OBJECTS) +libwebpdspdecode_sse2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libwebpdspdecode_sse2_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +libwebpdspdecode_sse41_la_LIBADD = +am_libwebpdspdecode_sse41_la_OBJECTS = \ + libwebpdspdecode_sse41_la-alpha_processing_sse41.lo \ + libwebpdspdecode_sse41_la-dec_sse41.lo \ + libwebpdspdecode_sse41_la-upsampling_sse41.lo \ + libwebpdspdecode_sse41_la-yuv_sse41.lo +libwebpdspdecode_sse41_la_OBJECTS = \ + $(am_libwebpdspdecode_sse41_la_OBJECTS) +libwebpdspdecode_sse41_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libwebpdspdecode_sse41_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/webp +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libwebpdsp_la_SOURCES) $(libwebpdsp_avx2_la_SOURCES) \ + $(libwebpdsp_msa_la_SOURCES) $(libwebpdsp_neon_la_SOURCES) \ + $(libwebpdsp_sse2_la_SOURCES) $(libwebpdsp_sse41_la_SOURCES) \ + $(libwebpdspdecode_la_SOURCES) \ + $(libwebpdspdecode_msa_la_SOURCES) \ + $(libwebpdspdecode_neon_la_SOURCES) \ + $(libwebpdspdecode_sse2_la_SOURCES) \ + $(libwebpdspdecode_sse41_la_SOURCES) +DIST_SOURCES = $(libwebpdsp_la_SOURCES) $(libwebpdsp_avx2_la_SOURCES) \ + $(libwebpdsp_msa_la_SOURCES) $(libwebpdsp_neon_la_SOURCES) \ + $(libwebpdsp_sse2_la_SOURCES) $(libwebpdsp_sse41_la_SOURCES) \ + $(am__libwebpdspdecode_la_SOURCES_DIST) \ + $(libwebpdspdecode_msa_la_SOURCES) \ + $(libwebpdspdecode_neon_la_SOURCES) \ + $(libwebpdspdecode_sse2_la_SOURCES) \ + $(libwebpdspdecode_sse41_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(commondir)" +HEADERS = $(common_HEADERS) $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_builddir) -I$(top_srcdir) +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVX2_FLAGS = @AVX2_FLAGS@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GIF_INCLUDES = @GIF_INCLUDES@ +GIF_LIBS = @GIF_LIBS@ +GL_INCLUDES = @GL_INCLUDES@ +GL_LIBS = @GL_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JPEG_INCLUDES = @JPEG_INCLUDES@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPNG_CONFIG = @LIBPNG_CONFIG@ +LIBS = @LIBS@ +LIBSDL_CONFIG = @LIBSDL_CONFIG@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NEON_FLAGS = @NEON_FLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PNG_INCLUDES = @PNG_INCLUDES@ +PNG_LIBS = @PNG_LIBS@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SDL_INCLUDES = @SDL_INCLUDES@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSE2_FLAGS = @SSE2_FLAGS@ +SSE41_FLAGS = @SSE41_FLAGS@ +STRIP = @STRIP@ +TIFF_INCLUDES = @TIFF_INCLUDES@ +TIFF_LIBS = @TIFF_LIBS@ +USE_SWAP_16BIT_CSP = @USE_SWAP_16BIT_CSP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +noinst_LTLIBRARIES = libwebpdsp.la libwebpdsp_avx2.la \ + libwebpdsp_sse2.la libwebpdspdecode_sse2.la \ + libwebpdsp_sse41.la libwebpdspdecode_sse41.la \ + libwebpdsp_neon.la libwebpdspdecode_neon.la libwebpdsp_msa.la \ + libwebpdspdecode_msa.la $(am__append_1) +common_HEADERS = ../webp/types.h +commondir = $(includedir)/webp +COMMON_SOURCES = alpha_processing.c alpha_processing_mips_dsp_r2.c \ + common_sse2.h cpu.c dec.c dec_clip_tables.c dec_mips32.c \ + dec_mips_dsp_r2.c dsp.h filters.c filters_mips_dsp_r2.c \ + lossless.c lossless.h lossless_common.h lossless_mips_dsp_r2.c \ + mips_macro.h rescaler.c rescaler_mips32.c \ + rescaler_mips_dsp_r2.c upsampling.c upsampling_mips_dsp_r2.c \ + yuv.c yuv.h yuv_mips32.c yuv_mips_dsp_r2.c +ENC_SOURCES = cost.c cost_mips32.c cost_mips_dsp_r2.c enc.c \ + enc_mips32.c enc_mips_dsp_r2.c lossless_enc.c \ + lossless_enc_mips32.c lossless_enc_mips_dsp_r2.c ssim.c +libwebpdsp_avx2_la_SOURCES = enc_avx2.c +libwebpdsp_avx2_la_CPPFLAGS = $(libwebpdsp_la_CPPFLAGS) +libwebpdsp_avx2_la_CFLAGS = $(AM_CFLAGS) $(AVX2_FLAGS) +libwebpdspdecode_sse41_la_SOURCES = alpha_processing_sse41.c \ + dec_sse41.c upsampling_sse41.c yuv_sse41.c +libwebpdspdecode_sse41_la_CPPFLAGS = $(libwebpdsp_la_CPPFLAGS) +libwebpdspdecode_sse41_la_CFLAGS = $(AM_CFLAGS) $(SSE41_FLAGS) +libwebpdspdecode_sse2_la_SOURCES = alpha_processing_sse2.c dec_sse2.c \ + filters_sse2.c lossless_sse2.c rescaler_sse2.c \ + upsampling_sse2.c yuv_sse2.c +libwebpdspdecode_sse2_la_CPPFLAGS = $(libwebpdsp_sse2_la_CPPFLAGS) +libwebpdspdecode_sse2_la_CFLAGS = $(libwebpdsp_sse2_la_CFLAGS) +libwebpdspdecode_neon_la_SOURCES = alpha_processing_neon.c dec_neon.c \ + filters_neon.c lossless_neon.c neon.h rescaler_neon.c \ + upsampling_neon.c yuv_neon.c +libwebpdspdecode_neon_la_CPPFLAGS = $(libwebpdsp_neon_la_CPPFLAGS) +libwebpdspdecode_neon_la_CFLAGS = $(libwebpdsp_neon_la_CFLAGS) +libwebpdspdecode_msa_la_SOURCES = dec_msa.c filters_msa.c \ + lossless_msa.c msa_macro.h rescaler_msa.c upsampling_msa.c +libwebpdspdecode_msa_la_CPPFLAGS = $(libwebpdsp_msa_la_CPPFLAGS) +libwebpdspdecode_msa_la_CFLAGS = $(libwebpdsp_msa_la_CFLAGS) +libwebpdsp_sse2_la_SOURCES = cost_sse2.c enc_sse2.c \ + lossless_enc_sse2.c ssim_sse2.c +libwebpdsp_sse2_la_CPPFLAGS = $(libwebpdsp_la_CPPFLAGS) +libwebpdsp_sse2_la_CFLAGS = $(AM_CFLAGS) $(SSE2_FLAGS) +libwebpdsp_sse2_la_LIBADD = libwebpdspdecode_sse2.la +libwebpdsp_sse41_la_SOURCES = enc_sse41.c lossless_enc_sse41.c +libwebpdsp_sse41_la_CPPFLAGS = $(libwebpdsp_la_CPPFLAGS) +libwebpdsp_sse41_la_CFLAGS = $(AM_CFLAGS) $(SSE41_FLAGS) +libwebpdsp_sse41_la_LIBADD = libwebpdspdecode_sse41.la +libwebpdsp_neon_la_SOURCES = enc_neon.c lossless_enc_neon.c +libwebpdsp_neon_la_CPPFLAGS = $(libwebpdsp_la_CPPFLAGS) +libwebpdsp_neon_la_CFLAGS = $(AM_CFLAGS) $(NEON_FLAGS) +libwebpdsp_neon_la_LIBADD = libwebpdspdecode_neon.la +libwebpdsp_msa_la_SOURCES = enc_msa.c lossless_enc_msa.c +libwebpdsp_msa_la_CPPFLAGS = $(libwebpdsp_la_CPPFLAGS) +libwebpdsp_msa_la_CFLAGS = $(AM_CFLAGS) +libwebpdsp_msa_la_LIBADD = libwebpdspdecode_msa.la +libwebpdsp_la_SOURCES = $(COMMON_SOURCES) $(ENC_SOURCES) +noinst_HEADERS = ../dec/vp8_dec.h ../webp/decode.h +libwebpdsp_la_CPPFLAGS = $(AM_CPPFLAGS) $(USE_SWAP_16BIT_CSP) +libwebpdsp_la_LDFLAGS = -lm +libwebpdsp_la_LIBADD = libwebpdsp_avx2.la libwebpdsp_sse2.la \ + libwebpdsp_sse41.la libwebpdsp_neon.la libwebpdsp_msa.la +@BUILD_LIBWEBPDECODER_TRUE@libwebpdspdecode_la_SOURCES = $(COMMON_SOURCES) +@BUILD_LIBWEBPDECODER_TRUE@libwebpdspdecode_la_CPPFLAGS = $(libwebpdsp_la_CPPFLAGS) +@BUILD_LIBWEBPDECODER_TRUE@libwebpdspdecode_la_LDFLAGS = $(libwebpdsp_la_LDFLAGS) +@BUILD_LIBWEBPDECODER_TRUE@libwebpdspdecode_la_LIBADD = \ +@BUILD_LIBWEBPDECODER_TRUE@ libwebpdspdecode_sse2.la \ +@BUILD_LIBWEBPDECODER_TRUE@ libwebpdspdecode_sse41.la \ +@BUILD_LIBWEBPDECODER_TRUE@ libwebpdspdecode_neon.la \ +@BUILD_LIBWEBPDECODER_TRUE@ libwebpdspdecode_msa.la +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/dsp/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/dsp/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libwebpdsp.la: $(libwebpdsp_la_OBJECTS) $(libwebpdsp_la_DEPENDENCIES) $(EXTRA_libwebpdsp_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpdsp_la_LINK) $(libwebpdsp_la_OBJECTS) $(libwebpdsp_la_LIBADD) $(LIBS) + +libwebpdsp_avx2.la: $(libwebpdsp_avx2_la_OBJECTS) $(libwebpdsp_avx2_la_DEPENDENCIES) $(EXTRA_libwebpdsp_avx2_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpdsp_avx2_la_LINK) $(libwebpdsp_avx2_la_OBJECTS) $(libwebpdsp_avx2_la_LIBADD) $(LIBS) + +libwebpdsp_msa.la: $(libwebpdsp_msa_la_OBJECTS) $(libwebpdsp_msa_la_DEPENDENCIES) $(EXTRA_libwebpdsp_msa_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpdsp_msa_la_LINK) $(libwebpdsp_msa_la_OBJECTS) $(libwebpdsp_msa_la_LIBADD) $(LIBS) + +libwebpdsp_neon.la: $(libwebpdsp_neon_la_OBJECTS) $(libwebpdsp_neon_la_DEPENDENCIES) $(EXTRA_libwebpdsp_neon_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpdsp_neon_la_LINK) $(libwebpdsp_neon_la_OBJECTS) $(libwebpdsp_neon_la_LIBADD) $(LIBS) + +libwebpdsp_sse2.la: $(libwebpdsp_sse2_la_OBJECTS) $(libwebpdsp_sse2_la_DEPENDENCIES) $(EXTRA_libwebpdsp_sse2_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpdsp_sse2_la_LINK) $(libwebpdsp_sse2_la_OBJECTS) $(libwebpdsp_sse2_la_LIBADD) $(LIBS) + +libwebpdsp_sse41.la: $(libwebpdsp_sse41_la_OBJECTS) $(libwebpdsp_sse41_la_DEPENDENCIES) $(EXTRA_libwebpdsp_sse41_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpdsp_sse41_la_LINK) $(libwebpdsp_sse41_la_OBJECTS) $(libwebpdsp_sse41_la_LIBADD) $(LIBS) + +libwebpdspdecode.la: $(libwebpdspdecode_la_OBJECTS) $(libwebpdspdecode_la_DEPENDENCIES) $(EXTRA_libwebpdspdecode_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpdspdecode_la_LINK) $(am_libwebpdspdecode_la_rpath) $(libwebpdspdecode_la_OBJECTS) $(libwebpdspdecode_la_LIBADD) $(LIBS) + +libwebpdspdecode_msa.la: $(libwebpdspdecode_msa_la_OBJECTS) $(libwebpdspdecode_msa_la_DEPENDENCIES) $(EXTRA_libwebpdspdecode_msa_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpdspdecode_msa_la_LINK) $(libwebpdspdecode_msa_la_OBJECTS) $(libwebpdspdecode_msa_la_LIBADD) $(LIBS) + +libwebpdspdecode_neon.la: $(libwebpdspdecode_neon_la_OBJECTS) $(libwebpdspdecode_neon_la_DEPENDENCIES) $(EXTRA_libwebpdspdecode_neon_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpdspdecode_neon_la_LINK) $(libwebpdspdecode_neon_la_OBJECTS) $(libwebpdspdecode_neon_la_LIBADD) $(LIBS) + +libwebpdspdecode_sse2.la: $(libwebpdspdecode_sse2_la_OBJECTS) $(libwebpdspdecode_sse2_la_DEPENDENCIES) $(EXTRA_libwebpdspdecode_sse2_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpdspdecode_sse2_la_LINK) $(libwebpdspdecode_sse2_la_OBJECTS) $(libwebpdspdecode_sse2_la_LIBADD) $(LIBS) + +libwebpdspdecode_sse41.la: $(libwebpdspdecode_sse41_la_OBJECTS) $(libwebpdspdecode_sse41_la_DEPENDENCIES) $(EXTRA_libwebpdspdecode_sse41_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpdspdecode_sse41_la_LINK) $(libwebpdspdecode_sse41_la_OBJECTS) $(libwebpdspdecode_sse41_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_avx2_la-enc_avx2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-alpha_processing.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-alpha_processing_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-cost.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-cost_mips32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-cost_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-cpu.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-dec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-dec_clip_tables.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-dec_mips32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-dec_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-enc_mips32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-enc_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-filters.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-filters_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-lossless.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-lossless_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-lossless_enc_mips32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-lossless_enc_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-lossless_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-rescaler.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-rescaler_mips32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-rescaler_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-ssim.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-upsampling.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-upsampling_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-yuv.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-yuv_mips32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_la-yuv_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_msa_la-enc_msa.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_msa_la-lossless_enc_msa.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_neon_la-enc_neon.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_neon_la-lossless_enc_neon.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_sse2_la-cost_sse2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_sse2_la-enc_sse2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_sse2_la-lossless_enc_sse2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_sse2_la-ssim_sse2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_sse41_la-enc_sse41.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdsp_sse41_la-lossless_enc_sse41.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-alpha_processing.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-alpha_processing_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-cpu.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-dec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-dec_clip_tables.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-dec_mips32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-dec_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-filters.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-filters_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-lossless.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-lossless_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-rescaler.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-rescaler_mips32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-rescaler_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-upsampling.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-upsampling_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-yuv.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-yuv_mips32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_la-yuv_mips_dsp_r2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_msa_la-dec_msa.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_msa_la-filters_msa.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_msa_la-lossless_msa.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_msa_la-rescaler_msa.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_msa_la-upsampling_msa.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_neon_la-alpha_processing_neon.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_neon_la-dec_neon.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_neon_la-filters_neon.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_neon_la-lossless_neon.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_neon_la-rescaler_neon.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_neon_la-upsampling_neon.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_neon_la-yuv_neon.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_sse2_la-alpha_processing_sse2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_sse2_la-dec_sse2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_sse2_la-filters_sse2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_sse2_la-lossless_sse2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_sse2_la-rescaler_sse2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_sse2_la-upsampling_sse2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_sse2_la-yuv_sse2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_sse41_la-alpha_processing_sse41.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_sse41_la-dec_sse41.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_sse41_la-upsampling_sse41.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpdspdecode_sse41_la-yuv_sse41.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libwebpdsp_la-alpha_processing.lo: alpha_processing.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-alpha_processing.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-alpha_processing.Tpo -c -o libwebpdsp_la-alpha_processing.lo `test -f 'alpha_processing.c' || echo '$(srcdir)/'`alpha_processing.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-alpha_processing.Tpo $(DEPDIR)/libwebpdsp_la-alpha_processing.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alpha_processing.c' object='libwebpdsp_la-alpha_processing.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-alpha_processing.lo `test -f 'alpha_processing.c' || echo '$(srcdir)/'`alpha_processing.c + +libwebpdsp_la-alpha_processing_mips_dsp_r2.lo: alpha_processing_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-alpha_processing_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-alpha_processing_mips_dsp_r2.Tpo -c -o libwebpdsp_la-alpha_processing_mips_dsp_r2.lo `test -f 'alpha_processing_mips_dsp_r2.c' || echo '$(srcdir)/'`alpha_processing_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-alpha_processing_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdsp_la-alpha_processing_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alpha_processing_mips_dsp_r2.c' object='libwebpdsp_la-alpha_processing_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-alpha_processing_mips_dsp_r2.lo `test -f 'alpha_processing_mips_dsp_r2.c' || echo '$(srcdir)/'`alpha_processing_mips_dsp_r2.c + +libwebpdsp_la-cpu.lo: cpu.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-cpu.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-cpu.Tpo -c -o libwebpdsp_la-cpu.lo `test -f 'cpu.c' || echo '$(srcdir)/'`cpu.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-cpu.Tpo $(DEPDIR)/libwebpdsp_la-cpu.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cpu.c' object='libwebpdsp_la-cpu.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-cpu.lo `test -f 'cpu.c' || echo '$(srcdir)/'`cpu.c + +libwebpdsp_la-dec.lo: dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-dec.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-dec.Tpo -c -o libwebpdsp_la-dec.lo `test -f 'dec.c' || echo '$(srcdir)/'`dec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-dec.Tpo $(DEPDIR)/libwebpdsp_la-dec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dec.c' object='libwebpdsp_la-dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-dec.lo `test -f 'dec.c' || echo '$(srcdir)/'`dec.c + +libwebpdsp_la-dec_clip_tables.lo: dec_clip_tables.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-dec_clip_tables.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-dec_clip_tables.Tpo -c -o libwebpdsp_la-dec_clip_tables.lo `test -f 'dec_clip_tables.c' || echo '$(srcdir)/'`dec_clip_tables.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-dec_clip_tables.Tpo $(DEPDIR)/libwebpdsp_la-dec_clip_tables.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dec_clip_tables.c' object='libwebpdsp_la-dec_clip_tables.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-dec_clip_tables.lo `test -f 'dec_clip_tables.c' || echo '$(srcdir)/'`dec_clip_tables.c + +libwebpdsp_la-dec_mips32.lo: dec_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-dec_mips32.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-dec_mips32.Tpo -c -o libwebpdsp_la-dec_mips32.lo `test -f 'dec_mips32.c' || echo '$(srcdir)/'`dec_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-dec_mips32.Tpo $(DEPDIR)/libwebpdsp_la-dec_mips32.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dec_mips32.c' object='libwebpdsp_la-dec_mips32.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-dec_mips32.lo `test -f 'dec_mips32.c' || echo '$(srcdir)/'`dec_mips32.c + +libwebpdsp_la-dec_mips_dsp_r2.lo: dec_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-dec_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-dec_mips_dsp_r2.Tpo -c -o libwebpdsp_la-dec_mips_dsp_r2.lo `test -f 'dec_mips_dsp_r2.c' || echo '$(srcdir)/'`dec_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-dec_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdsp_la-dec_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dec_mips_dsp_r2.c' object='libwebpdsp_la-dec_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-dec_mips_dsp_r2.lo `test -f 'dec_mips_dsp_r2.c' || echo '$(srcdir)/'`dec_mips_dsp_r2.c + +libwebpdsp_la-filters.lo: filters.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-filters.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-filters.Tpo -c -o libwebpdsp_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-filters.Tpo $(DEPDIR)/libwebpdsp_la-filters.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filters.c' object='libwebpdsp_la-filters.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c + +libwebpdsp_la-filters_mips_dsp_r2.lo: filters_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-filters_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-filters_mips_dsp_r2.Tpo -c -o libwebpdsp_la-filters_mips_dsp_r2.lo `test -f 'filters_mips_dsp_r2.c' || echo '$(srcdir)/'`filters_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-filters_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdsp_la-filters_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filters_mips_dsp_r2.c' object='libwebpdsp_la-filters_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-filters_mips_dsp_r2.lo `test -f 'filters_mips_dsp_r2.c' || echo '$(srcdir)/'`filters_mips_dsp_r2.c + +libwebpdsp_la-lossless.lo: lossless.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-lossless.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-lossless.Tpo -c -o libwebpdsp_la-lossless.lo `test -f 'lossless.c' || echo '$(srcdir)/'`lossless.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-lossless.Tpo $(DEPDIR)/libwebpdsp_la-lossless.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lossless.c' object='libwebpdsp_la-lossless.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-lossless.lo `test -f 'lossless.c' || echo '$(srcdir)/'`lossless.c + +libwebpdsp_la-lossless_mips_dsp_r2.lo: lossless_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-lossless_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-lossless_mips_dsp_r2.Tpo -c -o libwebpdsp_la-lossless_mips_dsp_r2.lo `test -f 'lossless_mips_dsp_r2.c' || echo '$(srcdir)/'`lossless_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-lossless_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdsp_la-lossless_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lossless_mips_dsp_r2.c' object='libwebpdsp_la-lossless_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-lossless_mips_dsp_r2.lo `test -f 'lossless_mips_dsp_r2.c' || echo '$(srcdir)/'`lossless_mips_dsp_r2.c + +libwebpdsp_la-rescaler.lo: rescaler.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-rescaler.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-rescaler.Tpo -c -o libwebpdsp_la-rescaler.lo `test -f 'rescaler.c' || echo '$(srcdir)/'`rescaler.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-rescaler.Tpo $(DEPDIR)/libwebpdsp_la-rescaler.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rescaler.c' object='libwebpdsp_la-rescaler.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-rescaler.lo `test -f 'rescaler.c' || echo '$(srcdir)/'`rescaler.c + +libwebpdsp_la-rescaler_mips32.lo: rescaler_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-rescaler_mips32.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-rescaler_mips32.Tpo -c -o libwebpdsp_la-rescaler_mips32.lo `test -f 'rescaler_mips32.c' || echo '$(srcdir)/'`rescaler_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-rescaler_mips32.Tpo $(DEPDIR)/libwebpdsp_la-rescaler_mips32.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rescaler_mips32.c' object='libwebpdsp_la-rescaler_mips32.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-rescaler_mips32.lo `test -f 'rescaler_mips32.c' || echo '$(srcdir)/'`rescaler_mips32.c + +libwebpdsp_la-rescaler_mips_dsp_r2.lo: rescaler_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-rescaler_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-rescaler_mips_dsp_r2.Tpo -c -o libwebpdsp_la-rescaler_mips_dsp_r2.lo `test -f 'rescaler_mips_dsp_r2.c' || echo '$(srcdir)/'`rescaler_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-rescaler_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdsp_la-rescaler_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rescaler_mips_dsp_r2.c' object='libwebpdsp_la-rescaler_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-rescaler_mips_dsp_r2.lo `test -f 'rescaler_mips_dsp_r2.c' || echo '$(srcdir)/'`rescaler_mips_dsp_r2.c + +libwebpdsp_la-upsampling.lo: upsampling.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-upsampling.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-upsampling.Tpo -c -o libwebpdsp_la-upsampling.lo `test -f 'upsampling.c' || echo '$(srcdir)/'`upsampling.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-upsampling.Tpo $(DEPDIR)/libwebpdsp_la-upsampling.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upsampling.c' object='libwebpdsp_la-upsampling.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-upsampling.lo `test -f 'upsampling.c' || echo '$(srcdir)/'`upsampling.c + +libwebpdsp_la-upsampling_mips_dsp_r2.lo: upsampling_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-upsampling_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-upsampling_mips_dsp_r2.Tpo -c -o libwebpdsp_la-upsampling_mips_dsp_r2.lo `test -f 'upsampling_mips_dsp_r2.c' || echo '$(srcdir)/'`upsampling_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-upsampling_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdsp_la-upsampling_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upsampling_mips_dsp_r2.c' object='libwebpdsp_la-upsampling_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-upsampling_mips_dsp_r2.lo `test -f 'upsampling_mips_dsp_r2.c' || echo '$(srcdir)/'`upsampling_mips_dsp_r2.c + +libwebpdsp_la-yuv.lo: yuv.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-yuv.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-yuv.Tpo -c -o libwebpdsp_la-yuv.lo `test -f 'yuv.c' || echo '$(srcdir)/'`yuv.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-yuv.Tpo $(DEPDIR)/libwebpdsp_la-yuv.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='yuv.c' object='libwebpdsp_la-yuv.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-yuv.lo `test -f 'yuv.c' || echo '$(srcdir)/'`yuv.c + +libwebpdsp_la-yuv_mips32.lo: yuv_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-yuv_mips32.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-yuv_mips32.Tpo -c -o libwebpdsp_la-yuv_mips32.lo `test -f 'yuv_mips32.c' || echo '$(srcdir)/'`yuv_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-yuv_mips32.Tpo $(DEPDIR)/libwebpdsp_la-yuv_mips32.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='yuv_mips32.c' object='libwebpdsp_la-yuv_mips32.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-yuv_mips32.lo `test -f 'yuv_mips32.c' || echo '$(srcdir)/'`yuv_mips32.c + +libwebpdsp_la-yuv_mips_dsp_r2.lo: yuv_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-yuv_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-yuv_mips_dsp_r2.Tpo -c -o libwebpdsp_la-yuv_mips_dsp_r2.lo `test -f 'yuv_mips_dsp_r2.c' || echo '$(srcdir)/'`yuv_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-yuv_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdsp_la-yuv_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='yuv_mips_dsp_r2.c' object='libwebpdsp_la-yuv_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-yuv_mips_dsp_r2.lo `test -f 'yuv_mips_dsp_r2.c' || echo '$(srcdir)/'`yuv_mips_dsp_r2.c + +libwebpdsp_la-cost.lo: cost.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-cost.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-cost.Tpo -c -o libwebpdsp_la-cost.lo `test -f 'cost.c' || echo '$(srcdir)/'`cost.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-cost.Tpo $(DEPDIR)/libwebpdsp_la-cost.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cost.c' object='libwebpdsp_la-cost.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-cost.lo `test -f 'cost.c' || echo '$(srcdir)/'`cost.c + +libwebpdsp_la-cost_mips32.lo: cost_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-cost_mips32.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-cost_mips32.Tpo -c -o libwebpdsp_la-cost_mips32.lo `test -f 'cost_mips32.c' || echo '$(srcdir)/'`cost_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-cost_mips32.Tpo $(DEPDIR)/libwebpdsp_la-cost_mips32.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cost_mips32.c' object='libwebpdsp_la-cost_mips32.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-cost_mips32.lo `test -f 'cost_mips32.c' || echo '$(srcdir)/'`cost_mips32.c + +libwebpdsp_la-cost_mips_dsp_r2.lo: cost_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-cost_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-cost_mips_dsp_r2.Tpo -c -o libwebpdsp_la-cost_mips_dsp_r2.lo `test -f 'cost_mips_dsp_r2.c' || echo '$(srcdir)/'`cost_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-cost_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdsp_la-cost_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cost_mips_dsp_r2.c' object='libwebpdsp_la-cost_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-cost_mips_dsp_r2.lo `test -f 'cost_mips_dsp_r2.c' || echo '$(srcdir)/'`cost_mips_dsp_r2.c + +libwebpdsp_la-enc.lo: enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-enc.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-enc.Tpo -c -o libwebpdsp_la-enc.lo `test -f 'enc.c' || echo '$(srcdir)/'`enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-enc.Tpo $(DEPDIR)/libwebpdsp_la-enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='enc.c' object='libwebpdsp_la-enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-enc.lo `test -f 'enc.c' || echo '$(srcdir)/'`enc.c + +libwebpdsp_la-enc_mips32.lo: enc_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-enc_mips32.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-enc_mips32.Tpo -c -o libwebpdsp_la-enc_mips32.lo `test -f 'enc_mips32.c' || echo '$(srcdir)/'`enc_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-enc_mips32.Tpo $(DEPDIR)/libwebpdsp_la-enc_mips32.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='enc_mips32.c' object='libwebpdsp_la-enc_mips32.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-enc_mips32.lo `test -f 'enc_mips32.c' || echo '$(srcdir)/'`enc_mips32.c + +libwebpdsp_la-enc_mips_dsp_r2.lo: enc_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-enc_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-enc_mips_dsp_r2.Tpo -c -o libwebpdsp_la-enc_mips_dsp_r2.lo `test -f 'enc_mips_dsp_r2.c' || echo '$(srcdir)/'`enc_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-enc_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdsp_la-enc_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='enc_mips_dsp_r2.c' object='libwebpdsp_la-enc_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-enc_mips_dsp_r2.lo `test -f 'enc_mips_dsp_r2.c' || echo '$(srcdir)/'`enc_mips_dsp_r2.c + +libwebpdsp_la-lossless_enc.lo: lossless_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-lossless_enc.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-lossless_enc.Tpo -c -o libwebpdsp_la-lossless_enc.lo `test -f 'lossless_enc.c' || echo '$(srcdir)/'`lossless_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-lossless_enc.Tpo $(DEPDIR)/libwebpdsp_la-lossless_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lossless_enc.c' object='libwebpdsp_la-lossless_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-lossless_enc.lo `test -f 'lossless_enc.c' || echo '$(srcdir)/'`lossless_enc.c + +libwebpdsp_la-lossless_enc_mips32.lo: lossless_enc_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-lossless_enc_mips32.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-lossless_enc_mips32.Tpo -c -o libwebpdsp_la-lossless_enc_mips32.lo `test -f 'lossless_enc_mips32.c' || echo '$(srcdir)/'`lossless_enc_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-lossless_enc_mips32.Tpo $(DEPDIR)/libwebpdsp_la-lossless_enc_mips32.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lossless_enc_mips32.c' object='libwebpdsp_la-lossless_enc_mips32.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-lossless_enc_mips32.lo `test -f 'lossless_enc_mips32.c' || echo '$(srcdir)/'`lossless_enc_mips32.c + +libwebpdsp_la-lossless_enc_mips_dsp_r2.lo: lossless_enc_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-lossless_enc_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-lossless_enc_mips_dsp_r2.Tpo -c -o libwebpdsp_la-lossless_enc_mips_dsp_r2.lo `test -f 'lossless_enc_mips_dsp_r2.c' || echo '$(srcdir)/'`lossless_enc_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-lossless_enc_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdsp_la-lossless_enc_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lossless_enc_mips_dsp_r2.c' object='libwebpdsp_la-lossless_enc_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-lossless_enc_mips_dsp_r2.lo `test -f 'lossless_enc_mips_dsp_r2.c' || echo '$(srcdir)/'`lossless_enc_mips_dsp_r2.c + +libwebpdsp_la-ssim.lo: ssim.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdsp_la-ssim.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_la-ssim.Tpo -c -o libwebpdsp_la-ssim.lo `test -f 'ssim.c' || echo '$(srcdir)/'`ssim.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_la-ssim.Tpo $(DEPDIR)/libwebpdsp_la-ssim.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ssim.c' object='libwebpdsp_la-ssim.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdsp_la-ssim.lo `test -f 'ssim.c' || echo '$(srcdir)/'`ssim.c + +libwebpdsp_avx2_la-enc_avx2.lo: enc_avx2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_avx2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_avx2_la_CFLAGS) $(CFLAGS) -MT libwebpdsp_avx2_la-enc_avx2.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_avx2_la-enc_avx2.Tpo -c -o libwebpdsp_avx2_la-enc_avx2.lo `test -f 'enc_avx2.c' || echo '$(srcdir)/'`enc_avx2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_avx2_la-enc_avx2.Tpo $(DEPDIR)/libwebpdsp_avx2_la-enc_avx2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='enc_avx2.c' object='libwebpdsp_avx2_la-enc_avx2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_avx2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_avx2_la_CFLAGS) $(CFLAGS) -c -o libwebpdsp_avx2_la-enc_avx2.lo `test -f 'enc_avx2.c' || echo '$(srcdir)/'`enc_avx2.c + +libwebpdsp_msa_la-enc_msa.lo: enc_msa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_msa_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_msa_la_CFLAGS) $(CFLAGS) -MT libwebpdsp_msa_la-enc_msa.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_msa_la-enc_msa.Tpo -c -o libwebpdsp_msa_la-enc_msa.lo `test -f 'enc_msa.c' || echo '$(srcdir)/'`enc_msa.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_msa_la-enc_msa.Tpo $(DEPDIR)/libwebpdsp_msa_la-enc_msa.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='enc_msa.c' object='libwebpdsp_msa_la-enc_msa.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_msa_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_msa_la_CFLAGS) $(CFLAGS) -c -o libwebpdsp_msa_la-enc_msa.lo `test -f 'enc_msa.c' || echo '$(srcdir)/'`enc_msa.c + +libwebpdsp_msa_la-lossless_enc_msa.lo: lossless_enc_msa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_msa_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_msa_la_CFLAGS) $(CFLAGS) -MT libwebpdsp_msa_la-lossless_enc_msa.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_msa_la-lossless_enc_msa.Tpo -c -o libwebpdsp_msa_la-lossless_enc_msa.lo `test -f 'lossless_enc_msa.c' || echo '$(srcdir)/'`lossless_enc_msa.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_msa_la-lossless_enc_msa.Tpo $(DEPDIR)/libwebpdsp_msa_la-lossless_enc_msa.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lossless_enc_msa.c' object='libwebpdsp_msa_la-lossless_enc_msa.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_msa_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_msa_la_CFLAGS) $(CFLAGS) -c -o libwebpdsp_msa_la-lossless_enc_msa.lo `test -f 'lossless_enc_msa.c' || echo '$(srcdir)/'`lossless_enc_msa.c + +libwebpdsp_neon_la-enc_neon.lo: enc_neon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_neon_la_CFLAGS) $(CFLAGS) -MT libwebpdsp_neon_la-enc_neon.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_neon_la-enc_neon.Tpo -c -o libwebpdsp_neon_la-enc_neon.lo `test -f 'enc_neon.c' || echo '$(srcdir)/'`enc_neon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_neon_la-enc_neon.Tpo $(DEPDIR)/libwebpdsp_neon_la-enc_neon.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='enc_neon.c' object='libwebpdsp_neon_la-enc_neon.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_neon_la_CFLAGS) $(CFLAGS) -c -o libwebpdsp_neon_la-enc_neon.lo `test -f 'enc_neon.c' || echo '$(srcdir)/'`enc_neon.c + +libwebpdsp_neon_la-lossless_enc_neon.lo: lossless_enc_neon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_neon_la_CFLAGS) $(CFLAGS) -MT libwebpdsp_neon_la-lossless_enc_neon.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_neon_la-lossless_enc_neon.Tpo -c -o libwebpdsp_neon_la-lossless_enc_neon.lo `test -f 'lossless_enc_neon.c' || echo '$(srcdir)/'`lossless_enc_neon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_neon_la-lossless_enc_neon.Tpo $(DEPDIR)/libwebpdsp_neon_la-lossless_enc_neon.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lossless_enc_neon.c' object='libwebpdsp_neon_la-lossless_enc_neon.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_neon_la_CFLAGS) $(CFLAGS) -c -o libwebpdsp_neon_la-lossless_enc_neon.lo `test -f 'lossless_enc_neon.c' || echo '$(srcdir)/'`lossless_enc_neon.c + +libwebpdsp_sse2_la-cost_sse2.lo: cost_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_sse2_la_CFLAGS) $(CFLAGS) -MT libwebpdsp_sse2_la-cost_sse2.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_sse2_la-cost_sse2.Tpo -c -o libwebpdsp_sse2_la-cost_sse2.lo `test -f 'cost_sse2.c' || echo '$(srcdir)/'`cost_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_sse2_la-cost_sse2.Tpo $(DEPDIR)/libwebpdsp_sse2_la-cost_sse2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cost_sse2.c' object='libwebpdsp_sse2_la-cost_sse2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_sse2_la_CFLAGS) $(CFLAGS) -c -o libwebpdsp_sse2_la-cost_sse2.lo `test -f 'cost_sse2.c' || echo '$(srcdir)/'`cost_sse2.c + +libwebpdsp_sse2_la-enc_sse2.lo: enc_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_sse2_la_CFLAGS) $(CFLAGS) -MT libwebpdsp_sse2_la-enc_sse2.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_sse2_la-enc_sse2.Tpo -c -o libwebpdsp_sse2_la-enc_sse2.lo `test -f 'enc_sse2.c' || echo '$(srcdir)/'`enc_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_sse2_la-enc_sse2.Tpo $(DEPDIR)/libwebpdsp_sse2_la-enc_sse2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='enc_sse2.c' object='libwebpdsp_sse2_la-enc_sse2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_sse2_la_CFLAGS) $(CFLAGS) -c -o libwebpdsp_sse2_la-enc_sse2.lo `test -f 'enc_sse2.c' || echo '$(srcdir)/'`enc_sse2.c + +libwebpdsp_sse2_la-lossless_enc_sse2.lo: lossless_enc_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_sse2_la_CFLAGS) $(CFLAGS) -MT libwebpdsp_sse2_la-lossless_enc_sse2.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_sse2_la-lossless_enc_sse2.Tpo -c -o libwebpdsp_sse2_la-lossless_enc_sse2.lo `test -f 'lossless_enc_sse2.c' || echo '$(srcdir)/'`lossless_enc_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_sse2_la-lossless_enc_sse2.Tpo $(DEPDIR)/libwebpdsp_sse2_la-lossless_enc_sse2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lossless_enc_sse2.c' object='libwebpdsp_sse2_la-lossless_enc_sse2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_sse2_la_CFLAGS) $(CFLAGS) -c -o libwebpdsp_sse2_la-lossless_enc_sse2.lo `test -f 'lossless_enc_sse2.c' || echo '$(srcdir)/'`lossless_enc_sse2.c + +libwebpdsp_sse2_la-ssim_sse2.lo: ssim_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_sse2_la_CFLAGS) $(CFLAGS) -MT libwebpdsp_sse2_la-ssim_sse2.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_sse2_la-ssim_sse2.Tpo -c -o libwebpdsp_sse2_la-ssim_sse2.lo `test -f 'ssim_sse2.c' || echo '$(srcdir)/'`ssim_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_sse2_la-ssim_sse2.Tpo $(DEPDIR)/libwebpdsp_sse2_la-ssim_sse2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ssim_sse2.c' object='libwebpdsp_sse2_la-ssim_sse2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_sse2_la_CFLAGS) $(CFLAGS) -c -o libwebpdsp_sse2_la-ssim_sse2.lo `test -f 'ssim_sse2.c' || echo '$(srcdir)/'`ssim_sse2.c + +libwebpdsp_sse41_la-enc_sse41.lo: enc_sse41.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_sse41_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_sse41_la_CFLAGS) $(CFLAGS) -MT libwebpdsp_sse41_la-enc_sse41.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_sse41_la-enc_sse41.Tpo -c -o libwebpdsp_sse41_la-enc_sse41.lo `test -f 'enc_sse41.c' || echo '$(srcdir)/'`enc_sse41.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_sse41_la-enc_sse41.Tpo $(DEPDIR)/libwebpdsp_sse41_la-enc_sse41.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='enc_sse41.c' object='libwebpdsp_sse41_la-enc_sse41.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_sse41_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_sse41_la_CFLAGS) $(CFLAGS) -c -o libwebpdsp_sse41_la-enc_sse41.lo `test -f 'enc_sse41.c' || echo '$(srcdir)/'`enc_sse41.c + +libwebpdsp_sse41_la-lossless_enc_sse41.lo: lossless_enc_sse41.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_sse41_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_sse41_la_CFLAGS) $(CFLAGS) -MT libwebpdsp_sse41_la-lossless_enc_sse41.lo -MD -MP -MF $(DEPDIR)/libwebpdsp_sse41_la-lossless_enc_sse41.Tpo -c -o libwebpdsp_sse41_la-lossless_enc_sse41.lo `test -f 'lossless_enc_sse41.c' || echo '$(srcdir)/'`lossless_enc_sse41.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdsp_sse41_la-lossless_enc_sse41.Tpo $(DEPDIR)/libwebpdsp_sse41_la-lossless_enc_sse41.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lossless_enc_sse41.c' object='libwebpdsp_sse41_la-lossless_enc_sse41.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdsp_sse41_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdsp_sse41_la_CFLAGS) $(CFLAGS) -c -o libwebpdsp_sse41_la-lossless_enc_sse41.lo `test -f 'lossless_enc_sse41.c' || echo '$(srcdir)/'`lossless_enc_sse41.c + +libwebpdspdecode_la-alpha_processing.lo: alpha_processing.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-alpha_processing.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-alpha_processing.Tpo -c -o libwebpdspdecode_la-alpha_processing.lo `test -f 'alpha_processing.c' || echo '$(srcdir)/'`alpha_processing.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-alpha_processing.Tpo $(DEPDIR)/libwebpdspdecode_la-alpha_processing.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alpha_processing.c' object='libwebpdspdecode_la-alpha_processing.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-alpha_processing.lo `test -f 'alpha_processing.c' || echo '$(srcdir)/'`alpha_processing.c + +libwebpdspdecode_la-alpha_processing_mips_dsp_r2.lo: alpha_processing_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-alpha_processing_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-alpha_processing_mips_dsp_r2.Tpo -c -o libwebpdspdecode_la-alpha_processing_mips_dsp_r2.lo `test -f 'alpha_processing_mips_dsp_r2.c' || echo '$(srcdir)/'`alpha_processing_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-alpha_processing_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdspdecode_la-alpha_processing_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alpha_processing_mips_dsp_r2.c' object='libwebpdspdecode_la-alpha_processing_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-alpha_processing_mips_dsp_r2.lo `test -f 'alpha_processing_mips_dsp_r2.c' || echo '$(srcdir)/'`alpha_processing_mips_dsp_r2.c + +libwebpdspdecode_la-cpu.lo: cpu.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-cpu.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-cpu.Tpo -c -o libwebpdspdecode_la-cpu.lo `test -f 'cpu.c' || echo '$(srcdir)/'`cpu.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-cpu.Tpo $(DEPDIR)/libwebpdspdecode_la-cpu.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cpu.c' object='libwebpdspdecode_la-cpu.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-cpu.lo `test -f 'cpu.c' || echo '$(srcdir)/'`cpu.c + +libwebpdspdecode_la-dec.lo: dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-dec.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-dec.Tpo -c -o libwebpdspdecode_la-dec.lo `test -f 'dec.c' || echo '$(srcdir)/'`dec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-dec.Tpo $(DEPDIR)/libwebpdspdecode_la-dec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dec.c' object='libwebpdspdecode_la-dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-dec.lo `test -f 'dec.c' || echo '$(srcdir)/'`dec.c + +libwebpdspdecode_la-dec_clip_tables.lo: dec_clip_tables.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-dec_clip_tables.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-dec_clip_tables.Tpo -c -o libwebpdspdecode_la-dec_clip_tables.lo `test -f 'dec_clip_tables.c' || echo '$(srcdir)/'`dec_clip_tables.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-dec_clip_tables.Tpo $(DEPDIR)/libwebpdspdecode_la-dec_clip_tables.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dec_clip_tables.c' object='libwebpdspdecode_la-dec_clip_tables.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-dec_clip_tables.lo `test -f 'dec_clip_tables.c' || echo '$(srcdir)/'`dec_clip_tables.c + +libwebpdspdecode_la-dec_mips32.lo: dec_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-dec_mips32.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-dec_mips32.Tpo -c -o libwebpdspdecode_la-dec_mips32.lo `test -f 'dec_mips32.c' || echo '$(srcdir)/'`dec_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-dec_mips32.Tpo $(DEPDIR)/libwebpdspdecode_la-dec_mips32.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dec_mips32.c' object='libwebpdspdecode_la-dec_mips32.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-dec_mips32.lo `test -f 'dec_mips32.c' || echo '$(srcdir)/'`dec_mips32.c + +libwebpdspdecode_la-dec_mips_dsp_r2.lo: dec_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-dec_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-dec_mips_dsp_r2.Tpo -c -o libwebpdspdecode_la-dec_mips_dsp_r2.lo `test -f 'dec_mips_dsp_r2.c' || echo '$(srcdir)/'`dec_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-dec_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdspdecode_la-dec_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dec_mips_dsp_r2.c' object='libwebpdspdecode_la-dec_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-dec_mips_dsp_r2.lo `test -f 'dec_mips_dsp_r2.c' || echo '$(srcdir)/'`dec_mips_dsp_r2.c + +libwebpdspdecode_la-filters.lo: filters.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-filters.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-filters.Tpo -c -o libwebpdspdecode_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-filters.Tpo $(DEPDIR)/libwebpdspdecode_la-filters.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filters.c' object='libwebpdspdecode_la-filters.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c + +libwebpdspdecode_la-filters_mips_dsp_r2.lo: filters_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-filters_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-filters_mips_dsp_r2.Tpo -c -o libwebpdspdecode_la-filters_mips_dsp_r2.lo `test -f 'filters_mips_dsp_r2.c' || echo '$(srcdir)/'`filters_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-filters_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdspdecode_la-filters_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filters_mips_dsp_r2.c' object='libwebpdspdecode_la-filters_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-filters_mips_dsp_r2.lo `test -f 'filters_mips_dsp_r2.c' || echo '$(srcdir)/'`filters_mips_dsp_r2.c + +libwebpdspdecode_la-lossless.lo: lossless.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-lossless.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-lossless.Tpo -c -o libwebpdspdecode_la-lossless.lo `test -f 'lossless.c' || echo '$(srcdir)/'`lossless.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-lossless.Tpo $(DEPDIR)/libwebpdspdecode_la-lossless.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lossless.c' object='libwebpdspdecode_la-lossless.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-lossless.lo `test -f 'lossless.c' || echo '$(srcdir)/'`lossless.c + +libwebpdspdecode_la-lossless_mips_dsp_r2.lo: lossless_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-lossless_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-lossless_mips_dsp_r2.Tpo -c -o libwebpdspdecode_la-lossless_mips_dsp_r2.lo `test -f 'lossless_mips_dsp_r2.c' || echo '$(srcdir)/'`lossless_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-lossless_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdspdecode_la-lossless_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lossless_mips_dsp_r2.c' object='libwebpdspdecode_la-lossless_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-lossless_mips_dsp_r2.lo `test -f 'lossless_mips_dsp_r2.c' || echo '$(srcdir)/'`lossless_mips_dsp_r2.c + +libwebpdspdecode_la-rescaler.lo: rescaler.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-rescaler.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-rescaler.Tpo -c -o libwebpdspdecode_la-rescaler.lo `test -f 'rescaler.c' || echo '$(srcdir)/'`rescaler.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-rescaler.Tpo $(DEPDIR)/libwebpdspdecode_la-rescaler.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rescaler.c' object='libwebpdspdecode_la-rescaler.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-rescaler.lo `test -f 'rescaler.c' || echo '$(srcdir)/'`rescaler.c + +libwebpdspdecode_la-rescaler_mips32.lo: rescaler_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-rescaler_mips32.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-rescaler_mips32.Tpo -c -o libwebpdspdecode_la-rescaler_mips32.lo `test -f 'rescaler_mips32.c' || echo '$(srcdir)/'`rescaler_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-rescaler_mips32.Tpo $(DEPDIR)/libwebpdspdecode_la-rescaler_mips32.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rescaler_mips32.c' object='libwebpdspdecode_la-rescaler_mips32.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-rescaler_mips32.lo `test -f 'rescaler_mips32.c' || echo '$(srcdir)/'`rescaler_mips32.c + +libwebpdspdecode_la-rescaler_mips_dsp_r2.lo: rescaler_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-rescaler_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-rescaler_mips_dsp_r2.Tpo -c -o libwebpdspdecode_la-rescaler_mips_dsp_r2.lo `test -f 'rescaler_mips_dsp_r2.c' || echo '$(srcdir)/'`rescaler_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-rescaler_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdspdecode_la-rescaler_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rescaler_mips_dsp_r2.c' object='libwebpdspdecode_la-rescaler_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-rescaler_mips_dsp_r2.lo `test -f 'rescaler_mips_dsp_r2.c' || echo '$(srcdir)/'`rescaler_mips_dsp_r2.c + +libwebpdspdecode_la-upsampling.lo: upsampling.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-upsampling.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-upsampling.Tpo -c -o libwebpdspdecode_la-upsampling.lo `test -f 'upsampling.c' || echo '$(srcdir)/'`upsampling.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-upsampling.Tpo $(DEPDIR)/libwebpdspdecode_la-upsampling.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upsampling.c' object='libwebpdspdecode_la-upsampling.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-upsampling.lo `test -f 'upsampling.c' || echo '$(srcdir)/'`upsampling.c + +libwebpdspdecode_la-upsampling_mips_dsp_r2.lo: upsampling_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-upsampling_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-upsampling_mips_dsp_r2.Tpo -c -o libwebpdspdecode_la-upsampling_mips_dsp_r2.lo `test -f 'upsampling_mips_dsp_r2.c' || echo '$(srcdir)/'`upsampling_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-upsampling_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdspdecode_la-upsampling_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upsampling_mips_dsp_r2.c' object='libwebpdspdecode_la-upsampling_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-upsampling_mips_dsp_r2.lo `test -f 'upsampling_mips_dsp_r2.c' || echo '$(srcdir)/'`upsampling_mips_dsp_r2.c + +libwebpdspdecode_la-yuv.lo: yuv.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-yuv.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-yuv.Tpo -c -o libwebpdspdecode_la-yuv.lo `test -f 'yuv.c' || echo '$(srcdir)/'`yuv.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-yuv.Tpo $(DEPDIR)/libwebpdspdecode_la-yuv.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='yuv.c' object='libwebpdspdecode_la-yuv.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-yuv.lo `test -f 'yuv.c' || echo '$(srcdir)/'`yuv.c + +libwebpdspdecode_la-yuv_mips32.lo: yuv_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-yuv_mips32.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-yuv_mips32.Tpo -c -o libwebpdspdecode_la-yuv_mips32.lo `test -f 'yuv_mips32.c' || echo '$(srcdir)/'`yuv_mips32.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-yuv_mips32.Tpo $(DEPDIR)/libwebpdspdecode_la-yuv_mips32.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='yuv_mips32.c' object='libwebpdspdecode_la-yuv_mips32.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-yuv_mips32.lo `test -f 'yuv_mips32.c' || echo '$(srcdir)/'`yuv_mips32.c + +libwebpdspdecode_la-yuv_mips_dsp_r2.lo: yuv_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_la-yuv_mips_dsp_r2.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_la-yuv_mips_dsp_r2.Tpo -c -o libwebpdspdecode_la-yuv_mips_dsp_r2.lo `test -f 'yuv_mips_dsp_r2.c' || echo '$(srcdir)/'`yuv_mips_dsp_r2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_la-yuv_mips_dsp_r2.Tpo $(DEPDIR)/libwebpdspdecode_la-yuv_mips_dsp_r2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='yuv_mips_dsp_r2.c' object='libwebpdspdecode_la-yuv_mips_dsp_r2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_la-yuv_mips_dsp_r2.lo `test -f 'yuv_mips_dsp_r2.c' || echo '$(srcdir)/'`yuv_mips_dsp_r2.c + +libwebpdspdecode_msa_la-dec_msa.lo: dec_msa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_msa_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_msa_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_msa_la-dec_msa.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_msa_la-dec_msa.Tpo -c -o libwebpdspdecode_msa_la-dec_msa.lo `test -f 'dec_msa.c' || echo '$(srcdir)/'`dec_msa.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_msa_la-dec_msa.Tpo $(DEPDIR)/libwebpdspdecode_msa_la-dec_msa.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dec_msa.c' object='libwebpdspdecode_msa_la-dec_msa.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_msa_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_msa_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_msa_la-dec_msa.lo `test -f 'dec_msa.c' || echo '$(srcdir)/'`dec_msa.c + +libwebpdspdecode_msa_la-filters_msa.lo: filters_msa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_msa_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_msa_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_msa_la-filters_msa.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_msa_la-filters_msa.Tpo -c -o libwebpdspdecode_msa_la-filters_msa.lo `test -f 'filters_msa.c' || echo '$(srcdir)/'`filters_msa.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_msa_la-filters_msa.Tpo $(DEPDIR)/libwebpdspdecode_msa_la-filters_msa.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filters_msa.c' object='libwebpdspdecode_msa_la-filters_msa.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_msa_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_msa_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_msa_la-filters_msa.lo `test -f 'filters_msa.c' || echo '$(srcdir)/'`filters_msa.c + +libwebpdspdecode_msa_la-lossless_msa.lo: lossless_msa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_msa_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_msa_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_msa_la-lossless_msa.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_msa_la-lossless_msa.Tpo -c -o libwebpdspdecode_msa_la-lossless_msa.lo `test -f 'lossless_msa.c' || echo '$(srcdir)/'`lossless_msa.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_msa_la-lossless_msa.Tpo $(DEPDIR)/libwebpdspdecode_msa_la-lossless_msa.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lossless_msa.c' object='libwebpdspdecode_msa_la-lossless_msa.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_msa_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_msa_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_msa_la-lossless_msa.lo `test -f 'lossless_msa.c' || echo '$(srcdir)/'`lossless_msa.c + +libwebpdspdecode_msa_la-rescaler_msa.lo: rescaler_msa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_msa_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_msa_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_msa_la-rescaler_msa.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_msa_la-rescaler_msa.Tpo -c -o libwebpdspdecode_msa_la-rescaler_msa.lo `test -f 'rescaler_msa.c' || echo '$(srcdir)/'`rescaler_msa.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_msa_la-rescaler_msa.Tpo $(DEPDIR)/libwebpdspdecode_msa_la-rescaler_msa.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rescaler_msa.c' object='libwebpdspdecode_msa_la-rescaler_msa.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_msa_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_msa_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_msa_la-rescaler_msa.lo `test -f 'rescaler_msa.c' || echo '$(srcdir)/'`rescaler_msa.c + +libwebpdspdecode_msa_la-upsampling_msa.lo: upsampling_msa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_msa_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_msa_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_msa_la-upsampling_msa.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_msa_la-upsampling_msa.Tpo -c -o libwebpdspdecode_msa_la-upsampling_msa.lo `test -f 'upsampling_msa.c' || echo '$(srcdir)/'`upsampling_msa.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_msa_la-upsampling_msa.Tpo $(DEPDIR)/libwebpdspdecode_msa_la-upsampling_msa.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upsampling_msa.c' object='libwebpdspdecode_msa_la-upsampling_msa.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_msa_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_msa_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_msa_la-upsampling_msa.lo `test -f 'upsampling_msa.c' || echo '$(srcdir)/'`upsampling_msa.c + +libwebpdspdecode_neon_la-alpha_processing_neon.lo: alpha_processing_neon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_neon_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_neon_la-alpha_processing_neon.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_neon_la-alpha_processing_neon.Tpo -c -o libwebpdspdecode_neon_la-alpha_processing_neon.lo `test -f 'alpha_processing_neon.c' || echo '$(srcdir)/'`alpha_processing_neon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_neon_la-alpha_processing_neon.Tpo $(DEPDIR)/libwebpdspdecode_neon_la-alpha_processing_neon.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alpha_processing_neon.c' object='libwebpdspdecode_neon_la-alpha_processing_neon.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_neon_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_neon_la-alpha_processing_neon.lo `test -f 'alpha_processing_neon.c' || echo '$(srcdir)/'`alpha_processing_neon.c + +libwebpdspdecode_neon_la-dec_neon.lo: dec_neon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_neon_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_neon_la-dec_neon.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_neon_la-dec_neon.Tpo -c -o libwebpdspdecode_neon_la-dec_neon.lo `test -f 'dec_neon.c' || echo '$(srcdir)/'`dec_neon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_neon_la-dec_neon.Tpo $(DEPDIR)/libwebpdspdecode_neon_la-dec_neon.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dec_neon.c' object='libwebpdspdecode_neon_la-dec_neon.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_neon_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_neon_la-dec_neon.lo `test -f 'dec_neon.c' || echo '$(srcdir)/'`dec_neon.c + +libwebpdspdecode_neon_la-filters_neon.lo: filters_neon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_neon_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_neon_la-filters_neon.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_neon_la-filters_neon.Tpo -c -o libwebpdspdecode_neon_la-filters_neon.lo `test -f 'filters_neon.c' || echo '$(srcdir)/'`filters_neon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_neon_la-filters_neon.Tpo $(DEPDIR)/libwebpdspdecode_neon_la-filters_neon.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filters_neon.c' object='libwebpdspdecode_neon_la-filters_neon.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_neon_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_neon_la-filters_neon.lo `test -f 'filters_neon.c' || echo '$(srcdir)/'`filters_neon.c + +libwebpdspdecode_neon_la-lossless_neon.lo: lossless_neon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_neon_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_neon_la-lossless_neon.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_neon_la-lossless_neon.Tpo -c -o libwebpdspdecode_neon_la-lossless_neon.lo `test -f 'lossless_neon.c' || echo '$(srcdir)/'`lossless_neon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_neon_la-lossless_neon.Tpo $(DEPDIR)/libwebpdspdecode_neon_la-lossless_neon.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lossless_neon.c' object='libwebpdspdecode_neon_la-lossless_neon.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_neon_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_neon_la-lossless_neon.lo `test -f 'lossless_neon.c' || echo '$(srcdir)/'`lossless_neon.c + +libwebpdspdecode_neon_la-rescaler_neon.lo: rescaler_neon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_neon_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_neon_la-rescaler_neon.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_neon_la-rescaler_neon.Tpo -c -o libwebpdspdecode_neon_la-rescaler_neon.lo `test -f 'rescaler_neon.c' || echo '$(srcdir)/'`rescaler_neon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_neon_la-rescaler_neon.Tpo $(DEPDIR)/libwebpdspdecode_neon_la-rescaler_neon.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rescaler_neon.c' object='libwebpdspdecode_neon_la-rescaler_neon.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_neon_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_neon_la-rescaler_neon.lo `test -f 'rescaler_neon.c' || echo '$(srcdir)/'`rescaler_neon.c + +libwebpdspdecode_neon_la-upsampling_neon.lo: upsampling_neon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_neon_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_neon_la-upsampling_neon.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_neon_la-upsampling_neon.Tpo -c -o libwebpdspdecode_neon_la-upsampling_neon.lo `test -f 'upsampling_neon.c' || echo '$(srcdir)/'`upsampling_neon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_neon_la-upsampling_neon.Tpo $(DEPDIR)/libwebpdspdecode_neon_la-upsampling_neon.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upsampling_neon.c' object='libwebpdspdecode_neon_la-upsampling_neon.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_neon_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_neon_la-upsampling_neon.lo `test -f 'upsampling_neon.c' || echo '$(srcdir)/'`upsampling_neon.c + +libwebpdspdecode_neon_la-yuv_neon.lo: yuv_neon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_neon_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_neon_la-yuv_neon.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_neon_la-yuv_neon.Tpo -c -o libwebpdspdecode_neon_la-yuv_neon.lo `test -f 'yuv_neon.c' || echo '$(srcdir)/'`yuv_neon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_neon_la-yuv_neon.Tpo $(DEPDIR)/libwebpdspdecode_neon_la-yuv_neon.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='yuv_neon.c' object='libwebpdspdecode_neon_la-yuv_neon.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_neon_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_neon_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_neon_la-yuv_neon.lo `test -f 'yuv_neon.c' || echo '$(srcdir)/'`yuv_neon.c + +libwebpdspdecode_sse2_la-alpha_processing_sse2.lo: alpha_processing_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse2_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_sse2_la-alpha_processing_sse2.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_sse2_la-alpha_processing_sse2.Tpo -c -o libwebpdspdecode_sse2_la-alpha_processing_sse2.lo `test -f 'alpha_processing_sse2.c' || echo '$(srcdir)/'`alpha_processing_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_sse2_la-alpha_processing_sse2.Tpo $(DEPDIR)/libwebpdspdecode_sse2_la-alpha_processing_sse2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alpha_processing_sse2.c' object='libwebpdspdecode_sse2_la-alpha_processing_sse2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse2_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_sse2_la-alpha_processing_sse2.lo `test -f 'alpha_processing_sse2.c' || echo '$(srcdir)/'`alpha_processing_sse2.c + +libwebpdspdecode_sse2_la-dec_sse2.lo: dec_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse2_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_sse2_la-dec_sse2.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_sse2_la-dec_sse2.Tpo -c -o libwebpdspdecode_sse2_la-dec_sse2.lo `test -f 'dec_sse2.c' || echo '$(srcdir)/'`dec_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_sse2_la-dec_sse2.Tpo $(DEPDIR)/libwebpdspdecode_sse2_la-dec_sse2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dec_sse2.c' object='libwebpdspdecode_sse2_la-dec_sse2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse2_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_sse2_la-dec_sse2.lo `test -f 'dec_sse2.c' || echo '$(srcdir)/'`dec_sse2.c + +libwebpdspdecode_sse2_la-filters_sse2.lo: filters_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse2_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_sse2_la-filters_sse2.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_sse2_la-filters_sse2.Tpo -c -o libwebpdspdecode_sse2_la-filters_sse2.lo `test -f 'filters_sse2.c' || echo '$(srcdir)/'`filters_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_sse2_la-filters_sse2.Tpo $(DEPDIR)/libwebpdspdecode_sse2_la-filters_sse2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filters_sse2.c' object='libwebpdspdecode_sse2_la-filters_sse2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse2_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_sse2_la-filters_sse2.lo `test -f 'filters_sse2.c' || echo '$(srcdir)/'`filters_sse2.c + +libwebpdspdecode_sse2_la-lossless_sse2.lo: lossless_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse2_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_sse2_la-lossless_sse2.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_sse2_la-lossless_sse2.Tpo -c -o libwebpdspdecode_sse2_la-lossless_sse2.lo `test -f 'lossless_sse2.c' || echo '$(srcdir)/'`lossless_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_sse2_la-lossless_sse2.Tpo $(DEPDIR)/libwebpdspdecode_sse2_la-lossless_sse2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lossless_sse2.c' object='libwebpdspdecode_sse2_la-lossless_sse2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse2_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_sse2_la-lossless_sse2.lo `test -f 'lossless_sse2.c' || echo '$(srcdir)/'`lossless_sse2.c + +libwebpdspdecode_sse2_la-rescaler_sse2.lo: rescaler_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse2_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_sse2_la-rescaler_sse2.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_sse2_la-rescaler_sse2.Tpo -c -o libwebpdspdecode_sse2_la-rescaler_sse2.lo `test -f 'rescaler_sse2.c' || echo '$(srcdir)/'`rescaler_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_sse2_la-rescaler_sse2.Tpo $(DEPDIR)/libwebpdspdecode_sse2_la-rescaler_sse2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rescaler_sse2.c' object='libwebpdspdecode_sse2_la-rescaler_sse2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse2_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_sse2_la-rescaler_sse2.lo `test -f 'rescaler_sse2.c' || echo '$(srcdir)/'`rescaler_sse2.c + +libwebpdspdecode_sse2_la-upsampling_sse2.lo: upsampling_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse2_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_sse2_la-upsampling_sse2.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_sse2_la-upsampling_sse2.Tpo -c -o libwebpdspdecode_sse2_la-upsampling_sse2.lo `test -f 'upsampling_sse2.c' || echo '$(srcdir)/'`upsampling_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_sse2_la-upsampling_sse2.Tpo $(DEPDIR)/libwebpdspdecode_sse2_la-upsampling_sse2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upsampling_sse2.c' object='libwebpdspdecode_sse2_la-upsampling_sse2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse2_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_sse2_la-upsampling_sse2.lo `test -f 'upsampling_sse2.c' || echo '$(srcdir)/'`upsampling_sse2.c + +libwebpdspdecode_sse2_la-yuv_sse2.lo: yuv_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse2_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_sse2_la-yuv_sse2.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_sse2_la-yuv_sse2.Tpo -c -o libwebpdspdecode_sse2_la-yuv_sse2.lo `test -f 'yuv_sse2.c' || echo '$(srcdir)/'`yuv_sse2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_sse2_la-yuv_sse2.Tpo $(DEPDIR)/libwebpdspdecode_sse2_la-yuv_sse2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='yuv_sse2.c' object='libwebpdspdecode_sse2_la-yuv_sse2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse2_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse2_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_sse2_la-yuv_sse2.lo `test -f 'yuv_sse2.c' || echo '$(srcdir)/'`yuv_sse2.c + +libwebpdspdecode_sse41_la-alpha_processing_sse41.lo: alpha_processing_sse41.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse41_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse41_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_sse41_la-alpha_processing_sse41.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_sse41_la-alpha_processing_sse41.Tpo -c -o libwebpdspdecode_sse41_la-alpha_processing_sse41.lo `test -f 'alpha_processing_sse41.c' || echo '$(srcdir)/'`alpha_processing_sse41.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_sse41_la-alpha_processing_sse41.Tpo $(DEPDIR)/libwebpdspdecode_sse41_la-alpha_processing_sse41.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alpha_processing_sse41.c' object='libwebpdspdecode_sse41_la-alpha_processing_sse41.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse41_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse41_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_sse41_la-alpha_processing_sse41.lo `test -f 'alpha_processing_sse41.c' || echo '$(srcdir)/'`alpha_processing_sse41.c + +libwebpdspdecode_sse41_la-dec_sse41.lo: dec_sse41.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse41_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse41_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_sse41_la-dec_sse41.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_sse41_la-dec_sse41.Tpo -c -o libwebpdspdecode_sse41_la-dec_sse41.lo `test -f 'dec_sse41.c' || echo '$(srcdir)/'`dec_sse41.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_sse41_la-dec_sse41.Tpo $(DEPDIR)/libwebpdspdecode_sse41_la-dec_sse41.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dec_sse41.c' object='libwebpdspdecode_sse41_la-dec_sse41.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse41_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse41_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_sse41_la-dec_sse41.lo `test -f 'dec_sse41.c' || echo '$(srcdir)/'`dec_sse41.c + +libwebpdspdecode_sse41_la-upsampling_sse41.lo: upsampling_sse41.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse41_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse41_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_sse41_la-upsampling_sse41.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_sse41_la-upsampling_sse41.Tpo -c -o libwebpdspdecode_sse41_la-upsampling_sse41.lo `test -f 'upsampling_sse41.c' || echo '$(srcdir)/'`upsampling_sse41.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_sse41_la-upsampling_sse41.Tpo $(DEPDIR)/libwebpdspdecode_sse41_la-upsampling_sse41.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upsampling_sse41.c' object='libwebpdspdecode_sse41_la-upsampling_sse41.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse41_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse41_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_sse41_la-upsampling_sse41.lo `test -f 'upsampling_sse41.c' || echo '$(srcdir)/'`upsampling_sse41.c + +libwebpdspdecode_sse41_la-yuv_sse41.lo: yuv_sse41.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse41_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse41_la_CFLAGS) $(CFLAGS) -MT libwebpdspdecode_sse41_la-yuv_sse41.lo -MD -MP -MF $(DEPDIR)/libwebpdspdecode_sse41_la-yuv_sse41.Tpo -c -o libwebpdspdecode_sse41_la-yuv_sse41.lo `test -f 'yuv_sse41.c' || echo '$(srcdir)/'`yuv_sse41.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpdspdecode_sse41_la-yuv_sse41.Tpo $(DEPDIR)/libwebpdspdecode_sse41_la-yuv_sse41.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='yuv_sse41.c' object='libwebpdspdecode_sse41_la-yuv_sse41.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpdspdecode_sse41_la_CPPFLAGS) $(CPPFLAGS) $(libwebpdspdecode_sse41_la_CFLAGS) $(CFLAGS) -c -o libwebpdspdecode_sse41_la-yuv_sse41.lo `test -f 'yuv_sse41.c' || echo '$(srcdir)/'`yuv_sse41.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-commonHEADERS: $(common_HEADERS) + @$(NORMAL_INSTALL) + @list='$(common_HEADERS)'; test -n "$(commondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(commondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(commondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(commondir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(commondir)" || exit $$?; \ + done + +uninstall-commonHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(common_HEADERS)'; test -n "$(commondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(commondir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(commondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-commonHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-commonHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-commonHEADERS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-commonHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/external/libwebp-0.6.0/src/dsp/alpha_processing.c b/external/libwebp-1.0.0/src/dsp/alpha_processing.c similarity index 80% rename from external/libwebp-0.6.0/src/dsp/alpha_processing.c rename to external/libwebp-1.0.0/src/dsp/alpha_processing.c index 4b60e092..819d1391 100644 --- a/external/libwebp-0.6.0/src/dsp/alpha_processing.c +++ b/external/libwebp-1.0.0/src/dsp/alpha_processing.c @@ -12,10 +12,13 @@ // Author: Skal (pascal.massimino@gmail.com) #include -#include "./dsp.h" +#include "src/dsp/dsp.h" // Tables can be faster on some platform but incur some extra binary size (~2k). -// #define USE_TABLES_FOR_ALPHA_MULT +#if !defined(USE_TABLES_FOR_ALPHA_MULT) +#define USE_TABLES_FOR_ALPHA_MULT 0 // ALTERNATE_CODE +#endif + // ----------------------------------------------------------------------------- @@ -29,7 +32,7 @@ static uint32_t Mult(uint8_t x, uint32_t mult) { return v; } -#ifdef USE_TABLES_FOR_ALPHA_MULT +#if (USE_TABLES_FOR_ALPHA_MULT == 1) static const uint32_t kMultTables[2][256] = { { // (255u << MFIX) / alpha @@ -132,9 +135,9 @@ static WEBP_INLINE uint32_t GetScale(uint32_t a, int inverse) { return inverse ? (255u << MFIX) / a : a * KINV_255; } -#endif // USE_TABLES_FOR_ALPHA_MULT +#endif // USE_TABLES_FOR_ALPHA_MULT -void WebPMultARGBRowC(uint32_t* const ptr, int width, int inverse) { +void WebPMultARGBRow_C(uint32_t* const ptr, int width, int inverse) { int x; for (x = 0; x < width; ++x) { const uint32_t argb = ptr[x]; @@ -154,8 +157,8 @@ void WebPMultARGBRowC(uint32_t* const ptr, int width, int inverse) { } } -void WebPMultRowC(uint8_t* const ptr, const uint8_t* const alpha, - int width, int inverse) { +void WebPMultRow_C(uint8_t* const ptr, const uint8_t* const alpha, + int width, int inverse) { int x; for (x = 0; x < width; ++x) { const uint32_t a = alpha[x]; @@ -217,8 +220,9 @@ void WebPMultRows(uint8_t* ptr, int stride, #define PREMULTIPLY(x, m) (((x) * (m) + (1U << 23)) >> 24) #endif -static void ApplyAlphaMultiply(uint8_t* rgba, int alpha_first, - int w, int h, int stride) { +#if !WEBP_NEON_OMIT_C_CODE +static void ApplyAlphaMultiply_C(uint8_t* rgba, int alpha_first, + int w, int h, int stride) { while (h-- > 0) { uint8_t* const rgb = rgba + (alpha_first ? 1 : 0); const uint8_t* const alpha = rgba + (alpha_first ? 0 : 3); @@ -235,6 +239,7 @@ static void ApplyAlphaMultiply(uint8_t* rgba, int alpha_first, rgba += stride; } } +#endif // !WEBP_NEON_OMIT_C_CODE #undef MULTIPLIER #undef PREMULTIPLY @@ -254,9 +259,9 @@ static WEBP_INLINE uint8_t multiply(uint8_t x, uint32_t m) { return (x * m) >> 16; } -static WEBP_INLINE void ApplyAlphaMultiply4444(uint8_t* rgba4444, - int w, int h, int stride, - int rg_byte_pos /* 0 or 1 */) { +static WEBP_INLINE void ApplyAlphaMultiply4444_C(uint8_t* rgba4444, + int w, int h, int stride, + int rg_byte_pos /* 0 or 1 */) { while (h-- > 0) { int i; for (i = 0; i < w; ++i) { @@ -275,15 +280,16 @@ static WEBP_INLINE void ApplyAlphaMultiply4444(uint8_t* rgba4444, } #undef MULTIPLIER -static void ApplyAlphaMultiply_16b(uint8_t* rgba4444, - int w, int h, int stride) { -#ifdef WEBP_SWAP_16BIT_CSP - ApplyAlphaMultiply4444(rgba4444, w, h, stride, 1); +static void ApplyAlphaMultiply_16b_C(uint8_t* rgba4444, + int w, int h, int stride) { +#if (WEBP_SWAP_16BIT_CSP == 1) + ApplyAlphaMultiply4444_C(rgba4444, w, h, stride, 1); #else - ApplyAlphaMultiply4444(rgba4444, w, h, stride, 0); + ApplyAlphaMultiply4444_C(rgba4444, w, h, stride, 0); #endif } +#if !WEBP_NEON_OMIT_C_CODE static int DispatchAlpha_C(const uint8_t* alpha, int alpha_stride, int width, int height, uint8_t* dst, int dst_stride) { @@ -338,6 +344,46 @@ static void ExtractGreen_C(const uint32_t* argb, uint8_t* alpha, int size) { int i; for (i = 0; i < size; ++i) alpha[i] = argb[i] >> 8; } +#endif // !WEBP_NEON_OMIT_C_CODE + +//------------------------------------------------------------------------------ + +static int HasAlpha8b_C(const uint8_t* src, int length) { + while (length-- > 0) if (*src++ != 0xff) return 1; + return 0; +} + +static int HasAlpha32b_C(const uint8_t* src, int length) { + int x; + for (x = 0; length-- > 0; x += 4) if (src[x] != 0xff) return 1; + return 0; +} + +//------------------------------------------------------------------------------ +// Simple channel manipulations. + +static WEBP_INLINE uint32_t MakeARGB32(int a, int r, int g, int b) { + return (((uint32_t)a << 24) | (r << 16) | (g << 8) | b); +} + +#ifdef WORDS_BIGENDIAN +static void PackARGB_C(const uint8_t* a, const uint8_t* r, const uint8_t* g, + const uint8_t* b, int len, uint32_t* out) { + int i; + for (i = 0; i < len; ++i) { + out[i] = MakeARGB32(a[4 * i], r[4 * i], g[4 * i], b[4 * i]); + } +} +#endif + +static void PackRGB_C(const uint8_t* r, const uint8_t* g, const uint8_t* b, + int len, int step, uint32_t* out) { + int i, offset = 0; + for (i = 0; i < len; ++i) { + out[i] = MakeARGB32(0xff, r[offset], g[offset], b[offset]); + offset += step; + } +} void (*WebPApplyAlphaMultiply)(uint8_t*, int, int, int, int); void (*WebPApplyAlphaMultiply4444)(uint8_t*, int, int, int); @@ -345,6 +391,15 @@ int (*WebPDispatchAlpha)(const uint8_t*, int, int, int, uint8_t*, int); void (*WebPDispatchAlphaToGreen)(const uint8_t*, int, int, int, uint32_t*, int); int (*WebPExtractAlpha)(const uint8_t*, int, int, int, uint8_t*, int); void (*WebPExtractGreen)(const uint32_t* argb, uint8_t* alpha, int size); +#ifdef WORDS_BIGENDIAN +void (*WebPPackARGB)(const uint8_t* a, const uint8_t* r, const uint8_t* g, + const uint8_t* b, int, uint32_t*); +#endif +void (*WebPPackRGB)(const uint8_t* r, const uint8_t* g, const uint8_t* b, + int len, int step, uint32_t* out); + +int (*WebPHasAlpha8b)(const uint8_t* src, int length); +int (*WebPHasAlpha32b)(const uint8_t* src, int length); //------------------------------------------------------------------------------ // Init function @@ -354,21 +409,25 @@ extern void WebPInitAlphaProcessingSSE2(void); extern void WebPInitAlphaProcessingSSE41(void); extern void WebPInitAlphaProcessingNEON(void); -static volatile VP8CPUInfo alpha_processing_last_cpuinfo_used = - (VP8CPUInfo)&alpha_processing_last_cpuinfo_used; - -WEBP_TSAN_IGNORE_FUNCTION void WebPInitAlphaProcessing(void) { - if (alpha_processing_last_cpuinfo_used == VP8GetCPUInfo) return; - - WebPMultARGBRow = WebPMultARGBRowC; - WebPMultRow = WebPMultRowC; - WebPApplyAlphaMultiply = ApplyAlphaMultiply; - WebPApplyAlphaMultiply4444 = ApplyAlphaMultiply_16b; +WEBP_DSP_INIT_FUNC(WebPInitAlphaProcessing) { + WebPMultARGBRow = WebPMultARGBRow_C; + WebPMultRow = WebPMultRow_C; + WebPApplyAlphaMultiply4444 = ApplyAlphaMultiply_16b_C; +#ifdef WORDS_BIGENDIAN + WebPPackARGB = PackARGB_C; +#endif + WebPPackRGB = PackRGB_C; +#if !WEBP_NEON_OMIT_C_CODE + WebPApplyAlphaMultiply = ApplyAlphaMultiply_C; WebPDispatchAlpha = DispatchAlpha_C; WebPDispatchAlphaToGreen = DispatchAlphaToGreen_C; WebPExtractAlpha = ExtractAlpha_C; WebPExtractGreen = ExtractGreen_C; +#endif + + WebPHasAlpha8b = HasAlpha8b_C; + WebPHasAlpha32b = HasAlpha32b_C; // If defined, use CPUInfo() to overwrite some pointers with faster versions. if (VP8GetCPUInfo != NULL) { @@ -382,16 +441,32 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPInitAlphaProcessing(void) { #endif } #endif -#if defined(WEBP_USE_NEON) - if (VP8GetCPUInfo(kNEON)) { - WebPInitAlphaProcessingNEON(); - } -#endif #if defined(WEBP_USE_MIPS_DSP_R2) if (VP8GetCPUInfo(kMIPSdspR2)) { WebPInitAlphaProcessingMIPSdspR2(); } #endif } - alpha_processing_last_cpuinfo_used = VP8GetCPUInfo; + +#if defined(WEBP_USE_NEON) + if (WEBP_NEON_OMIT_C_CODE || + (VP8GetCPUInfo != NULL && VP8GetCPUInfo(kNEON))) { + WebPInitAlphaProcessingNEON(); + } +#endif + + assert(WebPMultARGBRow != NULL); + assert(WebPMultRow != NULL); + assert(WebPApplyAlphaMultiply != NULL); + assert(WebPApplyAlphaMultiply4444 != NULL); + assert(WebPDispatchAlpha != NULL); + assert(WebPDispatchAlphaToGreen != NULL); + assert(WebPExtractAlpha != NULL); + assert(WebPExtractGreen != NULL); +#ifdef WORDS_BIGENDIAN + assert(WebPPackARGB != NULL); +#endif + assert(WebPPackRGB != NULL); + assert(WebPHasAlpha8b != NULL); + assert(WebPHasAlpha32b != NULL); } diff --git a/external/libwebp-0.6.0/src/dsp/alpha_processing_mips_dsp_r2.c b/external/libwebp-1.0.0/src/dsp/alpha_processing_mips_dsp_r2.c similarity index 53% rename from external/libwebp-0.6.0/src/dsp/alpha_processing_mips_dsp_r2.c rename to external/libwebp-1.0.0/src/dsp/alpha_processing_mips_dsp_r2.c index c631d789..0090e87c 100644 --- a/external/libwebp-0.6.0/src/dsp/alpha_processing_mips_dsp_r2.c +++ b/external/libwebp-1.0.0/src/dsp/alpha_processing_mips_dsp_r2.c @@ -12,13 +12,13 @@ // Author(s): Branimir Vasic (branimir.vasic@imgtec.com) // Djordje Pesut (djordje.pesut@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MIPS_DSP_R2) -static int DispatchAlpha(const uint8_t* alpha, int alpha_stride, - int width, int height, - uint8_t* dst, int dst_stride) { +static int DispatchAlpha_MIPSdspR2(const uint8_t* alpha, int alpha_stride, + int width, int height, + uint8_t* dst, int dst_stride) { uint32_t alpha_mask = 0xffffffff; int i, j, temp0; @@ -79,7 +79,8 @@ static int DispatchAlpha(const uint8_t* alpha, int alpha_stride, return (alpha_mask != 0xff); } -static void MultARGBRow(uint32_t* const ptr, int width, int inverse) { +static void MultARGBRow_MIPSdspR2(uint32_t* const ptr, int width, + int inverse) { int x; const uint32_t c_00ffffff = 0x00ffffffu; const uint32_t c_ff000000 = 0xff000000u; @@ -124,14 +125,100 @@ static void MultARGBRow(uint32_t* const ptr, int width, int inverse) { } } +#ifdef WORDS_BIGENDIAN +static void PackARGB_MIPSdspR2(const uint8_t* a, const uint8_t* r, + const uint8_t* g, const uint8_t* b, int len, + uint32_t* out) { + int temp0, temp1, temp2, temp3, offset; + const int rest = len & 1; + const uint32_t* const loop_end = out + len - rest; + const int step = 4; + __asm__ volatile ( + "xor %[offset], %[offset], %[offset] \n\t" + "beq %[loop_end], %[out], 0f \n\t" + "2: \n\t" + "lbux %[temp0], %[offset](%[a]) \n\t" + "lbux %[temp1], %[offset](%[r]) \n\t" + "lbux %[temp2], %[offset](%[g]) \n\t" + "lbux %[temp3], %[offset](%[b]) \n\t" + "ins %[temp1], %[temp0], 16, 16 \n\t" + "ins %[temp3], %[temp2], 16, 16 \n\t" + "addiu %[out], %[out], 4 \n\t" + "precr.qb.ph %[temp0], %[temp1], %[temp3] \n\t" + "sw %[temp0], -4(%[out]) \n\t" + "addu %[offset], %[offset], %[step] \n\t" + "bne %[loop_end], %[out], 2b \n\t" + "0: \n\t" + "beq %[rest], $zero, 1f \n\t" + "lbux %[temp0], %[offset](%[a]) \n\t" + "lbux %[temp1], %[offset](%[r]) \n\t" + "lbux %[temp2], %[offset](%[g]) \n\t" + "lbux %[temp3], %[offset](%[b]) \n\t" + "ins %[temp1], %[temp0], 16, 16 \n\t" + "ins %[temp3], %[temp2], 16, 16 \n\t" + "precr.qb.ph %[temp0], %[temp1], %[temp3] \n\t" + "sw %[temp0], 0(%[out]) \n\t" + "1: \n\t" + : [temp0]"=&r"(temp0), [temp1]"=&r"(temp1), [temp2]"=&r"(temp2), + [temp3]"=&r"(temp3), [offset]"=&r"(offset), [out]"+&r"(out) + : [a]"r"(a), [r]"r"(r), [g]"r"(g), [b]"r"(b), [step]"r"(step), + [loop_end]"r"(loop_end), [rest]"r"(rest) + : "memory" + ); +} +#endif // WORDS_BIGENDIAN + +static void PackRGB_MIPSdspR2(const uint8_t* r, const uint8_t* g, + const uint8_t* b, int len, int step, + uint32_t* out) { + int temp0, temp1, temp2, offset; + const int rest = len & 1; + const int a = 0xff; + const uint32_t* const loop_end = out + len - rest; + __asm__ volatile ( + "xor %[offset], %[offset], %[offset] \n\t" + "beq %[loop_end], %[out], 0f \n\t" + "2: \n\t" + "lbux %[temp0], %[offset](%[r]) \n\t" + "lbux %[temp1], %[offset](%[g]) \n\t" + "lbux %[temp2], %[offset](%[b]) \n\t" + "ins %[temp0], %[a], 16, 16 \n\t" + "ins %[temp2], %[temp1], 16, 16 \n\t" + "addiu %[out], %[out], 4 \n\t" + "precr.qb.ph %[temp0], %[temp0], %[temp2] \n\t" + "sw %[temp0], -4(%[out]) \n\t" + "addu %[offset], %[offset], %[step] \n\t" + "bne %[loop_end], %[out], 2b \n\t" + "0: \n\t" + "beq %[rest], $zero, 1f \n\t" + "lbux %[temp0], %[offset](%[r]) \n\t" + "lbux %[temp1], %[offset](%[g]) \n\t" + "lbux %[temp2], %[offset](%[b]) \n\t" + "ins %[temp0], %[a], 16, 16 \n\t" + "ins %[temp2], %[temp1], 16, 16 \n\t" + "precr.qb.ph %[temp0], %[temp0], %[temp2] \n\t" + "sw %[temp0], 0(%[out]) \n\t" + "1: \n\t" + : [temp0]"=&r"(temp0), [temp1]"=&r"(temp1), [temp2]"=&r"(temp2), + [offset]"=&r"(offset), [out]"+&r"(out) + : [a]"r"(a), [r]"r"(r), [g]"r"(g), [b]"r"(b), [step]"r"(step), + [loop_end]"r"(loop_end), [rest]"r"(rest) + : "memory" + ); +} + //------------------------------------------------------------------------------ // Entry point extern void WebPInitAlphaProcessingMIPSdspR2(void); WEBP_TSAN_IGNORE_FUNCTION void WebPInitAlphaProcessingMIPSdspR2(void) { - WebPDispatchAlpha = DispatchAlpha; - WebPMultARGBRow = MultARGBRow; + WebPDispatchAlpha = DispatchAlpha_MIPSdspR2; + WebPMultARGBRow = MultARGBRow_MIPSdspR2; +#ifdef WORDS_BIGENDIAN + WebPPackARGB = PackARGB_MIPSdspR2; +#endif + WebPPackRGB = PackRGB_MIPSdspR2; } #else // !WEBP_USE_MIPS_DSP_R2 diff --git a/external/libwebp-0.6.0/src/dsp/alpha_processing_neon.c b/external/libwebp-1.0.0/src/dsp/alpha_processing_neon.c similarity index 99% rename from external/libwebp-0.6.0/src/dsp/alpha_processing_neon.c rename to external/libwebp-1.0.0/src/dsp/alpha_processing_neon.c index 606a401c..9d554217 100644 --- a/external/libwebp-0.6.0/src/dsp/alpha_processing_neon.c +++ b/external/libwebp-1.0.0/src/dsp/alpha_processing_neon.c @@ -11,11 +11,11 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_NEON) -#include "./neon.h" +#include "src/dsp/neon.h" //------------------------------------------------------------------------------ diff --git a/external/libwebp-0.6.0/src/dsp/alpha_processing_sse2.c b/external/libwebp-1.0.0/src/dsp/alpha_processing_sse2.c similarity index 76% rename from external/libwebp-0.6.0/src/dsp/alpha_processing_sse2.c rename to external/libwebp-1.0.0/src/dsp/alpha_processing_sse2.c index 83dc559f..76587006 100644 --- a/external/libwebp-0.6.0/src/dsp/alpha_processing_sse2.c +++ b/external/libwebp-1.0.0/src/dsp/alpha_processing_sse2.c @@ -11,16 +11,16 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_SSE2) #include //------------------------------------------------------------------------------ -static int DispatchAlpha(const uint8_t* alpha, int alpha_stride, - int width, int height, - uint8_t* dst, int dst_stride) { +static int DispatchAlpha_SSE2(const uint8_t* alpha, int alpha_stride, + int width, int height, + uint8_t* dst, int dst_stride) { // alpha_and stores an 'and' operation of all the alpha[] values. The final // value is not 0xff if any of the alpha[] is not equal to 0xff. uint32_t alpha_and = 0xff; @@ -72,9 +72,9 @@ static int DispatchAlpha(const uint8_t* alpha, int alpha_stride, return (alpha_and != 0xff); } -static void DispatchAlphaToGreen(const uint8_t* alpha, int alpha_stride, - int width, int height, - uint32_t* dst, int dst_stride) { +static void DispatchAlphaToGreen_SSE2(const uint8_t* alpha, int alpha_stride, + int width, int height, + uint32_t* dst, int dst_stride) { int i, j; const __m128i zero = _mm_setzero_si128(); const int limit = width & ~15; @@ -98,9 +98,9 @@ static void DispatchAlphaToGreen(const uint8_t* alpha, int alpha_stride, } } -static int ExtractAlpha(const uint8_t* argb, int argb_stride, - int width, int height, - uint8_t* alpha, int alpha_stride) { +static int ExtractAlpha_SSE2(const uint8_t* argb, int argb_stride, + int width, int height, + uint8_t* alpha, int alpha_stride) { // alpha_and stores an 'and' operation of all the alpha[] values. The final // value is not 0xff if any of the alpha[] is not equal to 0xff. uint32_t alpha_and = 0xff; @@ -210,6 +210,61 @@ static void ApplyAlphaMultiply_SSE2(uint8_t* rgba, int alpha_first, #undef MULTIPLIER #undef PREMULTIPLY +//------------------------------------------------------------------------------ +// Alpha detection + +static int HasAlpha8b_SSE2(const uint8_t* src, int length) { + const __m128i all_0xff = _mm_set1_epi8(0xff); + int i = 0; + for (; i + 16 <= length; i += 16) { + const __m128i v = _mm_loadu_si128((const __m128i*)(src + i)); + const __m128i bits = _mm_cmpeq_epi8(v, all_0xff); + const int mask = _mm_movemask_epi8(bits); + if (mask != 0xffff) return 1; + } + for (; i < length; ++i) if (src[i] != 0xff) return 1; + return 0; +} + +static int HasAlpha32b_SSE2(const uint8_t* src, int length) { + const __m128i alpha_mask = _mm_set1_epi32(0xff); + const __m128i all_0xff = _mm_set1_epi8(0xff); + int i = 0; + // We don't know if we can access the last 3 bytes after the last alpha + // value 'src[4 * length - 4]' (because we don't know if alpha is the first + // or the last byte of the quadruplet). Hence the '-3' protection below. + length = length * 4 - 3; // size in bytes + for (; i + 64 <= length; i += 64) { + const __m128i a0 = _mm_loadu_si128((const __m128i*)(src + i + 0)); + const __m128i a1 = _mm_loadu_si128((const __m128i*)(src + i + 16)); + const __m128i a2 = _mm_loadu_si128((const __m128i*)(src + i + 32)); + const __m128i a3 = _mm_loadu_si128((const __m128i*)(src + i + 48)); + const __m128i b0 = _mm_and_si128(a0, alpha_mask); + const __m128i b1 = _mm_and_si128(a1, alpha_mask); + const __m128i b2 = _mm_and_si128(a2, alpha_mask); + const __m128i b3 = _mm_and_si128(a3, alpha_mask); + const __m128i c0 = _mm_packs_epi32(b0, b1); + const __m128i c1 = _mm_packs_epi32(b2, b3); + const __m128i d = _mm_packus_epi16(c0, c1); + const __m128i bits = _mm_cmpeq_epi8(d, all_0xff); + const int mask = _mm_movemask_epi8(bits); + if (mask != 0xffff) return 1; + } + for (; i + 32 <= length; i += 32) { + const __m128i a0 = _mm_loadu_si128((const __m128i*)(src + i + 0)); + const __m128i a1 = _mm_loadu_si128((const __m128i*)(src + i + 16)); + const __m128i b0 = _mm_and_si128(a0, alpha_mask); + const __m128i b1 = _mm_and_si128(a1, alpha_mask); + const __m128i c = _mm_packs_epi32(b0, b1); + const __m128i d = _mm_packus_epi16(c, c); + const __m128i bits = _mm_cmpeq_epi8(d, all_0xff); + const int mask = _mm_movemask_epi8(bits); + if (mask != 0xffff) return 1; + } + for (; i <= length; i += 4) if (src[i] != 0xff) return 1; + return 0; +} + // ----------------------------------------------------------------------------- // Apply alpha value to rows @@ -238,7 +293,7 @@ static void MultARGBRow_SSE2(uint32_t* const ptr, int width, int inverse) { } } width -= x; - if (width > 0) WebPMultARGBRowC(ptr + x, width, inverse); + if (width > 0) WebPMultARGBRow_C(ptr + x, width, inverse); } static void MultRow_SSE2(uint8_t* const ptr, const uint8_t* const alpha, @@ -261,7 +316,7 @@ static void MultRow_SSE2(uint8_t* const ptr, const uint8_t* const alpha, } } width -= x; - if (width > 0) WebPMultRowC(ptr + x, alpha + x, width, inverse); + if (width > 0) WebPMultRow_C(ptr + x, alpha + x, width, inverse); } //------------------------------------------------------------------------------ @@ -273,9 +328,12 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPInitAlphaProcessingSSE2(void) { WebPMultARGBRow = MultARGBRow_SSE2; WebPMultRow = MultRow_SSE2; WebPApplyAlphaMultiply = ApplyAlphaMultiply_SSE2; - WebPDispatchAlpha = DispatchAlpha; - WebPDispatchAlphaToGreen = DispatchAlphaToGreen; - WebPExtractAlpha = ExtractAlpha; + WebPDispatchAlpha = DispatchAlpha_SSE2; + WebPDispatchAlphaToGreen = DispatchAlphaToGreen_SSE2; + WebPExtractAlpha = ExtractAlpha_SSE2; + + WebPHasAlpha8b = HasAlpha8b_SSE2; + WebPHasAlpha32b = HasAlpha32b_SSE2; } #else // !WEBP_USE_SSE2 diff --git a/external/libwebp-0.6.0/src/dsp/alpha_processing_sse41.c b/external/libwebp-1.0.0/src/dsp/alpha_processing_sse41.c similarity index 93% rename from external/libwebp-0.6.0/src/dsp/alpha_processing_sse41.c rename to external/libwebp-1.0.0/src/dsp/alpha_processing_sse41.c index 986fde94..56040f9c 100644 --- a/external/libwebp-0.6.0/src/dsp/alpha_processing_sse41.c +++ b/external/libwebp-1.0.0/src/dsp/alpha_processing_sse41.c @@ -11,7 +11,7 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_SSE41) @@ -19,9 +19,9 @@ //------------------------------------------------------------------------------ -static int ExtractAlpha(const uint8_t* argb, int argb_stride, - int width, int height, - uint8_t* alpha, int alpha_stride) { +static int ExtractAlpha_SSE41(const uint8_t* argb, int argb_stride, + int width, int height, + uint8_t* alpha, int alpha_stride) { // alpha_and stores an 'and' operation of all the alpha[] values. The final // value is not 0xff if any of the alpha[] is not equal to 0xff. uint32_t alpha_and = 0xff; @@ -82,7 +82,7 @@ static int ExtractAlpha(const uint8_t* argb, int argb_stride, extern void WebPInitAlphaProcessingSSE41(void); WEBP_TSAN_IGNORE_FUNCTION void WebPInitAlphaProcessingSSE41(void) { - WebPExtractAlpha = ExtractAlpha; + WebPExtractAlpha = ExtractAlpha_SSE41; } #else // !WEBP_USE_SSE41 diff --git a/external/libwebp-0.6.0/src/dsp/common_sse2.h b/external/libwebp-1.0.0/src/dsp/common_sse2.h similarity index 94% rename from external/libwebp-0.6.0/src/dsp/common_sse2.h rename to external/libwebp-1.0.0/src/dsp/common_sse2.h index 995d7cf4..e9f1ebff 100644 --- a/external/libwebp-0.6.0/src/dsp/common_sse2.h +++ b/external/libwebp-1.0.0/src/dsp/common_sse2.h @@ -128,9 +128,9 @@ static WEBP_INLINE void VP8Transpose_2_4x4_16b( // Pack the planar buffers // rrrr... rrrr... gggg... gggg... bbbb... bbbb.... // triplet by triplet in the output buffer rgb as rgbrgbrgbrgb ... -static WEBP_INLINE void VP8PlanarTo24b(__m128i* const in0, __m128i* const in1, - __m128i* const in2, __m128i* const in3, - __m128i* const in4, __m128i* const in5) { +static WEBP_INLINE void VP8PlanarTo24b_SSE2( + __m128i* const in0, __m128i* const in1, __m128i* const in2, + __m128i* const in3, __m128i* const in4, __m128i* const in5) { // The input is 6 registers of sixteen 8b but for the sake of explanation, // let's take 6 registers of four 8b values. // To pack, we will keep taking one every two 8b integer and move it @@ -159,10 +159,10 @@ static WEBP_INLINE void VP8PlanarTo24b(__m128i* const in0, __m128i* const in1, // Convert four packed four-channel buffers like argbargbargbargb... into the // split channels aaaaa ... rrrr ... gggg .... bbbbb ...... -static WEBP_INLINE void VP8L32bToPlanar(__m128i* const in0, - __m128i* const in1, - __m128i* const in2, - __m128i* const in3) { +static WEBP_INLINE void VP8L32bToPlanar_SSE2(__m128i* const in0, + __m128i* const in1, + __m128i* const in2, + __m128i* const in3) { // Column-wise transpose. const __m128i A0 = _mm_unpacklo_epi8(*in0, *in1); const __m128i A1 = _mm_unpackhi_epi8(*in0, *in1); diff --git a/external/libwebp-1.0.0/src/dsp/common_sse41.h b/external/libwebp-1.0.0/src/dsp/common_sse41.h new file mode 100644 index 00000000..2f173c02 --- /dev/null +++ b/external/libwebp-1.0.0/src/dsp/common_sse41.h @@ -0,0 +1,132 @@ +// Copyright 2016 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// SSE4 code common to several files. +// +// Author: Vincent Rabaud (vrabaud@google.com) + +#ifndef WEBP_DSP_COMMON_SSE41_H_ +#define WEBP_DSP_COMMON_SSE41_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(WEBP_USE_SSE41) +#include + +//------------------------------------------------------------------------------ +// Channel mixing. +// Shuffles the input buffer as A0 0 0 A1 0 0 A2 ... +#define WEBP_SSE41_SHUFF(OUT, IN0, IN1) \ + OUT##0 = _mm_shuffle_epi8(*IN0, shuff0); \ + OUT##1 = _mm_shuffle_epi8(*IN0, shuff1); \ + OUT##2 = _mm_shuffle_epi8(*IN0, shuff2); \ + OUT##3 = _mm_shuffle_epi8(*IN1, shuff0); \ + OUT##4 = _mm_shuffle_epi8(*IN1, shuff1); \ + OUT##5 = _mm_shuffle_epi8(*IN1, shuff2); + +// Pack the planar buffers +// rrrr... rrrr... gggg... gggg... bbbb... bbbb.... +// triplet by triplet in the output buffer rgb as rgbrgbrgbrgb ... +static WEBP_INLINE void VP8PlanarTo24b_SSE41( + __m128i* const in0, __m128i* const in1, __m128i* const in2, + __m128i* const in3, __m128i* const in4, __m128i* const in5) { + __m128i R0, R1, R2, R3, R4, R5; + __m128i G0, G1, G2, G3, G4, G5; + __m128i B0, B1, B2, B3, B4, B5; + + // Process R. + { + const __m128i shuff0 = _mm_set_epi8( + 5, -1, -1, 4, -1, -1, 3, -1, -1, 2, -1, -1, 1, -1, -1, 0); + const __m128i shuff1 = _mm_set_epi8( + -1, 10, -1, -1, 9, -1, -1, 8, -1, -1, 7, -1, -1, 6, -1, -1); + const __m128i shuff2 = _mm_set_epi8( + -1, -1, 15, -1, -1, 14, -1, -1, 13, -1, -1, 12, -1, -1, 11, -1); + WEBP_SSE41_SHUFF(R, in0, in1) + } + + // Process G. + { + // Same as before, just shifted to the left by one and including the right + // padding. + const __m128i shuff0 = _mm_set_epi8( + -1, -1, 4, -1, -1, 3, -1, -1, 2, -1, -1, 1, -1, -1, 0, -1); + const __m128i shuff1 = _mm_set_epi8( + 10, -1, -1, 9, -1, -1, 8, -1, -1, 7, -1, -1, 6, -1, -1, 5); + const __m128i shuff2 = _mm_set_epi8( + -1, 15, -1, -1, 14, -1, -1, 13, -1, -1, 12, -1, -1, 11, -1, -1); + WEBP_SSE41_SHUFF(G, in2, in3) + } + + // Process B. + { + const __m128i shuff0 = _mm_set_epi8( + -1, 4, -1, -1, 3, -1, -1, 2, -1, -1, 1, -1, -1, 0, -1, -1); + const __m128i shuff1 = _mm_set_epi8( + -1, -1, 9, -1, -1, 8, -1, -1, 7, -1, -1, 6, -1, -1, 5, -1); + const __m128i shuff2 = _mm_set_epi8( + 15, -1, -1, 14, -1, -1, 13, -1, -1, 12, -1, -1, 11, -1, -1, 10); + WEBP_SSE41_SHUFF(B, in4, in5) + } + + // OR the different channels. + { + const __m128i RG0 = _mm_or_si128(R0, G0); + const __m128i RG1 = _mm_or_si128(R1, G1); + const __m128i RG2 = _mm_or_si128(R2, G2); + const __m128i RG3 = _mm_or_si128(R3, G3); + const __m128i RG4 = _mm_or_si128(R4, G4); + const __m128i RG5 = _mm_or_si128(R5, G5); + *in0 = _mm_or_si128(RG0, B0); + *in1 = _mm_or_si128(RG1, B1); + *in2 = _mm_or_si128(RG2, B2); + *in3 = _mm_or_si128(RG3, B3); + *in4 = _mm_or_si128(RG4, B4); + *in5 = _mm_or_si128(RG5, B5); + } +} + +#undef WEBP_SSE41_SHUFF + +// Convert four packed four-channel buffers like argbargbargbargb... into the +// split channels aaaaa ... rrrr ... gggg .... bbbbb ...... +static WEBP_INLINE void VP8L32bToPlanar_SSE41(__m128i* const in0, + __m128i* const in1, + __m128i* const in2, + __m128i* const in3) { + // aaaarrrrggggbbbb + const __m128i shuff0 = + _mm_set_epi8(15, 11, 7, 3, 14, 10, 6, 2, 13, 9, 5, 1, 12, 8, 4, 0); + const __m128i A0 = _mm_shuffle_epi8(*in0, shuff0); + const __m128i A1 = _mm_shuffle_epi8(*in1, shuff0); + const __m128i A2 = _mm_shuffle_epi8(*in2, shuff0); + const __m128i A3 = _mm_shuffle_epi8(*in3, shuff0); + // A0A1R0R1 + // G0G1B0B1 + // A2A3R2R3 + // G0G1B0B1 + const __m128i B0 = _mm_unpacklo_epi32(A0, A1); + const __m128i B1 = _mm_unpackhi_epi32(A0, A1); + const __m128i B2 = _mm_unpacklo_epi32(A2, A3); + const __m128i B3 = _mm_unpackhi_epi32(A2, A3); + *in3 = _mm_unpacklo_epi64(B0, B2); + *in2 = _mm_unpackhi_epi64(B0, B2); + *in1 = _mm_unpacklo_epi64(B1, B3); + *in0 = _mm_unpackhi_epi64(B1, B3); +} + +#endif // WEBP_USE_SSE41 + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // WEBP_DSP_COMMON_SSE41_H_ diff --git a/external/libwebp-0.6.0/src/dsp/cost.c b/external/libwebp-1.0.0/src/dsp/cost.c similarity index 96% rename from external/libwebp-0.6.0/src/dsp/cost.c rename to external/libwebp-1.0.0/src/dsp/cost.c index 58ddea72..634ccc20 100644 --- a/external/libwebp-0.6.0/src/dsp/cost.c +++ b/external/libwebp-1.0.0/src/dsp/cost.c @@ -9,8 +9,8 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" -#include "../enc/cost_enc.h" +#include "src/dsp/dsp.h" +#include "src/enc/cost_enc.h" //------------------------------------------------------------------------------ // Boolean-cost cost table @@ -319,7 +319,7 @@ const uint8_t VP8EncBands[16 + 1] = { //------------------------------------------------------------------------------ // Mode costs -static int GetResidualCost(int ctx0, const VP8Residual* const res) { +static int GetResidualCost_C(int ctx0, const VP8Residual* const res) { int n = res->first; // should be prob[VP8EncBands[n]], but it's equivalent for n=0 or 1 const int p0 = res->prob[n][ctx0][0]; @@ -354,8 +354,8 @@ static int GetResidualCost(int ctx0, const VP8Residual* const res) { return cost; } -static void SetResidualCoeffs(const int16_t* const coeffs, - VP8Residual* const res) { +static void SetResidualCoeffs_C(const int16_t* const coeffs, + VP8Residual* const res) { int n; res->last = -1; assert(res->first == 0 || coeffs[0] == 0); @@ -378,14 +378,9 @@ extern void VP8EncDspCostInitMIPS32(void); extern void VP8EncDspCostInitMIPSdspR2(void); extern void VP8EncDspCostInitSSE2(void); -static volatile VP8CPUInfo cost_last_cpuinfo_used = - (VP8CPUInfo)&cost_last_cpuinfo_used; - -WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspCostInit(void) { - if (cost_last_cpuinfo_used == VP8GetCPUInfo) return; - - VP8GetResidualCost = GetResidualCost; - VP8SetResidualCoeffs = SetResidualCoeffs; +WEBP_DSP_INIT_FUNC(VP8EncDspCostInit) { + VP8GetResidualCost = GetResidualCost_C; + VP8SetResidualCoeffs = SetResidualCoeffs_C; // If defined, use CPUInfo() to overwrite some pointers with faster versions. if (VP8GetCPUInfo != NULL) { @@ -405,8 +400,6 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspCostInit(void) { } #endif } - - cost_last_cpuinfo_used = VP8GetCPUInfo; } //------------------------------------------------------------------------------ diff --git a/external/libwebp-0.6.0/src/dsp/cost_mips32.c b/external/libwebp-1.0.0/src/dsp/cost_mips32.c similarity index 95% rename from external/libwebp-0.6.0/src/dsp/cost_mips32.c rename to external/libwebp-1.0.0/src/dsp/cost_mips32.c index 3102da87..0500f88c 100644 --- a/external/libwebp-0.6.0/src/dsp/cost_mips32.c +++ b/external/libwebp-1.0.0/src/dsp/cost_mips32.c @@ -9,13 +9,13 @@ // // Author: Djordje Pesut (djordje.pesut@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MIPS32) -#include "../enc/cost_enc.h" +#include "src/enc/cost_enc.h" -static int GetResidualCost(int ctx0, const VP8Residual* const res) { +static int GetResidualCost_MIPS32(int ctx0, const VP8Residual* const res) { int temp0, temp1; int v_reg, ctx_reg; int n = res->first; @@ -96,8 +96,8 @@ static int GetResidualCost(int ctx0, const VP8Residual* const res) { return cost; } -static void SetResidualCoeffs(const int16_t* const coeffs, - VP8Residual* const res) { +static void SetResidualCoeffs_MIPS32(const int16_t* const coeffs, + VP8Residual* const res) { const int16_t* p_coeffs = (int16_t*)coeffs; int temp0, temp1, temp2, n, n1; assert(res->first == 0 || coeffs[0] == 0); @@ -143,8 +143,8 @@ static void SetResidualCoeffs(const int16_t* const coeffs, extern void VP8EncDspCostInitMIPS32(void); WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspCostInitMIPS32(void) { - VP8GetResidualCost = GetResidualCost; - VP8SetResidualCoeffs = SetResidualCoeffs; + VP8GetResidualCost = GetResidualCost_MIPS32; + VP8SetResidualCoeffs = SetResidualCoeffs_MIPS32; } #else // !WEBP_USE_MIPS32 diff --git a/external/libwebp-0.6.0/src/dsp/cost_mips_dsp_r2.c b/external/libwebp-1.0.0/src/dsp/cost_mips_dsp_r2.c similarity index 96% rename from external/libwebp-0.6.0/src/dsp/cost_mips_dsp_r2.c rename to external/libwebp-1.0.0/src/dsp/cost_mips_dsp_r2.c index 6ec8aeb6..51248de7 100644 --- a/external/libwebp-0.6.0/src/dsp/cost_mips_dsp_r2.c +++ b/external/libwebp-1.0.0/src/dsp/cost_mips_dsp_r2.c @@ -9,13 +9,13 @@ // // Author: Djordje Pesut (djordje.pesut@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MIPS_DSP_R2) -#include "../enc/cost_enc.h" +#include "src/enc/cost_enc.h" -static int GetResidualCost(int ctx0, const VP8Residual* const res) { +static int GetResidualCost_MIPSdspR2(int ctx0, const VP8Residual* const res) { int temp0, temp1; int v_reg, ctx_reg; int n = res->first; @@ -97,7 +97,7 @@ static int GetResidualCost(int ctx0, const VP8Residual* const res) { extern void VP8EncDspCostInitMIPSdspR2(void); WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspCostInitMIPSdspR2(void) { - VP8GetResidualCost = GetResidualCost; + VP8GetResidualCost = GetResidualCost_MIPSdspR2; } #else // !WEBP_USE_MIPS_DSP_R2 diff --git a/external/libwebp-0.6.0/src/dsp/cost_sse2.c b/external/libwebp-1.0.0/src/dsp/cost_sse2.c similarity index 90% rename from external/libwebp-0.6.0/src/dsp/cost_sse2.c rename to external/libwebp-1.0.0/src/dsp/cost_sse2.c index 421d51fd..487a0799 100644 --- a/external/libwebp-0.6.0/src/dsp/cost_sse2.c +++ b/external/libwebp-1.0.0/src/dsp/cost_sse2.c @@ -11,19 +11,19 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_SSE2) #include -#include "../enc/cost_enc.h" -#include "../enc/vp8i_enc.h" -#include "../utils/utils.h" +#include "src/enc/cost_enc.h" +#include "src/enc/vp8i_enc.h" +#include "src/utils/utils.h" //------------------------------------------------------------------------------ -static void SetResidualCoeffsSSE2(const int16_t* const coeffs, - VP8Residual* const res) { +static void SetResidualCoeffs_SSE2(const int16_t* const coeffs, + VP8Residual* const res) { const __m128i c0 = _mm_loadu_si128((const __m128i*)(coeffs + 0)); const __m128i c1 = _mm_loadu_si128((const __m128i*)(coeffs + 8)); // Use SSE2 to compare 16 values with a single instruction. @@ -42,7 +42,7 @@ static void SetResidualCoeffsSSE2(const int16_t* const coeffs, res->coeffs = coeffs; } -static int GetResidualCostSSE2(int ctx0, const VP8Residual* const res) { +static int GetResidualCost_SSE2(int ctx0, const VP8Residual* const res) { uint8_t levels[16], ctxs[16]; uint16_t abs_levels[16]; int n = res->first; @@ -108,8 +108,8 @@ static int GetResidualCostSSE2(int ctx0, const VP8Residual* const res) { extern void VP8EncDspCostInitSSE2(void); WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspCostInitSSE2(void) { - VP8SetResidualCoeffs = SetResidualCoeffsSSE2; - VP8GetResidualCost = GetResidualCostSSE2; + VP8SetResidualCoeffs = SetResidualCoeffs_SSE2; + VP8GetResidualCost = GetResidualCost_SSE2; } #else // !WEBP_USE_SSE2 diff --git a/external/libwebp-0.6.0/src/dsp/cpu.c b/external/libwebp-1.0.0/src/dsp/cpu.c similarity index 98% rename from external/libwebp-0.6.0/src/dsp/cpu.c rename to external/libwebp-1.0.0/src/dsp/cpu.c index b5583b6e..8b40feed 100644 --- a/external/libwebp-0.6.0/src/dsp/cpu.c +++ b/external/libwebp-1.0.0/src/dsp/cpu.c @@ -11,7 +11,7 @@ // // Author: Christian Duvivier (cduvivier@google.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_HAVE_NEON_RTCD) #include @@ -143,7 +143,7 @@ static int x86CPUInfo(CPUFeature feature) { return !!(cpu_info[2] & (1 << 0)); } if (feature == kSlowSSSE3) { - if (is_intel && (cpu_info[2] & (1 << 0))) { // SSSE3? + if (is_intel && (cpu_info[2] & (1 << 9))) { // SSSE3? return CheckSlowModel(cpu_info[0]); } return 0; diff --git a/external/libwebp-0.6.0/src/dsp/dec.c b/external/libwebp-1.0.0/src/dsp/dec.c similarity index 62% rename from external/libwebp-0.6.0/src/dsp/dec.c rename to external/libwebp-1.0.0/src/dsp/dec.c index 007e985d..1119842d 100644 --- a/external/libwebp-0.6.0/src/dsp/dec.c +++ b/external/libwebp-1.0.0/src/dsp/dec.c @@ -11,9 +11,11 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" -#include "../dec/vp8i_dec.h" -#include "../utils/utils.h" +#include + +#include "src/dsp/dsp.h" +#include "src/dec/vp8i_dec.h" +#include "src/utils/utils.h" //------------------------------------------------------------------------------ @@ -25,7 +27,7 @@ static WEBP_INLINE uint8_t clip_8b(int v) { // Transforms (Paragraph 14.4) #define STORE(x, y, v) \ - dst[x + y * BPS] = clip_8b(dst[x + y * BPS] + ((v) >> 3)) + dst[(x) + (y) * BPS] = clip_8b(dst[(x) + (y) * BPS] + ((v) >> 3)) #define STORE2(y, dc, d, c) do { \ const int DC = (dc); \ @@ -38,7 +40,8 @@ static WEBP_INLINE uint8_t clip_8b(int v) { #define MUL1(a) ((((a) * 20091) >> 16) + (a)) #define MUL2(a) (((a) * 35468) >> 16) -static void TransformOne(const int16_t* in, uint8_t* dst) { +#if !WEBP_NEON_OMIT_C_CODE +static void TransformOne_C(const int16_t* in, uint8_t* dst) { int C[4 * 4], *tmp; int i; tmp = C; @@ -78,7 +81,7 @@ static void TransformOne(const int16_t* in, uint8_t* dst) { } // Simplified transform when only in[0], in[1] and in[4] are non-zero -static void TransformAC3(const int16_t* in, uint8_t* dst) { +static void TransformAC3_C(const int16_t* in, uint8_t* dst) { const int a = in[0] + 4; const int c4 = MUL2(in[4]); const int d4 = MUL1(in[4]); @@ -93,19 +96,21 @@ static void TransformAC3(const int16_t* in, uint8_t* dst) { #undef MUL2 #undef STORE2 -static void TransformTwo(const int16_t* in, uint8_t* dst, int do_two) { - TransformOne(in, dst); +static void TransformTwo_C(const int16_t* in, uint8_t* dst, int do_two) { + TransformOne_C(in, dst); if (do_two) { - TransformOne(in + 16, dst + 4); + TransformOne_C(in + 16, dst + 4); } } +#endif // !WEBP_NEON_OMIT_C_CODE -static void TransformUV(const int16_t* in, uint8_t* dst) { +static void TransformUV_C(const int16_t* in, uint8_t* dst) { VP8Transform(in + 0 * 16, dst, 1); VP8Transform(in + 2 * 16, dst + 4 * BPS, 1); } -static void TransformDC(const int16_t* in, uint8_t* dst) { +#if !WEBP_NEON_OMIT_C_CODE +static void TransformDC_C(const int16_t* in, uint8_t* dst) { const int DC = in[0] + 4; int i, j; for (j = 0; j < 4; ++j) { @@ -114,8 +119,9 @@ static void TransformDC(const int16_t* in, uint8_t* dst) { } } } +#endif // !WEBP_NEON_OMIT_C_CODE -static void TransformDCUV(const int16_t* in, uint8_t* dst) { +static void TransformDCUV_C(const int16_t* in, uint8_t* dst) { if (in[0 * 16]) VP8TransformDC(in + 0 * 16, dst); if (in[1 * 16]) VP8TransformDC(in + 1 * 16, dst + 4); if (in[2 * 16]) VP8TransformDC(in + 2 * 16, dst + 4 * BPS); @@ -127,7 +133,8 @@ static void TransformDCUV(const int16_t* in, uint8_t* dst) { //------------------------------------------------------------------------------ // Paragraph 14.3 -static void TransformWHT(const int16_t* in, int16_t* out) { +#if !WEBP_NEON_OMIT_C_CODE +static void TransformWHT_C(const int16_t* in, int16_t* out) { int tmp[16]; int i; for (i = 0; i < 4; ++i) { @@ -153,6 +160,7 @@ static void TransformWHT(const int16_t* in, int16_t* out) { out += 64; } } +#endif // !WEBP_NEON_OMIT_C_CODE void (*VP8TransformWHT)(const int16_t* in, int16_t* out); @@ -161,6 +169,7 @@ void (*VP8TransformWHT)(const int16_t* in, int16_t* out); #define DST(x, y) dst[(x) + (y) * BPS] +#if !WEBP_NEON_OMIT_C_CODE static WEBP_INLINE void TrueMotion(uint8_t* dst, int size) { const uint8_t* top = dst - BPS; const uint8_t* const clip0 = VP8kclip1 - top[-1]; @@ -174,21 +183,21 @@ static WEBP_INLINE void TrueMotion(uint8_t* dst, int size) { dst += BPS; } } -static void TM4(uint8_t* dst) { TrueMotion(dst, 4); } -static void TM8uv(uint8_t* dst) { TrueMotion(dst, 8); } -static void TM16(uint8_t* dst) { TrueMotion(dst, 16); } +static void TM4_C(uint8_t* dst) { TrueMotion(dst, 4); } +static void TM8uv_C(uint8_t* dst) { TrueMotion(dst, 8); } +static void TM16_C(uint8_t* dst) { TrueMotion(dst, 16); } //------------------------------------------------------------------------------ // 16x16 -static void VE16(uint8_t* dst) { // vertical +static void VE16_C(uint8_t* dst) { // vertical int j; for (j = 0; j < 16; ++j) { memcpy(dst + j * BPS, dst - BPS, 16); } } -static void HE16(uint8_t* dst) { // horizontal +static void HE16_C(uint8_t* dst) { // horizontal int j; for (j = 16; j > 0; --j) { memset(dst, dst[-1], 16); @@ -203,7 +212,7 @@ static WEBP_INLINE void Put16(int v, uint8_t* dst) { } } -static void DC16(uint8_t* dst) { // DC +static void DC16_C(uint8_t* dst) { // DC int DC = 16; int j; for (j = 0; j < 16; ++j) { @@ -212,7 +221,7 @@ static void DC16(uint8_t* dst) { // DC Put16(DC >> 5, dst); } -static void DC16NoTop(uint8_t* dst) { // DC with top samples not available +static void DC16NoTop_C(uint8_t* dst) { // DC with top samples not available int DC = 8; int j; for (j = 0; j < 16; ++j) { @@ -221,7 +230,7 @@ static void DC16NoTop(uint8_t* dst) { // DC with top samples not available Put16(DC >> 4, dst); } -static void DC16NoLeft(uint8_t* dst) { // DC with left samples not available +static void DC16NoLeft_C(uint8_t* dst) { // DC with left samples not available int DC = 8; int i; for (i = 0; i < 16; ++i) { @@ -230,9 +239,10 @@ static void DC16NoLeft(uint8_t* dst) { // DC with left samples not available Put16(DC >> 4, dst); } -static void DC16NoTopLeft(uint8_t* dst) { // DC with no top and left samples +static void DC16NoTopLeft_C(uint8_t* dst) { // DC with no top and left samples Put16(0x80, dst); } +#endif // !WEBP_NEON_OMIT_C_CODE VP8PredFunc VP8PredLuma16[NUM_B_DC_MODES]; @@ -242,7 +252,8 @@ VP8PredFunc VP8PredLuma16[NUM_B_DC_MODES]; #define AVG3(a, b, c) ((uint8_t)(((a) + 2 * (b) + (c) + 2) >> 2)) #define AVG2(a, b) (((a) + (b) + 1) >> 1) -static void VE4(uint8_t* dst) { // vertical +#if !WEBP_NEON_OMIT_C_CODE +static void VE4_C(uint8_t* dst) { // vertical const uint8_t* top = dst - BPS; const uint8_t vals[4] = { AVG3(top[-1], top[0], top[1]), @@ -255,8 +266,9 @@ static void VE4(uint8_t* dst) { // vertical memcpy(dst + i * BPS, vals, sizeof(vals)); } } +#endif // !WEBP_NEON_OMIT_C_CODE -static void HE4(uint8_t* dst) { // horizontal +static void HE4_C(uint8_t* dst) { // horizontal const int A = dst[-1 - BPS]; const int B = dst[-1]; const int C = dst[-1 + BPS]; @@ -268,7 +280,8 @@ static void HE4(uint8_t* dst) { // horizontal WebPUint32ToMem(dst + 3 * BPS, 0x01010101U * AVG3(D, E, E)); } -static void DC4(uint8_t* dst) { // DC +#if !WEBP_NEON_OMIT_C_CODE +static void DC4_C(uint8_t* dst) { // DC uint32_t dc = 4; int i; for (i = 0; i < 4; ++i) dc += dst[i - BPS] + dst[-1 + i * BPS]; @@ -276,7 +289,7 @@ static void DC4(uint8_t* dst) { // DC for (i = 0; i < 4; ++i) memset(dst + i * BPS, dc, 4); } -static void RD4(uint8_t* dst) { // Down-right +static void RD4_C(uint8_t* dst) { // Down-right const int I = dst[-1 + 0 * BPS]; const int J = dst[-1 + 1 * BPS]; const int K = dst[-1 + 2 * BPS]; @@ -295,7 +308,7 @@ static void RD4(uint8_t* dst) { // Down-right DST(3, 0) = AVG3(D, C, B); } -static void LD4(uint8_t* dst) { // Down-Left +static void LD4_C(uint8_t* dst) { // Down-Left const int A = dst[0 - BPS]; const int B = dst[1 - BPS]; const int C = dst[2 - BPS]; @@ -312,8 +325,9 @@ static void LD4(uint8_t* dst) { // Down-Left DST(3, 2) = DST(2, 3) = AVG3(F, G, H); DST(3, 3) = AVG3(G, H, H); } +#endif // !WEBP_NEON_OMIT_C_CODE -static void VR4(uint8_t* dst) { // Vertical-Right +static void VR4_C(uint8_t* dst) { // Vertical-Right const int I = dst[-1 + 0 * BPS]; const int J = dst[-1 + 1 * BPS]; const int K = dst[-1 + 2 * BPS]; @@ -335,7 +349,7 @@ static void VR4(uint8_t* dst) { // Vertical-Right DST(3, 1) = AVG3(B, C, D); } -static void VL4(uint8_t* dst) { // Vertical-Left +static void VL4_C(uint8_t* dst) { // Vertical-Left const int A = dst[0 - BPS]; const int B = dst[1 - BPS]; const int C = dst[2 - BPS]; @@ -357,7 +371,7 @@ static void VL4(uint8_t* dst) { // Vertical-Left DST(3, 3) = AVG3(F, G, H); } -static void HU4(uint8_t* dst) { // Horizontal-Up +static void HU4_C(uint8_t* dst) { // Horizontal-Up const int I = dst[-1 + 0 * BPS]; const int J = dst[-1 + 1 * BPS]; const int K = dst[-1 + 2 * BPS]; @@ -372,7 +386,7 @@ static void HU4(uint8_t* dst) { // Horizontal-Up DST(0, 3) = DST(1, 3) = DST(2, 3) = DST(3, 3) = L; } -static void HD4(uint8_t* dst) { // Horizontal-Down +static void HD4_C(uint8_t* dst) { // Horizontal-Down const int I = dst[-1 + 0 * BPS]; const int J = dst[-1 + 1 * BPS]; const int K = dst[-1 + 2 * BPS]; @@ -404,14 +418,15 @@ VP8PredFunc VP8PredLuma4[NUM_BMODES]; //------------------------------------------------------------------------------ // Chroma -static void VE8uv(uint8_t* dst) { // vertical +#if !WEBP_NEON_OMIT_C_CODE +static void VE8uv_C(uint8_t* dst) { // vertical int j; for (j = 0; j < 8; ++j) { memcpy(dst + j * BPS, dst - BPS, 8); } } -static void HE8uv(uint8_t* dst) { // horizontal +static void HE8uv_C(uint8_t* dst) { // horizontal int j; for (j = 0; j < 8; ++j) { memset(dst, dst[-1], 8); @@ -427,7 +442,7 @@ static WEBP_INLINE void Put8x8uv(uint8_t value, uint8_t* dst) { } } -static void DC8uv(uint8_t* dst) { // DC +static void DC8uv_C(uint8_t* dst) { // DC int dc0 = 8; int i; for (i = 0; i < 8; ++i) { @@ -436,7 +451,7 @@ static void DC8uv(uint8_t* dst) { // DC Put8x8uv(dc0 >> 4, dst); } -static void DC8uvNoLeft(uint8_t* dst) { // DC with no left samples +static void DC8uvNoLeft_C(uint8_t* dst) { // DC with no left samples int dc0 = 4; int i; for (i = 0; i < 8; ++i) { @@ -445,7 +460,7 @@ static void DC8uvNoLeft(uint8_t* dst) { // DC with no left samples Put8x8uv(dc0 >> 3, dst); } -static void DC8uvNoTop(uint8_t* dst) { // DC with no top samples +static void DC8uvNoTop_C(uint8_t* dst) { // DC with no top samples int dc0 = 4; int i; for (i = 0; i < 8; ++i) { @@ -454,17 +469,19 @@ static void DC8uvNoTop(uint8_t* dst) { // DC with no top samples Put8x8uv(dc0 >> 3, dst); } -static void DC8uvNoTopLeft(uint8_t* dst) { // DC with nothing +static void DC8uvNoTopLeft_C(uint8_t* dst) { // DC with nothing Put8x8uv(0x80, dst); } +#endif // !WEBP_NEON_OMIT_C_CODE VP8PredFunc VP8PredChroma8[NUM_B_DC_MODES]; //------------------------------------------------------------------------------ // Edge filtering functions +#if !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC // 4 pixels in, 2 pixels out -static WEBP_INLINE void do_filter2(uint8_t* p, int step) { +static WEBP_INLINE void DoFilter2_C(uint8_t* p, int step) { const int p1 = p[-2*step], p0 = p[-step], q0 = p[0], q1 = p[step]; const int a = 3 * (q0 - p0) + VP8ksclip1[p1 - q1]; // in [-893,892] const int a1 = VP8ksclip2[(a + 4) >> 3]; // in [-16,15] @@ -474,7 +491,7 @@ static WEBP_INLINE void do_filter2(uint8_t* p, int step) { } // 4 pixels in, 4 pixels out -static WEBP_INLINE void do_filter4(uint8_t* p, int step) { +static WEBP_INLINE void DoFilter4_C(uint8_t* p, int step) { const int p1 = p[-2*step], p0 = p[-step], q0 = p[0], q1 = p[step]; const int a = 3 * (q0 - p0); const int a1 = VP8ksclip2[(a + 4) >> 3]; @@ -487,7 +504,7 @@ static WEBP_INLINE void do_filter4(uint8_t* p, int step) { } // 6 pixels in, 6 pixels out -static WEBP_INLINE void do_filter6(uint8_t* p, int step) { +static WEBP_INLINE void DoFilter6_C(uint8_t* p, int step) { const int p2 = p[-3*step], p1 = p[-2*step], p0 = p[-step]; const int q0 = p[0], q1 = p[step], q2 = p[2*step]; const int a = VP8ksclip1[3 * (q0 - p0) + VP8ksclip1[p1 - q1]]; @@ -503,18 +520,22 @@ static WEBP_INLINE void do_filter6(uint8_t* p, int step) { p[ 2*step] = VP8kclip1[q2 - a3]; } -static WEBP_INLINE int hev(const uint8_t* p, int step, int thresh) { +static WEBP_INLINE int Hev(const uint8_t* p, int step, int thresh) { const int p1 = p[-2*step], p0 = p[-step], q0 = p[0], q1 = p[step]; return (VP8kabs0[p1 - p0] > thresh) || (VP8kabs0[q1 - q0] > thresh); } +#endif // !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC -static WEBP_INLINE int needs_filter(const uint8_t* p, int step, int t) { +#if !WEBP_NEON_OMIT_C_CODE +static WEBP_INLINE int NeedsFilter_C(const uint8_t* p, int step, int t) { const int p1 = p[-2 * step], p0 = p[-step], q0 = p[0], q1 = p[step]; return ((4 * VP8kabs0[p0 - q0] + VP8kabs0[p1 - q1]) <= t); } +#endif // !WEBP_NEON_OMIT_C_CODE -static WEBP_INLINE int needs_filter2(const uint8_t* p, - int step, int t, int it) { +#if !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC +static WEBP_INLINE int NeedsFilter2_C(const uint8_t* p, + int step, int t, int it) { const int p3 = p[-4 * step], p2 = p[-3 * step], p1 = p[-2 * step]; const int p0 = p[-step], q0 = p[0]; const int q1 = p[step], q2 = p[2 * step], q3 = p[3 * step]; @@ -523,140 +544,159 @@ static WEBP_INLINE int needs_filter2(const uint8_t* p, VP8kabs0[p1 - p0] <= it && VP8kabs0[q3 - q2] <= it && VP8kabs0[q2 - q1] <= it && VP8kabs0[q1 - q0] <= it; } +#endif // !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC //------------------------------------------------------------------------------ // Simple In-loop filtering (Paragraph 15.2) -static void SimpleVFilter16(uint8_t* p, int stride, int thresh) { +#if !WEBP_NEON_OMIT_C_CODE +static void SimpleVFilter16_C(uint8_t* p, int stride, int thresh) { int i; const int thresh2 = 2 * thresh + 1; for (i = 0; i < 16; ++i) { - if (needs_filter(p + i, stride, thresh2)) { - do_filter2(p + i, stride); + if (NeedsFilter_C(p + i, stride, thresh2)) { + DoFilter2_C(p + i, stride); } } } -static void SimpleHFilter16(uint8_t* p, int stride, int thresh) { +static void SimpleHFilter16_C(uint8_t* p, int stride, int thresh) { int i; const int thresh2 = 2 * thresh + 1; for (i = 0; i < 16; ++i) { - if (needs_filter(p + i * stride, 1, thresh2)) { - do_filter2(p + i * stride, 1); + if (NeedsFilter_C(p + i * stride, 1, thresh2)) { + DoFilter2_C(p + i * stride, 1); } } } -static void SimpleVFilter16i(uint8_t* p, int stride, int thresh) { +static void SimpleVFilter16i_C(uint8_t* p, int stride, int thresh) { int k; for (k = 3; k > 0; --k) { p += 4 * stride; - SimpleVFilter16(p, stride, thresh); + SimpleVFilter16_C(p, stride, thresh); } } -static void SimpleHFilter16i(uint8_t* p, int stride, int thresh) { +static void SimpleHFilter16i_C(uint8_t* p, int stride, int thresh) { int k; for (k = 3; k > 0; --k) { p += 4; - SimpleHFilter16(p, stride, thresh); + SimpleHFilter16_C(p, stride, thresh); } } +#endif // !WEBP_NEON_OMIT_C_CODE //------------------------------------------------------------------------------ // Complex In-loop filtering (Paragraph 15.3) -static WEBP_INLINE void FilterLoop26(uint8_t* p, - int hstride, int vstride, int size, - int thresh, int ithresh, int hev_thresh) { +#if !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC +static WEBP_INLINE void FilterLoop26_C(uint8_t* p, + int hstride, int vstride, int size, + int thresh, int ithresh, + int hev_thresh) { const int thresh2 = 2 * thresh + 1; while (size-- > 0) { - if (needs_filter2(p, hstride, thresh2, ithresh)) { - if (hev(p, hstride, hev_thresh)) { - do_filter2(p, hstride); + if (NeedsFilter2_C(p, hstride, thresh2, ithresh)) { + if (Hev(p, hstride, hev_thresh)) { + DoFilter2_C(p, hstride); } else { - do_filter6(p, hstride); + DoFilter6_C(p, hstride); } } p += vstride; } } -static WEBP_INLINE void FilterLoop24(uint8_t* p, - int hstride, int vstride, int size, - int thresh, int ithresh, int hev_thresh) { +static WEBP_INLINE void FilterLoop24_C(uint8_t* p, + int hstride, int vstride, int size, + int thresh, int ithresh, + int hev_thresh) { const int thresh2 = 2 * thresh + 1; while (size-- > 0) { - if (needs_filter2(p, hstride, thresh2, ithresh)) { - if (hev(p, hstride, hev_thresh)) { - do_filter2(p, hstride); + if (NeedsFilter2_C(p, hstride, thresh2, ithresh)) { + if (Hev(p, hstride, hev_thresh)) { + DoFilter2_C(p, hstride); } else { - do_filter4(p, hstride); + DoFilter4_C(p, hstride); } } p += vstride; } } +#endif // !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC +#if !WEBP_NEON_OMIT_C_CODE // on macroblock edges -static void VFilter16(uint8_t* p, int stride, - int thresh, int ithresh, int hev_thresh) { - FilterLoop26(p, stride, 1, 16, thresh, ithresh, hev_thresh); +static void VFilter16_C(uint8_t* p, int stride, + int thresh, int ithresh, int hev_thresh) { + FilterLoop26_C(p, stride, 1, 16, thresh, ithresh, hev_thresh); } -static void HFilter16(uint8_t* p, int stride, - int thresh, int ithresh, int hev_thresh) { - FilterLoop26(p, 1, stride, 16, thresh, ithresh, hev_thresh); +static void HFilter16_C(uint8_t* p, int stride, + int thresh, int ithresh, int hev_thresh) { + FilterLoop26_C(p, 1, stride, 16, thresh, ithresh, hev_thresh); } // on three inner edges -static void VFilter16i(uint8_t* p, int stride, - int thresh, int ithresh, int hev_thresh) { +static void VFilter16i_C(uint8_t* p, int stride, + int thresh, int ithresh, int hev_thresh) { int k; for (k = 3; k > 0; --k) { p += 4 * stride; - FilterLoop24(p, stride, 1, 16, thresh, ithresh, hev_thresh); + FilterLoop24_C(p, stride, 1, 16, thresh, ithresh, hev_thresh); } } +#endif // !WEBP_NEON_OMIT_C_CODE -static void HFilter16i(uint8_t* p, int stride, - int thresh, int ithresh, int hev_thresh) { +#if !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC +static void HFilter16i_C(uint8_t* p, int stride, + int thresh, int ithresh, int hev_thresh) { int k; for (k = 3; k > 0; --k) { p += 4; - FilterLoop24(p, 1, stride, 16, thresh, ithresh, hev_thresh); + FilterLoop24_C(p, 1, stride, 16, thresh, ithresh, hev_thresh); } } +#endif // !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC +#if !WEBP_NEON_OMIT_C_CODE // 8-pixels wide variant, for chroma filtering -static void VFilter8(uint8_t* u, uint8_t* v, int stride, - int thresh, int ithresh, int hev_thresh) { - FilterLoop26(u, stride, 1, 8, thresh, ithresh, hev_thresh); - FilterLoop26(v, stride, 1, 8, thresh, ithresh, hev_thresh); +static void VFilter8_C(uint8_t* u, uint8_t* v, int stride, + int thresh, int ithresh, int hev_thresh) { + FilterLoop26_C(u, stride, 1, 8, thresh, ithresh, hev_thresh); + FilterLoop26_C(v, stride, 1, 8, thresh, ithresh, hev_thresh); } +#endif // !WEBP_NEON_OMIT_C_CODE -static void HFilter8(uint8_t* u, uint8_t* v, int stride, - int thresh, int ithresh, int hev_thresh) { - FilterLoop26(u, 1, stride, 8, thresh, ithresh, hev_thresh); - FilterLoop26(v, 1, stride, 8, thresh, ithresh, hev_thresh); +#if !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC +static void HFilter8_C(uint8_t* u, uint8_t* v, int stride, + int thresh, int ithresh, int hev_thresh) { + FilterLoop26_C(u, 1, stride, 8, thresh, ithresh, hev_thresh); + FilterLoop26_C(v, 1, stride, 8, thresh, ithresh, hev_thresh); } +#endif // !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC -static void VFilter8i(uint8_t* u, uint8_t* v, int stride, - int thresh, int ithresh, int hev_thresh) { - FilterLoop24(u + 4 * stride, stride, 1, 8, thresh, ithresh, hev_thresh); - FilterLoop24(v + 4 * stride, stride, 1, 8, thresh, ithresh, hev_thresh); +#if !WEBP_NEON_OMIT_C_CODE +static void VFilter8i_C(uint8_t* u, uint8_t* v, int stride, + int thresh, int ithresh, int hev_thresh) { + FilterLoop24_C(u + 4 * stride, stride, 1, 8, thresh, ithresh, hev_thresh); + FilterLoop24_C(v + 4 * stride, stride, 1, 8, thresh, ithresh, hev_thresh); } +#endif // !WEBP_NEON_OMIT_C_CODE -static void HFilter8i(uint8_t* u, uint8_t* v, int stride, - int thresh, int ithresh, int hev_thresh) { - FilterLoop24(u + 4, 1, stride, 8, thresh, ithresh, hev_thresh); - FilterLoop24(v + 4, 1, stride, 8, thresh, ithresh, hev_thresh); +#if !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC +static void HFilter8i_C(uint8_t* u, uint8_t* v, int stride, + int thresh, int ithresh, int hev_thresh) { + FilterLoop24_C(u + 4, 1, stride, 8, thresh, ithresh, hev_thresh); + FilterLoop24_C(v + 4, 1, stride, 8, thresh, ithresh, hev_thresh); } +#endif // !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC //------------------------------------------------------------------------------ -static void DitherCombine8x8(const uint8_t* dither, uint8_t* dst, - int dst_stride) { +static void DitherCombine8x8_C(const uint8_t* dither, uint8_t* dst, + int dst_stride) { int i, j; for (j = 0; j < 8; ++j) { for (i = 0; i < 8; ++i) { @@ -701,62 +741,69 @@ extern void VP8DspInitMIPS32(void); extern void VP8DspInitMIPSdspR2(void); extern void VP8DspInitMSA(void); -static volatile VP8CPUInfo dec_last_cpuinfo_used = - (VP8CPUInfo)&dec_last_cpuinfo_used; +WEBP_DSP_INIT_FUNC(VP8DspInit) { + VP8InitClipTables(); -WEBP_TSAN_IGNORE_FUNCTION void VP8DspInit(void) { - if (dec_last_cpuinfo_used == VP8GetCPUInfo) return; +#if !WEBP_NEON_OMIT_C_CODE + VP8TransformWHT = TransformWHT_C; + VP8Transform = TransformTwo_C; + VP8TransformDC = TransformDC_C; + VP8TransformAC3 = TransformAC3_C; +#endif + VP8TransformUV = TransformUV_C; + VP8TransformDCUV = TransformDCUV_C; + +#if !WEBP_NEON_OMIT_C_CODE + VP8VFilter16 = VFilter16_C; + VP8VFilter16i = VFilter16i_C; + VP8HFilter16 = HFilter16_C; + VP8VFilter8 = VFilter8_C; + VP8VFilter8i = VFilter8i_C; + VP8SimpleVFilter16 = SimpleVFilter16_C; + VP8SimpleHFilter16 = SimpleHFilter16_C; + VP8SimpleVFilter16i = SimpleVFilter16i_C; + VP8SimpleHFilter16i = SimpleHFilter16i_C; +#endif - VP8InitClipTables(); +#if !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC + VP8HFilter16i = HFilter16i_C; + VP8HFilter8 = HFilter8_C; + VP8HFilter8i = HFilter8i_C; +#endif + +#if !WEBP_NEON_OMIT_C_CODE + VP8PredLuma4[0] = DC4_C; + VP8PredLuma4[1] = TM4_C; + VP8PredLuma4[2] = VE4_C; + VP8PredLuma4[4] = RD4_C; + VP8PredLuma4[6] = LD4_C; +#endif + + VP8PredLuma4[3] = HE4_C; + VP8PredLuma4[5] = VR4_C; + VP8PredLuma4[7] = VL4_C; + VP8PredLuma4[8] = HD4_C; + VP8PredLuma4[9] = HU4_C; + +#if !WEBP_NEON_OMIT_C_CODE + VP8PredLuma16[0] = DC16_C; + VP8PredLuma16[1] = TM16_C; + VP8PredLuma16[2] = VE16_C; + VP8PredLuma16[3] = HE16_C; + VP8PredLuma16[4] = DC16NoTop_C; + VP8PredLuma16[5] = DC16NoLeft_C; + VP8PredLuma16[6] = DC16NoTopLeft_C; + + VP8PredChroma8[0] = DC8uv_C; + VP8PredChroma8[1] = TM8uv_C; + VP8PredChroma8[2] = VE8uv_C; + VP8PredChroma8[3] = HE8uv_C; + VP8PredChroma8[4] = DC8uvNoTop_C; + VP8PredChroma8[5] = DC8uvNoLeft_C; + VP8PredChroma8[6] = DC8uvNoTopLeft_C; +#endif - VP8TransformWHT = TransformWHT; - VP8Transform = TransformTwo; - VP8TransformUV = TransformUV; - VP8TransformDC = TransformDC; - VP8TransformDCUV = TransformDCUV; - VP8TransformAC3 = TransformAC3; - - VP8VFilter16 = VFilter16; - VP8HFilter16 = HFilter16; - VP8VFilter8 = VFilter8; - VP8HFilter8 = HFilter8; - VP8VFilter16i = VFilter16i; - VP8HFilter16i = HFilter16i; - VP8VFilter8i = VFilter8i; - VP8HFilter8i = HFilter8i; - VP8SimpleVFilter16 = SimpleVFilter16; - VP8SimpleHFilter16 = SimpleHFilter16; - VP8SimpleVFilter16i = SimpleVFilter16i; - VP8SimpleHFilter16i = SimpleHFilter16i; - - VP8PredLuma4[0] = DC4; - VP8PredLuma4[1] = TM4; - VP8PredLuma4[2] = VE4; - VP8PredLuma4[3] = HE4; - VP8PredLuma4[4] = RD4; - VP8PredLuma4[5] = VR4; - VP8PredLuma4[6] = LD4; - VP8PredLuma4[7] = VL4; - VP8PredLuma4[8] = HD4; - VP8PredLuma4[9] = HU4; - - VP8PredLuma16[0] = DC16; - VP8PredLuma16[1] = TM16; - VP8PredLuma16[2] = VE16; - VP8PredLuma16[3] = HE16; - VP8PredLuma16[4] = DC16NoTop; - VP8PredLuma16[5] = DC16NoLeft; - VP8PredLuma16[6] = DC16NoTopLeft; - - VP8PredChroma8[0] = DC8uv; - VP8PredChroma8[1] = TM8uv; - VP8PredChroma8[2] = VE8uv; - VP8PredChroma8[3] = HE8uv; - VP8PredChroma8[4] = DC8uvNoTop; - VP8PredChroma8[5] = DC8uvNoLeft; - VP8PredChroma8[6] = DC8uvNoTopLeft; - - VP8DitherCombine8x8 = DitherCombine8x8; + VP8DitherCombine8x8 = DitherCombine8x8_C; // If defined, use CPUInfo() to overwrite some pointers with faster versions. if (VP8GetCPUInfo != NULL) { @@ -770,11 +817,6 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8DspInit(void) { #endif } #endif -#if defined(WEBP_USE_NEON) - if (VP8GetCPUInfo(kNEON)) { - VP8DspInitNEON(); - } -#endif #if defined(WEBP_USE_MIPS32) if (VP8GetCPUInfo(kMIPS32)) { VP8DspInitMIPS32(); @@ -791,5 +833,55 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8DspInit(void) { } #endif } - dec_last_cpuinfo_used = VP8GetCPUInfo; + +#if defined(WEBP_USE_NEON) + if (WEBP_NEON_OMIT_C_CODE || + (VP8GetCPUInfo != NULL && VP8GetCPUInfo(kNEON))) { + VP8DspInitNEON(); + } +#endif + + assert(VP8TransformWHT != NULL); + assert(VP8Transform != NULL); + assert(VP8TransformDC != NULL); + assert(VP8TransformAC3 != NULL); + assert(VP8TransformUV != NULL); + assert(VP8TransformDCUV != NULL); + assert(VP8VFilter16 != NULL); + assert(VP8HFilter16 != NULL); + assert(VP8VFilter8 != NULL); + assert(VP8HFilter8 != NULL); + assert(VP8VFilter16i != NULL); + assert(VP8HFilter16i != NULL); + assert(VP8VFilter8i != NULL); + assert(VP8HFilter8i != NULL); + assert(VP8SimpleVFilter16 != NULL); + assert(VP8SimpleHFilter16 != NULL); + assert(VP8SimpleVFilter16i != NULL); + assert(VP8SimpleHFilter16i != NULL); + assert(VP8PredLuma4[0] != NULL); + assert(VP8PredLuma4[1] != NULL); + assert(VP8PredLuma4[2] != NULL); + assert(VP8PredLuma4[3] != NULL); + assert(VP8PredLuma4[4] != NULL); + assert(VP8PredLuma4[5] != NULL); + assert(VP8PredLuma4[6] != NULL); + assert(VP8PredLuma4[7] != NULL); + assert(VP8PredLuma4[8] != NULL); + assert(VP8PredLuma4[9] != NULL); + assert(VP8PredLuma16[0] != NULL); + assert(VP8PredLuma16[1] != NULL); + assert(VP8PredLuma16[2] != NULL); + assert(VP8PredLuma16[3] != NULL); + assert(VP8PredLuma16[4] != NULL); + assert(VP8PredLuma16[5] != NULL); + assert(VP8PredLuma16[6] != NULL); + assert(VP8PredChroma8[0] != NULL); + assert(VP8PredChroma8[1] != NULL); + assert(VP8PredChroma8[2] != NULL); + assert(VP8PredChroma8[3] != NULL); + assert(VP8PredChroma8[4] != NULL); + assert(VP8PredChroma8[5] != NULL); + assert(VP8PredChroma8[6] != NULL); + assert(VP8DitherCombine8x8 != NULL); } diff --git a/external/libwebp-0.6.0/src/dsp/dec_clip_tables.c b/external/libwebp-1.0.0/src/dsp/dec_clip_tables.c similarity index 99% rename from external/libwebp-0.6.0/src/dsp/dec_clip_tables.c rename to external/libwebp-1.0.0/src/dsp/dec_clip_tables.c index 74ba34c0..427b74f7 100644 --- a/external/libwebp-0.6.0/src/dsp/dec_clip_tables.c +++ b/external/libwebp-1.0.0/src/dsp/dec_clip_tables.c @@ -11,11 +11,14 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" -#define USE_STATIC_TABLES // undefine to have run-time table initialization +// define to 0 to have run-time table initialization +#if !defined(USE_STATIC_TABLES) +#define USE_STATIC_TABLES 1 // ALTERNATE_CODE +#endif -#ifdef USE_STATIC_TABLES +#if (USE_STATIC_TABLES == 1) static const uint8_t abs0[255 + 255 + 1] = { 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0xf7, 0xf6, 0xf5, 0xf4, @@ -337,7 +340,7 @@ static uint8_t clip1[255 + 511 + 1]; // and make sure it's set to true _last_ (so as to be thread-safe) static volatile int tables_ok = 0; -#endif +#endif // USE_STATIC_TABLES const int8_t* const VP8ksclip1 = (const int8_t*)&sclip1[1020]; const int8_t* const VP8ksclip2 = (const int8_t*)&sclip2[112]; @@ -345,7 +348,7 @@ const uint8_t* const VP8kclip1 = &clip1[255]; const uint8_t* const VP8kabs0 = &abs0[255]; WEBP_TSAN_IGNORE_FUNCTION void VP8InitClipTables(void) { -#if !defined(USE_STATIC_TABLES) +#if (USE_STATIC_TABLES == 0) int i; if (!tables_ok) { for (i = -255; i <= 255; ++i) { diff --git a/external/libwebp-0.6.0/src/dsp/dec_mips32.c b/external/libwebp-1.0.0/src/dsp/dec_mips32.c similarity index 99% rename from external/libwebp-0.6.0/src/dsp/dec_mips32.c rename to external/libwebp-1.0.0/src/dsp/dec_mips32.c index 4e9ef426..e4e70966 100644 --- a/external/libwebp-0.6.0/src/dsp/dec_mips32.c +++ b/external/libwebp-1.0.0/src/dsp/dec_mips32.c @@ -12,11 +12,11 @@ // Author(s): Djordje Pesut (djordje.pesut@imgtec.com) // Jovan Zelincevic (jovan.zelincevic@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MIPS32) -#include "./mips_macro.h" +#include "src/dsp/mips_macro.h" static const int kC1 = 20091 + (1 << 16); static const int kC2 = 35468; diff --git a/external/libwebp-0.6.0/src/dsp/dec_mips_dsp_r2.c b/external/libwebp-1.0.0/src/dsp/dec_mips_dsp_r2.c similarity index 99% rename from external/libwebp-0.6.0/src/dsp/dec_mips_dsp_r2.c rename to external/libwebp-1.0.0/src/dsp/dec_mips_dsp_r2.c index db5c6572..b0936bc4 100644 --- a/external/libwebp-0.6.0/src/dsp/dec_mips_dsp_r2.c +++ b/external/libwebp-1.0.0/src/dsp/dec_mips_dsp_r2.c @@ -12,11 +12,11 @@ // Author(s): Djordje Pesut (djordje.pesut@imgtec.com) // Jovan Zelincevic (jovan.zelincevic@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MIPS_DSP_R2) -#include "./mips_macro.h" +#include "src/dsp/mips_macro.h" static const int kC1 = 20091 + (1 << 16); static const int kC2 = 35468; diff --git a/external/libwebp-0.6.0/src/dsp/dec_msa.c b/external/libwebp-1.0.0/src/dsp/dec_msa.c similarity index 99% rename from external/libwebp-0.6.0/src/dsp/dec_msa.c rename to external/libwebp-1.0.0/src/dsp/dec_msa.c index 8d9c98c3..8090622b 100644 --- a/external/libwebp-0.6.0/src/dsp/dec_msa.c +++ b/external/libwebp-1.0.0/src/dsp/dec_msa.c @@ -12,11 +12,11 @@ // Author(s): Prashant Patil (prashant.patil@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MSA) -#include "./msa_macro.h" +#include "src/dsp/msa_macro.h" //------------------------------------------------------------------------------ // Transforms @@ -222,6 +222,7 @@ static void TransformAC3(const int16_t* in, uint8_t* dst) { const v16i8 cnst4b = __msa_ldi_b(4); \ const v16i8 cnst3b = __msa_ldi_b(3); \ const v8i16 cnst9h = __msa_ldi_h(9); \ + const v8i16 cnst63h = __msa_ldi_h(63); \ \ FLIP_SIGN4(p1, p0, q0, q1, p1_m, p0_m, q0_m, q1_m); \ filt = __msa_subs_s_b(p1_m, q1_m); \ @@ -241,9 +242,9 @@ static void TransformAC3(const int16_t* in, uint8_t* dst) { ILVRL_B2_SH(filt_sign, filt, filt_r, filt_l); \ /* update q2/p2 */ \ temp0 = filt_r * cnst9h; \ - temp1 = ADDVI_H(temp0, 63); \ + temp1 = temp0 + cnst63h; \ temp2 = filt_l * cnst9h; \ - temp3 = ADDVI_H(temp2, 63); \ + temp3 = temp2 + cnst63h; \ FILT2(q2_m, p2_m, q2, p2); \ /* update q1/p1 */ \ temp1 = temp1 + temp0; \ @@ -708,7 +709,7 @@ static void VE4(uint8_t* dst) { // vertical const uint32_t val0 = LW(ptop + 0); const uint32_t val1 = LW(ptop + 4); uint32_t out; - v16u8 A, B, C, AC, B2, R; + v16u8 A = { 0 }, B, C, AC, B2, R; INSERT_W2_UB(val0, val1, A); B = SLDI_UB(A, A, 1); @@ -725,7 +726,7 @@ static void RD4(uint8_t* dst) { // Down-right uint32_t val0 = LW(ptop + 0); uint32_t val1 = LW(ptop + 4); uint32_t val2, val3; - v16u8 A, B, C, AC, B2, R, A1; + v16u8 A, B, C, AC, B2, R, A1 = { 0 }; INSERT_W2_UB(val0, val1, A1); A = SLDI_UB(A1, A1, 12); @@ -753,7 +754,7 @@ static void LD4(uint8_t* dst) { // Down-Left uint32_t val0 = LW(ptop + 0); uint32_t val1 = LW(ptop + 4); uint32_t val2, val3; - v16u8 A, B, C, AC, B2, R; + v16u8 A = { 0 }, B, C, AC, B2, R; INSERT_W2_UB(val0, val1, A); B = SLDI_UB(A, A, 1); diff --git a/external/libwebp-0.6.0/src/dsp/dec_neon.c b/external/libwebp-1.0.0/src/dsp/dec_neon.c similarity index 71% rename from external/libwebp-0.6.0/src/dsp/dec_neon.c rename to external/libwebp-1.0.0/src/dsp/dec_neon.c index 34796cf4..ffa697fc 100644 --- a/external/libwebp-0.6.0/src/dsp/dec_neon.c +++ b/external/libwebp-1.0.0/src/dsp/dec_neon.c @@ -12,43 +12,23 @@ // Authors: Somnath Banerjee (somnath@google.com) // Johann Koenig (johannkoenig@google.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_NEON) -#include "./neon.h" -#include "../dec/vp8i_dec.h" +#include "src/dsp/neon.h" +#include "src/dec/vp8i_dec.h" //------------------------------------------------------------------------------ // NxM Loading functions -// Load/Store vertical edge -#define LOAD8x4(c1, c2, c3, c4, b1, b2, stride) \ - "vld4.8 {" #c1 "[0]," #c2 "[0]," #c3 "[0]," #c4 "[0]}," #b1 "," #stride "\n" \ - "vld4.8 {" #c1 "[1]," #c2 "[1]," #c3 "[1]," #c4 "[1]}," #b2 "," #stride "\n" \ - "vld4.8 {" #c1 "[2]," #c2 "[2]," #c3 "[2]," #c4 "[2]}," #b1 "," #stride "\n" \ - "vld4.8 {" #c1 "[3]," #c2 "[3]," #c3 "[3]," #c4 "[3]}," #b2 "," #stride "\n" \ - "vld4.8 {" #c1 "[4]," #c2 "[4]," #c3 "[4]," #c4 "[4]}," #b1 "," #stride "\n" \ - "vld4.8 {" #c1 "[5]," #c2 "[5]," #c3 "[5]," #c4 "[5]}," #b2 "," #stride "\n" \ - "vld4.8 {" #c1 "[6]," #c2 "[6]," #c3 "[6]," #c4 "[6]}," #b1 "," #stride "\n" \ - "vld4.8 {" #c1 "[7]," #c2 "[7]," #c3 "[7]," #c4 "[7]}," #b2 "," #stride "\n" - -#define STORE8x2(c1, c2, p, stride) \ - "vst2.8 {" #c1 "[0], " #c2 "[0]}," #p "," #stride " \n" \ - "vst2.8 {" #c1 "[1], " #c2 "[1]}," #p "," #stride " \n" \ - "vst2.8 {" #c1 "[2], " #c2 "[2]}," #p "," #stride " \n" \ - "vst2.8 {" #c1 "[3], " #c2 "[3]}," #p "," #stride " \n" \ - "vst2.8 {" #c1 "[4], " #c2 "[4]}," #p "," #stride " \n" \ - "vst2.8 {" #c1 "[5], " #c2 "[5]}," #p "," #stride " \n" \ - "vst2.8 {" #c1 "[6], " #c2 "[6]}," #p "," #stride " \n" \ - "vst2.8 {" #c1 "[7], " #c2 "[7]}," #p "," #stride " \n" - #if !defined(WORK_AROUND_GCC) // This intrinsics version makes gcc-4.6.3 crash during Load4x??() compilation // (register alloc, probably). The variants somewhat mitigate the problem, but // not quite. HFilter16i() remains problematic. -static WEBP_INLINE uint8x8x4_t Load4x8(const uint8_t* const src, int stride) { +static WEBP_INLINE uint8x8x4_t Load4x8_NEON(const uint8_t* const src, + int stride) { const uint8x8_t zero = vdup_n_u8(0); uint8x8x4_t out; INIT_VECTOR4(out, zero, zero, zero, zero); @@ -63,13 +43,15 @@ static WEBP_INLINE uint8x8x4_t Load4x8(const uint8_t* const src, int stride) { return out; } -static WEBP_INLINE void Load4x16(const uint8_t* const src, int stride, - uint8x16_t* const p1, uint8x16_t* const p0, - uint8x16_t* const q0, uint8x16_t* const q1) { +static WEBP_INLINE void Load4x16_NEON(const uint8_t* const src, int stride, + uint8x16_t* const p1, + uint8x16_t* const p0, + uint8x16_t* const q0, + uint8x16_t* const q1) { // row0 = p1[0..7]|p0[0..7]|q0[0..7]|q1[0..7] // row8 = p1[8..15]|p0[8..15]|q0[8..15]|q1[8..15] - const uint8x8x4_t row0 = Load4x8(src - 2 + 0 * stride, stride); - const uint8x8x4_t row8 = Load4x8(src - 2 + 8 * stride, stride); + const uint8x8x4_t row0 = Load4x8_NEON(src - 2 + 0 * stride, stride); + const uint8x8x4_t row8 = Load4x8_NEON(src - 2 + 8 * stride, stride); *p1 = vcombine_u8(row0.val[0], row8.val[0]); *p0 = vcombine_u8(row0.val[1], row8.val[1]); *q0 = vcombine_u8(row0.val[2], row8.val[2]); @@ -83,9 +65,11 @@ static WEBP_INLINE void Load4x16(const uint8_t* const src, int stride, src += stride; \ } while (0) -static WEBP_INLINE void Load4x16(const uint8_t* src, int stride, - uint8x16_t* const p1, uint8x16_t* const p0, - uint8x16_t* const q0, uint8x16_t* const q1) { +static WEBP_INLINE void Load4x16_NEON(const uint8_t* src, int stride, + uint8x16_t* const p1, + uint8x16_t* const p0, + uint8x16_t* const q0, + uint8x16_t* const q1) { const uint32x4_t zero = vdupq_n_u32(0); uint32x4x4_t in; INIT_VECTOR4(in, zero, zero, zero, zero); @@ -126,40 +110,40 @@ static WEBP_INLINE void Load4x16(const uint8_t* src, int stride, #endif // !WORK_AROUND_GCC -static WEBP_INLINE void Load8x16(const uint8_t* const src, int stride, - uint8x16_t* const p3, uint8x16_t* const p2, - uint8x16_t* const p1, uint8x16_t* const p0, - uint8x16_t* const q0, uint8x16_t* const q1, - uint8x16_t* const q2, uint8x16_t* const q3) { - Load4x16(src - 2, stride, p3, p2, p1, p0); - Load4x16(src + 2, stride, q0, q1, q2, q3); +static WEBP_INLINE void Load8x16_NEON( + const uint8_t* const src, int stride, + uint8x16_t* const p3, uint8x16_t* const p2, uint8x16_t* const p1, + uint8x16_t* const p0, uint8x16_t* const q0, uint8x16_t* const q1, + uint8x16_t* const q2, uint8x16_t* const q3) { + Load4x16_NEON(src - 2, stride, p3, p2, p1, p0); + Load4x16_NEON(src + 2, stride, q0, q1, q2, q3); } -static WEBP_INLINE void Load16x4(const uint8_t* const src, int stride, - uint8x16_t* const p1, uint8x16_t* const p0, - uint8x16_t* const q0, uint8x16_t* const q1) { +static WEBP_INLINE void Load16x4_NEON(const uint8_t* const src, int stride, + uint8x16_t* const p1, + uint8x16_t* const p0, + uint8x16_t* const q0, + uint8x16_t* const q1) { *p1 = vld1q_u8(src - 2 * stride); *p0 = vld1q_u8(src - 1 * stride); *q0 = vld1q_u8(src + 0 * stride); *q1 = vld1q_u8(src + 1 * stride); } -static WEBP_INLINE void Load16x8(const uint8_t* const src, int stride, - uint8x16_t* const p3, uint8x16_t* const p2, - uint8x16_t* const p1, uint8x16_t* const p0, - uint8x16_t* const q0, uint8x16_t* const q1, - uint8x16_t* const q2, uint8x16_t* const q3) { - Load16x4(src - 2 * stride, stride, p3, p2, p1, p0); - Load16x4(src + 2 * stride, stride, q0, q1, q2, q3); +static WEBP_INLINE void Load16x8_NEON( + const uint8_t* const src, int stride, + uint8x16_t* const p3, uint8x16_t* const p2, uint8x16_t* const p1, + uint8x16_t* const p0, uint8x16_t* const q0, uint8x16_t* const q1, + uint8x16_t* const q2, uint8x16_t* const q3) { + Load16x4_NEON(src - 2 * stride, stride, p3, p2, p1, p0); + Load16x4_NEON(src + 2 * stride, stride, q0, q1, q2, q3); } -static WEBP_INLINE void Load8x8x2(const uint8_t* const u, - const uint8_t* const v, - int stride, - uint8x16_t* const p3, uint8x16_t* const p2, - uint8x16_t* const p1, uint8x16_t* const p0, - uint8x16_t* const q0, uint8x16_t* const q1, - uint8x16_t* const q2, uint8x16_t* const q3) { +static WEBP_INLINE void Load8x8x2_NEON( + const uint8_t* const u, const uint8_t* const v, int stride, + uint8x16_t* const p3, uint8x16_t* const p2, uint8x16_t* const p1, + uint8x16_t* const p0, uint8x16_t* const q0, uint8x16_t* const q1, + uint8x16_t* const q2, uint8x16_t* const q3) { // We pack the 8x8 u-samples in the lower half of the uint8x16_t destination // and the v-samples on the higher half. *p3 = vcombine_u8(vld1_u8(u - 4 * stride), vld1_u8(v - 4 * stride)); @@ -177,13 +161,11 @@ static WEBP_INLINE void Load8x8x2(const uint8_t* const u, #define LOAD_UV_8(ROW) \ vcombine_u8(vld1_u8(u - 4 + (ROW) * stride), vld1_u8(v - 4 + (ROW) * stride)) -static WEBP_INLINE void Load8x8x2T(const uint8_t* const u, - const uint8_t* const v, - int stride, - uint8x16_t* const p3, uint8x16_t* const p2, - uint8x16_t* const p1, uint8x16_t* const p0, - uint8x16_t* const q0, uint8x16_t* const q1, - uint8x16_t* const q2, uint8x16_t* const q3) { +static WEBP_INLINE void Load8x8x2T_NEON( + const uint8_t* const u, const uint8_t* const v, int stride, + uint8x16_t* const p3, uint8x16_t* const p2, uint8x16_t* const p1, + uint8x16_t* const p0, uint8x16_t* const q0, uint8x16_t* const q1, + uint8x16_t* const q2, uint8x16_t* const q3) { // We pack the 8x8 u-samples in the lower half of the uint8x16_t destination // and the v-samples on the higher half. const uint8x16_t row0 = LOAD_UV_8(0); @@ -238,8 +220,8 @@ static WEBP_INLINE void Load8x8x2T(const uint8_t* const u, #endif // !WORK_AROUND_GCC -static WEBP_INLINE void Store2x8(const uint8x8x2_t v, - uint8_t* const dst, int stride) { +static WEBP_INLINE void Store2x8_NEON(const uint8x8x2_t v, + uint8_t* const dst, int stride) { vst2_lane_u8(dst + 0 * stride, v, 0); vst2_lane_u8(dst + 1 * stride, v, 1); vst2_lane_u8(dst + 2 * stride, v, 2); @@ -250,20 +232,20 @@ static WEBP_INLINE void Store2x8(const uint8x8x2_t v, vst2_lane_u8(dst + 7 * stride, v, 7); } -static WEBP_INLINE void Store2x16(const uint8x16_t p0, const uint8x16_t q0, - uint8_t* const dst, int stride) { +static WEBP_INLINE void Store2x16_NEON(const uint8x16_t p0, const uint8x16_t q0, + uint8_t* const dst, int stride) { uint8x8x2_t lo, hi; lo.val[0] = vget_low_u8(p0); lo.val[1] = vget_low_u8(q0); hi.val[0] = vget_high_u8(p0); hi.val[1] = vget_high_u8(q0); - Store2x8(lo, dst - 1 + 0 * stride, stride); - Store2x8(hi, dst - 1 + 8 * stride, stride); + Store2x8_NEON(lo, dst - 1 + 0 * stride, stride); + Store2x8_NEON(hi, dst - 1 + 8 * stride, stride); } #if !defined(WORK_AROUND_GCC) -static WEBP_INLINE void Store4x8(const uint8x8x4_t v, - uint8_t* const dst, int stride) { +static WEBP_INLINE void Store4x8_NEON(const uint8x8x4_t v, + uint8_t* const dst, int stride) { vst4_lane_u8(dst + 0 * stride, v, 0); vst4_lane_u8(dst + 1 * stride, v, 1); vst4_lane_u8(dst + 2 * stride, v, 2); @@ -274,9 +256,9 @@ static WEBP_INLINE void Store4x8(const uint8x8x4_t v, vst4_lane_u8(dst + 7 * stride, v, 7); } -static WEBP_INLINE void Store4x16(const uint8x16_t p1, const uint8x16_t p0, - const uint8x16_t q0, const uint8x16_t q1, - uint8_t* const dst, int stride) { +static WEBP_INLINE void Store4x16_NEON(const uint8x16_t p1, const uint8x16_t p0, + const uint8x16_t q0, const uint8x16_t q1, + uint8_t* const dst, int stride) { uint8x8x4_t lo, hi; INIT_VECTOR4(lo, vget_low_u8(p1), vget_low_u8(p0), @@ -284,27 +266,28 @@ static WEBP_INLINE void Store4x16(const uint8x16_t p1, const uint8x16_t p0, INIT_VECTOR4(hi, vget_high_u8(p1), vget_high_u8(p0), vget_high_u8(q0), vget_high_u8(q1)); - Store4x8(lo, dst - 2 + 0 * stride, stride); - Store4x8(hi, dst - 2 + 8 * stride, stride); + Store4x8_NEON(lo, dst - 2 + 0 * stride, stride); + Store4x8_NEON(hi, dst - 2 + 8 * stride, stride); } #endif // !WORK_AROUND_GCC -static WEBP_INLINE void Store16x2(const uint8x16_t p0, const uint8x16_t q0, - uint8_t* const dst, int stride) { +static WEBP_INLINE void Store16x2_NEON(const uint8x16_t p0, const uint8x16_t q0, + uint8_t* const dst, int stride) { vst1q_u8(dst - stride, p0); vst1q_u8(dst, q0); } -static WEBP_INLINE void Store16x4(const uint8x16_t p1, const uint8x16_t p0, - const uint8x16_t q0, const uint8x16_t q1, - uint8_t* const dst, int stride) { - Store16x2(p1, p0, dst - stride, stride); - Store16x2(q0, q1, dst + stride, stride); +static WEBP_INLINE void Store16x4_NEON(const uint8x16_t p1, const uint8x16_t p0, + const uint8x16_t q0, const uint8x16_t q1, + uint8_t* const dst, int stride) { + Store16x2_NEON(p1, p0, dst - stride, stride); + Store16x2_NEON(q0, q1, dst + stride, stride); } -static WEBP_INLINE void Store8x2x2(const uint8x16_t p0, const uint8x16_t q0, - uint8_t* const u, uint8_t* const v, - int stride) { +static WEBP_INLINE void Store8x2x2_NEON(const uint8x16_t p0, + const uint8x16_t q0, + uint8_t* const u, uint8_t* const v, + int stride) { // p0 and q0 contain the u+v samples packed in low/high halves. vst1_u8(u - stride, vget_low_u8(p0)); vst1_u8(u, vget_low_u8(q0)); @@ -312,13 +295,15 @@ static WEBP_INLINE void Store8x2x2(const uint8x16_t p0, const uint8x16_t q0, vst1_u8(v, vget_high_u8(q0)); } -static WEBP_INLINE void Store8x4x2(const uint8x16_t p1, const uint8x16_t p0, - const uint8x16_t q0, const uint8x16_t q1, - uint8_t* const u, uint8_t* const v, - int stride) { +static WEBP_INLINE void Store8x4x2_NEON(const uint8x16_t p1, + const uint8x16_t p0, + const uint8x16_t q0, + const uint8x16_t q1, + uint8_t* const u, uint8_t* const v, + int stride) { // The p1...q1 registers contain the u+v samples packed in low/high halves. - Store8x2x2(p1, p0, u - stride, v - stride, stride); - Store8x2x2(q0, q1, u + stride, v + stride, stride); + Store8x2x2_NEON(p1, p0, u - stride, v - stride, stride); + Store8x2x2_NEON(q0, q1, u + stride, v + stride, stride); } #if !defined(WORK_AROUND_GCC) @@ -329,11 +314,10 @@ static WEBP_INLINE void Store8x4x2(const uint8x16_t p1, const uint8x16_t p0, (DST) += stride; \ } while (0) -static WEBP_INLINE void Store6x8x2(const uint8x16_t p2, const uint8x16_t p1, - const uint8x16_t p0, const uint8x16_t q0, - const uint8x16_t q1, const uint8x16_t q2, - uint8_t* u, uint8_t* v, - int stride) { +static WEBP_INLINE void Store6x8x2_NEON( + const uint8x16_t p2, const uint8x16_t p1, const uint8x16_t p0, + const uint8x16_t q0, const uint8x16_t q1, const uint8x16_t q2, + uint8_t* u, uint8_t* v, int stride) { uint8x8x3_t u0, u1, v0, v1; INIT_VECTOR3(u0, vget_low_u8(p2), vget_low_u8(p1), vget_low_u8(p0)); INIT_VECTOR3(u1, vget_low_u8(q0), vget_low_u8(q1), vget_low_u8(q2)); @@ -358,10 +342,12 @@ static WEBP_INLINE void Store6x8x2(const uint8x16_t p2, const uint8x16_t p1, } #undef STORE6_LANE -static WEBP_INLINE void Store4x8x2(const uint8x16_t p1, const uint8x16_t p0, - const uint8x16_t q0, const uint8x16_t q1, - uint8_t* const u, uint8_t* const v, - int stride) { +static WEBP_INLINE void Store4x8x2_NEON(const uint8x16_t p1, + const uint8x16_t p0, + const uint8x16_t q0, + const uint8x16_t q1, + uint8_t* const u, uint8_t* const v, + int stride) { uint8x8x4_t u0, v0; INIT_VECTOR4(u0, vget_low_u8(p1), vget_low_u8(p0), @@ -390,15 +376,15 @@ static WEBP_INLINE void Store4x8x2(const uint8x16_t p1, const uint8x16_t p0, #endif // !WORK_AROUND_GCC // Zero extend 'v' to an int16x8_t. -static WEBP_INLINE int16x8_t ConvertU8ToS16(uint8x8_t v) { +static WEBP_INLINE int16x8_t ConvertU8ToS16_NEON(uint8x8_t v) { return vreinterpretq_s16_u16(vmovl_u8(v)); } // Performs unsigned 8b saturation on 'dst01' and 'dst23' storing the result // to the corresponding rows of 'dst'. -static WEBP_INLINE void SaturateAndStore4x4(uint8_t* const dst, - const int16x8_t dst01, - const int16x8_t dst23) { +static WEBP_INLINE void SaturateAndStore4x4_NEON(uint8_t* const dst, + const int16x8_t dst01, + const int16x8_t dst23) { // Unsigned saturate to 8b. const uint8x8_t dst01_u8 = vqmovun_s16(dst01); const uint8x8_t dst23_u8 = vqmovun_s16(dst23); @@ -410,8 +396,9 @@ static WEBP_INLINE void SaturateAndStore4x4(uint8_t* const dst, vst1_lane_u32((uint32_t*)(dst + 3 * BPS), vreinterpret_u32_u8(dst23_u8), 1); } -static WEBP_INLINE void Add4x4(const int16x8_t row01, const int16x8_t row23, - uint8_t* const dst) { +static WEBP_INLINE void Add4x4_NEON(const int16x8_t row01, + const int16x8_t row23, + uint8_t* const dst) { uint32x2_t dst01 = vdup_n_u32(0); uint32x2_t dst23 = vdup_n_u32(0); @@ -423,23 +410,23 @@ static WEBP_INLINE void Add4x4(const int16x8_t row01, const int16x8_t row23, { // Convert to 16b. - const int16x8_t dst01_s16 = ConvertU8ToS16(vreinterpret_u8_u32(dst01)); - const int16x8_t dst23_s16 = ConvertU8ToS16(vreinterpret_u8_u32(dst23)); + const int16x8_t dst01_s16 = ConvertU8ToS16_NEON(vreinterpret_u8_u32(dst01)); + const int16x8_t dst23_s16 = ConvertU8ToS16_NEON(vreinterpret_u8_u32(dst23)); // Descale with rounding. const int16x8_t out01 = vrsraq_n_s16(dst01_s16, row01, 3); const int16x8_t out23 = vrsraq_n_s16(dst23_s16, row23, 3); // Add the inverse transform. - SaturateAndStore4x4(dst, out01, out23); + SaturateAndStore4x4_NEON(dst, out01, out23); } } //----------------------------------------------------------------------------- // Simple In-loop filtering (Paragraph 15.2) -static uint8x16_t NeedsFilter(const uint8x16_t p1, const uint8x16_t p0, - const uint8x16_t q0, const uint8x16_t q1, - int thresh) { +static uint8x16_t NeedsFilter_NEON(const uint8x16_t p1, const uint8x16_t p0, + const uint8x16_t q0, const uint8x16_t q1, + int thresh) { const uint8x16_t thresh_v = vdupq_n_u8((uint8_t)thresh); const uint8x16_t a_p0_q0 = vabdq_u8(p0, q0); // abs(p0-q0) const uint8x16_t a_p1_q1 = vabdq_u8(p1, q1); // abs(p1-q1) @@ -450,18 +437,18 @@ static uint8x16_t NeedsFilter(const uint8x16_t p1, const uint8x16_t p0, return mask; } -static int8x16_t FlipSign(const uint8x16_t v) { +static int8x16_t FlipSign_NEON(const uint8x16_t v) { const uint8x16_t sign_bit = vdupq_n_u8(0x80); return vreinterpretq_s8_u8(veorq_u8(v, sign_bit)); } -static uint8x16_t FlipSignBack(const int8x16_t v) { +static uint8x16_t FlipSignBack_NEON(const int8x16_t v) { const int8x16_t sign_bit = vdupq_n_s8(0x80); return vreinterpretq_u8_s8(veorq_s8(v, sign_bit)); } -static int8x16_t GetBaseDelta(const int8x16_t p1, const int8x16_t p0, - const int8x16_t q0, const int8x16_t q1) { +static int8x16_t GetBaseDelta_NEON(const int8x16_t p1, const int8x16_t p0, + const int8x16_t q0, const int8x16_t q1) { const int8x16_t q0_p0 = vqsubq_s8(q0, p0); // (q0-p0) const int8x16_t p1_q1 = vqsubq_s8(p1, q1); // (p1-q1) const int8x16_t s1 = vqaddq_s8(p1_q1, q0_p0); // (p1-q1) + 1 * (q0 - p0) @@ -470,7 +457,7 @@ static int8x16_t GetBaseDelta(const int8x16_t p1, const int8x16_t p0, return s3; } -static int8x16_t GetBaseDelta0(const int8x16_t p0, const int8x16_t q0) { +static int8x16_t GetBaseDelta0_NEON(const int8x16_t p0, const int8x16_t q0) { const int8x16_t q0_p0 = vqsubq_s8(q0, p0); // (q0-p0) const int8x16_t s1 = vqaddq_s8(q0_p0, q0_p0); // 2 * (q0 - p0) const int8x16_t s2 = vqaddq_s8(q0_p0, s1); // 3 * (q0 - p0) @@ -479,9 +466,10 @@ static int8x16_t GetBaseDelta0(const int8x16_t p0, const int8x16_t q0) { //------------------------------------------------------------------------------ -static void ApplyFilter2NoFlip(const int8x16_t p0s, const int8x16_t q0s, - const int8x16_t delta, - int8x16_t* const op0, int8x16_t* const oq0) { +static void ApplyFilter2NoFlip_NEON(const int8x16_t p0s, const int8x16_t q0s, + const int8x16_t delta, + int8x16_t* const op0, + int8x16_t* const oq0) { const int8x16_t kCst3 = vdupq_n_s8(0x03); const int8x16_t kCst4 = vdupq_n_s8(0x04); const int8x16_t delta_p3 = vqaddq_s8(delta, kCst3); @@ -494,9 +482,9 @@ static void ApplyFilter2NoFlip(const int8x16_t p0s, const int8x16_t q0s, #if defined(WEBP_USE_INTRINSICS) -static void ApplyFilter2(const int8x16_t p0s, const int8x16_t q0s, - const int8x16_t delta, - uint8x16_t* const op0, uint8x16_t* const oq0) { +static void ApplyFilter2_NEON(const int8x16_t p0s, const int8x16_t q0s, + const int8x16_t delta, + uint8x16_t* const op0, uint8x16_t* const oq0) { const int8x16_t kCst3 = vdupq_n_s8(0x03); const int8x16_t kCst4 = vdupq_n_s8(0x04); const int8x16_t delta_p3 = vqaddq_s8(delta, kCst3); @@ -505,45 +493,66 @@ static void ApplyFilter2(const int8x16_t p0s, const int8x16_t q0s, const int8x16_t delta4 = vshrq_n_s8(delta_p4, 3); const int8x16_t sp0 = vqaddq_s8(p0s, delta3); const int8x16_t sq0 = vqsubq_s8(q0s, delta4); - *op0 = FlipSignBack(sp0); - *oq0 = FlipSignBack(sq0); -} - -static void DoFilter2(const uint8x16_t p1, const uint8x16_t p0, - const uint8x16_t q0, const uint8x16_t q1, - const uint8x16_t mask, - uint8x16_t* const op0, uint8x16_t* const oq0) { - const int8x16_t p1s = FlipSign(p1); - const int8x16_t p0s = FlipSign(p0); - const int8x16_t q0s = FlipSign(q0); - const int8x16_t q1s = FlipSign(q1); - const int8x16_t delta0 = GetBaseDelta(p1s, p0s, q0s, q1s); + *op0 = FlipSignBack_NEON(sp0); + *oq0 = FlipSignBack_NEON(sq0); +} + +static void DoFilter2_NEON(const uint8x16_t p1, const uint8x16_t p0, + const uint8x16_t q0, const uint8x16_t q1, + const uint8x16_t mask, + uint8x16_t* const op0, uint8x16_t* const oq0) { + const int8x16_t p1s = FlipSign_NEON(p1); + const int8x16_t p0s = FlipSign_NEON(p0); + const int8x16_t q0s = FlipSign_NEON(q0); + const int8x16_t q1s = FlipSign_NEON(q1); + const int8x16_t delta0 = GetBaseDelta_NEON(p1s, p0s, q0s, q1s); const int8x16_t delta1 = vandq_s8(delta0, vreinterpretq_s8_u8(mask)); - ApplyFilter2(p0s, q0s, delta1, op0, oq0); + ApplyFilter2_NEON(p0s, q0s, delta1, op0, oq0); } -static void SimpleVFilter16(uint8_t* p, int stride, int thresh) { +static void SimpleVFilter16_NEON(uint8_t* p, int stride, int thresh) { uint8x16_t p1, p0, q0, q1, op0, oq0; - Load16x4(p, stride, &p1, &p0, &q0, &q1); + Load16x4_NEON(p, stride, &p1, &p0, &q0, &q1); { - const uint8x16_t mask = NeedsFilter(p1, p0, q0, q1, thresh); - DoFilter2(p1, p0, q0, q1, mask, &op0, &oq0); + const uint8x16_t mask = NeedsFilter_NEON(p1, p0, q0, q1, thresh); + DoFilter2_NEON(p1, p0, q0, q1, mask, &op0, &oq0); } - Store16x2(op0, oq0, p, stride); + Store16x2_NEON(op0, oq0, p, stride); } -static void SimpleHFilter16(uint8_t* p, int stride, int thresh) { +static void SimpleHFilter16_NEON(uint8_t* p, int stride, int thresh) { uint8x16_t p1, p0, q0, q1, oq0, op0; - Load4x16(p, stride, &p1, &p0, &q0, &q1); + Load4x16_NEON(p, stride, &p1, &p0, &q0, &q1); { - const uint8x16_t mask = NeedsFilter(p1, p0, q0, q1, thresh); - DoFilter2(p1, p0, q0, q1, mask, &op0, &oq0); + const uint8x16_t mask = NeedsFilter_NEON(p1, p0, q0, q1, thresh); + DoFilter2_NEON(p1, p0, q0, q1, mask, &op0, &oq0); } - Store2x16(op0, oq0, p, stride); + Store2x16_NEON(op0, oq0, p, stride); } #else +// Load/Store vertical edge +#define LOAD8x4(c1, c2, c3, c4, b1, b2, stride) \ + "vld4.8 {" #c1 "[0]," #c2 "[0]," #c3 "[0]," #c4 "[0]}," #b1 "," #stride "\n" \ + "vld4.8 {" #c1 "[1]," #c2 "[1]," #c3 "[1]," #c4 "[1]}," #b2 "," #stride "\n" \ + "vld4.8 {" #c1 "[2]," #c2 "[2]," #c3 "[2]," #c4 "[2]}," #b1 "," #stride "\n" \ + "vld4.8 {" #c1 "[3]," #c2 "[3]," #c3 "[3]," #c4 "[3]}," #b2 "," #stride "\n" \ + "vld4.8 {" #c1 "[4]," #c2 "[4]," #c3 "[4]," #c4 "[4]}," #b1 "," #stride "\n" \ + "vld4.8 {" #c1 "[5]," #c2 "[5]," #c3 "[5]," #c4 "[5]}," #b2 "," #stride "\n" \ + "vld4.8 {" #c1 "[6]," #c2 "[6]," #c3 "[6]," #c4 "[6]}," #b1 "," #stride "\n" \ + "vld4.8 {" #c1 "[7]," #c2 "[7]," #c3 "[7]," #c4 "[7]}," #b2 "," #stride "\n" + +#define STORE8x2(c1, c2, p, stride) \ + "vst2.8 {" #c1 "[0], " #c2 "[0]}," #p "," #stride " \n" \ + "vst2.8 {" #c1 "[1], " #c2 "[1]}," #p "," #stride " \n" \ + "vst2.8 {" #c1 "[2], " #c2 "[2]}," #p "," #stride " \n" \ + "vst2.8 {" #c1 "[3], " #c2 "[3]}," #p "," #stride " \n" \ + "vst2.8 {" #c1 "[4], " #c2 "[4]}," #p "," #stride " \n" \ + "vst2.8 {" #c1 "[5], " #c2 "[5]}," #p "," #stride " \n" \ + "vst2.8 {" #c1 "[6], " #c2 "[6]}," #p "," #stride " \n" \ + "vst2.8 {" #c1 "[7], " #c2 "[7]}," #p "," #stride " \n" + #define QRegs "q0", "q1", "q2", "q3", \ "q8", "q9", "q10", "q11", "q12", "q13", "q14", "q15" @@ -592,7 +601,7 @@ static void SimpleHFilter16(uint8_t* p, int stride, int thresh) { DO_SIMPLE_FILTER(p0, q0, q9) /* apply filter */ \ FLIP_SIGN_BIT2(p0, q0, q10) -static void SimpleVFilter16(uint8_t* p, int stride, int thresh) { +static void SimpleVFilter16_NEON(uint8_t* p, int stride, int thresh) { __asm__ volatile ( "sub %[p], %[p], %[stride], lsl #1 \n" // p -= 2 * stride @@ -613,7 +622,7 @@ static void SimpleVFilter16(uint8_t* p, int stride, int thresh) { ); } -static void SimpleHFilter16(uint8_t* p, int stride, int thresh) { +static void SimpleHFilter16_NEON(uint8_t* p, int stride, int thresh) { __asm__ volatile ( "sub r4, %[p], #2 \n" // base1 = p - 2 "lsl r6, %[stride], #1 \n" // r6 = 2 * stride @@ -639,30 +648,33 @@ static void SimpleHFilter16(uint8_t* p, int stride, int thresh) { ); } +#undef LOAD8x4 +#undef STORE8x2 + #endif // WEBP_USE_INTRINSICS -static void SimpleVFilter16i(uint8_t* p, int stride, int thresh) { +static void SimpleVFilter16i_NEON(uint8_t* p, int stride, int thresh) { uint32_t k; for (k = 3; k != 0; --k) { p += 4 * stride; - SimpleVFilter16(p, stride, thresh); + SimpleVFilter16_NEON(p, stride, thresh); } } -static void SimpleHFilter16i(uint8_t* p, int stride, int thresh) { +static void SimpleHFilter16i_NEON(uint8_t* p, int stride, int thresh) { uint32_t k; for (k = 3; k != 0; --k) { p += 4; - SimpleHFilter16(p, stride, thresh); + SimpleHFilter16_NEON(p, stride, thresh); } } //------------------------------------------------------------------------------ // Complex In-loop filtering (Paragraph 15.3) -static uint8x16_t NeedsHev(const uint8x16_t p1, const uint8x16_t p0, - const uint8x16_t q0, const uint8x16_t q1, - int hev_thresh) { +static uint8x16_t NeedsHev_NEON(const uint8x16_t p1, const uint8x16_t p0, + const uint8x16_t q0, const uint8x16_t q1, + int hev_thresh) { const uint8x16_t hev_thresh_v = vdupq_n_u8((uint8_t)hev_thresh); const uint8x16_t a_p1_p0 = vabdq_u8(p1, p0); // abs(p1 - p0) const uint8x16_t a_q1_q0 = vabdq_u8(q1, q0); // abs(q1 - q0) @@ -671,11 +683,11 @@ static uint8x16_t NeedsHev(const uint8x16_t p1, const uint8x16_t p0, return mask; } -static uint8x16_t NeedsFilter2(const uint8x16_t p3, const uint8x16_t p2, - const uint8x16_t p1, const uint8x16_t p0, - const uint8x16_t q0, const uint8x16_t q1, - const uint8x16_t q2, const uint8x16_t q3, - int ithresh, int thresh) { +static uint8x16_t NeedsFilter2_NEON(const uint8x16_t p3, const uint8x16_t p2, + const uint8x16_t p1, const uint8x16_t p0, + const uint8x16_t q0, const uint8x16_t q1, + const uint8x16_t q2, const uint8x16_t q3, + int ithresh, int thresh) { const uint8x16_t ithresh_v = vdupq_n_u8((uint8_t)ithresh); const uint8x16_t a_p3_p2 = vabdq_u8(p3, p2); // abs(p3 - p2) const uint8x16_t a_p2_p1 = vabdq_u8(p2, p1); // abs(p2 - p1) @@ -689,14 +701,14 @@ static uint8x16_t NeedsFilter2(const uint8x16_t p3, const uint8x16_t p2, const uint8x16_t max12 = vmaxq_u8(max1, max2); const uint8x16_t max123 = vmaxq_u8(max12, max3); const uint8x16_t mask2 = vcgeq_u8(ithresh_v, max123); - const uint8x16_t mask1 = NeedsFilter(p1, p0, q0, q1, thresh); + const uint8x16_t mask1 = NeedsFilter_NEON(p1, p0, q0, q1, thresh); const uint8x16_t mask = vandq_u8(mask1, mask2); return mask; } // 4-points filter -static void ApplyFilter4( +static void ApplyFilter4_NEON( const int8x16_t p1, const int8x16_t p0, const int8x16_t q0, const int8x16_t q1, const int8x16_t delta0, @@ -709,47 +721,47 @@ static void ApplyFilter4( const int8x16_t a1 = vshrq_n_s8(delta1, 3); const int8x16_t a2 = vshrq_n_s8(delta2, 3); const int8x16_t a3 = vrshrq_n_s8(a1, 1); // a3 = (a1 + 1) >> 1 - *op0 = FlipSignBack(vqaddq_s8(p0, a2)); // clip(p0 + a2) - *oq0 = FlipSignBack(vqsubq_s8(q0, a1)); // clip(q0 - a1) - *op1 = FlipSignBack(vqaddq_s8(p1, a3)); // clip(p1 + a3) - *oq1 = FlipSignBack(vqsubq_s8(q1, a3)); // clip(q1 - a3) + *op0 = FlipSignBack_NEON(vqaddq_s8(p0, a2)); // clip(p0 + a2) + *oq0 = FlipSignBack_NEON(vqsubq_s8(q0, a1)); // clip(q0 - a1) + *op1 = FlipSignBack_NEON(vqaddq_s8(p1, a3)); // clip(p1 + a3) + *oq1 = FlipSignBack_NEON(vqsubq_s8(q1, a3)); // clip(q1 - a3) } -static void DoFilter4( +static void DoFilter4_NEON( const uint8x16_t p1, const uint8x16_t p0, const uint8x16_t q0, const uint8x16_t q1, const uint8x16_t mask, const uint8x16_t hev_mask, uint8x16_t* const op1, uint8x16_t* const op0, uint8x16_t* const oq0, uint8x16_t* const oq1) { // This is a fused version of DoFilter2() calling ApplyFilter2 directly - const int8x16_t p1s = FlipSign(p1); - int8x16_t p0s = FlipSign(p0); - int8x16_t q0s = FlipSign(q0); - const int8x16_t q1s = FlipSign(q1); + const int8x16_t p1s = FlipSign_NEON(p1); + int8x16_t p0s = FlipSign_NEON(p0); + int8x16_t q0s = FlipSign_NEON(q0); + const int8x16_t q1s = FlipSign_NEON(q1); const uint8x16_t simple_lf_mask = vandq_u8(mask, hev_mask); // do_filter2 part (simple loopfilter on pixels with hev) { - const int8x16_t delta = GetBaseDelta(p1s, p0s, q0s, q1s); + const int8x16_t delta = GetBaseDelta_NEON(p1s, p0s, q0s, q1s); const int8x16_t simple_lf_delta = vandq_s8(delta, vreinterpretq_s8_u8(simple_lf_mask)); - ApplyFilter2NoFlip(p0s, q0s, simple_lf_delta, &p0s, &q0s); + ApplyFilter2NoFlip_NEON(p0s, q0s, simple_lf_delta, &p0s, &q0s); } // do_filter4 part (complex loopfilter on pixels without hev) { - const int8x16_t delta0 = GetBaseDelta0(p0s, q0s); + const int8x16_t delta0 = GetBaseDelta0_NEON(p0s, q0s); // we use: (mask & hev_mask) ^ mask = mask & !hev_mask const uint8x16_t complex_lf_mask = veorq_u8(simple_lf_mask, mask); const int8x16_t complex_lf_delta = vandq_s8(delta0, vreinterpretq_s8_u8(complex_lf_mask)); - ApplyFilter4(p1s, p0s, q0s, q1s, complex_lf_delta, op1, op0, oq0, oq1); + ApplyFilter4_NEON(p1s, p0s, q0s, q1s, complex_lf_delta, op1, op0, oq0, oq1); } } // 6-points filter -static void ApplyFilter6( +static void ApplyFilter6_NEON( const int8x16_t p2, const int8x16_t p1, const int8x16_t p0, const int8x16_t q0, const int8x16_t q1, const int8x16_t q2, const int8x16_t delta, @@ -778,35 +790,35 @@ static void ApplyFilter6( const int8x16_t a2 = vcombine_s8(a2_lo, a2_hi); const int8x16_t a3 = vcombine_s8(a3_lo, a3_hi); - *op0 = FlipSignBack(vqaddq_s8(p0, a1)); // clip(p0 + a1) - *oq0 = FlipSignBack(vqsubq_s8(q0, a1)); // clip(q0 - q1) - *oq1 = FlipSignBack(vqsubq_s8(q1, a2)); // clip(q1 - a2) - *op1 = FlipSignBack(vqaddq_s8(p1, a2)); // clip(p1 + a2) - *oq2 = FlipSignBack(vqsubq_s8(q2, a3)); // clip(q2 - a3) - *op2 = FlipSignBack(vqaddq_s8(p2, a3)); // clip(p2 + a3) + *op0 = FlipSignBack_NEON(vqaddq_s8(p0, a1)); // clip(p0 + a1) + *oq0 = FlipSignBack_NEON(vqsubq_s8(q0, a1)); // clip(q0 - q1) + *oq1 = FlipSignBack_NEON(vqsubq_s8(q1, a2)); // clip(q1 - a2) + *op1 = FlipSignBack_NEON(vqaddq_s8(p1, a2)); // clip(p1 + a2) + *oq2 = FlipSignBack_NEON(vqsubq_s8(q2, a3)); // clip(q2 - a3) + *op2 = FlipSignBack_NEON(vqaddq_s8(p2, a3)); // clip(p2 + a3) } -static void DoFilter6( +static void DoFilter6_NEON( const uint8x16_t p2, const uint8x16_t p1, const uint8x16_t p0, const uint8x16_t q0, const uint8x16_t q1, const uint8x16_t q2, const uint8x16_t mask, const uint8x16_t hev_mask, uint8x16_t* const op2, uint8x16_t* const op1, uint8x16_t* const op0, uint8x16_t* const oq0, uint8x16_t* const oq1, uint8x16_t* const oq2) { // This is a fused version of DoFilter2() calling ApplyFilter2 directly - const int8x16_t p2s = FlipSign(p2); - const int8x16_t p1s = FlipSign(p1); - int8x16_t p0s = FlipSign(p0); - int8x16_t q0s = FlipSign(q0); - const int8x16_t q1s = FlipSign(q1); - const int8x16_t q2s = FlipSign(q2); + const int8x16_t p2s = FlipSign_NEON(p2); + const int8x16_t p1s = FlipSign_NEON(p1); + int8x16_t p0s = FlipSign_NEON(p0); + int8x16_t q0s = FlipSign_NEON(q0); + const int8x16_t q1s = FlipSign_NEON(q1); + const int8x16_t q2s = FlipSign_NEON(q2); const uint8x16_t simple_lf_mask = vandq_u8(mask, hev_mask); - const int8x16_t delta0 = GetBaseDelta(p1s, p0s, q0s, q1s); + const int8x16_t delta0 = GetBaseDelta_NEON(p1s, p0s, q0s, q1s); // do_filter2 part (simple loopfilter on pixels with hev) { const int8x16_t simple_lf_delta = vandq_s8(delta0, vreinterpretq_s8_u8(simple_lf_mask)); - ApplyFilter2NoFlip(p0s, q0s, simple_lf_delta, &p0s, &q0s); + ApplyFilter2NoFlip_NEON(p0s, q0s, simple_lf_delta, &p0s, &q0s); } // do_filter6 part (complex loopfilter on pixels without hev) @@ -815,65 +827,65 @@ static void DoFilter6( const uint8x16_t complex_lf_mask = veorq_u8(simple_lf_mask, mask); const int8x16_t complex_lf_delta = vandq_s8(delta0, vreinterpretq_s8_u8(complex_lf_mask)); - ApplyFilter6(p2s, p1s, p0s, q0s, q1s, q2s, complex_lf_delta, - op2, op1, op0, oq0, oq1, oq2); + ApplyFilter6_NEON(p2s, p1s, p0s, q0s, q1s, q2s, complex_lf_delta, + op2, op1, op0, oq0, oq1, oq2); } } // on macroblock edges -static void VFilter16(uint8_t* p, int stride, - int thresh, int ithresh, int hev_thresh) { +static void VFilter16_NEON(uint8_t* p, int stride, + int thresh, int ithresh, int hev_thresh) { uint8x16_t p3, p2, p1, p0, q0, q1, q2, q3; - Load16x8(p, stride, &p3, &p2, &p1, &p0, &q0, &q1, &q2, &q3); + Load16x8_NEON(p, stride, &p3, &p2, &p1, &p0, &q0, &q1, &q2, &q3); { - const uint8x16_t mask = NeedsFilter2(p3, p2, p1, p0, q0, q1, q2, q3, - ithresh, thresh); - const uint8x16_t hev_mask = NeedsHev(p1, p0, q0, q1, hev_thresh); + const uint8x16_t mask = NeedsFilter2_NEON(p3, p2, p1, p0, q0, q1, q2, q3, + ithresh, thresh); + const uint8x16_t hev_mask = NeedsHev_NEON(p1, p0, q0, q1, hev_thresh); uint8x16_t op2, op1, op0, oq0, oq1, oq2; - DoFilter6(p2, p1, p0, q0, q1, q2, mask, hev_mask, - &op2, &op1, &op0, &oq0, &oq1, &oq2); - Store16x2(op2, op1, p - 2 * stride, stride); - Store16x2(op0, oq0, p + 0 * stride, stride); - Store16x2(oq1, oq2, p + 2 * stride, stride); + DoFilter6_NEON(p2, p1, p0, q0, q1, q2, mask, hev_mask, + &op2, &op1, &op0, &oq0, &oq1, &oq2); + Store16x2_NEON(op2, op1, p - 2 * stride, stride); + Store16x2_NEON(op0, oq0, p + 0 * stride, stride); + Store16x2_NEON(oq1, oq2, p + 2 * stride, stride); } } -static void HFilter16(uint8_t* p, int stride, - int thresh, int ithresh, int hev_thresh) { +static void HFilter16_NEON(uint8_t* p, int stride, + int thresh, int ithresh, int hev_thresh) { uint8x16_t p3, p2, p1, p0, q0, q1, q2, q3; - Load8x16(p, stride, &p3, &p2, &p1, &p0, &q0, &q1, &q2, &q3); + Load8x16_NEON(p, stride, &p3, &p2, &p1, &p0, &q0, &q1, &q2, &q3); { - const uint8x16_t mask = NeedsFilter2(p3, p2, p1, p0, q0, q1, q2, q3, - ithresh, thresh); - const uint8x16_t hev_mask = NeedsHev(p1, p0, q0, q1, hev_thresh); + const uint8x16_t mask = NeedsFilter2_NEON(p3, p2, p1, p0, q0, q1, q2, q3, + ithresh, thresh); + const uint8x16_t hev_mask = NeedsHev_NEON(p1, p0, q0, q1, hev_thresh); uint8x16_t op2, op1, op0, oq0, oq1, oq2; - DoFilter6(p2, p1, p0, q0, q1, q2, mask, hev_mask, - &op2, &op1, &op0, &oq0, &oq1, &oq2); - Store2x16(op2, op1, p - 2, stride); - Store2x16(op0, oq0, p + 0, stride); - Store2x16(oq1, oq2, p + 2, stride); + DoFilter6_NEON(p2, p1, p0, q0, q1, q2, mask, hev_mask, + &op2, &op1, &op0, &oq0, &oq1, &oq2); + Store2x16_NEON(op2, op1, p - 2, stride); + Store2x16_NEON(op0, oq0, p + 0, stride); + Store2x16_NEON(oq1, oq2, p + 2, stride); } } // on three inner edges -static void VFilter16i(uint8_t* p, int stride, - int thresh, int ithresh, int hev_thresh) { +static void VFilter16i_NEON(uint8_t* p, int stride, + int thresh, int ithresh, int hev_thresh) { uint32_t k; uint8x16_t p3, p2, p1, p0; - Load16x4(p + 2 * stride, stride, &p3, &p2, &p1, &p0); + Load16x4_NEON(p + 2 * stride, stride, &p3, &p2, &p1, &p0); for (k = 3; k != 0; --k) { uint8x16_t q0, q1, q2, q3; p += 4 * stride; - Load16x4(p + 2 * stride, stride, &q0, &q1, &q2, &q3); + Load16x4_NEON(p + 2 * stride, stride, &q0, &q1, &q2, &q3); { const uint8x16_t mask = - NeedsFilter2(p3, p2, p1, p0, q0, q1, q2, q3, ithresh, thresh); - const uint8x16_t hev_mask = NeedsHev(p1, p0, q0, q1, hev_thresh); + NeedsFilter2_NEON(p3, p2, p1, p0, q0, q1, q2, q3, ithresh, thresh); + const uint8x16_t hev_mask = NeedsHev_NEON(p1, p0, q0, q1, hev_thresh); // p3 and p2 are not just temporary variables here: they will be // re-used for next span. And q2/q3 will become p1/p0 accordingly. - DoFilter4(p1, p0, q0, q1, mask, hev_mask, &p1, &p0, &p3, &p2); - Store16x4(p1, p0, p3, p2, p, stride); + DoFilter4_NEON(p1, p0, q0, q1, mask, hev_mask, &p1, &p0, &p3, &p2); + Store16x4_NEON(p1, p0, p3, p2, p, stride); p1 = q2; p0 = q3; } @@ -881,21 +893,21 @@ static void VFilter16i(uint8_t* p, int stride, } #if !defined(WORK_AROUND_GCC) -static void HFilter16i(uint8_t* p, int stride, - int thresh, int ithresh, int hev_thresh) { +static void HFilter16i_NEON(uint8_t* p, int stride, + int thresh, int ithresh, int hev_thresh) { uint32_t k; uint8x16_t p3, p2, p1, p0; - Load4x16(p + 2, stride, &p3, &p2, &p1, &p0); + Load4x16_NEON(p + 2, stride, &p3, &p2, &p1, &p0); for (k = 3; k != 0; --k) { uint8x16_t q0, q1, q2, q3; p += 4; - Load4x16(p + 2, stride, &q0, &q1, &q2, &q3); + Load4x16_NEON(p + 2, stride, &q0, &q1, &q2, &q3); { const uint8x16_t mask = - NeedsFilter2(p3, p2, p1, p0, q0, q1, q2, q3, ithresh, thresh); - const uint8x16_t hev_mask = NeedsHev(p1, p0, q0, q1, hev_thresh); - DoFilter4(p1, p0, q0, q1, mask, hev_mask, &p1, &p0, &p3, &p2); - Store4x16(p1, p0, p3, p2, p, stride); + NeedsFilter2_NEON(p3, p2, p1, p0, q0, q1, q2, q3, ithresh, thresh); + const uint8x16_t hev_mask = NeedsHev_NEON(p1, p0, q0, q1, hev_thresh); + DoFilter4_NEON(p1, p0, q0, q1, mask, hev_mask, &p1, &p0, &p3, &p2); + Store4x16_NEON(p1, p0, p3, p2, p, stride); p1 = q2; p0 = q3; } @@ -904,67 +916,67 @@ static void HFilter16i(uint8_t* p, int stride, #endif // !WORK_AROUND_GCC // 8-pixels wide variant, for chroma filtering -static void VFilter8(uint8_t* u, uint8_t* v, int stride, - int thresh, int ithresh, int hev_thresh) { +static void VFilter8_NEON(uint8_t* u, uint8_t* v, int stride, + int thresh, int ithresh, int hev_thresh) { uint8x16_t p3, p2, p1, p0, q0, q1, q2, q3; - Load8x8x2(u, v, stride, &p3, &p2, &p1, &p0, &q0, &q1, &q2, &q3); + Load8x8x2_NEON(u, v, stride, &p3, &p2, &p1, &p0, &q0, &q1, &q2, &q3); { - const uint8x16_t mask = NeedsFilter2(p3, p2, p1, p0, q0, q1, q2, q3, - ithresh, thresh); - const uint8x16_t hev_mask = NeedsHev(p1, p0, q0, q1, hev_thresh); + const uint8x16_t mask = NeedsFilter2_NEON(p3, p2, p1, p0, q0, q1, q2, q3, + ithresh, thresh); + const uint8x16_t hev_mask = NeedsHev_NEON(p1, p0, q0, q1, hev_thresh); uint8x16_t op2, op1, op0, oq0, oq1, oq2; - DoFilter6(p2, p1, p0, q0, q1, q2, mask, hev_mask, - &op2, &op1, &op0, &oq0, &oq1, &oq2); - Store8x2x2(op2, op1, u - 2 * stride, v - 2 * stride, stride); - Store8x2x2(op0, oq0, u + 0 * stride, v + 0 * stride, stride); - Store8x2x2(oq1, oq2, u + 2 * stride, v + 2 * stride, stride); + DoFilter6_NEON(p2, p1, p0, q0, q1, q2, mask, hev_mask, + &op2, &op1, &op0, &oq0, &oq1, &oq2); + Store8x2x2_NEON(op2, op1, u - 2 * stride, v - 2 * stride, stride); + Store8x2x2_NEON(op0, oq0, u + 0 * stride, v + 0 * stride, stride); + Store8x2x2_NEON(oq1, oq2, u + 2 * stride, v + 2 * stride, stride); } } -static void VFilter8i(uint8_t* u, uint8_t* v, int stride, - int thresh, int ithresh, int hev_thresh) { +static void VFilter8i_NEON(uint8_t* u, uint8_t* v, int stride, + int thresh, int ithresh, int hev_thresh) { uint8x16_t p3, p2, p1, p0, q0, q1, q2, q3; u += 4 * stride; v += 4 * stride; - Load8x8x2(u, v, stride, &p3, &p2, &p1, &p0, &q0, &q1, &q2, &q3); + Load8x8x2_NEON(u, v, stride, &p3, &p2, &p1, &p0, &q0, &q1, &q2, &q3); { - const uint8x16_t mask = NeedsFilter2(p3, p2, p1, p0, q0, q1, q2, q3, - ithresh, thresh); - const uint8x16_t hev_mask = NeedsHev(p1, p0, q0, q1, hev_thresh); + const uint8x16_t mask = NeedsFilter2_NEON(p3, p2, p1, p0, q0, q1, q2, q3, + ithresh, thresh); + const uint8x16_t hev_mask = NeedsHev_NEON(p1, p0, q0, q1, hev_thresh); uint8x16_t op1, op0, oq0, oq1; - DoFilter4(p1, p0, q0, q1, mask, hev_mask, &op1, &op0, &oq0, &oq1); - Store8x4x2(op1, op0, oq0, oq1, u, v, stride); + DoFilter4_NEON(p1, p0, q0, q1, mask, hev_mask, &op1, &op0, &oq0, &oq1); + Store8x4x2_NEON(op1, op0, oq0, oq1, u, v, stride); } } #if !defined(WORK_AROUND_GCC) -static void HFilter8(uint8_t* u, uint8_t* v, int stride, - int thresh, int ithresh, int hev_thresh) { +static void HFilter8_NEON(uint8_t* u, uint8_t* v, int stride, + int thresh, int ithresh, int hev_thresh) { uint8x16_t p3, p2, p1, p0, q0, q1, q2, q3; - Load8x8x2T(u, v, stride, &p3, &p2, &p1, &p0, &q0, &q1, &q2, &q3); + Load8x8x2T_NEON(u, v, stride, &p3, &p2, &p1, &p0, &q0, &q1, &q2, &q3); { - const uint8x16_t mask = NeedsFilter2(p3, p2, p1, p0, q0, q1, q2, q3, - ithresh, thresh); - const uint8x16_t hev_mask = NeedsHev(p1, p0, q0, q1, hev_thresh); + const uint8x16_t mask = NeedsFilter2_NEON(p3, p2, p1, p0, q0, q1, q2, q3, + ithresh, thresh); + const uint8x16_t hev_mask = NeedsHev_NEON(p1, p0, q0, q1, hev_thresh); uint8x16_t op2, op1, op0, oq0, oq1, oq2; - DoFilter6(p2, p1, p0, q0, q1, q2, mask, hev_mask, - &op2, &op1, &op0, &oq0, &oq1, &oq2); - Store6x8x2(op2, op1, op0, oq0, oq1, oq2, u, v, stride); + DoFilter6_NEON(p2, p1, p0, q0, q1, q2, mask, hev_mask, + &op2, &op1, &op0, &oq0, &oq1, &oq2); + Store6x8x2_NEON(op2, op1, op0, oq0, oq1, oq2, u, v, stride); } } -static void HFilter8i(uint8_t* u, uint8_t* v, int stride, - int thresh, int ithresh, int hev_thresh) { +static void HFilter8i_NEON(uint8_t* u, uint8_t* v, int stride, + int thresh, int ithresh, int hev_thresh) { uint8x16_t p3, p2, p1, p0, q0, q1, q2, q3; u += 4; v += 4; - Load8x8x2T(u, v, stride, &p3, &p2, &p1, &p0, &q0, &q1, &q2, &q3); + Load8x8x2T_NEON(u, v, stride, &p3, &p2, &p1, &p0, &q0, &q1, &q2, &q3); { - const uint8x16_t mask = NeedsFilter2(p3, p2, p1, p0, q0, q1, q2, q3, - ithresh, thresh); - const uint8x16_t hev_mask = NeedsHev(p1, p0, q0, q1, hev_thresh); + const uint8x16_t mask = NeedsFilter2_NEON(p3, p2, p1, p0, q0, q1, q2, q3, + ithresh, thresh); + const uint8x16_t hev_mask = NeedsHev_NEON(p1, p0, q0, q1, hev_thresh); uint8x16_t op1, op0, oq0, oq1; - DoFilter4(p1, p0, q0, q1, mask, hev_mask, &op1, &op0, &oq0, &oq1); - Store4x8x2(op1, op0, oq0, oq1, u, v, stride); + DoFilter4_NEON(p1, p0, q0, q1, mask, hev_mask, &op1, &op0, &oq0, &oq1); + Store4x8x2_NEON(op1, op0, oq0, oq1, u, v, stride); } } #endif // !WORK_AROUND_GCC @@ -992,8 +1004,9 @@ static const int16_t kC1 = 20091; static const int16_t kC2 = 17734; // half of kC2, actually. See comment above. #if defined(WEBP_USE_INTRINSICS) -static WEBP_INLINE void Transpose8x2(const int16x8_t in0, const int16x8_t in1, - int16x8x2_t* const out) { +static WEBP_INLINE void Transpose8x2_NEON(const int16x8_t in0, + const int16x8_t in1, + int16x8x2_t* const out) { // a0 a1 a2 a3 | b0 b1 b2 b3 => a0 b0 c0 d0 | a1 b1 c1 d1 // c0 c1 c2 c3 | d0 d1 d2 d3 a2 b2 c2 d2 | a3 b3 c3 d3 const int16x8x2_t tmp0 = vzipq_s16(in0, in1); // a0 c0 a1 c1 a2 c2 ... @@ -1001,7 +1014,7 @@ static WEBP_INLINE void Transpose8x2(const int16x8_t in0, const int16x8_t in1, *out = vzipq_s16(tmp0.val[0], tmp0.val[1]); } -static WEBP_INLINE void TransformPass(int16x8x2_t* const rows) { +static WEBP_INLINE void TransformPass_NEON(int16x8x2_t* const rows) { // {rows} = in0 | in4 // in8 | in12 // B1 = in4 | in12 @@ -1024,20 +1037,20 @@ static WEBP_INLINE void TransformPass(int16x8x2_t* const rows) { const int16x8_t E0 = vqaddq_s16(D0, D1); // a+d | b+c const int16x8_t E_tmp = vqsubq_s16(D0, D1); // a-d | b-c const int16x8_t E1 = vcombine_s16(vget_high_s16(E_tmp), vget_low_s16(E_tmp)); - Transpose8x2(E0, E1, rows); + Transpose8x2_NEON(E0, E1, rows); } -static void TransformOne(const int16_t* in, uint8_t* dst) { +static void TransformOne_NEON(const int16_t* in, uint8_t* dst) { int16x8x2_t rows; INIT_VECTOR2(rows, vld1q_s16(in + 0), vld1q_s16(in + 8)); - TransformPass(&rows); - TransformPass(&rows); - Add4x4(rows.val[0], rows.val[1], dst); + TransformPass_NEON(&rows); + TransformPass_NEON(&rows); + Add4x4_NEON(rows.val[0], rows.val[1], dst); } #else -static void TransformOne(const int16_t* in, uint8_t* dst) { +static void TransformOne_NEON(const int16_t* in, uint8_t* dst) { const int kBPS = BPS; // kC1, kC2. Padded because vld1.16 loads 8 bytes const int16_t constants[4] = { kC1, kC2, 0, 0 }; @@ -1170,16 +1183,16 @@ static void TransformOne(const int16_t* in, uint8_t* dst) { #endif // WEBP_USE_INTRINSICS -static void TransformTwo(const int16_t* in, uint8_t* dst, int do_two) { - TransformOne(in, dst); +static void TransformTwo_NEON(const int16_t* in, uint8_t* dst, int do_two) { + TransformOne_NEON(in, dst); if (do_two) { - TransformOne(in + 16, dst + 4); + TransformOne_NEON(in + 16, dst + 4); } } -static void TransformDC(const int16_t* in, uint8_t* dst) { +static void TransformDC_NEON(const int16_t* in, uint8_t* dst) { const int16x8_t DC = vdupq_n_s16(in[0]); - Add4x4(DC, DC, dst); + Add4x4_NEON(DC, DC, dst); } //------------------------------------------------------------------------------ @@ -1191,7 +1204,7 @@ static void TransformDC(const int16_t* in, uint8_t* dst) { *dst = vgetq_lane_s32(rows.val[3], col); (dst) += 16; \ } while (0) -static void TransformWHT(const int16_t* in, int16_t* out) { +static void TransformWHT_NEON(const int16_t* in, int16_t* out) { int32x4x4_t tmp; { @@ -1209,7 +1222,7 @@ static void TransformWHT(const int16_t* in, int16_t* out) { tmp.val[2] = vsubq_s32(a0, a1); tmp.val[3] = vsubq_s32(a3, a2); // Arrange the temporary results column-wise. - tmp = Transpose4x4(tmp); + tmp = Transpose4x4_NEON(tmp); } { @@ -1243,7 +1256,7 @@ static void TransformWHT(const int16_t* in, int16_t* out) { //------------------------------------------------------------------------------ #define MUL(a, b) (((a) * (b)) >> 16) -static void TransformAC3(const int16_t* in, uint8_t* dst) { +static void TransformAC3_NEON(const int16_t* in, uint8_t* dst) { static const int kC1_full = 20091 + (1 << 16); static const int kC2_full = 35468; const int16x4_t A = vld1_dup_s16(in); @@ -1259,14 +1272,14 @@ static void TransformAC3(const int16_t* in, uint8_t* dst) { const int16x4_t B = vqadd_s16(A, CD); const int16x8_t m0_m1 = vcombine_s16(vqadd_s16(B, d4), vqadd_s16(B, c4)); const int16x8_t m2_m3 = vcombine_s16(vqsub_s16(B, c4), vqsub_s16(B, d4)); - Add4x4(m0_m1, m2_m3, dst); + Add4x4_NEON(m0_m1, m2_m3, dst); } #undef MUL //------------------------------------------------------------------------------ // 4x4 -static void DC4(uint8_t* dst) { // DC +static void DC4_NEON(uint8_t* dst) { // DC const uint8x8_t A = vld1_u8(dst - BPS); // top row const uint16x4_t p0 = vpaddl_u8(A); // cascading summation of the top const uint16x4_t p1 = vpadd_u16(p0, p0); @@ -1287,17 +1300,17 @@ static void DC4(uint8_t* dst) { // DC } // TrueMotion (4x4 + 8x8) -static WEBP_INLINE void TrueMotion(uint8_t* dst, int size) { +static WEBP_INLINE void TrueMotion_NEON(uint8_t* dst, int size) { const uint8x8_t TL = vld1_dup_u8(dst - BPS - 1); // top-left pixel 'A[-1]' const uint8x8_t T = vld1_u8(dst - BPS); // top row 'A[0..3]' const int16x8_t d = vreinterpretq_s16_u16(vsubl_u8(T, TL)); // A[c] - A[-1] int y; for (y = 0; y < size; y += 4) { // left edge - const int16x8_t L0 = ConvertU8ToS16(vld1_dup_u8(dst + 0 * BPS - 1)); - const int16x8_t L1 = ConvertU8ToS16(vld1_dup_u8(dst + 1 * BPS - 1)); - const int16x8_t L2 = ConvertU8ToS16(vld1_dup_u8(dst + 2 * BPS - 1)); - const int16x8_t L3 = ConvertU8ToS16(vld1_dup_u8(dst + 3 * BPS - 1)); + const int16x8_t L0 = ConvertU8ToS16_NEON(vld1_dup_u8(dst + 0 * BPS - 1)); + const int16x8_t L1 = ConvertU8ToS16_NEON(vld1_dup_u8(dst + 1 * BPS - 1)); + const int16x8_t L2 = ConvertU8ToS16_NEON(vld1_dup_u8(dst + 2 * BPS - 1)); + const int16x8_t L3 = ConvertU8ToS16_NEON(vld1_dup_u8(dst + 3 * BPS - 1)); const int16x8_t r0 = vaddq_s16(L0, d); // L[r] + A[c] - A[-1] const int16x8_t r1 = vaddq_s16(L1, d); const int16x8_t r2 = vaddq_s16(L2, d); @@ -1322,9 +1335,9 @@ static WEBP_INLINE void TrueMotion(uint8_t* dst, int size) { } } -static void TM4(uint8_t* dst) { TrueMotion(dst, 4); } +static void TM4_NEON(uint8_t* dst) { TrueMotion_NEON(dst, 4); } -static void VE4(uint8_t* dst) { // vertical +static void VE4_NEON(uint8_t* dst) { // vertical // NB: avoid vld1_u64 here as an alignment hint may be added -> SIGBUS. const uint64x1_t A0 = vreinterpret_u64_u8(vld1_u8(dst - BPS - 1)); // top row const uint64x1_t A1 = vshr_n_u64(A0, 8); @@ -1340,7 +1353,7 @@ static void VE4(uint8_t* dst) { // vertical } } -static void RD4(uint8_t* dst) { // Down-right +static void RD4_NEON(uint8_t* dst) { // Down-right const uint8x8_t XABCD_u8 = vld1_u8(dst - BPS - 1); const uint64x1_t XABCD = vreinterpret_u64_u8(XABCD_u8); const uint64x1_t ____XABC = vshl_n_u64(XABCD, 32); @@ -1368,7 +1381,7 @@ static void RD4(uint8_t* dst) { // Down-right vst1_lane_u32((uint32_t*)(dst + 3 * BPS), r3, 0); } -static void LD4(uint8_t* dst) { // Down-left +static void LD4_NEON(uint8_t* dst) { // Down-left // Note using the same shift trick as VE4() is slower here. const uint8x8_t ABCDEFGH = vld1_u8(dst - BPS + 0); const uint8x8_t BCDEFGH0 = vld1_u8(dst - BPS + 1); @@ -1390,7 +1403,7 @@ static void LD4(uint8_t* dst) { // Down-left //------------------------------------------------------------------------------ // Chroma -static void VE8uv(uint8_t* dst) { // vertical +static void VE8uv_NEON(uint8_t* dst) { // vertical const uint8x8_t top = vld1_u8(dst - BPS); int j; for (j = 0; j < 8; ++j) { @@ -1398,7 +1411,7 @@ static void VE8uv(uint8_t* dst) { // vertical } } -static void HE8uv(uint8_t* dst) { // horizontal +static void HE8uv_NEON(uint8_t* dst) { // horizontal int j; for (j = 0; j < 8; ++j) { const uint8x8_t left = vld1_dup_u8(dst - 1); @@ -1407,7 +1420,7 @@ static void HE8uv(uint8_t* dst) { // horizontal } } -static WEBP_INLINE void DC8(uint8_t* dst, int do_top, int do_left) { +static WEBP_INLINE void DC8_NEON(uint8_t* dst, int do_top, int do_left) { uint16x8_t sum_top; uint16x8_t sum_left; uint8x8_t dc0; @@ -1458,17 +1471,17 @@ static WEBP_INLINE void DC8(uint8_t* dst, int do_top, int do_left) { } } -static void DC8uv(uint8_t* dst) { DC8(dst, 1, 1); } -static void DC8uvNoTop(uint8_t* dst) { DC8(dst, 0, 1); } -static void DC8uvNoLeft(uint8_t* dst) { DC8(dst, 1, 0); } -static void DC8uvNoTopLeft(uint8_t* dst) { DC8(dst, 0, 0); } +static void DC8uv_NEON(uint8_t* dst) { DC8_NEON(dst, 1, 1); } +static void DC8uvNoTop_NEON(uint8_t* dst) { DC8_NEON(dst, 0, 1); } +static void DC8uvNoLeft_NEON(uint8_t* dst) { DC8_NEON(dst, 1, 0); } +static void DC8uvNoTopLeft_NEON(uint8_t* dst) { DC8_NEON(dst, 0, 0); } -static void TM8uv(uint8_t* dst) { TrueMotion(dst, 8); } +static void TM8uv_NEON(uint8_t* dst) { TrueMotion_NEON(dst, 8); } //------------------------------------------------------------------------------ // 16x16 -static void VE16(uint8_t* dst) { // vertical +static void VE16_NEON(uint8_t* dst) { // vertical const uint8x16_t top = vld1q_u8(dst - BPS); int j; for (j = 0; j < 16; ++j) { @@ -1476,7 +1489,7 @@ static void VE16(uint8_t* dst) { // vertical } } -static void HE16(uint8_t* dst) { // horizontal +static void HE16_NEON(uint8_t* dst) { // horizontal int j; for (j = 0; j < 16; ++j) { const uint8x16_t left = vld1q_dup_u8(dst - 1); @@ -1485,7 +1498,7 @@ static void HE16(uint8_t* dst) { // horizontal } } -static WEBP_INLINE void DC16(uint8_t* dst, int do_top, int do_left) { +static WEBP_INLINE void DC16_NEON(uint8_t* dst, int do_top, int do_left) { uint16x8_t sum_top; uint16x8_t sum_left; uint8x8_t dc0; @@ -1542,12 +1555,12 @@ static WEBP_INLINE void DC16(uint8_t* dst, int do_top, int do_left) { } } -static void DC16TopLeft(uint8_t* dst) { DC16(dst, 1, 1); } -static void DC16NoTop(uint8_t* dst) { DC16(dst, 0, 1); } -static void DC16NoLeft(uint8_t* dst) { DC16(dst, 1, 0); } -static void DC16NoTopLeft(uint8_t* dst) { DC16(dst, 0, 0); } +static void DC16TopLeft_NEON(uint8_t* dst) { DC16_NEON(dst, 1, 1); } +static void DC16NoTop_NEON(uint8_t* dst) { DC16_NEON(dst, 0, 1); } +static void DC16NoLeft_NEON(uint8_t* dst) { DC16_NEON(dst, 1, 0); } +static void DC16NoTopLeft_NEON(uint8_t* dst) { DC16_NEON(dst, 0, 0); } -static void TM16(uint8_t* dst) { +static void TM16_NEON(uint8_t* dst) { const uint8x8_t TL = vld1_dup_u8(dst - BPS - 1); // top-left pixel 'A[-1]' const uint8x16_t T = vld1q_u8(dst - BPS); // top row 'A[0..15]' // A[c] - A[-1] @@ -1556,10 +1569,10 @@ static void TM16(uint8_t* dst) { int y; for (y = 0; y < 16; y += 4) { // left edge - const int16x8_t L0 = ConvertU8ToS16(vld1_dup_u8(dst + 0 * BPS - 1)); - const int16x8_t L1 = ConvertU8ToS16(vld1_dup_u8(dst + 1 * BPS - 1)); - const int16x8_t L2 = ConvertU8ToS16(vld1_dup_u8(dst + 2 * BPS - 1)); - const int16x8_t L3 = ConvertU8ToS16(vld1_dup_u8(dst + 3 * BPS - 1)); + const int16x8_t L0 = ConvertU8ToS16_NEON(vld1_dup_u8(dst + 0 * BPS - 1)); + const int16x8_t L1 = ConvertU8ToS16_NEON(vld1_dup_u8(dst + 1 * BPS - 1)); + const int16x8_t L2 = ConvertU8ToS16_NEON(vld1_dup_u8(dst + 2 * BPS - 1)); + const int16x8_t L3 = ConvertU8ToS16_NEON(vld1_dup_u8(dst + 3 * BPS - 1)); const int16x8_t r0_lo = vaddq_s16(L0, d_lo); // L[r] + A[c] - A[-1] const int16x8_t r1_lo = vaddq_s16(L1, d_lo); const int16x8_t r2_lo = vaddq_s16(L2, d_lo); @@ -1587,49 +1600,49 @@ static void TM16(uint8_t* dst) { extern void VP8DspInitNEON(void); WEBP_TSAN_IGNORE_FUNCTION void VP8DspInitNEON(void) { - VP8Transform = TransformTwo; - VP8TransformAC3 = TransformAC3; - VP8TransformDC = TransformDC; - VP8TransformWHT = TransformWHT; - - VP8VFilter16 = VFilter16; - VP8VFilter16i = VFilter16i; - VP8HFilter16 = HFilter16; + VP8Transform = TransformTwo_NEON; + VP8TransformAC3 = TransformAC3_NEON; + VP8TransformDC = TransformDC_NEON; + VP8TransformWHT = TransformWHT_NEON; + + VP8VFilter16 = VFilter16_NEON; + VP8VFilter16i = VFilter16i_NEON; + VP8HFilter16 = HFilter16_NEON; #if !defined(WORK_AROUND_GCC) - VP8HFilter16i = HFilter16i; + VP8HFilter16i = HFilter16i_NEON; #endif - VP8VFilter8 = VFilter8; - VP8VFilter8i = VFilter8i; + VP8VFilter8 = VFilter8_NEON; + VP8VFilter8i = VFilter8i_NEON; #if !defined(WORK_AROUND_GCC) - VP8HFilter8 = HFilter8; - VP8HFilter8i = HFilter8i; + VP8HFilter8 = HFilter8_NEON; + VP8HFilter8i = HFilter8i_NEON; #endif - VP8SimpleVFilter16 = SimpleVFilter16; - VP8SimpleHFilter16 = SimpleHFilter16; - VP8SimpleVFilter16i = SimpleVFilter16i; - VP8SimpleHFilter16i = SimpleHFilter16i; - - VP8PredLuma4[0] = DC4; - VP8PredLuma4[1] = TM4; - VP8PredLuma4[2] = VE4; - VP8PredLuma4[4] = RD4; - VP8PredLuma4[6] = LD4; - - VP8PredLuma16[0] = DC16TopLeft; - VP8PredLuma16[1] = TM16; - VP8PredLuma16[2] = VE16; - VP8PredLuma16[3] = HE16; - VP8PredLuma16[4] = DC16NoTop; - VP8PredLuma16[5] = DC16NoLeft; - VP8PredLuma16[6] = DC16NoTopLeft; - - VP8PredChroma8[0] = DC8uv; - VP8PredChroma8[1] = TM8uv; - VP8PredChroma8[2] = VE8uv; - VP8PredChroma8[3] = HE8uv; - VP8PredChroma8[4] = DC8uvNoTop; - VP8PredChroma8[5] = DC8uvNoLeft; - VP8PredChroma8[6] = DC8uvNoTopLeft; + VP8SimpleVFilter16 = SimpleVFilter16_NEON; + VP8SimpleHFilter16 = SimpleHFilter16_NEON; + VP8SimpleVFilter16i = SimpleVFilter16i_NEON; + VP8SimpleHFilter16i = SimpleHFilter16i_NEON; + + VP8PredLuma4[0] = DC4_NEON; + VP8PredLuma4[1] = TM4_NEON; + VP8PredLuma4[2] = VE4_NEON; + VP8PredLuma4[4] = RD4_NEON; + VP8PredLuma4[6] = LD4_NEON; + + VP8PredLuma16[0] = DC16TopLeft_NEON; + VP8PredLuma16[1] = TM16_NEON; + VP8PredLuma16[2] = VE16_NEON; + VP8PredLuma16[3] = HE16_NEON; + VP8PredLuma16[4] = DC16NoTop_NEON; + VP8PredLuma16[5] = DC16NoLeft_NEON; + VP8PredLuma16[6] = DC16NoTopLeft_NEON; + + VP8PredChroma8[0] = DC8uv_NEON; + VP8PredChroma8[1] = TM8uv_NEON; + VP8PredChroma8[2] = VE8uv_NEON; + VP8PredChroma8[3] = HE8uv_NEON; + VP8PredChroma8[4] = DC8uvNoTop_NEON; + VP8PredChroma8[5] = DC8uvNoLeft_NEON; + VP8PredChroma8[6] = DC8uvNoTopLeft_NEON; } #else // !WEBP_USE_NEON diff --git a/external/libwebp-0.6.0/src/dsp/dec_sse2.c b/external/libwebp-1.0.0/src/dsp/dec_sse2.c similarity index 73% rename from external/libwebp-0.6.0/src/dsp/dec_sse2.c rename to external/libwebp-1.0.0/src/dsp/dec_sse2.c index 411fb027..b3840faf 100644 --- a/external/libwebp-0.6.0/src/dsp/dec_sse2.c +++ b/external/libwebp-1.0.0/src/dsp/dec_sse2.c @@ -12,23 +12,25 @@ // Author: somnath@google.com (Somnath Banerjee) // cduvivier@google.com (Christian Duvivier) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_SSE2) // The 3-coeff sparse transform in SSE2 is not really faster than the plain-C // one it seems => disable it by default. Uncomment the following to enable: -// #define USE_TRANSFORM_AC3 +#if !defined(USE_TRANSFORM_AC3) +#define USE_TRANSFORM_AC3 0 // ALTERNATE_CODE +#endif #include -#include "./common_sse2.h" -#include "../dec/vp8i_dec.h" -#include "../utils/utils.h" +#include "src/dsp/common_sse2.h" +#include "src/dec/vp8i_dec.h" +#include "src/utils/utils.h" //------------------------------------------------------------------------------ // Transforms (Paragraph 14.4) -static void Transform(const int16_t* in, uint8_t* dst, int do_two) { +static void Transform_SSE2(const int16_t* in, uint8_t* dst, int do_two) { // This implementation makes use of 16-bit fixed point versions of two // multiply constants: // K1 = sqrt(2) * cos (pi/8) ~= 85627 / 2^16 @@ -193,7 +195,7 @@ static void Transform(const int16_t* in, uint8_t* dst, int do_two) { } } -#if defined(USE_TRANSFORM_AC3) +#if (USE_TRANSFORM_AC3 == 1) #define MUL(a, b) (((a) * (b)) >> 16) static void TransformAC3(const int16_t* in, uint8_t* dst) { static const int kC1 = 20091 + (1 << 16); @@ -248,7 +250,7 @@ static void TransformAC3(const int16_t* in, uint8_t* dst) { _mm_subs_epu8((p), (q))) // Shift each byte of "x" by 3 bits while preserving by the sign bit. -static WEBP_INLINE void SignedShift8b(__m128i* const x) { +static WEBP_INLINE void SignedShift8b_SSE2(__m128i* const x) { const __m128i zero = _mm_setzero_si128(); const __m128i lo_0 = _mm_unpacklo_epi8(zero, *x); const __m128i hi_0 = _mm_unpackhi_epi8(zero, *x); @@ -258,8 +260,8 @@ static WEBP_INLINE void SignedShift8b(__m128i* const x) { } #define FLIP_SIGN_BIT2(a, b) { \ - a = _mm_xor_si128(a, sign_bit); \ - b = _mm_xor_si128(b, sign_bit); \ + (a) = _mm_xor_si128(a, sign_bit); \ + (b) = _mm_xor_si128(b, sign_bit); \ } #define FLIP_SIGN_BIT4(a, b, c, d) { \ @@ -268,11 +270,11 @@ static WEBP_INLINE void SignedShift8b(__m128i* const x) { } // input/output is uint8_t -static WEBP_INLINE void GetNotHEV(const __m128i* const p1, - const __m128i* const p0, - const __m128i* const q0, - const __m128i* const q1, - int hev_thresh, __m128i* const not_hev) { +static WEBP_INLINE void GetNotHEV_SSE2(const __m128i* const p1, + const __m128i* const p0, + const __m128i* const q0, + const __m128i* const q1, + int hev_thresh, __m128i* const not_hev) { const __m128i zero = _mm_setzero_si128(); const __m128i t_1 = MM_ABS(*p1, *p0); const __m128i t_2 = MM_ABS(*q1, *q0); @@ -285,11 +287,11 @@ static WEBP_INLINE void GetNotHEV(const __m128i* const p1, } // input pixels are int8_t -static WEBP_INLINE void GetBaseDelta(const __m128i* const p1, - const __m128i* const p0, - const __m128i* const q0, - const __m128i* const q1, - __m128i* const delta) { +static WEBP_INLINE void GetBaseDelta_SSE2(const __m128i* const p1, + const __m128i* const p0, + const __m128i* const q0, + const __m128i* const q1, + __m128i* const delta) { // beware of addition order, for saturation! const __m128i p1_q1 = _mm_subs_epi8(*p1, *q1); // p1 - q1 const __m128i q0_p0 = _mm_subs_epi8(*q0, *p0); // q0 - p0 @@ -300,15 +302,16 @@ static WEBP_INLINE void GetBaseDelta(const __m128i* const p1, } // input and output are int8_t -static WEBP_INLINE void DoSimpleFilter(__m128i* const p0, __m128i* const q0, - const __m128i* const fl) { +static WEBP_INLINE void DoSimpleFilter_SSE2(__m128i* const p0, + __m128i* const q0, + const __m128i* const fl) { const __m128i k3 = _mm_set1_epi8(3); const __m128i k4 = _mm_set1_epi8(4); __m128i v3 = _mm_adds_epi8(*fl, k3); __m128i v4 = _mm_adds_epi8(*fl, k4); - SignedShift8b(&v4); // v4 >> 3 - SignedShift8b(&v3); // v3 >> 3 + SignedShift8b_SSE2(&v4); // v4 >> 3 + SignedShift8b_SSE2(&v3); // v3 >> 3 *q0 = _mm_subs_epi8(*q0, v4); // q0 -= v4 *p0 = _mm_adds_epi8(*p0, v3); // p0 += v3 } @@ -317,9 +320,9 @@ static WEBP_INLINE void DoSimpleFilter(__m128i* const p0, __m128i* const q0, // Update operations: // q = q - delta and p = p + delta; where delta = [(a_hi >> 7), (a_lo >> 7)] // Pixels 'pi' and 'qi' are int8_t on input, uint8_t on output (sign flip). -static WEBP_INLINE void Update2Pixels(__m128i* const pi, __m128i* const qi, - const __m128i* const a0_lo, - const __m128i* const a0_hi) { +static WEBP_INLINE void Update2Pixels_SSE2(__m128i* const pi, __m128i* const qi, + const __m128i* const a0_lo, + const __m128i* const a0_hi) { const __m128i a1_lo = _mm_srai_epi16(*a0_lo, 7); const __m128i a1_hi = _mm_srai_epi16(*a0_hi, 7); const __m128i delta = _mm_packs_epi16(a1_lo, a1_hi); @@ -330,11 +333,11 @@ static WEBP_INLINE void Update2Pixels(__m128i* const pi, __m128i* const qi, } // input pixels are uint8_t -static WEBP_INLINE void NeedsFilter(const __m128i* const p1, - const __m128i* const p0, - const __m128i* const q0, - const __m128i* const q1, - int thresh, __m128i* const mask) { +static WEBP_INLINE void NeedsFilter_SSE2(const __m128i* const p1, + const __m128i* const p0, + const __m128i* const q0, + const __m128i* const q1, + int thresh, __m128i* const mask) { const __m128i m_thresh = _mm_set1_epi8(thresh); const __m128i t1 = MM_ABS(*p1, *q1); // abs(p1 - q1) const __m128i kFE = _mm_set1_epi8(0xFE); @@ -353,28 +356,29 @@ static WEBP_INLINE void NeedsFilter(const __m128i* const p1, // Edge filtering functions // Applies filter on 2 pixels (p0 and q0) -static WEBP_INLINE void DoFilter2(__m128i* const p1, __m128i* const p0, - __m128i* const q0, __m128i* const q1, - int thresh) { +static WEBP_INLINE void DoFilter2_SSE2(__m128i* const p1, __m128i* const p0, + __m128i* const q0, __m128i* const q1, + int thresh) { __m128i a, mask; const __m128i sign_bit = _mm_set1_epi8(0x80); - // convert p1/q1 to int8_t (for GetBaseDelta) + // convert p1/q1 to int8_t (for GetBaseDelta_SSE2) const __m128i p1s = _mm_xor_si128(*p1, sign_bit); const __m128i q1s = _mm_xor_si128(*q1, sign_bit); - NeedsFilter(p1, p0, q0, q1, thresh, &mask); + NeedsFilter_SSE2(p1, p0, q0, q1, thresh, &mask); FLIP_SIGN_BIT2(*p0, *q0); - GetBaseDelta(&p1s, p0, q0, &q1s, &a); + GetBaseDelta_SSE2(&p1s, p0, q0, &q1s, &a); a = _mm_and_si128(a, mask); // mask filter values we don't care about - DoSimpleFilter(p0, q0, &a); + DoSimpleFilter_SSE2(p0, q0, &a); FLIP_SIGN_BIT2(*p0, *q0); } // Applies filter on 4 pixels (p1, p0, q0 and q1) -static WEBP_INLINE void DoFilter4(__m128i* const p1, __m128i* const p0, - __m128i* const q0, __m128i* const q1, - const __m128i* const mask, int hev_thresh) { +static WEBP_INLINE void DoFilter4_SSE2(__m128i* const p1, __m128i* const p0, + __m128i* const q0, __m128i* const q1, + const __m128i* const mask, + int hev_thresh) { const __m128i zero = _mm_setzero_si128(); const __m128i sign_bit = _mm_set1_epi8(0x80); const __m128i k64 = _mm_set1_epi8(64); @@ -384,7 +388,7 @@ static WEBP_INLINE void DoFilter4(__m128i* const p1, __m128i* const p0, __m128i t1, t2, t3; // compute hev mask - GetNotHEV(p1, p0, q0, q1, hev_thresh, ¬_hev); + GetNotHEV_SSE2(p1, p0, q0, q1, hev_thresh, ¬_hev); // convert to signed values FLIP_SIGN_BIT4(*p1, *p0, *q0, *q1); @@ -399,8 +403,8 @@ static WEBP_INLINE void DoFilter4(__m128i* const p1, __m128i* const p0, t2 = _mm_adds_epi8(t1, k3); // 3 * (q0 - p0) + hev(p1 - q1) + 3 t3 = _mm_adds_epi8(t1, k4); // 3 * (q0 - p0) + hev(p1 - q1) + 4 - SignedShift8b(&t2); // (3 * (q0 - p0) + hev(p1 - q1) + 3) >> 3 - SignedShift8b(&t3); // (3 * (q0 - p0) + hev(p1 - q1) + 4) >> 3 + SignedShift8b_SSE2(&t2); // (3 * (q0 - p0) + hev(p1 - q1) + 3) >> 3 + SignedShift8b_SSE2(&t3); // (3 * (q0 - p0) + hev(p1 - q1) + 4) >> 3 *p0 = _mm_adds_epi8(*p0, t2); // p0 += t2 *q0 = _mm_subs_epi8(*q0, t3); // q0 -= t3 FLIP_SIGN_BIT2(*p0, *q0); @@ -417,25 +421,26 @@ static WEBP_INLINE void DoFilter4(__m128i* const p1, __m128i* const p0, } // Applies filter on 6 pixels (p2, p1, p0, q0, q1 and q2) -static WEBP_INLINE void DoFilter6(__m128i* const p2, __m128i* const p1, - __m128i* const p0, __m128i* const q0, - __m128i* const q1, __m128i* const q2, - const __m128i* const mask, int hev_thresh) { +static WEBP_INLINE void DoFilter6_SSE2(__m128i* const p2, __m128i* const p1, + __m128i* const p0, __m128i* const q0, + __m128i* const q1, __m128i* const q2, + const __m128i* const mask, + int hev_thresh) { const __m128i zero = _mm_setzero_si128(); const __m128i sign_bit = _mm_set1_epi8(0x80); __m128i a, not_hev; // compute hev mask - GetNotHEV(p1, p0, q0, q1, hev_thresh, ¬_hev); + GetNotHEV_SSE2(p1, p0, q0, q1, hev_thresh, ¬_hev); FLIP_SIGN_BIT4(*p1, *p0, *q0, *q1); FLIP_SIGN_BIT2(*p2, *q2); - GetBaseDelta(p1, p0, q0, q1, &a); + GetBaseDelta_SSE2(p1, p0, q0, q1, &a); { // do simple filter on pixels with hev const __m128i m = _mm_andnot_si128(not_hev, *mask); const __m128i f = _mm_and_si128(a, m); - DoSimpleFilter(p0, q0, &f); + DoSimpleFilter_SSE2(p0, q0, &f); } { // do strong filter on pixels with not hev @@ -460,15 +465,15 @@ static WEBP_INLINE void DoFilter6(__m128i* const p2, __m128i* const p1, const __m128i a0_lo = _mm_add_epi16(a1_lo, f9_lo); // Filter * 27 + 63 const __m128i a0_hi = _mm_add_epi16(a1_hi, f9_hi); // Filter * 27 + 63 - Update2Pixels(p2, q2, &a2_lo, &a2_hi); - Update2Pixels(p1, q1, &a1_lo, &a1_hi); - Update2Pixels(p0, q0, &a0_lo, &a0_hi); + Update2Pixels_SSE2(p2, q2, &a2_lo, &a2_hi); + Update2Pixels_SSE2(p1, q1, &a1_lo, &a1_hi); + Update2Pixels_SSE2(p0, q0, &a0_lo, &a0_hi); } } // reads 8 rows across a vertical edge. -static WEBP_INLINE void Load8x4(const uint8_t* const b, int stride, - __m128i* const p, __m128i* const q) { +static WEBP_INLINE void Load8x4_SSE2(const uint8_t* const b, int stride, + __m128i* const p, __m128i* const q) { // A0 = 63 62 61 60 23 22 21 20 43 42 41 40 03 02 01 00 // A1 = 73 72 71 70 33 32 31 30 53 52 51 50 13 12 11 10 const __m128i A0 = _mm_set_epi32( @@ -494,11 +499,11 @@ static WEBP_INLINE void Load8x4(const uint8_t* const b, int stride, *q = _mm_unpackhi_epi32(C0, C1); } -static WEBP_INLINE void Load16x4(const uint8_t* const r0, - const uint8_t* const r8, - int stride, - __m128i* const p1, __m128i* const p0, - __m128i* const q0, __m128i* const q1) { +static WEBP_INLINE void Load16x4_SSE2(const uint8_t* const r0, + const uint8_t* const r8, + int stride, + __m128i* const p1, __m128i* const p0, + __m128i* const q0, __m128i* const q1) { // Assume the pixels around the edge (|) are numbered as follows // 00 01 | 02 03 // 10 11 | 12 13 @@ -514,8 +519,8 @@ static WEBP_INLINE void Load16x4(const uint8_t* const r0, // q0 = 73 63 53 43 33 23 13 03 72 62 52 42 32 22 12 02 // p0 = f1 e1 d1 c1 b1 a1 91 81 f0 e0 d0 c0 b0 a0 90 80 // q1 = f3 e3 d3 c3 b3 a3 93 83 f2 e2 d2 c2 b2 a2 92 82 - Load8x4(r0, stride, p1, q0); - Load8x4(r8, stride, p0, q1); + Load8x4_SSE2(r0, stride, p1, q0); + Load8x4_SSE2(r8, stride, p0, q1); { // p1 = f0 e0 d0 c0 b0 a0 90 80 70 60 50 40 30 20 10 00 @@ -531,7 +536,8 @@ static WEBP_INLINE void Load16x4(const uint8_t* const r0, } } -static WEBP_INLINE void Store4x4(__m128i* const x, uint8_t* dst, int stride) { +static WEBP_INLINE void Store4x4_SSE2(__m128i* const x, + uint8_t* dst, int stride) { int i; for (i = 0; i < 4; ++i, dst += stride) { WebPUint32ToMem(dst, _mm_cvtsi128_si32(*x)); @@ -540,12 +546,12 @@ static WEBP_INLINE void Store4x4(__m128i* const x, uint8_t* dst, int stride) { } // Transpose back and store -static WEBP_INLINE void Store16x4(const __m128i* const p1, - const __m128i* const p0, - const __m128i* const q0, - const __m128i* const q1, - uint8_t* r0, uint8_t* r8, - int stride) { +static WEBP_INLINE void Store16x4_SSE2(const __m128i* const p1, + const __m128i* const p0, + const __m128i* const q0, + const __m128i* const q1, + uint8_t* r0, uint8_t* r8, + int stride) { __m128i t1, p1_s, p0_s, q0_s, q1_s; // p0 = 71 70 61 60 51 50 41 40 31 30 21 20 11 10 01 00 @@ -572,55 +578,55 @@ static WEBP_INLINE void Store16x4(const __m128i* const p1, p1_s = _mm_unpacklo_epi16(t1, q1_s); q1_s = _mm_unpackhi_epi16(t1, q1_s); - Store4x4(&p0_s, r0, stride); + Store4x4_SSE2(&p0_s, r0, stride); r0 += 4 * stride; - Store4x4(&q0_s, r0, stride); + Store4x4_SSE2(&q0_s, r0, stride); - Store4x4(&p1_s, r8, stride); + Store4x4_SSE2(&p1_s, r8, stride); r8 += 4 * stride; - Store4x4(&q1_s, r8, stride); + Store4x4_SSE2(&q1_s, r8, stride); } //------------------------------------------------------------------------------ // Simple In-loop filtering (Paragraph 15.2) -static void SimpleVFilter16(uint8_t* p, int stride, int thresh) { +static void SimpleVFilter16_SSE2(uint8_t* p, int stride, int thresh) { // Load __m128i p1 = _mm_loadu_si128((__m128i*)&p[-2 * stride]); __m128i p0 = _mm_loadu_si128((__m128i*)&p[-stride]); __m128i q0 = _mm_loadu_si128((__m128i*)&p[0]); __m128i q1 = _mm_loadu_si128((__m128i*)&p[stride]); - DoFilter2(&p1, &p0, &q0, &q1, thresh); + DoFilter2_SSE2(&p1, &p0, &q0, &q1, thresh); // Store _mm_storeu_si128((__m128i*)&p[-stride], p0); _mm_storeu_si128((__m128i*)&p[0], q0); } -static void SimpleHFilter16(uint8_t* p, int stride, int thresh) { +static void SimpleHFilter16_SSE2(uint8_t* p, int stride, int thresh) { __m128i p1, p0, q0, q1; p -= 2; // beginning of p1 - Load16x4(p, p + 8 * stride, stride, &p1, &p0, &q0, &q1); - DoFilter2(&p1, &p0, &q0, &q1, thresh); - Store16x4(&p1, &p0, &q0, &q1, p, p + 8 * stride, stride); + Load16x4_SSE2(p, p + 8 * stride, stride, &p1, &p0, &q0, &q1); + DoFilter2_SSE2(&p1, &p0, &q0, &q1, thresh); + Store16x4_SSE2(&p1, &p0, &q0, &q1, p, p + 8 * stride, stride); } -static void SimpleVFilter16i(uint8_t* p, int stride, int thresh) { +static void SimpleVFilter16i_SSE2(uint8_t* p, int stride, int thresh) { int k; for (k = 3; k > 0; --k) { p += 4 * stride; - SimpleVFilter16(p, stride, thresh); + SimpleVFilter16_SSE2(p, stride, thresh); } } -static void SimpleHFilter16i(uint8_t* p, int stride, int thresh) { +static void SimpleHFilter16i_SSE2(uint8_t* p, int stride, int thresh) { int k; for (k = 3; k > 0; --k) { p += 4; - SimpleHFilter16(p, stride, thresh); + SimpleHFilter16_SSE2(p, stride, thresh); } } @@ -628,60 +634,60 @@ static void SimpleHFilter16i(uint8_t* p, int stride, int thresh) { // Complex In-loop filtering (Paragraph 15.3) #define MAX_DIFF1(p3, p2, p1, p0, m) do { \ - m = MM_ABS(p1, p0); \ - m = _mm_max_epu8(m, MM_ABS(p3, p2)); \ - m = _mm_max_epu8(m, MM_ABS(p2, p1)); \ + (m) = MM_ABS(p1, p0); \ + (m) = _mm_max_epu8(m, MM_ABS(p3, p2)); \ + (m) = _mm_max_epu8(m, MM_ABS(p2, p1)); \ } while (0) #define MAX_DIFF2(p3, p2, p1, p0, m) do { \ - m = _mm_max_epu8(m, MM_ABS(p1, p0)); \ - m = _mm_max_epu8(m, MM_ABS(p3, p2)); \ - m = _mm_max_epu8(m, MM_ABS(p2, p1)); \ + (m) = _mm_max_epu8(m, MM_ABS(p1, p0)); \ + (m) = _mm_max_epu8(m, MM_ABS(p3, p2)); \ + (m) = _mm_max_epu8(m, MM_ABS(p2, p1)); \ } while (0) #define LOAD_H_EDGES4(p, stride, e1, e2, e3, e4) { \ - e1 = _mm_loadu_si128((__m128i*)&(p)[0 * stride]); \ - e2 = _mm_loadu_si128((__m128i*)&(p)[1 * stride]); \ - e3 = _mm_loadu_si128((__m128i*)&(p)[2 * stride]); \ - e4 = _mm_loadu_si128((__m128i*)&(p)[3 * stride]); \ + (e1) = _mm_loadu_si128((__m128i*)&(p)[0 * (stride)]); \ + (e2) = _mm_loadu_si128((__m128i*)&(p)[1 * (stride)]); \ + (e3) = _mm_loadu_si128((__m128i*)&(p)[2 * (stride)]); \ + (e4) = _mm_loadu_si128((__m128i*)&(p)[3 * (stride)]); \ } #define LOADUV_H_EDGE(p, u, v, stride) do { \ const __m128i U = _mm_loadl_epi64((__m128i*)&(u)[(stride)]); \ const __m128i V = _mm_loadl_epi64((__m128i*)&(v)[(stride)]); \ - p = _mm_unpacklo_epi64(U, V); \ + (p) = _mm_unpacklo_epi64(U, V); \ } while (0) #define LOADUV_H_EDGES4(u, v, stride, e1, e2, e3, e4) { \ - LOADUV_H_EDGE(e1, u, v, 0 * stride); \ - LOADUV_H_EDGE(e2, u, v, 1 * stride); \ - LOADUV_H_EDGE(e3, u, v, 2 * stride); \ - LOADUV_H_EDGE(e4, u, v, 3 * stride); \ + LOADUV_H_EDGE(e1, u, v, 0 * (stride)); \ + LOADUV_H_EDGE(e2, u, v, 1 * (stride)); \ + LOADUV_H_EDGE(e3, u, v, 2 * (stride)); \ + LOADUV_H_EDGE(e4, u, v, 3 * (stride)); \ } #define STOREUV(p, u, v, stride) { \ - _mm_storel_epi64((__m128i*)&u[(stride)], p); \ - p = _mm_srli_si128(p, 8); \ - _mm_storel_epi64((__m128i*)&v[(stride)], p); \ + _mm_storel_epi64((__m128i*)&(u)[(stride)], p); \ + (p) = _mm_srli_si128(p, 8); \ + _mm_storel_epi64((__m128i*)&(v)[(stride)], p); \ } -static WEBP_INLINE void ComplexMask(const __m128i* const p1, - const __m128i* const p0, - const __m128i* const q0, - const __m128i* const q1, - int thresh, int ithresh, - __m128i* const mask) { +static WEBP_INLINE void ComplexMask_SSE2(const __m128i* const p1, + const __m128i* const p0, + const __m128i* const q0, + const __m128i* const q1, + int thresh, int ithresh, + __m128i* const mask) { const __m128i it = _mm_set1_epi8(ithresh); const __m128i diff = _mm_subs_epu8(*mask, it); const __m128i thresh_mask = _mm_cmpeq_epi8(diff, _mm_setzero_si128()); __m128i filter_mask; - NeedsFilter(p1, p0, q0, q1, thresh, &filter_mask); + NeedsFilter_SSE2(p1, p0, q0, q1, thresh, &filter_mask); *mask = _mm_and_si128(thresh_mask, filter_mask); } // on macroblock edges -static void VFilter16(uint8_t* p, int stride, - int thresh, int ithresh, int hev_thresh) { +static void VFilter16_SSE2(uint8_t* p, int stride, + int thresh, int ithresh, int hev_thresh) { __m128i t1; __m128i mask; __m128i p2, p1, p0, q0, q1, q2; @@ -694,8 +700,8 @@ static void VFilter16(uint8_t* p, int stride, LOAD_H_EDGES4(p, stride, q0, q1, q2, t1); MAX_DIFF2(t1, q2, q1, q0, mask); - ComplexMask(&p1, &p0, &q0, &q1, thresh, ithresh, &mask); - DoFilter6(&p2, &p1, &p0, &q0, &q1, &q2, &mask, hev_thresh); + ComplexMask_SSE2(&p1, &p0, &q0, &q1, thresh, ithresh, &mask); + DoFilter6_SSE2(&p2, &p1, &p0, &q0, &q1, &q2, &mask, hev_thresh); // Store _mm_storeu_si128((__m128i*)&p[-3 * stride], p2); @@ -706,28 +712,28 @@ static void VFilter16(uint8_t* p, int stride, _mm_storeu_si128((__m128i*)&p[+2 * stride], q2); } -static void HFilter16(uint8_t* p, int stride, - int thresh, int ithresh, int hev_thresh) { +static void HFilter16_SSE2(uint8_t* p, int stride, + int thresh, int ithresh, int hev_thresh) { __m128i mask; __m128i p3, p2, p1, p0, q0, q1, q2, q3; uint8_t* const b = p - 4; - Load16x4(b, b + 8 * stride, stride, &p3, &p2, &p1, &p0); // p3, p2, p1, p0 + Load16x4_SSE2(b, b + 8 * stride, stride, &p3, &p2, &p1, &p0); MAX_DIFF1(p3, p2, p1, p0, mask); - Load16x4(p, p + 8 * stride, stride, &q0, &q1, &q2, &q3); // q0, q1, q2, q3 + Load16x4_SSE2(p, p + 8 * stride, stride, &q0, &q1, &q2, &q3); MAX_DIFF2(q3, q2, q1, q0, mask); - ComplexMask(&p1, &p0, &q0, &q1, thresh, ithresh, &mask); - DoFilter6(&p2, &p1, &p0, &q0, &q1, &q2, &mask, hev_thresh); + ComplexMask_SSE2(&p1, &p0, &q0, &q1, thresh, ithresh, &mask); + DoFilter6_SSE2(&p2, &p1, &p0, &q0, &q1, &q2, &mask, hev_thresh); - Store16x4(&p3, &p2, &p1, &p0, b, b + 8 * stride, stride); - Store16x4(&q0, &q1, &q2, &q3, p, p + 8 * stride, stride); + Store16x4_SSE2(&p3, &p2, &p1, &p0, b, b + 8 * stride, stride); + Store16x4_SSE2(&q0, &q1, &q2, &q3, p, p + 8 * stride, stride); } // on three inner edges -static void VFilter16i(uint8_t* p, int stride, - int thresh, int ithresh, int hev_thresh) { +static void VFilter16i_SSE2(uint8_t* p, int stride, + int thresh, int ithresh, int hev_thresh) { int k; __m128i p3, p2, p1, p0; // loop invariants @@ -744,8 +750,8 @@ static void VFilter16i(uint8_t* p, int stride, // p3 and p2 are not just temporary variables here: they will be // re-used for next span. And q2/q3 will become p1/p0 accordingly. - ComplexMask(&p1, &p0, &p3, &p2, thresh, ithresh, &mask); - DoFilter4(&p1, &p0, &p3, &p2, &mask, hev_thresh); + ComplexMask_SSE2(&p1, &p0, &p3, &p2, thresh, ithresh, &mask); + DoFilter4_SSE2(&p1, &p0, &p3, &p2, &mask, hev_thresh); // Store _mm_storeu_si128((__m128i*)&b[0 * stride], p1); @@ -759,12 +765,12 @@ static void VFilter16i(uint8_t* p, int stride, } } -static void HFilter16i(uint8_t* p, int stride, - int thresh, int ithresh, int hev_thresh) { +static void HFilter16i_SSE2(uint8_t* p, int stride, + int thresh, int ithresh, int hev_thresh) { int k; __m128i p3, p2, p1, p0; // loop invariants - Load16x4(p, p + 8 * stride, stride, &p3, &p2, &p1, &p0); // prologue + Load16x4_SSE2(p, p + 8 * stride, stride, &p3, &p2, &p1, &p0); // prologue for (k = 3; k > 0; --k) { __m128i mask, tmp1, tmp2; @@ -773,13 +779,13 @@ static void HFilter16i(uint8_t* p, int stride, p += 4; // beginning of q0 (and next span) MAX_DIFF1(p3, p2, p1, p0, mask); // compute partial mask - Load16x4(p, p + 8 * stride, stride, &p3, &p2, &tmp1, &tmp2); + Load16x4_SSE2(p, p + 8 * stride, stride, &p3, &p2, &tmp1, &tmp2); MAX_DIFF2(p3, p2, tmp1, tmp2, mask); - ComplexMask(&p1, &p0, &p3, &p2, thresh, ithresh, &mask); - DoFilter4(&p1, &p0, &p3, &p2, &mask, hev_thresh); + ComplexMask_SSE2(&p1, &p0, &p3, &p2, thresh, ithresh, &mask); + DoFilter4_SSE2(&p1, &p0, &p3, &p2, &mask, hev_thresh); - Store16x4(&p1, &p0, &p3, &p2, b, b + 8 * stride, stride); + Store16x4_SSE2(&p1, &p0, &p3, &p2, b, b + 8 * stride, stride); // rotate samples p1 = tmp1; @@ -788,8 +794,8 @@ static void HFilter16i(uint8_t* p, int stride, } // 8-pixels wide variant, for chroma filtering -static void VFilter8(uint8_t* u, uint8_t* v, int stride, - int thresh, int ithresh, int hev_thresh) { +static void VFilter8_SSE2(uint8_t* u, uint8_t* v, int stride, + int thresh, int ithresh, int hev_thresh) { __m128i mask; __m128i t1, p2, p1, p0, q0, q1, q2; @@ -801,8 +807,8 @@ static void VFilter8(uint8_t* u, uint8_t* v, int stride, LOADUV_H_EDGES4(u, v, stride, q0, q1, q2, t1); MAX_DIFF2(t1, q2, q1, q0, mask); - ComplexMask(&p1, &p0, &q0, &q1, thresh, ithresh, &mask); - DoFilter6(&p2, &p1, &p0, &q0, &q1, &q2, &mask, hev_thresh); + ComplexMask_SSE2(&p1, &p0, &q0, &q1, thresh, ithresh, &mask); + DoFilter6_SSE2(&p2, &p1, &p0, &q0, &q1, &q2, &mask, hev_thresh); // Store STOREUV(p2, u, v, -3 * stride); @@ -813,28 +819,28 @@ static void VFilter8(uint8_t* u, uint8_t* v, int stride, STOREUV(q2, u, v, 2 * stride); } -static void HFilter8(uint8_t* u, uint8_t* v, int stride, - int thresh, int ithresh, int hev_thresh) { +static void HFilter8_SSE2(uint8_t* u, uint8_t* v, int stride, + int thresh, int ithresh, int hev_thresh) { __m128i mask; __m128i p3, p2, p1, p0, q0, q1, q2, q3; uint8_t* const tu = u - 4; uint8_t* const tv = v - 4; - Load16x4(tu, tv, stride, &p3, &p2, &p1, &p0); // p3, p2, p1, p0 + Load16x4_SSE2(tu, tv, stride, &p3, &p2, &p1, &p0); MAX_DIFF1(p3, p2, p1, p0, mask); - Load16x4(u, v, stride, &q0, &q1, &q2, &q3); // q0, q1, q2, q3 + Load16x4_SSE2(u, v, stride, &q0, &q1, &q2, &q3); MAX_DIFF2(q3, q2, q1, q0, mask); - ComplexMask(&p1, &p0, &q0, &q1, thresh, ithresh, &mask); - DoFilter6(&p2, &p1, &p0, &q0, &q1, &q2, &mask, hev_thresh); + ComplexMask_SSE2(&p1, &p0, &q0, &q1, thresh, ithresh, &mask); + DoFilter6_SSE2(&p2, &p1, &p0, &q0, &q1, &q2, &mask, hev_thresh); - Store16x4(&p3, &p2, &p1, &p0, tu, tv, stride); - Store16x4(&q0, &q1, &q2, &q3, u, v, stride); + Store16x4_SSE2(&p3, &p2, &p1, &p0, tu, tv, stride); + Store16x4_SSE2(&q0, &q1, &q2, &q3, u, v, stride); } -static void VFilter8i(uint8_t* u, uint8_t* v, int stride, - int thresh, int ithresh, int hev_thresh) { +static void VFilter8i_SSE2(uint8_t* u, uint8_t* v, int stride, + int thresh, int ithresh, int hev_thresh) { __m128i mask; __m128i t1, t2, p1, p0, q0, q1; @@ -849,8 +855,8 @@ static void VFilter8i(uint8_t* u, uint8_t* v, int stride, LOADUV_H_EDGES4(u, v, stride, q0, q1, t1, t2); MAX_DIFF2(t2, t1, q1, q0, mask); - ComplexMask(&p1, &p0, &q0, &q1, thresh, ithresh, &mask); - DoFilter4(&p1, &p0, &q0, &q1, &mask, hev_thresh); + ComplexMask_SSE2(&p1, &p0, &q0, &q1, thresh, ithresh, &mask); + DoFilter4_SSE2(&p1, &p0, &q0, &q1, &mask, hev_thresh); // Store STOREUV(p1, u, v, -2 * stride); @@ -859,24 +865,24 @@ static void VFilter8i(uint8_t* u, uint8_t* v, int stride, STOREUV(q1, u, v, 1 * stride); } -static void HFilter8i(uint8_t* u, uint8_t* v, int stride, - int thresh, int ithresh, int hev_thresh) { +static void HFilter8i_SSE2(uint8_t* u, uint8_t* v, int stride, + int thresh, int ithresh, int hev_thresh) { __m128i mask; __m128i t1, t2, p1, p0, q0, q1; - Load16x4(u, v, stride, &t2, &t1, &p1, &p0); // p3, p2, p1, p0 + Load16x4_SSE2(u, v, stride, &t2, &t1, &p1, &p0); // p3, p2, p1, p0 MAX_DIFF1(t2, t1, p1, p0, mask); u += 4; // beginning of q0 v += 4; - Load16x4(u, v, stride, &q0, &q1, &t1, &t2); // q0, q1, q2, q3 + Load16x4_SSE2(u, v, stride, &q0, &q1, &t1, &t2); // q0, q1, q2, q3 MAX_DIFF2(t2, t1, q1, q0, mask); - ComplexMask(&p1, &p0, &q0, &q1, thresh, ithresh, &mask); - DoFilter4(&p1, &p0, &q0, &q1, &mask, hev_thresh); + ComplexMask_SSE2(&p1, &p0, &q0, &q1, thresh, ithresh, &mask); + DoFilter4_SSE2(&p1, &p0, &q0, &q1, &mask, hev_thresh); u -= 2; // beginning of p1 v -= 2; - Store16x4(&p1, &p0, &q0, &q1, u, v, stride); + Store16x4_SSE2(&p1, &p0, &q0, &q1, u, v, stride); } //------------------------------------------------------------------------------ @@ -893,7 +899,7 @@ static void HFilter8i(uint8_t* u, uint8_t* v, int stride, // where: AC = (a + b + 1) >> 1, BC = (b + c + 1) >> 1 // and ab = a ^ b, bc = b ^ c, lsb = (AC^BC)&1 -static void VE4(uint8_t* dst) { // vertical +static void VE4_SSE2(uint8_t* dst) { // vertical const __m128i one = _mm_set1_epi8(1); const __m128i ABCDEFGH = _mm_loadl_epi64((__m128i*)(dst - BPS - 1)); const __m128i BCDEFGH0 = _mm_srli_si128(ABCDEFGH, 1); @@ -909,7 +915,7 @@ static void VE4(uint8_t* dst) { // vertical } } -static void LD4(uint8_t* dst) { // Down-Left +static void LD4_SSE2(uint8_t* dst) { // Down-Left const __m128i one = _mm_set1_epi8(1); const __m128i ABCDEFGH = _mm_loadl_epi64((__m128i*)(dst - BPS)); const __m128i BCDEFGH0 = _mm_srli_si128(ABCDEFGH, 1); @@ -925,7 +931,7 @@ static void LD4(uint8_t* dst) { // Down-Left WebPUint32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 3))); } -static void VR4(uint8_t* dst) { // Vertical-Right +static void VR4_SSE2(uint8_t* dst) { // Vertical-Right const __m128i one = _mm_set1_epi8(1); const int I = dst[-1 + 0 * BPS]; const int J = dst[-1 + 1 * BPS]; @@ -950,7 +956,7 @@ static void VR4(uint8_t* dst) { // Vertical-Right DST(0, 3) = AVG3(K, J, I); } -static void VL4(uint8_t* dst) { // Vertical-Left +static void VL4_SSE2(uint8_t* dst) { // Vertical-Left const __m128i one = _mm_set1_epi8(1); const __m128i ABCDEFGH = _mm_loadl_epi64((__m128i*)(dst - BPS)); const __m128i BCDEFGH_ = _mm_srli_si128(ABCDEFGH, 1); @@ -975,7 +981,7 @@ static void VL4(uint8_t* dst) { // Vertical-Left DST(3, 3) = (extra_out >> 8) & 0xff; } -static void RD4(uint8_t* dst) { // Down-right +static void RD4_SSE2(uint8_t* dst) { // Down-right const __m128i one = _mm_set1_epi8(1); const __m128i XABCD = _mm_loadl_epi64((__m128i*)(dst - BPS - 1)); const __m128i ____XABCD = _mm_slli_si128(XABCD, 4); @@ -1004,7 +1010,7 @@ static void RD4(uint8_t* dst) { // Down-right //------------------------------------------------------------------------------ // Luma 16x16 -static WEBP_INLINE void TrueMotion(uint8_t* dst, int size) { +static WEBP_INLINE void TrueMotion_SSE2(uint8_t* dst, int size) { const uint8_t* top = dst - BPS; const __m128i zero = _mm_setzero_si128(); int y; @@ -1041,11 +1047,11 @@ static WEBP_INLINE void TrueMotion(uint8_t* dst, int size) { } } -static void TM4(uint8_t* dst) { TrueMotion(dst, 4); } -static void TM8uv(uint8_t* dst) { TrueMotion(dst, 8); } -static void TM16(uint8_t* dst) { TrueMotion(dst, 16); } +static void TM4_SSE2(uint8_t* dst) { TrueMotion_SSE2(dst, 4); } +static void TM8uv_SSE2(uint8_t* dst) { TrueMotion_SSE2(dst, 8); } +static void TM16_SSE2(uint8_t* dst) { TrueMotion_SSE2(dst, 16); } -static void VE16(uint8_t* dst) { +static void VE16_SSE2(uint8_t* dst) { const __m128i top = _mm_loadu_si128((const __m128i*)(dst - BPS)); int j; for (j = 0; j < 16; ++j) { @@ -1053,7 +1059,7 @@ static void VE16(uint8_t* dst) { } } -static void HE16(uint8_t* dst) { // horizontal +static void HE16_SSE2(uint8_t* dst) { // horizontal int j; for (j = 16; j > 0; --j) { const __m128i values = _mm_set1_epi8(dst[-1]); @@ -1062,7 +1068,7 @@ static void HE16(uint8_t* dst) { // horizontal } } -static WEBP_INLINE void Put16(uint8_t v, uint8_t* dst) { +static WEBP_INLINE void Put16_SSE2(uint8_t v, uint8_t* dst) { int j; const __m128i values = _mm_set1_epi8(v); for (j = 0; j < 16; ++j) { @@ -1070,7 +1076,7 @@ static WEBP_INLINE void Put16(uint8_t v, uint8_t* dst) { } } -static void DC16(uint8_t* dst) { // DC +static void DC16_SSE2(uint8_t* dst) { // DC const __m128i zero = _mm_setzero_si128(); const __m128i top = _mm_loadu_si128((const __m128i*)(dst - BPS)); const __m128i sad8x2 = _mm_sad_epu8(top, zero); @@ -1083,37 +1089,37 @@ static void DC16(uint8_t* dst) { // DC } { const int DC = _mm_cvtsi128_si32(sum) + left + 16; - Put16(DC >> 5, dst); + Put16_SSE2(DC >> 5, dst); } } -static void DC16NoTop(uint8_t* dst) { // DC with top samples not available +static void DC16NoTop_SSE2(uint8_t* dst) { // DC with top samples unavailable int DC = 8; int j; for (j = 0; j < 16; ++j) { DC += dst[-1 + j * BPS]; } - Put16(DC >> 4, dst); + Put16_SSE2(DC >> 4, dst); } -static void DC16NoLeft(uint8_t* dst) { // DC with left samples not available +static void DC16NoLeft_SSE2(uint8_t* dst) { // DC with left samples unavailable const __m128i zero = _mm_setzero_si128(); const __m128i top = _mm_loadu_si128((const __m128i*)(dst - BPS)); const __m128i sad8x2 = _mm_sad_epu8(top, zero); // sum the two sads: sad8x2[0:1] + sad8x2[8:9] const __m128i sum = _mm_add_epi16(sad8x2, _mm_shuffle_epi32(sad8x2, 2)); const int DC = _mm_cvtsi128_si32(sum) + 8; - Put16(DC >> 4, dst); + Put16_SSE2(DC >> 4, dst); } -static void DC16NoTopLeft(uint8_t* dst) { // DC with no top and left samples - Put16(0x80, dst); +static void DC16NoTopLeft_SSE2(uint8_t* dst) { // DC with no top & left samples + Put16_SSE2(0x80, dst); } //------------------------------------------------------------------------------ // Chroma -static void VE8uv(uint8_t* dst) { // vertical +static void VE8uv_SSE2(uint8_t* dst) { // vertical int j; const __m128i top = _mm_loadl_epi64((const __m128i*)(dst - BPS)); for (j = 0; j < 8; ++j) { @@ -1121,17 +1127,8 @@ static void VE8uv(uint8_t* dst) { // vertical } } -static void HE8uv(uint8_t* dst) { // horizontal - int j; - for (j = 0; j < 8; ++j) { - const __m128i values = _mm_set1_epi8(dst[-1]); - _mm_storel_epi64((__m128i*)dst, values); - dst += BPS; - } -} - // helper for chroma-DC predictions -static WEBP_INLINE void Put8x8uv(uint8_t v, uint8_t* dst) { +static WEBP_INLINE void Put8x8uv_SSE2(uint8_t v, uint8_t* dst) { int j; const __m128i values = _mm_set1_epi8(v); for (j = 0; j < 8; ++j) { @@ -1139,7 +1136,7 @@ static WEBP_INLINE void Put8x8uv(uint8_t v, uint8_t* dst) { } } -static void DC8uv(uint8_t* dst) { // DC +static void DC8uv_SSE2(uint8_t* dst) { // DC const __m128i zero = _mm_setzero_si128(); const __m128i top = _mm_loadl_epi64((const __m128i*)(dst - BPS)); const __m128i sum = _mm_sad_epu8(top, zero); @@ -1150,29 +1147,29 @@ static void DC8uv(uint8_t* dst) { // DC } { const int DC = _mm_cvtsi128_si32(sum) + left + 8; - Put8x8uv(DC >> 4, dst); + Put8x8uv_SSE2(DC >> 4, dst); } } -static void DC8uvNoLeft(uint8_t* dst) { // DC with no left samples +static void DC8uvNoLeft_SSE2(uint8_t* dst) { // DC with no left samples const __m128i zero = _mm_setzero_si128(); const __m128i top = _mm_loadl_epi64((const __m128i*)(dst - BPS)); const __m128i sum = _mm_sad_epu8(top, zero); const int DC = _mm_cvtsi128_si32(sum) + 4; - Put8x8uv(DC >> 3, dst); + Put8x8uv_SSE2(DC >> 3, dst); } -static void DC8uvNoTop(uint8_t* dst) { // DC with no top samples +static void DC8uvNoTop_SSE2(uint8_t* dst) { // DC with no top samples int dc0 = 4; int i; for (i = 0; i < 8; ++i) { dc0 += dst[-1 + i * BPS]; } - Put8x8uv(dc0 >> 3, dst); + Put8x8uv_SSE2(dc0 >> 3, dst); } -static void DC8uvNoTopLeft(uint8_t* dst) { // DC with nothing - Put8x8uv(0x80, dst); +static void DC8uvNoTopLeft_SSE2(uint8_t* dst) { // DC with nothing + Put8x8uv_SSE2(0x80, dst); } //------------------------------------------------------------------------------ @@ -1181,47 +1178,46 @@ static void DC8uvNoTopLeft(uint8_t* dst) { // DC with nothing extern void VP8DspInitSSE2(void); WEBP_TSAN_IGNORE_FUNCTION void VP8DspInitSSE2(void) { - VP8Transform = Transform; -#if defined(USE_TRANSFORM_AC3) - VP8TransformAC3 = TransformAC3; + VP8Transform = Transform_SSE2; +#if (USE_TRANSFORM_AC3 == 1) + VP8TransformAC3 = TransformAC3_SSE2; #endif - VP8VFilter16 = VFilter16; - VP8HFilter16 = HFilter16; - VP8VFilter8 = VFilter8; - VP8HFilter8 = HFilter8; - VP8VFilter16i = VFilter16i; - VP8HFilter16i = HFilter16i; - VP8VFilter8i = VFilter8i; - VP8HFilter8i = HFilter8i; - - VP8SimpleVFilter16 = SimpleVFilter16; - VP8SimpleHFilter16 = SimpleHFilter16; - VP8SimpleVFilter16i = SimpleVFilter16i; - VP8SimpleHFilter16i = SimpleHFilter16i; - - VP8PredLuma4[1] = TM4; - VP8PredLuma4[2] = VE4; - VP8PredLuma4[4] = RD4; - VP8PredLuma4[5] = VR4; - VP8PredLuma4[6] = LD4; - VP8PredLuma4[7] = VL4; - - VP8PredLuma16[0] = DC16; - VP8PredLuma16[1] = TM16; - VP8PredLuma16[2] = VE16; - VP8PredLuma16[3] = HE16; - VP8PredLuma16[4] = DC16NoTop; - VP8PredLuma16[5] = DC16NoLeft; - VP8PredLuma16[6] = DC16NoTopLeft; - - VP8PredChroma8[0] = DC8uv; - VP8PredChroma8[1] = TM8uv; - VP8PredChroma8[2] = VE8uv; - VP8PredChroma8[3] = HE8uv; - VP8PredChroma8[4] = DC8uvNoTop; - VP8PredChroma8[5] = DC8uvNoLeft; - VP8PredChroma8[6] = DC8uvNoTopLeft; + VP8VFilter16 = VFilter16_SSE2; + VP8HFilter16 = HFilter16_SSE2; + VP8VFilter8 = VFilter8_SSE2; + VP8HFilter8 = HFilter8_SSE2; + VP8VFilter16i = VFilter16i_SSE2; + VP8HFilter16i = HFilter16i_SSE2; + VP8VFilter8i = VFilter8i_SSE2; + VP8HFilter8i = HFilter8i_SSE2; + + VP8SimpleVFilter16 = SimpleVFilter16_SSE2; + VP8SimpleHFilter16 = SimpleHFilter16_SSE2; + VP8SimpleVFilter16i = SimpleVFilter16i_SSE2; + VP8SimpleHFilter16i = SimpleHFilter16i_SSE2; + + VP8PredLuma4[1] = TM4_SSE2; + VP8PredLuma4[2] = VE4_SSE2; + VP8PredLuma4[4] = RD4_SSE2; + VP8PredLuma4[5] = VR4_SSE2; + VP8PredLuma4[6] = LD4_SSE2; + VP8PredLuma4[7] = VL4_SSE2; + + VP8PredLuma16[0] = DC16_SSE2; + VP8PredLuma16[1] = TM16_SSE2; + VP8PredLuma16[2] = VE16_SSE2; + VP8PredLuma16[3] = HE16_SSE2; + VP8PredLuma16[4] = DC16NoTop_SSE2; + VP8PredLuma16[5] = DC16NoLeft_SSE2; + VP8PredLuma16[6] = DC16NoTopLeft_SSE2; + + VP8PredChroma8[0] = DC8uv_SSE2; + VP8PredChroma8[1] = TM8uv_SSE2; + VP8PredChroma8[2] = VE8uv_SSE2; + VP8PredChroma8[4] = DC8uvNoTop_SSE2; + VP8PredChroma8[5] = DC8uvNoLeft_SSE2; + VP8PredChroma8[6] = DC8uvNoTopLeft_SSE2; } #else // !WEBP_USE_SSE2 diff --git a/external/libwebp-0.6.0/src/dsp/dec_sse41.c b/external/libwebp-1.0.0/src/dsp/dec_sse41.c similarity index 87% rename from external/libwebp-0.6.0/src/dsp/dec_sse41.c rename to external/libwebp-1.0.0/src/dsp/dec_sse41.c index 4e81ec4d..8f18506d 100644 --- a/external/libwebp-0.6.0/src/dsp/dec_sse41.c +++ b/external/libwebp-1.0.0/src/dsp/dec_sse41.c @@ -11,15 +11,15 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_SSE41) #include -#include "../dec/vp8i_dec.h" -#include "../utils/utils.h" +#include "src/dec/vp8i_dec.h" +#include "src/utils/utils.h" -static void HE16(uint8_t* dst) { // horizontal +static void HE16_SSE41(uint8_t* dst) { // horizontal int j; const __m128i kShuffle3 = _mm_set1_epi8(3); for (j = 16; j > 0; --j) { @@ -36,7 +36,7 @@ static void HE16(uint8_t* dst) { // horizontal extern void VP8DspInitSSE41(void); WEBP_TSAN_IGNORE_FUNCTION void VP8DspInitSSE41(void) { - VP8PredLuma16[3] = HE16; + VP8PredLuma16[3] = HE16_SSE41; } #else // !WEBP_USE_SSE41 diff --git a/external/libwebp-0.6.0/src/dsp/dsp.h b/external/libwebp-1.0.0/src/dsp/dsp.h similarity index 82% rename from external/libwebp-0.6.0/src/dsp/dsp.h rename to external/libwebp-1.0.0/src/dsp/dsp.h index 813fed4a..4ab77a51 100644 --- a/external/libwebp-0.6.0/src/dsp/dsp.h +++ b/external/libwebp-1.0.0/src/dsp/dsp.h @@ -15,10 +15,10 @@ #define WEBP_DSP_DSP_H_ #ifdef HAVE_CONFIG_H -#include "../webp/config.h" +#include "src/webp/config.h" #endif -#include "../webp/types.h" +#include "src/webp/types.h" #ifdef __cplusplus extern "C" { @@ -38,10 +38,22 @@ extern "C" { # define LOCAL_GCC_PREREQ(maj, min) 0 #endif +#if defined(__clang__) +# define LOCAL_CLANG_VERSION ((__clang_major__ << 8) | __clang_minor__) +# define LOCAL_CLANG_PREREQ(maj, min) \ + (LOCAL_CLANG_VERSION >= (((maj) << 8) | (min))) +#else +# define LOCAL_CLANG_VERSION 0 +# define LOCAL_CLANG_PREREQ(maj, min) 0 +#endif + #ifndef __has_builtin # define __has_builtin(x) 0 #endif +// for now, none of the optimizations below are available in emscripten +#if !defined(EMSCRIPTEN) + #if defined(_MSC_VER) && _MSC_VER > 1310 && \ (defined(_M_X64) || defined(_M_IX86)) #define WEBP_MSC_SSE2 // Visual C++ SSE2 targets @@ -68,18 +80,20 @@ extern "C" { #define WEBP_USE_AVX2 #endif -#if defined(__ANDROID__) && defined(__ARM_ARCH_7A__) -#define WEBP_ANDROID_NEON // Android targets that might support NEON -#endif - // The intrinsics currently cause compiler errors with arm-nacl-gcc and the // inline assembly would need to be modified for use with Native Client. -#if (defined(__ARM_NEON__) || defined(WEBP_ANDROID_NEON) || \ +#if (defined(__ARM_NEON__) || \ defined(__aarch64__) || defined(WEBP_HAVE_NEON)) && \ !defined(__native_client__) #define WEBP_USE_NEON #endif +#if !defined(WEBP_USE_NEON) && defined(__ANDROID__) && \ + defined(__ARM_ARCH_7A__) && defined(HAVE_CPU_FEATURES_H) +#define WEBP_ANDROID_NEON // Android targets that may have NEON +#define WEBP_USE_NEON +#endif + #if defined(_MSC_VER) && _MSC_VER >= 1700 && defined(_M_ARM) #define WEBP_USE_NEON #define WEBP_USE_INTRINSICS @@ -90,7 +104,7 @@ extern "C" { #define WEBP_USE_MIPS32 #if (__mips_isa_rev >= 2) #define WEBP_USE_MIPS32_R2 -#if defined(__mips_dspr2) || (__mips_dsp_rev >= 2) +#if defined(__mips_dspr2) || (defined(__mips_dsp_rev) && __mips_dsp_rev >= 2) #define WEBP_USE_MIPS_DSP_R2 #endif #endif @@ -100,6 +114,24 @@ extern "C" { #define WEBP_USE_MSA #endif +#endif /* EMSCRIPTEN */ + +#ifndef WEBP_DSP_OMIT_C_CODE +#define WEBP_DSP_OMIT_C_CODE 1 +#endif + +#if (defined(__aarch64__) || defined(__ARM_NEON__)) && WEBP_DSP_OMIT_C_CODE +#define WEBP_NEON_OMIT_C_CODE 1 +#else +#define WEBP_NEON_OMIT_C_CODE 0 +#endif + +#if !(LOCAL_CLANG_PREREQ(3,8) || LOCAL_GCC_PREREQ(4,8) || defined(__aarch64__)) +#define WEBP_NEON_WORK_AROUND_GCC 1 +#else +#define WEBP_NEON_WORK_AROUND_GCC 0 +#endif + // This macro prevents thread_sanitizer from reporting known concurrent writes. #define WEBP_TSAN_IGNORE_FUNCTION #if defined(__has_feature) @@ -109,6 +141,42 @@ extern "C" { #endif #endif +#if defined(WEBP_USE_THREAD) && !defined(_WIN32) +#include // NOLINT + +#define WEBP_DSP_INIT(func) do { \ + static volatile VP8CPUInfo func ## _last_cpuinfo_used = \ + (VP8CPUInfo)&func ## _last_cpuinfo_used; \ + static pthread_mutex_t func ## _lock = PTHREAD_MUTEX_INITIALIZER; \ + if (pthread_mutex_lock(&func ## _lock)) break; \ + if (func ## _last_cpuinfo_used != VP8GetCPUInfo) func(); \ + func ## _last_cpuinfo_used = VP8GetCPUInfo; \ + (void)pthread_mutex_unlock(&func ## _lock); \ +} while (0) +#else // !(defined(WEBP_USE_THREAD) && !defined(_WIN32)) +#define WEBP_DSP_INIT(func) do { \ + static volatile VP8CPUInfo func ## _last_cpuinfo_used = \ + (VP8CPUInfo)&func ## _last_cpuinfo_used; \ + if (func ## _last_cpuinfo_used == VP8GetCPUInfo) break; \ + func(); \ + func ## _last_cpuinfo_used = VP8GetCPUInfo; \ +} while (0) +#endif // defined(WEBP_USE_THREAD) && !defined(_WIN32) + +// Defines an Init + helper function that control multiple initialization of +// function pointers / tables. +/* Usage: + WEBP_DSP_INIT_FUNC(InitFunc) { + ...function body + } +*/ +#define WEBP_DSP_INIT_FUNC(name) \ + static WEBP_TSAN_IGNORE_FUNCTION void name ## _body(void); \ + WEBP_TSAN_IGNORE_FUNCTION void name(void) { \ + WEBP_DSP_INIT(name ## _body); \ + } \ + static WEBP_TSAN_IGNORE_FUNCTION void name ## _body(void) + #define WEBP_UBSAN_IGNORE_UNDEF #define WEBP_UBSAN_IGNORE_UNSIGNED_OVERFLOW #if defined(__clang__) && defined(__has_attribute) @@ -129,6 +197,18 @@ extern "C" { #endif #endif +// Regularize the definition of WEBP_SWAP_16BIT_CSP (backward compatibility) +#if !defined(WEBP_SWAP_16BIT_CSP) +#define WEBP_SWAP_16BIT_CSP 0 +#endif + +// some endian fix (e.g.: mips-gcc doesn't define __BIG_ENDIAN__) +#if !defined(WORDS_BIGENDIAN) && \ + (defined(__BIG_ENDIAN__) || defined(_M_PPC) || \ + (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__))) +#define WORDS_BIGENDIAN +#endif + typedef enum { kSSE2, kSSE3, @@ -143,7 +223,7 @@ typedef enum { } CPUFeature; // returns true if the CPU supports the feature. typedef int (*VP8CPUInfo)(CPUFeature feature); -WEBP_EXTERN(VP8CPUInfo) VP8GetCPUInfo; +WEBP_EXTERN VP8CPUInfo VP8GetCPUInfo; //------------------------------------------------------------------------------ // Init stub generator @@ -152,7 +232,7 @@ WEBP_EXTERN(VP8CPUInfo) VP8GetCPUInfo; // avoiding a compiler warning. #define WEBP_DSP_INIT_STUB(func) \ extern void func(void); \ - WEBP_TSAN_IGNORE_FUNCTION void func(void) {} + void func(void) {} //------------------------------------------------------------------------------ // Encoding @@ -271,6 +351,7 @@ typedef double (*VP8SSIMGetClippedFunc)(const uint8_t* src1, int stride1, int xo, int yo, // center position int W, int H); // plane dimension +#if !defined(WEBP_REDUCE_SIZE) // This version is called with the guarantee that you can load 8 bytes and // 8 rows at offset src1 and src2 typedef double (*VP8SSIMGetFunc)(const uint8_t* src1, int stride1, @@ -278,10 +359,13 @@ typedef double (*VP8SSIMGetFunc)(const uint8_t* src1, int stride1, extern VP8SSIMGetFunc VP8SSIMGet; // unclipped / unchecked extern VP8SSIMGetClippedFunc VP8SSIMGetClipped; // with clipping +#endif +#if !defined(WEBP_DISABLE_STATS) typedef uint32_t (*VP8AccumulateSSEFunc)(const uint8_t* src1, const uint8_t* src2, int len); extern VP8AccumulateSSEFunc VP8AccumulateSSE; +#endif // must be called before using any of the above directly void VP8SSIMDspInit(void); @@ -462,12 +546,12 @@ extern WebPRescalerExportRowFunc WebPRescalerExportRowExpand; extern WebPRescalerExportRowFunc WebPRescalerExportRowShrink; // Plain-C implementation, as fall-back. -extern void WebPRescalerImportRowExpandC(struct WebPRescaler* const wrk, - const uint8_t* src); -extern void WebPRescalerImportRowShrinkC(struct WebPRescaler* const wrk, - const uint8_t* src); -extern void WebPRescalerExportRowExpandC(struct WebPRescaler* const wrk); -extern void WebPRescalerExportRowShrinkC(struct WebPRescaler* const wrk); +extern void WebPRescalerImportRowExpand_C(struct WebPRescaler* const wrk, + const uint8_t* src); +extern void WebPRescalerImportRowShrink_C(struct WebPRescaler* const wrk, + const uint8_t* src); +extern void WebPRescalerExportRowExpand_C(struct WebPRescaler* const wrk); +extern void WebPRescalerExportRowShrink_C(struct WebPRescaler* const wrk); // Main entry calls: extern void WebPRescalerImportRow(struct WebPRescaler* const wrk, @@ -533,24 +617,28 @@ void WebPMultRows(uint8_t* ptr, int stride, int width, int num_rows, int inverse); // Plain-C versions, used as fallback by some implementations. -void WebPMultRowC(uint8_t* const ptr, const uint8_t* const alpha, - int width, int inverse); -void WebPMultARGBRowC(uint32_t* const ptr, int width, int inverse); - -// To be called first before using the above. -void WebPInitAlphaProcessing(void); +void WebPMultRow_C(uint8_t* const ptr, const uint8_t* const alpha, + int width, int inverse); +void WebPMultARGBRow_C(uint32_t* const ptr, int width, int inverse); +#ifdef WORDS_BIGENDIAN // ARGB packing function: a/r/g/b input is rgba or bgra order. -extern void (*VP8PackARGB)(const uint8_t* a, const uint8_t* r, - const uint8_t* g, const uint8_t* b, int len, - uint32_t* out); +extern void (*WebPPackARGB)(const uint8_t* a, const uint8_t* r, + const uint8_t* g, const uint8_t* b, int len, + uint32_t* out); +#endif // RGB packing function. 'step' can be 3 or 4. r/g/b input is rgb or bgr order. -extern void (*VP8PackRGB)(const uint8_t* r, const uint8_t* g, const uint8_t* b, - int len, int step, uint32_t* out); +extern void (*WebPPackRGB)(const uint8_t* r, const uint8_t* g, const uint8_t* b, + int len, int step, uint32_t* out); + +// This function returns true if src[i] contains a value different from 0xff. +extern int (*WebPHasAlpha8b)(const uint8_t* src, int length); +// This function returns true if src[4*i] contains a value different from 0xff. +extern int (*WebPHasAlpha32b)(const uint8_t* src, int length); // To be called first before using the above. -void VP8EncDspARGBInit(void); +void WebPInitAlphaProcessing(void); //------------------------------------------------------------------------------ // Filter functions diff --git a/external/libwebp-0.6.0/src/dsp/enc.c b/external/libwebp-1.0.0/src/dsp/enc.c similarity index 74% rename from external/libwebp-0.6.0/src/dsp/enc.c rename to external/libwebp-1.0.0/src/dsp/enc.c index f31bc6de..fa23b40a 100644 --- a/external/libwebp-0.6.0/src/dsp/enc.c +++ b/external/libwebp-1.0.0/src/dsp/enc.c @@ -14,16 +14,18 @@ #include #include // for abs() -#include "./dsp.h" -#include "../enc/vp8i_enc.h" +#include "src/dsp/dsp.h" +#include "src/enc/vp8i_enc.h" static WEBP_INLINE uint8_t clip_8b(int v) { return (!(v & ~0xff)) ? v : (v < 0) ? 0 : 255; } +#if !WEBP_NEON_OMIT_C_CODE static WEBP_INLINE int clip_max(int v, int max) { return (v > max) ? max : v; } +#endif // !WEBP_NEON_OMIT_C_CODE //------------------------------------------------------------------------------ // Compute susceptibility based on DCT-coeff histograms: @@ -56,9 +58,10 @@ void VP8SetHistogramData(const int distribution[MAX_COEFF_THRESH + 1], histo->last_non_zero = last_non_zero; } -static void CollectHistogram(const uint8_t* ref, const uint8_t* pred, - int start_block, int end_block, - VP8Histogram* const histo) { +#if !WEBP_NEON_OMIT_C_CODE +static void CollectHistogram_C(const uint8_t* ref, const uint8_t* pred, + int start_block, int end_block, + VP8Histogram* const histo) { int j; int distribution[MAX_COEFF_THRESH + 1] = { 0 }; for (j = start_block; j < end_block; ++j) { @@ -76,6 +79,7 @@ static void CollectHistogram(const uint8_t* ref, const uint8_t* pred, } VP8SetHistogramData(distribution, histo); } +#endif // !WEBP_NEON_OMIT_C_CODE //------------------------------------------------------------------------------ // run-time tables (~4k) @@ -100,6 +104,8 @@ static WEBP_TSAN_IGNORE_FUNCTION void InitTables(void) { //------------------------------------------------------------------------------ // Transforms (Paragraph 14.4) +#if !WEBP_NEON_OMIT_C_CODE + #define STORE(x, y, v) \ dst[(x) + (y) * BPS] = clip_8b(ref[(x) + (y) * BPS] + ((v) >> 3)) @@ -140,15 +146,15 @@ static WEBP_INLINE void ITransformOne(const uint8_t* ref, const int16_t* in, } } -static void ITransform(const uint8_t* ref, const int16_t* in, uint8_t* dst, - int do_two) { +static void ITransform_C(const uint8_t* ref, const int16_t* in, uint8_t* dst, + int do_two) { ITransformOne(ref, in, dst); if (do_two) { ITransformOne(ref + 4, in + 16, dst + 4); } } -static void FTransform(const uint8_t* src, const uint8_t* ref, int16_t* out) { +static void FTransform_C(const uint8_t* src, const uint8_t* ref, int16_t* out) { int i; int tmp[16]; for (i = 0; i < 4; ++i, src += BPS, ref += BPS) { @@ -176,13 +182,16 @@ static void FTransform(const uint8_t* src, const uint8_t* ref, int16_t* out) { out[12+ i] = ((a3 * 2217 - a2 * 5352 + 51000) >> 16); } } +#endif // !WEBP_NEON_OMIT_C_CODE -static void FTransform2(const uint8_t* src, const uint8_t* ref, int16_t* out) { +static void FTransform2_C(const uint8_t* src, const uint8_t* ref, + int16_t* out) { VP8FTransform(src, ref, out); VP8FTransform(src + 4, ref + 4, out + 16); } -static void FTransformWHT(const int16_t* in, int16_t* out) { +#if !WEBP_NEON_OMIT_C_CODE +static void FTransformWHT_C(const int16_t* in, int16_t* out) { // input is 12b signed int32_t tmp[16]; int i; @@ -211,6 +220,7 @@ static void FTransformWHT(const int16_t* in, int16_t* out) { out[12 + i] = b3 >> 1; } } +#endif // !WEBP_NEON_OMIT_C_CODE #undef MUL #undef STORE @@ -303,8 +313,8 @@ static WEBP_INLINE void DCMode(uint8_t* dst, const uint8_t* left, //------------------------------------------------------------------------------ // Chroma 8x8 prediction (paragraph 12.2) -static void IntraChromaPreds(uint8_t* dst, const uint8_t* left, - const uint8_t* top) { +static void IntraChromaPreds_C(uint8_t* dst, const uint8_t* left, + const uint8_t* top) { // U block DCMode(C8DC8 + dst, left, top, 8, 8, 4); VerticalPred(C8VE8 + dst, top, 8); @@ -323,8 +333,8 @@ static void IntraChromaPreds(uint8_t* dst, const uint8_t* left, //------------------------------------------------------------------------------ // luma 16x16 prediction (paragraph 12.3) -static void Intra16Preds(uint8_t* dst, - const uint8_t* left, const uint8_t* top) { +static void Intra16Preds_C(uint8_t* dst, + const uint8_t* left, const uint8_t* top) { DCMode(I16DC16 + dst, left, top, 16, 16, 5); VerticalPred(I16VE16 + dst, top, 16); HorizontalPred(I16HE16 + dst, left, 16); @@ -507,7 +517,7 @@ static void TM4(uint8_t* dst, const uint8_t* top) { // Left samples are top[-5 .. -2], top_left is top[-1], top are // located at top[0..3], and top right is top[4..7] -static void Intra4Preds(uint8_t* dst, const uint8_t* top) { +static void Intra4Preds_C(uint8_t* dst, const uint8_t* top) { DC4(I4DC4 + dst, top); TM4(I4TM4 + dst, top); VE4(I4VE4 + dst, top); @@ -523,6 +533,7 @@ static void Intra4Preds(uint8_t* dst, const uint8_t* top) { //------------------------------------------------------------------------------ // Metric +#if !WEBP_NEON_OMIT_C_CODE static WEBP_INLINE int GetSSE(const uint8_t* a, const uint8_t* b, int w, int h) { int count = 0; @@ -538,20 +549,21 @@ static WEBP_INLINE int GetSSE(const uint8_t* a, const uint8_t* b, return count; } -static int SSE16x16(const uint8_t* a, const uint8_t* b) { +static int SSE16x16_C(const uint8_t* a, const uint8_t* b) { return GetSSE(a, b, 16, 16); } -static int SSE16x8(const uint8_t* a, const uint8_t* b) { +static int SSE16x8_C(const uint8_t* a, const uint8_t* b) { return GetSSE(a, b, 16, 8); } -static int SSE8x8(const uint8_t* a, const uint8_t* b) { +static int SSE8x8_C(const uint8_t* a, const uint8_t* b) { return GetSSE(a, b, 8, 8); } -static int SSE4x4(const uint8_t* a, const uint8_t* b) { +static int SSE4x4_C(const uint8_t* a, const uint8_t* b) { return GetSSE(a, b, 4, 4); } +#endif // !WEBP_NEON_OMIT_C_CODE -static void Mean16x4(const uint8_t* ref, uint32_t dc[4]) { +static void Mean16x4_C(const uint8_t* ref, uint32_t dc[4]) { int k, x, y; for (k = 0; k < 4; ++k) { uint32_t avg = 0; @@ -571,6 +583,7 @@ static void Mean16x4(const uint8_t* ref, uint32_t dc[4]) { // We try to match the spectral content (weighted) between source and // reconstructed samples. +#if !WEBP_NEON_OMIT_C_CODE // Hadamard transform // Returns the weighted sum of the absolute value of transformed coefficients. // w[] contains a row-major 4 by 4 symmetric matrix. @@ -608,24 +621,25 @@ static int TTransform(const uint8_t* in, const uint16_t* w) { return sum; } -static int Disto4x4(const uint8_t* const a, const uint8_t* const b, - const uint16_t* const w) { +static int Disto4x4_C(const uint8_t* const a, const uint8_t* const b, + const uint16_t* const w) { const int sum1 = TTransform(a, w); const int sum2 = TTransform(b, w); return abs(sum2 - sum1) >> 5; } -static int Disto16x16(const uint8_t* const a, const uint8_t* const b, - const uint16_t* const w) { +static int Disto16x16_C(const uint8_t* const a, const uint8_t* const b, + const uint16_t* const w) { int D = 0; int x, y; for (y = 0; y < 16 * BPS; y += 4 * BPS) { for (x = 0; x < 16; x += 4) { - D += Disto4x4(a + x + y, b + x + y, w); + D += Disto4x4_C(a + x + y, b + x + y, w); } } return D; } +#endif // !WEBP_NEON_OMIT_C_CODE //------------------------------------------------------------------------------ // Quantization @@ -636,8 +650,8 @@ static const uint8_t kZigzag[16] = { }; // Simple quantization -static int QuantizeBlock(int16_t in[16], int16_t out[16], - const VP8Matrix* const mtx) { +static int QuantizeBlock_C(int16_t in[16], int16_t out[16], + const VP8Matrix* const mtx) { int last = -1; int n; for (n = 0; n < 16; ++n) { @@ -662,13 +676,15 @@ static int QuantizeBlock(int16_t in[16], int16_t out[16], return (last >= 0); } -static int Quantize2Blocks(int16_t in[32], int16_t out[32], - const VP8Matrix* const mtx) { +#if !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC +static int Quantize2Blocks_C(int16_t in[32], int16_t out[32], + const VP8Matrix* const mtx) { int nz; nz = VP8EncQuantizeBlock(in + 0 * 16, out + 0 * 16, mtx) << 0; nz |= VP8EncQuantizeBlock(in + 1 * 16, out + 1 * 16, mtx) << 1; return nz; } +#endif // !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC //------------------------------------------------------------------------------ // Block copy @@ -682,148 +698,14 @@ static WEBP_INLINE void Copy(const uint8_t* src, uint8_t* dst, int w, int h) { } } -static void Copy4x4(const uint8_t* src, uint8_t* dst) { +static void Copy4x4_C(const uint8_t* src, uint8_t* dst) { Copy(src, dst, 4, 4); } -static void Copy16x8(const uint8_t* src, uint8_t* dst) { +static void Copy16x8_C(const uint8_t* src, uint8_t* dst) { Copy(src, dst, 16, 8); } -//------------------------------------------------------------------------------ -// SSIM / PSNR - -// hat-shaped filter. Sum of coefficients is equal to 16. -static const uint32_t kWeight[2 * VP8_SSIM_KERNEL + 1] = { - 1, 2, 3, 4, 3, 2, 1 -}; -static const uint32_t kWeightSum = 16 * 16; // sum{kWeight}^2 - -static WEBP_INLINE double SSIMCalculation( - const VP8DistoStats* const stats, uint32_t N /*num samples*/) { - const uint32_t w2 = N * N; - const uint32_t C1 = 20 * w2; - const uint32_t C2 = 60 * w2; - const uint32_t C3 = 8 * 8 * w2; // 'dark' limit ~= 6 - const uint64_t xmxm = (uint64_t)stats->xm * stats->xm; - const uint64_t ymym = (uint64_t)stats->ym * stats->ym; - if (xmxm + ymym >= C3) { - const int64_t xmym = (int64_t)stats->xm * stats->ym; - const int64_t sxy = (int64_t)stats->xym * N - xmym; // can be negative - const uint64_t sxx = (uint64_t)stats->xxm * N - xmxm; - const uint64_t syy = (uint64_t)stats->yym * N - ymym; - // we descale by 8 to prevent overflow during the fnum/fden multiply. - const uint64_t num_S = (2 * (uint64_t)(sxy < 0 ? 0 : sxy) + C2) >> 8; - const uint64_t den_S = (sxx + syy + C2) >> 8; - const uint64_t fnum = (2 * xmym + C1) * num_S; - const uint64_t fden = (xmxm + ymym + C1) * den_S; - const double r = (double)fnum / fden; - assert(r >= 0. && r <= 1.0); - return r; - } - return 1.; // area is too dark to contribute meaningfully -} - -double VP8SSIMFromStats(const VP8DistoStats* const stats) { - return SSIMCalculation(stats, kWeightSum); -} - -double VP8SSIMFromStatsClipped(const VP8DistoStats* const stats) { - return SSIMCalculation(stats, stats->w); -} - -static double SSIMGetClipped_C(const uint8_t* src1, int stride1, - const uint8_t* src2, int stride2, - int xo, int yo, int W, int H) { - VP8DistoStats stats = { 0, 0, 0, 0, 0, 0 }; - const int ymin = (yo - VP8_SSIM_KERNEL < 0) ? 0 : yo - VP8_SSIM_KERNEL; - const int ymax = (yo + VP8_SSIM_KERNEL > H - 1) ? H - 1 - : yo + VP8_SSIM_KERNEL; - const int xmin = (xo - VP8_SSIM_KERNEL < 0) ? 0 : xo - VP8_SSIM_KERNEL; - const int xmax = (xo + VP8_SSIM_KERNEL > W - 1) ? W - 1 - : xo + VP8_SSIM_KERNEL; - int x, y; - src1 += ymin * stride1; - src2 += ymin * stride2; - for (y = ymin; y <= ymax; ++y, src1 += stride1, src2 += stride2) { - for (x = xmin; x <= xmax; ++x) { - const uint32_t w = kWeight[VP8_SSIM_KERNEL + x - xo] - * kWeight[VP8_SSIM_KERNEL + y - yo]; - const uint32_t s1 = src1[x]; - const uint32_t s2 = src2[x]; - stats.w += w; - stats.xm += w * s1; - stats.ym += w * s2; - stats.xxm += w * s1 * s1; - stats.xym += w * s1 * s2; - stats.yym += w * s2 * s2; - } - } - return VP8SSIMFromStatsClipped(&stats); -} - -static double SSIMGet_C(const uint8_t* src1, int stride1, - const uint8_t* src2, int stride2) { - VP8DistoStats stats = { 0, 0, 0, 0, 0, 0 }; - int x, y; - for (y = 0; y <= 2 * VP8_SSIM_KERNEL; ++y, src1 += stride1, src2 += stride2) { - for (x = 0; x <= 2 * VP8_SSIM_KERNEL; ++x) { - const uint32_t w = kWeight[x] * kWeight[y]; - const uint32_t s1 = src1[x]; - const uint32_t s2 = src2[x]; - stats.xm += w * s1; - stats.ym += w * s2; - stats.xxm += w * s1 * s1; - stats.xym += w * s1 * s2; - stats.yym += w * s2 * s2; - } - } - return VP8SSIMFromStats(&stats); -} - -//------------------------------------------------------------------------------ - -static uint32_t AccumulateSSE(const uint8_t* src1, - const uint8_t* src2, int len) { - int i; - uint32_t sse2 = 0; - assert(len <= 65535); // to ensure that accumulation fits within uint32_t - for (i = 0; i < len; ++i) { - const int32_t diff = src1[i] - src2[i]; - sse2 += diff * diff; - } - return sse2; -} - -//------------------------------------------------------------------------------ - -VP8SSIMGetFunc VP8SSIMGet; -VP8SSIMGetClippedFunc VP8SSIMGetClipped; -VP8AccumulateSSEFunc VP8AccumulateSSE; - -extern void VP8SSIMDspInitSSE2(void); - -static volatile VP8CPUInfo ssim_last_cpuinfo_used = - (VP8CPUInfo)&ssim_last_cpuinfo_used; - -WEBP_TSAN_IGNORE_FUNCTION void VP8SSIMDspInit(void) { - if (ssim_last_cpuinfo_used == VP8GetCPUInfo) return; - - VP8SSIMGetClipped = SSIMGetClipped_C; - VP8SSIMGet = SSIMGet_C; - - VP8AccumulateSSE = AccumulateSSE; - if (VP8GetCPUInfo != NULL) { -#if defined(WEBP_USE_SSE2) - if (VP8GetCPUInfo(kSSE2)) { - VP8SSIMDspInitSSE2(); - } -#endif - } - - ssim_last_cpuinfo_used = VP8GetCPUInfo; -} - //------------------------------------------------------------------------------ // Initialization @@ -858,36 +740,37 @@ extern void VP8EncDspInitMIPS32(void); extern void VP8EncDspInitMIPSdspR2(void); extern void VP8EncDspInitMSA(void); -static volatile VP8CPUInfo enc_last_cpuinfo_used = - (VP8CPUInfo)&enc_last_cpuinfo_used; - -WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspInit(void) { - if (enc_last_cpuinfo_used == VP8GetCPUInfo) return; - +WEBP_DSP_INIT_FUNC(VP8EncDspInit) { VP8DspInit(); // common inverse transforms InitTables(); // default C implementations - VP8CollectHistogram = CollectHistogram; - VP8ITransform = ITransform; - VP8FTransform = FTransform; - VP8FTransform2 = FTransform2; - VP8FTransformWHT = FTransformWHT; - VP8EncPredLuma4 = Intra4Preds; - VP8EncPredLuma16 = Intra16Preds; - VP8EncPredChroma8 = IntraChromaPreds; - VP8SSE16x16 = SSE16x16; - VP8SSE8x8 = SSE8x8; - VP8SSE16x8 = SSE16x8; - VP8SSE4x4 = SSE4x4; - VP8TDisto4x4 = Disto4x4; - VP8TDisto16x16 = Disto16x16; - VP8Mean16x4 = Mean16x4; - VP8EncQuantizeBlock = QuantizeBlock; - VP8EncQuantize2Blocks = Quantize2Blocks; - VP8EncQuantizeBlockWHT = QuantizeBlock; - VP8Copy4x4 = Copy4x4; - VP8Copy16x8 = Copy16x8; +#if !WEBP_NEON_OMIT_C_CODE + VP8ITransform = ITransform_C; + VP8FTransform = FTransform_C; + VP8FTransformWHT = FTransformWHT_C; + VP8TDisto4x4 = Disto4x4_C; + VP8TDisto16x16 = Disto16x16_C; + VP8CollectHistogram = CollectHistogram_C; + VP8SSE16x16 = SSE16x16_C; + VP8SSE16x8 = SSE16x8_C; + VP8SSE8x8 = SSE8x8_C; + VP8SSE4x4 = SSE4x4_C; +#endif + +#if !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC + VP8EncQuantizeBlock = QuantizeBlock_C; + VP8EncQuantize2Blocks = Quantize2Blocks_C; +#endif + + VP8FTransform2 = FTransform2_C; + VP8EncPredLuma4 = Intra4Preds_C; + VP8EncPredLuma16 = Intra16Preds_C; + VP8EncPredChroma8 = IntraChromaPreds_C; + VP8Mean16x4 = Mean16x4_C; + VP8EncQuantizeBlockWHT = QuantizeBlock_C; + VP8Copy4x4 = Copy4x4_C; + VP8Copy16x8 = Copy16x8_C; // If defined, use CPUInfo() to overwrite some pointers with faster versions. if (VP8GetCPUInfo != NULL) { @@ -906,11 +789,6 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspInit(void) { VP8EncDspInitAVX2(); } #endif -#if defined(WEBP_USE_NEON) - if (VP8GetCPUInfo(kNEON)) { - VP8EncDspInitNEON(); - } -#endif #if defined(WEBP_USE_MIPS32) if (VP8GetCPUInfo(kMIPS32)) { VP8EncDspInitMIPS32(); @@ -927,5 +805,32 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspInit(void) { } #endif } - enc_last_cpuinfo_used = VP8GetCPUInfo; + +#if defined(WEBP_USE_NEON) + if (WEBP_NEON_OMIT_C_CODE || + (VP8GetCPUInfo != NULL && VP8GetCPUInfo(kNEON))) { + VP8EncDspInitNEON(); + } +#endif + + assert(VP8ITransform != NULL); + assert(VP8FTransform != NULL); + assert(VP8FTransformWHT != NULL); + assert(VP8TDisto4x4 != NULL); + assert(VP8TDisto16x16 != NULL); + assert(VP8CollectHistogram != NULL); + assert(VP8SSE16x16 != NULL); + assert(VP8SSE16x8 != NULL); + assert(VP8SSE8x8 != NULL); + assert(VP8SSE4x4 != NULL); + assert(VP8EncQuantizeBlock != NULL); + assert(VP8EncQuantize2Blocks != NULL); + assert(VP8FTransform2 != NULL); + assert(VP8EncPredLuma4 != NULL); + assert(VP8EncPredLuma16 != NULL); + assert(VP8EncPredChroma8 != NULL); + assert(VP8Mean16x4 != NULL); + assert(VP8EncQuantizeBlockWHT != NULL); + assert(VP8Copy4x4 != NULL); + assert(VP8Copy16x8 != NULL); } diff --git a/external/libwebp-0.6.0/src/dsp/enc_avx2.c b/external/libwebp-1.0.0/src/dsp/enc_avx2.c similarity index 96% rename from external/libwebp-0.6.0/src/dsp/enc_avx2.c rename to external/libwebp-1.0.0/src/dsp/enc_avx2.c index 93efb30b..8bc5798f 100644 --- a/external/libwebp-0.6.0/src/dsp/enc_avx2.c +++ b/external/libwebp-1.0.0/src/dsp/enc_avx2.c @@ -9,7 +9,7 @@ // // AVX2 version of speed-critical encoding functions. -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_AVX2) diff --git a/external/libwebp-0.6.0/src/dsp/enc_mips32.c b/external/libwebp-1.0.0/src/dsp/enc_mips32.c similarity index 94% rename from external/libwebp-0.6.0/src/dsp/enc_mips32.c rename to external/libwebp-1.0.0/src/dsp/enc_mips32.c index 752b14da..618f0fc0 100644 --- a/external/libwebp-0.6.0/src/dsp/enc_mips32.c +++ b/external/libwebp-1.0.0/src/dsp/enc_mips32.c @@ -13,13 +13,13 @@ // Jovan Zelincevic (jovan.zelincevic@imgtec.com) // Slobodan Prijic (slobodan.prijic@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MIPS32) -#include "./mips_macro.h" -#include "../enc/vp8i_enc.h" -#include "../enc/cost_enc.h" +#include "src/dsp/mips_macro.h" +#include "src/enc/vp8i_enc.h" +#include "src/enc/cost_enc.h" static const int kC1 = 20091 + (1 << 16); static const int kC2 = 35468; @@ -113,8 +113,9 @@ static const int kC2 = 35468; "sb %[" #TEMP12 "], 3+" XSTR(BPS) "*" #A "(%[temp16]) \n\t" // Does one or two inverse transforms. -static WEBP_INLINE void ITransformOne(const uint8_t* ref, const int16_t* in, - uint8_t* dst) { +static WEBP_INLINE void ITransformOne_MIPS32(const uint8_t* ref, + const int16_t* in, + uint8_t* dst) { int temp0, temp1, temp2, temp3, temp4, temp5, temp6; int temp7, temp8, temp9, temp10, temp11, temp12, temp13; int temp14, temp15, temp16, temp17, temp18, temp19, temp20; @@ -144,11 +145,11 @@ static WEBP_INLINE void ITransformOne(const uint8_t* ref, const int16_t* in, ); } -static void ITransform(const uint8_t* ref, const int16_t* in, - uint8_t* dst, int do_two) { - ITransformOne(ref, in, dst); +static void ITransform_MIPS32(const uint8_t* ref, const int16_t* in, + uint8_t* dst, int do_two) { + ITransformOne_MIPS32(ref, in, dst); if (do_two) { - ITransformOne(ref + 4, in + 16, dst + 4); + ITransformOne_MIPS32(ref + 4, in + 16, dst + 4); } } @@ -187,8 +188,8 @@ static void ITransform(const uint8_t* ref, const int16_t* in, "sh %[temp5], " #J "(%[ppin]) \n\t" \ "sh %[level], " #N "(%[pout]) \n\t" -static int QuantizeBlock(int16_t in[16], int16_t out[16], - const VP8Matrix* const mtx) { +static int QuantizeBlock_MIPS32(int16_t in[16], int16_t out[16], + const VP8Matrix* const mtx) { int temp0, temp1, temp2, temp3, temp4, temp5; int sign, coeff, level, i; int max_level = MAX_LEVEL; @@ -238,11 +239,11 @@ static int QuantizeBlock(int16_t in[16], int16_t out[16], return 0; } -static int Quantize2Blocks(int16_t in[32], int16_t out[32], - const VP8Matrix* const mtx) { +static int Quantize2Blocks_MIPS32(int16_t in[32], int16_t out[32], + const VP8Matrix* const mtx) { int nz; - nz = QuantizeBlock(in + 0 * 16, out + 0 * 16, mtx) << 0; - nz |= QuantizeBlock(in + 1 * 16, out + 1 * 16, mtx) << 1; + nz = QuantizeBlock_MIPS32(in + 0 * 16, out + 0 * 16, mtx) << 0; + nz |= QuantizeBlock_MIPS32(in + 1 * 16, out + 1 * 16, mtx) << 1; return nz; } @@ -361,8 +362,8 @@ static int Quantize2Blocks(int16_t in[32], int16_t out[32], "msub %[temp6], %[temp0] \n\t" \ "msub %[temp7], %[temp1] \n\t" -static int Disto4x4(const uint8_t* const a, const uint8_t* const b, - const uint16_t* const w) { +static int Disto4x4_MIPS32(const uint8_t* const a, const uint8_t* const b, + const uint16_t* const w) { int tmp[32]; int temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8; @@ -396,13 +397,13 @@ static int Disto4x4(const uint8_t* const a, const uint8_t* const b, #undef VERTICAL_PASS #undef HORIZONTAL_PASS -static int Disto16x16(const uint8_t* const a, const uint8_t* const b, - const uint16_t* const w) { +static int Disto16x16_MIPS32(const uint8_t* const a, const uint8_t* const b, + const uint16_t* const w) { int D = 0; int x, y; for (y = 0; y < 16 * BPS; y += 4 * BPS) { for (x = 0; x < 16; x += 4) { - D += Disto4x4(a + x + y, b + x + y, w); + D += Disto4x4_MIPS32(a + x + y, b + x + y, w); } } return D; @@ -478,7 +479,8 @@ static int Disto16x16(const uint8_t* const a, const uint8_t* const b, "sh %[" #TEMP8 "], " #D "(%[temp20]) \n\t" \ "sh %[" #TEMP12 "], " #B "(%[temp20]) \n\t" -static void FTransform(const uint8_t* src, const uint8_t* ref, int16_t* out) { +static void FTransform_MIPS32(const uint8_t* src, const uint8_t* ref, + int16_t* out) { int temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8; int temp9, temp10, temp11, temp12, temp13, temp14, temp15, temp16; int temp17, temp18, temp19, temp20; @@ -539,7 +541,7 @@ static void FTransform(const uint8_t* src, const uint8_t* ref, int16_t* out) { GET_SSE_INNER(C, C + 1, C + 2, C + 3) \ GET_SSE_INNER(D, D + 1, D + 2, D + 3) -static int SSE16x16(const uint8_t* a, const uint8_t* b) { +static int SSE16x16_MIPS32(const uint8_t* a, const uint8_t* b) { int count; int temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; @@ -573,7 +575,7 @@ static int SSE16x16(const uint8_t* a, const uint8_t* b) { return count; } -static int SSE16x8(const uint8_t* a, const uint8_t* b) { +static int SSE16x8_MIPS32(const uint8_t* a, const uint8_t* b) { int count; int temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; @@ -599,7 +601,7 @@ static int SSE16x8(const uint8_t* a, const uint8_t* b) { return count; } -static int SSE8x8(const uint8_t* a, const uint8_t* b) { +static int SSE8x8_MIPS32(const uint8_t* a, const uint8_t* b) { int count; int temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; @@ -621,7 +623,7 @@ static int SSE8x8(const uint8_t* a, const uint8_t* b) { return count; } -static int SSE4x4(const uint8_t* a, const uint8_t* b) { +static int SSE4x4_MIPS32(const uint8_t* a, const uint8_t* b) { int count; int temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; @@ -651,17 +653,20 @@ static int SSE4x4(const uint8_t* a, const uint8_t* b) { extern void VP8EncDspInitMIPS32(void); WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspInitMIPS32(void) { - VP8ITransform = ITransform; - VP8FTransform = FTransform; - VP8EncQuantizeBlock = QuantizeBlock; - VP8EncQuantize2Blocks = Quantize2Blocks; - VP8TDisto4x4 = Disto4x4; - VP8TDisto16x16 = Disto16x16; + VP8ITransform = ITransform_MIPS32; + VP8FTransform = FTransform_MIPS32; + + VP8EncQuantizeBlock = QuantizeBlock_MIPS32; + VP8EncQuantize2Blocks = Quantize2Blocks_MIPS32; + + VP8TDisto4x4 = Disto4x4_MIPS32; + VP8TDisto16x16 = Disto16x16_MIPS32; + #if !defined(WORK_AROUND_GCC) - VP8SSE16x16 = SSE16x16; - VP8SSE8x8 = SSE8x8; - VP8SSE16x8 = SSE16x8; - VP8SSE4x4 = SSE4x4; + VP8SSE16x16 = SSE16x16_MIPS32; + VP8SSE8x8 = SSE8x8_MIPS32; + VP8SSE16x8 = SSE16x8_MIPS32; + VP8SSE4x4 = SSE4x4_MIPS32; #endif } diff --git a/external/libwebp-0.6.0/src/dsp/enc_mips_dsp_r2.c b/external/libwebp-1.0.0/src/dsp/enc_mips_dsp_r2.c similarity index 96% rename from external/libwebp-0.6.0/src/dsp/enc_mips_dsp_r2.c rename to external/libwebp-1.0.0/src/dsp/enc_mips_dsp_r2.c index 6c8c1c6a..9ddd8950 100644 --- a/external/libwebp-0.6.0/src/dsp/enc_mips_dsp_r2.c +++ b/external/libwebp-1.0.0/src/dsp/enc_mips_dsp_r2.c @@ -12,13 +12,13 @@ // Author(s): Darko Laus (darko.laus@imgtec.com) // Mirko Raus (mirko.raus@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MIPS_DSP_R2) -#include "./mips_macro.h" -#include "../enc/cost_enc.h" -#include "../enc/vp8i_enc.h" +#include "src/dsp/mips_macro.h" +#include "src/enc/cost_enc.h" +#include "src/enc/vp8i_enc.h" static const int kC1 = 20091 + (1 << 16); static const int kC2 = 35468; @@ -141,7 +141,8 @@ static const int kC2 = 35468; "sh %[" #TEMP8 "], " #D "(%[temp20]) \n\t" \ "sh %[" #TEMP12 "], " #B "(%[temp20]) \n\t" -static void FTransform(const uint8_t* src, const uint8_t* ref, int16_t* out) { +static void FTransform_MIPSdspR2(const uint8_t* src, const uint8_t* ref, + int16_t* out) { const int c2217 = 2217; const int c5352 = 5352; int temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8; @@ -238,16 +239,16 @@ static WEBP_INLINE void ITransformOne(const uint8_t* ref, const int16_t* in, ); } -static void ITransform(const uint8_t* ref, const int16_t* in, uint8_t* dst, - int do_two) { +static void ITransform_MIPSdspR2(const uint8_t* ref, const int16_t* in, + uint8_t* dst, int do_two) { ITransformOne(ref, in, dst); if (do_two) { ITransformOne(ref + 4, in + 16, dst + 4); } } -static int Disto4x4(const uint8_t* const a, const uint8_t* const b, - const uint16_t* const w) { +static int Disto4x4_MIPSdspR2(const uint8_t* const a, const uint8_t* const b, + const uint16_t* const w) { int temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8, temp9; int temp10, temp11, temp12, temp13, temp14, temp15, temp16, temp17; @@ -313,13 +314,14 @@ static int Disto4x4(const uint8_t* const a, const uint8_t* const b, return abs(temp3 - temp17) >> 5; } -static int Disto16x16(const uint8_t* const a, const uint8_t* const b, - const uint16_t* const w) { +static int Disto16x16_MIPSdspR2(const uint8_t* const a, + const uint8_t* const b, + const uint16_t* const w) { int D = 0; int x, y; for (y = 0; y < 16 * BPS; y += 4 * BPS) { for (x = 0; x < 16; x += 4) { - D += Disto4x4(a + x + y, b + x + y, w); + D += Disto4x4_MIPSdspR2(a + x + y, b + x + y, w); } } return D; @@ -1011,8 +1013,8 @@ static void HU4(uint8_t* dst, const uint8_t* top) { //------------------------------------------------------------------------------ // Chroma 8x8 prediction (paragraph 12.2) -static void IntraChromaPreds(uint8_t* dst, const uint8_t* left, - const uint8_t* top) { +static void IntraChromaPreds_MIPSdspR2(uint8_t* dst, const uint8_t* left, + const uint8_t* top) { // U block DCMode8(C8DC8 + dst, left, top); VerticalPred8(C8VE8 + dst, top); @@ -1031,8 +1033,8 @@ static void IntraChromaPreds(uint8_t* dst, const uint8_t* left, //------------------------------------------------------------------------------ // luma 16x16 prediction (paragraph 12.3) -static void Intra16Preds(uint8_t* dst, - const uint8_t* left, const uint8_t* top) { +static void Intra16Preds_MIPSdspR2(uint8_t* dst, + const uint8_t* left, const uint8_t* top) { DCMode16(I16DC16 + dst, left, top); VerticalPred16(I16VE16 + dst, top); HorizontalPred16(I16HE16 + dst, left); @@ -1041,7 +1043,7 @@ static void Intra16Preds(uint8_t* dst, // Left samples are top[-5 .. -2], top_left is top[-1], top are // located at top[0..3], and top right is top[4..7] -static void Intra4Preds(uint8_t* dst, const uint8_t* top) { +static void Intra4Preds_MIPSdspR2(uint8_t* dst, const uint8_t* top) { DC4(I4DC4 + dst, top); TM4(I4TM4 + dst, top); VE4(I4VE4 + dst, top); @@ -1077,7 +1079,7 @@ static void Intra4Preds(uint8_t* dst, const uint8_t* top) { GET_SSE_INNER(C) \ GET_SSE_INNER(D) -static int SSE16x16(const uint8_t* a, const uint8_t* b) { +static int SSE16x16_MIPSdspR2(const uint8_t* a, const uint8_t* b) { int count; int temp0, temp1, temp2, temp3; __asm__ volatile ( @@ -1107,7 +1109,7 @@ static int SSE16x16(const uint8_t* a, const uint8_t* b) { return count; } -static int SSE16x8(const uint8_t* a, const uint8_t* b) { +static int SSE16x8_MIPSdspR2(const uint8_t* a, const uint8_t* b) { int count; int temp0, temp1, temp2, temp3; __asm__ volatile ( @@ -1129,7 +1131,7 @@ static int SSE16x8(const uint8_t* a, const uint8_t* b) { return count; } -static int SSE8x8(const uint8_t* a, const uint8_t* b) { +static int SSE8x8_MIPSdspR2(const uint8_t* a, const uint8_t* b) { int count; int temp0, temp1, temp2, temp3; __asm__ volatile ( @@ -1147,7 +1149,7 @@ static int SSE8x8(const uint8_t* a, const uint8_t* b) { return count; } -static int SSE4x4(const uint8_t* a, const uint8_t* b) { +static int SSE4x4_MIPSdspR2(const uint8_t* a, const uint8_t* b) { int count; int temp0, temp1, temp2, temp3; __asm__ volatile ( @@ -1270,8 +1272,8 @@ static int SSE4x4(const uint8_t* a, const uint8_t* b) { "usw $0, " #J "(%[ppin]) \n\t" \ "3: \n\t" -static int QuantizeBlock(int16_t in[16], int16_t out[16], - const VP8Matrix* const mtx) { +static int QuantizeBlock_MIPSdspR2(int16_t in[16], int16_t out[16], + const VP8Matrix* const mtx) { int temp0, temp1, temp2, temp3, temp4, temp5,temp6; int sign, coeff, level; int max_level = MAX_LEVEL; @@ -1311,11 +1313,11 @@ static int QuantizeBlock(int16_t in[16], int16_t out[16], return (ret != 0); } -static int Quantize2Blocks(int16_t in[32], int16_t out[32], - const VP8Matrix* const mtx) { +static int Quantize2Blocks_MIPSdspR2(int16_t in[32], int16_t out[32], + const VP8Matrix* const mtx) { int nz; - nz = QuantizeBlock(in + 0 * 16, out + 0 * 16, mtx) << 0; - nz |= QuantizeBlock(in + 1 * 16, out + 1 * 16, mtx) << 1; + nz = QuantizeBlock_MIPSdspR2(in + 0 * 16, out + 0 * 16, mtx) << 0; + nz |= QuantizeBlock_MIPSdspR2(in + 1 * 16, out + 1 * 16, mtx) << 1; return nz; } @@ -1358,7 +1360,7 @@ static int Quantize2Blocks(int16_t in[32], int16_t out[32], "usw %[" #TEMP4 "], " #C "(%[out]) \n\t" \ "usw %[" #TEMP6 "], " #D "(%[out]) \n\t" -static void FTransformWHT(const int16_t* in, int16_t* out) { +static void FTransformWHT_MIPSdspR2(const int16_t* in, int16_t* out) { int temp0, temp1, temp2, temp3, temp4; int temp5, temp6, temp7, temp8, temp9; @@ -1450,9 +1452,9 @@ static void FTransformWHT(const int16_t* in, int16_t* out) { "addiu %[temp8], %[temp8], 1 \n\t" \ "sw %[temp8], 0(%[temp3]) \n\t" -static void CollectHistogram(const uint8_t* ref, const uint8_t* pred, - int start_block, int end_block, - VP8Histogram* const histo) { +static void CollectHistogram_MIPSdspR2(const uint8_t* ref, const uint8_t* pred, + int start_block, int end_block, + VP8Histogram* const histo) { int j; int distribution[MAX_COEFF_THRESH + 1] = { 0 }; const int max_coeff = (MAX_COEFF_THRESH << 16) + MAX_COEFF_THRESH; @@ -1484,23 +1486,28 @@ static void CollectHistogram(const uint8_t* ref, const uint8_t* pred, extern void VP8EncDspInitMIPSdspR2(void); WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspInitMIPSdspR2(void) { - VP8FTransform = FTransform; - VP8ITransform = ITransform; - VP8TDisto4x4 = Disto4x4; - VP8TDisto16x16 = Disto16x16; - VP8EncPredLuma16 = Intra16Preds; - VP8EncPredChroma8 = IntraChromaPreds; - VP8EncPredLuma4 = Intra4Preds; + VP8FTransform = FTransform_MIPSdspR2; + VP8FTransformWHT = FTransformWHT_MIPSdspR2; + VP8ITransform = ITransform_MIPSdspR2; + + VP8TDisto4x4 = Disto4x4_MIPSdspR2; + VP8TDisto16x16 = Disto16x16_MIPSdspR2; + + VP8EncPredLuma16 = Intra16Preds_MIPSdspR2; + VP8EncPredChroma8 = IntraChromaPreds_MIPSdspR2; + VP8EncPredLuma4 = Intra4Preds_MIPSdspR2; + #if !defined(WORK_AROUND_GCC) - VP8SSE16x16 = SSE16x16; - VP8SSE8x8 = SSE8x8; - VP8SSE16x8 = SSE16x8; - VP8SSE4x4 = SSE4x4; + VP8SSE16x16 = SSE16x16_MIPSdspR2; + VP8SSE8x8 = SSE8x8_MIPSdspR2; + VP8SSE16x8 = SSE16x8_MIPSdspR2; + VP8SSE4x4 = SSE4x4_MIPSdspR2; #endif - VP8EncQuantizeBlock = QuantizeBlock; - VP8EncQuantize2Blocks = Quantize2Blocks; - VP8FTransformWHT = FTransformWHT; - VP8CollectHistogram = CollectHistogram; + + VP8EncQuantizeBlock = QuantizeBlock_MIPSdspR2; + VP8EncQuantize2Blocks = Quantize2Blocks_MIPSdspR2; + + VP8CollectHistogram = CollectHistogram_MIPSdspR2; } #else // !WEBP_USE_MIPS_DSP_R2 diff --git a/external/libwebp-0.6.0/src/dsp/enc_msa.c b/external/libwebp-1.0.0/src/dsp/enc_msa.c similarity index 91% rename from external/libwebp-0.6.0/src/dsp/enc_msa.c rename to external/libwebp-1.0.0/src/dsp/enc_msa.c index 909b46d5..6f85add4 100644 --- a/external/libwebp-0.6.0/src/dsp/enc_msa.c +++ b/external/libwebp-1.0.0/src/dsp/enc_msa.c @@ -11,13 +11,13 @@ // // Author: Prashant Patil (prashant.patil@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MSA) #include -#include "./msa_macro.h" -#include "../enc/vp8i_enc.h" +#include "src/dsp/msa_macro.h" +#include "src/enc/vp8i_enc.h" //------------------------------------------------------------------------------ // Transforms @@ -69,20 +69,21 @@ static WEBP_INLINE void ITransformOne(const uint8_t* ref, const int16_t* in, ST4x4_UB(res0, res0, 3, 2, 1, 0, dst, BPS); } -static void ITransform(const uint8_t* ref, const int16_t* in, uint8_t* dst, - int do_two) { +static void ITransform_MSA(const uint8_t* ref, const int16_t* in, uint8_t* dst, + int do_two) { ITransformOne(ref, in, dst); if (do_two) { ITransformOne(ref + 4, in + 16, dst + 4); } } -static void FTransform(const uint8_t* src, const uint8_t* ref, int16_t* out) { +static void FTransform_MSA(const uint8_t* src, const uint8_t* ref, + int16_t* out) { uint64_t out0, out1, out2, out3; uint32_t in0, in1, in2, in3; v4i32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5; v8i16 t0, t1, t2, t3; - v16u8 srcl0, srcl1, src0, src1; + v16u8 srcl0, srcl1, src0 = { 0 }, src1 = { 0 }; const v8i16 mask0 = { 0, 4, 8, 12, 1, 5, 9, 13 }; const v8i16 mask1 = { 3, 7, 11, 15, 2, 6, 10, 14 }; const v8i16 mask2 = { 4, 0, 5, 1, 6, 2, 7, 3 }; @@ -130,7 +131,7 @@ static void FTransform(const uint8_t* src, const uint8_t* ref, int16_t* out) { SD4(out0, out1, out2, out3, out, 8); } -static void FTransformWHT(const int16_t* in, int16_t* out) { +static void FTransformWHT_MSA(const int16_t* in, int16_t* out) { v8i16 in0 = { 0 }; v8i16 in1 = { 0 }; v8i16 tmp0, tmp1, tmp2, tmp3; @@ -167,10 +168,10 @@ static void FTransformWHT(const int16_t* in, int16_t* out) { ST_SH2(out0, out1, out, 8); } -static int TTransform(const uint8_t* in, const uint16_t* w) { +static int TTransform_MSA(const uint8_t* in, const uint16_t* w) { int sum; uint32_t in0_m, in1_m, in2_m, in3_m; - v16i8 src0; + v16i8 src0 = { 0 }; v8i16 in0, in1, tmp0, tmp1, tmp2, tmp3; v4i32 dst0, dst1; const v16i8 zero = { 0 }; @@ -199,20 +200,20 @@ static int TTransform(const uint8_t* in, const uint16_t* w) { return sum; } -static int Disto4x4(const uint8_t* const a, const uint8_t* const b, - const uint16_t* const w) { - const int sum1 = TTransform(a, w); - const int sum2 = TTransform(b, w); +static int Disto4x4_MSA(const uint8_t* const a, const uint8_t* const b, + const uint16_t* const w) { + const int sum1 = TTransform_MSA(a, w); + const int sum2 = TTransform_MSA(b, w); return abs(sum2 - sum1) >> 5; } -static int Disto16x16(const uint8_t* const a, const uint8_t* const b, - const uint16_t* const w) { +static int Disto16x16_MSA(const uint8_t* const a, const uint8_t* const b, + const uint16_t* const w) { int D = 0; int x, y; for (y = 0; y < 16 * BPS; y += 4 * BPS) { for (x = 0; x < 16; x += 4) { - D += Disto4x4(a + x + y, b + x + y, w); + D += Disto4x4_MSA(a + x + y, b + x + y, w); } } return D; @@ -221,9 +222,9 @@ static int Disto16x16(const uint8_t* const a, const uint8_t* const b, //------------------------------------------------------------------------------ // Histogram -static void CollectHistogram(const uint8_t* ref, const uint8_t* pred, - int start_block, int end_block, - VP8Histogram* const histo) { +static void CollectHistogram_MSA(const uint8_t* ref, const uint8_t* pred, + int start_block, int end_block, + VP8Histogram* const histo) { int j; int distribution[MAX_COEFF_THRESH + 1] = { 0 }; for (j = start_block; j < end_block; ++j) { @@ -259,8 +260,9 @@ static void CollectHistogram(const uint8_t* ref, const uint8_t* pred, #define AVG2(a, b) (((a) + (b) + 1) >> 1) static WEBP_INLINE void VE4(uint8_t* dst, const uint8_t* top) { // vertical + const v16u8 A1 = { 0 }; const uint64_t val_m = LD(top - 1); - const v16u8 A = (v16u8)__msa_insert_d((v2i64)A, 0, val_m); + const v16u8 A = (v16u8)__msa_insert_d((v2i64)A1, 0, val_m); const v16u8 B = SLDI_UB(A, A, 1); const v16u8 C = SLDI_UB(A, A, 2); const v16u8 AC = __msa_ave_u_b(A, C); @@ -292,8 +294,9 @@ static WEBP_INLINE void DC4(uint8_t* dst, const uint8_t* top) { } static WEBP_INLINE void RD4(uint8_t* dst, const uint8_t* top) { + const v16u8 A2 = { 0 }; const uint64_t val_m = LD(top - 5); - const v16u8 A1 = (v16u8)__msa_insert_d((v2i64)A1, 0, val_m); + const v16u8 A1 = (v16u8)__msa_insert_d((v2i64)A2, 0, val_m); const v16u8 A = (v16u8)__msa_insert_b((v16i8)A1, 8, top[3]); const v16u8 B = SLDI_UB(A, A, 1); const v16u8 C = SLDI_UB(A, A, 2); @@ -311,8 +314,9 @@ static WEBP_INLINE void RD4(uint8_t* dst, const uint8_t* top) { } static WEBP_INLINE void LD4(uint8_t* dst, const uint8_t* top) { + const v16u8 A1 = { 0 }; const uint64_t val_m = LD(top); - const v16u8 A = (v16u8)__msa_insert_d((v2i64)A, 0, val_m); + const v16u8 A = (v16u8)__msa_insert_d((v2i64)A1, 0, val_m); const v16u8 B = SLDI_UB(A, A, 1); const v16u8 C1 = SLDI_UB(A, A, 2); const v16u8 C = (v16u8)__msa_insert_b((v16i8)C1, 6, top[7]); @@ -427,7 +431,7 @@ static WEBP_INLINE void TM4(uint8_t* dst, const uint8_t* top) { #undef AVG3 #undef AVG2 -static void Intra4Preds(uint8_t* dst, const uint8_t* top) { +static void Intra4Preds_MSA(uint8_t* dst, const uint8_t* top) { DC4(I4DC4 + dst, top); TM4(I4TM4 + dst, top); VE4(I4VE4 + dst, top); @@ -544,8 +548,8 @@ static WEBP_INLINE void DCMode16x16(uint8_t* dst, const uint8_t* left, STORE16x16(out, dst); } -static void Intra16Preds(uint8_t* dst, - const uint8_t* left, const uint8_t* top) { +static void Intra16Preds_MSA(uint8_t* dst, + const uint8_t* left, const uint8_t* top) { DCMode16x16(I16DC16 + dst, left, top); VerticalPred16x16(I16VE16 + dst, top); HorizontalPred16x16(I16HE16 + dst, left); @@ -645,7 +649,7 @@ static WEBP_INLINE void TrueMotion8x8(uint8_t* dst, const uint8_t* left, static WEBP_INLINE void DCMode8x8(uint8_t* dst, const uint8_t* left, const uint8_t* top) { uint64_t out; - v16u8 src; + v16u8 src = { 0 }; if (top != NULL && left != NULL) { const uint64_t left_m = LD(left); const uint64_t top_m = LD(top); @@ -666,8 +670,8 @@ static WEBP_INLINE void DCMode8x8(uint8_t* dst, const uint8_t* left, STORE8x8(out, dst); } -static void IntraChromaPreds(uint8_t* dst, const uint8_t* left, - const uint8_t* top) { +static void IntraChromaPreds_MSA(uint8_t* dst, const uint8_t* left, + const uint8_t* top) { // U block DCMode8x8(C8DC8 + dst, left, top); VerticalPred8x8(C8VE8 + dst, top); @@ -708,7 +712,7 @@ static void IntraChromaPreds(uint8_t* dst, const uint8_t* left, DPADD_SH2_SW(tmp2, tmp3, tmp2, tmp3, out2, out3); \ } while (0) -static int SSE16x16(const uint8_t* a, const uint8_t* b) { +static int SSE16x16_MSA(const uint8_t* a, const uint8_t* b) { uint32_t sum; v16u8 src0, src1, src2, src3, src4, src5, src6, src7; v16u8 ref0, ref1, ref2, ref3, ref4, ref5, ref6, ref7; @@ -735,7 +739,7 @@ static int SSE16x16(const uint8_t* a, const uint8_t* b) { return sum; } -static int SSE16x8(const uint8_t* a, const uint8_t* b) { +static int SSE16x8_MSA(const uint8_t* a, const uint8_t* b) { uint32_t sum; v16u8 src0, src1, src2, src3, src4, src5, src6, src7; v16u8 ref0, ref1, ref2, ref3, ref4, ref5, ref6, ref7; @@ -754,7 +758,7 @@ static int SSE16x8(const uint8_t* a, const uint8_t* b) { return sum; } -static int SSE8x8(const uint8_t* a, const uint8_t* b) { +static int SSE8x8_MSA(const uint8_t* a, const uint8_t* b) { uint32_t sum; v16u8 src0, src1, src2, src3, src4, src5, src6, src7; v16u8 ref0, ref1, ref2, ref3, ref4, ref5, ref6, ref7; @@ -774,10 +778,10 @@ static int SSE8x8(const uint8_t* a, const uint8_t* b) { return sum; } -static int SSE4x4(const uint8_t* a, const uint8_t* b) { +static int SSE4x4_MSA(const uint8_t* a, const uint8_t* b) { uint32_t sum = 0; uint32_t src0, src1, src2, src3, ref0, ref1, ref2, ref3; - v16u8 src, ref, tmp0, tmp1; + v16u8 src = { 0 }, ref = { 0 }, tmp0, tmp1; v8i16 diff0, diff1; v4i32 out0, out1; @@ -796,8 +800,8 @@ static int SSE4x4(const uint8_t* a, const uint8_t* b) { //------------------------------------------------------------------------------ // Quantization -static int QuantizeBlock(int16_t in[16], int16_t out[16], - const VP8Matrix* const mtx) { +static int QuantizeBlock_MSA(int16_t in[16], int16_t out[16], + const VP8Matrix* const mtx) { int sum; v8i16 in0, in1, sh0, sh1, out0, out1; v8i16 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, sign0, sign1; @@ -828,7 +832,7 @@ static int QuantizeBlock(int16_t in[16], int16_t out[16], tmp1 = (tmp3 > maxlevel); tmp2 = (v8i16)__msa_bmnz_v((v16u8)tmp2, (v16u8)maxlevel, (v16u8)tmp0); tmp3 = (v8i16)__msa_bmnz_v((v16u8)tmp3, (v16u8)maxlevel, (v16u8)tmp1); - SUB2(0, tmp2, 0, tmp3, tmp0, tmp1); + SUB2(zero, tmp2, zero, tmp3, tmp0, tmp1); tmp2 = (v8i16)__msa_bmnz_v((v16u8)tmp2, (v16u8)tmp0, (v16u8)sign0); tmp3 = (v8i16)__msa_bmnz_v((v16u8)tmp3, (v16u8)tmp1, (v16u8)sign1); LD_SW4(&mtx->zthresh_[0], 4, t0, t1, t2, t3); // zthresh @@ -849,8 +853,8 @@ static int QuantizeBlock(int16_t in[16], int16_t out[16], return (sum > 0); } -static int Quantize2Blocks(int16_t in[32], int16_t out[32], - const VP8Matrix* const mtx) { +static int Quantize2Blocks_MSA(int16_t in[32], int16_t out[32], + const VP8Matrix* const mtx) { int nz; nz = VP8EncQuantizeBlock(in + 0 * 16, out + 0 * 16, mtx) << 0; nz |= VP8EncQuantizeBlock(in + 1 * 16, out + 1 * 16, mtx) << 1; @@ -863,26 +867,26 @@ static int Quantize2Blocks(int16_t in[32], int16_t out[32], extern void VP8EncDspInitMSA(void); WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspInitMSA(void) { - VP8ITransform = ITransform; - VP8FTransform = FTransform; - VP8FTransformWHT = FTransformWHT; - - VP8TDisto4x4 = Disto4x4; - VP8TDisto16x16 = Disto16x16; - VP8CollectHistogram = CollectHistogram; - - VP8EncPredLuma4 = Intra4Preds; - VP8EncPredLuma16 = Intra16Preds; - VP8EncPredChroma8 = IntraChromaPreds; - - VP8SSE16x16 = SSE16x16; - VP8SSE16x8 = SSE16x8; - VP8SSE8x8 = SSE8x8; - VP8SSE4x4 = SSE4x4; - - VP8EncQuantizeBlock = QuantizeBlock; - VP8EncQuantize2Blocks = Quantize2Blocks; - VP8EncQuantizeBlockWHT = QuantizeBlock; + VP8ITransform = ITransform_MSA; + VP8FTransform = FTransform_MSA; + VP8FTransformWHT = FTransformWHT_MSA; + + VP8TDisto4x4 = Disto4x4_MSA; + VP8TDisto16x16 = Disto16x16_MSA; + VP8CollectHistogram = CollectHistogram_MSA; + + VP8EncPredLuma4 = Intra4Preds_MSA; + VP8EncPredLuma16 = Intra16Preds_MSA; + VP8EncPredChroma8 = IntraChromaPreds_MSA; + + VP8SSE16x16 = SSE16x16_MSA; + VP8SSE16x8 = SSE16x8_MSA; + VP8SSE8x8 = SSE8x8_MSA; + VP8SSE4x4 = SSE4x4_MSA; + + VP8EncQuantizeBlock = QuantizeBlock_MSA; + VP8EncQuantize2Blocks = Quantize2Blocks_MSA; + VP8EncQuantizeBlockWHT = QuantizeBlock_MSA; } #else // !WEBP_USE_MSA diff --git a/external/libwebp-0.6.0/src/dsp/enc_neon.c b/external/libwebp-1.0.0/src/dsp/enc_neon.c similarity index 84% rename from external/libwebp-0.6.0/src/dsp/enc_neon.c rename to external/libwebp-1.0.0/src/dsp/enc_neon.c index 6a078d63..43bf1245 100644 --- a/external/libwebp-0.6.0/src/dsp/enc_neon.c +++ b/external/libwebp-1.0.0/src/dsp/enc_neon.c @@ -11,14 +11,14 @@ // // adapted from libvpx (http://www.webmproject.org/code/) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_NEON) #include -#include "./neon.h" -#include "../enc/vp8i_enc.h" +#include "src/dsp/neon.h" +#include "src/enc/vp8i_enc.h" //------------------------------------------------------------------------------ // Transforms (Paragraph 14.4) @@ -37,15 +37,15 @@ static const int16_t kC2 = 17734; // half of kC2, actually. See comment above. #if defined(WEBP_USE_INTRINSICS) // Treats 'v' as an uint8x8_t and zero extends to an int16x8_t. -static WEBP_INLINE int16x8_t ConvertU8ToS16(uint32x2_t v) { +static WEBP_INLINE int16x8_t ConvertU8ToS16_NEON(uint32x2_t v) { return vreinterpretq_s16_u16(vmovl_u8(vreinterpret_u8_u32(v))); } // Performs unsigned 8b saturation on 'dst01' and 'dst23' storing the result // to the corresponding rows of 'dst'. -static WEBP_INLINE void SaturateAndStore4x4(uint8_t* const dst, - const int16x8_t dst01, - const int16x8_t dst23) { +static WEBP_INLINE void SaturateAndStore4x4_NEON(uint8_t* const dst, + const int16x8_t dst01, + const int16x8_t dst23) { // Unsigned saturate to 8b. const uint8x8_t dst01_u8 = vqmovun_s16(dst01); const uint8x8_t dst23_u8 = vqmovun_s16(dst23); @@ -57,8 +57,10 @@ static WEBP_INLINE void SaturateAndStore4x4(uint8_t* const dst, vst1_lane_u32((uint32_t*)(dst + 3 * BPS), vreinterpret_u32_u8(dst23_u8), 1); } -static WEBP_INLINE void Add4x4(const int16x8_t row01, const int16x8_t row23, - const uint8_t* const ref, uint8_t* const dst) { +static WEBP_INLINE void Add4x4_NEON(const int16x8_t row01, + const int16x8_t row23, + const uint8_t* const ref, + uint8_t* const dst) { uint32x2_t dst01 = vdup_n_u32(0); uint32x2_t dst23 = vdup_n_u32(0); @@ -70,19 +72,20 @@ static WEBP_INLINE void Add4x4(const int16x8_t row01, const int16x8_t row23, { // Convert to 16b. - const int16x8_t dst01_s16 = ConvertU8ToS16(dst01); - const int16x8_t dst23_s16 = ConvertU8ToS16(dst23); + const int16x8_t dst01_s16 = ConvertU8ToS16_NEON(dst01); + const int16x8_t dst23_s16 = ConvertU8ToS16_NEON(dst23); // Descale with rounding. const int16x8_t out01 = vrsraq_n_s16(dst01_s16, row01, 3); const int16x8_t out23 = vrsraq_n_s16(dst23_s16, row23, 3); // Add the inverse transform. - SaturateAndStore4x4(dst, out01, out23); + SaturateAndStore4x4_NEON(dst, out01, out23); } } -static WEBP_INLINE void Transpose8x2(const int16x8_t in0, const int16x8_t in1, - int16x8x2_t* const out) { +static WEBP_INLINE void Transpose8x2_NEON(const int16x8_t in0, + const int16x8_t in1, + int16x8x2_t* const out) { // a0 a1 a2 a3 | b0 b1 b2 b3 => a0 b0 c0 d0 | a1 b1 c1 d1 // c0 c1 c2 c3 | d0 d1 d2 d3 a2 b2 c2 d2 | a3 b3 c3 d3 const int16x8x2_t tmp0 = vzipq_s16(in0, in1); // a0 c0 a1 c1 a2 c2 ... @@ -90,7 +93,7 @@ static WEBP_INLINE void Transpose8x2(const int16x8_t in0, const int16x8_t in1, *out = vzipq_s16(tmp0.val[0], tmp0.val[1]); } -static WEBP_INLINE void TransformPass(int16x8x2_t* const rows) { +static WEBP_INLINE void TransformPass_NEON(int16x8x2_t* const rows) { // {rows} = in0 | in4 // in8 | in12 // B1 = in4 | in12 @@ -113,22 +116,22 @@ static WEBP_INLINE void TransformPass(int16x8x2_t* const rows) { const int16x8_t E0 = vqaddq_s16(D0, D1); // a+d | b+c const int16x8_t E_tmp = vqsubq_s16(D0, D1); // a-d | b-c const int16x8_t E1 = vcombine_s16(vget_high_s16(E_tmp), vget_low_s16(E_tmp)); - Transpose8x2(E0, E1, rows); + Transpose8x2_NEON(E0, E1, rows); } -static void ITransformOne(const uint8_t* ref, - const int16_t* in, uint8_t* dst) { +static void ITransformOne_NEON(const uint8_t* ref, + const int16_t* in, uint8_t* dst) { int16x8x2_t rows; INIT_VECTOR2(rows, vld1q_s16(in + 0), vld1q_s16(in + 8)); - TransformPass(&rows); - TransformPass(&rows); - Add4x4(rows.val[0], rows.val[1], ref, dst); + TransformPass_NEON(&rows); + TransformPass_NEON(&rows); + Add4x4_NEON(rows.val[0], rows.val[1], ref, dst); } #else -static void ITransformOne(const uint8_t* ref, - const int16_t* in, uint8_t* dst) { +static void ITransformOne_NEON(const uint8_t* ref, + const int16_t* in, uint8_t* dst) { const int kBPS = BPS; const int16_t kC1C2[] = { kC1, kC2, 0, 0 }; @@ -243,16 +246,16 @@ static void ITransformOne(const uint8_t* ref, #endif // WEBP_USE_INTRINSICS -static void ITransform(const uint8_t* ref, - const int16_t* in, uint8_t* dst, int do_two) { - ITransformOne(ref, in, dst); +static void ITransform_NEON(const uint8_t* ref, + const int16_t* in, uint8_t* dst, int do_two) { + ITransformOne_NEON(ref, in, dst); if (do_two) { - ITransformOne(ref + 4, in + 16, dst + 4); + ITransformOne_NEON(ref + 4, in + 16, dst + 4); } } // Load all 4x4 pixels into a single uint8x16_t variable. -static uint8x16_t Load4x4(const uint8_t* src) { +static uint8x16_t Load4x4_NEON(const uint8_t* src) { uint32x4_t out = vdupq_n_u32(0); out = vld1q_lane_u32((const uint32_t*)(src + 0 * BPS), out, 0); out = vld1q_lane_u32((const uint32_t*)(src + 1 * BPS), out, 1); @@ -265,10 +268,12 @@ static uint8x16_t Load4x4(const uint8_t* src) { #if defined(WEBP_USE_INTRINSICS) -static WEBP_INLINE void Transpose4x4_S16(const int16x4_t A, const int16x4_t B, - const int16x4_t C, const int16x4_t D, - int16x8_t* const out01, - int16x8_t* const out32) { +static WEBP_INLINE void Transpose4x4_S16_NEON(const int16x4_t A, + const int16x4_t B, + const int16x4_t C, + const int16x4_t D, + int16x8_t* const out01, + int16x8_t* const out32) { const int16x4x2_t AB = vtrn_s16(A, B); const int16x4x2_t CD = vtrn_s16(C, D); const int32x2x2_t tmp02 = vtrn_s32(vreinterpret_s32_s16(AB.val[0]), @@ -283,24 +288,24 @@ static WEBP_INLINE void Transpose4x4_S16(const int16x4_t A, const int16x4_t B, vreinterpret_s64_s32(tmp02.val[1]))); } -static WEBP_INLINE int16x8_t DiffU8ToS16(const uint8x8_t a, - const uint8x8_t b) { +static WEBP_INLINE int16x8_t DiffU8ToS16_NEON(const uint8x8_t a, + const uint8x8_t b) { return vreinterpretq_s16_u16(vsubl_u8(a, b)); } -static void FTransform(const uint8_t* src, const uint8_t* ref, - int16_t* out) { +static void FTransform_NEON(const uint8_t* src, const uint8_t* ref, + int16_t* out) { int16x8_t d0d1, d3d2; // working 4x4 int16 variables { - const uint8x16_t S0 = Load4x4(src); - const uint8x16_t R0 = Load4x4(ref); - const int16x8_t D0D1 = DiffU8ToS16(vget_low_u8(S0), vget_low_u8(R0)); - const int16x8_t D2D3 = DiffU8ToS16(vget_high_u8(S0), vget_high_u8(R0)); + const uint8x16_t S0 = Load4x4_NEON(src); + const uint8x16_t R0 = Load4x4_NEON(ref); + const int16x8_t D0D1 = DiffU8ToS16_NEON(vget_low_u8(S0), vget_low_u8(R0)); + const int16x8_t D2D3 = DiffU8ToS16_NEON(vget_high_u8(S0), vget_high_u8(R0)); const int16x4_t D0 = vget_low_s16(D0D1); const int16x4_t D1 = vget_high_s16(D0D1); const int16x4_t D2 = vget_low_s16(D2D3); const int16x4_t D3 = vget_high_s16(D2D3); - Transpose4x4_S16(D0, D1, D2, D3, &d0d1, &d3d2); + Transpose4x4_S16_NEON(D0, D1, D2, D3, &d0d1, &d3d2); } { // 1rst pass const int32x4_t kCst937 = vdupq_n_s32(937); @@ -318,7 +323,7 @@ static void FTransform(const uint8_t* src, const uint8_t* ref, const int32x4_t a3_m_a2 = vmlsl_n_s16(a3_2217, vget_high_s16(a3a2), 5352); const int16x4_t tmp1 = vshrn_n_s32(vaddq_s32(a2_p_a3, kCst1812), 9); const int16x4_t tmp3 = vshrn_n_s32(vaddq_s32(a3_m_a2, kCst937), 9); - Transpose4x4_S16(tmp0, tmp1, tmp2, tmp3, &d0d1, &d3d2); + Transpose4x4_S16_NEON(tmp0, tmp1, tmp2, tmp3, &d0d1, &d3d2); } { // 2nd pass // the (1<<16) addition is for the replacement: a3!=0 <-> 1-(a3==0) @@ -358,8 +363,8 @@ static const int32_t kCoeff32[] = { 51000, 51000, 51000, 51000 }; -static void FTransform(const uint8_t* src, const uint8_t* ref, - int16_t* out) { +static void FTransform_NEON(const uint8_t* src, const uint8_t* ref, + int16_t* out) { const int kBPS = BPS; const uint8_t* src_ptr = src; const uint8_t* ref_ptr = ref; @@ -478,7 +483,7 @@ static void FTransform(const uint8_t* src, const uint8_t* ref, src += stride; \ } while (0) -static void FTransformWHT(const int16_t* src, int16_t* out) { +static void FTransformWHT_NEON(const int16_t* src, int16_t* out) { const int stride = 16; const int16x4_t zero = vdup_n_s16(0); int32x4x4_t tmp0; @@ -516,7 +521,7 @@ static void FTransformWHT(const int16_t* src, int16_t* out) { tmp0.val[3] = vsubq_s32(a0, a1); } { - const int32x4x4_t tmp1 = Transpose4x4(tmp0); + const int32x4x4_t tmp1 = Transpose4x4_NEON(tmp0); // a0 = tmp[0 + i] + tmp[ 8 + i] // a1 = tmp[4 + i] + tmp[12 + i] // a2 = tmp[4 + i] - tmp[12 + i] @@ -560,7 +565,7 @@ static void FTransformWHT(const int16_t* src, int16_t* out) { // a 26ae, b 26ae // a 37bf, b 37bf // -static WEBP_INLINE int16x8x4_t DistoTranspose4x4S16(int16x8x4_t q4_in) { +static WEBP_INLINE int16x8x4_t DistoTranspose4x4S16_NEON(int16x8x4_t q4_in) { const int16x8x2_t q2_tmp0 = vtrnq_s16(q4_in.val[0], q4_in.val[1]); const int16x8x2_t q2_tmp1 = vtrnq_s16(q4_in.val[2], q4_in.val[3]); const int32x4x2_t q2_tmp2 = vtrnq_s32(vreinterpretq_s32_s16(q2_tmp0.val[0]), @@ -574,7 +579,8 @@ static WEBP_INLINE int16x8x4_t DistoTranspose4x4S16(int16x8x4_t q4_in) { return q4_in; } -static WEBP_INLINE int16x8x4_t DistoHorizontalPass(const int16x8x4_t q4_in) { +static WEBP_INLINE int16x8x4_t DistoHorizontalPass_NEON( + const int16x8x4_t q4_in) { // {a0, a1} = {in[0] + in[2], in[1] + in[3]} // {a3, a2} = {in[0] - in[2], in[1] - in[3]} const int16x8_t q_a0 = vaddq_s16(q4_in.val[0], q4_in.val[2]); @@ -593,7 +599,7 @@ static WEBP_INLINE int16x8x4_t DistoHorizontalPass(const int16x8x4_t q4_in) { return q4_out; } -static WEBP_INLINE int16x8x4_t DistoVerticalPass(const uint8x8x4_t q4_in) { +static WEBP_INLINE int16x8x4_t DistoVerticalPass_NEON(const uint8x8x4_t q4_in) { const int16x8_t q_a0 = vreinterpretq_s16_u16(vaddl_u8(q4_in.val[0], q4_in.val[2])); const int16x8_t q_a1 = vreinterpretq_s16_u16(vaddl_u8(q4_in.val[1], @@ -610,7 +616,7 @@ static WEBP_INLINE int16x8x4_t DistoVerticalPass(const uint8x8x4_t q4_in) { return q4_out; } -static WEBP_INLINE int16x4x4_t DistoLoadW(const uint16_t* w) { +static WEBP_INLINE int16x4x4_t DistoLoadW_NEON(const uint16_t* w) { const uint16x8_t q_w07 = vld1q_u16(&w[0]); const uint16x8_t q_w8f = vld1q_u16(&w[8]); int16x4x4_t d4_w; @@ -622,8 +628,8 @@ static WEBP_INLINE int16x4x4_t DistoLoadW(const uint16_t* w) { return d4_w; } -static WEBP_INLINE int32x2_t DistoSum(const int16x8x4_t q4_in, - const int16x4x4_t d4_w) { +static WEBP_INLINE int32x2_t DistoSum_NEON(const int16x8x4_t q4_in, + const int16x4x4_t d4_w) { int32x2_t d_sum; // sum += w[ 0] * abs(b0); // sum += w[ 4] * abs(b1); @@ -652,8 +658,8 @@ static WEBP_INLINE int32x2_t DistoSum(const int16x8x4_t q4_in, // Hadamard transform // Returns the weighted sum of the absolute value of transformed coefficients. // w[] contains a row-major 4 by 4 symmetric matrix. -static int Disto4x4(const uint8_t* const a, const uint8_t* const b, - const uint16_t* const w) { +static int Disto4x4_NEON(const uint8_t* const a, const uint8_t* const b, + const uint16_t* const w) { uint32x2_t d_in_ab_0123 = vdup_n_u32(0); uint32x2_t d_in_ab_4567 = vdup_n_u32(0); uint32x2_t d_in_ab_89ab = vdup_n_u32(0); @@ -679,12 +685,12 @@ static int Disto4x4(const uint8_t* const a, const uint8_t* const b, // Vertical pass first to avoid a transpose (vertical and horizontal passes // are commutative because w/kWeightY is symmetric) and subsequent // transpose. - const int16x8x4_t q4_v = DistoVerticalPass(d4_in); - const int16x4x4_t d4_w = DistoLoadW(w); + const int16x8x4_t q4_v = DistoVerticalPass_NEON(d4_in); + const int16x4x4_t d4_w = DistoLoadW_NEON(w); // horizontal pass - const int16x8x4_t q4_t = DistoTranspose4x4S16(q4_v); - const int16x8x4_t q4_h = DistoHorizontalPass(q4_t); - int32x2_t d_sum = DistoSum(q4_h, d4_w); + const int16x8x4_t q4_t = DistoTranspose4x4S16_NEON(q4_v); + const int16x8x4_t q4_h = DistoHorizontalPass_NEON(q4_t); + int32x2_t d_sum = DistoSum_NEON(q4_h, d4_w); // abs(sum2 - sum1) >> 5 d_sum = vabs_s32(d_sum); @@ -694,13 +700,13 @@ static int Disto4x4(const uint8_t* const a, const uint8_t* const b, } #undef LOAD_LANE_32b -static int Disto16x16(const uint8_t* const a, const uint8_t* const b, - const uint16_t* const w) { +static int Disto16x16_NEON(const uint8_t* const a, const uint8_t* const b, + const uint16_t* const w) { int D = 0; int x, y; for (y = 0; y < 16 * BPS; y += 4 * BPS) { for (x = 0; x < 16; x += 4) { - D += Disto4x4(a + x + y, b + x + y, w); + D += Disto4x4_NEON(a + x + y, b + x + y, w); } } return D; @@ -708,15 +714,15 @@ static int Disto16x16(const uint8_t* const a, const uint8_t* const b, //------------------------------------------------------------------------------ -static void CollectHistogram(const uint8_t* ref, const uint8_t* pred, - int start_block, int end_block, - VP8Histogram* const histo) { +static void CollectHistogram_NEON(const uint8_t* ref, const uint8_t* pred, + int start_block, int end_block, + VP8Histogram* const histo) { const uint16x8_t max_coeff_thresh = vdupq_n_u16(MAX_COEFF_THRESH); int j; int distribution[MAX_COEFF_THRESH + 1] = { 0 }; for (j = start_block; j < end_block; ++j) { int16_t out[16]; - FTransform(ref + VP8DspScan[j], pred + VP8DspScan[j], out); + FTransform_NEON(ref + VP8DspScan[j], pred + VP8DspScan[j], out); { int k; const int16x8_t a0 = vld1q_s16(out + 0); @@ -740,9 +746,9 @@ static void CollectHistogram(const uint8_t* ref, const uint8_t* pred, //------------------------------------------------------------------------------ -static WEBP_INLINE void AccumulateSSE16(const uint8_t* const a, - const uint8_t* const b, - uint32x4_t* const sum) { +static WEBP_INLINE void AccumulateSSE16_NEON(const uint8_t* const a, + const uint8_t* const b, + uint32x4_t* const sum) { const uint8x16_t a0 = vld1q_u8(a); const uint8x16_t b0 = vld1q_u8(b); const uint8x16_t abs_diff = vabdq_u8(a0, b0); @@ -757,7 +763,7 @@ static WEBP_INLINE void AccumulateSSE16(const uint8_t* const a, } // Horizontal sum of all four uint32_t values in 'sum'. -static int SumToInt(uint32x4_t sum) { +static int SumToInt_NEON(uint32x4_t sum) { const uint64x2_t sum2 = vpaddlq_u32(sum); const uint64_t sum3 = vgetq_lane_u64(sum2, 0) + vgetq_lane_u64(sum2, 1); return (int)sum3; @@ -767,18 +773,18 @@ static int SSE16x16_NEON(const uint8_t* a, const uint8_t* b) { uint32x4_t sum = vdupq_n_u32(0); int y; for (y = 0; y < 16; ++y) { - AccumulateSSE16(a + y * BPS, b + y * BPS, &sum); + AccumulateSSE16_NEON(a + y * BPS, b + y * BPS, &sum); } - return SumToInt(sum); + return SumToInt_NEON(sum); } static int SSE16x8_NEON(const uint8_t* a, const uint8_t* b) { uint32x4_t sum = vdupq_n_u32(0); int y; for (y = 0; y < 8; ++y) { - AccumulateSSE16(a + y * BPS, b + y * BPS, &sum); + AccumulateSSE16_NEON(a + y * BPS, b + y * BPS, &sum); } - return SumToInt(sum); + return SumToInt_NEON(sum); } static int SSE8x8_NEON(const uint8_t* a, const uint8_t* b) { @@ -791,12 +797,12 @@ static int SSE8x8_NEON(const uint8_t* a, const uint8_t* b) { const uint16x8_t prod = vmull_u8(abs_diff, abs_diff); sum = vpadalq_u16(sum, prod); } - return SumToInt(sum); + return SumToInt_NEON(sum); } static int SSE4x4_NEON(const uint8_t* a, const uint8_t* b) { - const uint8x16_t a0 = Load4x4(a); - const uint8x16_t b0 = Load4x4(b); + const uint8x16_t a0 = Load4x4_NEON(a); + const uint8x16_t b0 = Load4x4_NEON(b); const uint8x16_t abs_diff = vabdq_u8(a0, b0); const uint16x8_t prod1 = vmull_u8(vget_low_u8(abs_diff), vget_low_u8(abs_diff)); @@ -805,7 +811,7 @@ static int SSE4x4_NEON(const uint8_t* a, const uint8_t* b) { /* pair-wise adds and widen */ const uint32x4_t sum1 = vpaddlq_u16(prod1); const uint32x4_t sum2 = vpaddlq_u16(prod2); - return SumToInt(vaddq_u32(sum1, sum2)); + return SumToInt_NEON(vaddq_u32(sum1, sum2)); } //------------------------------------------------------------------------------ @@ -813,8 +819,8 @@ static int SSE4x4_NEON(const uint8_t* a, const uint8_t* b) { // Compilation with gcc-4.6.x is problematic for now. #if !defined(WORK_AROUND_GCC) -static int16x8_t Quantize(int16_t* const in, - const VP8Matrix* const mtx, int offset) { +static int16x8_t Quantize_NEON(int16_t* const in, + const VP8Matrix* const mtx, int offset) { const uint16x8_t sharp = vld1q_u16(&mtx->sharpen_[offset]); const uint16x8_t q = vld1q_u16(&mtx->q_[offset]); const uint16x8_t iq = vld1q_u16(&mtx->iq_[offset]); @@ -847,10 +853,10 @@ static const uint8_t kShuffles[4][8] = { { 14, 15, 22, 23, 28, 29, 30, 31 } }; -static int QuantizeBlock(int16_t in[16], int16_t out[16], - const VP8Matrix* const mtx) { - const int16x8_t out0 = Quantize(in, mtx, 0); - const int16x8_t out1 = Quantize(in, mtx, 8); +static int QuantizeBlock_NEON(int16_t in[16], int16_t out[16], + const VP8Matrix* const mtx) { + const int16x8_t out0 = Quantize_NEON(in, mtx, 0); + const int16x8_t out1 = Quantize_NEON(in, mtx, 8); uint8x8x4_t shuffles; // vtbl?_u8 are marked unavailable for iOS arm64 with Xcode < 6.3, use // non-standard versions there. @@ -889,11 +895,11 @@ static int QuantizeBlock(int16_t in[16], int16_t out[16], return 0; } -static int Quantize2Blocks(int16_t in[32], int16_t out[32], - const VP8Matrix* const mtx) { +static int Quantize2Blocks_NEON(int16_t in[32], int16_t out[32], + const VP8Matrix* const mtx) { int nz; - nz = QuantizeBlock(in + 0 * 16, out + 0 * 16, mtx) << 0; - nz |= QuantizeBlock(in + 1 * 16, out + 1 * 16, mtx) << 1; + nz = QuantizeBlock_NEON(in + 0 * 16, out + 0 * 16, mtx) << 0; + nz |= QuantizeBlock_NEON(in + 1 * 16, out + 1 * 16, mtx) << 1; return nz; } @@ -905,14 +911,14 @@ static int Quantize2Blocks(int16_t in[32], int16_t out[32], extern void VP8EncDspInitNEON(void); WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspInitNEON(void) { - VP8ITransform = ITransform; - VP8FTransform = FTransform; + VP8ITransform = ITransform_NEON; + VP8FTransform = FTransform_NEON; - VP8FTransformWHT = FTransformWHT; + VP8FTransformWHT = FTransformWHT_NEON; - VP8TDisto4x4 = Disto4x4; - VP8TDisto16x16 = Disto16x16; - VP8CollectHistogram = CollectHistogram; + VP8TDisto4x4 = Disto4x4_NEON; + VP8TDisto16x16 = Disto16x16_NEON; + VP8CollectHistogram = CollectHistogram_NEON; VP8SSE16x16 = SSE16x16_NEON; VP8SSE16x8 = SSE16x8_NEON; @@ -920,8 +926,8 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspInitNEON(void) { VP8SSE4x4 = SSE4x4_NEON; #if !defined(WORK_AROUND_GCC) - VP8EncQuantizeBlock = QuantizeBlock; - VP8EncQuantize2Blocks = Quantize2Blocks; + VP8EncQuantizeBlock = QuantizeBlock_NEON; + VP8EncQuantize2Blocks = Quantize2Blocks_NEON; #endif } diff --git a/external/libwebp-0.6.0/src/dsp/enc_sse2.c b/external/libwebp-1.0.0/src/dsp/enc_sse2.c similarity index 78% rename from external/libwebp-0.6.0/src/dsp/enc_sse2.c rename to external/libwebp-1.0.0/src/dsp/enc_sse2.c index 2026a74c..7b3f142c 100644 --- a/external/libwebp-0.6.0/src/dsp/enc_sse2.c +++ b/external/libwebp-1.0.0/src/dsp/enc_sse2.c @@ -11,23 +11,23 @@ // // Author: Christian Duvivier (cduvivier@google.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_SSE2) #include #include // for abs() #include -#include "./common_sse2.h" -#include "../enc/cost_enc.h" -#include "../enc/vp8i_enc.h" +#include "src/dsp/common_sse2.h" +#include "src/enc/cost_enc.h" +#include "src/enc/vp8i_enc.h" //------------------------------------------------------------------------------ // Transforms (Paragraph 14.4) // Does one or two inverse transforms. -static void ITransform(const uint8_t* ref, const int16_t* in, uint8_t* dst, - int do_two) { +static void ITransform_SSE2(const uint8_t* ref, const int16_t* in, uint8_t* dst, + int do_two) { // This implementation makes use of 16-bit fixed point versions of two // multiply constants: // K1 = sqrt(2) * cos (pi/8) ~= 85627 / 2^16 @@ -193,10 +193,10 @@ static void ITransform(const uint8_t* ref, const int16_t* in, uint8_t* dst, } } -static void FTransformPass1(const __m128i* const in01, - const __m128i* const in23, - __m128i* const out01, - __m128i* const out32) { +static void FTransformPass1_SSE2(const __m128i* const in01, + const __m128i* const in23, + __m128i* const out01, + __m128i* const out32) { const __m128i k937 = _mm_set1_epi32(937); const __m128i k1812 = _mm_set1_epi32(1812); @@ -239,8 +239,9 @@ static void FTransformPass1(const __m128i* const in01, *out32 = _mm_shuffle_epi32(v23, _MM_SHUFFLE(1, 0, 3, 2)); // 3 2 3 2 3 2.. } -static void FTransformPass2(const __m128i* const v01, const __m128i* const v32, - int16_t* out) { +static void FTransformPass2_SSE2(const __m128i* const v01, + const __m128i* const v32, + int16_t* out) { const __m128i zero = _mm_setzero_si128(); const __m128i seven = _mm_set1_epi16(7); const __m128i k5352_2217 = _mm_set_epi16(5352, 2217, 5352, 2217, @@ -291,7 +292,8 @@ static void FTransformPass2(const __m128i* const v01, const __m128i* const v32, _mm_storeu_si128((__m128i*)&out[8], d2_f3); } -static void FTransform(const uint8_t* src, const uint8_t* ref, int16_t* out) { +static void FTransform_SSE2(const uint8_t* src, const uint8_t* ref, + int16_t* out) { const __m128i zero = _mm_setzero_si128(); // Load src. const __m128i src0 = _mm_loadl_epi64((const __m128i*)&src[0 * BPS]); @@ -328,13 +330,14 @@ static void FTransform(const uint8_t* src, const uint8_t* ref, int16_t* out) { __m128i v01, v32; // First pass - FTransformPass1(&row01, &row23, &v01, &v32); + FTransformPass1_SSE2(&row01, &row23, &v01, &v32); // Second pass - FTransformPass2(&v01, &v32, out); + FTransformPass2_SSE2(&v01, &v32, out); } -static void FTransform2(const uint8_t* src, const uint8_t* ref, int16_t* out) { +static void FTransform2_SSE2(const uint8_t* src, const uint8_t* ref, + int16_t* out) { const __m128i zero = _mm_setzero_si128(); // Load src and convert to 16b. @@ -374,15 +377,15 @@ static void FTransform2(const uint8_t* src, const uint8_t* ref, int16_t* out) { __m128i v01h, v32h; // First pass - FTransformPass1(&shuf01l, &shuf23l, &v01l, &v32l); - FTransformPass1(&shuf01h, &shuf23h, &v01h, &v32h); + FTransformPass1_SSE2(&shuf01l, &shuf23l, &v01l, &v32l); + FTransformPass1_SSE2(&shuf01h, &shuf23h, &v01h, &v32h); // Second pass - FTransformPass2(&v01l, &v32l, out + 0); - FTransformPass2(&v01h, &v32h, out + 16); + FTransformPass2_SSE2(&v01l, &v32l, out + 0); + FTransformPass2_SSE2(&v01h, &v32h, out + 16); } -static void FTransformWHTRow(const int16_t* const in, __m128i* const out) { +static void FTransformWHTRow_SSE2(const int16_t* const in, __m128i* const out) { const __m128i kMult = _mm_set_epi16(-1, 1, -1, 1, 1, 1, 1, 1); const __m128i src0 = _mm_loadl_epi64((__m128i*)&in[0 * 16]); const __m128i src1 = _mm_loadl_epi64((__m128i*)&in[1 * 16]); @@ -398,14 +401,14 @@ static void FTransformWHTRow(const int16_t* const in, __m128i* const out) { *out = _mm_madd_epi16(D, kMult); } -static void FTransformWHT(const int16_t* in, int16_t* out) { +static void FTransformWHT_SSE2(const int16_t* in, int16_t* out) { // Input is 12b signed. __m128i row0, row1, row2, row3; // Rows are 14b signed. - FTransformWHTRow(in + 0 * 64, &row0); - FTransformWHTRow(in + 1 * 64, &row1); - FTransformWHTRow(in + 2 * 64, &row2); - FTransformWHTRow(in + 3 * 64, &row3); + FTransformWHTRow_SSE2(in + 0 * 64, &row0); + FTransformWHTRow_SSE2(in + 1 * 64, &row1); + FTransformWHTRow_SSE2(in + 2 * 64, &row2); + FTransformWHTRow_SSE2(in + 3 * 64, &row3); { // The a* are 15b signed. @@ -431,9 +434,9 @@ static void FTransformWHT(const int16_t* in, int16_t* out) { // Compute susceptibility based on DCT-coeff histograms: // the higher, the "easier" the macroblock is to compress. -static void CollectHistogram(const uint8_t* ref, const uint8_t* pred, - int start_block, int end_block, - VP8Histogram* const histo) { +static void CollectHistogram_SSE2(const uint8_t* ref, const uint8_t* pred, + int start_block, int end_block, + VP8Histogram* const histo) { const __m128i zero = _mm_setzero_si128(); const __m128i max_coeff_thresh = _mm_set1_epi16(MAX_COEFF_THRESH); int j; @@ -442,7 +445,7 @@ static void CollectHistogram(const uint8_t* ref, const uint8_t* pred, int16_t out[16]; int k; - FTransform(ref + VP8DspScan[j], pred + VP8DspScan[j], out); + FTransform_SSE2(ref + VP8DspScan[j], pred + VP8DspScan[j], out); // Convert coefficients to bin (within out[]). { @@ -476,7 +479,7 @@ static void CollectHistogram(const uint8_t* ref, const uint8_t* pred, // Intra predictions // helper for chroma-DC predictions -static WEBP_INLINE void Put8x8uv(uint8_t v, uint8_t* dst) { +static WEBP_INLINE void Put8x8uv_SSE2(uint8_t v, uint8_t* dst) { int j; const __m128i values = _mm_set1_epi8(v); for (j = 0; j < 8; ++j) { @@ -484,7 +487,7 @@ static WEBP_INLINE void Put8x8uv(uint8_t v, uint8_t* dst) { } } -static WEBP_INLINE void Put16(uint8_t v, uint8_t* dst) { +static WEBP_INLINE void Put16_SSE2(uint8_t v, uint8_t* dst) { int j; const __m128i values = _mm_set1_epi8(v); for (j = 0; j < 16; ++j) { @@ -492,20 +495,20 @@ static WEBP_INLINE void Put16(uint8_t v, uint8_t* dst) { } } -static WEBP_INLINE void Fill(uint8_t* dst, int value, int size) { +static WEBP_INLINE void Fill_SSE2(uint8_t* dst, int value, int size) { if (size == 4) { int j; for (j = 0; j < 4; ++j) { memset(dst + j * BPS, value, 4); } } else if (size == 8) { - Put8x8uv(value, dst); + Put8x8uv_SSE2(value, dst); } else { - Put16(value, dst); + Put16_SSE2(value, dst); } } -static WEBP_INLINE void VE8uv(uint8_t* dst, const uint8_t* top) { +static WEBP_INLINE void VE8uv_SSE2(uint8_t* dst, const uint8_t* top) { int j; const __m128i top_values = _mm_loadl_epi64((const __m128i*)top); for (j = 0; j < 8; ++j) { @@ -513,7 +516,7 @@ static WEBP_INLINE void VE8uv(uint8_t* dst, const uint8_t* top) { } } -static WEBP_INLINE void VE16(uint8_t* dst, const uint8_t* top) { +static WEBP_INLINE void VE16_SSE2(uint8_t* dst, const uint8_t* top) { const __m128i top_values = _mm_load_si128((const __m128i*)top); int j; for (j = 0; j < 16; ++j) { @@ -521,20 +524,20 @@ static WEBP_INLINE void VE16(uint8_t* dst, const uint8_t* top) { } } -static WEBP_INLINE void VerticalPred(uint8_t* dst, - const uint8_t* top, int size) { +static WEBP_INLINE void VerticalPred_SSE2(uint8_t* dst, + const uint8_t* top, int size) { if (top != NULL) { if (size == 8) { - VE8uv(dst, top); + VE8uv_SSE2(dst, top); } else { - VE16(dst, top); + VE16_SSE2(dst, top); } } else { - Fill(dst, 127, size); + Fill_SSE2(dst, 127, size); } } -static WEBP_INLINE void HE8uv(uint8_t* dst, const uint8_t* left) { +static WEBP_INLINE void HE8uv_SSE2(uint8_t* dst, const uint8_t* left) { int j; for (j = 0; j < 8; ++j) { const __m128i values = _mm_set1_epi8(left[j]); @@ -543,7 +546,7 @@ static WEBP_INLINE void HE8uv(uint8_t* dst, const uint8_t* left) { } } -static WEBP_INLINE void HE16(uint8_t* dst, const uint8_t* left) { +static WEBP_INLINE void HE16_SSE2(uint8_t* dst, const uint8_t* left) { int j; for (j = 0; j < 16; ++j) { const __m128i values = _mm_set1_epi8(left[j]); @@ -552,21 +555,21 @@ static WEBP_INLINE void HE16(uint8_t* dst, const uint8_t* left) { } } -static WEBP_INLINE void HorizontalPred(uint8_t* dst, - const uint8_t* left, int size) { +static WEBP_INLINE void HorizontalPred_SSE2(uint8_t* dst, + const uint8_t* left, int size) { if (left != NULL) { if (size == 8) { - HE8uv(dst, left); + HE8uv_SSE2(dst, left); } else { - HE16(dst, left); + HE16_SSE2(dst, left); } } else { - Fill(dst, 129, size); + Fill_SSE2(dst, 129, size); } } -static WEBP_INLINE void TM(uint8_t* dst, const uint8_t* left, - const uint8_t* top, int size) { +static WEBP_INLINE void TM_SSE2(uint8_t* dst, const uint8_t* left, + const uint8_t* top, int size) { const __m128i zero = _mm_setzero_si128(); int y; if (size == 8) { @@ -593,13 +596,13 @@ static WEBP_INLINE void TM(uint8_t* dst, const uint8_t* left, } } -static WEBP_INLINE void TrueMotion(uint8_t* dst, const uint8_t* left, - const uint8_t* top, int size) { +static WEBP_INLINE void TrueMotion_SSE2(uint8_t* dst, const uint8_t* left, + const uint8_t* top, int size) { if (left != NULL) { if (top != NULL) { - TM(dst, left, top, size); + TM_SSE2(dst, left, top, size); } else { - HorizontalPred(dst, left, size); + HorizontalPred_SSE2(dst, left, size); } } else { // true motion without left samples (hence: with default 129 value) @@ -607,90 +610,90 @@ static WEBP_INLINE void TrueMotion(uint8_t* dst, const uint8_t* left, // Note that if top samples are not available, the default value is // then 129, and not 127 as in the VerticalPred case. if (top != NULL) { - VerticalPred(dst, top, size); + VerticalPred_SSE2(dst, top, size); } else { - Fill(dst, 129, size); + Fill_SSE2(dst, 129, size); } } } -static WEBP_INLINE void DC8uv(uint8_t* dst, const uint8_t* left, - const uint8_t* top) { +static WEBP_INLINE void DC8uv_SSE2(uint8_t* dst, const uint8_t* left, + const uint8_t* top) { const __m128i top_values = _mm_loadl_epi64((const __m128i*)top); const __m128i left_values = _mm_loadl_epi64((const __m128i*)left); const __m128i combined = _mm_unpacklo_epi64(top_values, left_values); const int DC = VP8HorizontalAdd8b(&combined) + 8; - Put8x8uv(DC >> 4, dst); + Put8x8uv_SSE2(DC >> 4, dst); } -static WEBP_INLINE void DC8uvNoLeft(uint8_t* dst, const uint8_t* top) { +static WEBP_INLINE void DC8uvNoLeft_SSE2(uint8_t* dst, const uint8_t* top) { const __m128i zero = _mm_setzero_si128(); const __m128i top_values = _mm_loadl_epi64((const __m128i*)top); const __m128i sum = _mm_sad_epu8(top_values, zero); const int DC = _mm_cvtsi128_si32(sum) + 4; - Put8x8uv(DC >> 3, dst); + Put8x8uv_SSE2(DC >> 3, dst); } -static WEBP_INLINE void DC8uvNoTop(uint8_t* dst, const uint8_t* left) { +static WEBP_INLINE void DC8uvNoTop_SSE2(uint8_t* dst, const uint8_t* left) { // 'left' is contiguous so we can reuse the top summation. - DC8uvNoLeft(dst, left); + DC8uvNoLeft_SSE2(dst, left); } -static WEBP_INLINE void DC8uvNoTopLeft(uint8_t* dst) { - Put8x8uv(0x80, dst); +static WEBP_INLINE void DC8uvNoTopLeft_SSE2(uint8_t* dst) { + Put8x8uv_SSE2(0x80, dst); } -static WEBP_INLINE void DC8uvMode(uint8_t* dst, const uint8_t* left, - const uint8_t* top) { +static WEBP_INLINE void DC8uvMode_SSE2(uint8_t* dst, const uint8_t* left, + const uint8_t* top) { if (top != NULL) { if (left != NULL) { // top and left present - DC8uv(dst, left, top); + DC8uv_SSE2(dst, left, top); } else { // top, but no left - DC8uvNoLeft(dst, top); + DC8uvNoLeft_SSE2(dst, top); } } else if (left != NULL) { // left but no top - DC8uvNoTop(dst, left); + DC8uvNoTop_SSE2(dst, left); } else { // no top, no left, nothing. - DC8uvNoTopLeft(dst); + DC8uvNoTopLeft_SSE2(dst); } } -static WEBP_INLINE void DC16(uint8_t* dst, const uint8_t* left, - const uint8_t* top) { +static WEBP_INLINE void DC16_SSE2(uint8_t* dst, const uint8_t* left, + const uint8_t* top) { const __m128i top_row = _mm_load_si128((const __m128i*)top); const __m128i left_row = _mm_load_si128((const __m128i*)left); const int DC = VP8HorizontalAdd8b(&top_row) + VP8HorizontalAdd8b(&left_row) + 16; - Put16(DC >> 5, dst); + Put16_SSE2(DC >> 5, dst); } -static WEBP_INLINE void DC16NoLeft(uint8_t* dst, const uint8_t* top) { +static WEBP_INLINE void DC16NoLeft_SSE2(uint8_t* dst, const uint8_t* top) { const __m128i top_row = _mm_load_si128((const __m128i*)top); const int DC = VP8HorizontalAdd8b(&top_row) + 8; - Put16(DC >> 4, dst); + Put16_SSE2(DC >> 4, dst); } -static WEBP_INLINE void DC16NoTop(uint8_t* dst, const uint8_t* left) { +static WEBP_INLINE void DC16NoTop_SSE2(uint8_t* dst, const uint8_t* left) { // 'left' is contiguous so we can reuse the top summation. - DC16NoLeft(dst, left); + DC16NoLeft_SSE2(dst, left); } -static WEBP_INLINE void DC16NoTopLeft(uint8_t* dst) { - Put16(0x80, dst); +static WEBP_INLINE void DC16NoTopLeft_SSE2(uint8_t* dst) { + Put16_SSE2(0x80, dst); } -static WEBP_INLINE void DC16Mode(uint8_t* dst, const uint8_t* left, - const uint8_t* top) { +static WEBP_INLINE void DC16Mode_SSE2(uint8_t* dst, const uint8_t* left, + const uint8_t* top) { if (top != NULL) { if (left != NULL) { // top and left present - DC16(dst, left, top); + DC16_SSE2(dst, left, top); } else { // top, but no left - DC16NoLeft(dst, top); + DC16NoLeft_SSE2(dst, top); } } else if (left != NULL) { // left but no top - DC16NoTop(dst, left); + DC16NoTop_SSE2(dst, left); } else { // no top, no left, nothing. - DC16NoTopLeft(dst); + DC16NoTopLeft_SSE2(dst); } } @@ -709,7 +712,8 @@ static WEBP_INLINE void DC16Mode(uint8_t* dst, const uint8_t* left, // where: AC = (a + b + 1) >> 1, BC = (b + c + 1) >> 1 // and ab = a ^ b, bc = b ^ c, lsb = (AC^BC)&1 -static WEBP_INLINE void VE4(uint8_t* dst, const uint8_t* top) { // vertical +static WEBP_INLINE void VE4_SSE2(uint8_t* dst, + const uint8_t* top) { // vertical const __m128i one = _mm_set1_epi8(1); const __m128i ABCDEFGH = _mm_loadl_epi64((__m128i*)(top - 1)); const __m128i BCDEFGH0 = _mm_srli_si128(ABCDEFGH, 1); @@ -725,7 +729,8 @@ static WEBP_INLINE void VE4(uint8_t* dst, const uint8_t* top) { // vertical } } -static WEBP_INLINE void HE4(uint8_t* dst, const uint8_t* top) { // horizontal +static WEBP_INLINE void HE4_SSE2(uint8_t* dst, + const uint8_t* top) { // horizontal const int X = top[-1]; const int I = top[-2]; const int J = top[-3]; @@ -737,14 +742,15 @@ static WEBP_INLINE void HE4(uint8_t* dst, const uint8_t* top) { // horizontal WebPUint32ToMem(dst + 3 * BPS, 0x01010101U * AVG3(K, L, L)); } -static WEBP_INLINE void DC4(uint8_t* dst, const uint8_t* top) { +static WEBP_INLINE void DC4_SSE2(uint8_t* dst, const uint8_t* top) { uint32_t dc = 4; int i; for (i = 0; i < 4; ++i) dc += top[i] + top[-5 + i]; - Fill(dst, dc >> 3, 4); + Fill_SSE2(dst, dc >> 3, 4); } -static WEBP_INLINE void LD4(uint8_t* dst, const uint8_t* top) { // Down-Left +static WEBP_INLINE void LD4_SSE2(uint8_t* dst, + const uint8_t* top) { // Down-Left const __m128i one = _mm_set1_epi8(1); const __m128i ABCDEFGH = _mm_loadl_epi64((const __m128i*)top); const __m128i BCDEFGH0 = _mm_srli_si128(ABCDEFGH, 1); @@ -760,8 +766,8 @@ static WEBP_INLINE void LD4(uint8_t* dst, const uint8_t* top) { // Down-Left WebPUint32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 3))); } -static WEBP_INLINE void VR4(uint8_t* dst, - const uint8_t* top) { // Vertical-Right +static WEBP_INLINE void VR4_SSE2(uint8_t* dst, + const uint8_t* top) { // Vertical-Right const __m128i one = _mm_set1_epi8(1); const int I = top[-2]; const int J = top[-3]; @@ -786,8 +792,8 @@ static WEBP_INLINE void VR4(uint8_t* dst, DST(0, 3) = AVG3(K, J, I); } -static WEBP_INLINE void VL4(uint8_t* dst, - const uint8_t* top) { // Vertical-Left +static WEBP_INLINE void VL4_SSE2(uint8_t* dst, + const uint8_t* top) { // Vertical-Left const __m128i one = _mm_set1_epi8(1); const __m128i ABCDEFGH = _mm_loadl_epi64((const __m128i*)top); const __m128i BCDEFGH_ = _mm_srli_si128(ABCDEFGH, 1); @@ -812,7 +818,8 @@ static WEBP_INLINE void VL4(uint8_t* dst, DST(3, 3) = (extra_out >> 8) & 0xff; } -static WEBP_INLINE void RD4(uint8_t* dst, const uint8_t* top) { // Down-right +static WEBP_INLINE void RD4_SSE2(uint8_t* dst, + const uint8_t* top) { // Down-right const __m128i one = _mm_set1_epi8(1); const __m128i LKJIXABC = _mm_loadl_epi64((const __m128i*)(top - 5)); const __m128i LKJIXABCD = _mm_insert_epi16(LKJIXABC, top[3], 4); @@ -828,7 +835,7 @@ static WEBP_INLINE void RD4(uint8_t* dst, const uint8_t* top) { // Down-right WebPUint32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 3))); } -static WEBP_INLINE void HU4(uint8_t* dst, const uint8_t* top) { +static WEBP_INLINE void HU4_SSE2(uint8_t* dst, const uint8_t* top) { const int I = top[-2]; const int J = top[-3]; const int K = top[-4]; @@ -843,7 +850,7 @@ static WEBP_INLINE void HU4(uint8_t* dst, const uint8_t* top) { DST(0, 3) = DST(1, 3) = DST(2, 3) = DST(3, 3) = L; } -static WEBP_INLINE void HD4(uint8_t* dst, const uint8_t* top) { +static WEBP_INLINE void HD4_SSE2(uint8_t* dst, const uint8_t* top) { const int X = top[-1]; const int I = top[-2]; const int J = top[-3]; @@ -866,7 +873,7 @@ static WEBP_INLINE void HD4(uint8_t* dst, const uint8_t* top) { DST(1, 3) = AVG3(L, K, J); } -static WEBP_INLINE void TM4(uint8_t* dst, const uint8_t* top) { +static WEBP_INLINE void TM4_SSE2(uint8_t* dst, const uint8_t* top) { const __m128i zero = _mm_setzero_si128(); const __m128i top_values = _mm_cvtsi32_si128(WebPMemToUint32(top)); const __m128i top_base = _mm_unpacklo_epi8(top_values, zero); @@ -888,55 +895,56 @@ static WEBP_INLINE void TM4(uint8_t* dst, const uint8_t* top) { // Left samples are top[-5 .. -2], top_left is top[-1], top are // located at top[0..3], and top right is top[4..7] -static void Intra4Preds(uint8_t* dst, const uint8_t* top) { - DC4(I4DC4 + dst, top); - TM4(I4TM4 + dst, top); - VE4(I4VE4 + dst, top); - HE4(I4HE4 + dst, top); - RD4(I4RD4 + dst, top); - VR4(I4VR4 + dst, top); - LD4(I4LD4 + dst, top); - VL4(I4VL4 + dst, top); - HD4(I4HD4 + dst, top); - HU4(I4HU4 + dst, top); +static void Intra4Preds_SSE2(uint8_t* dst, const uint8_t* top) { + DC4_SSE2(I4DC4 + dst, top); + TM4_SSE2(I4TM4 + dst, top); + VE4_SSE2(I4VE4 + dst, top); + HE4_SSE2(I4HE4 + dst, top); + RD4_SSE2(I4RD4 + dst, top); + VR4_SSE2(I4VR4 + dst, top); + LD4_SSE2(I4LD4 + dst, top); + VL4_SSE2(I4VL4 + dst, top); + HD4_SSE2(I4HD4 + dst, top); + HU4_SSE2(I4HU4 + dst, top); } //------------------------------------------------------------------------------ // Chroma 8x8 prediction (paragraph 12.2) -static void IntraChromaPreds(uint8_t* dst, const uint8_t* left, - const uint8_t* top) { +static void IntraChromaPreds_SSE2(uint8_t* dst, const uint8_t* left, + const uint8_t* top) { // U block - DC8uvMode(C8DC8 + dst, left, top); - VerticalPred(C8VE8 + dst, top, 8); - HorizontalPred(C8HE8 + dst, left, 8); - TrueMotion(C8TM8 + dst, left, top, 8); + DC8uvMode_SSE2(C8DC8 + dst, left, top); + VerticalPred_SSE2(C8VE8 + dst, top, 8); + HorizontalPred_SSE2(C8HE8 + dst, left, 8); + TrueMotion_SSE2(C8TM8 + dst, left, top, 8); // V block dst += 8; if (top != NULL) top += 8; if (left != NULL) left += 16; - DC8uvMode(C8DC8 + dst, left, top); - VerticalPred(C8VE8 + dst, top, 8); - HorizontalPred(C8HE8 + dst, left, 8); - TrueMotion(C8TM8 + dst, left, top, 8); + DC8uvMode_SSE2(C8DC8 + dst, left, top); + VerticalPred_SSE2(C8VE8 + dst, top, 8); + HorizontalPred_SSE2(C8HE8 + dst, left, 8); + TrueMotion_SSE2(C8TM8 + dst, left, top, 8); } //------------------------------------------------------------------------------ // luma 16x16 prediction (paragraph 12.3) -static void Intra16Preds(uint8_t* dst, - const uint8_t* left, const uint8_t* top) { - DC16Mode(I16DC16 + dst, left, top); - VerticalPred(I16VE16 + dst, top, 16); - HorizontalPred(I16HE16 + dst, left, 16); - TrueMotion(I16TM16 + dst, left, top, 16); +static void Intra16Preds_SSE2(uint8_t* dst, + const uint8_t* left, const uint8_t* top) { + DC16Mode_SSE2(I16DC16 + dst, left, top); + VerticalPred_SSE2(I16VE16 + dst, top, 16); + HorizontalPred_SSE2(I16HE16 + dst, left, 16); + TrueMotion_SSE2(I16TM16 + dst, left, top, 16); } //------------------------------------------------------------------------------ // Metric -static WEBP_INLINE void SubtractAndAccumulate(const __m128i a, const __m128i b, - __m128i* const sum) { +static WEBP_INLINE void SubtractAndAccumulate_SSE2(const __m128i a, + const __m128i b, + __m128i* const sum) { // take abs(a-b) in 8b const __m128i a_b = _mm_subs_epu8(a, b); const __m128i b_a = _mm_subs_epu8(b, a); @@ -951,8 +959,8 @@ static WEBP_INLINE void SubtractAndAccumulate(const __m128i a, const __m128i b, *sum = _mm_add_epi32(sum1, sum2); } -static WEBP_INLINE int SSE_16xN(const uint8_t* a, const uint8_t* b, - int num_pairs) { +static WEBP_INLINE int SSE_16xN_SSE2(const uint8_t* a, const uint8_t* b, + int num_pairs) { __m128i sum = _mm_setzero_si128(); int32_t tmp[4]; int i; @@ -963,8 +971,8 @@ static WEBP_INLINE int SSE_16xN(const uint8_t* a, const uint8_t* b, const __m128i a1 = _mm_loadu_si128((const __m128i*)&a[BPS * 1]); const __m128i b1 = _mm_loadu_si128((const __m128i*)&b[BPS * 1]); __m128i sum1, sum2; - SubtractAndAccumulate(a0, b0, &sum1); - SubtractAndAccumulate(a1, b1, &sum2); + SubtractAndAccumulate_SSE2(a0, b0, &sum1); + SubtractAndAccumulate_SSE2(a1, b1, &sum2); sum = _mm_add_epi32(sum, _mm_add_epi32(sum1, sum2)); a += 2 * BPS; b += 2 * BPS; @@ -973,18 +981,18 @@ static WEBP_INLINE int SSE_16xN(const uint8_t* a, const uint8_t* b, return (tmp[3] + tmp[2] + tmp[1] + tmp[0]); } -static int SSE16x16(const uint8_t* a, const uint8_t* b) { - return SSE_16xN(a, b, 8); +static int SSE16x16_SSE2(const uint8_t* a, const uint8_t* b) { + return SSE_16xN_SSE2(a, b, 8); } -static int SSE16x8(const uint8_t* a, const uint8_t* b) { - return SSE_16xN(a, b, 4); +static int SSE16x8_SSE2(const uint8_t* a, const uint8_t* b) { + return SSE_16xN_SSE2(a, b, 4); } #define LOAD_8x16b(ptr) \ _mm_unpacklo_epi8(_mm_loadl_epi64((const __m128i*)(ptr)), zero) -static int SSE8x8(const uint8_t* a, const uint8_t* b) { +static int SSE8x8_SSE2(const uint8_t* a, const uint8_t* b) { const __m128i zero = _mm_setzero_si128(); int num_pairs = 4; __m128i sum = zero; @@ -1011,7 +1019,7 @@ static int SSE8x8(const uint8_t* a, const uint8_t* b) { } #undef LOAD_8x16b -static int SSE4x4(const uint8_t* a, const uint8_t* b) { +static int SSE4x4_SSE2(const uint8_t* a, const uint8_t* b) { const __m128i zero = _mm_setzero_si128(); // Load values. Note that we read 8 pixels instead of 4, @@ -1048,7 +1056,7 @@ static int SSE4x4(const uint8_t* a, const uint8_t* b) { //------------------------------------------------------------------------------ -static void Mean16x4(const uint8_t* ref, uint32_t dc[4]) { +static void Mean16x4_SSE2(const uint8_t* ref, uint32_t dc[4]) { const __m128i mask = _mm_set1_epi16(0x00ff); const __m128i a0 = _mm_loadu_si128((const __m128i*)&ref[BPS * 0]); const __m128i a1 = _mm_loadu_si128((const __m128i*)&ref[BPS * 1]); @@ -1086,8 +1094,8 @@ static void Mean16x4(const uint8_t* ref, uint32_t dc[4]) { // Hadamard transform // Returns the weighted sum of the absolute value of transformed coefficients. // w[] contains a row-major 4 by 4 symmetric matrix. -static int TTransform(const uint8_t* inA, const uint8_t* inB, - const uint16_t* const w) { +static int TTransform_SSE2(const uint8_t* inA, const uint8_t* inB, + const uint16_t* const w) { int32_t sum[4]; __m128i tmp_0, tmp_1, tmp_2, tmp_3; const __m128i zero = _mm_setzero_si128(); @@ -1187,19 +1195,19 @@ static int TTransform(const uint8_t* inA, const uint8_t* inB, return sum[0] + sum[1] + sum[2] + sum[3]; } -static int Disto4x4(const uint8_t* const a, const uint8_t* const b, - const uint16_t* const w) { - const int diff_sum = TTransform(a, b, w); +static int Disto4x4_SSE2(const uint8_t* const a, const uint8_t* const b, + const uint16_t* const w) { + const int diff_sum = TTransform_SSE2(a, b, w); return abs(diff_sum) >> 5; } -static int Disto16x16(const uint8_t* const a, const uint8_t* const b, - const uint16_t* const w) { +static int Disto16x16_SSE2(const uint8_t* const a, const uint8_t* const b, + const uint16_t* const w) { int D = 0; int x, y; for (y = 0; y < 16 * BPS; y += 4 * BPS) { for (x = 0; x < 16; x += 4) { - D += Disto4x4(a + x + y, b + x + y, w); + D += Disto4x4_SSE2(a + x + y, b + x + y, w); } } return D; @@ -1209,9 +1217,9 @@ static int Disto16x16(const uint8_t* const a, const uint8_t* const b, // Quantization // -static WEBP_INLINE int DoQuantizeBlock(int16_t in[16], int16_t out[16], - const uint16_t* const sharpen, - const VP8Matrix* const mtx) { +static WEBP_INLINE int DoQuantizeBlock_SSE2(int16_t in[16], int16_t out[16], + const uint16_t* const sharpen, + const VP8Matrix* const mtx) { const __m128i max_coeff_2047 = _mm_set1_epi16(MAX_LEVEL); const __m128i zero = _mm_setzero_si128(); __m128i coeff0, coeff8; @@ -1321,22 +1329,22 @@ static WEBP_INLINE int DoQuantizeBlock(int16_t in[16], int16_t out[16], return (_mm_movemask_epi8(_mm_cmpeq_epi8(packed_out, zero)) != 0xffff); } -static int QuantizeBlock(int16_t in[16], int16_t out[16], - const VP8Matrix* const mtx) { - return DoQuantizeBlock(in, out, &mtx->sharpen_[0], mtx); +static int QuantizeBlock_SSE2(int16_t in[16], int16_t out[16], + const VP8Matrix* const mtx) { + return DoQuantizeBlock_SSE2(in, out, &mtx->sharpen_[0], mtx); } -static int QuantizeBlockWHT(int16_t in[16], int16_t out[16], - const VP8Matrix* const mtx) { - return DoQuantizeBlock(in, out, NULL, mtx); +static int QuantizeBlockWHT_SSE2(int16_t in[16], int16_t out[16], + const VP8Matrix* const mtx) { + return DoQuantizeBlock_SSE2(in, out, NULL, mtx); } -static int Quantize2Blocks(int16_t in[32], int16_t out[32], - const VP8Matrix* const mtx) { +static int Quantize2Blocks_SSE2(int16_t in[32], int16_t out[32], + const VP8Matrix* const mtx) { int nz; const uint16_t* const sharpen = &mtx->sharpen_[0]; - nz = DoQuantizeBlock(in + 0 * 16, out + 0 * 16, sharpen, mtx) << 0; - nz |= DoQuantizeBlock(in + 1 * 16, out + 1 * 16, sharpen, mtx) << 1; + nz = DoQuantizeBlock_SSE2(in + 0 * 16, out + 0 * 16, sharpen, mtx) << 0; + nz |= DoQuantizeBlock_SSE2(in + 1 * 16, out + 1 * 16, sharpen, mtx) << 1; return nz; } @@ -1346,139 +1354,28 @@ static int Quantize2Blocks(int16_t in[32], int16_t out[32], extern void VP8EncDspInitSSE2(void); WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspInitSSE2(void) { - VP8CollectHistogram = CollectHistogram; - VP8EncPredLuma16 = Intra16Preds; - VP8EncPredChroma8 = IntraChromaPreds; - VP8EncPredLuma4 = Intra4Preds; - VP8EncQuantizeBlock = QuantizeBlock; - VP8EncQuantize2Blocks = Quantize2Blocks; - VP8EncQuantizeBlockWHT = QuantizeBlockWHT; - VP8ITransform = ITransform; - VP8FTransform = FTransform; - VP8FTransform2 = FTransform2; - VP8FTransformWHT = FTransformWHT; - VP8SSE16x16 = SSE16x16; - VP8SSE16x8 = SSE16x8; - VP8SSE8x8 = SSE8x8; - VP8SSE4x4 = SSE4x4; - VP8TDisto4x4 = Disto4x4; - VP8TDisto16x16 = Disto16x16; - VP8Mean16x4 = Mean16x4; -} - -//------------------------------------------------------------------------------ -// SSIM / PSNR entry point (TODO(skal): move to its own file later) - -static uint32_t AccumulateSSE_SSE2(const uint8_t* src1, - const uint8_t* src2, int len) { - int i = 0; - uint32_t sse2 = 0; - if (len >= 16) { - const int limit = len - 32; - int32_t tmp[4]; - __m128i sum1; - __m128i sum = _mm_setzero_si128(); - __m128i a0 = _mm_loadu_si128((const __m128i*)&src1[i]); - __m128i b0 = _mm_loadu_si128((const __m128i*)&src2[i]); - i += 16; - while (i <= limit) { - const __m128i a1 = _mm_loadu_si128((const __m128i*)&src1[i]); - const __m128i b1 = _mm_loadu_si128((const __m128i*)&src2[i]); - __m128i sum2; - i += 16; - SubtractAndAccumulate(a0, b0, &sum1); - sum = _mm_add_epi32(sum, sum1); - a0 = _mm_loadu_si128((const __m128i*)&src1[i]); - b0 = _mm_loadu_si128((const __m128i*)&src2[i]); - i += 16; - SubtractAndAccumulate(a1, b1, &sum2); - sum = _mm_add_epi32(sum, sum2); - } - SubtractAndAccumulate(a0, b0, &sum1); - sum = _mm_add_epi32(sum, sum1); - _mm_storeu_si128((__m128i*)tmp, sum); - sse2 += (tmp[3] + tmp[2] + tmp[1] + tmp[0]); - } - - for (; i < len; ++i) { - const int32_t diff = src1[i] - src2[i]; - sse2 += diff * diff; - } - return sse2; -} - -static uint32_t HorizontalAdd16b(const __m128i* const m) { - uint16_t tmp[8]; - const __m128i a = _mm_srli_si128(*m, 8); - const __m128i b = _mm_add_epi16(*m, a); - _mm_storeu_si128((__m128i*)tmp, b); - return (uint32_t)tmp[3] + tmp[2] + tmp[1] + tmp[0]; -} - -static uint32_t HorizontalAdd32b(const __m128i* const m) { - const __m128i a = _mm_srli_si128(*m, 8); - const __m128i b = _mm_add_epi32(*m, a); - const __m128i c = _mm_add_epi32(b, _mm_srli_si128(b, 4)); - return (uint32_t)_mm_cvtsi128_si32(c); -} - -static const uint16_t kWeight[] = { 1, 2, 3, 4, 3, 2, 1, 0 }; - -#define ACCUMULATE_ROW(WEIGHT) do { \ - /* compute row weight (Wx * Wy) */ \ - const __m128i Wy = _mm_set1_epi16((WEIGHT)); \ - const __m128i W = _mm_mullo_epi16(Wx, Wy); \ - /* process 8 bytes at a time (7 bytes, actually) */ \ - const __m128i a0 = _mm_loadl_epi64((const __m128i*)src1); \ - const __m128i b0 = _mm_loadl_epi64((const __m128i*)src2); \ - /* convert to 16b and multiply by weight */ \ - const __m128i a1 = _mm_unpacklo_epi8(a0, zero); \ - const __m128i b1 = _mm_unpacklo_epi8(b0, zero); \ - const __m128i wa1 = _mm_mullo_epi16(a1, W); \ - const __m128i wb1 = _mm_mullo_epi16(b1, W); \ - /* accumulate */ \ - xm = _mm_add_epi16(xm, wa1); \ - ym = _mm_add_epi16(ym, wb1); \ - xxm = _mm_add_epi32(xxm, _mm_madd_epi16(a1, wa1)); \ - xym = _mm_add_epi32(xym, _mm_madd_epi16(a1, wb1)); \ - yym = _mm_add_epi32(yym, _mm_madd_epi16(b1, wb1)); \ - src1 += stride1; \ - src2 += stride2; \ -} while (0) - -static double SSIMGet_SSE2(const uint8_t* src1, int stride1, - const uint8_t* src2, int stride2) { - VP8DistoStats stats; - const __m128i zero = _mm_setzero_si128(); - __m128i xm = zero, ym = zero; // 16b accums - __m128i xxm = zero, yym = zero, xym = zero; // 32b accum - const __m128i Wx = _mm_loadu_si128((const __m128i*)kWeight); - assert(2 * VP8_SSIM_KERNEL + 1 == 7); - ACCUMULATE_ROW(1); - ACCUMULATE_ROW(2); - ACCUMULATE_ROW(3); - ACCUMULATE_ROW(4); - ACCUMULATE_ROW(3); - ACCUMULATE_ROW(2); - ACCUMULATE_ROW(1); - stats.xm = HorizontalAdd16b(&xm); - stats.ym = HorizontalAdd16b(&ym); - stats.xxm = HorizontalAdd32b(&xxm); - stats.xym = HorizontalAdd32b(&xym); - stats.yym = HorizontalAdd32b(&yym); - return VP8SSIMFromStats(&stats); -} - -extern void VP8SSIMDspInitSSE2(void); - -WEBP_TSAN_IGNORE_FUNCTION void VP8SSIMDspInitSSE2(void) { - VP8AccumulateSSE = AccumulateSSE_SSE2; - VP8SSIMGet = SSIMGet_SSE2; + VP8CollectHistogram = CollectHistogram_SSE2; + VP8EncPredLuma16 = Intra16Preds_SSE2; + VP8EncPredChroma8 = IntraChromaPreds_SSE2; + VP8EncPredLuma4 = Intra4Preds_SSE2; + VP8EncQuantizeBlock = QuantizeBlock_SSE2; + VP8EncQuantize2Blocks = Quantize2Blocks_SSE2; + VP8EncQuantizeBlockWHT = QuantizeBlockWHT_SSE2; + VP8ITransform = ITransform_SSE2; + VP8FTransform = FTransform_SSE2; + VP8FTransform2 = FTransform2_SSE2; + VP8FTransformWHT = FTransformWHT_SSE2; + VP8SSE16x16 = SSE16x16_SSE2; + VP8SSE16x8 = SSE16x8_SSE2; + VP8SSE8x8 = SSE8x8_SSE2; + VP8SSE4x4 = SSE4x4_SSE2; + VP8TDisto4x4 = Disto4x4_SSE2; + VP8TDisto16x16 = Disto16x16_SSE2; + VP8Mean16x4 = Mean16x4_SSE2; } #else // !WEBP_USE_SSE2 WEBP_DSP_INIT_STUB(VP8EncDspInitSSE2) -WEBP_DSP_INIT_STUB(VP8SSIMDspInitSSE2) #endif // WEBP_USE_SSE2 diff --git a/external/libwebp-0.6.0/src/dsp/enc_sse41.c b/external/libwebp-1.0.0/src/dsp/enc_sse41.c similarity index 85% rename from external/libwebp-0.6.0/src/dsp/enc_sse41.c rename to external/libwebp-1.0.0/src/dsp/enc_sse41.c index e32086d9..924035a6 100644 --- a/external/libwebp-0.6.0/src/dsp/enc_sse41.c +++ b/external/libwebp-1.0.0/src/dsp/enc_sse41.c @@ -11,21 +11,21 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_SSE41) #include #include // for abs() -#include "./common_sse2.h" -#include "../enc/vp8i_enc.h" +#include "src/dsp/common_sse2.h" +#include "src/enc/vp8i_enc.h" //------------------------------------------------------------------------------ // Compute susceptibility based on DCT-coeff histograms. -static void CollectHistogram(const uint8_t* ref, const uint8_t* pred, - int start_block, int end_block, - VP8Histogram* const histo) { +static void CollectHistogram_SSE41(const uint8_t* ref, const uint8_t* pred, + int start_block, int end_block, + VP8Histogram* const histo) { const __m128i max_coeff_thresh = _mm_set1_epi16(MAX_COEFF_THRESH); int j; int distribution[MAX_COEFF_THRESH + 1] = { 0 }; @@ -70,8 +70,8 @@ static void CollectHistogram(const uint8_t* ref, const uint8_t* pred, // Hadamard transform // Returns the weighted sum of the absolute value of transformed coefficients. // w[] contains a row-major 4 by 4 symmetric matrix. -static int TTransform(const uint8_t* inA, const uint8_t* inB, - const uint16_t* const w) { +static int TTransform_SSE41(const uint8_t* inA, const uint8_t* inB, + const uint16_t* const w) { int32_t sum[4]; __m128i tmp_0, tmp_1, tmp_2, tmp_3; @@ -168,19 +168,19 @@ static int TTransform(const uint8_t* inA, const uint8_t* inB, return sum[0] + sum[1] + sum[2] + sum[3]; } -static int Disto4x4(const uint8_t* const a, const uint8_t* const b, - const uint16_t* const w) { - const int diff_sum = TTransform(a, b, w); +static int Disto4x4_SSE41(const uint8_t* const a, const uint8_t* const b, + const uint16_t* const w) { + const int diff_sum = TTransform_SSE41(a, b, w); return abs(diff_sum) >> 5; } -static int Disto16x16(const uint8_t* const a, const uint8_t* const b, - const uint16_t* const w) { +static int Disto16x16_SSE41(const uint8_t* const a, const uint8_t* const b, + const uint16_t* const w) { int D = 0; int x, y; for (y = 0; y < 16 * BPS; y += 4 * BPS) { for (x = 0; x < 16; x += 4) { - D += Disto4x4(a + x + y, b + x + y, w); + D += Disto4x4_SSE41(a + x + y, b + x + y, w); } } return D; @@ -197,9 +197,9 @@ static int Disto16x16(const uint8_t* const a, const uint8_t* const b, 2 * (D) + 1, 2 * (D) + 0, 2 * (C) + 1, 2 * (C) + 0, \ 2 * (B) + 1, 2 * (B) + 0, 2 * (A) + 1, 2 * (A) + 0) -static WEBP_INLINE int DoQuantizeBlock(int16_t in[16], int16_t out[16], - const uint16_t* const sharpen, - const VP8Matrix* const mtx) { +static WEBP_INLINE int DoQuantizeBlock_SSE41(int16_t in[16], int16_t out[16], + const uint16_t* const sharpen, + const VP8Matrix* const mtx) { const __m128i max_coeff_2047 = _mm_set1_epi16(MAX_LEVEL); const __m128i zero = _mm_setzero_si128(); __m128i out0, out8; @@ -300,22 +300,22 @@ static WEBP_INLINE int DoQuantizeBlock(int16_t in[16], int16_t out[16], #undef PSHUFB_CST -static int QuantizeBlock(int16_t in[16], int16_t out[16], - const VP8Matrix* const mtx) { - return DoQuantizeBlock(in, out, &mtx->sharpen_[0], mtx); +static int QuantizeBlock_SSE41(int16_t in[16], int16_t out[16], + const VP8Matrix* const mtx) { + return DoQuantizeBlock_SSE41(in, out, &mtx->sharpen_[0], mtx); } -static int QuantizeBlockWHT(int16_t in[16], int16_t out[16], - const VP8Matrix* const mtx) { - return DoQuantizeBlock(in, out, NULL, mtx); +static int QuantizeBlockWHT_SSE41(int16_t in[16], int16_t out[16], + const VP8Matrix* const mtx) { + return DoQuantizeBlock_SSE41(in, out, NULL, mtx); } -static int Quantize2Blocks(int16_t in[32], int16_t out[32], - const VP8Matrix* const mtx) { +static int Quantize2Blocks_SSE41(int16_t in[32], int16_t out[32], + const VP8Matrix* const mtx) { int nz; const uint16_t* const sharpen = &mtx->sharpen_[0]; - nz = DoQuantizeBlock(in + 0 * 16, out + 0 * 16, sharpen, mtx) << 0; - nz |= DoQuantizeBlock(in + 1 * 16, out + 1 * 16, sharpen, mtx) << 1; + nz = DoQuantizeBlock_SSE41(in + 0 * 16, out + 0 * 16, sharpen, mtx) << 0; + nz |= DoQuantizeBlock_SSE41(in + 1 * 16, out + 1 * 16, sharpen, mtx) << 1; return nz; } @@ -324,12 +324,12 @@ static int Quantize2Blocks(int16_t in[32], int16_t out[32], extern void VP8EncDspInitSSE41(void); WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspInitSSE41(void) { - VP8CollectHistogram = CollectHistogram; - VP8EncQuantizeBlock = QuantizeBlock; - VP8EncQuantize2Blocks = Quantize2Blocks; - VP8EncQuantizeBlockWHT = QuantizeBlockWHT; - VP8TDisto4x4 = Disto4x4; - VP8TDisto16x16 = Disto16x16; + VP8CollectHistogram = CollectHistogram_SSE41; + VP8EncQuantizeBlock = QuantizeBlock_SSE41; + VP8EncQuantize2Blocks = Quantize2Blocks_SSE41; + VP8EncQuantizeBlockWHT = QuantizeBlockWHT_SSE41; + VP8TDisto4x4 = Disto4x4_SSE41; + VP8TDisto16x16 = Disto16x16_SSE41; } #else // !WEBP_USE_SSE41 diff --git a/external/libwebp-0.6.0/src/dsp/filters.c b/external/libwebp-1.0.0/src/dsp/filters.c similarity index 58% rename from external/libwebp-0.6.0/src/dsp/filters.c rename to external/libwebp-1.0.0/src/dsp/filters.c index 65f34aad..069a22ea 100644 --- a/external/libwebp-0.6.0/src/dsp/filters.c +++ b/external/libwebp-1.0.0/src/dsp/filters.c @@ -11,7 +11,7 @@ // // Author: Urvang (urvang@google.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #include #include #include @@ -20,16 +20,17 @@ // Helpful macro. # define SANITY_CHECK(in, out) \ - assert(in != NULL); \ - assert(out != NULL); \ + assert((in) != NULL); \ + assert((out) != NULL); \ assert(width > 0); \ assert(height > 0); \ assert(stride >= width); \ assert(row >= 0 && num_rows > 0 && row + num_rows <= height); \ (void)height; // Silence unused warning. -static WEBP_INLINE void PredictLine(const uint8_t* src, const uint8_t* pred, - uint8_t* dst, int length, int inverse) { +#if !WEBP_NEON_OMIT_C_CODE +static WEBP_INLINE void PredictLine_C(const uint8_t* src, const uint8_t* pred, + uint8_t* dst, int length, int inverse) { int i; if (inverse) { for (i = 0; i < length; ++i) dst[i] = src[i] + pred[i]; @@ -41,10 +42,10 @@ static WEBP_INLINE void PredictLine(const uint8_t* src, const uint8_t* pred, //------------------------------------------------------------------------------ // Horizontal filter. -static WEBP_INLINE void DoHorizontalFilter(const uint8_t* in, - int width, int height, int stride, - int row, int num_rows, - int inverse, uint8_t* out) { +static WEBP_INLINE void DoHorizontalFilter_C(const uint8_t* in, + int width, int height, int stride, + int row, int num_rows, + int inverse, uint8_t* out) { const uint8_t* preds; const size_t start_offset = row * stride; const int last_row = row + num_rows; @@ -56,7 +57,7 @@ static WEBP_INLINE void DoHorizontalFilter(const uint8_t* in, if (row == 0) { // Leftmost pixel is the same as input for topmost scanline. out[0] = in[0]; - PredictLine(in + 1, preds, out + 1, width - 1, inverse); + PredictLine_C(in + 1, preds, out + 1, width - 1, inverse); row = 1; preds += stride; in += stride; @@ -66,8 +67,8 @@ static WEBP_INLINE void DoHorizontalFilter(const uint8_t* in, // Filter line-by-line. while (row < last_row) { // Leftmost pixel is predicted from above. - PredictLine(in, preds - stride, out, 1, inverse); - PredictLine(in + 1, preds, out + 1, width - 1, inverse); + PredictLine_C(in, preds - stride, out, 1, inverse); + PredictLine_C(in + 1, preds, out + 1, width - 1, inverse); ++row; preds += stride; in += stride; @@ -78,10 +79,10 @@ static WEBP_INLINE void DoHorizontalFilter(const uint8_t* in, //------------------------------------------------------------------------------ // Vertical filter. -static WEBP_INLINE void DoVerticalFilter(const uint8_t* in, - int width, int height, int stride, - int row, int num_rows, - int inverse, uint8_t* out) { +static WEBP_INLINE void DoVerticalFilter_C(const uint8_t* in, + int width, int height, int stride, + int row, int num_rows, + int inverse, uint8_t* out) { const uint8_t* preds; const size_t start_offset = row * stride; const int last_row = row + num_rows; @@ -94,7 +95,7 @@ static WEBP_INLINE void DoVerticalFilter(const uint8_t* in, // Very first top-left pixel is copied. out[0] = in[0]; // Rest of top scan-line is left-predicted. - PredictLine(in + 1, preds, out + 1, width - 1, inverse); + PredictLine_C(in + 1, preds, out + 1, width - 1, inverse); row = 1; in += stride; out += stride; @@ -105,26 +106,28 @@ static WEBP_INLINE void DoVerticalFilter(const uint8_t* in, // Filter line-by-line. while (row < last_row) { - PredictLine(in, preds, out, width, inverse); + PredictLine_C(in, preds, out, width, inverse); ++row; preds += stride; in += stride; out += stride; } } +#endif // !WEBP_NEON_OMIT_C_CODE //------------------------------------------------------------------------------ // Gradient filter. -static WEBP_INLINE int GradientPredictor(uint8_t a, uint8_t b, uint8_t c) { +static WEBP_INLINE int GradientPredictor_C(uint8_t a, uint8_t b, uint8_t c) { const int g = a + b - c; return ((g & ~0xff) == 0) ? g : (g < 0) ? 0 : 255; // clip to 8bit } -static WEBP_INLINE void DoGradientFilter(const uint8_t* in, - int width, int height, int stride, - int row, int num_rows, - int inverse, uint8_t* out) { +#if !WEBP_NEON_OMIT_C_CODE +static WEBP_INLINE void DoGradientFilter_C(const uint8_t* in, + int width, int height, int stride, + int row, int num_rows, + int inverse, uint8_t* out) { const uint8_t* preds; const size_t start_offset = row * stride; const int last_row = row + num_rows; @@ -136,7 +139,7 @@ static WEBP_INLINE void DoGradientFilter(const uint8_t* in, // left prediction for top scan-line if (row == 0) { out[0] = in[0]; - PredictLine(in + 1, preds, out + 1, width - 1, inverse); + PredictLine_C(in + 1, preds, out + 1, width - 1, inverse); row = 1; preds += stride; in += stride; @@ -147,11 +150,11 @@ static WEBP_INLINE void DoGradientFilter(const uint8_t* in, while (row < last_row) { int w; // leftmost pixel: predict from above. - PredictLine(in, preds - stride, out, 1, inverse); + PredictLine_C(in, preds - stride, out, 1, inverse); for (w = 1; w < width; ++w) { - const int pred = GradientPredictor(preds[w - 1], - preds[w - stride], - preds[w - stride - 1]); + const int pred = GradientPredictor_C(preds[w - 1], + preds[w - stride], + preds[w - stride - 1]); out[w] = in[w] + (inverse ? pred : -pred); } ++row; @@ -160,32 +163,34 @@ static WEBP_INLINE void DoGradientFilter(const uint8_t* in, out += stride; } } +#endif // !WEBP_NEON_OMIT_C_CODE #undef SANITY_CHECK //------------------------------------------------------------------------------ -static void HorizontalFilter(const uint8_t* data, int width, int height, - int stride, uint8_t* filtered_data) { - DoHorizontalFilter(data, width, height, stride, 0, height, 0, filtered_data); +#if !WEBP_NEON_OMIT_C_CODE +static void HorizontalFilter_C(const uint8_t* data, int width, int height, + int stride, uint8_t* filtered_data) { + DoHorizontalFilter_C(data, width, height, stride, 0, height, 0, + filtered_data); } -static void VerticalFilter(const uint8_t* data, int width, int height, - int stride, uint8_t* filtered_data) { - DoVerticalFilter(data, width, height, stride, 0, height, 0, filtered_data); +static void VerticalFilter_C(const uint8_t* data, int width, int height, + int stride, uint8_t* filtered_data) { + DoVerticalFilter_C(data, width, height, stride, 0, height, 0, filtered_data); } - -static void GradientFilter(const uint8_t* data, int width, int height, - int stride, uint8_t* filtered_data) { - DoGradientFilter(data, width, height, stride, 0, height, 0, filtered_data); +static void GradientFilter_C(const uint8_t* data, int width, int height, + int stride, uint8_t* filtered_data) { + DoGradientFilter_C(data, width, height, stride, 0, height, 0, filtered_data); } - +#endif // !WEBP_NEON_OMIT_C_CODE //------------------------------------------------------------------------------ -static void HorizontalUnfilter(const uint8_t* prev, const uint8_t* in, - uint8_t* out, int width) { +static void HorizontalUnfilter_C(const uint8_t* prev, const uint8_t* in, + uint8_t* out, int width) { uint8_t pred = (prev == NULL) ? 0 : prev[0]; int i; for (i = 0; i < width; ++i) { @@ -194,26 +199,28 @@ static void HorizontalUnfilter(const uint8_t* prev, const uint8_t* in, } } -static void VerticalUnfilter(const uint8_t* prev, const uint8_t* in, - uint8_t* out, int width) { +#if !WEBP_NEON_OMIT_C_CODE +static void VerticalUnfilter_C(const uint8_t* prev, const uint8_t* in, + uint8_t* out, int width) { if (prev == NULL) { - HorizontalUnfilter(NULL, in, out, width); + HorizontalUnfilter_C(NULL, in, out, width); } else { int i; for (i = 0; i < width; ++i) out[i] = prev[i] + in[i]; } } +#endif // !WEBP_NEON_OMIT_C_CODE -static void GradientUnfilter(const uint8_t* prev, const uint8_t* in, - uint8_t* out, int width) { +static void GradientUnfilter_C(const uint8_t* prev, const uint8_t* in, + uint8_t* out, int width) { if (prev == NULL) { - HorizontalUnfilter(NULL, in, out, width); + HorizontalUnfilter_C(NULL, in, out, width); } else { uint8_t top = prev[0], top_left = top, left = top; int i; for (i = 0; i < width; ++i) { top = prev[i]; // need to read this first, in case prev==out - left = in[i] + GradientPredictor(left, top, top_left); + left = in[i] + GradientPredictor_C(left, top, top_left); top_left = top; out[i] = left; } @@ -231,21 +238,20 @@ extern void VP8FiltersInitMSA(void); extern void VP8FiltersInitNEON(void); extern void VP8FiltersInitSSE2(void); -static volatile VP8CPUInfo filters_last_cpuinfo_used = - (VP8CPUInfo)&filters_last_cpuinfo_used; - -WEBP_TSAN_IGNORE_FUNCTION void VP8FiltersInit(void) { - if (filters_last_cpuinfo_used == VP8GetCPUInfo) return; - +WEBP_DSP_INIT_FUNC(VP8FiltersInit) { WebPUnfilters[WEBP_FILTER_NONE] = NULL; - WebPUnfilters[WEBP_FILTER_HORIZONTAL] = HorizontalUnfilter; - WebPUnfilters[WEBP_FILTER_VERTICAL] = VerticalUnfilter; - WebPUnfilters[WEBP_FILTER_GRADIENT] = GradientUnfilter; +#if !WEBP_NEON_OMIT_C_CODE + WebPUnfilters[WEBP_FILTER_HORIZONTAL] = HorizontalUnfilter_C; + WebPUnfilters[WEBP_FILTER_VERTICAL] = VerticalUnfilter_C; +#endif + WebPUnfilters[WEBP_FILTER_GRADIENT] = GradientUnfilter_C; WebPFilters[WEBP_FILTER_NONE] = NULL; - WebPFilters[WEBP_FILTER_HORIZONTAL] = HorizontalFilter; - WebPFilters[WEBP_FILTER_VERTICAL] = VerticalFilter; - WebPFilters[WEBP_FILTER_GRADIENT] = GradientFilter; +#if !WEBP_NEON_OMIT_C_CODE + WebPFilters[WEBP_FILTER_HORIZONTAL] = HorizontalFilter_C; + WebPFilters[WEBP_FILTER_VERTICAL] = VerticalFilter_C; + WebPFilters[WEBP_FILTER_GRADIENT] = GradientFilter_C; +#endif if (VP8GetCPUInfo != NULL) { #if defined(WEBP_USE_SSE2) @@ -253,11 +259,6 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8FiltersInit(void) { VP8FiltersInitSSE2(); } #endif -#if defined(WEBP_USE_NEON) - if (VP8GetCPUInfo(kNEON)) { - VP8FiltersInitNEON(); - } -#endif #if defined(WEBP_USE_MIPS_DSP_R2) if (VP8GetCPUInfo(kMIPSdspR2)) { VP8FiltersInitMIPSdspR2(); @@ -269,5 +270,18 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8FiltersInit(void) { } #endif } - filters_last_cpuinfo_used = VP8GetCPUInfo; + +#if defined(WEBP_USE_NEON) + if (WEBP_NEON_OMIT_C_CODE || + (VP8GetCPUInfo != NULL && VP8GetCPUInfo(kNEON))) { + VP8FiltersInitNEON(); + } +#endif + + assert(WebPUnfilters[WEBP_FILTER_HORIZONTAL] != NULL); + assert(WebPUnfilters[WEBP_FILTER_VERTICAL] != NULL); + assert(WebPUnfilters[WEBP_FILTER_GRADIENT] != NULL); + assert(WebPFilters[WEBP_FILTER_HORIZONTAL] != NULL); + assert(WebPFilters[WEBP_FILTER_VERTICAL] != NULL); + assert(WebPFilters[WEBP_FILTER_GRADIENT] != NULL); } diff --git a/external/libwebp-0.6.0/src/dsp/filters_mips_dsp_r2.c b/external/libwebp-1.0.0/src/dsp/filters_mips_dsp_r2.c similarity index 83% rename from external/libwebp-0.6.0/src/dsp/filters_mips_dsp_r2.c rename to external/libwebp-1.0.0/src/dsp/filters_mips_dsp_r2.c index 1d82e3c2..9382b128 100644 --- a/external/libwebp-0.6.0/src/dsp/filters_mips_dsp_r2.c +++ b/external/libwebp-1.0.0/src/dsp/filters_mips_dsp_r2.c @@ -12,11 +12,11 @@ // Author(s): Branimir Vasic (branimir.vasic@imgtec.com) // Djordje Pesut (djordje.pesut@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MIPS_DSP_R2) -#include "../dsp/dsp.h" +#include "src/dsp/dsp.h" #include #include #include @@ -101,8 +101,8 @@ ); \ } while (0) -static WEBP_INLINE void PredictLine(const uint8_t* src, uint8_t* dst, - int length) { +static WEBP_INLINE void PredictLine_MIPSdspR2(const uint8_t* src, uint8_t* dst, + int length) { DO_PREDICT_LINE(src, dst, length, 0); } @@ -192,10 +192,11 @@ static WEBP_INLINE void PredictLine(const uint8_t* src, uint8_t* dst, } \ } while (0) -static WEBP_INLINE void DoHorizontalFilter(const uint8_t* in, - int width, int height, int stride, - int row, int num_rows, - uint8_t* out) { +static WEBP_INLINE void DoHorizontalFilter_MIPSdspR2(const uint8_t* in, + int width, int height, + int stride, + int row, int num_rows, + uint8_t* out) { const uint8_t* preds; const size_t start_offset = row * stride; const int last_row = row + num_rows; @@ -207,7 +208,7 @@ static WEBP_INLINE void DoHorizontalFilter(const uint8_t* in, if (row == 0) { // Leftmost pixel is the same as input for topmost scanline. out[0] = in[0]; - PredictLine(in + 1, out + 1, width - 1); + PredictLine_MIPSdspR2(in + 1, out + 1, width - 1); row = 1; preds += stride; in += stride; @@ -219,9 +220,11 @@ static WEBP_INLINE void DoHorizontalFilter(const uint8_t* in, } #undef FILTER_LINE_BY_LINE -static void HorizontalFilter(const uint8_t* data, int width, int height, - int stride, uint8_t* filtered_data) { - DoHorizontalFilter(data, width, height, stride, 0, height, filtered_data); +static void HorizontalFilter_MIPSdspR2(const uint8_t* data, + int width, int height, + int stride, uint8_t* filtered_data) { + DoHorizontalFilter_MIPSdspR2(data, width, height, stride, 0, height, + filtered_data); } //------------------------------------------------------------------------------ @@ -237,9 +240,11 @@ static void HorizontalFilter(const uint8_t* data, int width, int height, } \ } while (0) -static WEBP_INLINE void DoVerticalFilter(const uint8_t* in, - int width, int height, int stride, - int row, int num_rows, uint8_t* out) { +static WEBP_INLINE void DoVerticalFilter_MIPSdspR2(const uint8_t* in, + int width, int height, + int stride, + int row, int num_rows, + uint8_t* out) { const uint8_t* preds; const size_t start_offset = row * stride; const int last_row = row + num_rows; @@ -252,7 +257,7 @@ static WEBP_INLINE void DoVerticalFilter(const uint8_t* in, // Very first top-left pixel is copied. out[0] = in[0]; // Rest of top scan-line is left-predicted. - PredictLine(in + 1, out + 1, width - 1); + PredictLine_MIPSdspR2(in + 1, out + 1, width - 1); row = 1; in += stride; out += stride; @@ -266,15 +271,16 @@ static WEBP_INLINE void DoVerticalFilter(const uint8_t* in, } #undef FILTER_LINE_BY_LINE -static void VerticalFilter(const uint8_t* data, int width, int height, - int stride, uint8_t* filtered_data) { - DoVerticalFilter(data, width, height, stride, 0, height, filtered_data); +static void VerticalFilter_MIPSdspR2(const uint8_t* data, int width, int height, + int stride, uint8_t* filtered_data) { + DoVerticalFilter_MIPSdspR2(data, width, height, stride, 0, height, + filtered_data); } //------------------------------------------------------------------------------ // Gradient filter. -static WEBP_INLINE int GradientPredictor(uint8_t a, uint8_t b, uint8_t c) { +static int GradientPredictor_MIPSdspR2(uint8_t a, uint8_t b, uint8_t c) { int temp0; __asm__ volatile ( "addu %[temp0], %[a], %[b] \n\t" @@ -293,9 +299,9 @@ static WEBP_INLINE int GradientPredictor(uint8_t a, uint8_t b, uint8_t c) { int w; \ PREDICT_LINE_ONE_PASS(in, PREDS - stride, out); \ for (w = 1; w < width; ++w) { \ - const int pred = GradientPredictor(PREDS[w - 1], \ - PREDS[w - stride], \ - PREDS[w - stride - 1]); \ + const int pred = GradientPredictor_MIPSdspR2(PREDS[w - 1], \ + PREDS[w - stride], \ + PREDS[w - stride - 1]); \ out[w] = in[w] OPERATION pred; \ } \ ++row; \ @@ -304,9 +310,9 @@ static WEBP_INLINE int GradientPredictor(uint8_t a, uint8_t b, uint8_t c) { } \ } while (0) -static WEBP_INLINE void DoGradientFilter(const uint8_t* in, - int width, int height, int stride, - int row, int num_rows, uint8_t* out) { +static void DoGradientFilter_MIPSdspR2(const uint8_t* in, + int width, int height, int stride, + int row, int num_rows, uint8_t* out) { const uint8_t* preds; const size_t start_offset = row * stride; const int last_row = row + num_rows; @@ -318,7 +324,7 @@ static WEBP_INLINE void DoGradientFilter(const uint8_t* in, // left prediction for top scan-line if (row == 0) { out[0] = in[0]; - PredictLine(in + 1, out + 1, width - 1); + PredictLine_MIPSdspR2(in + 1, out + 1, width - 1); row = 1; preds += stride; in += stride; @@ -330,38 +336,39 @@ static WEBP_INLINE void DoGradientFilter(const uint8_t* in, } #undef FILTER_LINE_BY_LINE -static void GradientFilter(const uint8_t* data, int width, int height, - int stride, uint8_t* filtered_data) { - DoGradientFilter(data, width, height, stride, 0, height, filtered_data); +static void GradientFilter_MIPSdspR2(const uint8_t* data, int width, int height, + int stride, uint8_t* filtered_data) { + DoGradientFilter_MIPSdspR2(data, width, height, stride, 0, height, + filtered_data); } //------------------------------------------------------------------------------ -static void HorizontalUnfilter(const uint8_t* prev, const uint8_t* in, - uint8_t* out, int width) { +static void HorizontalUnfilter_MIPSdspR2(const uint8_t* prev, const uint8_t* in, + uint8_t* out, int width) { out[0] = in[0] + (prev == NULL ? 0 : prev[0]); DO_PREDICT_LINE(in + 1, out + 1, width - 1, 1); } -static void VerticalUnfilter(const uint8_t* prev, const uint8_t* in, - uint8_t* out, int width) { +static void VerticalUnfilter_MIPSdspR2(const uint8_t* prev, const uint8_t* in, + uint8_t* out, int width) { if (prev == NULL) { - HorizontalUnfilter(NULL, in, out, width); + HorizontalUnfilter_MIPSdspR2(NULL, in, out, width); } else { DO_PREDICT_LINE_VERTICAL(in, prev, out, width, 1); } } -static void GradientUnfilter(const uint8_t* prev, const uint8_t* in, - uint8_t* out, int width) { +static void GradientUnfilter_MIPSdspR2(const uint8_t* prev, const uint8_t* in, + uint8_t* out, int width) { if (prev == NULL) { - HorizontalUnfilter(NULL, in, out, width); + HorizontalUnfilter_MIPSdspR2(NULL, in, out, width); } else { uint8_t top = prev[0], top_left = top, left = top; int i; for (i = 0; i < width; ++i) { top = prev[i]; // need to read this first, in case prev==dst - left = in[i] + GradientPredictor(left, top, top_left); + left = in[i] + GradientPredictor_MIPSdspR2(left, top, top_left); top_left = top; out[i] = left; } @@ -379,13 +386,13 @@ static void GradientUnfilter(const uint8_t* prev, const uint8_t* in, extern void VP8FiltersInitMIPSdspR2(void); WEBP_TSAN_IGNORE_FUNCTION void VP8FiltersInitMIPSdspR2(void) { - WebPUnfilters[WEBP_FILTER_HORIZONTAL] = HorizontalUnfilter; - WebPUnfilters[WEBP_FILTER_VERTICAL] = VerticalUnfilter; - WebPUnfilters[WEBP_FILTER_GRADIENT] = GradientUnfilter; + WebPUnfilters[WEBP_FILTER_HORIZONTAL] = HorizontalUnfilter_MIPSdspR2; + WebPUnfilters[WEBP_FILTER_VERTICAL] = VerticalUnfilter_MIPSdspR2; + WebPUnfilters[WEBP_FILTER_GRADIENT] = GradientUnfilter_MIPSdspR2; - WebPFilters[WEBP_FILTER_HORIZONTAL] = HorizontalFilter; - WebPFilters[WEBP_FILTER_VERTICAL] = VerticalFilter; - WebPFilters[WEBP_FILTER_GRADIENT] = GradientFilter; + WebPFilters[WEBP_FILTER_HORIZONTAL] = HorizontalFilter_MIPSdspR2; + WebPFilters[WEBP_FILTER_VERTICAL] = VerticalFilter_MIPSdspR2; + WebPFilters[WEBP_FILTER_GRADIENT] = GradientFilter_MIPSdspR2; } #else // !WEBP_USE_MIPS_DSP_R2 diff --git a/external/libwebp-0.6.0/src/dsp/filters_msa.c b/external/libwebp-1.0.0/src/dsp/filters_msa.c similarity index 88% rename from external/libwebp-0.6.0/src/dsp/filters_msa.c rename to external/libwebp-1.0.0/src/dsp/filters_msa.c index 4b8922d0..14c437d1 100644 --- a/external/libwebp-0.6.0/src/dsp/filters_msa.c +++ b/external/libwebp-1.0.0/src/dsp/filters_msa.c @@ -11,11 +11,11 @@ // // Author: Prashant Patil (prashant.patil@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MSA) -#include "./msa_macro.h" +#include "src/dsp/msa_macro.h" #include @@ -66,8 +66,8 @@ static WEBP_INLINE void PredictLineInverse0(const uint8_t* src, //------------------------------------------------------------------------------ // Horrizontal filter -static void HorizontalFilter(const uint8_t* data, int width, int height, - int stride, uint8_t* filtered_data) { +static void HorizontalFilter_MSA(const uint8_t* data, int width, int height, + int stride, uint8_t* filtered_data) { const uint8_t* preds = data; const uint8_t* in = data; uint8_t* out = filtered_data; @@ -129,8 +129,8 @@ static WEBP_INLINE void PredictLineGradient(const uint8_t* pinput, } -static void GradientFilter(const uint8_t* data, int width, int height, - int stride, uint8_t* filtered_data) { +static void GradientFilter_MSA(const uint8_t* data, int width, int height, + int stride, uint8_t* filtered_data) { const uint8_t* in = data; const uint8_t* preds = data; uint8_t* out = filtered_data; @@ -157,8 +157,8 @@ static void GradientFilter(const uint8_t* data, int width, int height, //------------------------------------------------------------------------------ // Vertical filter -static void VerticalFilter(const uint8_t* data, int width, int height, - int stride, uint8_t* filtered_data) { +static void VerticalFilter_MSA(const uint8_t* data, int width, int height, + int stride, uint8_t* filtered_data) { const uint8_t* in = data; const uint8_t* preds = data; uint8_t* out = filtered_data; @@ -190,9 +190,9 @@ static void VerticalFilter(const uint8_t* data, int width, int height, extern void VP8FiltersInitMSA(void); WEBP_TSAN_IGNORE_FUNCTION void VP8FiltersInitMSA(void) { - WebPFilters[WEBP_FILTER_HORIZONTAL] = HorizontalFilter; - WebPFilters[WEBP_FILTER_VERTICAL] = VerticalFilter; - WebPFilters[WEBP_FILTER_GRADIENT] = GradientFilter; + WebPFilters[WEBP_FILTER_HORIZONTAL] = HorizontalFilter_MSA; + WebPFilters[WEBP_FILTER_VERTICAL] = VerticalFilter_MSA; + WebPFilters[WEBP_FILTER_GRADIENT] = GradientFilter_MSA; } #else // !WEBP_USE_MSA diff --git a/external/libwebp-0.6.0/src/dsp/filters_neon.c b/external/libwebp-1.0.0/src/dsp/filters_neon.c similarity index 96% rename from external/libwebp-0.6.0/src/dsp/filters_neon.c rename to external/libwebp-1.0.0/src/dsp/filters_neon.c index 4d6e50cc..3e6a578e 100644 --- a/external/libwebp-0.6.0/src/dsp/filters_neon.c +++ b/external/libwebp-1.0.0/src/dsp/filters_neon.c @@ -11,12 +11,12 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_NEON) #include -#include "./neon.h" +#include "src/dsp/neon.h" //------------------------------------------------------------------------------ // Helpful macros. @@ -134,7 +134,7 @@ static WEBP_INLINE void DoVerticalFilter_NEON(const uint8_t* in, } static void VerticalFilter_NEON(const uint8_t* data, int width, int height, - int stride, uint8_t* filtered_data) { + int stride, uint8_t* filtered_data) { DoVerticalFilter_NEON(data, width, height, stride, 0, height, filtered_data); } @@ -196,7 +196,7 @@ static WEBP_INLINE void DoGradientFilter_NEON(const uint8_t* in, } static void GradientFilter_NEON(const uint8_t* data, int width, int height, - int stride, uint8_t* filtered_data) { + int stride, uint8_t* filtered_data) { DoGradientFilter_NEON(data, width, height, stride, 0, height, filtered_data); } @@ -251,9 +251,11 @@ static void VerticalUnfilter_NEON(const uint8_t* prev, const uint8_t* in, // GradientUnfilter_NEON is correct but slower than the C-version, // at least on ARM64. For armv7, it's a wash. // So best is to disable it for now, but keep the idea around... -// #define USE_GRADIENT_UNFILTER +#if !defined(USE_GRADIENT_UNFILTER) +#define USE_GRADIENT_UNFILTER 0 // ALTERNATE_CODE +#endif -#if defined(USE_GRADIENT_UNFILTER) +#if (USE_GRADIENT_UNFILTER == 1) #define GRAD_PROCESS_LANE(L) do { \ const uint8x8_t tmp1 = ROTATE_RIGHT_N(pred, 1); /* rotate predictor in */ \ const int16x8_t tmp2 = vaddq_s16(BC, U8_TO_S16(tmp1)); \ @@ -292,7 +294,7 @@ static void GradientPredictInverse_NEON(const uint8_t* const in, #undef GRAD_PROCESS_LANE static void GradientUnfilter_NEON(const uint8_t* prev, const uint8_t* in, - uint8_t* out, int width) { + uint8_t* out, int width) { if (prev == NULL) { HorizontalUnfilter_NEON(NULL, in, out, width); } else { @@ -311,7 +313,7 @@ extern void VP8FiltersInitNEON(void); WEBP_TSAN_IGNORE_FUNCTION void VP8FiltersInitNEON(void) { WebPUnfilters[WEBP_FILTER_HORIZONTAL] = HorizontalUnfilter_NEON; WebPUnfilters[WEBP_FILTER_VERTICAL] = VerticalUnfilter_NEON; -#if defined(USE_GRADIENT_UNFILTER) +#if (USE_GRADIENT_UNFILTER == 1) WebPUnfilters[WEBP_FILTER_GRADIENT] = GradientUnfilter_NEON; #endif diff --git a/external/libwebp-0.6.0/src/dsp/filters_sse2.c b/external/libwebp-1.0.0/src/dsp/filters_sse2.c similarity index 69% rename from external/libwebp-0.6.0/src/dsp/filters_sse2.c rename to external/libwebp-1.0.0/src/dsp/filters_sse2.c index 67f77999..5a188956 100644 --- a/external/libwebp-0.6.0/src/dsp/filters_sse2.c +++ b/external/libwebp-1.0.0/src/dsp/filters_sse2.c @@ -11,7 +11,7 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_SSE2) @@ -24,16 +24,16 @@ // Helpful macro. # define SANITY_CHECK(in, out) \ - assert(in != NULL); \ - assert(out != NULL); \ + assert((in) != NULL); \ + assert((out) != NULL); \ assert(width > 0); \ assert(height > 0); \ assert(stride >= width); \ assert(row >= 0 && num_rows > 0 && row + num_rows <= height); \ (void)height; // Silence unused warning. -static void PredictLineTop(const uint8_t* src, const uint8_t* pred, - uint8_t* dst, int length) { +static void PredictLineTop_SSE2(const uint8_t* src, const uint8_t* pred, + uint8_t* dst, int length) { int i; const int max_pos = length & ~31; assert(length >= 0); @@ -51,7 +51,7 @@ static void PredictLineTop(const uint8_t* src, const uint8_t* pred, } // Special case for left-based prediction (when preds==dst-1 or preds==src-1). -static void PredictLineLeft(const uint8_t* src, uint8_t* dst, int length) { +static void PredictLineLeft_SSE2(const uint8_t* src, uint8_t* dst, int length) { int i; const int max_pos = length & ~31; assert(length >= 0); @@ -71,10 +71,11 @@ static void PredictLineLeft(const uint8_t* src, uint8_t* dst, int length) { //------------------------------------------------------------------------------ // Horizontal filter. -static WEBP_INLINE void DoHorizontalFilter(const uint8_t* in, - int width, int height, int stride, - int row, int num_rows, - uint8_t* out) { +static WEBP_INLINE void DoHorizontalFilter_SSE2(const uint8_t* in, + int width, int height, + int stride, + int row, int num_rows, + uint8_t* out) { const size_t start_offset = row * stride; const int last_row = row + num_rows; SANITY_CHECK(in, out); @@ -84,7 +85,7 @@ static WEBP_INLINE void DoHorizontalFilter(const uint8_t* in, if (row == 0) { // Leftmost pixel is the same as input for topmost scanline. out[0] = in[0]; - PredictLineLeft(in + 1, out + 1, width - 1); + PredictLineLeft_SSE2(in + 1, out + 1, width - 1); row = 1; in += stride; out += stride; @@ -94,7 +95,7 @@ static WEBP_INLINE void DoHorizontalFilter(const uint8_t* in, while (row < last_row) { // Leftmost pixel is predicted from above. out[0] = in[0] - in[-stride]; - PredictLineLeft(in + 1, out + 1, width - 1); + PredictLineLeft_SSE2(in + 1, out + 1, width - 1); ++row; in += stride; out += stride; @@ -104,9 +105,10 @@ static WEBP_INLINE void DoHorizontalFilter(const uint8_t* in, //------------------------------------------------------------------------------ // Vertical filter. -static WEBP_INLINE void DoVerticalFilter(const uint8_t* in, - int width, int height, int stride, - int row, int num_rows, uint8_t* out) { +static WEBP_INLINE void DoVerticalFilter_SSE2(const uint8_t* in, + int width, int height, int stride, + int row, int num_rows, + uint8_t* out) { const size_t start_offset = row * stride; const int last_row = row + num_rows; SANITY_CHECK(in, out); @@ -117,7 +119,7 @@ static WEBP_INLINE void DoVerticalFilter(const uint8_t* in, // Very first top-left pixel is copied. out[0] = in[0]; // Rest of top scan-line is left-predicted. - PredictLineLeft(in + 1, out + 1, width - 1); + PredictLineLeft_SSE2(in + 1, out + 1, width - 1); row = 1; in += stride; out += stride; @@ -125,7 +127,7 @@ static WEBP_INLINE void DoVerticalFilter(const uint8_t* in, // Filter line-by-line. while (row < last_row) { - PredictLineTop(in, in - stride, out, width); + PredictLineTop_SSE2(in, in - stride, out, width); ++row; in += stride; out += stride; @@ -135,14 +137,14 @@ static WEBP_INLINE void DoVerticalFilter(const uint8_t* in, //------------------------------------------------------------------------------ // Gradient filter. -static WEBP_INLINE int GradientPredictorC(uint8_t a, uint8_t b, uint8_t c) { +static WEBP_INLINE int GradientPredictor_SSE2(uint8_t a, uint8_t b, uint8_t c) { const int g = a + b - c; return ((g & ~0xff) == 0) ? g : (g < 0) ? 0 : 255; // clip to 8bit } -static void GradientPredictDirect(const uint8_t* const row, - const uint8_t* const top, - uint8_t* const out, int length) { +static void GradientPredictDirect_SSE2(const uint8_t* const row, + const uint8_t* const top, + uint8_t* const out, int length) { const int max_pos = length & ~7; int i; const __m128i zero = _mm_setzero_si128(); @@ -161,14 +163,14 @@ static void GradientPredictDirect(const uint8_t* const row, _mm_storel_epi64((__m128i*)(out + i), H); } for (; i < length; ++i) { - out[i] = row[i] - GradientPredictorC(row[i - 1], top[i], top[i - 1]); + out[i] = row[i] - GradientPredictor_SSE2(row[i - 1], top[i], top[i - 1]); } } -static WEBP_INLINE void DoGradientFilter(const uint8_t* in, - int width, int height, int stride, - int row, int num_rows, - uint8_t* out) { +static WEBP_INLINE void DoGradientFilter_SSE2(const uint8_t* in, + int width, int height, int stride, + int row, int num_rows, + uint8_t* out) { const size_t start_offset = row * stride; const int last_row = row + num_rows; SANITY_CHECK(in, out); @@ -178,7 +180,7 @@ static WEBP_INLINE void DoGradientFilter(const uint8_t* in, // left prediction for top scan-line if (row == 0) { out[0] = in[0]; - PredictLineLeft(in + 1, out + 1, width - 1); + PredictLineLeft_SSE2(in + 1, out + 1, width - 1); row = 1; in += stride; out += stride; @@ -187,7 +189,7 @@ static WEBP_INLINE void DoGradientFilter(const uint8_t* in, // Filter line-by-line. while (row < last_row) { out[0] = in[0] - in[-stride]; - GradientPredictDirect(in + 1, in + 1 - stride, out + 1, width - 1); + GradientPredictDirect_SSE2(in + 1, in + 1 - stride, out + 1, width - 1); ++row; in += stride; out += stride; @@ -198,26 +200,27 @@ static WEBP_INLINE void DoGradientFilter(const uint8_t* in, //------------------------------------------------------------------------------ -static void HorizontalFilter(const uint8_t* data, int width, int height, - int stride, uint8_t* filtered_data) { - DoHorizontalFilter(data, width, height, stride, 0, height, filtered_data); +static void HorizontalFilter_SSE2(const uint8_t* data, int width, int height, + int stride, uint8_t* filtered_data) { + DoHorizontalFilter_SSE2(data, width, height, stride, 0, height, + filtered_data); } -static void VerticalFilter(const uint8_t* data, int width, int height, - int stride, uint8_t* filtered_data) { - DoVerticalFilter(data, width, height, stride, 0, height, filtered_data); +static void VerticalFilter_SSE2(const uint8_t* data, int width, int height, + int stride, uint8_t* filtered_data) { + DoVerticalFilter_SSE2(data, width, height, stride, 0, height, filtered_data); } -static void GradientFilter(const uint8_t* data, int width, int height, - int stride, uint8_t* filtered_data) { - DoGradientFilter(data, width, height, stride, 0, height, filtered_data); +static void GradientFilter_SSE2(const uint8_t* data, int width, int height, + int stride, uint8_t* filtered_data) { + DoGradientFilter_SSE2(data, width, height, stride, 0, height, filtered_data); } //------------------------------------------------------------------------------ // Inverse transforms -static void HorizontalUnfilter(const uint8_t* prev, const uint8_t* in, - uint8_t* out, int width) { +static void HorizontalUnfilter_SSE2(const uint8_t* prev, const uint8_t* in, + uint8_t* out, int width) { int i; __m128i last; out[0] = in[0] + (prev == NULL ? 0 : prev[0]); @@ -238,10 +241,10 @@ static void HorizontalUnfilter(const uint8_t* prev, const uint8_t* in, for (; i < width; ++i) out[i] = in[i] + out[i - 1]; } -static void VerticalUnfilter(const uint8_t* prev, const uint8_t* in, - uint8_t* out, int width) { +static void VerticalUnfilter_SSE2(const uint8_t* prev, const uint8_t* in, + uint8_t* out, int width) { if (prev == NULL) { - HorizontalUnfilter(NULL, in, out, width); + HorizontalUnfilter_SSE2(NULL, in, out, width); } else { int i; const int max_pos = width & ~31; @@ -260,9 +263,9 @@ static void VerticalUnfilter(const uint8_t* prev, const uint8_t* in, } } -static void GradientPredictInverse(const uint8_t* const in, - const uint8_t* const top, - uint8_t* const row, int length) { +static void GradientPredictInverse_SSE2(const uint8_t* const in, + const uint8_t* const top, + uint8_t* const row, int length) { if (length > 0) { int i; const int max_pos = length & ~7; @@ -293,18 +296,18 @@ static void GradientPredictInverse(const uint8_t* const in, _mm_storel_epi64((__m128i*)&row[i], out); } for (; i < length; ++i) { - row[i] = in[i] + GradientPredictorC(row[i - 1], top[i], top[i - 1]); + row[i] = in[i] + GradientPredictor_SSE2(row[i - 1], top[i], top[i - 1]); } } } -static void GradientUnfilter(const uint8_t* prev, const uint8_t* in, - uint8_t* out, int width) { +static void GradientUnfilter_SSE2(const uint8_t* prev, const uint8_t* in, + uint8_t* out, int width) { if (prev == NULL) { - HorizontalUnfilter(NULL, in, out, width); + HorizontalUnfilter_SSE2(NULL, in, out, width); } else { out[0] = in[0] + prev[0]; // predict from above - GradientPredictInverse(in + 1, prev + 1, out + 1, width - 1); + GradientPredictInverse_SSE2(in + 1, prev + 1, out + 1, width - 1); } } @@ -314,13 +317,13 @@ static void GradientUnfilter(const uint8_t* prev, const uint8_t* in, extern void VP8FiltersInitSSE2(void); WEBP_TSAN_IGNORE_FUNCTION void VP8FiltersInitSSE2(void) { - WebPUnfilters[WEBP_FILTER_HORIZONTAL] = HorizontalUnfilter; - WebPUnfilters[WEBP_FILTER_VERTICAL] = VerticalUnfilter; - WebPUnfilters[WEBP_FILTER_GRADIENT] = GradientUnfilter; + WebPUnfilters[WEBP_FILTER_HORIZONTAL] = HorizontalUnfilter_SSE2; + WebPUnfilters[WEBP_FILTER_VERTICAL] = VerticalUnfilter_SSE2; + WebPUnfilters[WEBP_FILTER_GRADIENT] = GradientUnfilter_SSE2; - WebPFilters[WEBP_FILTER_HORIZONTAL] = HorizontalFilter; - WebPFilters[WEBP_FILTER_VERTICAL] = VerticalFilter; - WebPFilters[WEBP_FILTER_GRADIENT] = GradientFilter; + WebPFilters[WEBP_FILTER_HORIZONTAL] = HorizontalFilter_SSE2; + WebPFilters[WEBP_FILTER_VERTICAL] = VerticalFilter_SSE2; + WebPFilters[WEBP_FILTER_GRADIENT] = GradientFilter_SSE2; } #else // !WEBP_USE_SSE2 diff --git a/external/libwebp-0.6.0/src/dsp/lossless.c b/external/libwebp-1.0.0/src/dsp/lossless.c similarity index 79% rename from external/libwebp-0.6.0/src/dsp/lossless.c rename to external/libwebp-1.0.0/src/dsp/lossless.c index 20d18f6e..f9b3c182 100644 --- a/external/libwebp-0.6.0/src/dsp/lossless.c +++ b/external/libwebp-1.0.0/src/dsp/lossless.c @@ -13,14 +13,15 @@ // Jyrki Alakuijala (jyrki@google.com) // Urvang Joshi (urvang@google.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" +#include #include #include -#include "../dec/vp8li_dec.h" -#include "../utils/endian_inl_utils.h" -#include "./lossless.h" -#include "./lossless_common.h" +#include "src/dec/vp8li_dec.h" +#include "src/utils/endian_inl_utils.h" +#include "src/dsp/lossless.h" +#include "src/dsp/lossless_common.h" #define MAX_DIFF_COST (1e30f) @@ -80,8 +81,9 @@ static WEBP_INLINE uint32_t ClampedAddSubtractHalf(uint32_t c0, uint32_t c1, return ((uint32_t)a << 24) | (r << 16) | (g << 8) | b; } -// gcc-4.9 on ARM generates incorrect code in Select() when Sub3() is inlined. -#if defined(__arm__) && LOCAL_GCC_VERSION == 0x409 +// gcc <= 4.9 on ARM generates incorrect code in Select() when Sub3() is +// inlined. +#if defined(__arm__) && LOCAL_GCC_VERSION <= 0x409 # define LOCAL_INLINE __attribute__ ((noinline)) #else # define LOCAL_INLINE WEBP_INLINE @@ -107,69 +109,69 @@ static WEBP_INLINE uint32_t Select(uint32_t a, uint32_t b, uint32_t c) { //------------------------------------------------------------------------------ // Predictors -static uint32_t Predictor0(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor0_C(uint32_t left, const uint32_t* const top) { (void)top; (void)left; return ARGB_BLACK; } -static uint32_t Predictor1(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor1_C(uint32_t left, const uint32_t* const top) { (void)top; return left; } -static uint32_t Predictor2(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor2_C(uint32_t left, const uint32_t* const top) { (void)left; return top[0]; } -static uint32_t Predictor3(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor3_C(uint32_t left, const uint32_t* const top) { (void)left; return top[1]; } -static uint32_t Predictor4(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor4_C(uint32_t left, const uint32_t* const top) { (void)left; return top[-1]; } -static uint32_t Predictor5(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor5_C(uint32_t left, const uint32_t* const top) { const uint32_t pred = Average3(left, top[0], top[1]); return pred; } -static uint32_t Predictor6(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor6_C(uint32_t left, const uint32_t* const top) { const uint32_t pred = Average2(left, top[-1]); return pred; } -static uint32_t Predictor7(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor7_C(uint32_t left, const uint32_t* const top) { const uint32_t pred = Average2(left, top[0]); return pred; } -static uint32_t Predictor8(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor8_C(uint32_t left, const uint32_t* const top) { const uint32_t pred = Average2(top[-1], top[0]); (void)left; return pred; } -static uint32_t Predictor9(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor9_C(uint32_t left, const uint32_t* const top) { const uint32_t pred = Average2(top[0], top[1]); (void)left; return pred; } -static uint32_t Predictor10(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor10_C(uint32_t left, const uint32_t* const top) { const uint32_t pred = Average4(left, top[-1], top[0], top[1]); return pred; } -static uint32_t Predictor11(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor11_C(uint32_t left, const uint32_t* const top) { const uint32_t pred = Select(top[0], left, top[-1]); return pred; } -static uint32_t Predictor12(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor12_C(uint32_t left, const uint32_t* const top) { const uint32_t pred = ClampedAddSubtractFull(left, top[0], top[-1]); return pred; } -static uint32_t Predictor13(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor13_C(uint32_t left, const uint32_t* const top) { const uint32_t pred = ClampedAddSubtractHalf(left, top[0], top[-1]); return pred; } -GENERATE_PREDICTOR_ADD(Predictor0, PredictorAdd0) -static void PredictorAdd1(const uint32_t* in, const uint32_t* upper, - int num_pixels, uint32_t* out) { +GENERATE_PREDICTOR_ADD(Predictor0_C, PredictorAdd0_C) +static void PredictorAdd1_C(const uint32_t* in, const uint32_t* upper, + int num_pixels, uint32_t* out) { int i; uint32_t left = out[-1]; for (i = 0; i < num_pixels; ++i) { @@ -177,29 +179,29 @@ static void PredictorAdd1(const uint32_t* in, const uint32_t* upper, } (void)upper; } -GENERATE_PREDICTOR_ADD(Predictor2, PredictorAdd2) -GENERATE_PREDICTOR_ADD(Predictor3, PredictorAdd3) -GENERATE_PREDICTOR_ADD(Predictor4, PredictorAdd4) -GENERATE_PREDICTOR_ADD(Predictor5, PredictorAdd5) -GENERATE_PREDICTOR_ADD(Predictor6, PredictorAdd6) -GENERATE_PREDICTOR_ADD(Predictor7, PredictorAdd7) -GENERATE_PREDICTOR_ADD(Predictor8, PredictorAdd8) -GENERATE_PREDICTOR_ADD(Predictor9, PredictorAdd9) -GENERATE_PREDICTOR_ADD(Predictor10, PredictorAdd10) -GENERATE_PREDICTOR_ADD(Predictor11, PredictorAdd11) -GENERATE_PREDICTOR_ADD(Predictor12, PredictorAdd12) -GENERATE_PREDICTOR_ADD(Predictor13, PredictorAdd13) +GENERATE_PREDICTOR_ADD(Predictor2_C, PredictorAdd2_C) +GENERATE_PREDICTOR_ADD(Predictor3_C, PredictorAdd3_C) +GENERATE_PREDICTOR_ADD(Predictor4_C, PredictorAdd4_C) +GENERATE_PREDICTOR_ADD(Predictor5_C, PredictorAdd5_C) +GENERATE_PREDICTOR_ADD(Predictor6_C, PredictorAdd6_C) +GENERATE_PREDICTOR_ADD(Predictor7_C, PredictorAdd7_C) +GENERATE_PREDICTOR_ADD(Predictor8_C, PredictorAdd8_C) +GENERATE_PREDICTOR_ADD(Predictor9_C, PredictorAdd9_C) +GENERATE_PREDICTOR_ADD(Predictor10_C, PredictorAdd10_C) +GENERATE_PREDICTOR_ADD(Predictor11_C, PredictorAdd11_C) +GENERATE_PREDICTOR_ADD(Predictor12_C, PredictorAdd12_C) +GENERATE_PREDICTOR_ADD(Predictor13_C, PredictorAdd13_C) //------------------------------------------------------------------------------ // Inverse prediction. -static void PredictorInverseTransform(const VP8LTransform* const transform, - int y_start, int y_end, - const uint32_t* in, uint32_t* out) { +static void PredictorInverseTransform_C(const VP8LTransform* const transform, + int y_start, int y_end, + const uint32_t* in, uint32_t* out) { const int width = transform->xsize_; if (y_start == 0) { // First Row follows the L (mode=1) mode. - PredictorAdd0(in, NULL, 1, out); - PredictorAdd1(in + 1, NULL, width - 1, out + 1); + PredictorAdd0_C(in, NULL, 1, out); + PredictorAdd1_C(in + 1, NULL, width - 1, out + 1); in += width; out += width; ++y_start; @@ -217,7 +219,7 @@ static void PredictorInverseTransform(const VP8LTransform* const transform, const uint32_t* pred_mode_src = pred_mode_base; int x = 1; // First pixel follows the T (mode=2) mode. - PredictorAdd2(in, out - width, 1, out); + PredictorAdd2_C(in, out - width, 1, out); // .. the rest: while (x < width) { const VP8LPredictorAddSubFunc pred_func = @@ -272,8 +274,8 @@ void VP8LTransformColorInverse_C(const VP8LMultipliers* const m, const uint32_t argb = src[i]; const uint32_t green = argb >> 8; const uint32_t red = argb >> 16; - int new_red = red; - int new_blue = argb; + int new_red = red & 0xff; + int new_blue = argb & 0xff; new_red += ColorTransformDelta(m->green_to_red_, green); new_red &= 0xff; new_blue += ColorTransformDelta(m->green_to_blue_, green); @@ -284,9 +286,9 @@ void VP8LTransformColorInverse_C(const VP8LMultipliers* const m, } // Color space inverse transform. -static void ColorSpaceInverseTransform(const VP8LTransform* const transform, - int y_start, int y_end, - const uint32_t* src, uint32_t* dst) { +static void ColorSpaceInverseTransform_C(const VP8LTransform* const transform, + int y_start, int y_end, + const uint32_t* src, uint32_t* dst) { const int width = transform->xsize_; const int tile_width = 1 << transform->bits_; const int mask = tile_width - 1; @@ -362,10 +364,10 @@ STATIC_DECL void FUNC_NAME(const VP8LTransform* const transform, \ } \ } -COLOR_INDEX_INVERSE(ColorIndexInverseTransform, MapARGB, static, uint32_t, 32b, - VP8GetARGBIndex, VP8GetARGBValue) -COLOR_INDEX_INVERSE(VP8LColorIndexInverseTransformAlpha, MapAlpha, , uint8_t, - 8b, VP8GetAlphaIndex, VP8GetAlphaValue) +COLOR_INDEX_INVERSE(ColorIndexInverseTransform_C, MapARGB_C, static, + uint32_t, 32b, VP8GetARGBIndex, VP8GetARGBValue) +COLOR_INDEX_INVERSE(VP8LColorIndexInverseTransformAlpha, MapAlpha_C, , + uint8_t, 8b, VP8GetAlphaIndex, VP8GetAlphaValue) #undef COLOR_INDEX_INVERSE @@ -380,7 +382,7 @@ void VP8LInverseTransform(const VP8LTransform* const transform, VP8LAddGreenToBlueAndRed(in, (row_end - row_start) * width, out); break; case PREDICTOR_TRANSFORM: - PredictorInverseTransform(transform, row_start, row_end, in, out); + PredictorInverseTransform_C(transform, row_start, row_end, in, out); if (row_end != transform->ysize_) { // The last predicted row in this iteration will be the top-pred row // for the first row in next iteration. @@ -389,7 +391,7 @@ void VP8LInverseTransform(const VP8LTransform* const transform, } break; case CROSS_COLOR_TRANSFORM: - ColorSpaceInverseTransform(transform, row_start, row_end, in, out); + ColorSpaceInverseTransform_C(transform, row_start, row_end, in, out); break; case COLOR_INDEXING_TRANSFORM: if (in == out && transform->bits_ > 0) { @@ -403,9 +405,9 @@ void VP8LInverseTransform(const VP8LTransform* const transform, VP8LSubSampleSize(transform->xsize_, transform->bits_); uint32_t* const src = out + out_stride - in_stride; memmove(src, out, in_stride * sizeof(*src)); - ColorIndexInverseTransform(transform, row_start, row_end, src, out); + ColorIndexInverseTransform_C(transform, row_start, row_end, src, out); } else { - ColorIndexInverseTransform(transform, row_start, row_end, in, out); + ColorIndexInverseTransform_C(transform, row_start, row_end, in, out); } break; } @@ -452,7 +454,7 @@ void VP8LConvertBGRAToRGBA4444_C(const uint32_t* src, const uint32_t argb = *src++; const uint8_t rg = ((argb >> 16) & 0xf0) | ((argb >> 12) & 0xf); const uint8_t ba = ((argb >> 0) & 0xf0) | ((argb >> 28) & 0xf); -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) *dst++ = ba; *dst++ = rg; #else @@ -469,7 +471,7 @@ void VP8LConvertBGRAToRGB565_C(const uint32_t* src, const uint32_t argb = *src++; const uint8_t rg = ((argb >> 16) & 0xf8) | ((argb >> 13) & 0x7); const uint8_t gb = ((argb >> 5) & 0xe0) | ((argb >> 3) & 0x1f); -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) *dst++ = gb; *dst++ = rg; #else @@ -496,22 +498,7 @@ static void CopyOrSwap(const uint32_t* src, int num_pixels, uint8_t* dst, const uint32_t* const src_end = src + num_pixels; while (src < src_end) { const uint32_t argb = *src++; - -#if !defined(WORDS_BIGENDIAN) -#if !defined(WEBP_REFERENCE_IMPLEMENTATION) WebPUint32ToMem(dst, BSwap32(argb)); -#else // WEBP_REFERENCE_IMPLEMENTATION - dst[0] = (argb >> 24) & 0xff; - dst[1] = (argb >> 16) & 0xff; - dst[2] = (argb >> 8) & 0xff; - dst[3] = (argb >> 0) & 0xff; -#endif -#else // WORDS_BIGENDIAN - dst[0] = (argb >> 0) & 0xff; - dst[1] = (argb >> 8) & 0xff; - dst[2] = (argb >> 16) & 0xff; - dst[3] = (argb >> 24) & 0xff; -#endif dst += sizeof(argb); } } else { @@ -590,48 +577,46 @@ extern void VP8LDspInitNEON(void); extern void VP8LDspInitMIPSdspR2(void); extern void VP8LDspInitMSA(void); -static volatile VP8CPUInfo lossless_last_cpuinfo_used = - (VP8CPUInfo)&lossless_last_cpuinfo_used; - -#define COPY_PREDICTOR_ARRAY(IN, OUT) do { \ - (OUT)[0] = IN##0; \ - (OUT)[1] = IN##1; \ - (OUT)[2] = IN##2; \ - (OUT)[3] = IN##3; \ - (OUT)[4] = IN##4; \ - (OUT)[5] = IN##5; \ - (OUT)[6] = IN##6; \ - (OUT)[7] = IN##7; \ - (OUT)[8] = IN##8; \ - (OUT)[9] = IN##9; \ - (OUT)[10] = IN##10; \ - (OUT)[11] = IN##11; \ - (OUT)[12] = IN##12; \ - (OUT)[13] = IN##13; \ - (OUT)[14] = IN##0; /* <- padding security sentinels*/ \ - (OUT)[15] = IN##0; \ +#define COPY_PREDICTOR_ARRAY(IN, OUT) do { \ + (OUT)[0] = IN##0_C; \ + (OUT)[1] = IN##1_C; \ + (OUT)[2] = IN##2_C; \ + (OUT)[3] = IN##3_C; \ + (OUT)[4] = IN##4_C; \ + (OUT)[5] = IN##5_C; \ + (OUT)[6] = IN##6_C; \ + (OUT)[7] = IN##7_C; \ + (OUT)[8] = IN##8_C; \ + (OUT)[9] = IN##9_C; \ + (OUT)[10] = IN##10_C; \ + (OUT)[11] = IN##11_C; \ + (OUT)[12] = IN##12_C; \ + (OUT)[13] = IN##13_C; \ + (OUT)[14] = IN##0_C; /* <- padding security sentinels*/ \ + (OUT)[15] = IN##0_C; \ } while (0); -WEBP_TSAN_IGNORE_FUNCTION void VP8LDspInit(void) { - if (lossless_last_cpuinfo_used == VP8GetCPUInfo) return; - +WEBP_DSP_INIT_FUNC(VP8LDspInit) { COPY_PREDICTOR_ARRAY(Predictor, VP8LPredictors) COPY_PREDICTOR_ARRAY(Predictor, VP8LPredictors_C) COPY_PREDICTOR_ARRAY(PredictorAdd, VP8LPredictorsAdd) COPY_PREDICTOR_ARRAY(PredictorAdd, VP8LPredictorsAdd_C) +#if !WEBP_NEON_OMIT_C_CODE VP8LAddGreenToBlueAndRed = VP8LAddGreenToBlueAndRed_C; VP8LTransformColorInverse = VP8LTransformColorInverse_C; - VP8LConvertBGRAToRGB = VP8LConvertBGRAToRGB_C; VP8LConvertBGRAToRGBA = VP8LConvertBGRAToRGBA_C; + VP8LConvertBGRAToRGB = VP8LConvertBGRAToRGB_C; + VP8LConvertBGRAToBGR = VP8LConvertBGRAToBGR_C; +#endif + VP8LConvertBGRAToRGBA4444 = VP8LConvertBGRAToRGBA4444_C; VP8LConvertBGRAToRGB565 = VP8LConvertBGRAToRGB565_C; - VP8LConvertBGRAToBGR = VP8LConvertBGRAToBGR_C; - VP8LMapColor32b = MapARGB; - VP8LMapColor8b = MapAlpha; + VP8LMapColor32b = MapARGB_C; + VP8LMapColor8b = MapAlpha_C; // If defined, use CPUInfo() to overwrite some pointers with faster versions. if (VP8GetCPUInfo != NULL) { @@ -640,11 +625,6 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8LDspInit(void) { VP8LDspInitSSE2(); } #endif -#if defined(WEBP_USE_NEON) - if (VP8GetCPUInfo(kNEON)) { - VP8LDspInitNEON(); - } -#endif #if defined(WEBP_USE_MIPS_DSP_R2) if (VP8GetCPUInfo(kMIPSdspR2)) { VP8LDspInitMIPSdspR2(); @@ -656,7 +636,23 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8LDspInit(void) { } #endif } - lossless_last_cpuinfo_used = VP8GetCPUInfo; + +#if defined(WEBP_USE_NEON) + if (WEBP_NEON_OMIT_C_CODE || + (VP8GetCPUInfo != NULL && VP8GetCPUInfo(kNEON))) { + VP8LDspInitNEON(); + } +#endif + + assert(VP8LAddGreenToBlueAndRed != NULL); + assert(VP8LTransformColorInverse != NULL); + assert(VP8LConvertBGRAToRGBA != NULL); + assert(VP8LConvertBGRAToRGB != NULL); + assert(VP8LConvertBGRAToBGR != NULL); + assert(VP8LConvertBGRAToRGBA4444 != NULL); + assert(VP8LConvertBGRAToRGB565 != NULL); + assert(VP8LMapColor32b != NULL); + assert(VP8LMapColor8b != NULL); } #undef COPY_PREDICTOR_ARRAY diff --git a/external/libwebp-0.6.0/src/dsp/lossless.h b/external/libwebp-1.0.0/src/dsp/lossless.h similarity index 96% rename from external/libwebp-0.6.0/src/dsp/lossless.h rename to external/libwebp-1.0.0/src/dsp/lossless.h index 352a54e5..b2bbdfc9 100644 --- a/external/libwebp-0.6.0/src/dsp/lossless.h +++ b/external/libwebp-1.0.0/src/dsp/lossless.h @@ -15,20 +15,16 @@ #ifndef WEBP_DSP_LOSSLESS_H_ #define WEBP_DSP_LOSSLESS_H_ -#include "../webp/types.h" -#include "../webp/decode.h" +#include "src/webp/types.h" +#include "src/webp/decode.h" -#include "../enc/histogram_enc.h" -#include "../utils/utils.h" +#include "src/enc/histogram_enc.h" +#include "src/utils/utils.h" #ifdef __cplusplus extern "C" { #endif -#ifdef WEBP_EXPERIMENTAL_FEATURES -#include "../enc/delta_palettization_enc.h" -#endif // WEBP_EXPERIMENTAL_FEATURES - //------------------------------------------------------------------------------ // Decoding @@ -124,7 +120,7 @@ void VP8LDspInit(void); typedef void (*VP8LProcessEncBlueAndRedFunc)(uint32_t* dst, int num_pixels); extern VP8LProcessEncBlueAndRedFunc VP8LSubtractGreenFromBlueAndRed; typedef void (*VP8LTransformColorFunc)(const VP8LMultipliers* const m, - uint32_t* const dst, int num_pixels); + uint32_t* dst, int num_pixels); extern VP8LTransformColorFunc VP8LTransformColor; typedef void (*VP8LCollectColorBlueTransformsFunc)( const uint32_t* argb, int stride, diff --git a/external/libwebp-0.6.0/src/dsp/lossless_common.h b/external/libwebp-1.0.0/src/dsp/lossless_common.h similarity index 96% rename from external/libwebp-0.6.0/src/dsp/lossless_common.h rename to external/libwebp-1.0.0/src/dsp/lossless_common.h index c40f7112..a2648d17 100644 --- a/external/libwebp-0.6.0/src/dsp/lossless_common.h +++ b/external/libwebp-1.0.0/src/dsp/lossless_common.h @@ -16,9 +16,9 @@ #ifndef WEBP_DSP_LOSSLESS_COMMON_H_ #define WEBP_DSP_LOSSLESS_COMMON_H_ -#include "../webp/types.h" +#include "src/webp/types.h" -#include "../utils/utils.h" +#include "src/utils/utils.h" #ifdef __cplusplus extern "C" { @@ -93,14 +93,6 @@ static WEBP_INLINE float VP8LFastSLog2(uint32_t v) { // ----------------------------------------------------------------------------- // PrefixEncode() -static WEBP_INLINE int VP8LBitsLog2Ceiling(uint32_t n) { - const int log_floor = BitsLog2Floor(n); - if (n == (n & ~(n - 1))) { // zero or a power of two. - return log_floor; - } - return log_floor + 1; -} - // Splitting of distance and length codes into prefixes and // extra bits. The prefixes are encoded with an entropy code // while the extra bits are stored just as normal bits. diff --git a/external/libwebp-0.6.0/src/dsp/lossless_enc.c b/external/libwebp-1.0.0/src/dsp/lossless_enc.c similarity index 90% rename from external/libwebp-0.6.0/src/dsp/lossless_enc.c rename to external/libwebp-1.0.0/src/dsp/lossless_enc.c index 4e46fbab..d608326f 100644 --- a/external/libwebp-0.6.0/src/dsp/lossless_enc.c +++ b/external/libwebp-1.0.0/src/dsp/lossless_enc.c @@ -13,15 +13,16 @@ // Jyrki Alakuijala (jyrki@google.com) // Urvang Joshi (urvang@google.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" +#include #include #include -#include "../dec/vp8li_dec.h" -#include "../utils/endian_inl_utils.h" -#include "./lossless.h" -#include "./lossless_common.h" -#include "./yuv.h" +#include "src/dec/vp8li_dec.h" +#include "src/utils/endian_inl_utils.h" +#include "src/dsp/lossless.h" +#include "src/dsp/lossless_common.h" +#include "src/dsp/yuv.h" // lookup table for small values of log2(int) const float kLog2Table[LOG_LOOKUP_IDX_MAX] = { @@ -325,7 +326,7 @@ const uint8_t kPrefixEncodeExtraBitsValue[PREFIX_LOOKUP_IDX_MAX] = { 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126 }; -static float FastSLog2Slow(uint32_t v) { +static float FastSLog2Slow_C(uint32_t v) { assert(v >= LOG_LOOKUP_IDX_MAX); if (v < APPROX_LOG_WITH_CORRECTION_MAX) { int log_cnt = 0; @@ -351,7 +352,7 @@ static float FastSLog2Slow(uint32_t v) { } } -static float FastLog2Slow(uint32_t v) { +static float FastLog2Slow_C(uint32_t v) { assert(v >= LOG_LOOKUP_IDX_MAX); if (v < APPROX_LOG_WITH_CORRECTION_MAX) { int log_cnt = 0; @@ -380,7 +381,7 @@ static float FastLog2Slow(uint32_t v) { // Methods to calculate Entropy (Shannon). // Compute the combined Shanon's entropy for distribution {X} and {X+Y} -static float CombinedShannonEntropy(const int X[256], const int Y[256]) { +static float CombinedShannonEntropy_C(const int X[256], const int Y[256]) { int i; double retval = 0.; int sumX = 0, sumXY = 0; @@ -453,9 +454,9 @@ static WEBP_INLINE void GetEntropyUnrefinedHelper( *i_prev = i; } -static void GetEntropyUnrefined(const uint32_t X[], int length, - VP8LBitEntropy* const bit_entropy, - VP8LStreaks* const stats) { +static void GetEntropyUnrefined_C(const uint32_t X[], int length, + VP8LBitEntropy* const bit_entropy, + VP8LStreaks* const stats) { int i; int i_prev = 0; uint32_t x_prev = X[0]; @@ -474,10 +475,11 @@ static void GetEntropyUnrefined(const uint32_t X[], int length, bit_entropy->entropy += VP8LFastSLog2(bit_entropy->sum); } -static void GetCombinedEntropyUnrefined(const uint32_t X[], const uint32_t Y[], - int length, - VP8LBitEntropy* const bit_entropy, - VP8LStreaks* const stats) { +static void GetCombinedEntropyUnrefined_C(const uint32_t X[], + const uint32_t Y[], + int length, + VP8LBitEntropy* const bit_entropy, + VP8LStreaks* const stats) { int i = 1; int i_prev = 0; uint32_t xy_prev = X[0] + Y[0]; @@ -520,8 +522,8 @@ void VP8LTransformColor_C(const VP8LMultipliers* const m, uint32_t* data, const uint32_t argb = data[i]; const uint32_t green = argb >> 8; const uint32_t red = argb >> 16; - int new_red = red; - int new_blue = argb; + int new_red = red & 0xff; + int new_blue = argb & 0xff; new_red -= ColorTransformDelta(m->green_to_red_, green); new_red &= 0xff; new_blue -= ColorTransformDelta(m->green_to_blue_, green); @@ -577,8 +579,8 @@ void VP8LCollectColorBlueTransforms_C(const uint32_t* argb, int stride, //------------------------------------------------------------------------------ -static int VectorMismatch(const uint32_t* const array1, - const uint32_t* const array2, int length) { +static int VectorMismatch_C(const uint32_t* const array1, + const uint32_t* const array2, int length) { int match_len = 0; while (match_len < length && array1[match_len] == array2[match_len]) { @@ -610,15 +612,15 @@ void VP8LBundleColorMap_C(const uint8_t* const row, int width, int xbits, //------------------------------------------------------------------------------ -static double ExtraCost(const uint32_t* population, int length) { +static double ExtraCost_C(const uint32_t* population, int length) { int i; double cost = 0.; for (i = 2; i < length - 2; ++i) cost += (i >> 1) * population[i + 2]; return cost; } -static double ExtraCostCombined(const uint32_t* X, const uint32_t* Y, - int length) { +static double ExtraCostCombined_C(const uint32_t* X, const uint32_t* Y, + int length) { int i; double cost = 0.; for (i = 2; i < length - 2; ++i) { @@ -630,9 +632,9 @@ static double ExtraCostCombined(const uint32_t* X, const uint32_t* Y, //------------------------------------------------------------------------------ -static void HistogramAdd(const VP8LHistogram* const a, - const VP8LHistogram* const b, - VP8LHistogram* const out) { +static void HistogramAdd_C(const VP8LHistogram* const a, + const VP8LHistogram* const b, + VP8LHistogram* const out) { int i; const int literal_size = VP8LHistogramNumCodes(a->palette_code_bits_); assert(a->palette_code_bits_ == b->palette_code_bits_); @@ -861,34 +863,31 @@ extern void VP8LEncDspInitMIPS32(void); extern void VP8LEncDspInitMIPSdspR2(void); extern void VP8LEncDspInitMSA(void); -static volatile VP8CPUInfo lossless_enc_last_cpuinfo_used = - (VP8CPUInfo)&lossless_enc_last_cpuinfo_used; - -WEBP_TSAN_IGNORE_FUNCTION void VP8LEncDspInit(void) { - if (lossless_enc_last_cpuinfo_used == VP8GetCPUInfo) return; - +WEBP_DSP_INIT_FUNC(VP8LEncDspInit) { VP8LDspInit(); +#if !WEBP_NEON_OMIT_C_CODE VP8LSubtractGreenFromBlueAndRed = VP8LSubtractGreenFromBlueAndRed_C; VP8LTransformColor = VP8LTransformColor_C; +#endif VP8LCollectColorBlueTransforms = VP8LCollectColorBlueTransforms_C; VP8LCollectColorRedTransforms = VP8LCollectColorRedTransforms_C; - VP8LFastLog2Slow = FastLog2Slow; - VP8LFastSLog2Slow = FastSLog2Slow; + VP8LFastLog2Slow = FastLog2Slow_C; + VP8LFastSLog2Slow = FastSLog2Slow_C; - VP8LExtraCost = ExtraCost; - VP8LExtraCostCombined = ExtraCostCombined; - VP8LCombinedShannonEntropy = CombinedShannonEntropy; + VP8LExtraCost = ExtraCost_C; + VP8LExtraCostCombined = ExtraCostCombined_C; + VP8LCombinedShannonEntropy = CombinedShannonEntropy_C; - VP8LGetEntropyUnrefined = GetEntropyUnrefined; - VP8LGetCombinedEntropyUnrefined = GetCombinedEntropyUnrefined; + VP8LGetEntropyUnrefined = GetEntropyUnrefined_C; + VP8LGetCombinedEntropyUnrefined = GetCombinedEntropyUnrefined_C; - VP8LHistogramAdd = HistogramAdd; + VP8LHistogramAdd = HistogramAdd_C; - VP8LVectorMismatch = VectorMismatch; + VP8LVectorMismatch = VectorMismatch_C; VP8LBundleColorMap = VP8LBundleColorMap_C; VP8LPredictorsSub[0] = PredictorSub0_C; @@ -937,11 +936,6 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8LEncDspInit(void) { #endif } #endif -#if defined(WEBP_USE_NEON) - if (VP8GetCPUInfo(kNEON)) { - VP8LEncDspInitNEON(); - } -#endif #if defined(WEBP_USE_MIPS32) if (VP8GetCPUInfo(kMIPS32)) { VP8LEncDspInitMIPS32(); @@ -958,7 +952,60 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8LEncDspInit(void) { } #endif } - lossless_enc_last_cpuinfo_used = VP8GetCPUInfo; + +#if defined(WEBP_USE_NEON) + if (WEBP_NEON_OMIT_C_CODE || + (VP8GetCPUInfo != NULL && VP8GetCPUInfo(kNEON))) { + VP8LEncDspInitNEON(); + } +#endif + + assert(VP8LSubtractGreenFromBlueAndRed != NULL); + assert(VP8LTransformColor != NULL); + assert(VP8LCollectColorBlueTransforms != NULL); + assert(VP8LCollectColorRedTransforms != NULL); + assert(VP8LFastLog2Slow != NULL); + assert(VP8LFastSLog2Slow != NULL); + assert(VP8LExtraCost != NULL); + assert(VP8LExtraCostCombined != NULL); + assert(VP8LCombinedShannonEntropy != NULL); + assert(VP8LGetEntropyUnrefined != NULL); + assert(VP8LGetCombinedEntropyUnrefined != NULL); + assert(VP8LHistogramAdd != NULL); + assert(VP8LVectorMismatch != NULL); + assert(VP8LBundleColorMap != NULL); + assert(VP8LPredictorsSub[0] != NULL); + assert(VP8LPredictorsSub[1] != NULL); + assert(VP8LPredictorsSub[2] != NULL); + assert(VP8LPredictorsSub[3] != NULL); + assert(VP8LPredictorsSub[4] != NULL); + assert(VP8LPredictorsSub[5] != NULL); + assert(VP8LPredictorsSub[6] != NULL); + assert(VP8LPredictorsSub[7] != NULL); + assert(VP8LPredictorsSub[8] != NULL); + assert(VP8LPredictorsSub[9] != NULL); + assert(VP8LPredictorsSub[10] != NULL); + assert(VP8LPredictorsSub[11] != NULL); + assert(VP8LPredictorsSub[12] != NULL); + assert(VP8LPredictorsSub[13] != NULL); + assert(VP8LPredictorsSub[14] != NULL); + assert(VP8LPredictorsSub[15] != NULL); + assert(VP8LPredictorsSub_C[0] != NULL); + assert(VP8LPredictorsSub_C[1] != NULL); + assert(VP8LPredictorsSub_C[2] != NULL); + assert(VP8LPredictorsSub_C[3] != NULL); + assert(VP8LPredictorsSub_C[4] != NULL); + assert(VP8LPredictorsSub_C[5] != NULL); + assert(VP8LPredictorsSub_C[6] != NULL); + assert(VP8LPredictorsSub_C[7] != NULL); + assert(VP8LPredictorsSub_C[8] != NULL); + assert(VP8LPredictorsSub_C[9] != NULL); + assert(VP8LPredictorsSub_C[10] != NULL); + assert(VP8LPredictorsSub_C[11] != NULL); + assert(VP8LPredictorsSub_C[12] != NULL); + assert(VP8LPredictorsSub_C[13] != NULL); + assert(VP8LPredictorsSub_C[14] != NULL); + assert(VP8LPredictorsSub_C[15] != NULL); } //------------------------------------------------------------------------------ diff --git a/external/libwebp-0.6.0/src/dsp/lossless_enc_mips32.c b/external/libwebp-1.0.0/src/dsp/lossless_enc_mips32.c similarity index 89% rename from external/libwebp-0.6.0/src/dsp/lossless_enc_mips32.c rename to external/libwebp-1.0.0/src/dsp/lossless_enc_mips32.c index 4186b9f5..e7b58f4e 100644 --- a/external/libwebp-0.6.0/src/dsp/lossless_enc_mips32.c +++ b/external/libwebp-1.0.0/src/dsp/lossless_enc_mips32.c @@ -12,9 +12,9 @@ // Author(s): Djordje Pesut (djordje.pesut@imgtec.com) // Jovan Zelincevic (jovan.zelincevic@imgtec.com) -#include "./dsp.h" -#include "./lossless.h" -#include "./lossless_common.h" +#include "src/dsp/dsp.h" +#include "src/dsp/lossless.h" +#include "src/dsp/lossless_common.h" #if defined(WEBP_USE_MIPS32) @@ -23,7 +23,7 @@ #include #include -static float FastSLog2Slow(uint32_t v) { +static float FastSLog2Slow_MIPS32(uint32_t v) { assert(v >= LOG_LOOKUP_IDX_MAX); if (v < APPROX_LOG_WITH_CORRECTION_MAX) { uint32_t log_cnt, y, correction; @@ -59,7 +59,7 @@ static float FastSLog2Slow(uint32_t v) { } } -static float FastLog2Slow(uint32_t v) { +static float FastLog2Slow_MIPS32(uint32_t v) { assert(v >= LOG_LOOKUP_IDX_MAX); if (v < APPROX_LOG_WITH_CORRECTION_MAX) { uint32_t log_cnt, y; @@ -104,7 +104,7 @@ static float FastLog2Slow(uint32_t v) { // pop += 2; // } // return (double)cost; -static double ExtraCost(const uint32_t* const population, int length) { +static double ExtraCost_MIPS32(const uint32_t* const population, int length) { int i, temp0, temp1; const uint32_t* pop = &population[4]; const uint32_t* const LoopEnd = &population[length]; @@ -149,8 +149,8 @@ static double ExtraCost(const uint32_t* const population, int length) { // pY += 2; // } // return (double)cost; -static double ExtraCostCombined(const uint32_t* const X, - const uint32_t* const Y, int length) { +static double ExtraCostCombined_MIPS32(const uint32_t* const X, + const uint32_t* const Y, int length) { int i, temp0, temp1, temp2, temp3; const uint32_t* pX = &X[4]; const uint32_t* pY = &Y[4]; @@ -241,9 +241,9 @@ static WEBP_INLINE void GetEntropyUnrefinedHelper( *i_prev = i; } -static void GetEntropyUnrefined(const uint32_t X[], int length, - VP8LBitEntropy* const bit_entropy, - VP8LStreaks* const stats) { +static void GetEntropyUnrefined_MIPS32(const uint32_t X[], int length, + VP8LBitEntropy* const bit_entropy, + VP8LStreaks* const stats) { int i; int i_prev = 0; uint32_t x_prev = X[0]; @@ -262,26 +262,27 @@ static void GetEntropyUnrefined(const uint32_t X[], int length, bit_entropy->entropy += VP8LFastSLog2(bit_entropy->sum); } -static void GetCombinedEntropyUnrefined(const uint32_t X[], const uint32_t Y[], - int length, - VP8LBitEntropy* const bit_entropy, - VP8LStreaks* const stats) { +static void GetCombinedEntropyUnrefined_MIPS32(const uint32_t X[], + const uint32_t Y[], + int length, + VP8LBitEntropy* const entropy, + VP8LStreaks* const stats) { int i = 1; int i_prev = 0; uint32_t xy_prev = X[0] + Y[0]; memset(stats, 0, sizeof(*stats)); - VP8LBitEntropyInit(bit_entropy); + VP8LBitEntropyInit(entropy); for (i = 1; i < length; ++i) { const uint32_t xy = X[i] + Y[i]; if (xy != xy_prev) { - GetEntropyUnrefinedHelper(xy, i, &xy_prev, &i_prev, bit_entropy, stats); + GetEntropyUnrefinedHelper(xy, i, &xy_prev, &i_prev, entropy, stats); } } - GetEntropyUnrefinedHelper(0, i, &xy_prev, &i_prev, bit_entropy, stats); + GetEntropyUnrefinedHelper(0, i, &xy_prev, &i_prev, entropy, stats); - bit_entropy->entropy += VP8LFastSLog2(bit_entropy->sum); + entropy->entropy += VP8LFastSLog2(entropy->sum); } #define ASM_START \ @@ -374,9 +375,9 @@ static void GetCombinedEntropyUnrefined(const uint32_t X[], const uint32_t Y[], } \ } while (0) -static void HistogramAdd(const VP8LHistogram* const a, - const VP8LHistogram* const b, - VP8LHistogram* const out) { +static void HistogramAdd_MIPS32(const VP8LHistogram* const a, + const VP8LHistogram* const b, + VP8LHistogram* const out) { uint32_t temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; const int extra_cache_size = VP8LHistogramNumCodes(a->palette_code_bits_) - (NUM_LITERAL_CODES + NUM_LENGTH_CODES); @@ -415,13 +416,13 @@ static void HistogramAdd(const VP8LHistogram* const a, extern void VP8LEncDspInitMIPS32(void); WEBP_TSAN_IGNORE_FUNCTION void VP8LEncDspInitMIPS32(void) { - VP8LFastSLog2Slow = FastSLog2Slow; - VP8LFastLog2Slow = FastLog2Slow; - VP8LExtraCost = ExtraCost; - VP8LExtraCostCombined = ExtraCostCombined; - VP8LGetEntropyUnrefined = GetEntropyUnrefined; - VP8LGetCombinedEntropyUnrefined = GetCombinedEntropyUnrefined; - VP8LHistogramAdd = HistogramAdd; + VP8LFastSLog2Slow = FastSLog2Slow_MIPS32; + VP8LFastLog2Slow = FastLog2Slow_MIPS32; + VP8LExtraCost = ExtraCost_MIPS32; + VP8LExtraCostCombined = ExtraCostCombined_MIPS32; + VP8LGetEntropyUnrefined = GetEntropyUnrefined_MIPS32; + VP8LGetCombinedEntropyUnrefined = GetCombinedEntropyUnrefined_MIPS32; + VP8LHistogramAdd = HistogramAdd_MIPS32; } #else // !WEBP_USE_MIPS32 diff --git a/external/libwebp-0.6.0/src/dsp/lossless_enc_mips_dsp_r2.c b/external/libwebp-1.0.0/src/dsp/lossless_enc_mips_dsp_r2.c similarity index 89% rename from external/libwebp-0.6.0/src/dsp/lossless_enc_mips_dsp_r2.c rename to external/libwebp-1.0.0/src/dsp/lossless_enc_mips_dsp_r2.c index 0abf3c4f..5855e6ae 100644 --- a/external/libwebp-0.6.0/src/dsp/lossless_enc_mips_dsp_r2.c +++ b/external/libwebp-1.0.0/src/dsp/lossless_enc_mips_dsp_r2.c @@ -12,14 +12,14 @@ // Author(s): Djordje Pesut (djordje.pesut@imgtec.com) // Jovan Zelincevic (jovan.zelincevic@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MIPS_DSP_R2) -#include "./lossless.h" +#include "src/dsp/lossless.h" -static void SubtractGreenFromBlueAndRed(uint32_t* argb_data, - int num_pixels) { +static void SubtractGreenFromBlueAndRed_MIPSdspR2(uint32_t* argb_data, + int num_pixels) { uint32_t temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; uint32_t* const p_loop1_end = argb_data + (num_pixels & ~3); uint32_t* const p_loop2_end = p_loop1_end + (num_pixels & 3); @@ -78,8 +78,8 @@ static WEBP_INLINE uint32_t ColorTransformDelta(int8_t color_pred, return (uint32_t)((int)(color_pred) * color) >> 5; } -static void TransformColor(const VP8LMultipliers* const m, uint32_t* data, - int num_pixels) { +static void TransformColor_MIPSdspR2(const VP8LMultipliers* const m, + uint32_t* data, int num_pixels) { int temp0, temp1, temp2, temp3, temp4, temp5; uint32_t argb, argb1, new_red, new_red1; const uint32_t G_to_R = m->green_to_red_; @@ -171,10 +171,13 @@ static WEBP_INLINE uint8_t TransformColorBlue(uint8_t green_to_blue, return (new_blue & 0xff); } -static void CollectColorBlueTransforms(const uint32_t* argb, int stride, - int tile_width, int tile_height, - int green_to_blue, int red_to_blue, - int histo[]) { +static void CollectColorBlueTransforms_MIPSdspR2(const uint32_t* argb, + int stride, + int tile_width, + int tile_height, + int green_to_blue, + int red_to_blue, + int histo[]) { const int rtb = (red_to_blue << 16) | (red_to_blue & 0xffff); const int gtb = (green_to_blue << 16) | (green_to_blue & 0xffff); const uint32_t mask = 0xff00ffu; @@ -222,9 +225,12 @@ static WEBP_INLINE uint8_t TransformColorRed(uint8_t green_to_red, return (new_red & 0xff); } -static void CollectColorRedTransforms(const uint32_t* argb, int stride, - int tile_width, int tile_height, - int green_to_red, int histo[]) { +static void CollectColorRedTransforms_MIPSdspR2(const uint32_t* argb, + int stride, + int tile_width, + int tile_height, + int green_to_red, + int histo[]) { const int gtr = (green_to_red << 16) | (green_to_red & 0xffff); while (tile_height-- > 0) { int x; @@ -262,10 +268,10 @@ static void CollectColorRedTransforms(const uint32_t* argb, int stride, extern void VP8LEncDspInitMIPSdspR2(void); WEBP_TSAN_IGNORE_FUNCTION void VP8LEncDspInitMIPSdspR2(void) { - VP8LSubtractGreenFromBlueAndRed = SubtractGreenFromBlueAndRed; - VP8LTransformColor = TransformColor; - VP8LCollectColorBlueTransforms = CollectColorBlueTransforms; - VP8LCollectColorRedTransforms = CollectColorRedTransforms; + VP8LSubtractGreenFromBlueAndRed = SubtractGreenFromBlueAndRed_MIPSdspR2; + VP8LTransformColor = TransformColor_MIPSdspR2; + VP8LCollectColorBlueTransforms = CollectColorBlueTransforms_MIPSdspR2; + VP8LCollectColorRedTransforms = CollectColorRedTransforms_MIPSdspR2; } #else // !WEBP_USE_MIPS_DSP_R2 diff --git a/external/libwebp-0.6.0/src/dsp/lossless_enc_msa.c b/external/libwebp-1.0.0/src/dsp/lossless_enc_msa.c similarity index 92% rename from external/libwebp-0.6.0/src/dsp/lossless_enc_msa.c rename to external/libwebp-1.0.0/src/dsp/lossless_enc_msa.c index 2f69ba3b..600dddfb 100644 --- a/external/libwebp-0.6.0/src/dsp/lossless_enc_msa.c +++ b/external/libwebp-1.0.0/src/dsp/lossless_enc_msa.c @@ -11,12 +11,12 @@ // // Authors: Prashant Patil (Prashant.Patil@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MSA) -#include "./lossless.h" -#include "./msa_macro.h" +#include "src/dsp/lossless.h" +#include "src/dsp/msa_macro.h" #define TRANSFORM_COLOR_8(src0, src1, dst0, dst1, c0, c1, mask0, mask1) do { \ v8i16 g0, g1, t0, t1, t2, t3; \ @@ -48,8 +48,8 @@ dst = VSHF_UB(src, t0, mask1); \ } while (0) -static void TransformColor(const VP8LMultipliers* const m, uint32_t* data, - int num_pixels) { +static void TransformColor_MSA(const VP8LMultipliers* const m, uint32_t* data, + int num_pixels) { v16u8 src0, dst0; const v16i8 g2br = (v16i8)__msa_fill_w(m->green_to_blue_ | (m->green_to_red_ << 16)); @@ -94,7 +94,8 @@ static void TransformColor(const VP8LMultipliers* const m, uint32_t* data, } } -static void SubtractGreenFromBlueAndRed(uint32_t* argb_data, int num_pixels) { +static void SubtractGreenFromBlueAndRed_MSA(uint32_t* argb_data, + int num_pixels) { int i; uint8_t* ptemp_data = (uint8_t*)argb_data; v16u8 src0, dst0, tmp0; @@ -136,8 +137,8 @@ static void SubtractGreenFromBlueAndRed(uint32_t* argb_data, int num_pixels) { extern void VP8LEncDspInitMSA(void); WEBP_TSAN_IGNORE_FUNCTION void VP8LEncDspInitMSA(void) { - VP8LSubtractGreenFromBlueAndRed = SubtractGreenFromBlueAndRed; - VP8LTransformColor = TransformColor; + VP8LSubtractGreenFromBlueAndRed = SubtractGreenFromBlueAndRed_MSA; + VP8LTransformColor = TransformColor_MSA; } #else // !WEBP_USE_MSA diff --git a/external/libwebp-0.6.0/src/dsp/lossless_enc_neon.c b/external/libwebp-1.0.0/src/dsp/lossless_enc_neon.c similarity index 82% rename from external/libwebp-0.6.0/src/dsp/lossless_enc_neon.c rename to external/libwebp-1.0.0/src/dsp/lossless_enc_neon.c index 4c56f259..7c7b73f8 100644 --- a/external/libwebp-0.6.0/src/dsp/lossless_enc_neon.c +++ b/external/libwebp-1.0.0/src/dsp/lossless_enc_neon.c @@ -11,14 +11,14 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_NEON) #include -#include "./lossless.h" -#include "./neon.h" +#include "src/dsp/lossless.h" +#include "src/dsp/neon.h" //------------------------------------------------------------------------------ // Subtract-Green Transform @@ -36,8 +36,8 @@ static const uint8_t kGreenShuffle[16] = { 1, 255, 1, 255, 5, 255, 5, 255, 9, 255, 9, 255, 13, 255, 13, 255 }; -static WEBP_INLINE uint8x16_t DoGreenShuffle(const uint8x16_t argb, - const uint8x16_t shuffle) { +static WEBP_INLINE uint8x16_t DoGreenShuffle_NEON(const uint8x16_t argb, + const uint8x16_t shuffle) { return vcombine_u8(vtbl1q_u8(argb, vget_low_u8(shuffle)), vtbl1q_u8(argb, vget_high_u8(shuffle))); } @@ -45,14 +45,15 @@ static WEBP_INLINE uint8x16_t DoGreenShuffle(const uint8x16_t argb, // 255 = byte will be zeroed static const uint8_t kGreenShuffle[8] = { 1, 255, 1, 255, 5, 255, 5, 255 }; -static WEBP_INLINE uint8x16_t DoGreenShuffle(const uint8x16_t argb, - const uint8x8_t shuffle) { +static WEBP_INLINE uint8x16_t DoGreenShuffle_NEON(const uint8x16_t argb, + const uint8x8_t shuffle) { return vcombine_u8(vtbl1_u8(vget_low_u8(argb), shuffle), vtbl1_u8(vget_high_u8(argb), shuffle)); } #endif // USE_VTBLQ -static void SubtractGreenFromBlueAndRed(uint32_t* argb_data, int num_pixels) { +static void SubtractGreenFromBlueAndRed_NEON(uint32_t* argb_data, + int num_pixels) { const uint32_t* const end = argb_data + (num_pixels & ~3); #ifdef USE_VTBLQ const uint8x16_t shuffle = vld1q_u8(kGreenShuffle); @@ -61,7 +62,7 @@ static void SubtractGreenFromBlueAndRed(uint32_t* argb_data, int num_pixels) { #endif for (; argb_data < end; argb_data += 4) { const uint8x16_t argb = vld1q_u8((uint8_t*)argb_data); - const uint8x16_t greens = DoGreenShuffle(argb, shuffle); + const uint8x16_t greens = DoGreenShuffle_NEON(argb, shuffle); vst1q_u8((uint8_t*)argb_data, vsubq_u8(argb, greens)); } // fallthrough and finish off with plain-C @@ -71,8 +72,8 @@ static void SubtractGreenFromBlueAndRed(uint32_t* argb_data, int num_pixels) { //------------------------------------------------------------------------------ // Color Transform -static void TransformColor(const VP8LMultipliers* const m, - uint32_t* argb_data, int num_pixels) { +static void TransformColor_NEON(const VP8LMultipliers* const m, + uint32_t* argb_data, int num_pixels) { // sign-extended multiplying constants, pre-shifted by 6. #define CST(X) (((int16_t)(m->X << 8)) >> 6) const int16_t rb[8] = { @@ -102,7 +103,7 @@ static void TransformColor(const VP8LMultipliers* const m, for (i = 0; i + 4 <= num_pixels; i += 4) { const uint8x16_t in = vld1q_u8((uint8_t*)(argb_data + i)); // 0 g 0 g - const uint8x16_t greens = DoGreenShuffle(in, shuffle); + const uint8x16_t greens = DoGreenShuffle_NEON(in, shuffle); // x dr x db1 const int16x8_t A = vqdmulhq_s16(vreinterpretq_s16_u8(greens), mults_rb); // r 0 b 0 @@ -132,8 +133,8 @@ static void TransformColor(const VP8LMultipliers* const m, extern void VP8LEncDspInitNEON(void); WEBP_TSAN_IGNORE_FUNCTION void VP8LEncDspInitNEON(void) { - VP8LSubtractGreenFromBlueAndRed = SubtractGreenFromBlueAndRed; - VP8LTransformColor = TransformColor; + VP8LSubtractGreenFromBlueAndRed = SubtractGreenFromBlueAndRed_NEON; + VP8LTransformColor = TransformColor_NEON; } #else // !WEBP_USE_NEON diff --git a/external/libwebp-0.6.0/src/dsp/lossless_enc_sse2.c b/external/libwebp-1.0.0/src/dsp/lossless_enc_sse2.c similarity index 88% rename from external/libwebp-0.6.0/src/dsp/lossless_enc_sse2.c rename to external/libwebp-1.0.0/src/dsp/lossless_enc_sse2.c index 8ad85d94..f84a9909 100644 --- a/external/libwebp-0.6.0/src/dsp/lossless_enc_sse2.c +++ b/external/libwebp-1.0.0/src/dsp/lossless_enc_sse2.c @@ -11,22 +11,23 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_SSE2) #include #include -#include "./lossless.h" -#include "./common_sse2.h" -#include "./lossless_common.h" +#include "src/dsp/lossless.h" +#include "src/dsp/common_sse2.h" +#include "src/dsp/lossless_common.h" // For sign-extended multiplying constants, pre-shifted by 5: -#define CST_5b(X) (((int16_t)((uint16_t)X << 8)) >> 5) +#define CST_5b(X) (((int16_t)((uint16_t)(X) << 8)) >> 5) //------------------------------------------------------------------------------ // Subtract-Green Transform -static void SubtractGreenFromBlueAndRed(uint32_t* argb_data, int num_pixels) { +static void SubtractGreenFromBlueAndRed_SSE2(uint32_t* argb_data, + int num_pixels) { int i; for (i = 0; i + 4 <= num_pixels; i += 4) { const __m128i in = _mm_loadu_si128((__m128i*)&argb_data[i]); // argb @@ -45,16 +46,14 @@ static void SubtractGreenFromBlueAndRed(uint32_t* argb_data, int num_pixels) { //------------------------------------------------------------------------------ // Color Transform -static void TransformColor(const VP8LMultipliers* const m, - uint32_t* argb_data, int num_pixels) { - const __m128i mults_rb = _mm_set_epi16( - CST_5b(m->green_to_red_), CST_5b(m->green_to_blue_), - CST_5b(m->green_to_red_), CST_5b(m->green_to_blue_), - CST_5b(m->green_to_red_), CST_5b(m->green_to_blue_), - CST_5b(m->green_to_red_), CST_5b(m->green_to_blue_)); - const __m128i mults_b2 = _mm_set_epi16( - CST_5b(m->red_to_blue_), 0, CST_5b(m->red_to_blue_), 0, - CST_5b(m->red_to_blue_), 0, CST_5b(m->red_to_blue_), 0); +#define MK_CST_16(HI, LO) \ + _mm_set1_epi32((int)(((uint32_t)(HI) << 16) | ((LO) & 0xffff))) + +static void TransformColor_SSE2(const VP8LMultipliers* const m, + uint32_t* argb_data, int num_pixels) { + const __m128i mults_rb = MK_CST_16(CST_5b(m->green_to_red_), + CST_5b(m->green_to_blue_)); + const __m128i mults_b2 = MK_CST_16(CST_5b(m->red_to_blue_), 0); const __m128i mask_ag = _mm_set1_epi32(0xff00ff00); // alpha-green masks const __m128i mask_rb = _mm_set1_epi32(0x00ff00ff); // red-blue masks int i; @@ -80,16 +79,12 @@ static void TransformColor(const VP8LMultipliers* const m, //------------------------------------------------------------------------------ #define SPAN 8 -static void CollectColorBlueTransforms(const uint32_t* argb, int stride, - int tile_width, int tile_height, - int green_to_blue, int red_to_blue, - int histo[]) { - const __m128i mults_r = _mm_set_epi16( - CST_5b(red_to_blue), 0, CST_5b(red_to_blue), 0, - CST_5b(red_to_blue), 0, CST_5b(red_to_blue), 0); - const __m128i mults_g = _mm_set_epi16( - 0, CST_5b(green_to_blue), 0, CST_5b(green_to_blue), - 0, CST_5b(green_to_blue), 0, CST_5b(green_to_blue)); +static void CollectColorBlueTransforms_SSE2(const uint32_t* argb, int stride, + int tile_width, int tile_height, + int green_to_blue, int red_to_blue, + int histo[]) { + const __m128i mults_r = MK_CST_16(CST_5b(red_to_blue), 0); + const __m128i mults_g = MK_CST_16(0, CST_5b(green_to_blue)); const __m128i mask_g = _mm_set1_epi32(0x00ff00); // green mask const __m128i mask_b = _mm_set1_epi32(0x0000ff); // blue mask int y; @@ -131,12 +126,10 @@ static void CollectColorBlueTransforms(const uint32_t* argb, int stride, } } -static void CollectColorRedTransforms(const uint32_t* argb, int stride, - int tile_width, int tile_height, - int green_to_red, int histo[]) { - const __m128i mults_g = _mm_set_epi16( - 0, CST_5b(green_to_red), 0, CST_5b(green_to_red), - 0, CST_5b(green_to_red), 0, CST_5b(green_to_red)); +static void CollectColorRedTransforms_SSE2(const uint32_t* argb, int stride, + int tile_width, int tile_height, + int green_to_red, int histo[]) { + const __m128i mults_g = MK_CST_16(0, CST_5b(green_to_red)); const __m128i mask_g = _mm_set1_epi32(0x00ff00); // green mask const __m128i mask = _mm_set1_epi32(0xff); @@ -173,12 +166,13 @@ static void CollectColorRedTransforms(const uint32_t* argb, int stride, } } #undef SPAN +#undef MK_CST_16 //------------------------------------------------------------------------------ #define LINE_SIZE 16 // 8 or 16 -static void AddVector(const uint32_t* a, const uint32_t* b, uint32_t* out, - int size) { +static void AddVector_SSE2(const uint32_t* a, const uint32_t* b, uint32_t* out, + int size) { int i; assert(size % LINE_SIZE == 0); for (i = 0; i < size; i += LINE_SIZE) { @@ -203,7 +197,7 @@ static void AddVector(const uint32_t* a, const uint32_t* b, uint32_t* out, } } -static void AddVectorEq(const uint32_t* a, uint32_t* out, int size) { +static void AddVectorEq_SSE2(const uint32_t* a, uint32_t* out, int size) { int i; assert(size % LINE_SIZE == 0); for (i = 0; i < size; i += LINE_SIZE) { @@ -231,22 +225,22 @@ static void AddVectorEq(const uint32_t* a, uint32_t* out, int size) { // Note we are adding uint32_t's as *signed* int32's (using _mm_add_epi32). But // that's ok since the histogram values are less than 1<<28 (max picture size). -static void HistogramAdd(const VP8LHistogram* const a, - const VP8LHistogram* const b, - VP8LHistogram* const out) { +static void HistogramAdd_SSE2(const VP8LHistogram* const a, + const VP8LHistogram* const b, + VP8LHistogram* const out) { int i; const int literal_size = VP8LHistogramNumCodes(a->palette_code_bits_); assert(a->palette_code_bits_ == b->palette_code_bits_); if (b != out) { - AddVector(a->literal_, b->literal_, out->literal_, NUM_LITERAL_CODES); - AddVector(a->red_, b->red_, out->red_, NUM_LITERAL_CODES); - AddVector(a->blue_, b->blue_, out->blue_, NUM_LITERAL_CODES); - AddVector(a->alpha_, b->alpha_, out->alpha_, NUM_LITERAL_CODES); + AddVector_SSE2(a->literal_, b->literal_, out->literal_, NUM_LITERAL_CODES); + AddVector_SSE2(a->red_, b->red_, out->red_, NUM_LITERAL_CODES); + AddVector_SSE2(a->blue_, b->blue_, out->blue_, NUM_LITERAL_CODES); + AddVector_SSE2(a->alpha_, b->alpha_, out->alpha_, NUM_LITERAL_CODES); } else { - AddVectorEq(a->literal_, out->literal_, NUM_LITERAL_CODES); - AddVectorEq(a->red_, out->red_, NUM_LITERAL_CODES); - AddVectorEq(a->blue_, out->blue_, NUM_LITERAL_CODES); - AddVectorEq(a->alpha_, out->alpha_, NUM_LITERAL_CODES); + AddVectorEq_SSE2(a->literal_, out->literal_, NUM_LITERAL_CODES); + AddVectorEq_SSE2(a->red_, out->red_, NUM_LITERAL_CODES); + AddVectorEq_SSE2(a->blue_, out->blue_, NUM_LITERAL_CODES); + AddVectorEq_SSE2(a->alpha_, out->alpha_, NUM_LITERAL_CODES); } for (i = NUM_LITERAL_CODES; i < literal_size; ++i) { out->literal_[i] = a->literal_[i] + b->literal_[i]; @@ -261,9 +255,9 @@ static void HistogramAdd(const VP8LHistogram* const a, // Checks whether the X or Y contribution is worth computing and adding. // Used in loop unrolling. -#define ANALYZE_X_OR_Y(x_or_y, j) \ - do { \ - if (x_or_y[i + j] != 0) retval -= VP8LFastSLog2(x_or_y[i + j]); \ +#define ANALYZE_X_OR_Y(x_or_y, j) \ + do { \ + if ((x_or_y)[i + (j)] != 0) retval -= VP8LFastSLog2((x_or_y)[i + (j)]); \ } while (0) // Checks whether the X + Y contribution is worth computing and adding. @@ -276,7 +270,7 @@ static void HistogramAdd(const VP8LHistogram* const a, } \ } while (0) -static float CombinedShannonEntropy(const int X[256], const int Y[256]) { +static float CombinedShannonEntropy_SSE2(const int X[256], const int Y[256]) { int i; double retval = 0.; int sumX, sumXY; @@ -332,8 +326,8 @@ static float CombinedShannonEntropy(const int X[256], const int Y[256]) { //------------------------------------------------------------------------------ -static int VectorMismatch(const uint32_t* const array1, - const uint32_t* const array2, int length) { +static int VectorMismatch_SSE2(const uint32_t* const array1, + const uint32_t* const array2, int length) { int match_len; if (length >= 12) { @@ -574,8 +568,8 @@ static void PredictorSub10_SSE2(const uint32_t* in, const uint32_t* upper, } // Predictor11: select. -static void GetSumAbsDiff32(const __m128i* const A, const __m128i* const B, - __m128i* const out) { +static void GetSumAbsDiff32_SSE2(const __m128i* const A, const __m128i* const B, + __m128i* const out) { // We can unpack with any value on the upper 32 bits, provided it's the same // on both operands (to that their sum of abs diff is zero). Here we use *A. const __m128i A_lo = _mm_unpacklo_epi32(*A, *A); @@ -596,8 +590,8 @@ static void PredictorSub11_SSE2(const uint32_t* in, const uint32_t* upper, const __m128i TL = _mm_loadu_si128((const __m128i*)&upper[i - 1]); const __m128i src = _mm_loadu_si128((const __m128i*)&in[i]); __m128i pa, pb; - GetSumAbsDiff32(&T, &TL, &pa); // pa = sum |T-TL| - GetSumAbsDiff32(&L, &TL, &pb); // pb = sum |L-TL| + GetSumAbsDiff32_SSE2(&T, &TL, &pa); // pa = sum |T-TL| + GetSumAbsDiff32_SSE2(&L, &TL, &pb); // pb = sum |L-TL| { const __m128i mask = _mm_cmpgt_epi32(pb, pa); const __m128i A = _mm_and_si128(mask, L); @@ -677,13 +671,13 @@ static void PredictorSub13_SSE2(const uint32_t* in, const uint32_t* upper, extern void VP8LEncDspInitSSE2(void); WEBP_TSAN_IGNORE_FUNCTION void VP8LEncDspInitSSE2(void) { - VP8LSubtractGreenFromBlueAndRed = SubtractGreenFromBlueAndRed; - VP8LTransformColor = TransformColor; - VP8LCollectColorBlueTransforms = CollectColorBlueTransforms; - VP8LCollectColorRedTransforms = CollectColorRedTransforms; - VP8LHistogramAdd = HistogramAdd; - VP8LCombinedShannonEntropy = CombinedShannonEntropy; - VP8LVectorMismatch = VectorMismatch; + VP8LSubtractGreenFromBlueAndRed = SubtractGreenFromBlueAndRed_SSE2; + VP8LTransformColor = TransformColor_SSE2; + VP8LCollectColorBlueTransforms = CollectColorBlueTransforms_SSE2; + VP8LCollectColorRedTransforms = CollectColorRedTransforms_SSE2; + VP8LHistogramAdd = HistogramAdd_SSE2; + VP8LCombinedShannonEntropy = CombinedShannonEntropy_SSE2; + VP8LVectorMismatch = VectorMismatch_SSE2; VP8LBundleColorMap = BundleColorMap_SSE2; VP8LPredictorsSub[0] = PredictorSub0_SSE2; diff --git a/external/libwebp-1.0.0/src/dsp/lossless_enc_sse41.c b/external/libwebp-1.0.0/src/dsp/lossless_enc_sse41.c new file mode 100644 index 00000000..2e12a712 --- /dev/null +++ b/external/libwebp-1.0.0/src/dsp/lossless_enc_sse41.c @@ -0,0 +1,148 @@ +// Copyright 2015 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// SSE4.1 variant of methods for lossless encoder +// +// Author: Skal (pascal.massimino@gmail.com) + +#include "src/dsp/dsp.h" + +#if defined(WEBP_USE_SSE41) +#include +#include +#include "src/dsp/lossless.h" + +// For sign-extended multiplying constants, pre-shifted by 5: +#define CST_5b(X) (((int16_t)((uint16_t)(X) << 8)) >> 5) + +//------------------------------------------------------------------------------ +// Subtract-Green Transform + +static void SubtractGreenFromBlueAndRed_SSE41(uint32_t* argb_data, + int num_pixels) { + int i; + const __m128i kCstShuffle = _mm_set_epi8(-1, 13, -1, 13, -1, 9, -1, 9, + -1, 5, -1, 5, -1, 1, -1, 1); + for (i = 0; i + 4 <= num_pixels; i += 4) { + const __m128i in = _mm_loadu_si128((__m128i*)&argb_data[i]); + const __m128i in_0g0g = _mm_shuffle_epi8(in, kCstShuffle); + const __m128i out = _mm_sub_epi8(in, in_0g0g); + _mm_storeu_si128((__m128i*)&argb_data[i], out); + } + // fallthrough and finish off with plain-C + if (i != num_pixels) { + VP8LSubtractGreenFromBlueAndRed_C(argb_data + i, num_pixels - i); + } +} + +//------------------------------------------------------------------------------ +// Color Transform + +#define SPAN 8 +static void CollectColorBlueTransforms_SSE41(const uint32_t* argb, int stride, + int tile_width, int tile_height, + int green_to_blue, int red_to_blue, + int histo[]) { + const __m128i mults_r = _mm_set1_epi16(CST_5b(red_to_blue)); + const __m128i mults_g = _mm_set1_epi16(CST_5b(green_to_blue)); + const __m128i mask_g = _mm_set1_epi16(0xff00); // green mask + const __m128i mask_gb = _mm_set1_epi32(0xffff); // green/blue mask + const __m128i mask_b = _mm_set1_epi16(0x00ff); // blue mask + const __m128i shuffler_lo = _mm_setr_epi8(-1, 2, -1, 6, -1, 10, -1, 14, -1, + -1, -1, -1, -1, -1, -1, -1); + const __m128i shuffler_hi = _mm_setr_epi8(-1, -1, -1, -1, -1, -1, -1, -1, -1, + 2, -1, 6, -1, 10, -1, 14); + int y; + for (y = 0; y < tile_height; ++y) { + const uint32_t* const src = argb + y * stride; + int i, x; + for (x = 0; x + SPAN <= tile_width; x += SPAN) { + uint16_t values[SPAN]; + const __m128i in0 = _mm_loadu_si128((__m128i*)&src[x + 0]); + const __m128i in1 = _mm_loadu_si128((__m128i*)&src[x + SPAN / 2]); + const __m128i r0 = _mm_shuffle_epi8(in0, shuffler_lo); + const __m128i r1 = _mm_shuffle_epi8(in1, shuffler_hi); + const __m128i r = _mm_or_si128(r0, r1); // r 0 + const __m128i gb0 = _mm_and_si128(in0, mask_gb); + const __m128i gb1 = _mm_and_si128(in1, mask_gb); + const __m128i gb = _mm_packus_epi32(gb0, gb1); // g b + const __m128i g = _mm_and_si128(gb, mask_g); // g 0 + const __m128i A = _mm_mulhi_epi16(r, mults_r); // x dbr + const __m128i B = _mm_mulhi_epi16(g, mults_g); // x dbg + const __m128i C = _mm_sub_epi8(gb, B); // x b' + const __m128i D = _mm_sub_epi8(C, A); // x b'' + const __m128i E = _mm_and_si128(D, mask_b); // 0 b'' + _mm_storeu_si128((__m128i*)values, E); + for (i = 0; i < SPAN; ++i) ++histo[values[i]]; + } + } + { + const int left_over = tile_width & (SPAN - 1); + if (left_over > 0) { + VP8LCollectColorBlueTransforms_C(argb + tile_width - left_over, stride, + left_over, tile_height, + green_to_blue, red_to_blue, histo); + } + } +} + +static void CollectColorRedTransforms_SSE41(const uint32_t* argb, int stride, + int tile_width, int tile_height, + int green_to_red, int histo[]) { + const __m128i mults_g = _mm_set1_epi16(CST_5b(green_to_red)); + const __m128i mask_g = _mm_set1_epi32(0x00ff00); // green mask + const __m128i mask = _mm_set1_epi16(0xff); + + int y; + for (y = 0; y < tile_height; ++y) { + const uint32_t* const src = argb + y * stride; + int i, x; + for (x = 0; x + SPAN <= tile_width; x += SPAN) { + uint16_t values[SPAN]; + const __m128i in0 = _mm_loadu_si128((__m128i*)&src[x + 0]); + const __m128i in1 = _mm_loadu_si128((__m128i*)&src[x + SPAN / 2]); + const __m128i g0 = _mm_and_si128(in0, mask_g); // 0 0 | g 0 + const __m128i g1 = _mm_and_si128(in1, mask_g); + const __m128i g = _mm_packus_epi32(g0, g1); // g 0 + const __m128i A0 = _mm_srli_epi32(in0, 16); // 0 0 | x r + const __m128i A1 = _mm_srli_epi32(in1, 16); + const __m128i A = _mm_packus_epi32(A0, A1); // x r + const __m128i B = _mm_mulhi_epi16(g, mults_g); // x dr + const __m128i C = _mm_sub_epi8(A, B); // x r' + const __m128i D = _mm_and_si128(C, mask); // 0 r' + _mm_storeu_si128((__m128i*)values, D); + for (i = 0; i < SPAN; ++i) ++histo[values[i]]; + } + } + { + const int left_over = tile_width & (SPAN - 1); + if (left_over > 0) { + VP8LCollectColorRedTransforms_C(argb + tile_width - left_over, stride, + left_over, tile_height, green_to_red, + histo); + } + } +} + +//------------------------------------------------------------------------------ +// Entry point + +extern void VP8LEncDspInitSSE41(void); + +WEBP_TSAN_IGNORE_FUNCTION void VP8LEncDspInitSSE41(void) { + VP8LSubtractGreenFromBlueAndRed = SubtractGreenFromBlueAndRed_SSE41; + VP8LCollectColorBlueTransforms = CollectColorBlueTransforms_SSE41; + VP8LCollectColorRedTransforms = CollectColorRedTransforms_SSE41; +} + +#else // !WEBP_USE_SSE41 + +WEBP_DSP_INIT_STUB(VP8LEncDspInitSSE41) + +#endif // WEBP_USE_SSE41 diff --git a/external/libwebp-0.6.0/src/dsp/lossless_mips_dsp_r2.c b/external/libwebp-1.0.0/src/dsp/lossless_mips_dsp_r2.c similarity index 91% rename from external/libwebp-0.6.0/src/dsp/lossless_mips_dsp_r2.c rename to external/libwebp-1.0.0/src/dsp/lossless_mips_dsp_r2.c index 2984ce8d..9888854d 100644 --- a/external/libwebp-0.6.0/src/dsp/lossless_mips_dsp_r2.c +++ b/external/libwebp-1.0.0/src/dsp/lossless_mips_dsp_r2.c @@ -12,12 +12,12 @@ // Author(s): Djordje Pesut (djordje.pesut@imgtec.com) // Jovan Zelincevic (jovan.zelincevic@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MIPS_DSP_R2) -#include "./lossless.h" -#include "./lossless_common.h" +#include "src/dsp/lossless.h" +#include "src/dsp/lossless_common.h" #define MAP_COLOR_FUNCS(FUNC_NAME, TYPE, GET_INDEX, GET_VALUE) \ static void FUNC_NAME(const TYPE* src, \ @@ -86,8 +86,8 @@ static void FUNC_NAME(const TYPE* src, \ } \ } -MAP_COLOR_FUNCS(MapARGB, uint32_t, VP8GetARGBIndex, VP8GetARGBValue) -MAP_COLOR_FUNCS(MapAlpha, uint8_t, VP8GetAlphaIndex, VP8GetAlphaValue) +MAP_COLOR_FUNCS(MapARGB_MIPSdspR2, uint32_t, VP8GetARGBIndex, VP8GetARGBValue) +MAP_COLOR_FUNCS(MapAlpha_MIPSdspR2, uint8_t, VP8GetAlphaIndex, VP8GetAlphaValue) #undef MAP_COLOR_FUNCS @@ -188,48 +188,52 @@ static WEBP_INLINE uint32_t Average4(uint32_t a0, uint32_t a1, return Average2(Average2(a0, a1), Average2(a2, a3)); } -static uint32_t Predictor5(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor5_MIPSdspR2(uint32_t left, const uint32_t* const top) { return Average3(left, top[0], top[1]); } -static uint32_t Predictor6(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor6_MIPSdspR2(uint32_t left, const uint32_t* const top) { return Average2(left, top[-1]); } -static uint32_t Predictor7(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor7_MIPSdspR2(uint32_t left, const uint32_t* const top) { return Average2(left, top[0]); } -static uint32_t Predictor8(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor8_MIPSdspR2(uint32_t left, const uint32_t* const top) { (void)left; return Average2(top[-1], top[0]); } -static uint32_t Predictor9(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor9_MIPSdspR2(uint32_t left, const uint32_t* const top) { (void)left; return Average2(top[0], top[1]); } -static uint32_t Predictor10(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor10_MIPSdspR2(uint32_t left, + const uint32_t* const top) { return Average4(left, top[-1], top[0], top[1]); } -static uint32_t Predictor11(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor11_MIPSdspR2(uint32_t left, + const uint32_t* const top) { return Select(top[0], left, top[-1]); } -static uint32_t Predictor12(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor12_MIPSdspR2(uint32_t left, + const uint32_t* const top) { return ClampedAddSubtractFull(left, top[0], top[-1]); } -static uint32_t Predictor13(uint32_t left, const uint32_t* const top) { +static uint32_t Predictor13_MIPSdspR2(uint32_t left, + const uint32_t* const top) { return ClampedAddSubtractHalf(left, top[0], top[-1]); } // Add green to blue and red channels (i.e. perform the inverse transform of // 'subtract green'). -static void AddGreenToBlueAndRed(const uint32_t* src, int num_pixels, - uint32_t* dst) { +static void AddGreenToBlueAndRed_MIPSdspR2(const uint32_t* src, int num_pixels, + uint32_t* dst) { uint32_t temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; const uint32_t* const p_loop1_end = src + (num_pixels & ~3); const uint32_t* const p_loop2_end = src + num_pixels; @@ -285,9 +289,9 @@ static void AddGreenToBlueAndRed(const uint32_t* src, int num_pixels, ); } -static void TransformColorInverse(const VP8LMultipliers* const m, - const uint32_t* src, int num_pixels, - uint32_t* dst) { +static void TransformColorInverse_MIPSdspR2(const VP8LMultipliers* const m, + const uint32_t* src, int num_pixels, + uint32_t* dst) { int temp0, temp1, temp2, temp3, temp4, temp5; uint32_t argb, argb1, new_red; const uint32_t G_to_R = m->green_to_red_; @@ -356,8 +360,8 @@ static void TransformColorInverse(const VP8LMultipliers* const m, if (num_pixels & 1) VP8LTransformColorInverse_C(m, src, 1, dst); } -static void ConvertBGRAToRGB(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToRGB_MIPSdspR2(const uint32_t* src, + int num_pixels, uint8_t* dst) { int temp0, temp1, temp2, temp3; const uint32_t* const p_loop1_end = src + (num_pixels & ~3); const uint32_t* const p_loop2_end = src + num_pixels; @@ -408,8 +412,8 @@ static void ConvertBGRAToRGB(const uint32_t* src, ); } -static void ConvertBGRAToRGBA(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToRGBA_MIPSdspR2(const uint32_t* src, + int num_pixels, uint8_t* dst) { int temp0, temp1, temp2, temp3; const uint32_t* const p_loop1_end = src + (num_pixels & ~3); const uint32_t* const p_loop2_end = src + num_pixels; @@ -458,8 +462,8 @@ static void ConvertBGRAToRGBA(const uint32_t* src, ); } -static void ConvertBGRAToRGBA4444(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToRGBA4444_MIPSdspR2(const uint32_t* src, + int num_pixels, uint8_t* dst) { int temp0, temp1, temp2, temp3, temp4, temp5; const uint32_t* const p_loop1_end = src + (num_pixels & ~3); const uint32_t* const p_loop2_end = src + num_pixels; @@ -492,7 +496,7 @@ static void ConvertBGRAToRGBA4444(const uint32_t* src, "ins %[temp3], %[temp5], 16, 4 \n\t" "addiu %[src], %[src], 16 \n\t" "precr.qb.ph %[temp3], %[temp3], %[temp2] \n\t" -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) "usw %[temp1], 0(%[dst]) \n\t" "usw %[temp3], 4(%[dst]) \n\t" #else @@ -514,7 +518,7 @@ static void ConvertBGRAToRGBA4444(const uint32_t* src, "ins %[temp0], %[temp5], 16, 4 \n\t" "addiu %[src], %[src], 4 \n\t" "precr.qb.ph %[temp0], %[temp0], %[temp0] \n\t" -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) "ush %[temp0], 0(%[dst]) \n\t" #else "wsbh %[temp0], %[temp0] \n\t" @@ -532,8 +536,8 @@ static void ConvertBGRAToRGBA4444(const uint32_t* src, ); } -static void ConvertBGRAToRGB565(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToRGB565_MIPSdspR2(const uint32_t* src, + int num_pixels, uint8_t* dst) { int temp0, temp1, temp2, temp3, temp4, temp5; const uint32_t* const p_loop1_end = src + (num_pixels & ~3); const uint32_t* const p_loop2_end = src + num_pixels; @@ -570,7 +574,7 @@ static void ConvertBGRAToRGB565(const uint32_t* src, "ins %[temp2], %[temp3], 0, 5 \n\t" "addiu %[src], %[src], 16 \n\t" "append %[temp2], %[temp1], 16 \n\t" -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) "usw %[temp0], 0(%[dst]) \n\t" "usw %[temp2], 4(%[dst]) \n\t" #else @@ -592,7 +596,7 @@ static void ConvertBGRAToRGB565(const uint32_t* src, "ins %[temp4], %[temp5], 0, 11 \n\t" "addiu %[src], %[src], 4 \n\t" "ins %[temp4], %[temp0], 0, 5 \n\t" -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) "ush %[temp4], 0(%[dst]) \n\t" #else "wsbh %[temp4], %[temp4] \n\t" @@ -610,8 +614,8 @@ static void ConvertBGRAToRGB565(const uint32_t* src, ); } -static void ConvertBGRAToBGR(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToBGR_MIPSdspR2(const uint32_t* src, + int num_pixels, uint8_t* dst) { int temp0, temp1, temp2, temp3; const uint32_t* const p_loop1_end = src + (num_pixels & ~3); const uint32_t* const p_loop2_end = src + num_pixels; @@ -662,24 +666,27 @@ static void ConvertBGRAToBGR(const uint32_t* src, extern void VP8LDspInitMIPSdspR2(void); WEBP_TSAN_IGNORE_FUNCTION void VP8LDspInitMIPSdspR2(void) { - VP8LMapColor32b = MapARGB; - VP8LMapColor8b = MapAlpha; - VP8LPredictors[5] = Predictor5; - VP8LPredictors[6] = Predictor6; - VP8LPredictors[7] = Predictor7; - VP8LPredictors[8] = Predictor8; - VP8LPredictors[9] = Predictor9; - VP8LPredictors[10] = Predictor10; - VP8LPredictors[11] = Predictor11; - VP8LPredictors[12] = Predictor12; - VP8LPredictors[13] = Predictor13; - VP8LAddGreenToBlueAndRed = AddGreenToBlueAndRed; - VP8LTransformColorInverse = TransformColorInverse; - VP8LConvertBGRAToRGB = ConvertBGRAToRGB; - VP8LConvertBGRAToRGBA = ConvertBGRAToRGBA; - VP8LConvertBGRAToRGBA4444 = ConvertBGRAToRGBA4444; - VP8LConvertBGRAToRGB565 = ConvertBGRAToRGB565; - VP8LConvertBGRAToBGR = ConvertBGRAToBGR; + VP8LMapColor32b = MapARGB_MIPSdspR2; + VP8LMapColor8b = MapAlpha_MIPSdspR2; + + VP8LPredictors[5] = Predictor5_MIPSdspR2; + VP8LPredictors[6] = Predictor6_MIPSdspR2; + VP8LPredictors[7] = Predictor7_MIPSdspR2; + VP8LPredictors[8] = Predictor8_MIPSdspR2; + VP8LPredictors[9] = Predictor9_MIPSdspR2; + VP8LPredictors[10] = Predictor10_MIPSdspR2; + VP8LPredictors[11] = Predictor11_MIPSdspR2; + VP8LPredictors[12] = Predictor12_MIPSdspR2; + VP8LPredictors[13] = Predictor13_MIPSdspR2; + + VP8LAddGreenToBlueAndRed = AddGreenToBlueAndRed_MIPSdspR2; + VP8LTransformColorInverse = TransformColorInverse_MIPSdspR2; + + VP8LConvertBGRAToRGB = ConvertBGRAToRGB_MIPSdspR2; + VP8LConvertBGRAToRGBA = ConvertBGRAToRGBA_MIPSdspR2; + VP8LConvertBGRAToRGBA4444 = ConvertBGRAToRGBA4444_MIPSdspR2; + VP8LConvertBGRAToRGB565 = ConvertBGRAToRGB565_MIPSdspR2; + VP8LConvertBGRAToBGR = ConvertBGRAToBGR_MIPSdspR2; } #else // !WEBP_USE_MIPS_DSP_R2 diff --git a/external/libwebp-0.6.0/src/dsp/lossless_msa.c b/external/libwebp-1.0.0/src/dsp/lossless_msa.c similarity index 91% rename from external/libwebp-0.6.0/src/dsp/lossless_msa.c rename to external/libwebp-1.0.0/src/dsp/lossless_msa.c index f6dd5649..9f547207 100644 --- a/external/libwebp-0.6.0/src/dsp/lossless_msa.c +++ b/external/libwebp-1.0.0/src/dsp/lossless_msa.c @@ -11,12 +11,12 @@ // // Author: Prashant Patil (prashant.patil@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MSA) -#include "./lossless.h" -#include "./msa_macro.h" +#include "src/dsp/lossless.h" +#include "src/dsp/msa_macro.h" //------------------------------------------------------------------------------ // Colorspace conversion functions @@ -43,7 +43,7 @@ #define CONVERT8_BGRA_XXX(psrc, pdst, m0, m1) do { \ uint64_t pix_d; \ - v16u8 src0, src1, src2, dst0, dst1; \ + v16u8 src0, src1, src2 = { 0 }, dst0, dst1; \ LD_UB2(psrc, 16, src0, src1); \ VSHF_B2_UB(src0, src1, src1, src2, m0, m1, dst0, dst1); \ ST_UB(dst0, pdst); \ @@ -109,8 +109,8 @@ dst = VSHF_UB(src, t0, mask1); \ } while (0) -static void ConvertBGRAToRGBA(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToRGBA_MSA(const uint32_t* src, + int num_pixels, uint8_t* dst) { int i; const uint8_t* ptemp_src = (const uint8_t*)src; uint8_t* ptemp_dst = (uint8_t*)dst; @@ -150,8 +150,8 @@ static void ConvertBGRAToRGBA(const uint32_t* src, } } -static void ConvertBGRAToBGR(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToBGR_MSA(const uint32_t* src, + int num_pixels, uint8_t* dst) { const uint8_t* ptemp_src = (const uint8_t*)src; uint8_t* ptemp_dst = (uint8_t*)dst; const v16u8 mask0 = { 0, 1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 14, @@ -197,8 +197,8 @@ static void ConvertBGRAToBGR(const uint32_t* src, } } -static void ConvertBGRAToRGB(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToRGB_MSA(const uint32_t* src, + int num_pixels, uint8_t* dst) { const uint8_t* ptemp_src = (const uint8_t*)src; uint8_t* ptemp_dst = (uint8_t*)dst; const v16u8 mask0 = { 2, 1, 0, 6, 5, 4, 10, 9, 8, 14, 13, 12, @@ -244,8 +244,8 @@ static void ConvertBGRAToRGB(const uint32_t* src, } } -static void AddGreenToBlueAndRed(const uint32_t* const src, int num_pixels, - uint32_t* dst) { +static void AddGreenToBlueAndRed_MSA(const uint32_t* const src, int num_pixels, + uint32_t* dst) { int i; const uint8_t* in = (const uint8_t*)src; uint8_t* out = (uint8_t*)dst; @@ -286,9 +286,9 @@ static void AddGreenToBlueAndRed(const uint32_t* const src, int num_pixels, } } -static void TransformColorInverse(const VP8LMultipliers* const m, - const uint32_t* src, int num_pixels, - uint32_t* dst) { +static void TransformColorInverse_MSA(const VP8LMultipliers* const m, + const uint32_t* src, int num_pixels, + uint32_t* dst) { v16u8 src0, dst0; const v16i8 g2br = (v16i8)__msa_fill_w(m->green_to_blue_ | (m->green_to_red_ << 16)); @@ -341,11 +341,12 @@ static void TransformColorInverse(const VP8LMultipliers* const m, extern void VP8LDspInitMSA(void); WEBP_TSAN_IGNORE_FUNCTION void VP8LDspInitMSA(void) { - VP8LConvertBGRAToRGBA = ConvertBGRAToRGBA; - VP8LConvertBGRAToBGR = ConvertBGRAToBGR; - VP8LConvertBGRAToRGB = ConvertBGRAToRGB; - VP8LAddGreenToBlueAndRed = AddGreenToBlueAndRed; - VP8LTransformColorInverse = TransformColorInverse; + VP8LConvertBGRAToRGBA = ConvertBGRAToRGBA_MSA; + VP8LConvertBGRAToBGR = ConvertBGRAToBGR_MSA; + VP8LConvertBGRAToRGB = ConvertBGRAToRGB_MSA; + + VP8LAddGreenToBlueAndRed = AddGreenToBlueAndRed_MSA; + VP8LTransformColorInverse = TransformColorInverse_MSA; } #else // !WEBP_USE_MSA diff --git a/external/libwebp-0.6.0/src/dsp/lossless_neon.c b/external/libwebp-1.0.0/src/dsp/lossless_neon.c similarity index 92% rename from external/libwebp-0.6.0/src/dsp/lossless_neon.c rename to external/libwebp-1.0.0/src/dsp/lossless_neon.c index 1145d5fa..76a1b6f8 100644 --- a/external/libwebp-0.6.0/src/dsp/lossless_neon.c +++ b/external/libwebp-1.0.0/src/dsp/lossless_neon.c @@ -11,14 +11,14 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_NEON) #include -#include "./lossless.h" -#include "./neon.h" +#include "src/dsp/lossless.h" +#include "src/dsp/neon.h" //------------------------------------------------------------------------------ // Colorspace conversion functions @@ -26,8 +26,8 @@ #if !defined(WORK_AROUND_GCC) // gcc 4.6.0 had some trouble (NDK-r9) with this code. We only use it for // gcc-4.8.x at least. -static void ConvertBGRAToRGBA(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToRGBA_NEON(const uint32_t* src, + int num_pixels, uint8_t* dst) { const uint32_t* const end = src + (num_pixels & ~15); for (; src < end; src += 16) { uint8x16x4_t pixel = vld4q_u8((uint8_t*)src); @@ -41,8 +41,8 @@ static void ConvertBGRAToRGBA(const uint32_t* src, VP8LConvertBGRAToRGBA_C(src, num_pixels & 15, dst); // left-overs } -static void ConvertBGRAToBGR(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToBGR_NEON(const uint32_t* src, + int num_pixels, uint8_t* dst) { const uint32_t* const end = src + (num_pixels & ~15); for (; src < end; src += 16) { const uint8x16x4_t pixel = vld4q_u8((uint8_t*)src); @@ -53,8 +53,8 @@ static void ConvertBGRAToBGR(const uint32_t* src, VP8LConvertBGRAToBGR_C(src, num_pixels & 15, dst); // left-overs } -static void ConvertBGRAToRGB(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToRGB_NEON(const uint32_t* src, + int num_pixels, uint8_t* dst) { const uint32_t* const end = src + (num_pixels & ~15); for (; src < end; src += 16) { const uint8x16x4_t pixel = vld4q_u8((uint8_t*)src); @@ -71,8 +71,8 @@ static void ConvertBGRAToRGB(const uint32_t* src, static const uint8_t kRGBAShuffle[8] = { 2, 1, 0, 3, 6, 5, 4, 7 }; -static void ConvertBGRAToRGBA(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToRGBA_NEON(const uint32_t* src, + int num_pixels, uint8_t* dst) { const uint32_t* const end = src + (num_pixels & ~1); const uint8x8_t shuffle = vld1_u8(kRGBAShuffle); for (; src < end; src += 2) { @@ -89,8 +89,8 @@ static const uint8_t kBGRShuffle[3][8] = { { 21, 22, 24, 25, 26, 28, 29, 30 } }; -static void ConvertBGRAToBGR(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToBGR_NEON(const uint32_t* src, + int num_pixels, uint8_t* dst) { const uint32_t* const end = src + (num_pixels & ~7); const uint8x8_t shuffle0 = vld1_u8(kBGRShuffle[0]); const uint8x8_t shuffle1 = vld1_u8(kBGRShuffle[1]); @@ -116,8 +116,8 @@ static const uint8_t kRGBShuffle[3][8] = { { 21, 20, 26, 25, 24, 30, 29, 28 } }; -static void ConvertBGRAToRGB(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToRGB_NEON(const uint32_t* src, + int num_pixels, uint8_t* dst) { const uint32_t* const end = src + (num_pixels & ~7); const uint8x8_t shuffle0 = vld1_u8(kRGBShuffle[0]); const uint8x8_t shuffle1 = vld1_u8(kRGBShuffle[1]); @@ -139,7 +139,6 @@ static void ConvertBGRAToRGB(const uint32_t* src, #endif // !WORK_AROUND_GCC - //------------------------------------------------------------------------------ // Predictor Transform @@ -506,8 +505,8 @@ static const uint8_t kGreenShuffle[16] = { 1, 255, 1, 255, 5, 255, 5, 255, 9, 255, 9, 255, 13, 255, 13, 255 }; -static WEBP_INLINE uint8x16_t DoGreenShuffle(const uint8x16_t argb, - const uint8x16_t shuffle) { +static WEBP_INLINE uint8x16_t DoGreenShuffle_NEON(const uint8x16_t argb, + const uint8x16_t shuffle) { return vcombine_u8(vtbl1q_u8(argb, vget_low_u8(shuffle)), vtbl1q_u8(argb, vget_high_u8(shuffle))); } @@ -515,15 +514,15 @@ static WEBP_INLINE uint8x16_t DoGreenShuffle(const uint8x16_t argb, // 255 = byte will be zeroed static const uint8_t kGreenShuffle[8] = { 1, 255, 1, 255, 5, 255, 5, 255 }; -static WEBP_INLINE uint8x16_t DoGreenShuffle(const uint8x16_t argb, - const uint8x8_t shuffle) { +static WEBP_INLINE uint8x16_t DoGreenShuffle_NEON(const uint8x16_t argb, + const uint8x8_t shuffle) { return vcombine_u8(vtbl1_u8(vget_low_u8(argb), shuffle), vtbl1_u8(vget_high_u8(argb), shuffle)); } #endif // USE_VTBLQ -static void AddGreenToBlueAndRed(const uint32_t* src, int num_pixels, - uint32_t* dst) { +static void AddGreenToBlueAndRed_NEON(const uint32_t* src, int num_pixels, + uint32_t* dst) { const uint32_t* const end = src + (num_pixels & ~3); #ifdef USE_VTBLQ const uint8x16_t shuffle = vld1q_u8(kGreenShuffle); @@ -532,7 +531,7 @@ static void AddGreenToBlueAndRed(const uint32_t* src, int num_pixels, #endif for (; src < end; src += 4, dst += 4) { const uint8x16_t argb = vld1q_u8((const uint8_t*)src); - const uint8x16_t greens = DoGreenShuffle(argb, shuffle); + const uint8x16_t greens = DoGreenShuffle_NEON(argb, shuffle); vst1q_u8((uint8_t*)dst, vaddq_u8(argb, greens)); } // fallthrough and finish off with plain-C @@ -542,9 +541,9 @@ static void AddGreenToBlueAndRed(const uint32_t* src, int num_pixels, //------------------------------------------------------------------------------ // Color Transform -static void TransformColorInverse(const VP8LMultipliers* const m, - const uint32_t* const src, int num_pixels, - uint32_t* dst) { +static void TransformColorInverse_NEON(const VP8LMultipliers* const m, + const uint32_t* const src, + int num_pixels, uint32_t* dst) { // sign-extended multiplying constants, pre-shifted by 6. #define CST(X) (((int16_t)(m->X << 8)) >> 6) const int16_t rb[8] = { @@ -575,7 +574,7 @@ static void TransformColorInverse(const VP8LMultipliers* const m, const uint8x16_t in = vld1q_u8((const uint8_t*)(src + i)); const uint32x4_t a0g0 = vandq_u32(vreinterpretq_u32_u8(in), mask_ag); // 0 g 0 g - const uint8x16_t greens = DoGreenShuffle(in, shuffle); + const uint8x16_t greens = DoGreenShuffle_NEON(in, shuffle); // x dr x db1 const int16x8_t A = vqdmulhq_s16(vreinterpretq_s16_u8(greens), mults_rb); // x r' x b' @@ -627,12 +626,12 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8LDspInitNEON(void) { VP8LPredictorsAdd[12] = PredictorAdd12_NEON; VP8LPredictorsAdd[13] = PredictorAdd13_NEON; - VP8LConvertBGRAToRGBA = ConvertBGRAToRGBA; - VP8LConvertBGRAToBGR = ConvertBGRAToBGR; - VP8LConvertBGRAToRGB = ConvertBGRAToRGB; + VP8LConvertBGRAToRGBA = ConvertBGRAToRGBA_NEON; + VP8LConvertBGRAToBGR = ConvertBGRAToBGR_NEON; + VP8LConvertBGRAToRGB = ConvertBGRAToRGB_NEON; - VP8LAddGreenToBlueAndRed = AddGreenToBlueAndRed; - VP8LTransformColorInverse = TransformColorInverse; + VP8LAddGreenToBlueAndRed = AddGreenToBlueAndRed_NEON; + VP8LTransformColorInverse = TransformColorInverse_NEON; } #else // !WEBP_USE_NEON diff --git a/external/libwebp-0.6.0/src/dsp/lossless_sse2.c b/external/libwebp-1.0.0/src/dsp/lossless_sse2.c similarity index 74% rename from external/libwebp-0.6.0/src/dsp/lossless_sse2.c rename to external/libwebp-1.0.0/src/dsp/lossless_sse2.c index 15aae938..17d75764 100644 --- a/external/libwebp-0.6.0/src/dsp/lossless_sse2.c +++ b/external/libwebp-1.0.0/src/dsp/lossless_sse2.c @@ -11,21 +11,22 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_SSE2) -#include "./common_sse2.h" -#include "./lossless.h" -#include "./lossless_common.h" +#include "src/dsp/common_sse2.h" +#include "src/dsp/lossless.h" +#include "src/dsp/lossless_common.h" #include #include //------------------------------------------------------------------------------ // Predictor Transform -static WEBP_INLINE uint32_t ClampedAddSubtractFull(uint32_t c0, uint32_t c1, - uint32_t c2) { +static WEBP_INLINE uint32_t ClampedAddSubtractFull_SSE2(uint32_t c0, + uint32_t c1, + uint32_t c2) { const __m128i zero = _mm_setzero_si128(); const __m128i C0 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(c0), zero); const __m128i C1 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(c1), zero); @@ -37,8 +38,9 @@ static WEBP_INLINE uint32_t ClampedAddSubtractFull(uint32_t c0, uint32_t c1, return output; } -static WEBP_INLINE uint32_t ClampedAddSubtractHalf(uint32_t c0, uint32_t c1, - uint32_t c2) { +static WEBP_INLINE uint32_t ClampedAddSubtractHalf_SSE2(uint32_t c0, + uint32_t c1, + uint32_t c2) { const __m128i zero = _mm_setzero_si128(); const __m128i C0 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(c0), zero); const __m128i C1 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(c1), zero); @@ -55,7 +57,7 @@ static WEBP_INLINE uint32_t ClampedAddSubtractHalf(uint32_t c0, uint32_t c1, return output; } -static WEBP_INLINE uint32_t Select(uint32_t a, uint32_t b, uint32_t c) { +static WEBP_INLINE uint32_t Select_SSE2(uint32_t a, uint32_t b, uint32_t c) { int pa_minus_pb; const __m128i zero = _mm_setzero_si128(); const __m128i A0 = _mm_cvtsi32_si128(a); @@ -88,8 +90,9 @@ static WEBP_INLINE void Average2_m128i(const __m128i* const a0, *avg = _mm_sub_epi8(avg1, one); } -static WEBP_INLINE void Average2_uint32(const uint32_t a0, const uint32_t a1, - __m128i* const avg) { +static WEBP_INLINE void Average2_uint32_SSE2(const uint32_t a0, + const uint32_t a1, + __m128i* const avg) { // (a + b) >> 1 = ((a + b + 1) >> 1) - ((a ^ b) & 1) const __m128i ones = _mm_set1_epi8(1); const __m128i A0 = _mm_cvtsi32_si128(a0); @@ -99,7 +102,7 @@ static WEBP_INLINE void Average2_uint32(const uint32_t a0, const uint32_t a1, *avg = _mm_sub_epi8(avg1, one); } -static WEBP_INLINE __m128i Average2_uint32_16(uint32_t a0, uint32_t a1) { +static WEBP_INLINE __m128i Average2_uint32_16_SSE2(uint32_t a0, uint32_t a1) { const __m128i zero = _mm_setzero_si128(); const __m128i A0 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(a0), zero); const __m128i A1 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(a1), zero); @@ -107,15 +110,16 @@ static WEBP_INLINE __m128i Average2_uint32_16(uint32_t a0, uint32_t a1) { return _mm_srli_epi16(sum, 1); } -static WEBP_INLINE uint32_t Average2(uint32_t a0, uint32_t a1) { +static WEBP_INLINE uint32_t Average2_SSE2(uint32_t a0, uint32_t a1) { __m128i output; - Average2_uint32(a0, a1, &output); + Average2_uint32_SSE2(a0, a1, &output); return _mm_cvtsi128_si32(output); } -static WEBP_INLINE uint32_t Average3(uint32_t a0, uint32_t a1, uint32_t a2) { +static WEBP_INLINE uint32_t Average3_SSE2(uint32_t a0, uint32_t a1, + uint32_t a2) { const __m128i zero = _mm_setzero_si128(); - const __m128i avg1 = Average2_uint32_16(a0, a2); + const __m128i avg1 = Average2_uint32_16_SSE2(a0, a2); const __m128i A1 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(a1), zero); const __m128i sum = _mm_add_epi16(avg1, A1); const __m128i avg2 = _mm_srli_epi16(sum, 1); @@ -124,10 +128,10 @@ static WEBP_INLINE uint32_t Average3(uint32_t a0, uint32_t a1, uint32_t a2) { return output; } -static WEBP_INLINE uint32_t Average4(uint32_t a0, uint32_t a1, - uint32_t a2, uint32_t a3) { - const __m128i avg1 = Average2_uint32_16(a0, a1); - const __m128i avg2 = Average2_uint32_16(a2, a3); +static WEBP_INLINE uint32_t Average4_SSE2(uint32_t a0, uint32_t a1, + uint32_t a2, uint32_t a3) { + const __m128i avg1 = Average2_uint32_16_SSE2(a0, a1); + const __m128i avg2 = Average2_uint32_16_SSE2(a2, a3); const __m128i sum = _mm_add_epi16(avg2, avg1); const __m128i avg3 = _mm_srli_epi16(sum, 1); const __m128i A0 = _mm_packus_epi16(avg3, avg3); @@ -136,41 +140,41 @@ static WEBP_INLINE uint32_t Average4(uint32_t a0, uint32_t a1, } static uint32_t Predictor5_SSE2(uint32_t left, const uint32_t* const top) { - const uint32_t pred = Average3(left, top[0], top[1]); + const uint32_t pred = Average3_SSE2(left, top[0], top[1]); return pred; } static uint32_t Predictor6_SSE2(uint32_t left, const uint32_t* const top) { - const uint32_t pred = Average2(left, top[-1]); + const uint32_t pred = Average2_SSE2(left, top[-1]); return pred; } static uint32_t Predictor7_SSE2(uint32_t left, const uint32_t* const top) { - const uint32_t pred = Average2(left, top[0]); + const uint32_t pred = Average2_SSE2(left, top[0]); return pred; } static uint32_t Predictor8_SSE2(uint32_t left, const uint32_t* const top) { - const uint32_t pred = Average2(top[-1], top[0]); + const uint32_t pred = Average2_SSE2(top[-1], top[0]); (void)left; return pred; } static uint32_t Predictor9_SSE2(uint32_t left, const uint32_t* const top) { - const uint32_t pred = Average2(top[0], top[1]); + const uint32_t pred = Average2_SSE2(top[0], top[1]); (void)left; return pred; } static uint32_t Predictor10_SSE2(uint32_t left, const uint32_t* const top) { - const uint32_t pred = Average4(left, top[-1], top[0], top[1]); + const uint32_t pred = Average4_SSE2(left, top[-1], top[0], top[1]); return pred; } static uint32_t Predictor11_SSE2(uint32_t left, const uint32_t* const top) { - const uint32_t pred = Select(top[0], left, top[-1]); + const uint32_t pred = Select_SSE2(top[0], left, top[-1]); return pred; } static uint32_t Predictor12_SSE2(uint32_t left, const uint32_t* const top) { - const uint32_t pred = ClampedAddSubtractFull(left, top[0], top[-1]); + const uint32_t pred = ClampedAddSubtractFull_SSE2(left, top[0], top[-1]); return pred; } static uint32_t Predictor13_SSE2(uint32_t left, const uint32_t* const top) { - const uint32_t pred = ClampedAddSubtractHalf(left, top[0], top[-1]); + const uint32_t pred = ClampedAddSubtractHalf_SSE2(left, top[0], top[-1]); return pred; } @@ -272,9 +276,24 @@ GENERATE_PREDICTOR_2(9, upper[i + 1]) #undef GENERATE_PREDICTOR_2 // Predictor10: average of (average of (L,TL), average of (T, TR)). +#define DO_PRED10(OUT) do { \ + __m128i avgLTL, avg; \ + Average2_m128i(&L, &TL, &avgLTL); \ + Average2_m128i(&avgTTR, &avgLTL, &avg); \ + L = _mm_add_epi8(avg, src); \ + out[i + (OUT)] = _mm_cvtsi128_si32(L); \ +} while (0) + +#define DO_PRED10_SHIFT do { \ + /* Rotate the pre-computed values for the next iteration.*/ \ + avgTTR = _mm_srli_si128(avgTTR, 4); \ + TL = _mm_srli_si128(TL, 4); \ + src = _mm_srli_si128(src, 4); \ +} while (0) + static void PredictorAdd10_SSE2(const uint32_t* in, const uint32_t* upper, int num_pixels, uint32_t* out) { - int i, j; + int i; __m128i L = _mm_cvtsi32_si128(out[-1]); for (i = 0; i + 4 <= num_pixels; i += 4) { __m128i src = _mm_loadu_si128((const __m128i*)&in[i]); @@ -283,79 +302,90 @@ static void PredictorAdd10_SSE2(const uint32_t* in, const uint32_t* upper, const __m128i TR = _mm_loadu_si128((const __m128i*)&upper[i + 1]); __m128i avgTTR; Average2_m128i(&T, &TR, &avgTTR); - for (j = 0; j < 4; ++j) { - __m128i avgLTL, avg; - Average2_m128i(&L, &TL, &avgLTL); - Average2_m128i(&avgTTR, &avgLTL, &avg); - L = _mm_add_epi8(avg, src); - out[i + j] = _mm_cvtsi128_si32(L); - // Rotate the pre-computed values for the next iteration. - avgTTR = _mm_srli_si128(avgTTR, 4); - TL = _mm_srli_si128(TL, 4); - src = _mm_srli_si128(src, 4); - } + DO_PRED10(0); + DO_PRED10_SHIFT; + DO_PRED10(1); + DO_PRED10_SHIFT; + DO_PRED10(2); + DO_PRED10_SHIFT; + DO_PRED10(3); } if (i != num_pixels) { VP8LPredictorsAdd_C[10](in + i, upper + i, num_pixels - i, out + i); } } +#undef DO_PRED10 +#undef DO_PRED10_SHIFT // Predictor11: select. -static void GetSumAbsDiff32(const __m128i* const A, const __m128i* const B, - __m128i* const out) { - // We can unpack with any value on the upper 32 bits, provided it's the same - // on both operands (to that their sum of abs diff is zero). Here we use *A. - const __m128i A_lo = _mm_unpacklo_epi32(*A, *A); - const __m128i B_lo = _mm_unpacklo_epi32(*B, *A); - const __m128i A_hi = _mm_unpackhi_epi32(*A, *A); - const __m128i B_hi = _mm_unpackhi_epi32(*B, *A); - const __m128i s_lo = _mm_sad_epu8(A_lo, B_lo); - const __m128i s_hi = _mm_sad_epu8(A_hi, B_hi); - *out = _mm_packs_epi32(s_lo, s_hi); -} +#define DO_PRED11(OUT) do { \ + const __m128i L_lo = _mm_unpacklo_epi32(L, T); \ + const __m128i TL_lo = _mm_unpacklo_epi32(TL, T); \ + const __m128i pb = _mm_sad_epu8(L_lo, TL_lo); /* pb = sum |L-TL|*/ \ + const __m128i mask = _mm_cmpgt_epi32(pb, pa); \ + const __m128i A = _mm_and_si128(mask, L); \ + const __m128i B = _mm_andnot_si128(mask, T); \ + const __m128i pred = _mm_or_si128(A, B); /* pred = (pa > b)? L : T*/ \ + L = _mm_add_epi8(src, pred); \ + out[i + (OUT)] = _mm_cvtsi128_si32(L); \ +} while (0) + +#define DO_PRED11_SHIFT do { \ + /* Shift the pre-computed value for the next iteration.*/ \ + T = _mm_srli_si128(T, 4); \ + TL = _mm_srli_si128(TL, 4); \ + src = _mm_srli_si128(src, 4); \ + pa = _mm_srli_si128(pa, 4); \ +} while (0) static void PredictorAdd11_SSE2(const uint32_t* in, const uint32_t* upper, int num_pixels, uint32_t* out) { - int i, j; + int i; + __m128i pa; __m128i L = _mm_cvtsi32_si128(out[-1]); for (i = 0; i + 4 <= num_pixels; i += 4) { __m128i T = _mm_loadu_si128((const __m128i*)&upper[i]); __m128i TL = _mm_loadu_si128((const __m128i*)&upper[i - 1]); __m128i src = _mm_loadu_si128((const __m128i*)&in[i]); - __m128i pa; - GetSumAbsDiff32(&T, &TL, &pa); // pa = sum |T-TL| - for (j = 0; j < 4; ++j) { - const __m128i L_lo = _mm_unpacklo_epi32(L, L); - const __m128i TL_lo = _mm_unpacklo_epi32(TL, L); - const __m128i pb = _mm_sad_epu8(L_lo, TL_lo); // pb = sum |L-TL| - const __m128i mask = _mm_cmpgt_epi32(pb, pa); - const __m128i A = _mm_and_si128(mask, L); - const __m128i B = _mm_andnot_si128(mask, T); - const __m128i pred = _mm_or_si128(A, B); // pred = (L > T)? L : T - L = _mm_add_epi8(src, pred); - out[i + j] = _mm_cvtsi128_si32(L); - // Shift the pre-computed value for the next iteration. - T = _mm_srli_si128(T, 4); - TL = _mm_srli_si128(TL, 4); - src = _mm_srli_si128(src, 4); - pa = _mm_srli_si128(pa, 4); + { + // We can unpack with any value on the upper 32 bits, provided it's the + // same on both operands (so that their sum of abs diff is zero). Here we + // use T. + const __m128i T_lo = _mm_unpacklo_epi32(T, T); + const __m128i TL_lo = _mm_unpacklo_epi32(TL, T); + const __m128i T_hi = _mm_unpackhi_epi32(T, T); + const __m128i TL_hi = _mm_unpackhi_epi32(TL, T); + const __m128i s_lo = _mm_sad_epu8(T_lo, TL_lo); + const __m128i s_hi = _mm_sad_epu8(T_hi, TL_hi); + pa = _mm_packs_epi32(s_lo, s_hi); // pa = sum |T-TL| } + DO_PRED11(0); + DO_PRED11_SHIFT; + DO_PRED11(1); + DO_PRED11_SHIFT; + DO_PRED11(2); + DO_PRED11_SHIFT; + DO_PRED11(3); } if (i != num_pixels) { VP8LPredictorsAdd_C[11](in + i, upper + i, num_pixels - i, out + i); } } +#undef DO_PRED11 +#undef DO_PRED11_SHIFT // Predictor12: ClampedAddSubtractFull. -#define DO_PRED12(DIFF, LANE, OUT) \ -do { \ - const __m128i all = _mm_add_epi16(L, (DIFF)); \ - const __m128i alls = _mm_packus_epi16(all, all); \ - const __m128i res = _mm_add_epi8(src, alls); \ - out[i + (OUT)] = _mm_cvtsi128_si32(res); \ - L = _mm_unpacklo_epi8(res, zero); \ +#define DO_PRED12(DIFF, LANE, OUT) do { \ + const __m128i all = _mm_add_epi16(L, (DIFF)); \ + const __m128i alls = _mm_packus_epi16(all, all); \ + const __m128i res = _mm_add_epi8(src, alls); \ + out[i + (OUT)] = _mm_cvtsi128_si32(res); \ + L = _mm_unpacklo_epi8(res, zero); \ +} while (0) + +#define DO_PRED12_SHIFT(DIFF, LANE) do { \ /* Shift the pre-computed value for the next iteration.*/ \ - if (LANE == 0) (DIFF) = _mm_srli_si128((DIFF), 8); \ + if ((LANE) == 0) (DIFF) = _mm_srli_si128((DIFF), 8); \ src = _mm_srli_si128(src, 4); \ } while (0) @@ -377,8 +407,11 @@ static void PredictorAdd12_SSE2(const uint32_t* in, const uint32_t* upper, __m128i diff_lo = _mm_sub_epi16(T_lo, TL_lo); __m128i diff_hi = _mm_sub_epi16(T_hi, TL_hi); DO_PRED12(diff_lo, 0, 0); + DO_PRED12_SHIFT(diff_lo, 0); DO_PRED12(diff_lo, 1, 1); + DO_PRED12_SHIFT(diff_lo, 1); DO_PRED12(diff_hi, 0, 2); + DO_PRED12_SHIFT(diff_hi, 0); DO_PRED12(diff_hi, 1, 3); } if (i != num_pixels) { @@ -386,6 +419,7 @@ static void PredictorAdd12_SSE2(const uint32_t* in, const uint32_t* upper, } } #undef DO_PRED12 +#undef DO_PRED12_SHIFT // Due to averages with integers, values cannot be accumulated in parallel for // predictors 13. @@ -394,8 +428,8 @@ GENERATE_PREDICTOR_ADD(Predictor13_SSE2, PredictorAdd13_SSE2) //------------------------------------------------------------------------------ // Subtract-Green Transform -static void AddGreenToBlueAndRed(const uint32_t* const src, int num_pixels, - uint32_t* dst) { +static void AddGreenToBlueAndRed_SSE2(const uint32_t* const src, int num_pixels, + uint32_t* dst) { int i; for (i = 0; i + 4 <= num_pixels; i += 4) { const __m128i in = _mm_loadu_si128((const __m128i*)&src[i]); // argb @@ -414,19 +448,16 @@ static void AddGreenToBlueAndRed(const uint32_t* const src, int num_pixels, //------------------------------------------------------------------------------ // Color Transform -static void TransformColorInverse(const VP8LMultipliers* const m, - const uint32_t* const src, int num_pixels, - uint32_t* dst) { +static void TransformColorInverse_SSE2(const VP8LMultipliers* const m, + const uint32_t* const src, + int num_pixels, uint32_t* dst) { // sign-extended multiplying constants, pre-shifted by 5. #define CST(X) (((int16_t)(m->X << 8)) >> 5) // sign-extend - const __m128i mults_rb = _mm_set_epi16( - CST(green_to_red_), CST(green_to_blue_), - CST(green_to_red_), CST(green_to_blue_), - CST(green_to_red_), CST(green_to_blue_), - CST(green_to_red_), CST(green_to_blue_)); - const __m128i mults_b2 = _mm_set_epi16( - CST(red_to_blue_), 0, CST(red_to_blue_), 0, - CST(red_to_blue_), 0, CST(red_to_blue_), 0); +#define MK_CST_16(HI, LO) \ + _mm_set1_epi32((int)(((uint32_t)(HI) << 16) | ((LO) & 0xffff))) + const __m128i mults_rb = MK_CST_16(CST(green_to_red_), CST(green_to_blue_)); + const __m128i mults_b2 = MK_CST_16(CST(red_to_blue_), 0); +#undef MK_CST_16 #undef CST const __m128i mask_ag = _mm_set1_epi32(0xff00ff00); // alpha-green masks int i; @@ -454,8 +485,8 @@ static void TransformColorInverse(const VP8LMultipliers* const m, //------------------------------------------------------------------------------ // Color-space conversion functions -static void ConvertBGRAToRGB(const uint32_t* src, int num_pixels, - uint8_t* dst) { +static void ConvertBGRAToRGB_SSE2(const uint32_t* src, int num_pixels, + uint8_t* dst) { const __m128i* in = (const __m128i*)src; __m128i* out = (__m128i*)dst; @@ -469,11 +500,11 @@ static void ConvertBGRAToRGB(const uint32_t* src, int num_pixels, __m128i in5 = _mm_loadu_si128(in + 5); __m128i in6 = _mm_loadu_si128(in + 6); __m128i in7 = _mm_loadu_si128(in + 7); - VP8L32bToPlanar(&in0, &in1, &in2, &in3); - VP8L32bToPlanar(&in4, &in5, &in6, &in7); + VP8L32bToPlanar_SSE2(&in0, &in1, &in2, &in3); + VP8L32bToPlanar_SSE2(&in4, &in5, &in6, &in7); // At this points, in1/in5 contains red only, in2/in6 green only ... // Pack the colors in 24b RGB. - VP8PlanarTo24b(&in1, &in5, &in2, &in6, &in3, &in7); + VP8PlanarTo24b_SSE2(&in1, &in5, &in2, &in6, &in3, &in7); _mm_storeu_si128(out + 0, in1); _mm_storeu_si128(out + 1, in5); _mm_storeu_si128(out + 2, in2); @@ -490,27 +521,26 @@ static void ConvertBGRAToRGB(const uint32_t* src, int num_pixels, } } -static void ConvertBGRAToRGBA(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToRGBA_SSE2(const uint32_t* src, + int num_pixels, uint8_t* dst) { + const __m128i red_blue_mask = _mm_set1_epi32(0x00ff00ffu); const __m128i* in = (const __m128i*)src; __m128i* out = (__m128i*)dst; while (num_pixels >= 8) { - const __m128i bgra0 = _mm_loadu_si128(in++); // bgra0|bgra1|bgra2|bgra3 - const __m128i bgra4 = _mm_loadu_si128(in++); // bgra4|bgra5|bgra6|bgra7 - const __m128i v0l = _mm_unpacklo_epi8(bgra0, bgra4); // b0b4g0g4r0r4a0a4... - const __m128i v0h = _mm_unpackhi_epi8(bgra0, bgra4); // b2b6g2g6r2r6a2a6... - const __m128i v1l = _mm_unpacklo_epi8(v0l, v0h); // b0b2b4b6g0g2g4g6... - const __m128i v1h = _mm_unpackhi_epi8(v0l, v0h); // b1b3b5b7g1g3g5g7... - const __m128i v2l = _mm_unpacklo_epi8(v1l, v1h); // b0...b7 | g0...g7 - const __m128i v2h = _mm_unpackhi_epi8(v1l, v1h); // r0...r7 | a0...a7 - const __m128i ga0 = _mm_unpackhi_epi64(v2l, v2h); // g0...g7 | a0...a7 - const __m128i rb0 = _mm_unpacklo_epi64(v2h, v2l); // r0...r7 | b0...b7 - const __m128i rg0 = _mm_unpacklo_epi8(rb0, ga0); // r0g0r1g1 ... r6g6r7g7 - const __m128i ba0 = _mm_unpackhi_epi8(rb0, ga0); // b0a0b1a1 ... b6a6b7a7 - const __m128i rgba0 = _mm_unpacklo_epi16(rg0, ba0); // rgba0|rgba1... - const __m128i rgba4 = _mm_unpackhi_epi16(rg0, ba0); // rgba4|rgba5... - _mm_storeu_si128(out++, rgba0); - _mm_storeu_si128(out++, rgba4); + const __m128i A1 = _mm_loadu_si128(in++); + const __m128i A2 = _mm_loadu_si128(in++); + const __m128i B1 = _mm_and_si128(A1, red_blue_mask); // R 0 B 0 + const __m128i B2 = _mm_and_si128(A2, red_blue_mask); // R 0 B 0 + const __m128i C1 = _mm_andnot_si128(red_blue_mask, A1); // 0 G 0 A + const __m128i C2 = _mm_andnot_si128(red_blue_mask, A2); // 0 G 0 A + const __m128i D1 = _mm_shufflelo_epi16(B1, _MM_SHUFFLE(2, 3, 0, 1)); + const __m128i D2 = _mm_shufflelo_epi16(B2, _MM_SHUFFLE(2, 3, 0, 1)); + const __m128i E1 = _mm_shufflehi_epi16(D1, _MM_SHUFFLE(2, 3, 0, 1)); + const __m128i E2 = _mm_shufflehi_epi16(D2, _MM_SHUFFLE(2, 3, 0, 1)); + const __m128i F1 = _mm_or_si128(E1, C1); + const __m128i F2 = _mm_or_si128(E2, C2); + _mm_storeu_si128(out++, F1); + _mm_storeu_si128(out++, F2); num_pixels -= 8; } // left-overs @@ -519,8 +549,8 @@ static void ConvertBGRAToRGBA(const uint32_t* src, } } -static void ConvertBGRAToRGBA4444(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToRGBA4444_SSE2(const uint32_t* src, + int num_pixels, uint8_t* dst) { const __m128i mask_0x0f = _mm_set1_epi8(0x0f); const __m128i mask_0xf0 = _mm_set1_epi8(0xf0); const __m128i* in = (const __m128i*)src; @@ -541,7 +571,7 @@ static void ConvertBGRAToRGBA4444(const uint32_t* src, const __m128i ga2 = _mm_and_si128(ga1, mask_0x0f); // g0-|g1-|...|a6-|a7- const __m128i rgba0 = _mm_or_si128(ga2, rb1); // rg0..rg7 | ba0..ba7 const __m128i rgba1 = _mm_srli_si128(rgba0, 8); // ba0..ba7 | 0 -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) const __m128i rgba = _mm_unpacklo_epi8(rgba1, rgba0); // barg0...barg7 #else const __m128i rgba = _mm_unpacklo_epi8(rgba0, rgba1); // rgba0...rgba7 @@ -555,8 +585,8 @@ static void ConvertBGRAToRGBA4444(const uint32_t* src, } } -static void ConvertBGRAToRGB565(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToRGB565_SSE2(const uint32_t* src, + int num_pixels, uint8_t* dst) { const __m128i mask_0xe0 = _mm_set1_epi8(0xe0); const __m128i mask_0xf8 = _mm_set1_epi8(0xf8); const __m128i mask_0x07 = _mm_set1_epi8(0x07); @@ -582,7 +612,7 @@ static void ConvertBGRAToRGB565(const uint32_t* src, const __m128i rg1 = _mm_or_si128(rb1, g_lo2); // gr0...gr7|xx const __m128i b1 = _mm_srli_epi16(b0, 3); const __m128i gb1 = _mm_or_si128(b1, g_hi2); // bg0...bg7|xx -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) const __m128i rgba = _mm_unpacklo_epi8(gb1, rg1); // rggb0...rggb7 #else const __m128i rgba = _mm_unpacklo_epi8(rg1, gb1); // bgrb0...bgrb7 @@ -596,8 +626,8 @@ static void ConvertBGRAToRGB565(const uint32_t* src, } } -static void ConvertBGRAToBGR(const uint32_t* src, - int num_pixels, uint8_t* dst) { +static void ConvertBGRAToBGR_SSE2(const uint32_t* src, + int num_pixels, uint8_t* dst) { const __m128i mask_l = _mm_set_epi32(0, 0x00ffffff, 0, 0x00ffffff); const __m128i mask_h = _mm_set_epi32(0x00ffffff, 0, 0x00ffffff, 0); const __m128i* in = (const __m128i*)src; @@ -660,14 +690,14 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8LDspInitSSE2(void) { VP8LPredictorsAdd[12] = PredictorAdd12_SSE2; VP8LPredictorsAdd[13] = PredictorAdd13_SSE2; - VP8LAddGreenToBlueAndRed = AddGreenToBlueAndRed; - VP8LTransformColorInverse = TransformColorInverse; + VP8LAddGreenToBlueAndRed = AddGreenToBlueAndRed_SSE2; + VP8LTransformColorInverse = TransformColorInverse_SSE2; - VP8LConvertBGRAToRGB = ConvertBGRAToRGB; - VP8LConvertBGRAToRGBA = ConvertBGRAToRGBA; - VP8LConvertBGRAToRGBA4444 = ConvertBGRAToRGBA4444; - VP8LConvertBGRAToRGB565 = ConvertBGRAToRGB565; - VP8LConvertBGRAToBGR = ConvertBGRAToBGR; + VP8LConvertBGRAToRGB = ConvertBGRAToRGB_SSE2; + VP8LConvertBGRAToRGBA = ConvertBGRAToRGBA_SSE2; + VP8LConvertBGRAToRGBA4444 = ConvertBGRAToRGBA4444_SSE2; + VP8LConvertBGRAToRGB565 = ConvertBGRAToRGB565_SSE2; + VP8LConvertBGRAToBGR = ConvertBGRAToBGR_SSE2; } #else // !WEBP_USE_SSE2 diff --git a/external/libwebp-0.6.0/src/dsp/mips_macro.h b/external/libwebp-1.0.0/src/dsp/mips_macro.h similarity index 100% rename from external/libwebp-0.6.0/src/dsp/mips_macro.h rename to external/libwebp-1.0.0/src/dsp/mips_macro.h diff --git a/external/libwebp-0.6.0/src/dsp/msa_macro.h b/external/libwebp-1.0.0/src/dsp/msa_macro.h similarity index 99% rename from external/libwebp-0.6.0/src/dsp/msa_macro.h rename to external/libwebp-1.0.0/src/dsp/msa_macro.h index d0e5f45e..dfacda6c 100644 --- a/external/libwebp-0.6.0/src/dsp/msa_macro.h +++ b/external/libwebp-1.0.0/src/dsp/msa_macro.h @@ -22,6 +22,7 @@ #endif #ifdef CLANG_BUILD + #define ALPHAVAL (-1) #define ADDVI_H(a, b) __msa_addvi_h((v8i16)a, b) #define ADDVI_W(a, b) __msa_addvi_w((v4i32)a, b) #define SRAI_B(a, b) __msa_srai_b((v16i8)a, b) @@ -32,6 +33,7 @@ #define ANDI_B(a, b) __msa_andi_b((v16u8)a, b) #define ORI_B(a, b) __msa_ori_b((v16u8)a, b) #else + #define ALPHAVAL (0xff) #define ADDVI_H(a, b) (a + b) #define ADDVI_W(a, b) (a + b) #define SRAI_B(a, b) (a >> b) diff --git a/external/libwebp-0.6.0/src/dsp/neon.h b/external/libwebp-1.0.0/src/dsp/neon.h similarity index 91% rename from external/libwebp-0.6.0/src/dsp/neon.h rename to external/libwebp-1.0.0/src/dsp/neon.h index 3b548a68..aa1dea13 100644 --- a/external/libwebp-0.6.0/src/dsp/neon.h +++ b/external/libwebp-1.0.0/src/dsp/neon.h @@ -14,11 +14,12 @@ #include -#include "./dsp.h" +#include "src/dsp/dsp.h" // Right now, some intrinsics functions seem slower, so we disable them -// everywhere except aarch64 where the inline assembly is incompatible. -#if defined(__aarch64__) +// everywhere except newer clang/gcc or aarch64 where the inline assembly is +// incompatible. +#if LOCAL_CLANG_PREREQ(3,8) || LOCAL_GCC_PREREQ(4,9) || defined(__aarch64__) #define WEBP_USE_INTRINSICS // use intrinsics when possible #endif @@ -43,11 +44,11 @@ // if using intrinsics, this flag avoids some functions that make gcc-4.6.3 // crash ("internal compiler error: in immed_double_const, at emit-rtl."). // (probably similar to gcc.gnu.org/bugzilla/show_bug.cgi?id=48183) -#if !(LOCAL_GCC_PREREQ(4,8) || defined(__aarch64__)) +#if !(LOCAL_CLANG_PREREQ(3,8) || LOCAL_GCC_PREREQ(4,8) || defined(__aarch64__)) #define WORK_AROUND_GCC #endif -static WEBP_INLINE int32x4x4_t Transpose4x4(const int32x4x4_t rows) { +static WEBP_INLINE int32x4x4_t Transpose4x4_NEON(const int32x4x4_t rows) { uint64x2x2_t row01, row23; row01.val[0] = vreinterpretq_u64_s32(rows.val[0]); diff --git a/external/libwebp-0.6.0/src/dsp/rescaler.c b/external/libwebp-1.0.0/src/dsp/rescaler.c similarity index 85% rename from external/libwebp-0.6.0/src/dsp/rescaler.c rename to external/libwebp-1.0.0/src/dsp/rescaler.c index 0f545023..f307d350 100644 --- a/external/libwebp-0.6.0/src/dsp/rescaler.c +++ b/external/libwebp-1.0.0/src/dsp/rescaler.c @@ -13,8 +13,8 @@ #include -#include "./dsp.h" -#include "../utils/rescaler_utils.h" +#include "src/dsp/dsp.h" +#include "src/utils/rescaler_utils.h" //------------------------------------------------------------------------------ // Implementations of critical functions ImportRow / ExportRow @@ -25,7 +25,8 @@ //------------------------------------------------------------------------------ // Row import -void WebPRescalerImportRowExpandC(WebPRescaler* const wrk, const uint8_t* src) { +void WebPRescalerImportRowExpand_C(WebPRescaler* const wrk, + const uint8_t* src) { const int x_stride = wrk->num_channels; const int x_out_max = wrk->dst_width * wrk->num_channels; int channel; @@ -56,7 +57,8 @@ void WebPRescalerImportRowExpandC(WebPRescaler* const wrk, const uint8_t* src) { } } -void WebPRescalerImportRowShrinkC(WebPRescaler* const wrk, const uint8_t* src) { +void WebPRescalerImportRowShrink_C(WebPRescaler* const wrk, + const uint8_t* src) { const int x_stride = wrk->num_channels; const int x_out_max = wrk->dst_width * wrk->num_channels; int channel; @@ -92,7 +94,7 @@ void WebPRescalerImportRowShrinkC(WebPRescaler* const wrk, const uint8_t* src) { //------------------------------------------------------------------------------ // Row export -void WebPRescalerExportRowExpandC(WebPRescaler* const wrk) { +void WebPRescalerExportRowExpand_C(WebPRescaler* const wrk) { int x_out; uint8_t* const dst = wrk->dst; rescaler_t* const irow = wrk->irow; @@ -123,7 +125,7 @@ void WebPRescalerExportRowExpandC(WebPRescaler* const wrk) { } } -void WebPRescalerExportRowShrinkC(WebPRescaler* const wrk) { +void WebPRescalerExportRowShrink_C(WebPRescaler* const wrk) { int x_out; uint8_t* const dst = wrk->dst; rescaler_t* const irow = wrk->irow; @@ -202,16 +204,15 @@ extern void WebPRescalerDspInitMIPSdspR2(void); extern void WebPRescalerDspInitMSA(void); extern void WebPRescalerDspInitNEON(void); -static volatile VP8CPUInfo rescaler_last_cpuinfo_used = - (VP8CPUInfo)&rescaler_last_cpuinfo_used; - -WEBP_TSAN_IGNORE_FUNCTION void WebPRescalerDspInit(void) { - if (rescaler_last_cpuinfo_used == VP8GetCPUInfo) return; +WEBP_DSP_INIT_FUNC(WebPRescalerDspInit) { +#if !defined(WEBP_REDUCE_SIZE) +#if !WEBP_NEON_OMIT_C_CODE + WebPRescalerExportRowExpand = WebPRescalerExportRowExpand_C; + WebPRescalerExportRowShrink = WebPRescalerExportRowShrink_C; +#endif - WebPRescalerImportRowExpand = WebPRescalerImportRowExpandC; - WebPRescalerImportRowShrink = WebPRescalerImportRowShrinkC; - WebPRescalerExportRowExpand = WebPRescalerExportRowExpandC; - WebPRescalerExportRowShrink = WebPRescalerExportRowShrinkC; + WebPRescalerImportRowExpand = WebPRescalerImportRowExpand_C; + WebPRescalerImportRowShrink = WebPRescalerImportRowShrink_C; if (VP8GetCPUInfo != NULL) { #if defined(WEBP_USE_SSE2) @@ -219,11 +220,6 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPRescalerDspInit(void) { WebPRescalerDspInitSSE2(); } #endif -#if defined(WEBP_USE_NEON) - if (VP8GetCPUInfo(kNEON)) { - WebPRescalerDspInitNEON(); - } -#endif #if defined(WEBP_USE_MIPS32) if (VP8GetCPUInfo(kMIPS32)) { WebPRescalerDspInitMIPS32(); @@ -240,5 +236,17 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPRescalerDspInit(void) { } #endif } - rescaler_last_cpuinfo_used = VP8GetCPUInfo; + +#if defined(WEBP_USE_NEON) + if (WEBP_NEON_OMIT_C_CODE || + (VP8GetCPUInfo != NULL && VP8GetCPUInfo(kNEON))) { + WebPRescalerDspInitNEON(); + } +#endif + + assert(WebPRescalerExportRowExpand != NULL); + assert(WebPRescalerExportRowShrink != NULL); + assert(WebPRescalerImportRowExpand != NULL); + assert(WebPRescalerImportRowShrink != NULL); +#endif // WEBP_REDUCE_SIZE } diff --git a/external/libwebp-0.6.0/src/dsp/rescaler_mips32.c b/external/libwebp-1.0.0/src/dsp/rescaler_mips32.c similarity index 94% rename from external/libwebp-0.6.0/src/dsp/rescaler_mips32.c rename to external/libwebp-1.0.0/src/dsp/rescaler_mips32.c index e09ad5d1..542f7e59 100644 --- a/external/libwebp-0.6.0/src/dsp/rescaler_mips32.c +++ b/external/libwebp-1.0.0/src/dsp/rescaler_mips32.c @@ -11,17 +11,18 @@ // // Author(s): Djordje Pesut (djordje.pesut@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" -#if defined(WEBP_USE_MIPS32) +#if defined(WEBP_USE_MIPS32) && !defined(WEBP_REDUCE_SIZE) #include -#include "../utils/rescaler_utils.h" +#include "src/utils/rescaler_utils.h" //------------------------------------------------------------------------------ // Row import -static void ImportRowShrink(WebPRescaler* const wrk, const uint8_t* src) { +static void ImportRowShrink_MIPS32(WebPRescaler* const wrk, + const uint8_t* src) { const int x_stride = wrk->num_channels; const int x_out_max = wrk->dst_width * wrk->num_channels; const int fx_scale = wrk->fx_scale; @@ -80,7 +81,8 @@ static void ImportRowShrink(WebPRescaler* const wrk, const uint8_t* src) { } } -static void ImportRowExpand(WebPRescaler* const wrk, const uint8_t* src) { +static void ImportRowExpand_MIPS32(WebPRescaler* const wrk, + const uint8_t* src) { const int x_stride = wrk->num_channels; const int x_out_max = wrk->dst_width * wrk->num_channels; const int x_add = wrk->x_add; @@ -144,7 +146,7 @@ static void ImportRowExpand(WebPRescaler* const wrk, const uint8_t* src) { //------------------------------------------------------------------------------ // Row export -static void ExportRowExpand(WebPRescaler* const wrk) { +static void ExportRowExpand_MIPS32(WebPRescaler* const wrk) { uint8_t* dst = wrk->dst; rescaler_t* irow = wrk->irow; const int x_out_max = wrk->dst_width * wrk->num_channels; @@ -207,7 +209,7 @@ static void ExportRowExpand(WebPRescaler* const wrk) { } } -static void ExportRowShrink(WebPRescaler* const wrk) { +static void ExportRowShrink_MIPS32(WebPRescaler* const wrk) { const int x_out_max = wrk->dst_width * wrk->num_channels; uint8_t* dst = wrk->dst; rescaler_t* irow = wrk->irow; @@ -278,10 +280,10 @@ static void ExportRowShrink(WebPRescaler* const wrk) { extern void WebPRescalerDspInitMIPS32(void); WEBP_TSAN_IGNORE_FUNCTION void WebPRescalerDspInitMIPS32(void) { - WebPRescalerImportRowExpand = ImportRowExpand; - WebPRescalerImportRowShrink = ImportRowShrink; - WebPRescalerExportRowExpand = ExportRowExpand; - WebPRescalerExportRowShrink = ExportRowShrink; + WebPRescalerImportRowExpand = ImportRowExpand_MIPS32; + WebPRescalerImportRowShrink = ImportRowShrink_MIPS32; + WebPRescalerExportRowExpand = ExportRowExpand_MIPS32; + WebPRescalerExportRowShrink = ExportRowShrink_MIPS32; } #else // !WEBP_USE_MIPS32 diff --git a/external/libwebp-0.6.0/src/dsp/rescaler_mips_dsp_r2.c b/external/libwebp-1.0.0/src/dsp/rescaler_mips_dsp_r2.c similarity index 97% rename from external/libwebp-0.6.0/src/dsp/rescaler_mips_dsp_r2.c rename to external/libwebp-1.0.0/src/dsp/rescaler_mips_dsp_r2.c index 2308d645..b78aac15 100644 --- a/external/libwebp-0.6.0/src/dsp/rescaler_mips_dsp_r2.c +++ b/external/libwebp-1.0.0/src/dsp/rescaler_mips_dsp_r2.c @@ -11,12 +11,12 @@ // // Author(s): Djordje Pesut (djordje.pesut@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" -#if defined(WEBP_USE_MIPS_DSP_R2) +#if defined(WEBP_USE_MIPS_DSP_R2) && !defined(WEBP_REDUCE_SIZE) #include -#include "../utils/rescaler_utils.h" +#include "src/utils/rescaler_utils.h" #define ROUNDER (WEBP_RESCALER_ONE >> 1) #define MULT_FIX(x, y) (((uint64_t)(x) * (y) + ROUNDER) >> WEBP_RESCALER_RFIX) @@ -24,7 +24,7 @@ //------------------------------------------------------------------------------ // Row export -static void ExportRowShrink(WebPRescaler* const wrk) { +static void ExportRowShrink_MIPSdspR2(WebPRescaler* const wrk) { int i; const int x_out_max = wrk->dst_width * wrk->num_channels; uint8_t* dst = wrk->dst; @@ -162,7 +162,7 @@ static void ExportRowShrink(WebPRescaler* const wrk) { } } -static void ExportRowExpand(WebPRescaler* const wrk) { +static void ExportRowExpand_MIPSdspR2(WebPRescaler* const wrk) { int i; uint8_t* dst = wrk->dst; rescaler_t* irow = wrk->irow; @@ -303,8 +303,8 @@ static void ExportRowExpand(WebPRescaler* const wrk) { extern void WebPRescalerDspInitMIPSdspR2(void); WEBP_TSAN_IGNORE_FUNCTION void WebPRescalerDspInitMIPSdspR2(void) { - WebPRescalerExportRowExpand = ExportRowExpand; - WebPRescalerExportRowShrink = ExportRowShrink; + WebPRescalerExportRowExpand = ExportRowExpand_MIPSdspR2; + WebPRescalerExportRowShrink = ExportRowShrink_MIPSdspR2; } #else // !WEBP_USE_MIPS_DSP_R2 diff --git a/external/libwebp-0.6.0/src/dsp/rescaler_msa.c b/external/libwebp-1.0.0/src/dsp/rescaler_msa.c similarity index 97% rename from external/libwebp-0.6.0/src/dsp/rescaler_msa.c rename to external/libwebp-1.0.0/src/dsp/rescaler_msa.c index 2c10e55d..f3bc99f1 100644 --- a/external/libwebp-0.6.0/src/dsp/rescaler_msa.c +++ b/external/libwebp-1.0.0/src/dsp/rescaler_msa.c @@ -11,14 +11,14 @@ // // Author: Prashant Patil (prashant.patil@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" -#if defined(WEBP_USE_MSA) +#if defined(WEBP_USE_MSA) && !defined(WEBP_REDUCE_SIZE) #include -#include "../utils/rescaler_utils.h" -#include "./msa_macro.h" +#include "src/utils/rescaler_utils.h" +#include "src/dsp/msa_macro.h" #define ROUNDER (WEBP_RESCALER_ONE >> 1) #define MULT_FIX(x, y) (((uint64_t)(x) * (y) + ROUNDER) >> WEBP_RESCALER_RFIX) @@ -246,7 +246,7 @@ static WEBP_INLINE void ExportRowExpand_1(const uint32_t* frow, uint32_t* irow, } } -static void RescalerExportRowExpand(WebPRescaler* const wrk) { +static void RescalerExportRowExpand_MIPSdspR2(WebPRescaler* const wrk) { uint8_t* dst = wrk->dst; rescaler_t* irow = wrk->irow; const int x_out_max = wrk->dst_width * wrk->num_channels; @@ -411,7 +411,7 @@ static WEBP_INLINE void ExportRowShrink_1(uint32_t* irow, uint8_t* dst, } } -static void RescalerExportRowShrink(WebPRescaler* const wrk) { +static void RescalerExportRowShrink_MIPSdspR2(WebPRescaler* const wrk) { uint8_t* dst = wrk->dst; rescaler_t* irow = wrk->irow; const int x_out_max = wrk->dst_width * wrk->num_channels; @@ -433,8 +433,8 @@ static void RescalerExportRowShrink(WebPRescaler* const wrk) { extern void WebPRescalerDspInitMSA(void); WEBP_TSAN_IGNORE_FUNCTION void WebPRescalerDspInitMSA(void) { - WebPRescalerExportRowExpand = RescalerExportRowExpand; - WebPRescalerExportRowShrink = RescalerExportRowShrink; + WebPRescalerExportRowExpand = RescalerExportRowExpand_MIPSdspR2; + WebPRescalerExportRowShrink = RescalerExportRowShrink_MIPSdspR2; } #else // !WEBP_USE_MSA diff --git a/external/libwebp-0.6.0/src/dsp/rescaler_neon.c b/external/libwebp-1.0.0/src/dsp/rescaler_neon.c similarity index 89% rename from external/libwebp-0.6.0/src/dsp/rescaler_neon.c rename to external/libwebp-1.0.0/src/dsp/rescaler_neon.c index b2dd8f30..3eff9fba 100644 --- a/external/libwebp-0.6.0/src/dsp/rescaler_neon.c +++ b/external/libwebp-1.0.0/src/dsp/rescaler_neon.c @@ -11,14 +11,14 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" -#if defined(WEBP_USE_NEON) +#if defined(WEBP_USE_NEON) && !defined(WEBP_REDUCE_SIZE) #include #include -#include "./neon.h" -#include "../utils/rescaler_utils.h" +#include "src/dsp/neon.h" +#include "src/utils/rescaler_utils.h" #define ROUNDER (WEBP_RESCALER_ONE >> 1) #define MULT_FIX_C(x, y) (((uint64_t)(x) * (y) + ROUNDER) >> WEBP_RESCALER_RFIX) @@ -41,9 +41,9 @@ #error "MULT_FIX/WEBP_RESCALER_RFIX need some more work" #endif -static uint32x4_t Interpolate(const rescaler_t* const frow, - const rescaler_t* const irow, - uint32_t A, uint32_t B) { +static uint32x4_t Interpolate_NEON(const rescaler_t* const frow, + const rescaler_t* const irow, + uint32_t A, uint32_t B) { LOAD_32x4(frow, A0); LOAD_32x4(irow, B0); const uint64x2_t C0 = vmull_n_u32(vget_low_u32(A0), A); @@ -56,7 +56,7 @@ static uint32x4_t Interpolate(const rescaler_t* const frow, return E; } -static void RescalerExportRowExpand(WebPRescaler* const wrk) { +static void RescalerExportRowExpand_NEON(WebPRescaler* const wrk) { int x_out; uint8_t* const dst = wrk->dst; rescaler_t* const irow = wrk->irow; @@ -91,9 +91,9 @@ static void RescalerExportRowExpand(WebPRescaler* const wrk) { const uint32_t A = (uint32_t)(WEBP_RESCALER_ONE - B); for (x_out = 0; x_out < max_span; x_out += 8) { const uint32x4_t C0 = - Interpolate(frow + x_out + 0, irow + x_out + 0, A, B); + Interpolate_NEON(frow + x_out + 0, irow + x_out + 0, A, B); const uint32x4_t C1 = - Interpolate(frow + x_out + 4, irow + x_out + 4, A, B); + Interpolate_NEON(frow + x_out + 4, irow + x_out + 4, A, B); const uint32x4_t D0 = MULT_FIX(C0, fy_scale_half); const uint32x4_t D1 = MULT_FIX(C1, fy_scale_half); const uint16x4_t E0 = vmovn_u32(D0); @@ -112,7 +112,7 @@ static void RescalerExportRowExpand(WebPRescaler* const wrk) { } } -static void RescalerExportRowShrink(WebPRescaler* const wrk) { +static void RescalerExportRowShrink_NEON(WebPRescaler* const wrk) { int x_out; uint8_t* const dst = wrk->dst; rescaler_t* const irow = wrk->irow; @@ -175,8 +175,8 @@ static void RescalerExportRowShrink(WebPRescaler* const wrk) { extern void WebPRescalerDspInitNEON(void); WEBP_TSAN_IGNORE_FUNCTION void WebPRescalerDspInitNEON(void) { - WebPRescalerExportRowExpand = RescalerExportRowExpand; - WebPRescalerExportRowShrink = RescalerExportRowShrink; + WebPRescalerExportRowExpand = RescalerExportRowExpand_NEON; + WebPRescalerExportRowShrink = RescalerExportRowShrink_NEON; } #else // !WEBP_USE_NEON diff --git a/external/libwebp-0.6.0/src/dsp/rescaler_sse2.c b/external/libwebp-1.0.0/src/dsp/rescaler_sse2.c similarity index 80% rename from external/libwebp-0.6.0/src/dsp/rescaler_sse2.c rename to external/libwebp-1.0.0/src/dsp/rescaler_sse2.c index 8271c22e..64c50dea 100644 --- a/external/libwebp-0.6.0/src/dsp/rescaler_sse2.c +++ b/external/libwebp-1.0.0/src/dsp/rescaler_sse2.c @@ -11,14 +11,14 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" -#if defined(WEBP_USE_SSE2) +#if defined(WEBP_USE_SSE2) && !defined(WEBP_REDUCE_SIZE) #include #include -#include "../utils/rescaler_utils.h" -#include "../utils/utils.h" +#include "src/utils/rescaler_utils.h" +#include "src/utils/utils.h" //------------------------------------------------------------------------------ // Implementations of critical functions ImportRow / ExportRow @@ -27,7 +27,7 @@ #define MULT_FIX(x, y) (((uint64_t)(x) * (y) + ROUNDER) >> WEBP_RESCALER_RFIX) // input: 8 bytes ABCDEFGH -> output: A0E0B0F0C0G0D0H0 -static void LoadTwoPixels(const uint8_t* const src, __m128i* out) { +static void LoadTwoPixels_SSE2(const uint8_t* const src, __m128i* out) { const __m128i zero = _mm_setzero_si128(); const __m128i A = _mm_loadl_epi64((const __m128i*)(src)); // ABCDEFGH const __m128i B = _mm_unpacklo_epi8(A, zero); // A0B0C0D0E0F0G0H0 @@ -36,28 +36,30 @@ static void LoadTwoPixels(const uint8_t* const src, __m128i* out) { } // input: 8 bytes ABCDEFGH -> output: A0B0C0D0E0F0G0H0 -static void LoadHeightPixels(const uint8_t* const src, __m128i* out) { +static void LoadEightPixels_SSE2(const uint8_t* const src, __m128i* out) { const __m128i zero = _mm_setzero_si128(); const __m128i A = _mm_loadl_epi64((const __m128i*)(src)); // ABCDEFGH *out = _mm_unpacklo_epi8(A, zero); } -static void RescalerImportRowExpandSSE2(WebPRescaler* const wrk, - const uint8_t* src) { +static void RescalerImportRowExpand_SSE2(WebPRescaler* const wrk, + const uint8_t* src) { rescaler_t* frow = wrk->frow; const rescaler_t* const frow_end = frow + wrk->dst_width * wrk->num_channels; const int x_add = wrk->x_add; int accum = x_add; __m128i cur_pixels; + // SSE2 implementation only works with 16b signed arithmetic at max. + if (wrk->src_width < 8 || accum >= (1 << 15)) { + WebPRescalerImportRowExpand_C(wrk, src); + return; + } + assert(!WebPRescalerInputDone(wrk)); assert(wrk->x_expand); if (wrk->num_channels == 4) { - if (wrk->src_width < 2) { - WebPRescalerImportRowExpandC(wrk, src); - return; - } - LoadTwoPixels(src, &cur_pixels); + LoadTwoPixels_SSE2(src, &cur_pixels); src += 4; while (1) { const __m128i mult = _mm_set1_epi32(((x_add - accum) << 16) | accum); @@ -67,7 +69,7 @@ static void RescalerImportRowExpandSSE2(WebPRescaler* const wrk, if (frow >= frow_end) break; accum -= wrk->x_sub; if (accum < 0) { - LoadTwoPixels(src, &cur_pixels); + LoadTwoPixels_SSE2(src, &cur_pixels); src += 4; accum += x_add; } @@ -75,11 +77,7 @@ static void RescalerImportRowExpandSSE2(WebPRescaler* const wrk, } else { int left; const uint8_t* const src_limit = src + wrk->src_width - 8; - if (wrk->src_width < 8) { - WebPRescalerImportRowExpandC(wrk, src); - return; - } - LoadHeightPixels(src, &cur_pixels); + LoadEightPixels_SSE2(src, &cur_pixels); src += 7; left = 7; while (1) { @@ -94,7 +92,7 @@ static void RescalerImportRowExpandSSE2(WebPRescaler* const wrk, if (--left) { cur_pixels = _mm_srli_si128(cur_pixels, 2); } else if (src <= src_limit) { - LoadHeightPixels(src, &cur_pixels); + LoadEightPixels_SSE2(src, &cur_pixels); src += 7; left = 7; } else { // tail @@ -110,8 +108,8 @@ static void RescalerImportRowExpandSSE2(WebPRescaler* const wrk, assert(accum == 0); } -static void RescalerImportRowShrinkSSE2(WebPRescaler* const wrk, - const uint8_t* src) { +static void RescalerImportRowShrink_SSE2(WebPRescaler* const wrk, + const uint8_t* src) { const int x_sub = wrk->x_sub; int accum = 0; const __m128i zero = _mm_setzero_si128(); @@ -123,7 +121,7 @@ static void RescalerImportRowShrinkSSE2(WebPRescaler* const wrk, const rescaler_t* const frow_end = wrk->frow + 4 * wrk->dst_width; if (wrk->num_channels != 4 || wrk->x_add > (x_sub << 7)) { - WebPRescalerImportRowShrinkC(wrk, src); + WebPRescalerImportRowShrink_C(wrk, src); return; } assert(!WebPRescalerInputDone(wrk)); @@ -169,12 +167,12 @@ static void RescalerImportRowShrinkSSE2(WebPRescaler* const wrk, // Row export // load *src as epi64, multiply by mult and store result in [out0 ... out3] -static WEBP_INLINE void LoadDispatchAndMult(const rescaler_t* const src, - const __m128i* const mult, - __m128i* const out0, - __m128i* const out1, - __m128i* const out2, - __m128i* const out3) { +static WEBP_INLINE void LoadDispatchAndMult_SSE2(const rescaler_t* const src, + const __m128i* const mult, + __m128i* const out0, + __m128i* const out1, + __m128i* const out2, + __m128i* const out3) { const __m128i A0 = _mm_loadu_si128((const __m128i*)(src + 0)); const __m128i A1 = _mm_loadu_si128((const __m128i*)(src + 4)); const __m128i A2 = _mm_srli_epi64(A0, 32); @@ -192,12 +190,12 @@ static WEBP_INLINE void LoadDispatchAndMult(const rescaler_t* const src, } } -static WEBP_INLINE void ProcessRow(const __m128i* const A0, - const __m128i* const A1, - const __m128i* const A2, - const __m128i* const A3, - const __m128i* const mult, - uint8_t* const dst) { +static WEBP_INLINE void ProcessRow_SSE2(const __m128i* const A0, + const __m128i* const A1, + const __m128i* const A2, + const __m128i* const A3, + const __m128i* const mult, + uint8_t* const dst) { const __m128i rounder = _mm_set_epi32(0, ROUNDER, 0, ROUNDER); const __m128i mask = _mm_set_epi32(0xffffffffu, 0, 0xffffffffu, 0); const __m128i B0 = _mm_mul_epu32(*A0, *mult); @@ -210,7 +208,7 @@ static WEBP_INLINE void ProcessRow(const __m128i* const A0, const __m128i C3 = _mm_add_epi64(B3, rounder); const __m128i D0 = _mm_srli_epi64(C0, WEBP_RESCALER_RFIX); const __m128i D1 = _mm_srli_epi64(C1, WEBP_RESCALER_RFIX); -#if (WEBP_RESCALER_FIX < 32) +#if (WEBP_RESCALER_RFIX < 32) const __m128i D2 = _mm_and_si128(_mm_slli_epi64(C2, 32 - WEBP_RESCALER_RFIX), mask); const __m128i D3 = @@ -226,7 +224,7 @@ static WEBP_INLINE void ProcessRow(const __m128i* const A0, _mm_storel_epi64((__m128i*)dst, G); } -static void RescalerExportRowExpandSSE2(WebPRescaler* const wrk) { +static void RescalerExportRowExpand_SSE2(WebPRescaler* const wrk) { int x_out; uint8_t* const dst = wrk->dst; rescaler_t* const irow = wrk->irow; @@ -240,8 +238,8 @@ static void RescalerExportRowExpandSSE2(WebPRescaler* const wrk) { if (wrk->y_accum == 0) { for (x_out = 0; x_out + 8 <= x_out_max; x_out += 8) { __m128i A0, A1, A2, A3; - LoadDispatchAndMult(frow + x_out, NULL, &A0, &A1, &A2, &A3); - ProcessRow(&A0, &A1, &A2, &A3, &mult, dst + x_out); + LoadDispatchAndMult_SSE2(frow + x_out, NULL, &A0, &A1, &A2, &A3); + ProcessRow_SSE2(&A0, &A1, &A2, &A3, &mult, dst + x_out); } for (; x_out < x_out_max; ++x_out) { const uint32_t J = frow[x_out]; @@ -257,8 +255,8 @@ static void RescalerExportRowExpandSSE2(WebPRescaler* const wrk) { const __m128i rounder = _mm_set_epi32(0, ROUNDER, 0, ROUNDER); for (x_out = 0; x_out + 8 <= x_out_max; x_out += 8) { __m128i A0, A1, A2, A3, B0, B1, B2, B3; - LoadDispatchAndMult(frow + x_out, &mA, &A0, &A1, &A2, &A3); - LoadDispatchAndMult(irow + x_out, &mB, &B0, &B1, &B2, &B3); + LoadDispatchAndMult_SSE2(frow + x_out, &mA, &A0, &A1, &A2, &A3); + LoadDispatchAndMult_SSE2(irow + x_out, &mB, &B0, &B1, &B2, &B3); { const __m128i C0 = _mm_add_epi64(A0, B0); const __m128i C1 = _mm_add_epi64(A1, B1); @@ -272,7 +270,7 @@ static void RescalerExportRowExpandSSE2(WebPRescaler* const wrk) { const __m128i E1 = _mm_srli_epi64(D1, WEBP_RESCALER_RFIX); const __m128i E2 = _mm_srli_epi64(D2, WEBP_RESCALER_RFIX); const __m128i E3 = _mm_srli_epi64(D3, WEBP_RESCALER_RFIX); - ProcessRow(&E0, &E1, &E2, &E3, &mult, dst + x_out); + ProcessRow_SSE2(&E0, &E1, &E2, &E3, &mult, dst + x_out); } } for (; x_out < x_out_max; ++x_out) { @@ -286,7 +284,7 @@ static void RescalerExportRowExpandSSE2(WebPRescaler* const wrk) { } } -static void RescalerExportRowShrinkSSE2(WebPRescaler* const wrk) { +static void RescalerExportRowShrink_SSE2(WebPRescaler* const wrk) { int x_out; uint8_t* const dst = wrk->dst; rescaler_t* const irow = wrk->irow; @@ -303,8 +301,8 @@ static void RescalerExportRowShrinkSSE2(WebPRescaler* const wrk) { const __m128i rounder = _mm_set_epi32(0, ROUNDER, 0, ROUNDER); for (x_out = 0; x_out + 8 <= x_out_max; x_out += 8) { __m128i A0, A1, A2, A3, B0, B1, B2, B3; - LoadDispatchAndMult(irow + x_out, NULL, &A0, &A1, &A2, &A3); - LoadDispatchAndMult(frow + x_out, &mult_y, &B0, &B1, &B2, &B3); + LoadDispatchAndMult_SSE2(irow + x_out, NULL, &A0, &A1, &A2, &A3); + LoadDispatchAndMult_SSE2(frow + x_out, &mult_y, &B0, &B1, &B2, &B3); { const __m128i C0 = _mm_add_epi64(B0, rounder); const __m128i C1 = _mm_add_epi64(B1, rounder); @@ -324,7 +322,7 @@ static void RescalerExportRowShrinkSSE2(WebPRescaler* const wrk) { const __m128i G1 = _mm_or_si128(D1, F3); _mm_storeu_si128((__m128i*)(irow + x_out + 0), G0); _mm_storeu_si128((__m128i*)(irow + x_out + 4), G1); - ProcessRow(&E0, &E1, &E2, &E3, &mult_xy, dst + x_out); + ProcessRow_SSE2(&E0, &E1, &E2, &E3, &mult_xy, dst + x_out); } } for (; x_out < x_out_max; ++x_out) { @@ -340,10 +338,10 @@ static void RescalerExportRowShrinkSSE2(WebPRescaler* const wrk) { const __m128i zero = _mm_setzero_si128(); for (x_out = 0; x_out + 8 <= x_out_max; x_out += 8) { __m128i A0, A1, A2, A3; - LoadDispatchAndMult(irow + x_out, NULL, &A0, &A1, &A2, &A3); + LoadDispatchAndMult_SSE2(irow + x_out, NULL, &A0, &A1, &A2, &A3); _mm_storeu_si128((__m128i*)(irow + x_out + 0), zero); _mm_storeu_si128((__m128i*)(irow + x_out + 4), zero); - ProcessRow(&A0, &A1, &A2, &A3, &mult, dst + x_out); + ProcessRow_SSE2(&A0, &A1, &A2, &A3, &mult, dst + x_out); } for (; x_out < x_out_max; ++x_out) { const int v = (int)MULT_FIX(irow[x_out], scale); @@ -362,10 +360,10 @@ static void RescalerExportRowShrinkSSE2(WebPRescaler* const wrk) { extern void WebPRescalerDspInitSSE2(void); WEBP_TSAN_IGNORE_FUNCTION void WebPRescalerDspInitSSE2(void) { - WebPRescalerImportRowExpand = RescalerImportRowExpandSSE2; - WebPRescalerImportRowShrink = RescalerImportRowShrinkSSE2; - WebPRescalerExportRowExpand = RescalerExportRowExpandSSE2; - WebPRescalerExportRowShrink = RescalerExportRowShrinkSSE2; + WebPRescalerImportRowExpand = RescalerImportRowExpand_SSE2; + WebPRescalerImportRowShrink = RescalerImportRowShrink_SSE2; + WebPRescalerExportRowExpand = RescalerExportRowExpand_SSE2; + WebPRescalerExportRowShrink = RescalerExportRowShrink_SSE2; } #else // !WEBP_USE_SSE2 diff --git a/external/libwebp-1.0.0/src/dsp/ssim.c b/external/libwebp-1.0.0/src/dsp/ssim.c new file mode 100644 index 00000000..989ce825 --- /dev/null +++ b/external/libwebp-1.0.0/src/dsp/ssim.c @@ -0,0 +1,159 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// distortion calculation +// +// Author: Skal (pascal.massimino@gmail.com) + +#include +#include // for abs() + +#include "src/dsp/dsp.h" + +#if !defined(WEBP_REDUCE_SIZE) + +//------------------------------------------------------------------------------ +// SSIM / PSNR + +// hat-shaped filter. Sum of coefficients is equal to 16. +static const uint32_t kWeight[2 * VP8_SSIM_KERNEL + 1] = { + 1, 2, 3, 4, 3, 2, 1 +}; +static const uint32_t kWeightSum = 16 * 16; // sum{kWeight}^2 + +static WEBP_INLINE double SSIMCalculation( + const VP8DistoStats* const stats, uint32_t N /*num samples*/) { + const uint32_t w2 = N * N; + const uint32_t C1 = 20 * w2; + const uint32_t C2 = 60 * w2; + const uint32_t C3 = 8 * 8 * w2; // 'dark' limit ~= 6 + const uint64_t xmxm = (uint64_t)stats->xm * stats->xm; + const uint64_t ymym = (uint64_t)stats->ym * stats->ym; + if (xmxm + ymym >= C3) { + const int64_t xmym = (int64_t)stats->xm * stats->ym; + const int64_t sxy = (int64_t)stats->xym * N - xmym; // can be negative + const uint64_t sxx = (uint64_t)stats->xxm * N - xmxm; + const uint64_t syy = (uint64_t)stats->yym * N - ymym; + // we descale by 8 to prevent overflow during the fnum/fden multiply. + const uint64_t num_S = (2 * (uint64_t)(sxy < 0 ? 0 : sxy) + C2) >> 8; + const uint64_t den_S = (sxx + syy + C2) >> 8; + const uint64_t fnum = (2 * xmym + C1) * num_S; + const uint64_t fden = (xmxm + ymym + C1) * den_S; + const double r = (double)fnum / fden; + assert(r >= 0. && r <= 1.0); + return r; + } + return 1.; // area is too dark to contribute meaningfully +} + +double VP8SSIMFromStats(const VP8DistoStats* const stats) { + return SSIMCalculation(stats, kWeightSum); +} + +double VP8SSIMFromStatsClipped(const VP8DistoStats* const stats) { + return SSIMCalculation(stats, stats->w); +} + +static double SSIMGetClipped_C(const uint8_t* src1, int stride1, + const uint8_t* src2, int stride2, + int xo, int yo, int W, int H) { + VP8DistoStats stats = { 0, 0, 0, 0, 0, 0 }; + const int ymin = (yo - VP8_SSIM_KERNEL < 0) ? 0 : yo - VP8_SSIM_KERNEL; + const int ymax = (yo + VP8_SSIM_KERNEL > H - 1) ? H - 1 + : yo + VP8_SSIM_KERNEL; + const int xmin = (xo - VP8_SSIM_KERNEL < 0) ? 0 : xo - VP8_SSIM_KERNEL; + const int xmax = (xo + VP8_SSIM_KERNEL > W - 1) ? W - 1 + : xo + VP8_SSIM_KERNEL; + int x, y; + src1 += ymin * stride1; + src2 += ymin * stride2; + for (y = ymin; y <= ymax; ++y, src1 += stride1, src2 += stride2) { + for (x = xmin; x <= xmax; ++x) { + const uint32_t w = kWeight[VP8_SSIM_KERNEL + x - xo] + * kWeight[VP8_SSIM_KERNEL + y - yo]; + const uint32_t s1 = src1[x]; + const uint32_t s2 = src2[x]; + stats.w += w; + stats.xm += w * s1; + stats.ym += w * s2; + stats.xxm += w * s1 * s1; + stats.xym += w * s1 * s2; + stats.yym += w * s2 * s2; + } + } + return VP8SSIMFromStatsClipped(&stats); +} + +static double SSIMGet_C(const uint8_t* src1, int stride1, + const uint8_t* src2, int stride2) { + VP8DistoStats stats = { 0, 0, 0, 0, 0, 0 }; + int x, y; + for (y = 0; y <= 2 * VP8_SSIM_KERNEL; ++y, src1 += stride1, src2 += stride2) { + for (x = 0; x <= 2 * VP8_SSIM_KERNEL; ++x) { + const uint32_t w = kWeight[x] * kWeight[y]; + const uint32_t s1 = src1[x]; + const uint32_t s2 = src2[x]; + stats.xm += w * s1; + stats.ym += w * s2; + stats.xxm += w * s1 * s1; + stats.xym += w * s1 * s2; + stats.yym += w * s2 * s2; + } + } + return VP8SSIMFromStats(&stats); +} + +#endif // !defined(WEBP_REDUCE_SIZE) + +//------------------------------------------------------------------------------ + +#if !defined(WEBP_DISABLE_STATS) +static uint32_t AccumulateSSE_C(const uint8_t* src1, + const uint8_t* src2, int len) { + int i; + uint32_t sse2 = 0; + assert(len <= 65535); // to ensure that accumulation fits within uint32_t + for (i = 0; i < len; ++i) { + const int32_t diff = src1[i] - src2[i]; + sse2 += diff * diff; + } + return sse2; +} +#endif + +//------------------------------------------------------------------------------ + +#if !defined(WEBP_REDUCE_SIZE) +VP8SSIMGetFunc VP8SSIMGet; +VP8SSIMGetClippedFunc VP8SSIMGetClipped; +#endif +#if !defined(WEBP_DISABLE_STATS) +VP8AccumulateSSEFunc VP8AccumulateSSE; +#endif + +extern void VP8SSIMDspInitSSE2(void); + +WEBP_DSP_INIT_FUNC(VP8SSIMDspInit) { +#if !defined(WEBP_REDUCE_SIZE) + VP8SSIMGetClipped = SSIMGetClipped_C; + VP8SSIMGet = SSIMGet_C; +#endif + +#if !defined(WEBP_DISABLE_STATS) + VP8AccumulateSSE = AccumulateSSE_C; +#endif + + if (VP8GetCPUInfo != NULL) { +#if defined(WEBP_USE_SSE2) + if (VP8GetCPUInfo(kSSE2)) { + VP8SSIMDspInitSSE2(); + } +#endif + } +} diff --git a/external/libwebp-1.0.0/src/dsp/ssim_sse2.c b/external/libwebp-1.0.0/src/dsp/ssim_sse2.c new file mode 100644 index 00000000..1dcb0eb0 --- /dev/null +++ b/external/libwebp-1.0.0/src/dsp/ssim_sse2.c @@ -0,0 +1,165 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// SSE2 version of distortion calculation +// +// Author: Skal (pascal.massimino@gmail.com) + +#include "src/dsp/dsp.h" + +#if defined(WEBP_USE_SSE2) + +#include +#include + +#include "src/dsp/common_sse2.h" + +#if !defined(WEBP_DISABLE_STATS) + +// Helper function +static WEBP_INLINE void SubtractAndSquare_SSE2(const __m128i a, const __m128i b, + __m128i* const sum) { + // take abs(a-b) in 8b + const __m128i a_b = _mm_subs_epu8(a, b); + const __m128i b_a = _mm_subs_epu8(b, a); + const __m128i abs_a_b = _mm_or_si128(a_b, b_a); + // zero-extend to 16b + const __m128i zero = _mm_setzero_si128(); + const __m128i C0 = _mm_unpacklo_epi8(abs_a_b, zero); + const __m128i C1 = _mm_unpackhi_epi8(abs_a_b, zero); + // multiply with self + const __m128i sum1 = _mm_madd_epi16(C0, C0); + const __m128i sum2 = _mm_madd_epi16(C1, C1); + *sum = _mm_add_epi32(sum1, sum2); +} + +//------------------------------------------------------------------------------ +// SSIM / PSNR entry point + +static uint32_t AccumulateSSE_SSE2(const uint8_t* src1, + const uint8_t* src2, int len) { + int i = 0; + uint32_t sse2 = 0; + if (len >= 16) { + const int limit = len - 32; + int32_t tmp[4]; + __m128i sum1; + __m128i sum = _mm_setzero_si128(); + __m128i a0 = _mm_loadu_si128((const __m128i*)&src1[i]); + __m128i b0 = _mm_loadu_si128((const __m128i*)&src2[i]); + i += 16; + while (i <= limit) { + const __m128i a1 = _mm_loadu_si128((const __m128i*)&src1[i]); + const __m128i b1 = _mm_loadu_si128((const __m128i*)&src2[i]); + __m128i sum2; + i += 16; + SubtractAndSquare_SSE2(a0, b0, &sum1); + sum = _mm_add_epi32(sum, sum1); + a0 = _mm_loadu_si128((const __m128i*)&src1[i]); + b0 = _mm_loadu_si128((const __m128i*)&src2[i]); + i += 16; + SubtractAndSquare_SSE2(a1, b1, &sum2); + sum = _mm_add_epi32(sum, sum2); + } + SubtractAndSquare_SSE2(a0, b0, &sum1); + sum = _mm_add_epi32(sum, sum1); + _mm_storeu_si128((__m128i*)tmp, sum); + sse2 += (tmp[3] + tmp[2] + tmp[1] + tmp[0]); + } + + for (; i < len; ++i) { + const int32_t diff = src1[i] - src2[i]; + sse2 += diff * diff; + } + return sse2; +} +#endif // !defined(WEBP_DISABLE_STATS) + +#if !defined(WEBP_REDUCE_SIZE) + +static uint32_t HorizontalAdd16b_SSE2(const __m128i* const m) { + uint16_t tmp[8]; + const __m128i a = _mm_srli_si128(*m, 8); + const __m128i b = _mm_add_epi16(*m, a); + _mm_storeu_si128((__m128i*)tmp, b); + return (uint32_t)tmp[3] + tmp[2] + tmp[1] + tmp[0]; +} + +static uint32_t HorizontalAdd32b_SSE2(const __m128i* const m) { + const __m128i a = _mm_srli_si128(*m, 8); + const __m128i b = _mm_add_epi32(*m, a); + const __m128i c = _mm_add_epi32(b, _mm_srli_si128(b, 4)); + return (uint32_t)_mm_cvtsi128_si32(c); +} + +static const uint16_t kWeight[] = { 1, 2, 3, 4, 3, 2, 1, 0 }; + +#define ACCUMULATE_ROW(WEIGHT) do { \ + /* compute row weight (Wx * Wy) */ \ + const __m128i Wy = _mm_set1_epi16((WEIGHT)); \ + const __m128i W = _mm_mullo_epi16(Wx, Wy); \ + /* process 8 bytes at a time (7 bytes, actually) */ \ + const __m128i a0 = _mm_loadl_epi64((const __m128i*)src1); \ + const __m128i b0 = _mm_loadl_epi64((const __m128i*)src2); \ + /* convert to 16b and multiply by weight */ \ + const __m128i a1 = _mm_unpacklo_epi8(a0, zero); \ + const __m128i b1 = _mm_unpacklo_epi8(b0, zero); \ + const __m128i wa1 = _mm_mullo_epi16(a1, W); \ + const __m128i wb1 = _mm_mullo_epi16(b1, W); \ + /* accumulate */ \ + xm = _mm_add_epi16(xm, wa1); \ + ym = _mm_add_epi16(ym, wb1); \ + xxm = _mm_add_epi32(xxm, _mm_madd_epi16(a1, wa1)); \ + xym = _mm_add_epi32(xym, _mm_madd_epi16(a1, wb1)); \ + yym = _mm_add_epi32(yym, _mm_madd_epi16(b1, wb1)); \ + src1 += stride1; \ + src2 += stride2; \ +} while (0) + +static double SSIMGet_SSE2(const uint8_t* src1, int stride1, + const uint8_t* src2, int stride2) { + VP8DistoStats stats; + const __m128i zero = _mm_setzero_si128(); + __m128i xm = zero, ym = zero; // 16b accums + __m128i xxm = zero, yym = zero, xym = zero; // 32b accum + const __m128i Wx = _mm_loadu_si128((const __m128i*)kWeight); + assert(2 * VP8_SSIM_KERNEL + 1 == 7); + ACCUMULATE_ROW(1); + ACCUMULATE_ROW(2); + ACCUMULATE_ROW(3); + ACCUMULATE_ROW(4); + ACCUMULATE_ROW(3); + ACCUMULATE_ROW(2); + ACCUMULATE_ROW(1); + stats.xm = HorizontalAdd16b_SSE2(&xm); + stats.ym = HorizontalAdd16b_SSE2(&ym); + stats.xxm = HorizontalAdd32b_SSE2(&xxm); + stats.xym = HorizontalAdd32b_SSE2(&xym); + stats.yym = HorizontalAdd32b_SSE2(&yym); + return VP8SSIMFromStats(&stats); +} + +#endif // !defined(WEBP_REDUCE_SIZE) + +extern void VP8SSIMDspInitSSE2(void); + +WEBP_TSAN_IGNORE_FUNCTION void VP8SSIMDspInitSSE2(void) { +#if !defined(WEBP_DISABLE_STATS) + VP8AccumulateSSE = AccumulateSSE_SSE2; +#endif +#if !defined(WEBP_REDUCE_SIZE) + VP8SSIMGet = SSIMGet_SSE2; +#endif +} + +#else // !WEBP_USE_SSE2 + +WEBP_DSP_INIT_STUB(VP8SSIMDspInitSSE2) + +#endif // WEBP_USE_SSE2 diff --git a/external/libwebp-0.6.0/src/dsp/upsampling.c b/external/libwebp-1.0.0/src/dsp/upsampling.c similarity index 65% rename from external/libwebp-0.6.0/src/dsp/upsampling.c rename to external/libwebp-1.0.0/src/dsp/upsampling.c index 265e722c..9b60da5b 100644 --- a/external/libwebp-0.6.0/src/dsp/upsampling.c +++ b/external/libwebp-1.0.0/src/dsp/upsampling.c @@ -11,8 +11,8 @@ // // Author: somnath@google.com (Somnath Banerjee) -#include "./dsp.h" -#include "./yuv.h" +#include "src/dsp/dsp.h" +#include "src/dsp/yuv.h" #include @@ -63,17 +63,17 @@ static void FUNC_NAME(const uint8_t* top_y, const uint8_t* bottom_y, \ const uint32_t uv0 = (diag_12 + tl_uv) >> 1; \ const uint32_t uv1 = (diag_03 + t_uv) >> 1; \ FUNC(top_y[2 * x - 1], uv0 & 0xff, (uv0 >> 16), \ - top_dst + (2 * x - 1) * XSTEP); \ + top_dst + (2 * x - 1) * (XSTEP)); \ FUNC(top_y[2 * x - 0], uv1 & 0xff, (uv1 >> 16), \ - top_dst + (2 * x - 0) * XSTEP); \ + top_dst + (2 * x - 0) * (XSTEP)); \ } \ if (bottom_y != NULL) { \ const uint32_t uv0 = (diag_03 + l_uv) >> 1; \ const uint32_t uv1 = (diag_12 + uv) >> 1; \ FUNC(bottom_y[2 * x - 1], uv0 & 0xff, (uv0 >> 16), \ - bottom_dst + (2 * x - 1) * XSTEP); \ + bottom_dst + (2 * x - 1) * (XSTEP)); \ FUNC(bottom_y[2 * x + 0], uv1 & 0xff, (uv1 >> 16), \ - bottom_dst + (2 * x + 0) * XSTEP); \ + bottom_dst + (2 * x + 0) * (XSTEP)); \ } \ tl_uv = t_uv; \ l_uv = uv; \ @@ -82,24 +82,50 @@ static void FUNC_NAME(const uint8_t* top_y, const uint8_t* bottom_y, \ { \ const uint32_t uv0 = (3 * tl_uv + l_uv + 0x00020002u) >> 2; \ FUNC(top_y[len - 1], uv0 & 0xff, (uv0 >> 16), \ - top_dst + (len - 1) * XSTEP); \ + top_dst + (len - 1) * (XSTEP)); \ } \ if (bottom_y != NULL) { \ const uint32_t uv0 = (3 * l_uv + tl_uv + 0x00020002u) >> 2; \ FUNC(bottom_y[len - 1], uv0 & 0xff, (uv0 >> 16), \ - bottom_dst + (len - 1) * XSTEP); \ + bottom_dst + (len - 1) * (XSTEP)); \ } \ } \ } // All variants implemented. -UPSAMPLE_FUNC(UpsampleRgbLinePair, VP8YuvToRgb, 3) -UPSAMPLE_FUNC(UpsampleBgrLinePair, VP8YuvToBgr, 3) -UPSAMPLE_FUNC(UpsampleRgbaLinePair, VP8YuvToRgba, 4) -UPSAMPLE_FUNC(UpsampleBgraLinePair, VP8YuvToBgra, 4) -UPSAMPLE_FUNC(UpsampleArgbLinePair, VP8YuvToArgb, 4) -UPSAMPLE_FUNC(UpsampleRgba4444LinePair, VP8YuvToRgba4444, 2) -UPSAMPLE_FUNC(UpsampleRgb565LinePair, VP8YuvToRgb565, 2) +#if !WEBP_NEON_OMIT_C_CODE +UPSAMPLE_FUNC(UpsampleRgbaLinePair_C, VP8YuvToRgba, 4) +UPSAMPLE_FUNC(UpsampleBgraLinePair_C, VP8YuvToBgra, 4) +#if !defined(WEBP_REDUCE_CSP) +UPSAMPLE_FUNC(UpsampleArgbLinePair_C, VP8YuvToArgb, 4) +UPSAMPLE_FUNC(UpsampleRgbLinePair_C, VP8YuvToRgb, 3) +UPSAMPLE_FUNC(UpsampleBgrLinePair_C, VP8YuvToBgr, 3) +UPSAMPLE_FUNC(UpsampleRgba4444LinePair_C, VP8YuvToRgba4444, 2) +UPSAMPLE_FUNC(UpsampleRgb565LinePair_C, VP8YuvToRgb565, 2) +#else +static void EmptyUpsampleFunc(const uint8_t* top_y, const uint8_t* bottom_y, + const uint8_t* top_u, const uint8_t* top_v, + const uint8_t* cur_u, const uint8_t* cur_v, + uint8_t* top_dst, uint8_t* bottom_dst, int len) { + (void)top_y; + (void)bottom_y; + (void)top_u; + (void)top_v; + (void)cur_u; + (void)cur_v; + (void)top_dst; + (void)bottom_dst; + (void)len; + assert(0); // COLORSPACE SUPPORT NOT COMPILED +} +#define UpsampleArgbLinePair_C EmptyUpsampleFunc +#define UpsampleRgbLinePair_C EmptyUpsampleFunc +#define UpsampleBgrLinePair_C EmptyUpsampleFunc +#define UpsampleRgba4444LinePair_C EmptyUpsampleFunc +#define UpsampleRgb565LinePair_C EmptyUpsampleFunc +#endif // WEBP_REDUCE_CSP + +#endif #undef LOAD_UV #undef UPSAMPLE_FUNC @@ -141,7 +167,6 @@ DUAL_SAMPLE_FUNC(DualLineSamplerARGB, VP8YuvToArgb) WebPUpsampleLinePairFunc WebPGetLinePairConverter(int alpha_is_last) { WebPInitUpsamplers(); - VP8YUVInit(); #ifdef FANCY_UPSAMPLING return WebPUpsamplers[alpha_is_last ? MODE_BGRA : MODE_ARGB]; #else @@ -158,16 +183,33 @@ extern void FUNC_NAME(const uint8_t* y, const uint8_t* u, const uint8_t* v, \ void FUNC_NAME(const uint8_t* y, const uint8_t* u, const uint8_t* v, \ uint8_t* dst, int len) { \ int i; \ - for (i = 0; i < len; ++i) FUNC(y[i], u[i], v[i], &dst[i * XSTEP]); \ + for (i = 0; i < len; ++i) FUNC(y[i], u[i], v[i], &dst[i * (XSTEP)]); \ } -YUV444_FUNC(WebPYuv444ToRgbC, VP8YuvToRgb, 3) -YUV444_FUNC(WebPYuv444ToBgrC, VP8YuvToBgr, 3) -YUV444_FUNC(WebPYuv444ToRgbaC, VP8YuvToRgba, 4) -YUV444_FUNC(WebPYuv444ToBgraC, VP8YuvToBgra, 4) -YUV444_FUNC(WebPYuv444ToArgbC, VP8YuvToArgb, 4) -YUV444_FUNC(WebPYuv444ToRgba4444C, VP8YuvToRgba4444, 2) -YUV444_FUNC(WebPYuv444ToRgb565C, VP8YuvToRgb565, 2) +YUV444_FUNC(WebPYuv444ToRgba_C, VP8YuvToRgba, 4) +YUV444_FUNC(WebPYuv444ToBgra_C, VP8YuvToBgra, 4) +#if !defined(WEBP_REDUCE_CSP) +YUV444_FUNC(WebPYuv444ToRgb_C, VP8YuvToRgb, 3) +YUV444_FUNC(WebPYuv444ToBgr_C, VP8YuvToBgr, 3) +YUV444_FUNC(WebPYuv444ToArgb_C, VP8YuvToArgb, 4) +YUV444_FUNC(WebPYuv444ToRgba4444_C, VP8YuvToRgba4444, 2) +YUV444_FUNC(WebPYuv444ToRgb565_C, VP8YuvToRgb565, 2) +#else +static void EmptyYuv444Func(const uint8_t* y, + const uint8_t* u, const uint8_t* v, + uint8_t* dst, int len) { + (void)y; + (void)u; + (void)v; + (void)dst; + (void)len; +} +#define WebPYuv444ToRgb_C EmptyYuv444Func +#define WebPYuv444ToBgr_C EmptyYuv444Func +#define WebPYuv444ToArgb_C EmptyYuv444Func +#define WebPYuv444ToRgba4444_C EmptyYuv444Func +#define WebPYuv444ToRgb565_C EmptyYuv444Func +#endif // WEBP_REDUCE_CSP #undef YUV444_FUNC @@ -175,24 +217,20 @@ WebPYUV444Converter WebPYUV444Converters[MODE_LAST]; extern void WebPInitYUV444ConvertersMIPSdspR2(void); extern void WebPInitYUV444ConvertersSSE2(void); - -static volatile VP8CPUInfo upsampling_last_cpuinfo_used1 = - (VP8CPUInfo)&upsampling_last_cpuinfo_used1; - -WEBP_TSAN_IGNORE_FUNCTION void WebPInitYUV444Converters(void) { - if (upsampling_last_cpuinfo_used1 == VP8GetCPUInfo) return; - - WebPYUV444Converters[MODE_RGB] = WebPYuv444ToRgbC; - WebPYUV444Converters[MODE_RGBA] = WebPYuv444ToRgbaC; - WebPYUV444Converters[MODE_BGR] = WebPYuv444ToBgrC; - WebPYUV444Converters[MODE_BGRA] = WebPYuv444ToBgraC; - WebPYUV444Converters[MODE_ARGB] = WebPYuv444ToArgbC; - WebPYUV444Converters[MODE_RGBA_4444] = WebPYuv444ToRgba4444C; - WebPYUV444Converters[MODE_RGB_565] = WebPYuv444ToRgb565C; - WebPYUV444Converters[MODE_rgbA] = WebPYuv444ToRgbaC; - WebPYUV444Converters[MODE_bgrA] = WebPYuv444ToBgraC; - WebPYUV444Converters[MODE_Argb] = WebPYuv444ToArgbC; - WebPYUV444Converters[MODE_rgbA_4444] = WebPYuv444ToRgba4444C; +extern void WebPInitYUV444ConvertersSSE41(void); + +WEBP_DSP_INIT_FUNC(WebPInitYUV444Converters) { + WebPYUV444Converters[MODE_RGBA] = WebPYuv444ToRgba_C; + WebPYUV444Converters[MODE_BGRA] = WebPYuv444ToBgra_C; + WebPYUV444Converters[MODE_RGB] = WebPYuv444ToRgb_C; + WebPYUV444Converters[MODE_BGR] = WebPYuv444ToBgr_C; + WebPYUV444Converters[MODE_ARGB] = WebPYuv444ToArgb_C; + WebPYUV444Converters[MODE_RGBA_4444] = WebPYuv444ToRgba4444_C; + WebPYUV444Converters[MODE_RGB_565] = WebPYuv444ToRgb565_C; + WebPYUV444Converters[MODE_rgbA] = WebPYuv444ToRgba_C; + WebPYUV444Converters[MODE_bgrA] = WebPYuv444ToBgra_C; + WebPYUV444Converters[MODE_Argb] = WebPYuv444ToArgb_C; + WebPYUV444Converters[MODE_rgbA_4444] = WebPYuv444ToRgba4444_C; if (VP8GetCPUInfo != NULL) { #if defined(WEBP_USE_SSE2) @@ -200,41 +238,43 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPInitYUV444Converters(void) { WebPInitYUV444ConvertersSSE2(); } #endif +#if defined(WEBP_USE_SSE41) + if (VP8GetCPUInfo(kSSE4_1)) { + WebPInitYUV444ConvertersSSE41(); + } +#endif #if defined(WEBP_USE_MIPS_DSP_R2) if (VP8GetCPUInfo(kMIPSdspR2)) { WebPInitYUV444ConvertersMIPSdspR2(); } #endif } - upsampling_last_cpuinfo_used1 = VP8GetCPUInfo; } //------------------------------------------------------------------------------ // Main calls extern void WebPInitUpsamplersSSE2(void); +extern void WebPInitUpsamplersSSE41(void); extern void WebPInitUpsamplersNEON(void); extern void WebPInitUpsamplersMIPSdspR2(void); extern void WebPInitUpsamplersMSA(void); -static volatile VP8CPUInfo upsampling_last_cpuinfo_used2 = - (VP8CPUInfo)&upsampling_last_cpuinfo_used2; - -WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplers(void) { - if (upsampling_last_cpuinfo_used2 == VP8GetCPUInfo) return; - +WEBP_DSP_INIT_FUNC(WebPInitUpsamplers) { #ifdef FANCY_UPSAMPLING - WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair; - WebPUpsamplers[MODE_RGBA] = UpsampleRgbaLinePair; - WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePair; - WebPUpsamplers[MODE_BGRA] = UpsampleBgraLinePair; - WebPUpsamplers[MODE_ARGB] = UpsampleArgbLinePair; - WebPUpsamplers[MODE_RGBA_4444] = UpsampleRgba4444LinePair; - WebPUpsamplers[MODE_RGB_565] = UpsampleRgb565LinePair; - WebPUpsamplers[MODE_rgbA] = UpsampleRgbaLinePair; - WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePair; - WebPUpsamplers[MODE_Argb] = UpsampleArgbLinePair; - WebPUpsamplers[MODE_rgbA_4444] = UpsampleRgba4444LinePair; +#if !WEBP_NEON_OMIT_C_CODE + WebPUpsamplers[MODE_RGBA] = UpsampleRgbaLinePair_C; + WebPUpsamplers[MODE_BGRA] = UpsampleBgraLinePair_C; + WebPUpsamplers[MODE_rgbA] = UpsampleRgbaLinePair_C; + WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePair_C; + WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair_C; + WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePair_C; + WebPUpsamplers[MODE_ARGB] = UpsampleArgbLinePair_C; + WebPUpsamplers[MODE_RGBA_4444] = UpsampleRgba4444LinePair_C; + WebPUpsamplers[MODE_RGB_565] = UpsampleRgb565LinePair_C; + WebPUpsamplers[MODE_Argb] = UpsampleArgbLinePair_C; + WebPUpsamplers[MODE_rgbA_4444] = UpsampleRgba4444LinePair_C; +#endif // If defined, use CPUInfo() to overwrite some pointers with faster versions. if (VP8GetCPUInfo != NULL) { @@ -243,9 +283,9 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplers(void) { WebPInitUpsamplersSSE2(); } #endif -#if defined(WEBP_USE_NEON) - if (VP8GetCPUInfo(kNEON)) { - WebPInitUpsamplersNEON(); +#if defined(WEBP_USE_SSE41) + if (VP8GetCPUInfo(kSSE4_1)) { + WebPInitUpsamplersSSE41(); } #endif #if defined(WEBP_USE_MIPS_DSP_R2) @@ -259,8 +299,29 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplers(void) { } #endif } + +#if defined(WEBP_USE_NEON) + if (WEBP_NEON_OMIT_C_CODE || + (VP8GetCPUInfo != NULL && VP8GetCPUInfo(kNEON))) { + WebPInitUpsamplersNEON(); + } +#endif + + assert(WebPUpsamplers[MODE_RGBA] != NULL); + assert(WebPUpsamplers[MODE_BGRA] != NULL); + assert(WebPUpsamplers[MODE_rgbA] != NULL); + assert(WebPUpsamplers[MODE_bgrA] != NULL); +#if !defined(WEBP_REDUCE_CSP) || !WEBP_NEON_OMIT_C_CODE + assert(WebPUpsamplers[MODE_RGB] != NULL); + assert(WebPUpsamplers[MODE_BGR] != NULL); + assert(WebPUpsamplers[MODE_ARGB] != NULL); + assert(WebPUpsamplers[MODE_RGBA_4444] != NULL); + assert(WebPUpsamplers[MODE_RGB_565] != NULL); + assert(WebPUpsamplers[MODE_Argb] != NULL); + assert(WebPUpsamplers[MODE_rgbA_4444] != NULL); +#endif + #endif // FANCY_UPSAMPLING - upsampling_last_cpuinfo_used2 = VP8GetCPUInfo; } //------------------------------------------------------------------------------ diff --git a/external/libwebp-0.6.0/src/dsp/upsampling_mips_dsp_r2.c b/external/libwebp-1.0.0/src/dsp/upsampling_mips_dsp_r2.c similarity index 96% rename from external/libwebp-0.6.0/src/dsp/upsampling_mips_dsp_r2.c rename to external/libwebp-1.0.0/src/dsp/upsampling_mips_dsp_r2.c index ed2eb748..10d499d7 100644 --- a/external/libwebp-0.6.0/src/dsp/upsampling_mips_dsp_r2.c +++ b/external/libwebp-1.0.0/src/dsp/upsampling_mips_dsp_r2.c @@ -12,14 +12,12 @@ // Author(s): Branimir Vasic (branimir.vasic@imgtec.com) // Djordje Pesut (djordje.pesut@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MIPS_DSP_R2) #include -#include "./yuv.h" - -#if !defined(WEBP_YUV_USE_TABLE) +#include "src/dsp/yuv.h" #define YUV_TO_RGB(Y, U, V, R, G, B) do { \ const int t1 = MultHi(Y, 19077); \ @@ -48,6 +46,7 @@ ); \ } while (0) +#if !defined(WEBP_REDUCE_CSP) static WEBP_INLINE void YuvToRgb(int y, int u, int v, uint8_t* const rgb) { int r, g, b; YUV_TO_RGB(y, u, v, r, g, b); @@ -68,7 +67,7 @@ static WEBP_INLINE void YuvToRgb565(int y, int u, int v, uint8_t* const rgb) { { const int rg = (r & 0xf8) | (g >> 5); const int gb = ((g << 3) & 0xe0) | (b >> 3); -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) rgb[0] = gb; rgb[1] = rg; #else @@ -84,7 +83,7 @@ static WEBP_INLINE void YuvToRgba4444(int y, int u, int v, { const int rg = (r & 0xf0) | (g >> 4); const int ba = (b & 0xf0) | 0x0f; // overwrite the lower 4 bits -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) argb[0] = ba; argb[1] = rg; #else @@ -93,11 +92,12 @@ static WEBP_INLINE void YuvToRgba4444(int y, int u, int v, #endif } } -#endif // WEBP_YUV_USE_TABLE +#endif // WEBP_REDUCE_CSP //----------------------------------------------------------------------------- // Alpha handling variants +#if !defined(WEBP_REDUCE_CSP) static WEBP_INLINE void YuvToArgb(uint8_t y, uint8_t u, uint8_t v, uint8_t* const argb) { int r, g, b; @@ -107,6 +107,7 @@ static WEBP_INLINE void YuvToArgb(uint8_t y, uint8_t u, uint8_t v, argb[2] = g; argb[3] = b; } +#endif // WEBP_REDUCE_CSP static WEBP_INLINE void YuvToBgra(uint8_t y, uint8_t u, uint8_t v, uint8_t* const bgra) { int r, g, b; @@ -200,13 +201,15 @@ static void FUNC_NAME(const uint8_t* top_y, const uint8_t* bottom_y, \ } // All variants implemented. -UPSAMPLE_FUNC(UpsampleRgbLinePair, YuvToRgb, 3) -UPSAMPLE_FUNC(UpsampleBgrLinePair, YuvToBgr, 3) UPSAMPLE_FUNC(UpsampleRgbaLinePair, YuvToRgba, 4) UPSAMPLE_FUNC(UpsampleBgraLinePair, YuvToBgra, 4) +#if !defined(WEBP_REDUCE_CSP) +UPSAMPLE_FUNC(UpsampleRgbLinePair, YuvToRgb, 3) +UPSAMPLE_FUNC(UpsampleBgrLinePair, YuvToBgr, 3) UPSAMPLE_FUNC(UpsampleArgbLinePair, YuvToArgb, 4) UPSAMPLE_FUNC(UpsampleRgba4444LinePair, YuvToRgba4444, 2) UPSAMPLE_FUNC(UpsampleRgb565LinePair, YuvToRgb565, 2) +#endif // WEBP_REDUCE_CSP #undef LOAD_UV #undef UPSAMPLE_FUNC @@ -217,17 +220,19 @@ UPSAMPLE_FUNC(UpsampleRgb565LinePair, YuvToRgb565, 2) extern void WebPInitUpsamplersMIPSdspR2(void); WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersMIPSdspR2(void) { - WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair; WebPUpsamplers[MODE_RGBA] = UpsampleRgbaLinePair; - WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePair; WebPUpsamplers[MODE_BGRA] = UpsampleBgraLinePair; + WebPUpsamplers[MODE_rgbA] = UpsampleRgbaLinePair; + WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePair; +#if !defined(WEBP_REDUCE_CSP) + WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair; + WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePair; WebPUpsamplers[MODE_ARGB] = UpsampleArgbLinePair; WebPUpsamplers[MODE_RGBA_4444] = UpsampleRgba4444LinePair; WebPUpsamplers[MODE_RGB_565] = UpsampleRgb565LinePair; - WebPUpsamplers[MODE_rgbA] = UpsampleRgbaLinePair; - WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePair; WebPUpsamplers[MODE_Argb] = UpsampleArgbLinePair; WebPUpsamplers[MODE_rgbA_4444] = UpsampleRgba4444LinePair; +#endif // WEBP_REDUCE_CSP } #endif // FANCY_UPSAMPLING @@ -242,13 +247,15 @@ static void FUNC_NAME(const uint8_t* y, const uint8_t* u, const uint8_t* v, \ for (i = 0; i < len; ++i) FUNC(y[i], u[i], v[i], &dst[i * XSTEP]); \ } -YUV444_FUNC(Yuv444ToRgb, YuvToRgb, 3) -YUV444_FUNC(Yuv444ToBgr, YuvToBgr, 3) YUV444_FUNC(Yuv444ToRgba, YuvToRgba, 4) YUV444_FUNC(Yuv444ToBgra, YuvToBgra, 4) +#if !defined(WEBP_REDUCE_CSP) +YUV444_FUNC(Yuv444ToRgb, YuvToRgb, 3) +YUV444_FUNC(Yuv444ToBgr, YuvToBgr, 3) YUV444_FUNC(Yuv444ToArgb, YuvToArgb, 4) YUV444_FUNC(Yuv444ToRgba4444, YuvToRgba4444, 2) YUV444_FUNC(Yuv444ToRgb565, YuvToRgb565, 2) +#endif // WEBP_REDUCE_CSP #undef YUV444_FUNC @@ -258,17 +265,19 @@ YUV444_FUNC(Yuv444ToRgb565, YuvToRgb565, 2) extern void WebPInitYUV444ConvertersMIPSdspR2(void); WEBP_TSAN_IGNORE_FUNCTION void WebPInitYUV444ConvertersMIPSdspR2(void) { - WebPYUV444Converters[MODE_RGB] = Yuv444ToRgb; WebPYUV444Converters[MODE_RGBA] = Yuv444ToRgba; - WebPYUV444Converters[MODE_BGR] = Yuv444ToBgr; WebPYUV444Converters[MODE_BGRA] = Yuv444ToBgra; + WebPYUV444Converters[MODE_rgbA] = Yuv444ToRgba; + WebPYUV444Converters[MODE_bgrA] = Yuv444ToBgra; +#if !defined(WEBP_REDUCE_CSP) + WebPYUV444Converters[MODE_RGB] = Yuv444ToRgb; + WebPYUV444Converters[MODE_BGR] = Yuv444ToBgr; WebPYUV444Converters[MODE_ARGB] = Yuv444ToArgb; WebPYUV444Converters[MODE_RGBA_4444] = Yuv444ToRgba4444; WebPYUV444Converters[MODE_RGB_565] = Yuv444ToRgb565; - WebPYUV444Converters[MODE_rgbA] = Yuv444ToRgba; - WebPYUV444Converters[MODE_bgrA] = Yuv444ToBgra; WebPYUV444Converters[MODE_Argb] = Yuv444ToArgb; WebPYUV444Converters[MODE_rgbA_4444] = Yuv444ToRgba4444; +#endif // WEBP_REDUCE_CSP } #else // !WEBP_USE_MIPS_DSP_R2 diff --git a/external/libwebp-0.6.0/src/dsp/upsampling_msa.c b/external/libwebp-1.0.0/src/dsp/upsampling_msa.c similarity index 97% rename from external/libwebp-0.6.0/src/dsp/upsampling_msa.c rename to external/libwebp-1.0.0/src/dsp/upsampling_msa.c index f24926fa..99eea70e 100644 --- a/external/libwebp-0.6.0/src/dsp/upsampling_msa.c +++ b/external/libwebp-1.0.0/src/dsp/upsampling_msa.c @@ -12,12 +12,12 @@ // Author: Prashant Patil (prashant.patil@imgtec.com) #include -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MSA) -#include "./msa_macro.h" -#include "./yuv.h" +#include "src/dsp/msa_macro.h" +#include "src/dsp/yuv.h" #ifdef FANCY_UPSAMPLING @@ -264,6 +264,7 @@ static void YuvToBgr(int y, int u, int v, uint8_t* const bgr) { bgr[2] = Clip8(r1 >> 6); } +#if !defined(WEBP_REDUCE_CSP) static void YuvToRgb565(int y, int u, int v, uint8_t* const rgb) { const int y1 = MultHi(y, 19077); const int r1 = y1 + MultHi(v, 26149) - 14234; @@ -274,7 +275,7 @@ static void YuvToRgb565(int y, int u, int v, uint8_t* const rgb) { const int b = Clip8(b1 >> 6); const int rg = (r & 0xf8) | (g >> 5); const int gb = ((g << 3) & 0xe0) | (b >> 3); -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) rgb[0] = gb; rgb[1] = rg; #else @@ -293,7 +294,7 @@ static void YuvToRgba4444(int y, int u, int v, uint8_t* const argb) { const int b = Clip8(b1 >> 6); const int rg = (r & 0xf0) | (g >> 4); const int ba = (b & 0xf0) | 0x0f; // overwrite the lower 4 bits -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) argb[0] = ba; argb[1] = rg; #else @@ -306,6 +307,7 @@ static void YuvToArgb(uint8_t y, uint8_t u, uint8_t v, uint8_t* const argb) { argb[0] = 0xff; YuvToRgb(y, u, v, argb + 1); } +#endif // WEBP_REDUCE_CSP static void YuvToBgra(uint8_t y, uint8_t u, uint8_t v, uint8_t* const bgra) { YuvToBgr(y, u, v, bgra); @@ -317,6 +319,7 @@ static void YuvToRgba(uint8_t y, uint8_t u, uint8_t v, uint8_t* const rgba) { rgba[3] = 0xff; } +#if !defined(WEBP_REDUCE_CSP) static void YuvToRgbLine(const uint8_t* y, const uint8_t* u, const uint8_t* v, uint8_t* dst, int length) { v16u8 R, G, B; @@ -370,11 +373,12 @@ static void YuvToBgrLine(const uint8_t* y, const uint8_t* u, memcpy(dst, temp, length * 3 * sizeof(*dst)); } } +#endif // WEBP_REDUCE_CSP static void YuvToRgbaLine(const uint8_t* y, const uint8_t* u, const uint8_t* v, uint8_t* dst, int length) { v16u8 R, G, B; - const v16u8 A = (v16u8)__msa_ldi_b(0xff); + const v16u8 A = (v16u8)__msa_ldi_b(ALPHAVAL); while (length >= 16) { CALC_RGB16(y, u, v, R, G, B); STORE16_4(R, G, B, A, dst); @@ -402,7 +406,7 @@ static void YuvToRgbaLine(const uint8_t* y, const uint8_t* u, static void YuvToBgraLine(const uint8_t* y, const uint8_t* u, const uint8_t* v, uint8_t* dst, int length) { v16u8 R, G, B; - const v16u8 A = (v16u8)__msa_ldi_b(0xff); + const v16u8 A = (v16u8)__msa_ldi_b(ALPHAVAL); while (length >= 16) { CALC_RGB16(y, u, v, R, G, B); STORE16_4(B, G, R, A, dst); @@ -427,10 +431,11 @@ static void YuvToBgraLine(const uint8_t* y, const uint8_t* u, } } +#if !defined(WEBP_REDUCE_CSP) static void YuvToArgbLine(const uint8_t* y, const uint8_t* u, const uint8_t* v, uint8_t* dst, int length) { v16u8 R, G, B; - const v16u8 A = (v16u8)__msa_ldi_b(0xff); + const v16u8 A = (v16u8)__msa_ldi_b(ALPHAVAL); while (length >= 16) { CALC_RGB16(y, u, v, R, G, B); STORE16_4(A, R, G, B, dst); @@ -459,11 +464,11 @@ static void YuvToRgba4444Line(const uint8_t* y, const uint8_t* u, const uint8_t* v, uint8_t* dst, int length) { v16u8 R, G, B, RG, BA, tmp0, tmp1; while (length >= 16) { - #ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) CALC_RGBA4444(y, u, v, BA, RG, 16, dst); - #else +#else CALC_RGBA4444(y, u, v, RG, BA, 16, dst); - #endif +#endif y += 16; u += 16; v += 16; @@ -473,7 +478,7 @@ static void YuvToRgba4444Line(const uint8_t* y, const uint8_t* u, if (length > 8) { uint8_t temp[2 * 16] = { 0 }; memcpy(temp, y, length * sizeof(*temp)); -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) CALC_RGBA4444(temp, u, v, BA, RG, 16, temp); #else CALC_RGBA4444(temp, u, v, RG, BA, 16, temp); @@ -482,7 +487,7 @@ static void YuvToRgba4444Line(const uint8_t* y, const uint8_t* u, } else if (length > 0) { uint8_t temp[2 * 8] = { 0 }; memcpy(temp, y, length * sizeof(*temp)); -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) CALC_RGBA4444(temp, u, v, BA, RG, 8, temp); #else CALC_RGBA4444(temp, u, v, RG, BA, 8, temp); @@ -495,11 +500,11 @@ static void YuvToRgb565Line(const uint8_t* y, const uint8_t* u, const uint8_t* v, uint8_t* dst, int length) { v16u8 R, G, B, RG, GB, tmp0, tmp1; while (length >= 16) { - #ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) CALC_RGB565(y, u, v, GB, RG, 16, dst); - #else +#else CALC_RGB565(y, u, v, RG, GB, 16, dst); - #endif +#endif y += 16; u += 16; v += 16; @@ -509,7 +514,7 @@ static void YuvToRgb565Line(const uint8_t* y, const uint8_t* u, if (length > 8) { uint8_t temp[2 * 16] = { 0 }; memcpy(temp, y, length * sizeof(*temp)); -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) CALC_RGB565(temp, u, v, GB, RG, 16, temp); #else CALC_RGB565(temp, u, v, RG, GB, 16, temp); @@ -518,7 +523,7 @@ static void YuvToRgb565Line(const uint8_t* y, const uint8_t* u, } else if (length > 0) { uint8_t temp[2 * 8] = { 0 }; memcpy(temp, y, length * sizeof(*temp)); -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) CALC_RGB565(temp, u, v, GB, RG, 8, temp); #else CALC_RGB565(temp, u, v, RG, GB, 8, temp); @@ -526,6 +531,7 @@ static void YuvToRgb565Line(const uint8_t* y, const uint8_t* u, memcpy(dst, temp, length * 2 * sizeof(*dst)); } } +#endif // WEBP_REDUCE_CSP #define UPSAMPLE_32PIXELS(a, b, c, d) do { \ v16u8 s = __msa_aver_u_b(a, d); \ @@ -640,13 +646,15 @@ static void FUNC_NAME(const uint8_t* top_y, const uint8_t* bot_y, \ } \ } -UPSAMPLE_FUNC(UpsampleRgbLinePair, YuvToRgb, 3) -UPSAMPLE_FUNC(UpsampleBgrLinePair, YuvToBgr, 3) UPSAMPLE_FUNC(UpsampleRgbaLinePair, YuvToRgba, 4) UPSAMPLE_FUNC(UpsampleBgraLinePair, YuvToBgra, 4) +#if !defined(WEBP_REDUCE_CSP) +UPSAMPLE_FUNC(UpsampleRgbLinePair, YuvToRgb, 3) +UPSAMPLE_FUNC(UpsampleBgrLinePair, YuvToBgr, 3) UPSAMPLE_FUNC(UpsampleArgbLinePair, YuvToArgb, 4) UPSAMPLE_FUNC(UpsampleRgba4444LinePair, YuvToRgba4444, 2) UPSAMPLE_FUNC(UpsampleRgb565LinePair, YuvToRgb565, 2) +#endif // WEBP_REDUCE_CSP //------------------------------------------------------------------------------ // Entry point @@ -656,17 +664,19 @@ extern WebPUpsampleLinePairFunc WebPUpsamplers[/* MODE_LAST */]; extern void WebPInitUpsamplersMSA(void); WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersMSA(void) { - WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair; WebPUpsamplers[MODE_RGBA] = UpsampleRgbaLinePair; - WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePair; WebPUpsamplers[MODE_BGRA] = UpsampleBgraLinePair; - WebPUpsamplers[MODE_ARGB] = UpsampleArgbLinePair; WebPUpsamplers[MODE_rgbA] = UpsampleRgbaLinePair; WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePair; +#if !defined(WEBP_REDUCE_CSP) + WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair; + WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePair; + WebPUpsamplers[MODE_ARGB] = UpsampleArgbLinePair; WebPUpsamplers[MODE_Argb] = UpsampleArgbLinePair; WebPUpsamplers[MODE_RGB_565] = UpsampleRgb565LinePair; WebPUpsamplers[MODE_RGBA_4444] = UpsampleRgba4444LinePair; WebPUpsamplers[MODE_rgbA_4444] = UpsampleRgba4444LinePair; +#endif // WEBP_REDUCE_CSP } #endif // FANCY_UPSAMPLING diff --git a/external/libwebp-0.6.0/src/dsp/upsampling_neon.c b/external/libwebp-1.0.0/src/dsp/upsampling_neon.c similarity index 90% rename from external/libwebp-0.6.0/src/dsp/upsampling_neon.c rename to external/libwebp-1.0.0/src/dsp/upsampling_neon.c index d371a834..17cbc9f9 100644 --- a/external/libwebp-0.6.0/src/dsp/upsampling_neon.c +++ b/external/libwebp-1.0.0/src/dsp/upsampling_neon.c @@ -12,15 +12,15 @@ // Author: mans@mansr.com (Mans Rullgard) // Based on SSE code by: somnath@google.com (Somnath Banerjee) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_NEON) #include #include #include -#include "./neon.h" -#include "./yuv.h" +#include "src/dsp/neon.h" +#include "src/dsp/yuv.h" #ifdef FANCY_UPSAMPLING @@ -58,8 +58,8 @@ } while (0) // Turn the macro into a function for reducing code-size when non-critical -static void Upsample16Pixels(const uint8_t *r1, const uint8_t *r2, - uint8_t *out) { +static void Upsample16Pixels_NEON(const uint8_t *r1, const uint8_t *r2, + uint8_t *out) { UPSAMPLE_16PIXELS(r1, r2, out); } @@ -70,7 +70,7 @@ static void Upsample16Pixels(const uint8_t *r1, const uint8_t *r2, /* replicate last byte */ \ memset(r1 + (num_pixels), r1[(num_pixels) - 1], 9 - (num_pixels)); \ memset(r2 + (num_pixels), r2[(num_pixels) - 1], 9 - (num_pixels)); \ - Upsample16Pixels(r1, r2, out); \ + Upsample16Pixels_NEON(r1, r2, out); \ } //----------------------------------------------------------------------------- @@ -243,13 +243,15 @@ static void FUNC_NAME(const uint8_t *top_y, const uint8_t *bottom_y, \ } // NEON variants of the fancy upsampler. -NEON_UPSAMPLE_FUNC(UpsampleRgbLinePair, Rgb, 3) -NEON_UPSAMPLE_FUNC(UpsampleBgrLinePair, Bgr, 3) -NEON_UPSAMPLE_FUNC(UpsampleRgbaLinePair, Rgba, 4) -NEON_UPSAMPLE_FUNC(UpsampleBgraLinePair, Bgra, 4) -NEON_UPSAMPLE_FUNC(UpsampleArgbLinePair, Argb, 4) -NEON_UPSAMPLE_FUNC(UpsampleRgba4444LinePair, Rgba4444, 2) -NEON_UPSAMPLE_FUNC(UpsampleRgb565LinePair, Rgb565, 2) +NEON_UPSAMPLE_FUNC(UpsampleRgbaLinePair_NEON, Rgba, 4) +NEON_UPSAMPLE_FUNC(UpsampleBgraLinePair_NEON, Bgra, 4) +#if !defined(WEBP_REDUCE_CSP) +NEON_UPSAMPLE_FUNC(UpsampleRgbLinePair_NEON, Rgb, 3) +NEON_UPSAMPLE_FUNC(UpsampleBgrLinePair_NEON, Bgr, 3) +NEON_UPSAMPLE_FUNC(UpsampleArgbLinePair_NEON, Argb, 4) +NEON_UPSAMPLE_FUNC(UpsampleRgba4444LinePair_NEON, Rgba4444, 2) +NEON_UPSAMPLE_FUNC(UpsampleRgb565LinePair_NEON, Rgb565, 2) +#endif // WEBP_REDUCE_CSP //------------------------------------------------------------------------------ // Entry point @@ -259,17 +261,19 @@ extern WebPUpsampleLinePairFunc WebPUpsamplers[/* MODE_LAST */]; extern void WebPInitUpsamplersNEON(void); WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersNEON(void) { - WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair; - WebPUpsamplers[MODE_RGBA] = UpsampleRgbaLinePair; - WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePair; - WebPUpsamplers[MODE_BGRA] = UpsampleBgraLinePair; - WebPUpsamplers[MODE_ARGB] = UpsampleArgbLinePair; - WebPUpsamplers[MODE_rgbA] = UpsampleRgbaLinePair; - WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePair; - WebPUpsamplers[MODE_Argb] = UpsampleArgbLinePair; - WebPUpsamplers[MODE_RGB_565] = UpsampleRgb565LinePair; - WebPUpsamplers[MODE_RGBA_4444] = UpsampleRgba4444LinePair; - WebPUpsamplers[MODE_rgbA_4444] = UpsampleRgba4444LinePair; + WebPUpsamplers[MODE_RGBA] = UpsampleRgbaLinePair_NEON; + WebPUpsamplers[MODE_BGRA] = UpsampleBgraLinePair_NEON; + WebPUpsamplers[MODE_rgbA] = UpsampleRgbaLinePair_NEON; + WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePair_NEON; +#if !defined(WEBP_REDUCE_CSP) + WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair_NEON; + WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePair_NEON; + WebPUpsamplers[MODE_ARGB] = UpsampleArgbLinePair_NEON; + WebPUpsamplers[MODE_Argb] = UpsampleArgbLinePair_NEON; + WebPUpsamplers[MODE_RGB_565] = UpsampleRgb565LinePair_NEON; + WebPUpsamplers[MODE_RGBA_4444] = UpsampleRgba4444LinePair_NEON; + WebPUpsamplers[MODE_rgbA_4444] = UpsampleRgba4444LinePair_NEON; +#endif // WEBP_REDUCE_CSP } #endif // FANCY_UPSAMPLING diff --git a/external/libwebp-1.0.0/src/dsp/upsampling_sse2.c b/external/libwebp-1.0.0/src/dsp/upsampling_sse2.c new file mode 100644 index 00000000..340f1e2a --- /dev/null +++ b/external/libwebp-1.0.0/src/dsp/upsampling_sse2.c @@ -0,0 +1,267 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// SSE2 version of YUV to RGB upsampling functions. +// +// Author: somnath@google.com (Somnath Banerjee) + +#include "src/dsp/dsp.h" + +#if defined(WEBP_USE_SSE2) + +#include +#include +#include +#include "src/dsp/yuv.h" + +#ifdef FANCY_UPSAMPLING + +// We compute (9*a + 3*b + 3*c + d + 8) / 16 as follows +// u = (9*a + 3*b + 3*c + d + 8) / 16 +// = (a + (a + 3*b + 3*c + d) / 8 + 1) / 2 +// = (a + m + 1) / 2 +// where m = (a + 3*b + 3*c + d) / 8 +// = ((a + b + c + d) / 2 + b + c) / 4 +// +// Let's say k = (a + b + c + d) / 4. +// We can compute k as +// k = (s + t + 1) / 2 - ((a^d) | (b^c) | (s^t)) & 1 +// where s = (a + d + 1) / 2 and t = (b + c + 1) / 2 +// +// Then m can be written as +// m = (k + t + 1) / 2 - (((b^c) & (s^t)) | (k^t)) & 1 + +// Computes out = (k + in + 1) / 2 - ((ij & (s^t)) | (k^in)) & 1 +#define GET_M(ij, in, out) do { \ + const __m128i tmp0 = _mm_avg_epu8(k, (in)); /* (k + in + 1) / 2 */ \ + const __m128i tmp1 = _mm_and_si128((ij), st); /* (ij) & (s^t) */ \ + const __m128i tmp2 = _mm_xor_si128(k, (in)); /* (k^in) */ \ + const __m128i tmp3 = _mm_or_si128(tmp1, tmp2); /* ((ij) & (s^t)) | (k^in) */\ + const __m128i tmp4 = _mm_and_si128(tmp3, one); /* & 1 -> lsb_correction */ \ + (out) = _mm_sub_epi8(tmp0, tmp4); /* (k + in + 1) / 2 - lsb_correction */ \ +} while (0) + +// pack and store two alternating pixel rows +#define PACK_AND_STORE(a, b, da, db, out) do { \ + const __m128i t_a = _mm_avg_epu8(a, da); /* (9a + 3b + 3c + d + 8) / 16 */ \ + const __m128i t_b = _mm_avg_epu8(b, db); /* (3a + 9b + c + 3d + 8) / 16 */ \ + const __m128i t_1 = _mm_unpacklo_epi8(t_a, t_b); \ + const __m128i t_2 = _mm_unpackhi_epi8(t_a, t_b); \ + _mm_store_si128(((__m128i*)(out)) + 0, t_1); \ + _mm_store_si128(((__m128i*)(out)) + 1, t_2); \ +} while (0) + +// Loads 17 pixels each from rows r1 and r2 and generates 32 pixels. +#define UPSAMPLE_32PIXELS(r1, r2, out) { \ + const __m128i one = _mm_set1_epi8(1); \ + const __m128i a = _mm_loadu_si128((const __m128i*)&(r1)[0]); \ + const __m128i b = _mm_loadu_si128((const __m128i*)&(r1)[1]); \ + const __m128i c = _mm_loadu_si128((const __m128i*)&(r2)[0]); \ + const __m128i d = _mm_loadu_si128((const __m128i*)&(r2)[1]); \ + \ + const __m128i s = _mm_avg_epu8(a, d); /* s = (a + d + 1) / 2 */ \ + const __m128i t = _mm_avg_epu8(b, c); /* t = (b + c + 1) / 2 */ \ + const __m128i st = _mm_xor_si128(s, t); /* st = s^t */ \ + \ + const __m128i ad = _mm_xor_si128(a, d); /* ad = a^d */ \ + const __m128i bc = _mm_xor_si128(b, c); /* bc = b^c */ \ + \ + const __m128i t1 = _mm_or_si128(ad, bc); /* (a^d) | (b^c) */ \ + const __m128i t2 = _mm_or_si128(t1, st); /* (a^d) | (b^c) | (s^t) */ \ + const __m128i t3 = _mm_and_si128(t2, one); /* (a^d) | (b^c) | (s^t) & 1 */ \ + const __m128i t4 = _mm_avg_epu8(s, t); \ + const __m128i k = _mm_sub_epi8(t4, t3); /* k = (a + b + c + d) / 4 */ \ + __m128i diag1, diag2; \ + \ + GET_M(bc, t, diag1); /* diag1 = (a + 3b + 3c + d) / 8 */ \ + GET_M(ad, s, diag2); /* diag2 = (3a + b + c + 3d) / 8 */ \ + \ + /* pack the alternate pixels */ \ + PACK_AND_STORE(a, b, diag1, diag2, (out) + 0); /* store top */ \ + PACK_AND_STORE(c, d, diag2, diag1, (out) + 2 * 32); /* store bottom */ \ +} + +// Turn the macro into a function for reducing code-size when non-critical +static void Upsample32Pixels_SSE2(const uint8_t r1[], const uint8_t r2[], + uint8_t* const out) { + UPSAMPLE_32PIXELS(r1, r2, out); +} + +#define UPSAMPLE_LAST_BLOCK(tb, bb, num_pixels, out) { \ + uint8_t r1[17], r2[17]; \ + memcpy(r1, (tb), (num_pixels)); \ + memcpy(r2, (bb), (num_pixels)); \ + /* replicate last byte */ \ + memset(r1 + (num_pixels), r1[(num_pixels) - 1], 17 - (num_pixels)); \ + memset(r2 + (num_pixels), r2[(num_pixels) - 1], 17 - (num_pixels)); \ + /* using the shared function instead of the macro saves ~3k code size */ \ + Upsample32Pixels_SSE2(r1, r2, out); \ +} + +#define CONVERT2RGB_32(FUNC, XSTEP, top_y, bottom_y, \ + top_dst, bottom_dst, cur_x) do { \ + FUNC##32_SSE2((top_y) + (cur_x), r_u, r_v, (top_dst) + (cur_x) * (XSTEP)); \ + if ((bottom_y) != NULL) { \ + FUNC##32_SSE2((bottom_y) + (cur_x), r_u + 64, r_v + 64, \ + (bottom_dst) + (cur_x) * (XSTEP)); \ + } \ +} while (0) + +#define SSE2_UPSAMPLE_FUNC(FUNC_NAME, FUNC, XSTEP) \ +static void FUNC_NAME(const uint8_t* top_y, const uint8_t* bottom_y, \ + const uint8_t* top_u, const uint8_t* top_v, \ + const uint8_t* cur_u, const uint8_t* cur_v, \ + uint8_t* top_dst, uint8_t* bottom_dst, int len) { \ + int uv_pos, pos; \ + /* 16byte-aligned array to cache reconstructed u and v */ \ + uint8_t uv_buf[14 * 32 + 15] = { 0 }; \ + uint8_t* const r_u = (uint8_t*)((uintptr_t)(uv_buf + 15) & ~15); \ + uint8_t* const r_v = r_u + 32; \ + \ + assert(top_y != NULL); \ + { /* Treat the first pixel in regular way */ \ + const int u_diag = ((top_u[0] + cur_u[0]) >> 1) + 1; \ + const int v_diag = ((top_v[0] + cur_v[0]) >> 1) + 1; \ + const int u0_t = (top_u[0] + u_diag) >> 1; \ + const int v0_t = (top_v[0] + v_diag) >> 1; \ + FUNC(top_y[0], u0_t, v0_t, top_dst); \ + if (bottom_y != NULL) { \ + const int u0_b = (cur_u[0] + u_diag) >> 1; \ + const int v0_b = (cur_v[0] + v_diag) >> 1; \ + FUNC(bottom_y[0], u0_b, v0_b, bottom_dst); \ + } \ + } \ + /* For UPSAMPLE_32PIXELS, 17 u/v values must be read-able for each block */ \ + for (pos = 1, uv_pos = 0; pos + 32 + 1 <= len; pos += 32, uv_pos += 16) { \ + UPSAMPLE_32PIXELS(top_u + uv_pos, cur_u + uv_pos, r_u); \ + UPSAMPLE_32PIXELS(top_v + uv_pos, cur_v + uv_pos, r_v); \ + CONVERT2RGB_32(FUNC, XSTEP, top_y, bottom_y, top_dst, bottom_dst, pos); \ + } \ + if (len > 1) { \ + const int left_over = ((len + 1) >> 1) - (pos >> 1); \ + uint8_t* const tmp_top_dst = r_u + 4 * 32; \ + uint8_t* const tmp_bottom_dst = tmp_top_dst + 4 * 32; \ + uint8_t* const tmp_top = tmp_bottom_dst + 4 * 32; \ + uint8_t* const tmp_bottom = (bottom_y == NULL) ? NULL : tmp_top + 32; \ + assert(left_over > 0); \ + UPSAMPLE_LAST_BLOCK(top_u + uv_pos, cur_u + uv_pos, left_over, r_u); \ + UPSAMPLE_LAST_BLOCK(top_v + uv_pos, cur_v + uv_pos, left_over, r_v); \ + memcpy(tmp_top, top_y + pos, len - pos); \ + if (bottom_y != NULL) memcpy(tmp_bottom, bottom_y + pos, len - pos); \ + CONVERT2RGB_32(FUNC, XSTEP, tmp_top, tmp_bottom, tmp_top_dst, \ + tmp_bottom_dst, 0); \ + memcpy(top_dst + pos * (XSTEP), tmp_top_dst, (len - pos) * (XSTEP)); \ + if (bottom_y != NULL) { \ + memcpy(bottom_dst + pos * (XSTEP), tmp_bottom_dst, \ + (len - pos) * (XSTEP)); \ + } \ + } \ +} + +// SSE2 variants of the fancy upsampler. +SSE2_UPSAMPLE_FUNC(UpsampleRgbaLinePair_SSE2, VP8YuvToRgba, 4) +SSE2_UPSAMPLE_FUNC(UpsampleBgraLinePair_SSE2, VP8YuvToBgra, 4) + +#if !defined(WEBP_REDUCE_CSP) +SSE2_UPSAMPLE_FUNC(UpsampleRgbLinePair_SSE2, VP8YuvToRgb, 3) +SSE2_UPSAMPLE_FUNC(UpsampleBgrLinePair_SSE2, VP8YuvToBgr, 3) +SSE2_UPSAMPLE_FUNC(UpsampleArgbLinePair_SSE2, VP8YuvToArgb, 4) +SSE2_UPSAMPLE_FUNC(UpsampleRgba4444LinePair_SSE2, VP8YuvToRgba4444, 2) +SSE2_UPSAMPLE_FUNC(UpsampleRgb565LinePair_SSE2, VP8YuvToRgb565, 2) +#endif // WEBP_REDUCE_CSP + +#undef GET_M +#undef PACK_AND_STORE +#undef UPSAMPLE_32PIXELS +#undef UPSAMPLE_LAST_BLOCK +#undef CONVERT2RGB +#undef CONVERT2RGB_32 +#undef SSE2_UPSAMPLE_FUNC + +//------------------------------------------------------------------------------ +// Entry point + +extern WebPUpsampleLinePairFunc WebPUpsamplers[/* MODE_LAST */]; + +extern void WebPInitUpsamplersSSE2(void); + +WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersSSE2(void) { + WebPUpsamplers[MODE_RGBA] = UpsampleRgbaLinePair_SSE2; + WebPUpsamplers[MODE_BGRA] = UpsampleBgraLinePair_SSE2; + WebPUpsamplers[MODE_rgbA] = UpsampleRgbaLinePair_SSE2; + WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePair_SSE2; +#if !defined(WEBP_REDUCE_CSP) + WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair_SSE2; + WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePair_SSE2; + WebPUpsamplers[MODE_ARGB] = UpsampleArgbLinePair_SSE2; + WebPUpsamplers[MODE_Argb] = UpsampleArgbLinePair_SSE2; + WebPUpsamplers[MODE_RGB_565] = UpsampleRgb565LinePair_SSE2; + WebPUpsamplers[MODE_RGBA_4444] = UpsampleRgba4444LinePair_SSE2; + WebPUpsamplers[MODE_rgbA_4444] = UpsampleRgba4444LinePair_SSE2; +#endif // WEBP_REDUCE_CSP +} + +#endif // FANCY_UPSAMPLING + +//------------------------------------------------------------------------------ + +extern WebPYUV444Converter WebPYUV444Converters[/* MODE_LAST */]; +extern void WebPInitYUV444ConvertersSSE2(void); + +#define YUV444_FUNC(FUNC_NAME, CALL, CALL_C, XSTEP) \ +extern void CALL_C(const uint8_t* y, const uint8_t* u, const uint8_t* v, \ + uint8_t* dst, int len); \ +static void FUNC_NAME(const uint8_t* y, const uint8_t* u, const uint8_t* v, \ + uint8_t* dst, int len) { \ + int i; \ + const int max_len = len & ~31; \ + for (i = 0; i < max_len; i += 32) { \ + CALL(y + i, u + i, v + i, dst + i * (XSTEP)); \ + } \ + if (i < len) { /* C-fallback */ \ + CALL_C(y + i, u + i, v + i, dst + i * (XSTEP), len - i); \ + } \ +} + +YUV444_FUNC(Yuv444ToRgba_SSE2, VP8YuvToRgba32_SSE2, WebPYuv444ToRgba_C, 4); +YUV444_FUNC(Yuv444ToBgra_SSE2, VP8YuvToBgra32_SSE2, WebPYuv444ToBgra_C, 4); +#if !defined(WEBP_REDUCE_CSP) +YUV444_FUNC(Yuv444ToRgb_SSE2, VP8YuvToRgb32_SSE2, WebPYuv444ToRgb_C, 3); +YUV444_FUNC(Yuv444ToBgr_SSE2, VP8YuvToBgr32_SSE2, WebPYuv444ToBgr_C, 3); +YUV444_FUNC(Yuv444ToArgb_SSE2, VP8YuvToArgb32_SSE2, WebPYuv444ToArgb_C, 4) +YUV444_FUNC(Yuv444ToRgba4444_SSE2, VP8YuvToRgba444432_SSE2, \ + WebPYuv444ToRgba4444_C, 2) +YUV444_FUNC(Yuv444ToRgb565_SSE2, VP8YuvToRgb56532_SSE2, WebPYuv444ToRgb565_C, 2) +#endif // WEBP_REDUCE_CSP + +WEBP_TSAN_IGNORE_FUNCTION void WebPInitYUV444ConvertersSSE2(void) { + WebPYUV444Converters[MODE_RGBA] = Yuv444ToRgba_SSE2; + WebPYUV444Converters[MODE_BGRA] = Yuv444ToBgra_SSE2; + WebPYUV444Converters[MODE_rgbA] = Yuv444ToRgba_SSE2; + WebPYUV444Converters[MODE_bgrA] = Yuv444ToBgra_SSE2; +#if !defined(WEBP_REDUCE_CSP) + WebPYUV444Converters[MODE_RGB] = Yuv444ToRgb_SSE2; + WebPYUV444Converters[MODE_BGR] = Yuv444ToBgr_SSE2; + WebPYUV444Converters[MODE_ARGB] = Yuv444ToArgb_SSE2; + WebPYUV444Converters[MODE_RGBA_4444] = Yuv444ToRgba4444_SSE2; + WebPYUV444Converters[MODE_RGB_565] = Yuv444ToRgb565_SSE2; + WebPYUV444Converters[MODE_Argb] = Yuv444ToArgb_SSE2; + WebPYUV444Converters[MODE_rgbA_4444] = Yuv444ToRgba4444_SSE2; +#endif // WEBP_REDUCE_CSP +} + +#else + +WEBP_DSP_INIT_STUB(WebPInitYUV444ConvertersSSE2) + +#endif // WEBP_USE_SSE2 + +#if !(defined(FANCY_UPSAMPLING) && defined(WEBP_USE_SSE2)) +WEBP_DSP_INIT_STUB(WebPInitUpsamplersSSE2) +#endif diff --git a/external/libwebp-0.6.0/src/dsp/upsampling_sse2.c b/external/libwebp-1.0.0/src/dsp/upsampling_sse41.c similarity index 70% rename from external/libwebp-0.6.0/src/dsp/upsampling_sse2.c rename to external/libwebp-1.0.0/src/dsp/upsampling_sse41.c index b5b66890..648d4560 100644 --- a/external/libwebp-0.6.0/src/dsp/upsampling_sse2.c +++ b/external/libwebp-1.0.0/src/dsp/upsampling_sse41.c @@ -7,21 +7,23 @@ // be found in the AUTHORS file in the root of the source tree. // ----------------------------------------------------------------------------- // -// SSE2 version of YUV to RGB upsampling functions. +// SSE41 version of YUV to RGB upsampling functions. // // Author: somnath@google.com (Somnath Banerjee) -#include "./dsp.h" +#include "src/dsp/dsp.h" -#if defined(WEBP_USE_SSE2) +#if defined(WEBP_USE_SSE41) #include -#include +#include #include -#include "./yuv.h" +#include "src/dsp/yuv.h" #ifdef FANCY_UPSAMPLING +#if !defined(WEBP_REDUCE_CSP) + // We compute (9*a + 3*b + 3*c + d + 8) / 16 as follows // u = (9*a + 3*b + 3*c + d + 8) / 16 // = (a + (a + 3*b + 3*c + d) / 8 + 1) / 2 @@ -83,13 +85,13 @@ GET_M(ad, s, diag2); /* diag2 = (3a + b + c + 3d) / 8 */ \ \ /* pack the alternate pixels */ \ - PACK_AND_STORE(a, b, diag1, diag2, out + 0); /* store top */ \ - PACK_AND_STORE(c, d, diag2, diag1, out + 2 * 32); /* store bottom */ \ + PACK_AND_STORE(a, b, diag1, diag2, (out) + 0); /* store top */ \ + PACK_AND_STORE(c, d, diag2, diag1, (out) + 2 * 32); /* store bottom */ \ } // Turn the macro into a function for reducing code-size when non-critical -static void Upsample32Pixels(const uint8_t r1[], const uint8_t r2[], - uint8_t* const out) { +static void Upsample32Pixels_SSE41(const uint8_t r1[], const uint8_t r2[], + uint8_t* const out) { UPSAMPLE_32PIXELS(r1, r2, out); } @@ -101,41 +103,26 @@ static void Upsample32Pixels(const uint8_t r1[], const uint8_t r2[], memset(r1 + (num_pixels), r1[(num_pixels) - 1], 17 - (num_pixels)); \ memset(r2 + (num_pixels), r2[(num_pixels) - 1], 17 - (num_pixels)); \ /* using the shared function instead of the macro saves ~3k code size */ \ - Upsample32Pixels(r1, r2, out); \ -} - -#define CONVERT2RGB(FUNC, XSTEP, top_y, bottom_y, \ - top_dst, bottom_dst, cur_x, num_pixels) { \ - int n; \ - for (n = 0; n < (num_pixels); ++n) { \ - FUNC(top_y[(cur_x) + n], r_u[n], r_v[n], \ - top_dst + ((cur_x) + n) * XSTEP); \ - } \ - if (bottom_y != NULL) { \ - for (n = 0; n < (num_pixels); ++n) { \ - FUNC(bottom_y[(cur_x) + n], r_u[64 + n], r_v[64 + n], \ - bottom_dst + ((cur_x) + n) * XSTEP); \ - } \ - } \ + Upsample32Pixels_SSE41(r1, r2, out); \ } #define CONVERT2RGB_32(FUNC, XSTEP, top_y, bottom_y, \ top_dst, bottom_dst, cur_x) do { \ - FUNC##32(top_y + (cur_x), r_u, r_v, top_dst + (cur_x) * XSTEP); \ - if (bottom_y != NULL) { \ - FUNC##32(bottom_y + (cur_x), r_u + 64, r_v + 64, \ - bottom_dst + (cur_x) * XSTEP); \ + FUNC##32_SSE41((top_y) + (cur_x), r_u, r_v, (top_dst) + (cur_x) * (XSTEP)); \ + if ((bottom_y) != NULL) { \ + FUNC##32_SSE41((bottom_y) + (cur_x), r_u + 64, r_v + 64, \ + (bottom_dst) + (cur_x) * (XSTEP)); \ } \ } while (0) -#define SSE2_UPSAMPLE_FUNC(FUNC_NAME, FUNC, XSTEP) \ +#define SSE4_UPSAMPLE_FUNC(FUNC_NAME, FUNC, XSTEP) \ static void FUNC_NAME(const uint8_t* top_y, const uint8_t* bottom_y, \ const uint8_t* top_u, const uint8_t* top_v, \ const uint8_t* cur_u, const uint8_t* cur_v, \ uint8_t* top_dst, uint8_t* bottom_dst, int len) { \ int uv_pos, pos; \ /* 16byte-aligned array to cache reconstructed u and v */ \ - uint8_t uv_buf[4 * 32 + 15]; \ + uint8_t uv_buf[14 * 32 + 15] = { 0 }; \ uint8_t* const r_u = (uint8_t*)((uintptr_t)(uv_buf + 15) & ~15); \ uint8_t* const r_v = r_u + 32; \ \ @@ -160,22 +147,28 @@ static void FUNC_NAME(const uint8_t* top_y, const uint8_t* bottom_y, \ } \ if (len > 1) { \ const int left_over = ((len + 1) >> 1) - (pos >> 1); \ + uint8_t* const tmp_top_dst = r_u + 4 * 32; \ + uint8_t* const tmp_bottom_dst = tmp_top_dst + 4 * 32; \ + uint8_t* const tmp_top = tmp_bottom_dst + 4 * 32; \ + uint8_t* const tmp_bottom = (bottom_y == NULL) ? NULL : tmp_top + 32; \ assert(left_over > 0); \ UPSAMPLE_LAST_BLOCK(top_u + uv_pos, cur_u + uv_pos, left_over, r_u); \ UPSAMPLE_LAST_BLOCK(top_v + uv_pos, cur_v + uv_pos, left_over, r_v); \ - CONVERT2RGB(FUNC, XSTEP, top_y, bottom_y, top_dst, bottom_dst, \ - pos, len - pos); \ + memcpy(tmp_top, top_y + pos, len - pos); \ + if (bottom_y != NULL) memcpy(tmp_bottom, bottom_y + pos, len - pos); \ + CONVERT2RGB_32(FUNC, XSTEP, tmp_top, tmp_bottom, tmp_top_dst, \ + tmp_bottom_dst, 0); \ + memcpy(top_dst + pos * (XSTEP), tmp_top_dst, (len - pos) * (XSTEP)); \ + if (bottom_y != NULL) { \ + memcpy(bottom_dst + pos * (XSTEP), tmp_bottom_dst, \ + (len - pos) * (XSTEP)); \ + } \ } \ } -// SSE2 variants of the fancy upsampler. -SSE2_UPSAMPLE_FUNC(UpsampleRgbLinePair, VP8YuvToRgb, 3) -SSE2_UPSAMPLE_FUNC(UpsampleBgrLinePair, VP8YuvToBgr, 3) -SSE2_UPSAMPLE_FUNC(UpsampleRgbaLinePair, VP8YuvToRgba, 4) -SSE2_UPSAMPLE_FUNC(UpsampleBgraLinePair, VP8YuvToBgra, 4) -SSE2_UPSAMPLE_FUNC(UpsampleArgbLinePair, VP8YuvToArgb, 4) -SSE2_UPSAMPLE_FUNC(UpsampleRgba4444LinePair, VP8YuvToRgba4444, 2) -SSE2_UPSAMPLE_FUNC(UpsampleRgb565LinePair, VP8YuvToRgb565, 2) +// SSE4 variants of the fancy upsampler. +SSE4_UPSAMPLE_FUNC(UpsampleRgbLinePair_SSE41, VP8YuvToRgb, 3) +SSE4_UPSAMPLE_FUNC(UpsampleBgrLinePair_SSE41, VP8YuvToBgr, 3) #undef GET_M #undef PACK_AND_STORE @@ -183,27 +176,22 @@ SSE2_UPSAMPLE_FUNC(UpsampleRgb565LinePair, VP8YuvToRgb565, 2) #undef UPSAMPLE_LAST_BLOCK #undef CONVERT2RGB #undef CONVERT2RGB_32 -#undef SSE2_UPSAMPLE_FUNC +#undef SSE4_UPSAMPLE_FUNC + +#endif // WEBP_REDUCE_CSP //------------------------------------------------------------------------------ // Entry point extern WebPUpsampleLinePairFunc WebPUpsamplers[/* MODE_LAST */]; -extern void WebPInitUpsamplersSSE2(void); - -WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersSSE2(void) { - WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair; - WebPUpsamplers[MODE_RGBA] = UpsampleRgbaLinePair; - WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePair; - WebPUpsamplers[MODE_BGRA] = UpsampleBgraLinePair; - WebPUpsamplers[MODE_ARGB] = UpsampleArgbLinePair; - WebPUpsamplers[MODE_rgbA] = UpsampleRgbaLinePair; - WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePair; - WebPUpsamplers[MODE_Argb] = UpsampleArgbLinePair; - WebPUpsamplers[MODE_RGB_565] = UpsampleRgb565LinePair; - WebPUpsamplers[MODE_RGBA_4444] = UpsampleRgba4444LinePair; - WebPUpsamplers[MODE_rgbA_4444] = UpsampleRgba4444LinePair; +extern void WebPInitUpsamplersSSE41(void); + +WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersSSE41(void) { +#if !defined(WEBP_REDUCE_CSP) + WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePair_SSE41; + WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePair_SSE41; +#endif // WEBP_REDUCE_CSP } #endif // FANCY_UPSAMPLING @@ -211,39 +199,41 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPInitUpsamplersSSE2(void) { //------------------------------------------------------------------------------ extern WebPYUV444Converter WebPYUV444Converters[/* MODE_LAST */]; -extern void WebPInitYUV444ConvertersSSE2(void); +extern void WebPInitYUV444ConvertersSSE41(void); -#define YUV444_FUNC(FUNC_NAME, CALL, XSTEP) \ -extern void WebP##FUNC_NAME##C(const uint8_t* y, const uint8_t* u, \ - const uint8_t* v, uint8_t* dst, int len); \ +#define YUV444_FUNC(FUNC_NAME, CALL, CALL_C, XSTEP) \ +extern void CALL_C(const uint8_t* y, const uint8_t* u, const uint8_t* v, \ + uint8_t* dst, int len); \ static void FUNC_NAME(const uint8_t* y, const uint8_t* u, const uint8_t* v, \ uint8_t* dst, int len) { \ int i; \ const int max_len = len & ~31; \ - for (i = 0; i < max_len; i += 32) CALL(y + i, u + i, v + i, dst + i * XSTEP);\ + for (i = 0; i < max_len; i += 32) { \ + CALL(y + i, u + i, v + i, dst + i * (XSTEP)); \ + } \ if (i < len) { /* C-fallback */ \ - WebP##FUNC_NAME##C(y + i, u + i, v + i, dst + i * XSTEP, len - i); \ + CALL_C(y + i, u + i, v + i, dst + i * (XSTEP), len - i); \ } \ } -YUV444_FUNC(Yuv444ToRgba, VP8YuvToRgba32, 4); -YUV444_FUNC(Yuv444ToBgra, VP8YuvToBgra32, 4); -YUV444_FUNC(Yuv444ToRgb, VP8YuvToRgb32, 3); -YUV444_FUNC(Yuv444ToBgr, VP8YuvToBgr32, 3); +#if !defined(WEBP_REDUCE_CSP) +YUV444_FUNC(Yuv444ToRgb_SSE41, VP8YuvToRgb32_SSE41, WebPYuv444ToRgb_C, 3); +YUV444_FUNC(Yuv444ToBgr_SSE41, VP8YuvToBgr32_SSE41, WebPYuv444ToBgr_C, 3); +#endif // WEBP_REDUCE_CSP -WEBP_TSAN_IGNORE_FUNCTION void WebPInitYUV444ConvertersSSE2(void) { - WebPYUV444Converters[MODE_RGBA] = Yuv444ToRgba; - WebPYUV444Converters[MODE_BGRA] = Yuv444ToBgra; - WebPYUV444Converters[MODE_RGB] = Yuv444ToRgb; - WebPYUV444Converters[MODE_BGR] = Yuv444ToBgr; +WEBP_TSAN_IGNORE_FUNCTION void WebPInitYUV444ConvertersSSE41(void) { +#if !defined(WEBP_REDUCE_CSP) + WebPYUV444Converters[MODE_RGB] = Yuv444ToRgb_SSE41; + WebPYUV444Converters[MODE_BGR] = Yuv444ToBgr_SSE41; +#endif // WEBP_REDUCE_CSP } #else -WEBP_DSP_INIT_STUB(WebPInitYUV444ConvertersSSE2) +WEBP_DSP_INIT_STUB(WebPInitYUV444ConvertersSSE41) -#endif // WEBP_USE_SSE2 +#endif // WEBP_USE_SSE41 -#if !(defined(FANCY_UPSAMPLING) && defined(WEBP_USE_SSE2)) -WEBP_DSP_INIT_STUB(WebPInitUpsamplersSSE2) +#if !(defined(FANCY_UPSAMPLING) && defined(WEBP_USE_SSE41)) +WEBP_DSP_INIT_STUB(WebPInitUpsamplersSSE41) #endif diff --git a/external/libwebp-0.6.0/src/dsp/yuv.c b/external/libwebp-1.0.0/src/dsp/yuv.c similarity index 78% rename from external/libwebp-0.6.0/src/dsp/yuv.c rename to external/libwebp-1.0.0/src/dsp/yuv.c index dd7d9ded..14e67fc2 100644 --- a/external/libwebp-0.6.0/src/dsp/yuv.c +++ b/external/libwebp-1.0.0/src/dsp/yuv.c @@ -11,63 +11,11 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./yuv.h" +#include "src/dsp/yuv.h" +#include #include -#if defined(WEBP_YUV_USE_TABLE) - -static int done = 0; - -static WEBP_INLINE uint8_t clip(int v, int max_value) { - return v < 0 ? 0 : v > max_value ? max_value : v; -} - -int16_t VP8kVToR[256], VP8kUToB[256]; -int32_t VP8kVToG[256], VP8kUToG[256]; -uint8_t VP8kClip[YUV_RANGE_MAX - YUV_RANGE_MIN]; -uint8_t VP8kClip4Bits[YUV_RANGE_MAX - YUV_RANGE_MIN]; - -WEBP_TSAN_IGNORE_FUNCTION void VP8YUVInit(void) { - int i; - if (done) { - return; - } -#ifndef USE_YUVj - for (i = 0; i < 256; ++i) { - VP8kVToR[i] = (89858 * (i - 128) + YUV_HALF) >> YUV_FIX; - VP8kUToG[i] = -22014 * (i - 128) + YUV_HALF; - VP8kVToG[i] = -45773 * (i - 128); - VP8kUToB[i] = (113618 * (i - 128) + YUV_HALF) >> YUV_FIX; - } - for (i = YUV_RANGE_MIN; i < YUV_RANGE_MAX; ++i) { - const int k = ((i - 16) * 76283 + YUV_HALF) >> YUV_FIX; - VP8kClip[i - YUV_RANGE_MIN] = clip(k, 255); - VP8kClip4Bits[i - YUV_RANGE_MIN] = clip((k + 8) >> 4, 15); - } -#else - for (i = 0; i < 256; ++i) { - VP8kVToR[i] = (91881 * (i - 128) + YUV_HALF) >> YUV_FIX; - VP8kUToG[i] = -22554 * (i - 128) + YUV_HALF; - VP8kVToG[i] = -46802 * (i - 128); - VP8kUToB[i] = (116130 * (i - 128) + YUV_HALF) >> YUV_FIX; - } - for (i = YUV_RANGE_MIN; i < YUV_RANGE_MAX; ++i) { - const int k = i; - VP8kClip[i - YUV_RANGE_MIN] = clip(k, 255); - VP8kClip4Bits[i - YUV_RANGE_MIN] = clip((k + 8) >> 4, 15); - } -#endif - - done = 1; -} - -#else - -WEBP_TSAN_IGNORE_FUNCTION void VP8YUVInit(void) {} - -#endif // WEBP_YUV_USE_TABLE - //----------------------------------------------------------------------------- // Plain-C version @@ -75,14 +23,14 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8YUVInit(void) {} static void FUNC_NAME(const uint8_t* y, \ const uint8_t* u, const uint8_t* v, \ uint8_t* dst, int len) { \ - const uint8_t* const end = dst + (len & ~1) * XSTEP; \ + const uint8_t* const end = dst + (len & ~1) * (XSTEP); \ while (dst != end) { \ FUNC(y[0], u[0], v[0], dst); \ - FUNC(y[1], u[0], v[0], dst + XSTEP); \ + FUNC(y[1], u[0], v[0], dst + (XSTEP)); \ y += 2; \ ++u; \ ++v; \ - dst += 2 * XSTEP; \ + dst += 2 * (XSTEP); \ } \ if (len & 1) { \ FUNC(y[0], u[0], v[0], dst); \ @@ -123,15 +71,11 @@ void WebPSamplerProcessPlane(const uint8_t* y, int y_stride, WebPSamplerRowFunc WebPSamplers[MODE_LAST]; extern void WebPInitSamplersSSE2(void); +extern void WebPInitSamplersSSE41(void); extern void WebPInitSamplersMIPS32(void); extern void WebPInitSamplersMIPSdspR2(void); -static volatile VP8CPUInfo yuv_last_cpuinfo_used = - (VP8CPUInfo)&yuv_last_cpuinfo_used; - -WEBP_TSAN_IGNORE_FUNCTION void WebPInitSamplers(void) { - if (yuv_last_cpuinfo_used == VP8GetCPUInfo) return; - +WEBP_DSP_INIT_FUNC(WebPInitSamplers) { WebPSamplers[MODE_RGB] = YuvToRgbRow; WebPSamplers[MODE_RGBA] = YuvToRgbaRow; WebPSamplers[MODE_BGR] = YuvToBgrRow; @@ -151,6 +95,11 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPInitSamplers(void) { WebPInitSamplersSSE2(); } #endif // WEBP_USE_SSE2 +#if defined(WEBP_USE_SSE41) + if (VP8GetCPUInfo(kSSE4_1)) { + WebPInitSamplersSSE41(); + } +#endif // WEBP_USE_SSE41 #if defined(WEBP_USE_MIPS32) if (VP8GetCPUInfo(kMIPS32)) { WebPInitSamplersMIPS32(); @@ -162,13 +111,12 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPInitSamplers(void) { } #endif // WEBP_USE_MIPS_DSP_R2 } - yuv_last_cpuinfo_used = VP8GetCPUInfo; } //----------------------------------------------------------------------------- // ARGB -> YUV converters -static void ConvertARGBToY(const uint32_t* argb, uint8_t* y, int width) { +static void ConvertARGBToY_C(const uint32_t* argb, uint8_t* y, int width) { int i; for (i = 0; i < width; ++i) { const uint32_t p = argb[i]; @@ -220,14 +168,14 @@ void WebPConvertARGBToUV_C(const uint32_t* argb, uint8_t* u, uint8_t* v, //----------------------------------------------------------------------------- -static void ConvertRGB24ToY(const uint8_t* rgb, uint8_t* y, int width) { +static void ConvertRGB24ToY_C(const uint8_t* rgb, uint8_t* y, int width) { int i; for (i = 0; i < width; ++i, rgb += 3) { y[i] = VP8RGBToY(rgb[0], rgb[1], rgb[2], YUV_HALF); } } -static void ConvertBGR24ToY(const uint8_t* bgr, uint8_t* y, int width) { +static void ConvertBGR24ToY_C(const uint8_t* bgr, uint8_t* y, int width) { int i; for (i = 0; i < width; ++i, bgr += 3) { y[i] = VP8RGBToY(bgr[2], bgr[1], bgr[0], YUV_HALF); @@ -246,6 +194,7 @@ void WebPConvertRGBA32ToUV_C(const uint16_t* rgb, //----------------------------------------------------------------------------- +#if !WEBP_NEON_OMIT_C_CODE #define MAX_Y ((1 << 10) - 1) // 10b precision over 16b-arithmetic static uint16_t clip_y(int v) { return (v < 0) ? 0 : (v > MAX_Y) ? MAX_Y : (uint16_t)v; @@ -283,6 +232,7 @@ static void SharpYUVFilterRow_C(const int16_t* A, const int16_t* B, int len, out[2 * i + 1] = clip_y(best_y[2 * i + 1] + v1); } } +#endif // !WEBP_NEON_OMIT_C_CODE #undef MAX_Y @@ -304,26 +254,26 @@ void (*WebPSharpYUVUpdateRGB)(const int16_t* ref, const int16_t* src, void (*WebPSharpYUVFilterRow)(const int16_t* A, const int16_t* B, int len, const uint16_t* best_y, uint16_t* out); -static volatile VP8CPUInfo rgba_to_yuv_last_cpuinfo_used = - (VP8CPUInfo)&rgba_to_yuv_last_cpuinfo_used; - extern void WebPInitConvertARGBToYUVSSE2(void); +extern void WebPInitConvertARGBToYUVSSE41(void); +extern void WebPInitConvertARGBToYUVNEON(void); extern void WebPInitSharpYUVSSE2(void); +extern void WebPInitSharpYUVNEON(void); -WEBP_TSAN_IGNORE_FUNCTION void WebPInitConvertARGBToYUV(void) { - if (rgba_to_yuv_last_cpuinfo_used == VP8GetCPUInfo) return; - - WebPConvertARGBToY = ConvertARGBToY; +WEBP_DSP_INIT_FUNC(WebPInitConvertARGBToYUV) { + WebPConvertARGBToY = ConvertARGBToY_C; WebPConvertARGBToUV = WebPConvertARGBToUV_C; - WebPConvertRGB24ToY = ConvertRGB24ToY; - WebPConvertBGR24ToY = ConvertBGR24ToY; + WebPConvertRGB24ToY = ConvertRGB24ToY_C; + WebPConvertBGR24ToY = ConvertBGR24ToY_C; WebPConvertRGBA32ToUV = WebPConvertRGBA32ToUV_C; +#if !WEBP_NEON_OMIT_C_CODE WebPSharpYUVUpdateY = SharpYUVUpdateY_C; WebPSharpYUVUpdateRGB = SharpYUVUpdateRGB_C; WebPSharpYUVFilterRow = SharpYUVFilterRow_C; +#endif if (VP8GetCPUInfo != NULL) { #if defined(WEBP_USE_SSE2) @@ -332,6 +282,27 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPInitConvertARGBToYUV(void) { WebPInitSharpYUVSSE2(); } #endif // WEBP_USE_SSE2 +#if defined(WEBP_USE_SSE41) + if (VP8GetCPUInfo(kSSE4_1)) { + WebPInitConvertARGBToYUVSSE41(); + } +#endif // WEBP_USE_SSE41 + } + +#if defined(WEBP_USE_NEON) + if (WEBP_NEON_OMIT_C_CODE || + (VP8GetCPUInfo != NULL && VP8GetCPUInfo(kNEON))) { + WebPInitConvertARGBToYUVNEON(); + WebPInitSharpYUVNEON(); } - rgba_to_yuv_last_cpuinfo_used = VP8GetCPUInfo; +#endif // WEBP_USE_NEON + + assert(WebPConvertARGBToY != NULL); + assert(WebPConvertARGBToUV != NULL); + assert(WebPConvertRGB24ToY != NULL); + assert(WebPConvertBGR24ToY != NULL); + assert(WebPConvertRGBA32ToUV != NULL); + assert(WebPSharpYUVUpdateY != NULL); + assert(WebPSharpYUVUpdateRGB != NULL); + assert(WebPSharpYUVFilterRow != NULL); } diff --git a/external/libwebp-0.6.0/src/dsp/yuv.h b/external/libwebp-1.0.0/src/dsp/yuv.h similarity index 72% rename from external/libwebp-0.6.0/src/dsp/yuv.h rename to external/libwebp-1.0.0/src/dsp/yuv.h index 1d33b586..eb787270 100644 --- a/external/libwebp-0.6.0/src/dsp/yuv.h +++ b/external/libwebp-1.0.0/src/dsp/yuv.h @@ -35,18 +35,8 @@ #ifndef WEBP_DSP_YUV_H_ #define WEBP_DSP_YUV_H_ -#include "./dsp.h" -#include "../dec/vp8_dec.h" - -#if defined(WEBP_EXPERIMENTAL_FEATURES) -// Do NOT activate this feature for real compression. This is only experimental! -// This flag is for comparison purpose against JPEG's "YUVj" natural colorspace. -// This colorspace is close to Rec.601's Y'CbCr model with the notable -// difference of allowing larger range for luma/chroma. -// See http://en.wikipedia.org/wiki/YCbCr#JPEG_conversion paragraph, and its -// difference with http://en.wikipedia.org/wiki/YCbCr#ITU-R_BT.601_conversion -// #define USE_YUVj -#endif +#include "src/dsp/dsp.h" +#include "src/dec/vp8_dec.h" //------------------------------------------------------------------------------ // YUV -> RGB conversion @@ -58,12 +48,8 @@ extern "C" { enum { YUV_FIX = 16, // fixed-point precision for RGB->YUV YUV_HALF = 1 << (YUV_FIX - 1), - YUV_MASK = (256 << YUV_FIX) - 1, - YUV_RANGE_MIN = -227, // min value of r/g/b output - YUV_RANGE_MAX = 256 + 226, // max value of r/g/b output YUV_FIX2 = 6, // fixed-point precision for YUV->RGB - YUV_HALF2 = 1 << YUV_FIX2 >> 1, YUV_MASK2 = (256 << YUV_FIX2) - 1 }; @@ -111,7 +97,7 @@ static WEBP_INLINE void VP8YuvToRgb565(int y, int u, int v, const int b = VP8YUVToB(y, u); // 5 usable bits const int rg = (r & 0xf8) | (g >> 5); const int gb = ((g << 3) & 0xe0) | (b >> 3); -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) rgb[0] = gb; rgb[1] = rg; #else @@ -127,7 +113,7 @@ static WEBP_INLINE void VP8YuvToRgba4444(int y, int u, int v, const int b = VP8YUVToB(y, u); // 4 usable bits const int rg = (r & 0xf0) | (g >> 4); const int ba = (b & 0xf0) | 0x0f; // overwrite the lower 4 bits -#ifdef WEBP_SWAP_16BIT_CSP +#if (WEBP_SWAP_16BIT_CSP == 1) argb[0] = ba; argb[1] = rg; #else @@ -157,32 +143,42 @@ static WEBP_INLINE void VP8YuvToRgba(uint8_t y, uint8_t u, uint8_t v, rgba[3] = 0xff; } -// Must be called before everything, to initialize the tables. -void VP8YUVInit(void); - //----------------------------------------------------------------------------- // SSE2 extra functions (mostly for upsampling_sse2.c) #if defined(WEBP_USE_SSE2) // Process 32 pixels and store the result (16b, 24b or 32b per pixel) in *dst. -void VP8YuvToRgba32(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst); -void VP8YuvToRgb32(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst); -void VP8YuvToBgra32(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst); -void VP8YuvToBgr32(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst); -void VP8YuvToArgb32(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst); -void VP8YuvToRgba444432(const uint8_t* y, const uint8_t* u, const uint8_t* v, +void VP8YuvToRgba32_SSE2(const uint8_t* y, const uint8_t* u, const uint8_t* v, + uint8_t* dst); +void VP8YuvToRgb32_SSE2(const uint8_t* y, const uint8_t* u, const uint8_t* v, + uint8_t* dst); +void VP8YuvToBgra32_SSE2(const uint8_t* y, const uint8_t* u, const uint8_t* v, + uint8_t* dst); +void VP8YuvToBgr32_SSE2(const uint8_t* y, const uint8_t* u, const uint8_t* v, uint8_t* dst); -void VP8YuvToRgb56532(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst); +void VP8YuvToArgb32_SSE2(const uint8_t* y, const uint8_t* u, const uint8_t* v, + uint8_t* dst); +void VP8YuvToRgba444432_SSE2(const uint8_t* y, const uint8_t* u, + const uint8_t* v, uint8_t* dst); +void VP8YuvToRgb56532_SSE2(const uint8_t* y, const uint8_t* u, const uint8_t* v, + uint8_t* dst); #endif // WEBP_USE_SSE2 +//----------------------------------------------------------------------------- +// SSE41 extra functions (mostly for upsampling_sse41.c) + +#if defined(WEBP_USE_SSE41) + +// Process 32 pixels and store the result (16b, 24b or 32b per pixel) in *dst. +void VP8YuvToRgb32_SSE41(const uint8_t* y, const uint8_t* u, const uint8_t* v, + uint8_t* dst); +void VP8YuvToBgr32_SSE41(const uint8_t* y, const uint8_t* u, const uint8_t* v, + uint8_t* dst); + +#endif // WEBP_USE_SSE41 + //------------------------------------------------------------------------------ // RGB -> YUV conversion @@ -192,8 +188,6 @@ static WEBP_INLINE int VP8ClipUV(int uv, int rounding) { return ((uv & ~0xff) == 0) ? uv : (uv < 0) ? 0 : 255; } -#ifndef USE_YUVj - static WEBP_INLINE int VP8RGBToY(int r, int g, int b, int rounding) { const int luma = 16839 * r + 33059 * g + 6420 * b; return (luma + rounding + (16 << YUV_FIX)) >> YUV_FIX; // no need to clip @@ -209,28 +203,6 @@ static WEBP_INLINE int VP8RGBToV(int r, int g, int b, int rounding) { return VP8ClipUV(v, rounding); } -#else - -// This JPEG-YUV colorspace, only for comparison! -// These are also 16bit precision coefficients from Rec.601, but with full -// [0..255] output range. -static WEBP_INLINE int VP8RGBToY(int r, int g, int b, int rounding) { - const int luma = 19595 * r + 38470 * g + 7471 * b; - return (luma + rounding) >> YUV_FIX; // no need to clip -} - -static WEBP_INLINE int VP8RGBToU(int r, int g, int b, int rounding) { - const int u = -11058 * r - 21710 * g + 32768 * b; - return VP8ClipUV(u, rounding); -} - -static WEBP_INLINE int VP8RGBToV(int r, int g, int b, int rounding) { - const int v = 32768 * r - 27439 * g - 5329 * b; - return VP8ClipUV(v, rounding); -} - -#endif // USE_YUVj - #ifdef __cplusplus } // extern "C" #endif diff --git a/external/libwebp-0.6.0/src/dsp/yuv_mips32.c b/external/libwebp-1.0.0/src/dsp/yuv_mips32.c similarity index 92% rename from external/libwebp-0.6.0/src/dsp/yuv_mips32.c rename to external/libwebp-1.0.0/src/dsp/yuv_mips32.c index e61aac57..9d0a8878 100644 --- a/external/libwebp-0.6.0/src/dsp/yuv_mips32.c +++ b/external/libwebp-1.0.0/src/dsp/yuv_mips32.c @@ -12,11 +12,11 @@ // Author(s): Djordje Pesut (djordje.pesut@imgtec.com) // Jovan Zelincevic (jovan.zelincevic@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MIPS32) -#include "./yuv.h" +#include "src/dsp/yuv.h" //------------------------------------------------------------------------------ // simple point-sampling @@ -77,10 +77,10 @@ static void FUNC_NAME(const uint8_t* y, \ } \ } -ROW_FUNC(YuvToRgbRow, 3, 0, 1, 2, 0) -ROW_FUNC(YuvToRgbaRow, 4, 0, 1, 2, 3) -ROW_FUNC(YuvToBgrRow, 3, 2, 1, 0, 0) -ROW_FUNC(YuvToBgraRow, 4, 2, 1, 0, 3) +ROW_FUNC(YuvToRgbRow_MIPS32, 3, 0, 1, 2, 0) +ROW_FUNC(YuvToRgbaRow_MIPS32, 4, 0, 1, 2, 3) +ROW_FUNC(YuvToBgrRow_MIPS32, 3, 2, 1, 0, 0) +ROW_FUNC(YuvToBgraRow_MIPS32, 4, 2, 1, 0, 3) #undef ROW_FUNC @@ -90,10 +90,10 @@ ROW_FUNC(YuvToBgraRow, 4, 2, 1, 0, 3) extern void WebPInitSamplersMIPS32(void); WEBP_TSAN_IGNORE_FUNCTION void WebPInitSamplersMIPS32(void) { - WebPSamplers[MODE_RGB] = YuvToRgbRow; - WebPSamplers[MODE_RGBA] = YuvToRgbaRow; - WebPSamplers[MODE_BGR] = YuvToBgrRow; - WebPSamplers[MODE_BGRA] = YuvToBgraRow; + WebPSamplers[MODE_RGB] = YuvToRgbRow_MIPS32; + WebPSamplers[MODE_RGBA] = YuvToRgbaRow_MIPS32; + WebPSamplers[MODE_BGR] = YuvToBgrRow_MIPS32; + WebPSamplers[MODE_BGRA] = YuvToBgraRow_MIPS32; } #else // !WEBP_USE_MIPS32 diff --git a/external/libwebp-0.6.0/src/dsp/yuv_mips_dsp_r2.c b/external/libwebp-1.0.0/src/dsp/yuv_mips_dsp_r2.c similarity index 94% rename from external/libwebp-0.6.0/src/dsp/yuv_mips_dsp_r2.c rename to external/libwebp-1.0.0/src/dsp/yuv_mips_dsp_r2.c index 1720d419..cc8afcc7 100644 --- a/external/libwebp-0.6.0/src/dsp/yuv_mips_dsp_r2.c +++ b/external/libwebp-1.0.0/src/dsp/yuv_mips_dsp_r2.c @@ -12,11 +12,11 @@ // Author(s): Branimir Vasic (branimir.vasic@imgtec.com) // Djordje Pesut (djordje.pesut@imgtec.com) -#include "./dsp.h" +#include "src/dsp/dsp.h" #if defined(WEBP_USE_MIPS_DSP_R2) -#include "./yuv.h" +#include "src/dsp/yuv.h" //------------------------------------------------------------------------------ // simple point-sampling @@ -105,10 +105,10 @@ static void FUNC_NAME(const uint8_t* y, \ } \ } -ROW_FUNC(YuvToRgbRow, 3, 0, 1, 2, 0) -ROW_FUNC(YuvToRgbaRow, 4, 0, 1, 2, 3) -ROW_FUNC(YuvToBgrRow, 3, 2, 1, 0, 0) -ROW_FUNC(YuvToBgraRow, 4, 2, 1, 0, 3) +ROW_FUNC(YuvToRgbRow_MIPSdspR2, 3, 0, 1, 2, 0) +ROW_FUNC(YuvToRgbaRow_MIPSdspR2, 4, 0, 1, 2, 3) +ROW_FUNC(YuvToBgrRow_MIPSdspR2, 3, 2, 1, 0, 0) +ROW_FUNC(YuvToBgraRow_MIPSdspR2, 4, 2, 1, 0, 3) #undef ROW_FUNC #undef ASM_CLOBBER_LIST @@ -121,10 +121,10 @@ ROW_FUNC(YuvToBgraRow, 4, 2, 1, 0, 3) extern void WebPInitSamplersMIPSdspR2(void); WEBP_TSAN_IGNORE_FUNCTION void WebPInitSamplersMIPSdspR2(void) { - WebPSamplers[MODE_RGB] = YuvToRgbRow; - WebPSamplers[MODE_RGBA] = YuvToRgbaRow; - WebPSamplers[MODE_BGR] = YuvToBgrRow; - WebPSamplers[MODE_BGRA] = YuvToBgraRow; + WebPSamplers[MODE_RGB] = YuvToRgbRow_MIPSdspR2; + WebPSamplers[MODE_RGBA] = YuvToRgbaRow_MIPSdspR2; + WebPSamplers[MODE_BGR] = YuvToBgrRow_MIPSdspR2; + WebPSamplers[MODE_BGRA] = YuvToBgraRow_MIPSdspR2; } #else // !WEBP_USE_MIPS_DSP_R2 diff --git a/external/libwebp-1.0.0/src/dsp/yuv_neon.c b/external/libwebp-1.0.0/src/dsp/yuv_neon.c new file mode 100644 index 00000000..a34d6024 --- /dev/null +++ b/external/libwebp-1.0.0/src/dsp/yuv_neon.c @@ -0,0 +1,288 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// YUV->RGB conversion functions +// +// Author: Skal (pascal.massimino@gmail.com) + +#include "src/dsp/yuv.h" + +#if defined(WEBP_USE_NEON) + +#include +#include + +#include "src/dsp/neon.h" + +//----------------------------------------------------------------------------- + +static uint8x8_t ConvertRGBToY_NEON(const uint8x8_t R, + const uint8x8_t G, + const uint8x8_t B) { + const uint16x8_t r = vmovl_u8(R); + const uint16x8_t g = vmovl_u8(G); + const uint16x8_t b = vmovl_u8(B); + const uint16x4_t r_lo = vget_low_u16(r); + const uint16x4_t r_hi = vget_high_u16(r); + const uint16x4_t g_lo = vget_low_u16(g); + const uint16x4_t g_hi = vget_high_u16(g); + const uint16x4_t b_lo = vget_low_u16(b); + const uint16x4_t b_hi = vget_high_u16(b); + const uint32x4_t tmp0_lo = vmull_n_u16( r_lo, 16839u); + const uint32x4_t tmp0_hi = vmull_n_u16( r_hi, 16839u); + const uint32x4_t tmp1_lo = vmlal_n_u16(tmp0_lo, g_lo, 33059u); + const uint32x4_t tmp1_hi = vmlal_n_u16(tmp0_hi, g_hi, 33059u); + const uint32x4_t tmp2_lo = vmlal_n_u16(tmp1_lo, b_lo, 6420u); + const uint32x4_t tmp2_hi = vmlal_n_u16(tmp1_hi, b_hi, 6420u); + const uint16x8_t Y1 = vcombine_u16(vrshrn_n_u32(tmp2_lo, 16), + vrshrn_n_u32(tmp2_hi, 16)); + const uint16x8_t Y2 = vaddq_u16(Y1, vdupq_n_u16(16)); + return vqmovn_u16(Y2); +} + +static void ConvertRGB24ToY_NEON(const uint8_t* rgb, uint8_t* y, int width) { + int i; + for (i = 0; i + 8 <= width; i += 8, rgb += 3 * 8) { + const uint8x8x3_t RGB = vld3_u8(rgb); + const uint8x8_t Y = ConvertRGBToY_NEON(RGB.val[0], RGB.val[1], RGB.val[2]); + vst1_u8(y + i, Y); + } + for (; i < width; ++i, rgb += 3) { // left-over + y[i] = VP8RGBToY(rgb[0], rgb[1], rgb[2], YUV_HALF); + } +} + +static void ConvertBGR24ToY_NEON(const uint8_t* bgr, uint8_t* y, int width) { + int i; + for (i = 0; i + 8 <= width; i += 8, bgr += 3 * 8) { + const uint8x8x3_t BGR = vld3_u8(bgr); + const uint8x8_t Y = ConvertRGBToY_NEON(BGR.val[2], BGR.val[1], BGR.val[0]); + vst1_u8(y + i, Y); + } + for (; i < width; ++i, bgr += 3) { // left-over + y[i] = VP8RGBToY(bgr[2], bgr[1], bgr[0], YUV_HALF); + } +} + +static void ConvertARGBToY_NEON(const uint32_t* argb, uint8_t* y, int width) { + int i; + for (i = 0; i + 8 <= width; i += 8) { + const uint8x8x4_t RGB = vld4_u8((const uint8_t*)&argb[i]); + const uint8x8_t Y = ConvertRGBToY_NEON(RGB.val[2], RGB.val[1], RGB.val[0]); + vst1_u8(y + i, Y); + } + for (; i < width; ++i) { // left-over + const uint32_t p = argb[i]; + y[i] = VP8RGBToY((p >> 16) & 0xff, (p >> 8) & 0xff, (p >> 0) & 0xff, + YUV_HALF); + } +} + +//----------------------------------------------------------------------------- + +// computes: DST_s16 = [(C0 * r + C1 * g + C2 * b) >> 16] + CST +#define MULTIPLY_16b_PREAMBLE(r, g, b) \ + const int16x4_t r_lo = vreinterpret_s16_u16(vget_low_u16(r)); \ + const int16x4_t r_hi = vreinterpret_s16_u16(vget_high_u16(r)); \ + const int16x4_t g_lo = vreinterpret_s16_u16(vget_low_u16(g)); \ + const int16x4_t g_hi = vreinterpret_s16_u16(vget_high_u16(g)); \ + const int16x4_t b_lo = vreinterpret_s16_u16(vget_low_u16(b)); \ + const int16x4_t b_hi = vreinterpret_s16_u16(vget_high_u16(b)) + +#define MULTIPLY_16b(C0, C1, C2, CST, DST_s16) do { \ + const int32x4_t tmp0_lo = vmull_n_s16( r_lo, C0); \ + const int32x4_t tmp0_hi = vmull_n_s16( r_hi, C0); \ + const int32x4_t tmp1_lo = vmlal_n_s16(tmp0_lo, g_lo, C1); \ + const int32x4_t tmp1_hi = vmlal_n_s16(tmp0_hi, g_hi, C1); \ + const int32x4_t tmp2_lo = vmlal_n_s16(tmp1_lo, b_lo, C2); \ + const int32x4_t tmp2_hi = vmlal_n_s16(tmp1_hi, b_hi, C2); \ + const int16x8_t tmp3 = vcombine_s16(vshrn_n_s32(tmp2_lo, 16), \ + vshrn_n_s32(tmp2_hi, 16)); \ + DST_s16 = vaddq_s16(tmp3, vdupq_n_s16(CST)); \ +} while (0) + +// This needs to be a macro, since (128 << SHIFT) needs to be an immediate. +#define CONVERT_RGB_TO_UV(r, g, b, SHIFT, U_DST, V_DST) do { \ + MULTIPLY_16b_PREAMBLE(r, g, b); \ + MULTIPLY_16b(-9719, -19081, 28800, 128 << SHIFT, U_DST); \ + MULTIPLY_16b(28800, -24116, -4684, 128 << SHIFT, V_DST); \ +} while (0) + +static void ConvertRGBA32ToUV_NEON(const uint16_t* rgb, + uint8_t* u, uint8_t* v, int width) { + int i; + for (i = 0; i + 8 <= width; i += 8, rgb += 4 * 8) { + const uint16x8x4_t RGB = vld4q_u16((const uint16_t*)rgb); + int16x8_t U, V; + CONVERT_RGB_TO_UV(RGB.val[0], RGB.val[1], RGB.val[2], 2, U, V); + vst1_u8(u + i, vqrshrun_n_s16(U, 2)); + vst1_u8(v + i, vqrshrun_n_s16(V, 2)); + } + for (; i < width; i += 1, rgb += 4) { + const int r = rgb[0], g = rgb[1], b = rgb[2]; + u[i] = VP8RGBToU(r, g, b, YUV_HALF << 2); + v[i] = VP8RGBToV(r, g, b, YUV_HALF << 2); + } +} + +static void ConvertARGBToUV_NEON(const uint32_t* argb, uint8_t* u, uint8_t* v, + int src_width, int do_store) { + int i; + for (i = 0; i + 16 <= src_width; i += 16, u += 8, v += 8) { + const uint8x16x4_t RGB = vld4q_u8((const uint8_t*)&argb[i]); + const uint16x8_t R = vpaddlq_u8(RGB.val[2]); // pair-wise adds + const uint16x8_t G = vpaddlq_u8(RGB.val[1]); + const uint16x8_t B = vpaddlq_u8(RGB.val[0]); + int16x8_t U_tmp, V_tmp; + CONVERT_RGB_TO_UV(R, G, B, 1, U_tmp, V_tmp); + { + const uint8x8_t U = vqrshrun_n_s16(U_tmp, 1); + const uint8x8_t V = vqrshrun_n_s16(V_tmp, 1); + if (do_store) { + vst1_u8(u, U); + vst1_u8(v, V); + } else { + const uint8x8_t prev_u = vld1_u8(u); + const uint8x8_t prev_v = vld1_u8(v); + vst1_u8(u, vrhadd_u8(U, prev_u)); + vst1_u8(v, vrhadd_u8(V, prev_v)); + } + } + } + if (i < src_width) { // left-over + WebPConvertARGBToUV_C(argb + i, u, v, src_width - i, do_store); + } +} + + +//------------------------------------------------------------------------------ + +extern void WebPInitConvertARGBToYUVNEON(void); + +WEBP_TSAN_IGNORE_FUNCTION void WebPInitConvertARGBToYUVNEON(void) { + WebPConvertRGB24ToY = ConvertRGB24ToY_NEON; + WebPConvertBGR24ToY = ConvertBGR24ToY_NEON; + WebPConvertARGBToY = ConvertARGBToY_NEON; + WebPConvertARGBToUV = ConvertARGBToUV_NEON; + WebPConvertRGBA32ToUV = ConvertRGBA32ToUV_NEON; +} + +//------------------------------------------------------------------------------ + +#define MAX_Y ((1 << 10) - 1) // 10b precision over 16b-arithmetic +static uint16_t clip_y_NEON(int v) { + return (v < 0) ? 0 : (v > MAX_Y) ? MAX_Y : (uint16_t)v; +} + +static uint64_t SharpYUVUpdateY_NEON(const uint16_t* ref, const uint16_t* src, + uint16_t* dst, int len) { + int i; + const int16x8_t zero = vdupq_n_s16(0); + const int16x8_t max = vdupq_n_s16(MAX_Y); + uint64x2_t sum = vdupq_n_u64(0); + uint64_t diff; + + for (i = 0; i + 8 <= len; i += 8) { + const int16x8_t A = vreinterpretq_s16_u16(vld1q_u16(ref + i)); + const int16x8_t B = vreinterpretq_s16_u16(vld1q_u16(src + i)); + const int16x8_t C = vreinterpretq_s16_u16(vld1q_u16(dst + i)); + const int16x8_t D = vsubq_s16(A, B); // diff_y + const int16x8_t F = vaddq_s16(C, D); // new_y + const uint16x8_t H = + vreinterpretq_u16_s16(vmaxq_s16(vminq_s16(F, max), zero)); + const int16x8_t I = vabsq_s16(D); // abs(diff_y) + vst1q_u16(dst + i, H); + sum = vpadalq_u32(sum, vpaddlq_u16(vreinterpretq_u16_s16(I))); + } + diff = vgetq_lane_u64(sum, 0) + vgetq_lane_u64(sum, 1); + for (; i < len; ++i) { + const int diff_y = ref[i] - src[i]; + const int new_y = (int)(dst[i]) + diff_y; + dst[i] = clip_y_NEON(new_y); + diff += (uint64_t)(abs(diff_y)); + } + return diff; +} + +static void SharpYUVUpdateRGB_NEON(const int16_t* ref, const int16_t* src, + int16_t* dst, int len) { + int i; + for (i = 0; i + 8 <= len; i += 8) { + const int16x8_t A = vld1q_s16(ref + i); + const int16x8_t B = vld1q_s16(src + i); + const int16x8_t C = vld1q_s16(dst + i); + const int16x8_t D = vsubq_s16(A, B); // diff_uv + const int16x8_t E = vaddq_s16(C, D); // new_uv + vst1q_s16(dst + i, E); + } + for (; i < len; ++i) { + const int diff_uv = ref[i] - src[i]; + dst[i] += diff_uv; + } +} + +static void SharpYUVFilterRow_NEON(const int16_t* A, const int16_t* B, int len, + const uint16_t* best_y, uint16_t* out) { + int i; + const int16x8_t max = vdupq_n_s16(MAX_Y); + const int16x8_t zero = vdupq_n_s16(0); + for (i = 0; i + 8 <= len; i += 8) { + const int16x8_t a0 = vld1q_s16(A + i + 0); + const int16x8_t a1 = vld1q_s16(A + i + 1); + const int16x8_t b0 = vld1q_s16(B + i + 0); + const int16x8_t b1 = vld1q_s16(B + i + 1); + const int16x8_t a0b1 = vaddq_s16(a0, b1); + const int16x8_t a1b0 = vaddq_s16(a1, b0); + const int16x8_t a0a1b0b1 = vaddq_s16(a0b1, a1b0); // A0+A1+B0+B1 + const int16x8_t a0b1_2 = vaddq_s16(a0b1, a0b1); // 2*(A0+B1) + const int16x8_t a1b0_2 = vaddq_s16(a1b0, a1b0); // 2*(A1+B0) + const int16x8_t c0 = vshrq_n_s16(vaddq_s16(a0b1_2, a0a1b0b1), 3); + const int16x8_t c1 = vshrq_n_s16(vaddq_s16(a1b0_2, a0a1b0b1), 3); + const int16x8_t d0 = vaddq_s16(c1, a0); + const int16x8_t d1 = vaddq_s16(c0, a1); + const int16x8_t e0 = vrshrq_n_s16(d0, 1); + const int16x8_t e1 = vrshrq_n_s16(d1, 1); + const int16x8x2_t f = vzipq_s16(e0, e1); + const int16x8_t g0 = vreinterpretq_s16_u16(vld1q_u16(best_y + 2 * i + 0)); + const int16x8_t g1 = vreinterpretq_s16_u16(vld1q_u16(best_y + 2 * i + 8)); + const int16x8_t h0 = vaddq_s16(g0, f.val[0]); + const int16x8_t h1 = vaddq_s16(g1, f.val[1]); + const int16x8_t i0 = vmaxq_s16(vminq_s16(h0, max), zero); + const int16x8_t i1 = vmaxq_s16(vminq_s16(h1, max), zero); + vst1q_u16(out + 2 * i + 0, vreinterpretq_u16_s16(i0)); + vst1q_u16(out + 2 * i + 8, vreinterpretq_u16_s16(i1)); + } + for (; i < len; ++i) { + const int a0b1 = A[i + 0] + B[i + 1]; + const int a1b0 = A[i + 1] + B[i + 0]; + const int a0a1b0b1 = a0b1 + a1b0 + 8; + const int v0 = (8 * A[i + 0] + 2 * a1b0 + a0a1b0b1) >> 4; + const int v1 = (8 * A[i + 1] + 2 * a0b1 + a0a1b0b1) >> 4; + out[2 * i + 0] = clip_y_NEON(best_y[2 * i + 0] + v0); + out[2 * i + 1] = clip_y_NEON(best_y[2 * i + 1] + v1); + } +} +#undef MAX_Y + +//------------------------------------------------------------------------------ + +extern void WebPInitSharpYUVNEON(void); + +WEBP_TSAN_IGNORE_FUNCTION void WebPInitSharpYUVNEON(void) { + WebPSharpYUVUpdateY = SharpYUVUpdateY_NEON; + WebPSharpYUVUpdateRGB = SharpYUVUpdateRGB_NEON; + WebPSharpYUVFilterRow = SharpYUVFilterRow_NEON; +} + +#else // !WEBP_USE_NEON + +WEBP_DSP_INIT_STUB(WebPInitConvertARGBToYUVNEON) +WEBP_DSP_INIT_STUB(WebPInitSharpYUVNEON) + +#endif // WEBP_USE_NEON diff --git a/external/libwebp-0.6.0/src/dsp/yuv_sse2.c b/external/libwebp-1.0.0/src/dsp/yuv_sse2.c similarity index 70% rename from external/libwebp-0.6.0/src/dsp/yuv_sse2.c rename to external/libwebp-1.0.0/src/dsp/yuv_sse2.c index e33c2bba..baa48d53 100644 --- a/external/libwebp-0.6.0/src/dsp/yuv_sse2.c +++ b/external/libwebp-1.0.0/src/dsp/yuv_sse2.c @@ -11,11 +11,11 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./yuv.h" +#include "src/dsp/yuv.h" #if defined(WEBP_USE_SSE2) -#include "./common_sse2.h" +#include "src/dsp/common_sse2.h" #include #include @@ -26,12 +26,12 @@ // R = (19077 * y + 26149 * v - 14234) >> 6 // G = (19077 * y - 6419 * u - 13320 * v + 8708) >> 6 // B = (19077 * y + 33050 * u - 17685) >> 6 -static void ConvertYUV444ToRGB(const __m128i* const Y0, - const __m128i* const U0, - const __m128i* const V0, - __m128i* const R, - __m128i* const G, - __m128i* const B) { +static void ConvertYUV444ToRGB_SSE2(const __m128i* const Y0, + const __m128i* const U0, + const __m128i* const V0, + __m128i* const R, + __m128i* const G, + __m128i* const B) { const __m128i k19077 = _mm_set1_epi16(19077); const __m128i k26149 = _mm_set1_epi16(26149); const __m128i k14234 = _mm_set1_epi16(14234); @@ -66,13 +66,13 @@ static void ConvertYUV444ToRGB(const __m128i* const Y0, } // Load the bytes into the *upper* part of 16b words. That's "<< 8", basically. -static WEBP_INLINE __m128i Load_HI_16(const uint8_t* src) { +static WEBP_INLINE __m128i Load_HI_16_SSE2(const uint8_t* src) { const __m128i zero = _mm_setzero_si128(); return _mm_unpacklo_epi8(zero, _mm_loadl_epi64((const __m128i*)src)); } // Load and replicate the U/V samples -static WEBP_INLINE __m128i Load_UV_HI_8(const uint8_t* src) { +static WEBP_INLINE __m128i Load_UV_HI_8_SSE2(const uint8_t* src) { const __m128i zero = _mm_setzero_si128(); const __m128i tmp0 = _mm_cvtsi32_si128(*(const uint32_t*)src); const __m128i tmp1 = _mm_unpacklo_epi8(zero, tmp0); @@ -80,29 +80,33 @@ static WEBP_INLINE __m128i Load_UV_HI_8(const uint8_t* src) { } // Convert 32 samples of YUV444 to R/G/B -static void YUV444ToRGB(const uint8_t* const y, - const uint8_t* const u, - const uint8_t* const v, - __m128i* const R, __m128i* const G, __m128i* const B) { - const __m128i Y0 = Load_HI_16(y), U0 = Load_HI_16(u), V0 = Load_HI_16(v); - ConvertYUV444ToRGB(&Y0, &U0, &V0, R, G, B); +static void YUV444ToRGB_SSE2(const uint8_t* const y, + const uint8_t* const u, + const uint8_t* const v, + __m128i* const R, __m128i* const G, + __m128i* const B) { + const __m128i Y0 = Load_HI_16_SSE2(y), U0 = Load_HI_16_SSE2(u), + V0 = Load_HI_16_SSE2(v); + ConvertYUV444ToRGB_SSE2(&Y0, &U0, &V0, R, G, B); } // Convert 32 samples of YUV420 to R/G/B -static void YUV420ToRGB(const uint8_t* const y, - const uint8_t* const u, - const uint8_t* const v, - __m128i* const R, __m128i* const G, __m128i* const B) { - const __m128i Y0 = Load_HI_16(y), U0 = Load_UV_HI_8(u), V0 = Load_UV_HI_8(v); - ConvertYUV444ToRGB(&Y0, &U0, &V0, R, G, B); +static void YUV420ToRGB_SSE2(const uint8_t* const y, + const uint8_t* const u, + const uint8_t* const v, + __m128i* const R, __m128i* const G, + __m128i* const B) { + const __m128i Y0 = Load_HI_16_SSE2(y), U0 = Load_UV_HI_8_SSE2(u), + V0 = Load_UV_HI_8_SSE2(v); + ConvertYUV444ToRGB_SSE2(&Y0, &U0, &V0, R, G, B); } // Pack R/G/B/A results into 32b output. -static WEBP_INLINE void PackAndStore4(const __m128i* const R, - const __m128i* const G, - const __m128i* const B, - const __m128i* const A, - uint8_t* const dst) { +static WEBP_INLINE void PackAndStore4_SSE2(const __m128i* const R, + const __m128i* const G, + const __m128i* const B, + const __m128i* const A, + uint8_t* const dst) { const __m128i rb = _mm_packus_epi16(*R, *B); const __m128i ga = _mm_packus_epi16(*G, *A); const __m128i rg = _mm_unpacklo_epi8(rb, ga); @@ -114,12 +118,12 @@ static WEBP_INLINE void PackAndStore4(const __m128i* const R, } // Pack R/G/B/A results into 16b output. -static WEBP_INLINE void PackAndStore4444(const __m128i* const R, - const __m128i* const G, - const __m128i* const B, - const __m128i* const A, - uint8_t* const dst) { -#if !defined(WEBP_SWAP_16BIT_CSP) +static WEBP_INLINE void PackAndStore4444_SSE2(const __m128i* const R, + const __m128i* const G, + const __m128i* const B, + const __m128i* const A, + uint8_t* const dst) { +#if (WEBP_SWAP_16BIT_CSP == 0) const __m128i rg0 = _mm_packus_epi16(*R, *G); const __m128i ba0 = _mm_packus_epi16(*B, *A); #else @@ -136,10 +140,10 @@ static WEBP_INLINE void PackAndStore4444(const __m128i* const R, } // Pack R/G/B results into 16b output. -static WEBP_INLINE void PackAndStore565(const __m128i* const R, - const __m128i* const G, - const __m128i* const B, - uint8_t* const dst) { +static WEBP_INLINE void PackAndStore565_SSE2(const __m128i* const R, + const __m128i* const G, + const __m128i* const B, + uint8_t* const dst) { const __m128i r0 = _mm_packus_epi16(*R, *R); const __m128i g0 = _mm_packus_epi16(*G, *G); const __m128i b0 = _mm_packus_epi16(*B, *B); @@ -149,7 +153,7 @@ static WEBP_INLINE void PackAndStore565(const __m128i* const R, const __m128i g2 = _mm_slli_epi16(_mm_and_si128(g0, _mm_set1_epi8(0x1c)), 3); const __m128i rg = _mm_or_si128(r1, g1); const __m128i gb = _mm_or_si128(g2, b1); -#if !defined(WEBP_SWAP_16BIT_CSP) +#if (WEBP_SWAP_16BIT_CSP == 0) const __m128i rgb565 = _mm_unpacklo_epi8(rg, gb); #else const __m128i rgb565 = _mm_unpacklo_epi8(gb, rg); @@ -160,10 +164,10 @@ static WEBP_INLINE void PackAndStore565(const __m128i* const R, // Pack the planar buffers // rrrr... rrrr... gggg... gggg... bbbb... bbbb.... // triplet by triplet in the output buffer rgb as rgbrgbrgbrgb ... -static WEBP_INLINE void PlanarTo24b(__m128i* const in0, __m128i* const in1, - __m128i* const in2, __m128i* const in3, - __m128i* const in4, __m128i* const in5, - uint8_t* const rgb) { +static WEBP_INLINE void PlanarTo24b_SSE2(__m128i* const in0, __m128i* const in1, + __m128i* const in2, __m128i* const in3, + __m128i* const in4, __m128i* const in5, + uint8_t* const rgb) { // The input is 6 registers of sixteen 8b but for the sake of explanation, // let's take 6 registers of four 8b values. // To pack, we will keep taking one every two 8b integer and move it @@ -176,7 +180,7 @@ static WEBP_INLINE void PlanarTo24b(__m128i* const in0, __m128i* const in1, // Repeat the same permutations twice more: // r0r4g0g4 | b0b4r1r5 | g1g5b1b5 | r2r6g2g6 | b2b6r3r7 | g3g7b3b7 // r0g0b0r1 | g1b1r2g2 | b2r3g3b3 | r4g4b4r5 | g5b5r6g6 | b6r7g7b7 - VP8PlanarTo24b(in0, in1, in2, in3, in4, in5); + VP8PlanarTo24b_SSE2(in0, in1, in2, in3, in4, in5); _mm_storeu_si128((__m128i*)(rgb + 0), *in0); _mm_storeu_si128((__m128i*)(rgb + 16), *in1); @@ -186,69 +190,69 @@ static WEBP_INLINE void PlanarTo24b(__m128i* const in0, __m128i* const in1, _mm_storeu_si128((__m128i*)(rgb + 80), *in5); } -void VP8YuvToRgba32(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst) { +void VP8YuvToRgba32_SSE2(const uint8_t* y, const uint8_t* u, const uint8_t* v, + uint8_t* dst) { const __m128i kAlpha = _mm_set1_epi16(255); int n; for (n = 0; n < 32; n += 8, dst += 32) { __m128i R, G, B; - YUV444ToRGB(y + n, u + n, v + n, &R, &G, &B); - PackAndStore4(&R, &G, &B, &kAlpha, dst); + YUV444ToRGB_SSE2(y + n, u + n, v + n, &R, &G, &B); + PackAndStore4_SSE2(&R, &G, &B, &kAlpha, dst); } } -void VP8YuvToBgra32(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst) { +void VP8YuvToBgra32_SSE2(const uint8_t* y, const uint8_t* u, const uint8_t* v, + uint8_t* dst) { const __m128i kAlpha = _mm_set1_epi16(255); int n; for (n = 0; n < 32; n += 8, dst += 32) { __m128i R, G, B; - YUV444ToRGB(y + n, u + n, v + n, &R, &G, &B); - PackAndStore4(&B, &G, &R, &kAlpha, dst); + YUV444ToRGB_SSE2(y + n, u + n, v + n, &R, &G, &B); + PackAndStore4_SSE2(&B, &G, &R, &kAlpha, dst); } } -void VP8YuvToArgb32(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst) { +void VP8YuvToArgb32_SSE2(const uint8_t* y, const uint8_t* u, const uint8_t* v, + uint8_t* dst) { const __m128i kAlpha = _mm_set1_epi16(255); int n; for (n = 0; n < 32; n += 8, dst += 32) { __m128i R, G, B; - YUV444ToRGB(y + n, u + n, v + n, &R, &G, &B); - PackAndStore4(&kAlpha, &R, &G, &B, dst); + YUV444ToRGB_SSE2(y + n, u + n, v + n, &R, &G, &B); + PackAndStore4_SSE2(&kAlpha, &R, &G, &B, dst); } } -void VP8YuvToRgba444432(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst) { +void VP8YuvToRgba444432_SSE2(const uint8_t* y, const uint8_t* u, + const uint8_t* v, uint8_t* dst) { const __m128i kAlpha = _mm_set1_epi16(255); int n; for (n = 0; n < 32; n += 8, dst += 16) { __m128i R, G, B; - YUV444ToRGB(y + n, u + n, v + n, &R, &G, &B); - PackAndStore4444(&R, &G, &B, &kAlpha, dst); + YUV444ToRGB_SSE2(y + n, u + n, v + n, &R, &G, &B); + PackAndStore4444_SSE2(&R, &G, &B, &kAlpha, dst); } } -void VP8YuvToRgb56532(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst) { +void VP8YuvToRgb56532_SSE2(const uint8_t* y, const uint8_t* u, const uint8_t* v, + uint8_t* dst) { int n; for (n = 0; n < 32; n += 8, dst += 16) { __m128i R, G, B; - YUV444ToRGB(y + n, u + n, v + n, &R, &G, &B); - PackAndStore565(&R, &G, &B, dst); + YUV444ToRGB_SSE2(y + n, u + n, v + n, &R, &G, &B); + PackAndStore565_SSE2(&R, &G, &B, dst); } } -void VP8YuvToRgb32(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst) { +void VP8YuvToRgb32_SSE2(const uint8_t* y, const uint8_t* u, const uint8_t* v, + uint8_t* dst) { __m128i R0, R1, R2, R3, G0, G1, G2, G3, B0, B1, B2, B3; __m128i rgb0, rgb1, rgb2, rgb3, rgb4, rgb5; - YUV444ToRGB(y + 0, u + 0, v + 0, &R0, &G0, &B0); - YUV444ToRGB(y + 8, u + 8, v + 8, &R1, &G1, &B1); - YUV444ToRGB(y + 16, u + 16, v + 16, &R2, &G2, &B2); - YUV444ToRGB(y + 24, u + 24, v + 24, &R3, &G3, &B3); + YUV444ToRGB_SSE2(y + 0, u + 0, v + 0, &R0, &G0, &B0); + YUV444ToRGB_SSE2(y + 8, u + 8, v + 8, &R1, &G1, &B1); + YUV444ToRGB_SSE2(y + 16, u + 16, v + 16, &R2, &G2, &B2); + YUV444ToRGB_SSE2(y + 24, u + 24, v + 24, &R3, &G3, &B3); // Cast to 8b and store as RRRRGGGGBBBB. rgb0 = _mm_packus_epi16(R0, R1); @@ -259,18 +263,18 @@ void VP8YuvToRgb32(const uint8_t* y, const uint8_t* u, const uint8_t* v, rgb5 = _mm_packus_epi16(B2, B3); // Pack as RGBRGBRGBRGB. - PlanarTo24b(&rgb0, &rgb1, &rgb2, &rgb3, &rgb4, &rgb5, dst); + PlanarTo24b_SSE2(&rgb0, &rgb1, &rgb2, &rgb3, &rgb4, &rgb5, dst); } -void VP8YuvToBgr32(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst) { +void VP8YuvToBgr32_SSE2(const uint8_t* y, const uint8_t* u, const uint8_t* v, + uint8_t* dst) { __m128i R0, R1, R2, R3, G0, G1, G2, G3, B0, B1, B2, B3; __m128i bgr0, bgr1, bgr2, bgr3, bgr4, bgr5; - YUV444ToRGB(y + 0, u + 0, v + 0, &R0, &G0, &B0); - YUV444ToRGB(y + 8, u + 8, v + 8, &R1, &G1, &B1); - YUV444ToRGB(y + 16, u + 16, v + 16, &R2, &G2, &B2); - YUV444ToRGB(y + 24, u + 24, v + 24, &R3, &G3, &B3); + YUV444ToRGB_SSE2(y + 0, u + 0, v + 0, &R0, &G0, &B0); + YUV444ToRGB_SSE2(y + 8, u + 8, v + 8, &R1, &G1, &B1); + YUV444ToRGB_SSE2(y + 16, u + 16, v + 16, &R2, &G2, &B2); + YUV444ToRGB_SSE2(y + 24, u + 24, v + 24, &R3, &G3, &B3); // Cast to 8b and store as BBBBGGGGRRRR. bgr0 = _mm_packus_epi16(B0, B1); @@ -281,20 +285,21 @@ void VP8YuvToBgr32(const uint8_t* y, const uint8_t* u, const uint8_t* v, bgr5= _mm_packus_epi16(R2, R3); // Pack as BGRBGRBGRBGR. - PlanarTo24b(&bgr0, &bgr1, &bgr2, &bgr3, &bgr4, &bgr5, dst); + PlanarTo24b_SSE2(&bgr0, &bgr1, &bgr2, &bgr3, &bgr4, &bgr5, dst); } //----------------------------------------------------------------------------- // Arbitrary-length row conversion functions -static void YuvToRgbaRow(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst, int len) { +static void YuvToRgbaRow_SSE2(const uint8_t* y, + const uint8_t* u, const uint8_t* v, + uint8_t* dst, int len) { const __m128i kAlpha = _mm_set1_epi16(255); int n; for (n = 0; n + 8 <= len; n += 8, dst += 32) { __m128i R, G, B; - YUV420ToRGB(y, u, v, &R, &G, &B); - PackAndStore4(&R, &G, &B, &kAlpha, dst); + YUV420ToRGB_SSE2(y, u, v, &R, &G, &B); + PackAndStore4_SSE2(&R, &G, &B, &kAlpha, dst); y += 8; u += 4; v += 4; @@ -308,14 +313,15 @@ static void YuvToRgbaRow(const uint8_t* y, const uint8_t* u, const uint8_t* v, } } -static void YuvToBgraRow(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst, int len) { +static void YuvToBgraRow_SSE2(const uint8_t* y, + const uint8_t* u, const uint8_t* v, + uint8_t* dst, int len) { const __m128i kAlpha = _mm_set1_epi16(255); int n; for (n = 0; n + 8 <= len; n += 8, dst += 32) { __m128i R, G, B; - YUV420ToRGB(y, u, v, &R, &G, &B); - PackAndStore4(&B, &G, &R, &kAlpha, dst); + YUV420ToRGB_SSE2(y, u, v, &R, &G, &B); + PackAndStore4_SSE2(&B, &G, &R, &kAlpha, dst); y += 8; u += 4; v += 4; @@ -329,14 +335,15 @@ static void YuvToBgraRow(const uint8_t* y, const uint8_t* u, const uint8_t* v, } } -static void YuvToArgbRow(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst, int len) { +static void YuvToArgbRow_SSE2(const uint8_t* y, + const uint8_t* u, const uint8_t* v, + uint8_t* dst, int len) { const __m128i kAlpha = _mm_set1_epi16(255); int n; for (n = 0; n + 8 <= len; n += 8, dst += 32) { __m128i R, G, B; - YUV420ToRGB(y, u, v, &R, &G, &B); - PackAndStore4(&kAlpha, &R, &G, &B, dst); + YUV420ToRGB_SSE2(y, u, v, &R, &G, &B); + PackAndStore4_SSE2(&kAlpha, &R, &G, &B, dst); y += 8; u += 4; v += 4; @@ -350,17 +357,18 @@ static void YuvToArgbRow(const uint8_t* y, const uint8_t* u, const uint8_t* v, } } -static void YuvToRgbRow(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst, int len) { +static void YuvToRgbRow_SSE2(const uint8_t* y, + const uint8_t* u, const uint8_t* v, + uint8_t* dst, int len) { int n; for (n = 0; n + 32 <= len; n += 32, dst += 32 * 3) { __m128i R0, R1, R2, R3, G0, G1, G2, G3, B0, B1, B2, B3; __m128i rgb0, rgb1, rgb2, rgb3, rgb4, rgb5; - YUV420ToRGB(y + 0, u + 0, v + 0, &R0, &G0, &B0); - YUV420ToRGB(y + 8, u + 4, v + 4, &R1, &G1, &B1); - YUV420ToRGB(y + 16, u + 8, v + 8, &R2, &G2, &B2); - YUV420ToRGB(y + 24, u + 12, v + 12, &R3, &G3, &B3); + YUV420ToRGB_SSE2(y + 0, u + 0, v + 0, &R0, &G0, &B0); + YUV420ToRGB_SSE2(y + 8, u + 4, v + 4, &R1, &G1, &B1); + YUV420ToRGB_SSE2(y + 16, u + 8, v + 8, &R2, &G2, &B2); + YUV420ToRGB_SSE2(y + 24, u + 12, v + 12, &R3, &G3, &B3); // Cast to 8b and store as RRRRGGGGBBBB. rgb0 = _mm_packus_epi16(R0, R1); @@ -371,7 +379,7 @@ static void YuvToRgbRow(const uint8_t* y, const uint8_t* u, const uint8_t* v, rgb5 = _mm_packus_epi16(B2, B3); // Pack as RGBRGBRGBRGB. - PlanarTo24b(&rgb0, &rgb1, &rgb2, &rgb3, &rgb4, &rgb5, dst); + PlanarTo24b_SSE2(&rgb0, &rgb1, &rgb2, &rgb3, &rgb4, &rgb5, dst); y += 32; u += 16; @@ -386,17 +394,18 @@ static void YuvToRgbRow(const uint8_t* y, const uint8_t* u, const uint8_t* v, } } -static void YuvToBgrRow(const uint8_t* y, const uint8_t* u, const uint8_t* v, - uint8_t* dst, int len) { +static void YuvToBgrRow_SSE2(const uint8_t* y, + const uint8_t* u, const uint8_t* v, + uint8_t* dst, int len) { int n; for (n = 0; n + 32 <= len; n += 32, dst += 32 * 3) { __m128i R0, R1, R2, R3, G0, G1, G2, G3, B0, B1, B2, B3; __m128i bgr0, bgr1, bgr2, bgr3, bgr4, bgr5; - YUV420ToRGB(y + 0, u + 0, v + 0, &R0, &G0, &B0); - YUV420ToRGB(y + 8, u + 4, v + 4, &R1, &G1, &B1); - YUV420ToRGB(y + 16, u + 8, v + 8, &R2, &G2, &B2); - YUV420ToRGB(y + 24, u + 12, v + 12, &R3, &G3, &B3); + YUV420ToRGB_SSE2(y + 0, u + 0, v + 0, &R0, &G0, &B0); + YUV420ToRGB_SSE2(y + 8, u + 4, v + 4, &R1, &G1, &B1); + YUV420ToRGB_SSE2(y + 16, u + 8, v + 8, &R2, &G2, &B2); + YUV420ToRGB_SSE2(y + 24, u + 12, v + 12, &R3, &G3, &B3); // Cast to 8b and store as BBBBGGGGRRRR. bgr0 = _mm_packus_epi16(B0, B1); @@ -407,7 +416,7 @@ static void YuvToBgrRow(const uint8_t* y, const uint8_t* u, const uint8_t* v, bgr5 = _mm_packus_epi16(R2, R3); // Pack as BGRBGRBGRBGR. - PlanarTo24b(&bgr0, &bgr1, &bgr2, &bgr3, &bgr4, &bgr5, dst); + PlanarTo24b_SSE2(&bgr0, &bgr1, &bgr2, &bgr3, &bgr4, &bgr5, dst); y += 32; u += 16; @@ -428,11 +437,11 @@ static void YuvToBgrRow(const uint8_t* y, const uint8_t* u, const uint8_t* v, extern void WebPInitSamplersSSE2(void); WEBP_TSAN_IGNORE_FUNCTION void WebPInitSamplersSSE2(void) { - WebPSamplers[MODE_RGB] = YuvToRgbRow; - WebPSamplers[MODE_RGBA] = YuvToRgbaRow; - WebPSamplers[MODE_BGR] = YuvToBgrRow; - WebPSamplers[MODE_BGRA] = YuvToBgraRow; - WebPSamplers[MODE_ARGB] = YuvToArgbRow; + WebPSamplers[MODE_RGB] = YuvToRgbRow_SSE2; + WebPSamplers[MODE_RGBA] = YuvToRgbaRow_SSE2; + WebPSamplers[MODE_BGR] = YuvToBgrRow_SSE2; + WebPSamplers[MODE_BGRA] = YuvToBgraRow_SSE2; + WebPSamplers[MODE_ARGB] = YuvToArgbRow_SSE2; } //------------------------------------------------------------------------------ @@ -445,7 +454,7 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPInitSamplersSSE2(void) { // Function that inserts a value of the second half of the in buffer in between // every two char of the first half. -static WEBP_INLINE void RGB24PackedToPlanarHelper( +static WEBP_INLINE void RGB24PackedToPlanarHelper_SSE2( const __m128i* const in /*in[6]*/, __m128i* const out /*out[6]*/) { out[0] = _mm_unpacklo_epi8(in[0], in[3]); out[1] = _mm_unpackhi_epi8(in[0], in[3]); @@ -458,8 +467,8 @@ static WEBP_INLINE void RGB24PackedToPlanarHelper( // Unpack the 8b input rgbrgbrgbrgb ... as contiguous registers: // rrrr... rrrr... gggg... gggg... bbbb... bbbb.... // Similar to PlanarTo24bHelper(), but in reverse order. -static WEBP_INLINE void RGB24PackedToPlanar(const uint8_t* const rgb, - __m128i* const out /*out[6]*/) { +static WEBP_INLINE void RGB24PackedToPlanar_SSE2( + const uint8_t* const rgb, __m128i* const out /*out[6]*/) { __m128i tmp[6]; tmp[0] = _mm_loadu_si128((const __m128i*)(rgb + 0)); tmp[1] = _mm_loadu_si128((const __m128i*)(rgb + 16)); @@ -468,22 +477,22 @@ static WEBP_INLINE void RGB24PackedToPlanar(const uint8_t* const rgb, tmp[4] = _mm_loadu_si128((const __m128i*)(rgb + 64)); tmp[5] = _mm_loadu_si128((const __m128i*)(rgb + 80)); - RGB24PackedToPlanarHelper(tmp, out); - RGB24PackedToPlanarHelper(out, tmp); - RGB24PackedToPlanarHelper(tmp, out); - RGB24PackedToPlanarHelper(out, tmp); - RGB24PackedToPlanarHelper(tmp, out); + RGB24PackedToPlanarHelper_SSE2(tmp, out); + RGB24PackedToPlanarHelper_SSE2(out, tmp); + RGB24PackedToPlanarHelper_SSE2(tmp, out); + RGB24PackedToPlanarHelper_SSE2(out, tmp); + RGB24PackedToPlanarHelper_SSE2(tmp, out); } // Convert 8 packed ARGB to r[], g[], b[] -static WEBP_INLINE void RGB32PackedToPlanar(const uint32_t* const argb, - __m128i* const rgb /*in[6]*/) { +static WEBP_INLINE void RGB32PackedToPlanar_SSE2(const uint32_t* const argb, + __m128i* const rgb /*in[6]*/) { const __m128i zero = _mm_setzero_si128(); __m128i a0 = LOAD_16(argb + 0); __m128i a1 = LOAD_16(argb + 4); __m128i a2 = LOAD_16(argb + 8); __m128i a3 = LOAD_16(argb + 12); - VP8L32bToPlanar(&a0, &a1, &a2, &a3); + VP8L32bToPlanar_SSE2(&a0, &a1, &a2, &a3); rgb[0] = _mm_unpacklo_epi8(a1, zero); rgb[1] = _mm_unpackhi_epi8(a1, zero); rgb[2] = _mm_unpacklo_epi8(a2, zero); @@ -511,10 +520,10 @@ static WEBP_INLINE void RGB32PackedToPlanar(const uint32_t* const argb, } while (0) #define MK_CST_16(A, B) _mm_set_epi16((B), (A), (B), (A), (B), (A), (B), (A)) -static WEBP_INLINE void ConvertRGBToY(const __m128i* const R, - const __m128i* const G, - const __m128i* const B, - __m128i* const Y) { +static WEBP_INLINE void ConvertRGBToY_SSE2(const __m128i* const R, + const __m128i* const G, + const __m128i* const B, + __m128i* const Y) { const __m128i kRG_y = MK_CST_16(16839, 33059 - 16384); const __m128i kGB_y = MK_CST_16(16384, 6420); const __m128i kHALF_Y = _mm_set1_epi32((16 << YUV_FIX) + YUV_HALF); @@ -526,10 +535,11 @@ static WEBP_INLINE void ConvertRGBToY(const __m128i* const R, TRANSFORM(RG_lo, RG_hi, GB_lo, GB_hi, kRG_y, kGB_y, kHALF_Y, YUV_FIX, *Y); } -static WEBP_INLINE void ConvertRGBToUV(const __m128i* const R, - const __m128i* const G, - const __m128i* const B, - __m128i* const U, __m128i* const V) { +static WEBP_INLINE void ConvertRGBToUV_SSE2(const __m128i* const R, + const __m128i* const G, + const __m128i* const B, + __m128i* const U, + __m128i* const V) { const __m128i kRG_u = MK_CST_16(-9719, -19081); const __m128i kGB_u = MK_CST_16(0, 28800); const __m128i kRG_v = MK_CST_16(28800, 0); @@ -549,14 +559,14 @@ static WEBP_INLINE void ConvertRGBToUV(const __m128i* const R, #undef MK_CST_16 #undef TRANSFORM -static void ConvertRGB24ToY(const uint8_t* rgb, uint8_t* y, int width) { +static void ConvertRGB24ToY_SSE2(const uint8_t* rgb, uint8_t* y, int width) { const int max_width = width & ~31; int i; for (i = 0; i < max_width; rgb += 3 * 16 * 2) { __m128i rgb_plane[6]; int j; - RGB24PackedToPlanar(rgb, rgb_plane); + RGB24PackedToPlanar_SSE2(rgb, rgb_plane); for (j = 0; j < 2; ++j, i += 16) { const __m128i zero = _mm_setzero_si128(); @@ -566,13 +576,13 @@ static void ConvertRGB24ToY(const uint8_t* rgb, uint8_t* y, int width) { r = _mm_unpacklo_epi8(rgb_plane[0 + j], zero); g = _mm_unpacklo_epi8(rgb_plane[2 + j], zero); b = _mm_unpacklo_epi8(rgb_plane[4 + j], zero); - ConvertRGBToY(&r, &g, &b, &Y0); + ConvertRGBToY_SSE2(&r, &g, &b, &Y0); // Convert to 16-bit Y. r = _mm_unpackhi_epi8(rgb_plane[0 + j], zero); g = _mm_unpackhi_epi8(rgb_plane[2 + j], zero); b = _mm_unpackhi_epi8(rgb_plane[4 + j], zero); - ConvertRGBToY(&r, &g, &b, &Y1); + ConvertRGBToY_SSE2(&r, &g, &b, &Y1); // Cast to 8-bit and store. STORE_16(_mm_packus_epi16(Y0, Y1), y + i); @@ -583,14 +593,14 @@ static void ConvertRGB24ToY(const uint8_t* rgb, uint8_t* y, int width) { } } -static void ConvertBGR24ToY(const uint8_t* bgr, uint8_t* y, int width) { +static void ConvertBGR24ToY_SSE2(const uint8_t* bgr, uint8_t* y, int width) { const int max_width = width & ~31; int i; for (i = 0; i < max_width; bgr += 3 * 16 * 2) { __m128i bgr_plane[6]; int j; - RGB24PackedToPlanar(bgr, bgr_plane); + RGB24PackedToPlanar_SSE2(bgr, bgr_plane); for (j = 0; j < 2; ++j, i += 16) { const __m128i zero = _mm_setzero_si128(); @@ -600,13 +610,13 @@ static void ConvertBGR24ToY(const uint8_t* bgr, uint8_t* y, int width) { b = _mm_unpacklo_epi8(bgr_plane[0 + j], zero); g = _mm_unpacklo_epi8(bgr_plane[2 + j], zero); r = _mm_unpacklo_epi8(bgr_plane[4 + j], zero); - ConvertRGBToY(&r, &g, &b, &Y0); + ConvertRGBToY_SSE2(&r, &g, &b, &Y0); // Convert to 16-bit Y. b = _mm_unpackhi_epi8(bgr_plane[0 + j], zero); g = _mm_unpackhi_epi8(bgr_plane[2 + j], zero); r = _mm_unpackhi_epi8(bgr_plane[4 + j], zero); - ConvertRGBToY(&r, &g, &b, &Y1); + ConvertRGBToY_SSE2(&r, &g, &b, &Y1); // Cast to 8-bit and store. STORE_16(_mm_packus_epi16(Y0, Y1), y + i); @@ -617,14 +627,14 @@ static void ConvertBGR24ToY(const uint8_t* bgr, uint8_t* y, int width) { } } -static void ConvertARGBToY(const uint32_t* argb, uint8_t* y, int width) { +static void ConvertARGBToY_SSE2(const uint32_t* argb, uint8_t* y, int width) { const int max_width = width & ~15; int i; for (i = 0; i < max_width; i += 16) { __m128i Y0, Y1, rgb[6]; - RGB32PackedToPlanar(&argb[i], rgb); - ConvertRGBToY(&rgb[0], &rgb[2], &rgb[4], &Y0); - ConvertRGBToY(&rgb[1], &rgb[3], &rgb[5], &Y1); + RGB32PackedToPlanar_SSE2(&argb[i], rgb); + ConvertRGBToY_SSE2(&rgb[0], &rgb[2], &rgb[4], &Y0); + ConvertRGBToY_SSE2(&rgb[1], &rgb[3], &rgb[5], &Y1); STORE_16(_mm_packus_epi16(Y0, Y1), y + i); } for (; i < width; ++i) { // left-over @@ -636,31 +646,33 @@ static void ConvertARGBToY(const uint32_t* argb, uint8_t* y, int width) { // Horizontal add (doubled) of two 16b values, result is 16b. // in: A | B | C | D | ... -> out: 2*(A+B) | 2*(C+D) | ... -static void HorizontalAddPack(const __m128i* const A, const __m128i* const B, - __m128i* const out) { +static void HorizontalAddPack_SSE2(const __m128i* const A, + const __m128i* const B, + __m128i* const out) { const __m128i k2 = _mm_set1_epi16(2); const __m128i C = _mm_madd_epi16(*A, k2); const __m128i D = _mm_madd_epi16(*B, k2); *out = _mm_packs_epi32(C, D); } -static void ConvertARGBToUV(const uint32_t* argb, uint8_t* u, uint8_t* v, - int src_width, int do_store) { +static void ConvertARGBToUV_SSE2(const uint32_t* argb, + uint8_t* u, uint8_t* v, + int src_width, int do_store) { const int max_width = src_width & ~31; int i; for (i = 0; i < max_width; i += 32, u += 16, v += 16) { __m128i rgb[6], U0, V0, U1, V1; - RGB32PackedToPlanar(&argb[i], rgb); - HorizontalAddPack(&rgb[0], &rgb[1], &rgb[0]); - HorizontalAddPack(&rgb[2], &rgb[3], &rgb[2]); - HorizontalAddPack(&rgb[4], &rgb[5], &rgb[4]); - ConvertRGBToUV(&rgb[0], &rgb[2], &rgb[4], &U0, &V0); - - RGB32PackedToPlanar(&argb[i + 16], rgb); - HorizontalAddPack(&rgb[0], &rgb[1], &rgb[0]); - HorizontalAddPack(&rgb[2], &rgb[3], &rgb[2]); - HorizontalAddPack(&rgb[4], &rgb[5], &rgb[4]); - ConvertRGBToUV(&rgb[0], &rgb[2], &rgb[4], &U1, &V1); + RGB32PackedToPlanar_SSE2(&argb[i], rgb); + HorizontalAddPack_SSE2(&rgb[0], &rgb[1], &rgb[0]); + HorizontalAddPack_SSE2(&rgb[2], &rgb[3], &rgb[2]); + HorizontalAddPack_SSE2(&rgb[4], &rgb[5], &rgb[4]); + ConvertRGBToUV_SSE2(&rgb[0], &rgb[2], &rgb[4], &U0, &V0); + + RGB32PackedToPlanar_SSE2(&argb[i + 16], rgb); + HorizontalAddPack_SSE2(&rgb[0], &rgb[1], &rgb[0]); + HorizontalAddPack_SSE2(&rgb[2], &rgb[3], &rgb[2]); + HorizontalAddPack_SSE2(&rgb[4], &rgb[5], &rgb[4]); + ConvertRGBToUV_SSE2(&rgb[0], &rgb[2], &rgb[4], &U1, &V1); U0 = _mm_packus_epi16(U0, U1); V0 = _mm_packus_epi16(V0, V1); @@ -679,10 +691,9 @@ static void ConvertARGBToUV(const uint32_t* argb, uint8_t* u, uint8_t* v, } // Convert 16 packed ARGB 16b-values to r[], g[], b[] -static WEBP_INLINE void RGBA32PackedToPlanar_16b(const uint16_t* const rgbx, - __m128i* const r, - __m128i* const g, - __m128i* const b) { +static WEBP_INLINE void RGBA32PackedToPlanar_16b_SSE2( + const uint16_t* const rgbx, + __m128i* const r, __m128i* const g, __m128i* const b) { const __m128i in0 = LOAD_16(rgbx + 0); // r0 | g0 | b0 |x| r1 | g1 | b1 |x const __m128i in1 = LOAD_16(rgbx + 8); // r2 | g2 | b2 |x| r3 | g3 | b3 |x const __m128i in2 = LOAD_16(rgbx + 16); // r4 | ... @@ -701,16 +712,16 @@ static WEBP_INLINE void RGBA32PackedToPlanar_16b(const uint16_t* const rgbx, *b = _mm_unpacklo_epi64(B1, B3); } -static void ConvertRGBA32ToUV(const uint16_t* rgb, - uint8_t* u, uint8_t* v, int width) { +static void ConvertRGBA32ToUV_SSE2(const uint16_t* rgb, + uint8_t* u, uint8_t* v, int width) { const int max_width = width & ~15; const uint16_t* const last_rgb = rgb + 4 * max_width; while (rgb < last_rgb) { __m128i r, g, b, U0, V0, U1, V1; - RGBA32PackedToPlanar_16b(rgb + 0, &r, &g, &b); - ConvertRGBToUV(&r, &g, &b, &U0, &V0); - RGBA32PackedToPlanar_16b(rgb + 32, &r, &g, &b); - ConvertRGBToUV(&r, &g, &b, &U1, &V1); + RGBA32PackedToPlanar_16b_SSE2(rgb + 0, &r, &g, &b); + ConvertRGBToUV_SSE2(&r, &g, &b, &U0, &V0); + RGBA32PackedToPlanar_16b_SSE2(rgb + 32, &r, &g, &b); + ConvertRGBToUV_SSE2(&r, &g, &b, &U1, &V1); STORE_16(_mm_packus_epi16(U0, U1), u); STORE_16(_mm_packus_epi16(V0, V1), v); u += 16; @@ -727,13 +738,13 @@ static void ConvertRGBA32ToUV(const uint16_t* rgb, extern void WebPInitConvertARGBToYUVSSE2(void); WEBP_TSAN_IGNORE_FUNCTION void WebPInitConvertARGBToYUVSSE2(void) { - WebPConvertARGBToY = ConvertARGBToY; - WebPConvertARGBToUV = ConvertARGBToUV; + WebPConvertARGBToY = ConvertARGBToY_SSE2; + WebPConvertARGBToUV = ConvertARGBToUV_SSE2; - WebPConvertRGB24ToY = ConvertRGB24ToY; - WebPConvertBGR24ToY = ConvertBGR24ToY; + WebPConvertRGB24ToY = ConvertRGB24ToY_SSE2; + WebPConvertBGR24ToY = ConvertBGR24ToY_SSE2; - WebPConvertRGBA32ToUV = ConvertRGBA32ToUV; + WebPConvertRGBA32ToUV = ConvertRGBA32ToUV_SSE2; } //------------------------------------------------------------------------------ diff --git a/external/libwebp-1.0.0/src/dsp/yuv_sse41.c b/external/libwebp-1.0.0/src/dsp/yuv_sse41.c new file mode 100644 index 00000000..579d1f74 --- /dev/null +++ b/external/libwebp-1.0.0/src/dsp/yuv_sse41.c @@ -0,0 +1,613 @@ +// Copyright 2014 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// YUV->RGB conversion functions +// +// Author: Skal (pascal.massimino@gmail.com) + +#include "src/dsp/yuv.h" + +#if defined(WEBP_USE_SSE41) + +#include "src/dsp/common_sse41.h" +#include +#include + +//----------------------------------------------------------------------------- +// Convert spans of 32 pixels to various RGB formats for the fancy upsampler. + +// These constants are 14b fixed-point version of ITU-R BT.601 constants. +// R = (19077 * y + 26149 * v - 14234) >> 6 +// G = (19077 * y - 6419 * u - 13320 * v + 8708) >> 6 +// B = (19077 * y + 33050 * u - 17685) >> 6 +static void ConvertYUV444ToRGB_SSE41(const __m128i* const Y0, + const __m128i* const U0, + const __m128i* const V0, + __m128i* const R, + __m128i* const G, + __m128i* const B) { + const __m128i k19077 = _mm_set1_epi16(19077); + const __m128i k26149 = _mm_set1_epi16(26149); + const __m128i k14234 = _mm_set1_epi16(14234); + // 33050 doesn't fit in a signed short: only use this with unsigned arithmetic + const __m128i k33050 = _mm_set1_epi16((short)33050); + const __m128i k17685 = _mm_set1_epi16(17685); + const __m128i k6419 = _mm_set1_epi16(6419); + const __m128i k13320 = _mm_set1_epi16(13320); + const __m128i k8708 = _mm_set1_epi16(8708); + + const __m128i Y1 = _mm_mulhi_epu16(*Y0, k19077); + + const __m128i R0 = _mm_mulhi_epu16(*V0, k26149); + const __m128i R1 = _mm_sub_epi16(Y1, k14234); + const __m128i R2 = _mm_add_epi16(R1, R0); + + const __m128i G0 = _mm_mulhi_epu16(*U0, k6419); + const __m128i G1 = _mm_mulhi_epu16(*V0, k13320); + const __m128i G2 = _mm_add_epi16(Y1, k8708); + const __m128i G3 = _mm_add_epi16(G0, G1); + const __m128i G4 = _mm_sub_epi16(G2, G3); + + // be careful with the saturated *unsigned* arithmetic here! + const __m128i B0 = _mm_mulhi_epu16(*U0, k33050); + const __m128i B1 = _mm_adds_epu16(B0, Y1); + const __m128i B2 = _mm_subs_epu16(B1, k17685); + + // use logical shift for B2, which can be larger than 32767 + *R = _mm_srai_epi16(R2, 6); // range: [-14234, 30815] + *G = _mm_srai_epi16(G4, 6); // range: [-10953, 27710] + *B = _mm_srli_epi16(B2, 6); // range: [0, 34238] +} + +// Load the bytes into the *upper* part of 16b words. That's "<< 8", basically. +static WEBP_INLINE __m128i Load_HI_16_SSE41(const uint8_t* src) { + const __m128i zero = _mm_setzero_si128(); + return _mm_unpacklo_epi8(zero, _mm_loadl_epi64((const __m128i*)src)); +} + +// Load and replicate the U/V samples +static WEBP_INLINE __m128i Load_UV_HI_8_SSE41(const uint8_t* src) { + const __m128i zero = _mm_setzero_si128(); + const __m128i tmp0 = _mm_cvtsi32_si128(*(const uint32_t*)src); + const __m128i tmp1 = _mm_unpacklo_epi8(zero, tmp0); + return _mm_unpacklo_epi16(tmp1, tmp1); // replicate samples +} + +// Convert 32 samples of YUV444 to R/G/B +static void YUV444ToRGB_SSE41(const uint8_t* const y, + const uint8_t* const u, + const uint8_t* const v, + __m128i* const R, __m128i* const G, + __m128i* const B) { + const __m128i Y0 = Load_HI_16_SSE41(y), U0 = Load_HI_16_SSE41(u), + V0 = Load_HI_16_SSE41(v); + ConvertYUV444ToRGB_SSE41(&Y0, &U0, &V0, R, G, B); +} + +// Convert 32 samples of YUV420 to R/G/B +static void YUV420ToRGB_SSE41(const uint8_t* const y, + const uint8_t* const u, + const uint8_t* const v, + __m128i* const R, __m128i* const G, + __m128i* const B) { + const __m128i Y0 = Load_HI_16_SSE41(y), U0 = Load_UV_HI_8_SSE41(u), + V0 = Load_UV_HI_8_SSE41(v); + ConvertYUV444ToRGB_SSE41(&Y0, &U0, &V0, R, G, B); +} + +// Pack the planar buffers +// rrrr... rrrr... gggg... gggg... bbbb... bbbb.... +// triplet by triplet in the output buffer rgb as rgbrgbrgbrgb ... +static WEBP_INLINE void PlanarTo24b_SSE41( + __m128i* const in0, __m128i* const in1, __m128i* const in2, + __m128i* const in3, __m128i* const in4, __m128i* const in5, + uint8_t* const rgb) { + // The input is 6 registers of sixteen 8b but for the sake of explanation, + // let's take 6 registers of four 8b values. + // To pack, we will keep taking one every two 8b integer and move it + // around as follows: + // Input: + // r0r1r2r3 | r4r5r6r7 | g0g1g2g3 | g4g5g6g7 | b0b1b2b3 | b4b5b6b7 + // Split the 6 registers in two sets of 3 registers: the first set as the even + // 8b bytes, the second the odd ones: + // r0r2r4r6 | g0g2g4g6 | b0b2b4b6 | r1r3r5r7 | g1g3g5g7 | b1b3b5b7 + // Repeat the same permutations twice more: + // r0r4g0g4 | b0b4r1r5 | g1g5b1b5 | r2r6g2g6 | b2b6r3r7 | g3g7b3b7 + // r0g0b0r1 | g1b1r2g2 | b2r3g3b3 | r4g4b4r5 | g5b5r6g6 | b6r7g7b7 + VP8PlanarTo24b_SSE41(in0, in1, in2, in3, in4, in5); + + _mm_storeu_si128((__m128i*)(rgb + 0), *in0); + _mm_storeu_si128((__m128i*)(rgb + 16), *in1); + _mm_storeu_si128((__m128i*)(rgb + 32), *in2); + _mm_storeu_si128((__m128i*)(rgb + 48), *in3); + _mm_storeu_si128((__m128i*)(rgb + 64), *in4); + _mm_storeu_si128((__m128i*)(rgb + 80), *in5); +} + +void VP8YuvToRgb32_SSE41(const uint8_t* y, const uint8_t* u, const uint8_t* v, + uint8_t* dst) { + __m128i R0, R1, R2, R3, G0, G1, G2, G3, B0, B1, B2, B3; + __m128i rgb0, rgb1, rgb2, rgb3, rgb4, rgb5; + + YUV444ToRGB_SSE41(y + 0, u + 0, v + 0, &R0, &G0, &B0); + YUV444ToRGB_SSE41(y + 8, u + 8, v + 8, &R1, &G1, &B1); + YUV444ToRGB_SSE41(y + 16, u + 16, v + 16, &R2, &G2, &B2); + YUV444ToRGB_SSE41(y + 24, u + 24, v + 24, &R3, &G3, &B3); + + // Cast to 8b and store as RRRRGGGGBBBB. + rgb0 = _mm_packus_epi16(R0, R1); + rgb1 = _mm_packus_epi16(R2, R3); + rgb2 = _mm_packus_epi16(G0, G1); + rgb3 = _mm_packus_epi16(G2, G3); + rgb4 = _mm_packus_epi16(B0, B1); + rgb5 = _mm_packus_epi16(B2, B3); + + // Pack as RGBRGBRGBRGB. + PlanarTo24b_SSE41(&rgb0, &rgb1, &rgb2, &rgb3, &rgb4, &rgb5, dst); +} + +void VP8YuvToBgr32_SSE41(const uint8_t* y, const uint8_t* u, const uint8_t* v, + uint8_t* dst) { + __m128i R0, R1, R2, R3, G0, G1, G2, G3, B0, B1, B2, B3; + __m128i bgr0, bgr1, bgr2, bgr3, bgr4, bgr5; + + YUV444ToRGB_SSE41(y + 0, u + 0, v + 0, &R0, &G0, &B0); + YUV444ToRGB_SSE41(y + 8, u + 8, v + 8, &R1, &G1, &B1); + YUV444ToRGB_SSE41(y + 16, u + 16, v + 16, &R2, &G2, &B2); + YUV444ToRGB_SSE41(y + 24, u + 24, v + 24, &R3, &G3, &B3); + + // Cast to 8b and store as BBBBGGGGRRRR. + bgr0 = _mm_packus_epi16(B0, B1); + bgr1 = _mm_packus_epi16(B2, B3); + bgr2 = _mm_packus_epi16(G0, G1); + bgr3 = _mm_packus_epi16(G2, G3); + bgr4 = _mm_packus_epi16(R0, R1); + bgr5= _mm_packus_epi16(R2, R3); + + // Pack as BGRBGRBGRBGR. + PlanarTo24b_SSE41(&bgr0, &bgr1, &bgr2, &bgr3, &bgr4, &bgr5, dst); +} + +//----------------------------------------------------------------------------- +// Arbitrary-length row conversion functions + +static void YuvToRgbRow_SSE41(const uint8_t* y, + const uint8_t* u, const uint8_t* v, + uint8_t* dst, int len) { + int n; + for (n = 0; n + 32 <= len; n += 32, dst += 32 * 3) { + __m128i R0, R1, R2, R3, G0, G1, G2, G3, B0, B1, B2, B3; + __m128i rgb0, rgb1, rgb2, rgb3, rgb4, rgb5; + + YUV420ToRGB_SSE41(y + 0, u + 0, v + 0, &R0, &G0, &B0); + YUV420ToRGB_SSE41(y + 8, u + 4, v + 4, &R1, &G1, &B1); + YUV420ToRGB_SSE41(y + 16, u + 8, v + 8, &R2, &G2, &B2); + YUV420ToRGB_SSE41(y + 24, u + 12, v + 12, &R3, &G3, &B3); + + // Cast to 8b and store as RRRRGGGGBBBB. + rgb0 = _mm_packus_epi16(R0, R1); + rgb1 = _mm_packus_epi16(R2, R3); + rgb2 = _mm_packus_epi16(G0, G1); + rgb3 = _mm_packus_epi16(G2, G3); + rgb4 = _mm_packus_epi16(B0, B1); + rgb5 = _mm_packus_epi16(B2, B3); + + // Pack as RGBRGBRGBRGB. + PlanarTo24b_SSE41(&rgb0, &rgb1, &rgb2, &rgb3, &rgb4, &rgb5, dst); + + y += 32; + u += 16; + v += 16; + } + for (; n < len; ++n) { // Finish off + VP8YuvToRgb(y[0], u[0], v[0], dst); + dst += 3; + y += 1; + u += (n & 1); + v += (n & 1); + } +} + +static void YuvToBgrRow_SSE41(const uint8_t* y, + const uint8_t* u, const uint8_t* v, + uint8_t* dst, int len) { + int n; + for (n = 0; n + 32 <= len; n += 32, dst += 32 * 3) { + __m128i R0, R1, R2, R3, G0, G1, G2, G3, B0, B1, B2, B3; + __m128i bgr0, bgr1, bgr2, bgr3, bgr4, bgr5; + + YUV420ToRGB_SSE41(y + 0, u + 0, v + 0, &R0, &G0, &B0); + YUV420ToRGB_SSE41(y + 8, u + 4, v + 4, &R1, &G1, &B1); + YUV420ToRGB_SSE41(y + 16, u + 8, v + 8, &R2, &G2, &B2); + YUV420ToRGB_SSE41(y + 24, u + 12, v + 12, &R3, &G3, &B3); + + // Cast to 8b and store as BBBBGGGGRRRR. + bgr0 = _mm_packus_epi16(B0, B1); + bgr1 = _mm_packus_epi16(B2, B3); + bgr2 = _mm_packus_epi16(G0, G1); + bgr3 = _mm_packus_epi16(G2, G3); + bgr4 = _mm_packus_epi16(R0, R1); + bgr5 = _mm_packus_epi16(R2, R3); + + // Pack as BGRBGRBGRBGR. + PlanarTo24b_SSE41(&bgr0, &bgr1, &bgr2, &bgr3, &bgr4, &bgr5, dst); + + y += 32; + u += 16; + v += 16; + } + for (; n < len; ++n) { // Finish off + VP8YuvToBgr(y[0], u[0], v[0], dst); + dst += 3; + y += 1; + u += (n & 1); + v += (n & 1); + } +} + +//------------------------------------------------------------------------------ +// Entry point + +extern void WebPInitSamplersSSE41(void); + +WEBP_TSAN_IGNORE_FUNCTION void WebPInitSamplersSSE41(void) { + WebPSamplers[MODE_RGB] = YuvToRgbRow_SSE41; + WebPSamplers[MODE_BGR] = YuvToBgrRow_SSE41; +} + +//------------------------------------------------------------------------------ +// RGB24/32 -> YUV converters + +// Load eight 16b-words from *src. +#define LOAD_16(src) _mm_loadu_si128((const __m128i*)(src)) +// Store either 16b-words into *dst +#define STORE_16(V, dst) _mm_storeu_si128((__m128i*)(dst), (V)) + +#define WEBP_SSE41_SHUFF(OUT) do { \ + const __m128i tmp0 = _mm_shuffle_epi8(A0, shuff0); \ + const __m128i tmp1 = _mm_shuffle_epi8(A1, shuff1); \ + const __m128i tmp2 = _mm_shuffle_epi8(A2, shuff2); \ + const __m128i tmp3 = _mm_shuffle_epi8(A3, shuff0); \ + const __m128i tmp4 = _mm_shuffle_epi8(A4, shuff1); \ + const __m128i tmp5 = _mm_shuffle_epi8(A5, shuff2); \ + \ + /* OR everything to get one channel */ \ + const __m128i tmp6 = _mm_or_si128(tmp0, tmp1); \ + const __m128i tmp7 = _mm_or_si128(tmp3, tmp4); \ + out[OUT + 0] = _mm_or_si128(tmp6, tmp2); \ + out[OUT + 1] = _mm_or_si128(tmp7, tmp5); \ +} while (0); + +// Unpack the 8b input rgbrgbrgbrgb ... as contiguous registers: +// rrrr... rrrr... gggg... gggg... bbbb... bbbb.... +// Similar to PlanarTo24bHelper(), but in reverse order. +static WEBP_INLINE void RGB24PackedToPlanar_SSE41( + const uint8_t* const rgb, __m128i* const out /*out[6]*/) { + const __m128i A0 = _mm_loadu_si128((const __m128i*)(rgb + 0)); + const __m128i A1 = _mm_loadu_si128((const __m128i*)(rgb + 16)); + const __m128i A2 = _mm_loadu_si128((const __m128i*)(rgb + 32)); + const __m128i A3 = _mm_loadu_si128((const __m128i*)(rgb + 48)); + const __m128i A4 = _mm_loadu_si128((const __m128i*)(rgb + 64)); + const __m128i A5 = _mm_loadu_si128((const __m128i*)(rgb + 80)); + + // Compute RR. + { + const __m128i shuff0 = _mm_set_epi8( + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, 12, 9, 6, 3, 0); + const __m128i shuff1 = _mm_set_epi8( + -1, -1, -1, -1, -1, 14, 11, 8, 5, 2, -1, -1, -1, -1, -1, -1); + const __m128i shuff2 = _mm_set_epi8( + 13, 10, 7, 4, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1); + WEBP_SSE41_SHUFF(0) + } + // Compute GG. + { + const __m128i shuff0 = _mm_set_epi8( + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, 10, 7, 4, 1); + const __m128i shuff1 = _mm_set_epi8( + -1, -1, -1, -1, -1, 15, 12, 9, 6, 3, 0, -1, -1, -1, -1, -1); + const __m128i shuff2 = _mm_set_epi8( + 14, 11, 8, 5, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1); + WEBP_SSE41_SHUFF(2) + } + // Compute BB. + { + const __m128i shuff0 = _mm_set_epi8( + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 11, 8, 5, 2); + const __m128i shuff1 = _mm_set_epi8( + -1, -1, -1, -1, -1, -1, 13, 10, 7, 4, 1, -1, -1, -1, -1, -1); + const __m128i shuff2 = _mm_set_epi8( + 15, 12, 9, 6, 3, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1); + WEBP_SSE41_SHUFF(4) + } +} + +#undef WEBP_SSE41_SHUFF + +// Convert 8 packed ARGB to r[], g[], b[] +static WEBP_INLINE void RGB32PackedToPlanar_SSE41( + const uint32_t* const argb, __m128i* const rgb /*in[6]*/) { + const __m128i zero = _mm_setzero_si128(); + __m128i a0 = LOAD_16(argb + 0); + __m128i a1 = LOAD_16(argb + 4); + __m128i a2 = LOAD_16(argb + 8); + __m128i a3 = LOAD_16(argb + 12); + VP8L32bToPlanar_SSE41(&a0, &a1, &a2, &a3); + rgb[0] = _mm_unpacklo_epi8(a1, zero); + rgb[1] = _mm_unpackhi_epi8(a1, zero); + rgb[2] = _mm_unpacklo_epi8(a2, zero); + rgb[3] = _mm_unpackhi_epi8(a2, zero); + rgb[4] = _mm_unpacklo_epi8(a3, zero); + rgb[5] = _mm_unpackhi_epi8(a3, zero); +} + +// This macro computes (RG * MULT_RG + GB * MULT_GB + ROUNDER) >> DESCALE_FIX +// It's a macro and not a function because we need to use immediate values with +// srai_epi32, e.g. +#define TRANSFORM(RG_LO, RG_HI, GB_LO, GB_HI, MULT_RG, MULT_GB, \ + ROUNDER, DESCALE_FIX, OUT) do { \ + const __m128i V0_lo = _mm_madd_epi16(RG_LO, MULT_RG); \ + const __m128i V0_hi = _mm_madd_epi16(RG_HI, MULT_RG); \ + const __m128i V1_lo = _mm_madd_epi16(GB_LO, MULT_GB); \ + const __m128i V1_hi = _mm_madd_epi16(GB_HI, MULT_GB); \ + const __m128i V2_lo = _mm_add_epi32(V0_lo, V1_lo); \ + const __m128i V2_hi = _mm_add_epi32(V0_hi, V1_hi); \ + const __m128i V3_lo = _mm_add_epi32(V2_lo, ROUNDER); \ + const __m128i V3_hi = _mm_add_epi32(V2_hi, ROUNDER); \ + const __m128i V5_lo = _mm_srai_epi32(V3_lo, DESCALE_FIX); \ + const __m128i V5_hi = _mm_srai_epi32(V3_hi, DESCALE_FIX); \ + (OUT) = _mm_packs_epi32(V5_lo, V5_hi); \ +} while (0) + +#define MK_CST_16(A, B) _mm_set_epi16((B), (A), (B), (A), (B), (A), (B), (A)) +static WEBP_INLINE void ConvertRGBToY_SSE41(const __m128i* const R, + const __m128i* const G, + const __m128i* const B, + __m128i* const Y) { + const __m128i kRG_y = MK_CST_16(16839, 33059 - 16384); + const __m128i kGB_y = MK_CST_16(16384, 6420); + const __m128i kHALF_Y = _mm_set1_epi32((16 << YUV_FIX) + YUV_HALF); + + const __m128i RG_lo = _mm_unpacklo_epi16(*R, *G); + const __m128i RG_hi = _mm_unpackhi_epi16(*R, *G); + const __m128i GB_lo = _mm_unpacklo_epi16(*G, *B); + const __m128i GB_hi = _mm_unpackhi_epi16(*G, *B); + TRANSFORM(RG_lo, RG_hi, GB_lo, GB_hi, kRG_y, kGB_y, kHALF_Y, YUV_FIX, *Y); +} + +static WEBP_INLINE void ConvertRGBToUV_SSE41(const __m128i* const R, + const __m128i* const G, + const __m128i* const B, + __m128i* const U, + __m128i* const V) { + const __m128i kRG_u = MK_CST_16(-9719, -19081); + const __m128i kGB_u = MK_CST_16(0, 28800); + const __m128i kRG_v = MK_CST_16(28800, 0); + const __m128i kGB_v = MK_CST_16(-24116, -4684); + const __m128i kHALF_UV = _mm_set1_epi32(((128 << YUV_FIX) + YUV_HALF) << 2); + + const __m128i RG_lo = _mm_unpacklo_epi16(*R, *G); + const __m128i RG_hi = _mm_unpackhi_epi16(*R, *G); + const __m128i GB_lo = _mm_unpacklo_epi16(*G, *B); + const __m128i GB_hi = _mm_unpackhi_epi16(*G, *B); + TRANSFORM(RG_lo, RG_hi, GB_lo, GB_hi, kRG_u, kGB_u, + kHALF_UV, YUV_FIX + 2, *U); + TRANSFORM(RG_lo, RG_hi, GB_lo, GB_hi, kRG_v, kGB_v, + kHALF_UV, YUV_FIX + 2, *V); +} + +#undef MK_CST_16 +#undef TRANSFORM + +static void ConvertRGB24ToY_SSE41(const uint8_t* rgb, uint8_t* y, int width) { + const int max_width = width & ~31; + int i; + for (i = 0; i < max_width; rgb += 3 * 16 * 2) { + __m128i rgb_plane[6]; + int j; + + RGB24PackedToPlanar_SSE41(rgb, rgb_plane); + + for (j = 0; j < 2; ++j, i += 16) { + const __m128i zero = _mm_setzero_si128(); + __m128i r, g, b, Y0, Y1; + + // Convert to 16-bit Y. + r = _mm_unpacklo_epi8(rgb_plane[0 + j], zero); + g = _mm_unpacklo_epi8(rgb_plane[2 + j], zero); + b = _mm_unpacklo_epi8(rgb_plane[4 + j], zero); + ConvertRGBToY_SSE41(&r, &g, &b, &Y0); + + // Convert to 16-bit Y. + r = _mm_unpackhi_epi8(rgb_plane[0 + j], zero); + g = _mm_unpackhi_epi8(rgb_plane[2 + j], zero); + b = _mm_unpackhi_epi8(rgb_plane[4 + j], zero); + ConvertRGBToY_SSE41(&r, &g, &b, &Y1); + + // Cast to 8-bit and store. + STORE_16(_mm_packus_epi16(Y0, Y1), y + i); + } + } + for (; i < width; ++i, rgb += 3) { // left-over + y[i] = VP8RGBToY(rgb[0], rgb[1], rgb[2], YUV_HALF); + } +} + +static void ConvertBGR24ToY_SSE41(const uint8_t* bgr, uint8_t* y, int width) { + const int max_width = width & ~31; + int i; + for (i = 0; i < max_width; bgr += 3 * 16 * 2) { + __m128i bgr_plane[6]; + int j; + + RGB24PackedToPlanar_SSE41(bgr, bgr_plane); + + for (j = 0; j < 2; ++j, i += 16) { + const __m128i zero = _mm_setzero_si128(); + __m128i r, g, b, Y0, Y1; + + // Convert to 16-bit Y. + b = _mm_unpacklo_epi8(bgr_plane[0 + j], zero); + g = _mm_unpacklo_epi8(bgr_plane[2 + j], zero); + r = _mm_unpacklo_epi8(bgr_plane[4 + j], zero); + ConvertRGBToY_SSE41(&r, &g, &b, &Y0); + + // Convert to 16-bit Y. + b = _mm_unpackhi_epi8(bgr_plane[0 + j], zero); + g = _mm_unpackhi_epi8(bgr_plane[2 + j], zero); + r = _mm_unpackhi_epi8(bgr_plane[4 + j], zero); + ConvertRGBToY_SSE41(&r, &g, &b, &Y1); + + // Cast to 8-bit and store. + STORE_16(_mm_packus_epi16(Y0, Y1), y + i); + } + } + for (; i < width; ++i, bgr += 3) { // left-over + y[i] = VP8RGBToY(bgr[2], bgr[1], bgr[0], YUV_HALF); + } +} + +static void ConvertARGBToY_SSE41(const uint32_t* argb, uint8_t* y, int width) { + const int max_width = width & ~15; + int i; + for (i = 0; i < max_width; i += 16) { + __m128i Y0, Y1, rgb[6]; + RGB32PackedToPlanar_SSE41(&argb[i], rgb); + ConvertRGBToY_SSE41(&rgb[0], &rgb[2], &rgb[4], &Y0); + ConvertRGBToY_SSE41(&rgb[1], &rgb[3], &rgb[5], &Y1); + STORE_16(_mm_packus_epi16(Y0, Y1), y + i); + } + for (; i < width; ++i) { // left-over + const uint32_t p = argb[i]; + y[i] = VP8RGBToY((p >> 16) & 0xff, (p >> 8) & 0xff, (p >> 0) & 0xff, + YUV_HALF); + } +} + +// Horizontal add (doubled) of two 16b values, result is 16b. +// in: A | B | C | D | ... -> out: 2*(A+B) | 2*(C+D) | ... +static void HorizontalAddPack_SSE41(const __m128i* const A, + const __m128i* const B, + __m128i* const out) { + const __m128i k2 = _mm_set1_epi16(2); + const __m128i C = _mm_madd_epi16(*A, k2); + const __m128i D = _mm_madd_epi16(*B, k2); + *out = _mm_packs_epi32(C, D); +} + +static void ConvertARGBToUV_SSE41(const uint32_t* argb, + uint8_t* u, uint8_t* v, + int src_width, int do_store) { + const int max_width = src_width & ~31; + int i; + for (i = 0; i < max_width; i += 32, u += 16, v += 16) { + __m128i rgb[6], U0, V0, U1, V1; + RGB32PackedToPlanar_SSE41(&argb[i], rgb); + HorizontalAddPack_SSE41(&rgb[0], &rgb[1], &rgb[0]); + HorizontalAddPack_SSE41(&rgb[2], &rgb[3], &rgb[2]); + HorizontalAddPack_SSE41(&rgb[4], &rgb[5], &rgb[4]); + ConvertRGBToUV_SSE41(&rgb[0], &rgb[2], &rgb[4], &U0, &V0); + + RGB32PackedToPlanar_SSE41(&argb[i + 16], rgb); + HorizontalAddPack_SSE41(&rgb[0], &rgb[1], &rgb[0]); + HorizontalAddPack_SSE41(&rgb[2], &rgb[3], &rgb[2]); + HorizontalAddPack_SSE41(&rgb[4], &rgb[5], &rgb[4]); + ConvertRGBToUV_SSE41(&rgb[0], &rgb[2], &rgb[4], &U1, &V1); + + U0 = _mm_packus_epi16(U0, U1); + V0 = _mm_packus_epi16(V0, V1); + if (!do_store) { + const __m128i prev_u = LOAD_16(u); + const __m128i prev_v = LOAD_16(v); + U0 = _mm_avg_epu8(U0, prev_u); + V0 = _mm_avg_epu8(V0, prev_v); + } + STORE_16(U0, u); + STORE_16(V0, v); + } + if (i < src_width) { // left-over + WebPConvertARGBToUV_C(argb + i, u, v, src_width - i, do_store); + } +} + +// Convert 16 packed ARGB 16b-values to r[], g[], b[] +static WEBP_INLINE void RGBA32PackedToPlanar_16b_SSE41( + const uint16_t* const rgbx, + __m128i* const r, __m128i* const g, __m128i* const b) { + const __m128i in0 = LOAD_16(rgbx + 0); // r0 | g0 | b0 |x| r1 | g1 | b1 |x + const __m128i in1 = LOAD_16(rgbx + 8); // r2 | g2 | b2 |x| r3 | g3 | b3 |x + const __m128i in2 = LOAD_16(rgbx + 16); // r4 | ... + const __m128i in3 = LOAD_16(rgbx + 24); // r6 | ... + // aarrggbb as 16-bit. + const __m128i shuff0 = + _mm_set_epi8(-1, -1, -1, -1, 13, 12, 5, 4, 11, 10, 3, 2, 9, 8, 1, 0); + const __m128i shuff1 = + _mm_set_epi8(13, 12, 5, 4, -1, -1, -1, -1, 11, 10, 3, 2, 9, 8, 1, 0); + const __m128i A0 = _mm_shuffle_epi8(in0, shuff0); + const __m128i A1 = _mm_shuffle_epi8(in1, shuff1); + const __m128i A2 = _mm_shuffle_epi8(in2, shuff0); + const __m128i A3 = _mm_shuffle_epi8(in3, shuff1); + // R0R1G0G1 + // B0B1**** + // R2R3G2G3 + // B2B3**** + // (OR is used to free port 5 for the unpack) + const __m128i B0 = _mm_unpacklo_epi32(A0, A1); + const __m128i B1 = _mm_or_si128(A0, A1); + const __m128i B2 = _mm_unpacklo_epi32(A2, A3); + const __m128i B3 = _mm_or_si128(A2, A3); + // Gather the channels. + *r = _mm_unpacklo_epi64(B0, B2); + *g = _mm_unpackhi_epi64(B0, B2); + *b = _mm_unpackhi_epi64(B1, B3); +} + +static void ConvertRGBA32ToUV_SSE41(const uint16_t* rgb, + uint8_t* u, uint8_t* v, int width) { + const int max_width = width & ~15; + const uint16_t* const last_rgb = rgb + 4 * max_width; + while (rgb < last_rgb) { + __m128i r, g, b, U0, V0, U1, V1; + RGBA32PackedToPlanar_16b_SSE41(rgb + 0, &r, &g, &b); + ConvertRGBToUV_SSE41(&r, &g, &b, &U0, &V0); + RGBA32PackedToPlanar_16b_SSE41(rgb + 32, &r, &g, &b); + ConvertRGBToUV_SSE41(&r, &g, &b, &U1, &V1); + STORE_16(_mm_packus_epi16(U0, U1), u); + STORE_16(_mm_packus_epi16(V0, V1), v); + u += 16; + v += 16; + rgb += 2 * 32; + } + if (max_width < width) { // left-over + WebPConvertRGBA32ToUV_C(rgb, u, v, width - max_width); + } +} + +//------------------------------------------------------------------------------ + +extern void WebPInitConvertARGBToYUVSSE41(void); + +WEBP_TSAN_IGNORE_FUNCTION void WebPInitConvertARGBToYUVSSE41(void) { + WebPConvertARGBToY = ConvertARGBToY_SSE41; + WebPConvertARGBToUV = ConvertARGBToUV_SSE41; + + WebPConvertRGB24ToY = ConvertRGB24ToY_SSE41; + WebPConvertBGR24ToY = ConvertBGR24ToY_SSE41; + + WebPConvertRGBA32ToUV = ConvertRGBA32ToUV_SSE41; +} + +//------------------------------------------------------------------------------ + +#else // !WEBP_USE_SSE41 + +WEBP_DSP_INIT_STUB(WebPInitSamplersSSE41) +WEBP_DSP_INIT_STUB(WebPInitConvertARGBToYUVSSE41) + +#endif // WEBP_USE_SSE41 diff --git a/external/libwebp-0.6.0/src/enc/Makefile.am b/external/libwebp-1.0.0/src/enc/Makefile.am similarity index 89% rename from external/libwebp-0.6.0/src/enc/Makefile.am rename to external/libwebp-1.0.0/src/enc/Makefile.am index aead7fec..27d52285 100644 --- a/external/libwebp-0.6.0/src/enc/Makefile.am +++ b/external/libwebp-1.0.0/src/enc/Makefile.am @@ -1,15 +1,15 @@ +AM_CPPFLAGS += -I$(top_builddir) -I$(top_srcdir) noinst_LTLIBRARIES = libwebpencode.la libwebpencode_la_SOURCES = libwebpencode_la_SOURCES += alpha_enc.c libwebpencode_la_SOURCES += analysis_enc.c +libwebpencode_la_SOURCES += backward_references_cost_enc.c libwebpencode_la_SOURCES += backward_references_enc.c libwebpencode_la_SOURCES += backward_references_enc.h libwebpencode_la_SOURCES += config_enc.c libwebpencode_la_SOURCES += cost_enc.c libwebpencode_la_SOURCES += cost_enc.h -libwebpencode_la_SOURCES += delta_palettization_enc.c -libwebpencode_la_SOURCES += delta_palettization_enc.h libwebpencode_la_SOURCES += filter_enc.c libwebpencode_la_SOURCES += frame_enc.c libwebpencode_la_SOURCES += histogram_enc.c @@ -38,5 +38,5 @@ noinst_HEADERS = noinst_HEADERS += ../webp/format_constants.h libwebpencode_la_LDFLAGS = -lm -libwebpencode_la_CPPFLAGS = $(AM_CPPFLAGS) $(USE_EXPERIMENTAL_CODE) +libwebpencode_la_CPPFLAGS = $(AM_CPPFLAGS) libwebpencodeincludedir = $(includedir)/webp diff --git a/external/libwebp-1.0.0/src/enc/Makefile.in b/external/libwebp-1.0.0/src/enc/Makefile.in new file mode 100644 index 00000000..48a7acb1 --- /dev/null +++ b/external/libwebp-1.0.0/src/enc/Makefile.in @@ -0,0 +1,885 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/enc +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(libwebpencodeinclude_HEADERS) \ + $(noinst_HEADERS) $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/webp/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libwebpencode_la_LIBADD = +am_libwebpencode_la_OBJECTS = libwebpencode_la-alpha_enc.lo \ + libwebpencode_la-analysis_enc.lo \ + libwebpencode_la-backward_references_cost_enc.lo \ + libwebpencode_la-backward_references_enc.lo \ + libwebpencode_la-config_enc.lo libwebpencode_la-cost_enc.lo \ + libwebpencode_la-filter_enc.lo libwebpencode_la-frame_enc.lo \ + libwebpencode_la-histogram_enc.lo \ + libwebpencode_la-iterator_enc.lo \ + libwebpencode_la-near_lossless_enc.lo \ + libwebpencode_la-picture_enc.lo \ + libwebpencode_la-picture_csp_enc.lo \ + libwebpencode_la-picture_psnr_enc.lo \ + libwebpencode_la-picture_rescale_enc.lo \ + libwebpencode_la-picture_tools_enc.lo \ + libwebpencode_la-predictor_enc.lo \ + libwebpencode_la-quant_enc.lo libwebpencode_la-syntax_enc.lo \ + libwebpencode_la-token_enc.lo libwebpencode_la-tree_enc.lo \ + libwebpencode_la-vp8l_enc.lo libwebpencode_la-webp_enc.lo +libwebpencode_la_OBJECTS = $(am_libwebpencode_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libwebpencode_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libwebpencode_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/webp +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libwebpencode_la_SOURCES) +DIST_SOURCES = $(libwebpencode_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libwebpencodeincludedir)" +HEADERS = $(libwebpencodeinclude_HEADERS) $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_builddir) -I$(top_srcdir) +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVX2_FLAGS = @AVX2_FLAGS@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GIF_INCLUDES = @GIF_INCLUDES@ +GIF_LIBS = @GIF_LIBS@ +GL_INCLUDES = @GL_INCLUDES@ +GL_LIBS = @GL_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JPEG_INCLUDES = @JPEG_INCLUDES@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPNG_CONFIG = @LIBPNG_CONFIG@ +LIBS = @LIBS@ +LIBSDL_CONFIG = @LIBSDL_CONFIG@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NEON_FLAGS = @NEON_FLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PNG_INCLUDES = @PNG_INCLUDES@ +PNG_LIBS = @PNG_LIBS@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SDL_INCLUDES = @SDL_INCLUDES@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSE2_FLAGS = @SSE2_FLAGS@ +SSE41_FLAGS = @SSE41_FLAGS@ +STRIP = @STRIP@ +TIFF_INCLUDES = @TIFF_INCLUDES@ +TIFF_LIBS = @TIFF_LIBS@ +USE_SWAP_16BIT_CSP = @USE_SWAP_16BIT_CSP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +noinst_LTLIBRARIES = libwebpencode.la +libwebpencode_la_SOURCES = alpha_enc.c analysis_enc.c \ + backward_references_cost_enc.c backward_references_enc.c \ + backward_references_enc.h config_enc.c cost_enc.c cost_enc.h \ + filter_enc.c frame_enc.c histogram_enc.c histogram_enc.h \ + iterator_enc.c near_lossless_enc.c picture_enc.c \ + picture_csp_enc.c picture_psnr_enc.c picture_rescale_enc.c \ + picture_tools_enc.c predictor_enc.c quant_enc.c syntax_enc.c \ + token_enc.c tree_enc.c vp8i_enc.h vp8l_enc.c vp8li_enc.h \ + webp_enc.c +libwebpencodeinclude_HEADERS = ../webp/encode.h ../webp/types.h +noinst_HEADERS = ../webp/format_constants.h +libwebpencode_la_LDFLAGS = -lm +libwebpencode_la_CPPFLAGS = $(AM_CPPFLAGS) +libwebpencodeincludedir = $(includedir)/webp +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/enc/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/enc/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libwebpencode.la: $(libwebpencode_la_OBJECTS) $(libwebpencode_la_DEPENDENCIES) $(EXTRA_libwebpencode_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpencode_la_LINK) $(libwebpencode_la_OBJECTS) $(libwebpencode_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-alpha_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-analysis_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-backward_references_cost_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-backward_references_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-config_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-cost_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-filter_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-frame_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-histogram_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-iterator_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-near_lossless_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-picture_csp_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-picture_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-picture_psnr_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-picture_rescale_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-picture_tools_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-predictor_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-quant_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-syntax_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-token_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-tree_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-vp8l_enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwebpencode_la-webp_enc.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libwebpencode_la-alpha_enc.lo: alpha_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-alpha_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-alpha_enc.Tpo -c -o libwebpencode_la-alpha_enc.lo `test -f 'alpha_enc.c' || echo '$(srcdir)/'`alpha_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-alpha_enc.Tpo $(DEPDIR)/libwebpencode_la-alpha_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alpha_enc.c' object='libwebpencode_la-alpha_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-alpha_enc.lo `test -f 'alpha_enc.c' || echo '$(srcdir)/'`alpha_enc.c + +libwebpencode_la-analysis_enc.lo: analysis_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-analysis_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-analysis_enc.Tpo -c -o libwebpencode_la-analysis_enc.lo `test -f 'analysis_enc.c' || echo '$(srcdir)/'`analysis_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-analysis_enc.Tpo $(DEPDIR)/libwebpencode_la-analysis_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='analysis_enc.c' object='libwebpencode_la-analysis_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-analysis_enc.lo `test -f 'analysis_enc.c' || echo '$(srcdir)/'`analysis_enc.c + +libwebpencode_la-backward_references_cost_enc.lo: backward_references_cost_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-backward_references_cost_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-backward_references_cost_enc.Tpo -c -o libwebpencode_la-backward_references_cost_enc.lo `test -f 'backward_references_cost_enc.c' || echo '$(srcdir)/'`backward_references_cost_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-backward_references_cost_enc.Tpo $(DEPDIR)/libwebpencode_la-backward_references_cost_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backward_references_cost_enc.c' object='libwebpencode_la-backward_references_cost_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-backward_references_cost_enc.lo `test -f 'backward_references_cost_enc.c' || echo '$(srcdir)/'`backward_references_cost_enc.c + +libwebpencode_la-backward_references_enc.lo: backward_references_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-backward_references_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-backward_references_enc.Tpo -c -o libwebpencode_la-backward_references_enc.lo `test -f 'backward_references_enc.c' || echo '$(srcdir)/'`backward_references_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-backward_references_enc.Tpo $(DEPDIR)/libwebpencode_la-backward_references_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backward_references_enc.c' object='libwebpencode_la-backward_references_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-backward_references_enc.lo `test -f 'backward_references_enc.c' || echo '$(srcdir)/'`backward_references_enc.c + +libwebpencode_la-config_enc.lo: config_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-config_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-config_enc.Tpo -c -o libwebpencode_la-config_enc.lo `test -f 'config_enc.c' || echo '$(srcdir)/'`config_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-config_enc.Tpo $(DEPDIR)/libwebpencode_la-config_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='config_enc.c' object='libwebpencode_la-config_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-config_enc.lo `test -f 'config_enc.c' || echo '$(srcdir)/'`config_enc.c + +libwebpencode_la-cost_enc.lo: cost_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-cost_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-cost_enc.Tpo -c -o libwebpencode_la-cost_enc.lo `test -f 'cost_enc.c' || echo '$(srcdir)/'`cost_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-cost_enc.Tpo $(DEPDIR)/libwebpencode_la-cost_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cost_enc.c' object='libwebpencode_la-cost_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-cost_enc.lo `test -f 'cost_enc.c' || echo '$(srcdir)/'`cost_enc.c + +libwebpencode_la-filter_enc.lo: filter_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-filter_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-filter_enc.Tpo -c -o libwebpencode_la-filter_enc.lo `test -f 'filter_enc.c' || echo '$(srcdir)/'`filter_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-filter_enc.Tpo $(DEPDIR)/libwebpencode_la-filter_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filter_enc.c' object='libwebpencode_la-filter_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-filter_enc.lo `test -f 'filter_enc.c' || echo '$(srcdir)/'`filter_enc.c + +libwebpencode_la-frame_enc.lo: frame_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-frame_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-frame_enc.Tpo -c -o libwebpencode_la-frame_enc.lo `test -f 'frame_enc.c' || echo '$(srcdir)/'`frame_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-frame_enc.Tpo $(DEPDIR)/libwebpencode_la-frame_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='frame_enc.c' object='libwebpencode_la-frame_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-frame_enc.lo `test -f 'frame_enc.c' || echo '$(srcdir)/'`frame_enc.c + +libwebpencode_la-histogram_enc.lo: histogram_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-histogram_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-histogram_enc.Tpo -c -o libwebpencode_la-histogram_enc.lo `test -f 'histogram_enc.c' || echo '$(srcdir)/'`histogram_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-histogram_enc.Tpo $(DEPDIR)/libwebpencode_la-histogram_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='histogram_enc.c' object='libwebpencode_la-histogram_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-histogram_enc.lo `test -f 'histogram_enc.c' || echo '$(srcdir)/'`histogram_enc.c + +libwebpencode_la-iterator_enc.lo: iterator_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-iterator_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-iterator_enc.Tpo -c -o libwebpencode_la-iterator_enc.lo `test -f 'iterator_enc.c' || echo '$(srcdir)/'`iterator_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-iterator_enc.Tpo $(DEPDIR)/libwebpencode_la-iterator_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iterator_enc.c' object='libwebpencode_la-iterator_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-iterator_enc.lo `test -f 'iterator_enc.c' || echo '$(srcdir)/'`iterator_enc.c + +libwebpencode_la-near_lossless_enc.lo: near_lossless_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-near_lossless_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-near_lossless_enc.Tpo -c -o libwebpencode_la-near_lossless_enc.lo `test -f 'near_lossless_enc.c' || echo '$(srcdir)/'`near_lossless_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-near_lossless_enc.Tpo $(DEPDIR)/libwebpencode_la-near_lossless_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='near_lossless_enc.c' object='libwebpencode_la-near_lossless_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-near_lossless_enc.lo `test -f 'near_lossless_enc.c' || echo '$(srcdir)/'`near_lossless_enc.c + +libwebpencode_la-picture_enc.lo: picture_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-picture_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-picture_enc.Tpo -c -o libwebpencode_la-picture_enc.lo `test -f 'picture_enc.c' || echo '$(srcdir)/'`picture_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-picture_enc.Tpo $(DEPDIR)/libwebpencode_la-picture_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='picture_enc.c' object='libwebpencode_la-picture_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-picture_enc.lo `test -f 'picture_enc.c' || echo '$(srcdir)/'`picture_enc.c + +libwebpencode_la-picture_csp_enc.lo: picture_csp_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-picture_csp_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-picture_csp_enc.Tpo -c -o libwebpencode_la-picture_csp_enc.lo `test -f 'picture_csp_enc.c' || echo '$(srcdir)/'`picture_csp_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-picture_csp_enc.Tpo $(DEPDIR)/libwebpencode_la-picture_csp_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='picture_csp_enc.c' object='libwebpencode_la-picture_csp_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-picture_csp_enc.lo `test -f 'picture_csp_enc.c' || echo '$(srcdir)/'`picture_csp_enc.c + +libwebpencode_la-picture_psnr_enc.lo: picture_psnr_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-picture_psnr_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-picture_psnr_enc.Tpo -c -o libwebpencode_la-picture_psnr_enc.lo `test -f 'picture_psnr_enc.c' || echo '$(srcdir)/'`picture_psnr_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-picture_psnr_enc.Tpo $(DEPDIR)/libwebpencode_la-picture_psnr_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='picture_psnr_enc.c' object='libwebpencode_la-picture_psnr_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-picture_psnr_enc.lo `test -f 'picture_psnr_enc.c' || echo '$(srcdir)/'`picture_psnr_enc.c + +libwebpencode_la-picture_rescale_enc.lo: picture_rescale_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-picture_rescale_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-picture_rescale_enc.Tpo -c -o libwebpencode_la-picture_rescale_enc.lo `test -f 'picture_rescale_enc.c' || echo '$(srcdir)/'`picture_rescale_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-picture_rescale_enc.Tpo $(DEPDIR)/libwebpencode_la-picture_rescale_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='picture_rescale_enc.c' object='libwebpencode_la-picture_rescale_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-picture_rescale_enc.lo `test -f 'picture_rescale_enc.c' || echo '$(srcdir)/'`picture_rescale_enc.c + +libwebpencode_la-picture_tools_enc.lo: picture_tools_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-picture_tools_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-picture_tools_enc.Tpo -c -o libwebpencode_la-picture_tools_enc.lo `test -f 'picture_tools_enc.c' || echo '$(srcdir)/'`picture_tools_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-picture_tools_enc.Tpo $(DEPDIR)/libwebpencode_la-picture_tools_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='picture_tools_enc.c' object='libwebpencode_la-picture_tools_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-picture_tools_enc.lo `test -f 'picture_tools_enc.c' || echo '$(srcdir)/'`picture_tools_enc.c + +libwebpencode_la-predictor_enc.lo: predictor_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-predictor_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-predictor_enc.Tpo -c -o libwebpencode_la-predictor_enc.lo `test -f 'predictor_enc.c' || echo '$(srcdir)/'`predictor_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-predictor_enc.Tpo $(DEPDIR)/libwebpencode_la-predictor_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='predictor_enc.c' object='libwebpencode_la-predictor_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-predictor_enc.lo `test -f 'predictor_enc.c' || echo '$(srcdir)/'`predictor_enc.c + +libwebpencode_la-quant_enc.lo: quant_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-quant_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-quant_enc.Tpo -c -o libwebpencode_la-quant_enc.lo `test -f 'quant_enc.c' || echo '$(srcdir)/'`quant_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-quant_enc.Tpo $(DEPDIR)/libwebpencode_la-quant_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='quant_enc.c' object='libwebpencode_la-quant_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-quant_enc.lo `test -f 'quant_enc.c' || echo '$(srcdir)/'`quant_enc.c + +libwebpencode_la-syntax_enc.lo: syntax_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-syntax_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-syntax_enc.Tpo -c -o libwebpencode_la-syntax_enc.lo `test -f 'syntax_enc.c' || echo '$(srcdir)/'`syntax_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-syntax_enc.Tpo $(DEPDIR)/libwebpencode_la-syntax_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='syntax_enc.c' object='libwebpencode_la-syntax_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-syntax_enc.lo `test -f 'syntax_enc.c' || echo '$(srcdir)/'`syntax_enc.c + +libwebpencode_la-token_enc.lo: token_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-token_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-token_enc.Tpo -c -o libwebpencode_la-token_enc.lo `test -f 'token_enc.c' || echo '$(srcdir)/'`token_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-token_enc.Tpo $(DEPDIR)/libwebpencode_la-token_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='token_enc.c' object='libwebpencode_la-token_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-token_enc.lo `test -f 'token_enc.c' || echo '$(srcdir)/'`token_enc.c + +libwebpencode_la-tree_enc.lo: tree_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-tree_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-tree_enc.Tpo -c -o libwebpencode_la-tree_enc.lo `test -f 'tree_enc.c' || echo '$(srcdir)/'`tree_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-tree_enc.Tpo $(DEPDIR)/libwebpencode_la-tree_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tree_enc.c' object='libwebpencode_la-tree_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-tree_enc.lo `test -f 'tree_enc.c' || echo '$(srcdir)/'`tree_enc.c + +libwebpencode_la-vp8l_enc.lo: vp8l_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-vp8l_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-vp8l_enc.Tpo -c -o libwebpencode_la-vp8l_enc.lo `test -f 'vp8l_enc.c' || echo '$(srcdir)/'`vp8l_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-vp8l_enc.Tpo $(DEPDIR)/libwebpencode_la-vp8l_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vp8l_enc.c' object='libwebpencode_la-vp8l_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-vp8l_enc.lo `test -f 'vp8l_enc.c' || echo '$(srcdir)/'`vp8l_enc.c + +libwebpencode_la-webp_enc.lo: webp_enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwebpencode_la-webp_enc.lo -MD -MP -MF $(DEPDIR)/libwebpencode_la-webp_enc.Tpo -c -o libwebpencode_la-webp_enc.lo `test -f 'webp_enc.c' || echo '$(srcdir)/'`webp_enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwebpencode_la-webp_enc.Tpo $(DEPDIR)/libwebpencode_la-webp_enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='webp_enc.c' object='libwebpencode_la-webp_enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwebpencode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwebpencode_la-webp_enc.lo `test -f 'webp_enc.c' || echo '$(srcdir)/'`webp_enc.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-libwebpencodeincludeHEADERS: $(libwebpencodeinclude_HEADERS) + @$(NORMAL_INSTALL) + @list='$(libwebpencodeinclude_HEADERS)'; test -n "$(libwebpencodeincludedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libwebpencodeincludedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libwebpencodeincludedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libwebpencodeincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(libwebpencodeincludedir)" || exit $$?; \ + done + +uninstall-libwebpencodeincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(libwebpencodeinclude_HEADERS)'; test -n "$(libwebpencodeincludedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libwebpencodeincludedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libwebpencodeincludedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-libwebpencodeincludeHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libwebpencodeincludeHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libwebpencodeincludeHEADERS \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-libwebpencodeincludeHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/external/libwebp-0.6.0/src/enc/alpha_enc.c b/external/libwebp-1.0.0/src/enc/alpha_enc.c similarity index 94% rename from external/libwebp-0.6.0/src/enc/alpha_enc.c rename to external/libwebp-1.0.0/src/enc/alpha_enc.c index 5a2c931f..dce9ca95 100644 --- a/external/libwebp-0.6.0/src/enc/alpha_enc.c +++ b/external/libwebp-1.0.0/src/enc/alpha_enc.c @@ -14,12 +14,12 @@ #include #include -#include "./vp8i_enc.h" -#include "../dsp/dsp.h" -#include "../utils/filters_utils.h" -#include "../utils/quant_levels_utils.h" -#include "../utils/utils.h" -#include "../webp/format_constants.h" +#include "src/enc/vp8i_enc.h" +#include "src/dsp/dsp.h" +#include "src/utils/filters_utils.h" +#include "src/utils/quant_levels_utils.h" +#include "src/utils/utils.h" +#include "src/webp/format_constants.h" // ----------------------------------------------------------------------------- // Encodes the given alpha data via specified compression method 'method'. @@ -44,11 +44,11 @@ // invalid quality or method, or // memory allocation for the compressed data fails. -#include "../enc/vp8li_enc.h" +#include "src/enc/vp8li_enc.h" static int EncodeLossless(const uint8_t* const data, int width, int height, int effort_level, // in [0..6] range - VP8LBitWriter* const bw, + int use_quality_100, VP8LBitWriter* const bw, WebPAuxStats* const stats) { int ok = 0; WebPConfig config; @@ -76,7 +76,10 @@ static int EncodeLossless(const uint8_t* const data, int width, int height, // Set a low default quality for encoding alpha. Ensure that Alpha quality at // lower methods (3 and below) is less than the threshold for triggering // costly 'BackwardReferencesTraceBackwards'. - config.quality = 8.f * effort_level; + // If the alpha quality is set to 100 and the method to 6, allow for a high + // lossless quality to trigger the cruncher. + config.quality = + (use_quality_100 && effort_level == 6) ? 100 : 8.f * effort_level; assert(config.quality >= 0 && config.quality <= 100.f); // TODO(urvang): Temporary fix to avoid generating images that trigger @@ -134,7 +137,7 @@ static int EncodeAlphaInternal(const uint8_t* const data, int width, int height, if (method != ALPHA_NO_COMPRESSION) { ok = VP8LBitWriterInit(&tmp_bw, data_size >> 3); ok = ok && EncodeLossless(alpha_src, width, height, effort_level, - &tmp_bw, &result->stats); + !reduce_levels, &tmp_bw, &result->stats); if (ok) { output = VP8LBitWriterFinish(&tmp_bw); output_size = VP8LBitWriterNumBytes(&tmp_bw); @@ -264,6 +267,7 @@ static int ApplyFiltersAndEncode(const uint8_t* alpha, int width, int height, reduce_levels, effort_level, NULL, &best); } if (ok) { +#if !defined(WEBP_DISABLE_STATS) if (stats != NULL) { stats->lossless_features = best.stats.lossless_features; stats->histogram_bits = best.stats.histogram_bits; @@ -274,6 +278,9 @@ static int ApplyFiltersAndEncode(const uint8_t* alpha, int width, int height, stats->lossless_hdr_size = best.stats.lossless_hdr_size; stats->lossless_data_size = best.stats.lossless_data_size; } +#else + (void)stats; +#endif *output_size = VP8BitWriterSize(&best.bw); *output = VP8BitWriterBuf(&best.bw); } else { @@ -339,10 +346,12 @@ static int EncodeAlpha(VP8Encoder* const enc, ok = ApplyFiltersAndEncode(quant_alpha, width, height, data_size, method, filter, reduce_levels, effort_level, output, output_size, pic->stats); +#if !defined(WEBP_DISABLE_STATS) if (pic->stats != NULL) { // need stats? pic->stats->coded_size += (int)(*output_size); enc->sse_[3] = sse; } +#endif } WebPSafeFree(quant_alpha); @@ -352,7 +361,8 @@ static int EncodeAlpha(VP8Encoder* const enc, //------------------------------------------------------------------------------ // Main calls -static int CompressAlphaJob(VP8Encoder* const enc, void* dummy) { +static int CompressAlphaJob(void* arg1, void* dummy) { + VP8Encoder* const enc = (VP8Encoder*)arg1; const WebPConfig* config = enc->config_; uint8_t* alpha_data = NULL; size_t alpha_size = 0; @@ -385,7 +395,7 @@ void VP8EncInitAlpha(VP8Encoder* const enc) { WebPGetWorkerInterface()->Init(worker); worker->data1 = enc; worker->data2 = NULL; - worker->hook = (WebPWorkerHook)CompressAlphaJob; + worker->hook = CompressAlphaJob; } } diff --git a/external/libwebp-0.6.0/src/enc/analysis_enc.c b/external/libwebp-1.0.0/src/enc/analysis_enc.c similarity index 98% rename from external/libwebp-0.6.0/src/enc/analysis_enc.c rename to external/libwebp-1.0.0/src/enc/analysis_enc.c index dce159b3..a47ff7d4 100644 --- a/external/libwebp-0.6.0/src/enc/analysis_enc.c +++ b/external/libwebp-1.0.0/src/enc/analysis_enc.c @@ -15,9 +15,9 @@ #include #include -#include "./vp8i_enc.h" -#include "./cost_enc.h" -#include "../utils/utils.h" +#include "src/enc/vp8i_enc.h" +#include "src/enc/cost_enc.h" +#include "src/utils/utils.h" #define MAX_ITERS_K_MEANS 6 @@ -434,7 +434,9 @@ typedef struct { } SegmentJob; // main work call -static int DoSegmentsJob(SegmentJob* const job, VP8EncIterator* const it) { +static int DoSegmentsJob(void* arg1, void* arg2) { + SegmentJob* const job = (SegmentJob*)arg1; + VP8EncIterator* const it = (VP8EncIterator*)arg2; int ok = 1; if (!VP8IteratorIsDone(it)) { uint8_t tmp[32 + WEBP_ALIGN_CST]; @@ -462,7 +464,7 @@ static void InitSegmentJob(VP8Encoder* const enc, SegmentJob* const job, WebPGetWorkerInterface()->Init(&job->worker); job->worker.data1 = job; job->worker.data2 = &job->it; - job->worker.hook = (WebPWorkerHook)DoSegmentsJob; + job->worker.hook = DoSegmentsJob; VP8IteratorInit(enc, &job->it); VP8IteratorSetRow(&job->it, start_row); VP8IteratorSetCountDown(&job->it, (end_row - start_row) * enc->mb_w_); diff --git a/external/libwebp-1.0.0/src/enc/backward_references_cost_enc.c b/external/libwebp-1.0.0/src/enc/backward_references_cost_enc.c new file mode 100644 index 00000000..7175496c --- /dev/null +++ b/external/libwebp-1.0.0/src/enc/backward_references_cost_enc.c @@ -0,0 +1,790 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// Improves a given set of backward references by analyzing its bit cost. +// The algorithm is similar to the Zopfli compression algorithm but tailored to +// images. +// +// Author: Vincent Rabaud (vrabaud@google.com) +// + +#include + +#include "src/enc/backward_references_enc.h" +#include "src/enc/histogram_enc.h" +#include "src/dsp/lossless_common.h" +#include "src/utils/color_cache_utils.h" +#include "src/utils/utils.h" + +#define VALUES_IN_BYTE 256 + +extern void VP8LClearBackwardRefs(VP8LBackwardRefs* const refs); +extern int VP8LDistanceToPlaneCode(int xsize, int dist); +extern void VP8LBackwardRefsCursorAdd(VP8LBackwardRefs* const refs, + const PixOrCopy v); + +typedef struct { + double alpha_[VALUES_IN_BYTE]; + double red_[VALUES_IN_BYTE]; + double blue_[VALUES_IN_BYTE]; + double distance_[NUM_DISTANCE_CODES]; + double* literal_; +} CostModel; + +static void ConvertPopulationCountTableToBitEstimates( + int num_symbols, const uint32_t population_counts[], double output[]) { + uint32_t sum = 0; + int nonzeros = 0; + int i; + for (i = 0; i < num_symbols; ++i) { + sum += population_counts[i]; + if (population_counts[i] > 0) { + ++nonzeros; + } + } + if (nonzeros <= 1) { + memset(output, 0, num_symbols * sizeof(*output)); + } else { + const double logsum = VP8LFastLog2(sum); + for (i = 0; i < num_symbols; ++i) { + output[i] = logsum - VP8LFastLog2(population_counts[i]); + } + } +} + +static int CostModelBuild(CostModel* const m, int xsize, int cache_bits, + const VP8LBackwardRefs* const refs) { + int ok = 0; + VP8LRefsCursor c = VP8LRefsCursorInit(refs); + VP8LHistogram* const histo = VP8LAllocateHistogram(cache_bits); + if (histo == NULL) goto Error; + + // The following code is similar to VP8LHistogramCreate but converts the + // distance to plane code. + VP8LHistogramInit(histo, cache_bits); + while (VP8LRefsCursorOk(&c)) { + VP8LHistogramAddSinglePixOrCopy(histo, c.cur_pos, VP8LDistanceToPlaneCode, + xsize); + VP8LRefsCursorNext(&c); + } + + ConvertPopulationCountTableToBitEstimates( + VP8LHistogramNumCodes(histo->palette_code_bits_), + histo->literal_, m->literal_); + ConvertPopulationCountTableToBitEstimates( + VALUES_IN_BYTE, histo->red_, m->red_); + ConvertPopulationCountTableToBitEstimates( + VALUES_IN_BYTE, histo->blue_, m->blue_); + ConvertPopulationCountTableToBitEstimates( + VALUES_IN_BYTE, histo->alpha_, m->alpha_); + ConvertPopulationCountTableToBitEstimates( + NUM_DISTANCE_CODES, histo->distance_, m->distance_); + ok = 1; + + Error: + VP8LFreeHistogram(histo); + return ok; +} + +static WEBP_INLINE double GetLiteralCost(const CostModel* const m, uint32_t v) { + return m->alpha_[v >> 24] + + m->red_[(v >> 16) & 0xff] + + m->literal_[(v >> 8) & 0xff] + + m->blue_[v & 0xff]; +} + +static WEBP_INLINE double GetCacheCost(const CostModel* const m, uint32_t idx) { + const int literal_idx = VALUES_IN_BYTE + NUM_LENGTH_CODES + idx; + return m->literal_[literal_idx]; +} + +static WEBP_INLINE double GetLengthCost(const CostModel* const m, + uint32_t length) { + int code, extra_bits; + VP8LPrefixEncodeBits(length, &code, &extra_bits); + return m->literal_[VALUES_IN_BYTE + code] + extra_bits; +} + +static WEBP_INLINE double GetDistanceCost(const CostModel* const m, + uint32_t distance) { + int code, extra_bits; + VP8LPrefixEncodeBits(distance, &code, &extra_bits); + return m->distance_[code] + extra_bits; +} + +static WEBP_INLINE void AddSingleLiteralWithCostModel( + const uint32_t* const argb, VP8LColorCache* const hashers, + const CostModel* const cost_model, int idx, int use_color_cache, + float prev_cost, float* const cost, uint16_t* const dist_array) { + double cost_val = prev_cost; + const uint32_t color = argb[idx]; + const int ix = use_color_cache ? VP8LColorCacheContains(hashers, color) : -1; + if (ix >= 0) { + // use_color_cache is true and hashers contains color + const double mul0 = 0.68; + cost_val += GetCacheCost(cost_model, ix) * mul0; + } else { + const double mul1 = 0.82; + if (use_color_cache) VP8LColorCacheInsert(hashers, color); + cost_val += GetLiteralCost(cost_model, color) * mul1; + } + if (cost[idx] > cost_val) { + cost[idx] = (float)cost_val; + dist_array[idx] = 1; // only one is inserted. + } +} + +// ----------------------------------------------------------------------------- +// CostManager and interval handling + +// Empirical value to avoid high memory consumption but good for performance. +#define COST_CACHE_INTERVAL_SIZE_MAX 500 + +// To perform backward reference every pixel at index index_ is considered and +// the cost for the MAX_LENGTH following pixels computed. Those following pixels +// at index index_ + k (k from 0 to MAX_LENGTH) have a cost of: +// cost_ = distance cost at index + GetLengthCost(cost_model, k) +// and the minimum value is kept. GetLengthCost(cost_model, k) is cached in an +// array of size MAX_LENGTH. +// Instead of performing MAX_LENGTH comparisons per pixel, we keep track of the +// minimal values using intervals of constant cost. +// An interval is defined by the index_ of the pixel that generated it and +// is only useful in a range of indices from start_ to end_ (exclusive), i.e. +// it contains the minimum value for pixels between start_ and end_. +// Intervals are stored in a linked list and ordered by start_. When a new +// interval has a better value, old intervals are split or removed. There are +// therefore no overlapping intervals. +typedef struct CostInterval CostInterval; +struct CostInterval { + float cost_; + int start_; + int end_; + int index_; + CostInterval* previous_; + CostInterval* next_; +}; + +// The GetLengthCost(cost_model, k) are cached in a CostCacheInterval. +typedef struct { + double cost_; + int start_; + int end_; // Exclusive. +} CostCacheInterval; + +// This structure is in charge of managing intervals and costs. +// It caches the different CostCacheInterval, caches the different +// GetLengthCost(cost_model, k) in cost_cache_ and the CostInterval's (whose +// count_ is limited by COST_CACHE_INTERVAL_SIZE_MAX). +#define COST_MANAGER_MAX_FREE_LIST 10 +typedef struct { + CostInterval* head_; + int count_; // The number of stored intervals. + CostCacheInterval* cache_intervals_; + size_t cache_intervals_size_; + double cost_cache_[MAX_LENGTH]; // Contains the GetLengthCost(cost_model, k). + float* costs_; + uint16_t* dist_array_; + // Most of the time, we only need few intervals -> use a free-list, to avoid + // fragmentation with small allocs in most common cases. + CostInterval intervals_[COST_MANAGER_MAX_FREE_LIST]; + CostInterval* free_intervals_; + // These are regularly malloc'd remains. This list can't grow larger than than + // size COST_CACHE_INTERVAL_SIZE_MAX - COST_MANAGER_MAX_FREE_LIST, note. + CostInterval* recycled_intervals_; +} CostManager; + +static void CostIntervalAddToFreeList(CostManager* const manager, + CostInterval* const interval) { + interval->next_ = manager->free_intervals_; + manager->free_intervals_ = interval; +} + +static int CostIntervalIsInFreeList(const CostManager* const manager, + const CostInterval* const interval) { + return (interval >= &manager->intervals_[0] && + interval <= &manager->intervals_[COST_MANAGER_MAX_FREE_LIST - 1]); +} + +static void CostManagerInitFreeList(CostManager* const manager) { + int i; + manager->free_intervals_ = NULL; + for (i = 0; i < COST_MANAGER_MAX_FREE_LIST; ++i) { + CostIntervalAddToFreeList(manager, &manager->intervals_[i]); + } +} + +static void DeleteIntervalList(CostManager* const manager, + const CostInterval* interval) { + while (interval != NULL) { + const CostInterval* const next = interval->next_; + if (!CostIntervalIsInFreeList(manager, interval)) { + WebPSafeFree((void*)interval); + } // else: do nothing + interval = next; + } +} + +static void CostManagerClear(CostManager* const manager) { + if (manager == NULL) return; + + WebPSafeFree(manager->costs_); + WebPSafeFree(manager->cache_intervals_); + + // Clear the interval lists. + DeleteIntervalList(manager, manager->head_); + manager->head_ = NULL; + DeleteIntervalList(manager, manager->recycled_intervals_); + manager->recycled_intervals_ = NULL; + + // Reset pointers, count_ and cache_intervals_size_. + memset(manager, 0, sizeof(*manager)); + CostManagerInitFreeList(manager); +} + +static int CostManagerInit(CostManager* const manager, + uint16_t* const dist_array, int pix_count, + const CostModel* const cost_model) { + int i; + const int cost_cache_size = (pix_count > MAX_LENGTH) ? MAX_LENGTH : pix_count; + + manager->costs_ = NULL; + manager->cache_intervals_ = NULL; + manager->head_ = NULL; + manager->recycled_intervals_ = NULL; + manager->count_ = 0; + manager->dist_array_ = dist_array; + CostManagerInitFreeList(manager); + + // Fill in the cost_cache_. + manager->cache_intervals_size_ = 1; + manager->cost_cache_[0] = GetLengthCost(cost_model, 0); + for (i = 1; i < cost_cache_size; ++i) { + manager->cost_cache_[i] = GetLengthCost(cost_model, i); + // Get the number of bound intervals. + if (manager->cost_cache_[i] != manager->cost_cache_[i - 1]) { + ++manager->cache_intervals_size_; + } + } + + // With the current cost model, we usually have below 20 intervals. + // The worst case scenario with a cost model would be if every length has a + // different cost, hence MAX_LENGTH but that is impossible with the current + // implementation that spirals around a pixel. + assert(manager->cache_intervals_size_ <= MAX_LENGTH); + manager->cache_intervals_ = (CostCacheInterval*)WebPSafeMalloc( + manager->cache_intervals_size_, sizeof(*manager->cache_intervals_)); + if (manager->cache_intervals_ == NULL) { + CostManagerClear(manager); + return 0; + } + + // Fill in the cache_intervals_. + { + CostCacheInterval* cur = manager->cache_intervals_; + + // Consecutive values in cost_cache_ are compared and if a big enough + // difference is found, a new interval is created and bounded. + cur->start_ = 0; + cur->end_ = 1; + cur->cost_ = manager->cost_cache_[0]; + for (i = 1; i < cost_cache_size; ++i) { + const double cost_val = manager->cost_cache_[i]; + if (cost_val != cur->cost_) { + ++cur; + // Initialize an interval. + cur->start_ = i; + cur->cost_ = cost_val; + } + cur->end_ = i + 1; + } + } + + manager->costs_ = (float*)WebPSafeMalloc(pix_count, sizeof(*manager->costs_)); + if (manager->costs_ == NULL) { + CostManagerClear(manager); + return 0; + } + // Set the initial costs_ high for every pixel as we will keep the minimum. + for (i = 0; i < pix_count; ++i) manager->costs_[i] = 1e38f; + + return 1; +} + +// Given the cost and the position that define an interval, update the cost at +// pixel 'i' if it is smaller than the previously computed value. +static WEBP_INLINE void UpdateCost(CostManager* const manager, int i, + int position, float cost) { + const int k = i - position; + assert(k >= 0 && k < MAX_LENGTH); + + if (manager->costs_[i] > cost) { + manager->costs_[i] = cost; + manager->dist_array_[i] = k + 1; + } +} + +// Given the cost and the position that define an interval, update the cost for +// all the pixels between 'start' and 'end' excluded. +static WEBP_INLINE void UpdateCostPerInterval(CostManager* const manager, + int start, int end, int position, + float cost) { + int i; + for (i = start; i < end; ++i) UpdateCost(manager, i, position, cost); +} + +// Given two intervals, make 'prev' be the previous one of 'next' in 'manager'. +static WEBP_INLINE void ConnectIntervals(CostManager* const manager, + CostInterval* const prev, + CostInterval* const next) { + if (prev != NULL) { + prev->next_ = next; + } else { + manager->head_ = next; + } + + if (next != NULL) next->previous_ = prev; +} + +// Pop an interval in the manager. +static WEBP_INLINE void PopInterval(CostManager* const manager, + CostInterval* const interval) { + if (interval == NULL) return; + + ConnectIntervals(manager, interval->previous_, interval->next_); + if (CostIntervalIsInFreeList(manager, interval)) { + CostIntervalAddToFreeList(manager, interval); + } else { // recycle regularly malloc'd intervals too + interval->next_ = manager->recycled_intervals_; + manager->recycled_intervals_ = interval; + } + --manager->count_; + assert(manager->count_ >= 0); +} + +// Update the cost at index i by going over all the stored intervals that +// overlap with i. +// If 'do_clean_intervals' is set to something different than 0, intervals that +// end before 'i' will be popped. +static WEBP_INLINE void UpdateCostAtIndex(CostManager* const manager, int i, + int do_clean_intervals) { + CostInterval* current = manager->head_; + + while (current != NULL && current->start_ <= i) { + CostInterval* const next = current->next_; + if (current->end_ <= i) { + if (do_clean_intervals) { + // We have an outdated interval, remove it. + PopInterval(manager, current); + } + } else { + UpdateCost(manager, i, current->index_, current->cost_); + } + current = next; + } +} + +// Given a current orphan interval and its previous interval, before +// it was orphaned (which can be NULL), set it at the right place in the list +// of intervals using the start_ ordering and the previous interval as a hint. +static WEBP_INLINE void PositionOrphanInterval(CostManager* const manager, + CostInterval* const current, + CostInterval* previous) { + assert(current != NULL); + + if (previous == NULL) previous = manager->head_; + while (previous != NULL && current->start_ < previous->start_) { + previous = previous->previous_; + } + while (previous != NULL && previous->next_ != NULL && + previous->next_->start_ < current->start_) { + previous = previous->next_; + } + + if (previous != NULL) { + ConnectIntervals(manager, current, previous->next_); + } else { + ConnectIntervals(manager, current, manager->head_); + } + ConnectIntervals(manager, previous, current); +} + +// Insert an interval in the list contained in the manager by starting at +// interval_in as a hint. The intervals are sorted by start_ value. +static WEBP_INLINE void InsertInterval(CostManager* const manager, + CostInterval* const interval_in, + float cost, int position, int start, + int end) { + CostInterval* interval_new; + + if (start >= end) return; + if (manager->count_ >= COST_CACHE_INTERVAL_SIZE_MAX) { + // Serialize the interval if we cannot store it. + UpdateCostPerInterval(manager, start, end, position, cost); + return; + } + if (manager->free_intervals_ != NULL) { + interval_new = manager->free_intervals_; + manager->free_intervals_ = interval_new->next_; + } else if (manager->recycled_intervals_ != NULL) { + interval_new = manager->recycled_intervals_; + manager->recycled_intervals_ = interval_new->next_; + } else { // malloc for good + interval_new = (CostInterval*)WebPSafeMalloc(1, sizeof(*interval_new)); + if (interval_new == NULL) { + // Write down the interval if we cannot create it. + UpdateCostPerInterval(manager, start, end, position, cost); + return; + } + } + + interval_new->cost_ = cost; + interval_new->index_ = position; + interval_new->start_ = start; + interval_new->end_ = end; + PositionOrphanInterval(manager, interval_new, interval_in); + + ++manager->count_; +} + +// Given a new cost interval defined by its start at position, its length value +// and distance_cost, add its contributions to the previous intervals and costs. +// If handling the interval or one of its subintervals becomes to heavy, its +// contribution is added to the costs right away. +static WEBP_INLINE void PushInterval(CostManager* const manager, + double distance_cost, int position, + int len) { + size_t i; + CostInterval* interval = manager->head_; + CostInterval* interval_next; + const CostCacheInterval* const cost_cache_intervals = + manager->cache_intervals_; + // If the interval is small enough, no need to deal with the heavy + // interval logic, just serialize it right away. This constant is empirical. + const int kSkipDistance = 10; + + if (len < kSkipDistance) { + int j; + for (j = position; j < position + len; ++j) { + const int k = j - position; + float cost_tmp; + assert(k >= 0 && k < MAX_LENGTH); + cost_tmp = (float)(distance_cost + manager->cost_cache_[k]); + + if (manager->costs_[j] > cost_tmp) { + manager->costs_[j] = cost_tmp; + manager->dist_array_[j] = k + 1; + } + } + return; + } + + for (i = 0; i < manager->cache_intervals_size_ && + cost_cache_intervals[i].start_ < len; + ++i) { + // Define the intersection of the ith interval with the new one. + int start = position + cost_cache_intervals[i].start_; + const int end = position + (cost_cache_intervals[i].end_ > len + ? len + : cost_cache_intervals[i].end_); + const float cost = (float)(distance_cost + cost_cache_intervals[i].cost_); + + for (; interval != NULL && interval->start_ < end; + interval = interval_next) { + interval_next = interval->next_; + + // Make sure we have some overlap + if (start >= interval->end_) continue; + + if (cost >= interval->cost_) { + // When intervals are represented, the lower, the better. + // [**********************************************************[ + // start end + // [----------------------------------[ + // interval->start_ interval->end_ + // If we are worse than what we already have, add whatever we have so + // far up to interval. + const int start_new = interval->end_; + InsertInterval(manager, interval, cost, position, start, + interval->start_); + start = start_new; + if (start >= end) break; + continue; + } + + if (start <= interval->start_) { + if (interval->end_ <= end) { + // [----------------------------------[ + // interval->start_ interval->end_ + // [**************************************************************[ + // start end + // We can safely remove the old interval as it is fully included. + PopInterval(manager, interval); + } else { + // [------------------------------------[ + // interval->start_ interval->end_ + // [*****************************[ + // start end + interval->start_ = end; + break; + } + } else { + if (end < interval->end_) { + // [--------------------------------------------------------------[ + // interval->start_ interval->end_ + // [*****************************[ + // start end + // We have to split the old interval as it fully contains the new one. + const int end_original = interval->end_; + interval->end_ = start; + InsertInterval(manager, interval, interval->cost_, interval->index_, + end, end_original); + interval = interval->next_; + break; + } else { + // [------------------------------------[ + // interval->start_ interval->end_ + // [*****************************[ + // start end + interval->end_ = start; + } + } + } + // Insert the remaining interval from start to end. + InsertInterval(manager, interval, cost, position, start, end); + } +} + +static int BackwardReferencesHashChainDistanceOnly( + int xsize, int ysize, const uint32_t* const argb, int cache_bits, + const VP8LHashChain* const hash_chain, const VP8LBackwardRefs* const refs, + uint16_t* const dist_array) { + int i; + int ok = 0; + int cc_init = 0; + const int pix_count = xsize * ysize; + const int use_color_cache = (cache_bits > 0); + const size_t literal_array_size = + sizeof(double) * (NUM_LITERAL_CODES + NUM_LENGTH_CODES + + ((cache_bits > 0) ? (1 << cache_bits) : 0)); + const size_t cost_model_size = sizeof(CostModel) + literal_array_size; + CostModel* const cost_model = + (CostModel*)WebPSafeCalloc(1ULL, cost_model_size); + VP8LColorCache hashers; + CostManager* cost_manager = + (CostManager*)WebPSafeMalloc(1ULL, sizeof(*cost_manager)); + int offset_prev = -1, len_prev = -1; + double offset_cost = -1; + int first_offset_is_constant = -1; // initialized with 'impossible' value + int reach = 0; + + if (cost_model == NULL || cost_manager == NULL) goto Error; + + cost_model->literal_ = (double*)(cost_model + 1); + if (use_color_cache) { + cc_init = VP8LColorCacheInit(&hashers, cache_bits); + if (!cc_init) goto Error; + } + + if (!CostModelBuild(cost_model, xsize, cache_bits, refs)) { + goto Error; + } + + if (!CostManagerInit(cost_manager, dist_array, pix_count, cost_model)) { + goto Error; + } + + // We loop one pixel at a time, but store all currently best points to + // non-processed locations from this point. + dist_array[0] = 0; + // Add first pixel as literal. + AddSingleLiteralWithCostModel(argb, &hashers, cost_model, 0, use_color_cache, + 0.f, cost_manager->costs_, dist_array); + + for (i = 1; i < pix_count; ++i) { + const float prev_cost = cost_manager->costs_[i - 1]; + int offset, len; + VP8LHashChainFindCopy(hash_chain, i, &offset, &len); + + // Try adding the pixel as a literal. + AddSingleLiteralWithCostModel(argb, &hashers, cost_model, i, + use_color_cache, prev_cost, + cost_manager->costs_, dist_array); + + // If we are dealing with a non-literal. + if (len >= 2) { + if (offset != offset_prev) { + const int code = VP8LDistanceToPlaneCode(xsize, offset); + offset_cost = GetDistanceCost(cost_model, code); + first_offset_is_constant = 1; + PushInterval(cost_manager, prev_cost + offset_cost, i, len); + } else { + assert(offset_cost >= 0); + assert(len_prev >= 0); + assert(first_offset_is_constant == 0 || first_offset_is_constant == 1); + // Instead of considering all contributions from a pixel i by calling: + // PushInterval(cost_manager, prev_cost + offset_cost, i, len); + // we optimize these contributions in case offset_cost stays the same + // for consecutive pixels. This describes a set of pixels similar to a + // previous set (e.g. constant color regions). + if (first_offset_is_constant) { + reach = i - 1 + len_prev - 1; + first_offset_is_constant = 0; + } + + if (i + len - 1 > reach) { + // We can only be go further with the same offset if the previous + // length was maxed, hence len_prev == len == MAX_LENGTH. + // TODO(vrabaud), bump i to the end right away (insert cache and + // update cost). + // TODO(vrabaud), check if one of the points in between does not have + // a lower cost. + // Already consider the pixel at "reach" to add intervals that are + // better than whatever we add. + int offset_j, len_j = 0; + int j; + assert(len == MAX_LENGTH || len == pix_count - i); + // Figure out the last consecutive pixel within [i, reach + 1] with + // the same offset. + for (j = i; j <= reach; ++j) { + VP8LHashChainFindCopy(hash_chain, j + 1, &offset_j, &len_j); + if (offset_j != offset) { + VP8LHashChainFindCopy(hash_chain, j, &offset_j, &len_j); + break; + } + } + // Update the cost at j - 1 and j. + UpdateCostAtIndex(cost_manager, j - 1, 0); + UpdateCostAtIndex(cost_manager, j, 0); + + PushInterval(cost_manager, cost_manager->costs_[j - 1] + offset_cost, + j, len_j); + reach = j + len_j - 1; + } + } + } + + UpdateCostAtIndex(cost_manager, i, 1); + offset_prev = offset; + len_prev = len; + } + + ok = !refs->error_; +Error: + if (cc_init) VP8LColorCacheClear(&hashers); + CostManagerClear(cost_manager); + WebPSafeFree(cost_model); + WebPSafeFree(cost_manager); + return ok; +} + +// We pack the path at the end of *dist_array and return +// a pointer to this part of the array. Example: +// dist_array = [1x2xx3x2] => packed [1x2x1232], chosen_path = [1232] +static void TraceBackwards(uint16_t* const dist_array, + int dist_array_size, + uint16_t** const chosen_path, + int* const chosen_path_size) { + uint16_t* path = dist_array + dist_array_size; + uint16_t* cur = dist_array + dist_array_size - 1; + while (cur >= dist_array) { + const int k = *cur; + --path; + *path = k; + cur -= k; + } + *chosen_path = path; + *chosen_path_size = (int)(dist_array + dist_array_size - path); +} + +static int BackwardReferencesHashChainFollowChosenPath( + const uint32_t* const argb, int cache_bits, + const uint16_t* const chosen_path, int chosen_path_size, + const VP8LHashChain* const hash_chain, VP8LBackwardRefs* const refs) { + const int use_color_cache = (cache_bits > 0); + int ix; + int i = 0; + int ok = 0; + int cc_init = 0; + VP8LColorCache hashers; + + if (use_color_cache) { + cc_init = VP8LColorCacheInit(&hashers, cache_bits); + if (!cc_init) goto Error; + } + + VP8LClearBackwardRefs(refs); + for (ix = 0; ix < chosen_path_size; ++ix) { + const int len = chosen_path[ix]; + if (len != 1) { + int k; + const int offset = VP8LHashChainFindOffset(hash_chain, i); + VP8LBackwardRefsCursorAdd(refs, PixOrCopyCreateCopy(offset, len)); + if (use_color_cache) { + for (k = 0; k < len; ++k) { + VP8LColorCacheInsert(&hashers, argb[i + k]); + } + } + i += len; + } else { + PixOrCopy v; + const int idx = + use_color_cache ? VP8LColorCacheContains(&hashers, argb[i]) : -1; + if (idx >= 0) { + // use_color_cache is true and hashers contains argb[i] + // push pixel as a color cache index + v = PixOrCopyCreateCacheIdx(idx); + } else { + if (use_color_cache) VP8LColorCacheInsert(&hashers, argb[i]); + v = PixOrCopyCreateLiteral(argb[i]); + } + VP8LBackwardRefsCursorAdd(refs, v); + ++i; + } + } + ok = !refs->error_; + Error: + if (cc_init) VP8LColorCacheClear(&hashers); + return ok; +} + +// Returns 1 on success. +extern int VP8LBackwardReferencesTraceBackwards( + int xsize, int ysize, const uint32_t* const argb, int cache_bits, + const VP8LHashChain* const hash_chain, + const VP8LBackwardRefs* const refs_src, VP8LBackwardRefs* const refs_dst); +int VP8LBackwardReferencesTraceBackwards(int xsize, int ysize, + const uint32_t* const argb, + int cache_bits, + const VP8LHashChain* const hash_chain, + const VP8LBackwardRefs* const refs_src, + VP8LBackwardRefs* const refs_dst) { + int ok = 0; + const int dist_array_size = xsize * ysize; + uint16_t* chosen_path = NULL; + int chosen_path_size = 0; + uint16_t* dist_array = + (uint16_t*)WebPSafeMalloc(dist_array_size, sizeof(*dist_array)); + + if (dist_array == NULL) goto Error; + + if (!BackwardReferencesHashChainDistanceOnly( + xsize, ysize, argb, cache_bits, hash_chain, refs_src, dist_array)) { + goto Error; + } + TraceBackwards(dist_array, dist_array_size, &chosen_path, &chosen_path_size); + if (!BackwardReferencesHashChainFollowChosenPath( + argb, cache_bits, chosen_path, chosen_path_size, hash_chain, + refs_dst)) { + goto Error; + } + ok = 1; + Error: + WebPSafeFree(dist_array); + return ok; +} diff --git a/external/libwebp-1.0.0/src/enc/backward_references_enc.c b/external/libwebp-1.0.0/src/enc/backward_references_enc.c new file mode 100644 index 00000000..39230188 --- /dev/null +++ b/external/libwebp-1.0.0/src/enc/backward_references_enc.c @@ -0,0 +1,943 @@ +// Copyright 2012 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// Author: Jyrki Alakuijala (jyrki@google.com) +// + +#include +#include + +#include "src/enc/backward_references_enc.h" +#include "src/enc/histogram_enc.h" +#include "src/dsp/lossless.h" +#include "src/dsp/lossless_common.h" +#include "src/dsp/dsp.h" +#include "src/utils/color_cache_utils.h" +#include "src/utils/utils.h" + +#define MIN_BLOCK_SIZE 256 // minimum block size for backward references + +#define MAX_ENTROPY (1e30f) + +// 1M window (4M bytes) minus 120 special codes for short distances. +#define WINDOW_SIZE ((1 << WINDOW_SIZE_BITS) - 120) + +// Minimum number of pixels for which it is cheaper to encode a +// distance + length instead of each pixel as a literal. +#define MIN_LENGTH 4 + +// ----------------------------------------------------------------------------- + +static const uint8_t plane_to_code_lut[128] = { + 96, 73, 55, 39, 23, 13, 5, 1, 255, 255, 255, 255, 255, 255, 255, 255, + 101, 78, 58, 42, 26, 16, 8, 2, 0, 3, 9, 17, 27, 43, 59, 79, + 102, 86, 62, 46, 32, 20, 10, 6, 4, 7, 11, 21, 33, 47, 63, 87, + 105, 90, 70, 52, 37, 28, 18, 14, 12, 15, 19, 29, 38, 53, 71, 91, + 110, 99, 82, 66, 48, 35, 30, 24, 22, 25, 31, 36, 49, 67, 83, 100, + 115, 108, 94, 76, 64, 50, 44, 40, 34, 41, 45, 51, 65, 77, 95, 109, + 118, 113, 103, 92, 80, 68, 60, 56, 54, 57, 61, 69, 81, 93, 104, 114, + 119, 116, 111, 106, 97, 88, 84, 74, 72, 75, 85, 89, 98, 107, 112, 117 +}; + +extern int VP8LDistanceToPlaneCode(int xsize, int dist); +int VP8LDistanceToPlaneCode(int xsize, int dist) { + const int yoffset = dist / xsize; + const int xoffset = dist - yoffset * xsize; + if (xoffset <= 8 && yoffset < 8) { + return plane_to_code_lut[yoffset * 16 + 8 - xoffset] + 1; + } else if (xoffset > xsize - 8 && yoffset < 7) { + return plane_to_code_lut[(yoffset + 1) * 16 + 8 + (xsize - xoffset)] + 1; + } + return dist + 120; +} + +// Returns the exact index where array1 and array2 are different. For an index +// inferior or equal to best_len_match, the return value just has to be strictly +// inferior to best_len_match. The current behavior is to return 0 if this index +// is best_len_match, and the index itself otherwise. +// If no two elements are the same, it returns max_limit. +static WEBP_INLINE int FindMatchLength(const uint32_t* const array1, + const uint32_t* const array2, + int best_len_match, int max_limit) { + // Before 'expensive' linear match, check if the two arrays match at the + // current best length index. + if (array1[best_len_match] != array2[best_len_match]) return 0; + + return VP8LVectorMismatch(array1, array2, max_limit); +} + +// ----------------------------------------------------------------------------- +// VP8LBackwardRefs + +struct PixOrCopyBlock { + PixOrCopyBlock* next_; // next block (or NULL) + PixOrCopy* start_; // data start + int size_; // currently used size +}; + +extern void VP8LClearBackwardRefs(VP8LBackwardRefs* const refs); +void VP8LClearBackwardRefs(VP8LBackwardRefs* const refs) { + assert(refs != NULL); + if (refs->tail_ != NULL) { + *refs->tail_ = refs->free_blocks_; // recycle all blocks at once + } + refs->free_blocks_ = refs->refs_; + refs->tail_ = &refs->refs_; + refs->last_block_ = NULL; + refs->refs_ = NULL; +} + +void VP8LBackwardRefsClear(VP8LBackwardRefs* const refs) { + assert(refs != NULL); + VP8LClearBackwardRefs(refs); + while (refs->free_blocks_ != NULL) { + PixOrCopyBlock* const next = refs->free_blocks_->next_; + WebPSafeFree(refs->free_blocks_); + refs->free_blocks_ = next; + } +} + +void VP8LBackwardRefsInit(VP8LBackwardRefs* const refs, int block_size) { + assert(refs != NULL); + memset(refs, 0, sizeof(*refs)); + refs->tail_ = &refs->refs_; + refs->block_size_ = + (block_size < MIN_BLOCK_SIZE) ? MIN_BLOCK_SIZE : block_size; +} + +VP8LRefsCursor VP8LRefsCursorInit(const VP8LBackwardRefs* const refs) { + VP8LRefsCursor c; + c.cur_block_ = refs->refs_; + if (refs->refs_ != NULL) { + c.cur_pos = c.cur_block_->start_; + c.last_pos_ = c.cur_pos + c.cur_block_->size_; + } else { + c.cur_pos = NULL; + c.last_pos_ = NULL; + } + return c; +} + +void VP8LRefsCursorNextBlock(VP8LRefsCursor* const c) { + PixOrCopyBlock* const b = c->cur_block_->next_; + c->cur_pos = (b == NULL) ? NULL : b->start_; + c->last_pos_ = (b == NULL) ? NULL : b->start_ + b->size_; + c->cur_block_ = b; +} + +// Create a new block, either from the free list or allocated +static PixOrCopyBlock* BackwardRefsNewBlock(VP8LBackwardRefs* const refs) { + PixOrCopyBlock* b = refs->free_blocks_; + if (b == NULL) { // allocate new memory chunk + const size_t total_size = + sizeof(*b) + refs->block_size_ * sizeof(*b->start_); + b = (PixOrCopyBlock*)WebPSafeMalloc(1ULL, total_size); + if (b == NULL) { + refs->error_ |= 1; + return NULL; + } + b->start_ = (PixOrCopy*)((uint8_t*)b + sizeof(*b)); // not always aligned + } else { // recycle from free-list + refs->free_blocks_ = b->next_; + } + *refs->tail_ = b; + refs->tail_ = &b->next_; + refs->last_block_ = b; + b->next_ = NULL; + b->size_ = 0; + return b; +} + +extern void VP8LBackwardRefsCursorAdd(VP8LBackwardRefs* const refs, + const PixOrCopy v); +void VP8LBackwardRefsCursorAdd(VP8LBackwardRefs* const refs, + const PixOrCopy v) { + PixOrCopyBlock* b = refs->last_block_; + if (b == NULL || b->size_ == refs->block_size_) { + b = BackwardRefsNewBlock(refs); + if (b == NULL) return; // refs->error_ is set + } + b->start_[b->size_++] = v; +} + +// ----------------------------------------------------------------------------- +// Hash chains + +int VP8LHashChainInit(VP8LHashChain* const p, int size) { + assert(p->size_ == 0); + assert(p->offset_length_ == NULL); + assert(size > 0); + p->offset_length_ = + (uint32_t*)WebPSafeMalloc(size, sizeof(*p->offset_length_)); + if (p->offset_length_ == NULL) return 0; + p->size_ = size; + + return 1; +} + +void VP8LHashChainClear(VP8LHashChain* const p) { + assert(p != NULL); + WebPSafeFree(p->offset_length_); + + p->size_ = 0; + p->offset_length_ = NULL; +} + +// ----------------------------------------------------------------------------- + +#define HASH_MULTIPLIER_HI (0xc6a4a793ULL) +#define HASH_MULTIPLIER_LO (0x5bd1e996ULL) + +static WEBP_INLINE uint32_t GetPixPairHash64(const uint32_t* const argb) { + uint32_t key; + key = (argb[1] * HASH_MULTIPLIER_HI) & 0xffffffffu; + key += (argb[0] * HASH_MULTIPLIER_LO) & 0xffffffffu; + key = key >> (32 - HASH_BITS); + return key; +} + +// Returns the maximum number of hash chain lookups to do for a +// given compression quality. Return value in range [8, 86]. +static int GetMaxItersForQuality(int quality) { + return 8 + (quality * quality) / 128; +} + +static int GetWindowSizeForHashChain(int quality, int xsize) { + const int max_window_size = (quality > 75) ? WINDOW_SIZE + : (quality > 50) ? (xsize << 8) + : (quality > 25) ? (xsize << 6) + : (xsize << 4); + assert(xsize > 0); + return (max_window_size > WINDOW_SIZE) ? WINDOW_SIZE : max_window_size; +} + +static WEBP_INLINE int MaxFindCopyLength(int len) { + return (len < MAX_LENGTH) ? len : MAX_LENGTH; +} + +int VP8LHashChainFill(VP8LHashChain* const p, int quality, + const uint32_t* const argb, int xsize, int ysize, + int low_effort) { + const int size = xsize * ysize; + const int iter_max = GetMaxItersForQuality(quality); + const uint32_t window_size = GetWindowSizeForHashChain(quality, xsize); + int pos; + int argb_comp; + uint32_t base_position; + int32_t* hash_to_first_index; + // Temporarily use the p->offset_length_ as a hash chain. + int32_t* chain = (int32_t*)p->offset_length_; + assert(size > 0); + assert(p->size_ != 0); + assert(p->offset_length_ != NULL); + + if (size <= 2) { + p->offset_length_[0] = p->offset_length_[size - 1] = 0; + return 1; + } + + hash_to_first_index = + (int32_t*)WebPSafeMalloc(HASH_SIZE, sizeof(*hash_to_first_index)); + if (hash_to_first_index == NULL) return 0; + + // Set the int32_t array to -1. + memset(hash_to_first_index, 0xff, HASH_SIZE * sizeof(*hash_to_first_index)); + // Fill the chain linking pixels with the same hash. + argb_comp = (argb[0] == argb[1]); + for (pos = 0; pos < size - 2;) { + uint32_t hash_code; + const int argb_comp_next = (argb[pos + 1] == argb[pos + 2]); + if (argb_comp && argb_comp_next) { + // Consecutive pixels with the same color will share the same hash. + // We therefore use a different hash: the color and its repetition + // length. + uint32_t tmp[2]; + uint32_t len = 1; + tmp[0] = argb[pos]; + // Figure out how far the pixels are the same. + // The last pixel has a different 64 bit hash, as its next pixel does + // not have the same color, so we just need to get to the last pixel equal + // to its follower. + while (pos + (int)len + 2 < size && argb[pos + len + 2] == argb[pos]) { + ++len; + } + if (len > MAX_LENGTH) { + // Skip the pixels that match for distance=1 and length>MAX_LENGTH + // because they are linked to their predecessor and we automatically + // check that in the main for loop below. Skipping means setting no + // predecessor in the chain, hence -1. + memset(chain + pos, 0xff, (len - MAX_LENGTH) * sizeof(*chain)); + pos += len - MAX_LENGTH; + len = MAX_LENGTH; + } + // Process the rest of the hash chain. + while (len) { + tmp[1] = len--; + hash_code = GetPixPairHash64(tmp); + chain[pos] = hash_to_first_index[hash_code]; + hash_to_first_index[hash_code] = pos++; + } + argb_comp = 0; + } else { + // Just move one pixel forward. + hash_code = GetPixPairHash64(argb + pos); + chain[pos] = hash_to_first_index[hash_code]; + hash_to_first_index[hash_code] = pos++; + argb_comp = argb_comp_next; + } + } + // Process the penultimate pixel. + chain[pos] = hash_to_first_index[GetPixPairHash64(argb + pos)]; + + WebPSafeFree(hash_to_first_index); + + // Find the best match interval at each pixel, defined by an offset to the + // pixel and a length. The right-most pixel cannot match anything to the right + // (hence a best length of 0) and the left-most pixel nothing to the left + // (hence an offset of 0). + assert(size > 2); + p->offset_length_[0] = p->offset_length_[size - 1] = 0; + for (base_position = size - 2; base_position > 0;) { + const int max_len = MaxFindCopyLength(size - 1 - base_position); + const uint32_t* const argb_start = argb + base_position; + int iter = iter_max; + int best_length = 0; + uint32_t best_distance = 0; + uint32_t best_argb; + const int min_pos = + (base_position > window_size) ? base_position - window_size : 0; + const int length_max = (max_len < 256) ? max_len : 256; + uint32_t max_base_position; + + pos = chain[base_position]; + if (!low_effort) { + int curr_length; + // Heuristic: use the comparison with the above line as an initialization. + if (base_position >= (uint32_t)xsize) { + curr_length = FindMatchLength(argb_start - xsize, argb_start, + best_length, max_len); + if (curr_length > best_length) { + best_length = curr_length; + best_distance = xsize; + } + --iter; + } + // Heuristic: compare to the previous pixel. + curr_length = + FindMatchLength(argb_start - 1, argb_start, best_length, max_len); + if (curr_length > best_length) { + best_length = curr_length; + best_distance = 1; + } + --iter; + // Skip the for loop if we already have the maximum. + if (best_length == MAX_LENGTH) pos = min_pos - 1; + } + best_argb = argb_start[best_length]; + + for (; pos >= min_pos && --iter; pos = chain[pos]) { + int curr_length; + assert(base_position > (uint32_t)pos); + + if (argb[pos + best_length] != best_argb) continue; + + curr_length = VP8LVectorMismatch(argb + pos, argb_start, max_len); + if (best_length < curr_length) { + best_length = curr_length; + best_distance = base_position - pos; + best_argb = argb_start[best_length]; + // Stop if we have reached a good enough length. + if (best_length >= length_max) break; + } + } + // We have the best match but in case the two intervals continue matching + // to the left, we have the best matches for the left-extended pixels. + max_base_position = base_position; + while (1) { + assert(best_length <= MAX_LENGTH); + assert(best_distance <= WINDOW_SIZE); + p->offset_length_[base_position] = + (best_distance << MAX_LENGTH_BITS) | (uint32_t)best_length; + --base_position; + // Stop if we don't have a match or if we are out of bounds. + if (best_distance == 0 || base_position == 0) break; + // Stop if we cannot extend the matching intervals to the left. + if (base_position < best_distance || + argb[base_position - best_distance] != argb[base_position]) { + break; + } + // Stop if we are matching at its limit because there could be a closer + // matching interval with the same maximum length. Then again, if the + // matching interval is as close as possible (best_distance == 1), we will + // never find anything better so let's continue. + if (best_length == MAX_LENGTH && best_distance != 1 && + base_position + MAX_LENGTH < max_base_position) { + break; + } + if (best_length < MAX_LENGTH) { + ++best_length; + max_base_position = base_position; + } + } + } + return 1; +} + +static WEBP_INLINE void AddSingleLiteral(uint32_t pixel, int use_color_cache, + VP8LColorCache* const hashers, + VP8LBackwardRefs* const refs) { + PixOrCopy v; + if (use_color_cache) { + const uint32_t key = VP8LColorCacheGetIndex(hashers, pixel); + if (VP8LColorCacheLookup(hashers, key) == pixel) { + v = PixOrCopyCreateCacheIdx(key); + } else { + v = PixOrCopyCreateLiteral(pixel); + VP8LColorCacheSet(hashers, key, pixel); + } + } else { + v = PixOrCopyCreateLiteral(pixel); + } + VP8LBackwardRefsCursorAdd(refs, v); +} + +static int BackwardReferencesRle(int xsize, int ysize, + const uint32_t* const argb, + int cache_bits, VP8LBackwardRefs* const refs) { + const int pix_count = xsize * ysize; + int i, k; + const int use_color_cache = (cache_bits > 0); + VP8LColorCache hashers; + + if (use_color_cache && !VP8LColorCacheInit(&hashers, cache_bits)) { + return 0; + } + VP8LClearBackwardRefs(refs); + // Add first pixel as literal. + AddSingleLiteral(argb[0], use_color_cache, &hashers, refs); + i = 1; + while (i < pix_count) { + const int max_len = MaxFindCopyLength(pix_count - i); + const int rle_len = FindMatchLength(argb + i, argb + i - 1, 0, max_len); + const int prev_row_len = (i < xsize) ? 0 : + FindMatchLength(argb + i, argb + i - xsize, 0, max_len); + if (rle_len >= prev_row_len && rle_len >= MIN_LENGTH) { + VP8LBackwardRefsCursorAdd(refs, PixOrCopyCreateCopy(1, rle_len)); + // We don't need to update the color cache here since it is always the + // same pixel being copied, and that does not change the color cache + // state. + i += rle_len; + } else if (prev_row_len >= MIN_LENGTH) { + VP8LBackwardRefsCursorAdd(refs, PixOrCopyCreateCopy(xsize, prev_row_len)); + if (use_color_cache) { + for (k = 0; k < prev_row_len; ++k) { + VP8LColorCacheInsert(&hashers, argb[i + k]); + } + } + i += prev_row_len; + } else { + AddSingleLiteral(argb[i], use_color_cache, &hashers, refs); + i++; + } + } + if (use_color_cache) VP8LColorCacheClear(&hashers); + return !refs->error_; +} + +static int BackwardReferencesLz77(int xsize, int ysize, + const uint32_t* const argb, int cache_bits, + const VP8LHashChain* const hash_chain, + VP8LBackwardRefs* const refs) { + int i; + int i_last_check = -1; + int ok = 0; + int cc_init = 0; + const int use_color_cache = (cache_bits > 0); + const int pix_count = xsize * ysize; + VP8LColorCache hashers; + + if (use_color_cache) { + cc_init = VP8LColorCacheInit(&hashers, cache_bits); + if (!cc_init) goto Error; + } + VP8LClearBackwardRefs(refs); + for (i = 0; i < pix_count;) { + // Alternative#1: Code the pixels starting at 'i' using backward reference. + int offset = 0; + int len = 0; + int j; + VP8LHashChainFindCopy(hash_chain, i, &offset, &len); + if (len >= MIN_LENGTH) { + const int len_ini = len; + int max_reach = 0; + const int j_max = + (i + len_ini >= pix_count) ? pix_count - 1 : i + len_ini; + // Only start from what we have not checked already. + i_last_check = (i > i_last_check) ? i : i_last_check; + // We know the best match for the current pixel but we try to find the + // best matches for the current pixel AND the next one combined. + // The naive method would use the intervals: + // [i,i+len) + [i+len, length of best match at i+len) + // while we check if we can use: + // [i,j) (where j<=i+len) + [j, length of best match at j) + for (j = i_last_check + 1; j <= j_max; ++j) { + const int len_j = VP8LHashChainFindLength(hash_chain, j); + const int reach = + j + (len_j >= MIN_LENGTH ? len_j : 1); // 1 for single literal. + if (reach > max_reach) { + len = j - i; + max_reach = reach; + if (max_reach >= pix_count) break; + } + } + } else { + len = 1; + } + // Go with literal or backward reference. + assert(len > 0); + if (len == 1) { + AddSingleLiteral(argb[i], use_color_cache, &hashers, refs); + } else { + VP8LBackwardRefsCursorAdd(refs, PixOrCopyCreateCopy(offset, len)); + if (use_color_cache) { + for (j = i; j < i + len; ++j) VP8LColorCacheInsert(&hashers, argb[j]); + } + } + i += len; + } + + ok = !refs->error_; + Error: + if (cc_init) VP8LColorCacheClear(&hashers); + return ok; +} + +// Compute an LZ77 by forcing matches to happen within a given distance cost. +// We therefore limit the algorithm to the lowest 32 values in the PlaneCode +// definition. +#define WINDOW_OFFSETS_SIZE_MAX 32 +static int BackwardReferencesLz77Box(int xsize, int ysize, + const uint32_t* const argb, int cache_bits, + const VP8LHashChain* const hash_chain_best, + VP8LHashChain* hash_chain, + VP8LBackwardRefs* const refs) { + int i; + const int pix_count = xsize * ysize; + uint16_t* counts; + int window_offsets[WINDOW_OFFSETS_SIZE_MAX] = {0}; + int window_offsets_new[WINDOW_OFFSETS_SIZE_MAX] = {0}; + int window_offsets_size = 0; + int window_offsets_new_size = 0; + uint16_t* const counts_ini = + (uint16_t*)WebPSafeMalloc(xsize * ysize, sizeof(*counts_ini)); + int best_offset_prev = -1, best_length_prev = -1; + if (counts_ini == NULL) return 0; + + // counts[i] counts how many times a pixel is repeated starting at position i. + i = pix_count - 2; + counts = counts_ini + i; + counts[1] = 1; + for (; i >= 0; --i, --counts) { + if (argb[i] == argb[i + 1]) { + // Max out the counts to MAX_LENGTH. + counts[0] = counts[1] + (counts[1] != MAX_LENGTH); + } else { + counts[0] = 1; + } + } + + // Figure out the window offsets around a pixel. They are stored in a + // spiraling order around the pixel as defined by VP8LDistanceToPlaneCode. + { + int x, y; + for (y = 0; y <= 6; ++y) { + for (x = -6; x <= 6; ++x) { + const int offset = y * xsize + x; + int plane_code; + // Ignore offsets that bring us after the pixel. + if (offset <= 0) continue; + plane_code = VP8LDistanceToPlaneCode(xsize, offset) - 1; + if (plane_code >= WINDOW_OFFSETS_SIZE_MAX) continue; + window_offsets[plane_code] = offset; + } + } + // For narrow images, not all plane codes are reached, so remove those. + for (i = 0; i < WINDOW_OFFSETS_SIZE_MAX; ++i) { + if (window_offsets[i] == 0) continue; + window_offsets[window_offsets_size++] = window_offsets[i]; + } + // Given a pixel P, find the offsets that reach pixels unreachable from P-1 + // with any of the offsets in window_offsets[]. + for (i = 0; i < window_offsets_size; ++i) { + int j; + int is_reachable = 0; + for (j = 0; j < window_offsets_size && !is_reachable; ++j) { + is_reachable |= (window_offsets[i] == window_offsets[j] + 1); + } + if (!is_reachable) { + window_offsets_new[window_offsets_new_size] = window_offsets[i]; + ++window_offsets_new_size; + } + } + } + + hash_chain->offset_length_[0] = 0; + for (i = 1; i < pix_count; ++i) { + int ind; + int best_length = VP8LHashChainFindLength(hash_chain_best, i); + int best_offset; + int do_compute = 1; + + if (best_length >= MAX_LENGTH) { + // Do not recompute the best match if we already have a maximal one in the + // window. + best_offset = VP8LHashChainFindOffset(hash_chain_best, i); + for (ind = 0; ind < window_offsets_size; ++ind) { + if (best_offset == window_offsets[ind]) { + do_compute = 0; + break; + } + } + } + if (do_compute) { + // Figure out if we should use the offset/length from the previous pixel + // as an initial guess and therefore only inspect the offsets in + // window_offsets_new[]. + const int use_prev = + (best_length_prev > 1) && (best_length_prev < MAX_LENGTH); + const int num_ind = + use_prev ? window_offsets_new_size : window_offsets_size; + best_length = use_prev ? best_length_prev - 1 : 0; + best_offset = use_prev ? best_offset_prev : 0; + // Find the longest match in a window around the pixel. + for (ind = 0; ind < num_ind; ++ind) { + int curr_length = 0; + int j = i; + int j_offset = + use_prev ? i - window_offsets_new[ind] : i - window_offsets[ind]; + if (j_offset < 0 || argb[j_offset] != argb[i]) continue; + // The longest match is the sum of how many times each pixel is + // repeated. + do { + const int counts_j_offset = counts_ini[j_offset]; + const int counts_j = counts_ini[j]; + if (counts_j_offset != counts_j) { + curr_length += + (counts_j_offset < counts_j) ? counts_j_offset : counts_j; + break; + } + // The same color is repeated counts_pos times at j_offset and j. + curr_length += counts_j_offset; + j_offset += counts_j_offset; + j += counts_j_offset; + } while (curr_length <= MAX_LENGTH && j < pix_count && + argb[j_offset] == argb[j]); + if (best_length < curr_length) { + best_offset = + use_prev ? window_offsets_new[ind] : window_offsets[ind]; + if (curr_length >= MAX_LENGTH) { + best_length = MAX_LENGTH; + break; + } else { + best_length = curr_length; + } + } + } + } + + assert(i + best_length <= pix_count); + assert(best_length <= MAX_LENGTH); + if (best_length <= MIN_LENGTH) { + hash_chain->offset_length_[i] = 0; + best_offset_prev = 0; + best_length_prev = 0; + } else { + hash_chain->offset_length_[i] = + (best_offset << MAX_LENGTH_BITS) | (uint32_t)best_length; + best_offset_prev = best_offset; + best_length_prev = best_length; + } + } + hash_chain->offset_length_[0] = 0; + WebPSafeFree(counts_ini); + + return BackwardReferencesLz77(xsize, ysize, argb, cache_bits, hash_chain, + refs); +} + +// ----------------------------------------------------------------------------- + +static void BackwardReferences2DLocality(int xsize, + const VP8LBackwardRefs* const refs) { + VP8LRefsCursor c = VP8LRefsCursorInit(refs); + while (VP8LRefsCursorOk(&c)) { + if (PixOrCopyIsCopy(c.cur_pos)) { + const int dist = c.cur_pos->argb_or_distance; + const int transformed_dist = VP8LDistanceToPlaneCode(xsize, dist); + c.cur_pos->argb_or_distance = transformed_dist; + } + VP8LRefsCursorNext(&c); + } +} + +// Evaluate optimal cache bits for the local color cache. +// The input *best_cache_bits sets the maximum cache bits to use (passing 0 +// implies disabling the local color cache). The local color cache is also +// disabled for the lower (<= 25) quality. +// Returns 0 in case of memory error. +static int CalculateBestCacheSize(const uint32_t* argb, int quality, + const VP8LBackwardRefs* const refs, + int* const best_cache_bits) { + int i; + const int cache_bits_max = (quality <= 25) ? 0 : *best_cache_bits; + double entropy_min = MAX_ENTROPY; + int cc_init[MAX_COLOR_CACHE_BITS + 1] = { 0 }; + VP8LColorCache hashers[MAX_COLOR_CACHE_BITS + 1]; + VP8LRefsCursor c = VP8LRefsCursorInit(refs); + VP8LHistogram* histos[MAX_COLOR_CACHE_BITS + 1] = { NULL }; + int ok = 0; + + assert(cache_bits_max >= 0 && cache_bits_max <= MAX_COLOR_CACHE_BITS); + + if (cache_bits_max == 0) { + *best_cache_bits = 0; + // Local color cache is disabled. + return 1; + } + + // Allocate data. + for (i = 0; i <= cache_bits_max; ++i) { + histos[i] = VP8LAllocateHistogram(i); + if (histos[i] == NULL) goto Error; + if (i == 0) continue; + cc_init[i] = VP8LColorCacheInit(&hashers[i], i); + if (!cc_init[i]) goto Error; + } + + // Find the cache_bits giving the lowest entropy. The search is done in a + // brute-force way as the function (entropy w.r.t cache_bits) can be + // anything in practice. + while (VP8LRefsCursorOk(&c)) { + const PixOrCopy* const v = c.cur_pos; + if (PixOrCopyIsLiteral(v)) { + const uint32_t pix = *argb++; + const uint32_t a = (pix >> 24) & 0xff; + const uint32_t r = (pix >> 16) & 0xff; + const uint32_t g = (pix >> 8) & 0xff; + const uint32_t b = (pix >> 0) & 0xff; + // The keys of the caches can be derived from the longest one. + int key = VP8LHashPix(pix, 32 - cache_bits_max); + // Do not use the color cache for cache_bits = 0. + ++histos[0]->blue_[b]; + ++histos[0]->literal_[g]; + ++histos[0]->red_[r]; + ++histos[0]->alpha_[a]; + // Deal with cache_bits > 0. + for (i = cache_bits_max; i >= 1; --i, key >>= 1) { + if (VP8LColorCacheLookup(&hashers[i], key) == pix) { + ++histos[i]->literal_[NUM_LITERAL_CODES + NUM_LENGTH_CODES + key]; + } else { + VP8LColorCacheSet(&hashers[i], key, pix); + ++histos[i]->blue_[b]; + ++histos[i]->literal_[g]; + ++histos[i]->red_[r]; + ++histos[i]->alpha_[a]; + } + } + } else { + // We should compute the contribution of the (distance,length) + // histograms but those are the same independently from the cache size. + // As those constant contributions are in the end added to the other + // histogram contributions, we can safely ignore them. + int len = PixOrCopyLength(v); + uint32_t argb_prev = *argb ^ 0xffffffffu; + // Update the color caches. + do { + if (*argb != argb_prev) { + // Efficiency: insert only if the color changes. + int key = VP8LHashPix(*argb, 32 - cache_bits_max); + for (i = cache_bits_max; i >= 1; --i, key >>= 1) { + hashers[i].colors_[key] = *argb; + } + argb_prev = *argb; + } + argb++; + } while (--len != 0); + } + VP8LRefsCursorNext(&c); + } + + for (i = 0; i <= cache_bits_max; ++i) { + const double entropy = VP8LHistogramEstimateBits(histos[i]); + if (i == 0 || entropy < entropy_min) { + entropy_min = entropy; + *best_cache_bits = i; + } + } + ok = 1; +Error: + for (i = 0; i <= cache_bits_max; ++i) { + if (cc_init[i]) VP8LColorCacheClear(&hashers[i]); + VP8LFreeHistogram(histos[i]); + } + return ok; +} + +// Update (in-place) backward references for specified cache_bits. +static int BackwardRefsWithLocalCache(const uint32_t* const argb, + int cache_bits, + VP8LBackwardRefs* const refs) { + int pixel_index = 0; + VP8LColorCache hashers; + VP8LRefsCursor c = VP8LRefsCursorInit(refs); + if (!VP8LColorCacheInit(&hashers, cache_bits)) return 0; + + while (VP8LRefsCursorOk(&c)) { + PixOrCopy* const v = c.cur_pos; + if (PixOrCopyIsLiteral(v)) { + const uint32_t argb_literal = v->argb_or_distance; + const int ix = VP8LColorCacheContains(&hashers, argb_literal); + if (ix >= 0) { + // hashers contains argb_literal + *v = PixOrCopyCreateCacheIdx(ix); + } else { + VP8LColorCacheInsert(&hashers, argb_literal); + } + ++pixel_index; + } else { + // refs was created without local cache, so it can not have cache indexes. + int k; + assert(PixOrCopyIsCopy(v)); + for (k = 0; k < v->len; ++k) { + VP8LColorCacheInsert(&hashers, argb[pixel_index++]); + } + } + VP8LRefsCursorNext(&c); + } + VP8LColorCacheClear(&hashers); + return 1; +} + +static VP8LBackwardRefs* GetBackwardReferencesLowEffort( + int width, int height, const uint32_t* const argb, + int* const cache_bits, const VP8LHashChain* const hash_chain, + VP8LBackwardRefs* const refs_lz77) { + *cache_bits = 0; + if (!BackwardReferencesLz77(width, height, argb, 0, hash_chain, refs_lz77)) { + return NULL; + } + BackwardReferences2DLocality(width, refs_lz77); + return refs_lz77; +} + +extern int VP8LBackwardReferencesTraceBackwards( + int xsize, int ysize, const uint32_t* const argb, int cache_bits, + const VP8LHashChain* const hash_chain, + const VP8LBackwardRefs* const refs_src, VP8LBackwardRefs* const refs_dst); +static VP8LBackwardRefs* GetBackwardReferences( + int width, int height, const uint32_t* const argb, int quality, + int lz77_types_to_try, int* const cache_bits, + const VP8LHashChain* const hash_chain, VP8LBackwardRefs* best, + VP8LBackwardRefs* worst) { + const int cache_bits_initial = *cache_bits; + double bit_cost_best = -1; + VP8LHistogram* histo = NULL; + int lz77_type, lz77_type_best = 0; + VP8LHashChain hash_chain_box; + memset(&hash_chain_box, 0, sizeof(hash_chain_box)); + + histo = VP8LAllocateHistogram(MAX_COLOR_CACHE_BITS); + if (histo == NULL) goto Error; + + for (lz77_type = 1; lz77_types_to_try; + lz77_types_to_try &= ~lz77_type, lz77_type <<= 1) { + int res = 0; + double bit_cost; + int cache_bits_tmp = cache_bits_initial; + if ((lz77_types_to_try & lz77_type) == 0) continue; + switch (lz77_type) { + case kLZ77RLE: + res = BackwardReferencesRle(width, height, argb, 0, worst); + break; + case kLZ77Standard: + // Compute LZ77 with no cache (0 bits), as the ideal LZ77 with a color + // cache is not that different in practice. + res = BackwardReferencesLz77(width, height, argb, 0, hash_chain, worst); + break; + case kLZ77Box: + if (!VP8LHashChainInit(&hash_chain_box, width * height)) goto Error; + res = BackwardReferencesLz77Box(width, height, argb, 0, hash_chain, + &hash_chain_box, worst); + break; + default: + assert(0); + } + if (!res) goto Error; + + // Next, try with a color cache and update the references. + if (!CalculateBestCacheSize(argb, quality, worst, &cache_bits_tmp)) { + goto Error; + } + if (cache_bits_tmp > 0) { + if (!BackwardRefsWithLocalCache(argb, cache_bits_tmp, worst)) { + goto Error; + } + } + + // Keep the best backward references. + VP8LHistogramCreate(histo, worst, cache_bits_tmp); + bit_cost = VP8LHistogramEstimateBits(histo); + if (lz77_type_best == 0 || bit_cost < bit_cost_best) { + VP8LBackwardRefs* const tmp = worst; + worst = best; + best = tmp; + bit_cost_best = bit_cost; + *cache_bits = cache_bits_tmp; + lz77_type_best = lz77_type; + } + } + assert(lz77_type_best > 0); + + // Improve on simple LZ77 but only for high quality (TraceBackwards is + // costly). + if ((lz77_type_best == kLZ77Standard || lz77_type_best == kLZ77Box) && + quality >= 25) { + const VP8LHashChain* const hash_chain_tmp = + (lz77_type_best == kLZ77Standard) ? hash_chain : &hash_chain_box; + if (VP8LBackwardReferencesTraceBackwards(width, height, argb, *cache_bits, + hash_chain_tmp, best, worst)) { + double bit_cost_trace; + VP8LHistogramCreate(histo, worst, *cache_bits); + bit_cost_trace = VP8LHistogramEstimateBits(histo); + if (bit_cost_trace < bit_cost_best) best = worst; + } + } + + BackwardReferences2DLocality(width, best); + +Error: + VP8LHashChainClear(&hash_chain_box); + VP8LFreeHistogram(histo); + return best; +} + +VP8LBackwardRefs* VP8LGetBackwardReferences( + int width, int height, const uint32_t* const argb, int quality, + int low_effort, int lz77_types_to_try, int* const cache_bits, + const VP8LHashChain* const hash_chain, VP8LBackwardRefs* const refs_tmp1, + VP8LBackwardRefs* const refs_tmp2) { + if (low_effort) { + return GetBackwardReferencesLowEffort(width, height, argb, cache_bits, + hash_chain, refs_tmp1); + } else { + return GetBackwardReferences(width, height, argb, quality, + lz77_types_to_try, cache_bits, hash_chain, + refs_tmp1, refs_tmp2); + } +} diff --git a/external/libwebp-0.6.0/src/enc/backward_references_enc.h b/external/libwebp-1.0.0/src/enc/backward_references_enc.h similarity index 79% rename from external/libwebp-0.6.0/src/enc/backward_references_enc.h rename to external/libwebp-1.0.0/src/enc/backward_references_enc.h index 3a19aa76..103ddfdc 100644 --- a/external/libwebp-0.6.0/src/enc/backward_references_enc.h +++ b/external/libwebp-1.0.0/src/enc/backward_references_enc.h @@ -10,13 +10,13 @@ // Author: Jyrki Alakuijala (jyrki@google.com) // -#ifndef WEBP_ENC_BACKWARD_REFERENCES_H_ -#define WEBP_ENC_BACKWARD_REFERENCES_H_ +#ifndef WEBP_ENC_BACKWARD_REFERENCES_ENC_H_ +#define WEBP_ENC_BACKWARD_REFERENCES_ENC_H_ #include #include -#include "../webp/types.h" -#include "../webp/format_constants.h" +#include "src/webp/types.h" +#include "src/webp/format_constants.h" #ifdef __cplusplus extern "C" { @@ -91,11 +91,6 @@ static WEBP_INLINE uint32_t PixOrCopyLength(const PixOrCopy* const p) { return p->len; } -static WEBP_INLINE uint32_t PixOrCopyArgb(const PixOrCopy* const p) { - assert(p->mode == kLiteral); - return p->argb_or_distance; -} - static WEBP_INLINE uint32_t PixOrCopyCacheIdx(const PixOrCopy* const p) { assert(p->mode == kCacheIdx); assert(p->argb_or_distance < (1U << MAX_COLOR_CACHE_BITS)); @@ -113,6 +108,16 @@ static WEBP_INLINE uint32_t PixOrCopyDistance(const PixOrCopy* const p) { #define HASH_BITS 18 #define HASH_SIZE (1 << HASH_BITS) +// If you change this, you need MAX_LENGTH_BITS + WINDOW_SIZE_BITS <= 32 as it +// is used in VP8LHashChain. +#define MAX_LENGTH_BITS 12 +#define WINDOW_SIZE_BITS 20 +// We want the max value to be attainable and stored in MAX_LENGTH_BITS bits. +#define MAX_LENGTH ((1 << MAX_LENGTH_BITS) - 1) +#if MAX_LENGTH_BITS + WINDOW_SIZE_BITS > 32 +#error "MAX_LENGTH_BITS + WINDOW_SIZE_BITS > 32" +#endif + typedef struct VP8LHashChain VP8LHashChain; struct VP8LHashChain { // The 20 most significant bits contain the offset at which the best match @@ -134,6 +139,24 @@ int VP8LHashChainFill(VP8LHashChain* const p, int quality, int low_effort); void VP8LHashChainClear(VP8LHashChain* const p); // release memory +static WEBP_INLINE int VP8LHashChainFindOffset(const VP8LHashChain* const p, + const int base_position) { + return p->offset_length_[base_position] >> MAX_LENGTH_BITS; +} + +static WEBP_INLINE int VP8LHashChainFindLength(const VP8LHashChain* const p, + const int base_position) { + return p->offset_length_[base_position] & ((1U << MAX_LENGTH_BITS) - 1); +} + +static WEBP_INLINE void VP8LHashChainFindCopy(const VP8LHashChain* const p, + int base_position, + int* const offset_ptr, + int* const length_ptr) { + *offset_ptr = VP8LHashChainFindOffset(p, base_position); + *length_ptr = VP8LHashChainFindLength(p, base_position); +} + // ----------------------------------------------------------------------------- // VP8LBackwardRefs (block-based backward-references storage) @@ -158,9 +181,6 @@ struct VP8LBackwardRefs { void VP8LBackwardRefsInit(VP8LBackwardRefs* const refs, int block_size); // Release memory for backward references. void VP8LBackwardRefsClear(VP8LBackwardRefs* const refs); -// Copies the 'src' backward refs to the 'dst'. Returns 0 in case of error. -int VP8LBackwardRefsCopy(const VP8LBackwardRefs* const src, - VP8LBackwardRefs* const dst); // Cursor for iterating on references content typedef struct { @@ -189,6 +209,12 @@ static WEBP_INLINE void VP8LRefsCursorNext(VP8LRefsCursor* const c) { // ----------------------------------------------------------------------------- // Main entry points +enum VP8LLZ77Type { + kLZ77Standard = 1, + kLZ77RLE = 2, + kLZ77Box = 4 +}; + // Evaluates best possible backward references for specified quality. // The input cache_bits to 'VP8LGetBackwardReferences' sets the maximum cache // bits to use (passing 0 implies disabling the local color cache). @@ -197,11 +223,12 @@ static WEBP_INLINE void VP8LRefsCursorNext(VP8LRefsCursor* const c) { // refs[0] or refs[1]. VP8LBackwardRefs* VP8LGetBackwardReferences( int width, int height, const uint32_t* const argb, int quality, - int low_effort, int* const cache_bits, - const VP8LHashChain* const hash_chain, VP8LBackwardRefs refs[2]); + int low_effort, int lz77_types_to_try, int* const cache_bits, + const VP8LHashChain* const hash_chain, VP8LBackwardRefs* const refs_tmp1, + VP8LBackwardRefs* const refs_tmp2); #ifdef __cplusplus } #endif -#endif // WEBP_ENC_BACKWARD_REFERENCES_H_ +#endif // WEBP_ENC_BACKWARD_REFERENCES_ENC_H_ diff --git a/external/libwebp-0.6.0/src/enc/config_enc.c b/external/libwebp-1.0.0/src/enc/config_enc.c similarity index 98% rename from external/libwebp-0.6.0/src/enc/config_enc.c rename to external/libwebp-1.0.0/src/enc/config_enc.c index 4589dc06..9d482897 100644 --- a/external/libwebp-0.6.0/src/enc/config_enc.c +++ b/external/libwebp-1.0.0/src/enc/config_enc.c @@ -12,10 +12,10 @@ // Author: Skal (pascal.massimino@gmail.com) #ifdef HAVE_CONFIG_H -#include "../webp/config.h" +#include "src/webp/config.h" #endif -#include "../webp/encode.h" +#include "src/webp/encode.h" //------------------------------------------------------------------------------ // WebPConfig diff --git a/external/libwebp-0.6.0/src/enc/cost_enc.c b/external/libwebp-1.0.0/src/enc/cost_enc.c similarity index 99% rename from external/libwebp-0.6.0/src/enc/cost_enc.c rename to external/libwebp-1.0.0/src/enc/cost_enc.c index c823f5a6..48fd9bc3 100644 --- a/external/libwebp-0.6.0/src/enc/cost_enc.c +++ b/external/libwebp-1.0.0/src/enc/cost_enc.c @@ -11,7 +11,7 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./cost_enc.h" +#include "src/enc/cost_enc.h" //------------------------------------------------------------------------------ // Level cost tables diff --git a/external/libwebp-0.6.0/src/enc/cost_enc.h b/external/libwebp-1.0.0/src/enc/cost_enc.h similarity index 95% rename from external/libwebp-0.6.0/src/enc/cost_enc.h rename to external/libwebp-1.0.0/src/enc/cost_enc.h index 99e4b37a..bdce1e6a 100644 --- a/external/libwebp-0.6.0/src/enc/cost_enc.h +++ b/external/libwebp-1.0.0/src/enc/cost_enc.h @@ -11,12 +11,12 @@ // // Author: Skal (pascal.massimino@gmail.com) -#ifndef WEBP_ENC_COST_H_ -#define WEBP_ENC_COST_H_ +#ifndef WEBP_ENC_COST_ENC_H_ +#define WEBP_ENC_COST_ENC_H_ #include #include -#include "./vp8i_enc.h" +#include "src/enc/vp8i_enc.h" #ifdef __cplusplus extern "C" { @@ -79,4 +79,4 @@ extern const uint16_t VP8FixedCostsI4[NUM_BMODES][NUM_BMODES][NUM_BMODES]; } // extern "C" #endif -#endif /* WEBP_ENC_COST_H_ */ +#endif /* WEBP_ENC_COST_ENC_H_ */ diff --git a/external/libwebp-0.6.0/src/enc/filter_enc.c b/external/libwebp-1.0.0/src/enc/filter_enc.c similarity index 95% rename from external/libwebp-0.6.0/src/enc/filter_enc.c rename to external/libwebp-1.0.0/src/enc/filter_enc.c index 4bc36727..580800bf 100644 --- a/external/libwebp-0.6.0/src/enc/filter_enc.c +++ b/external/libwebp-1.0.0/src/enc/filter_enc.c @@ -12,8 +12,8 @@ // Author: somnath@google.com (Somnath Banerjee) #include -#include "./vp8i_enc.h" -#include "../dsp/dsp.h" +#include "src/enc/vp8i_enc.h" +#include "src/dsp/dsp.h" // This table gives, for a given sharpness, the filtering strength to be // used (at least) in order to filter a given edge step delta. @@ -65,6 +65,8 @@ int VP8FilterStrengthFromDelta(int sharpness, int delta) { //------------------------------------------------------------------------------ // Paragraph 15.4: compute the inner-edge filtering strength +#if !defined(WEBP_REDUCE_SIZE) + static int GetILevel(int sharpness, int level) { if (sharpness > 0) { if (sharpness > 4) { @@ -129,11 +131,14 @@ static double GetMBSSIM(const uint8_t* yuv1, const uint8_t* yuv2) { return sum; } +#endif // !defined(WEBP_REDUCE_SIZE) + //------------------------------------------------------------------------------ // Exposed APIs: Encoder should call the following 3 functions to adjust // loop filter strength void VP8InitFilter(VP8EncIterator* const it) { +#if !defined(WEBP_REDUCE_SIZE) if (it->lf_stats_ != NULL) { int s, i; for (s = 0; s < NUM_MB_SEGMENTS; s++) { @@ -143,9 +148,13 @@ void VP8InitFilter(VP8EncIterator* const it) { } VP8SSIMDspInit(); } +#else + (void)it; +#endif } void VP8StoreFilterStats(VP8EncIterator* const it) { +#if !defined(WEBP_REDUCE_SIZE) int d; VP8Encoder* const enc = it->enc_; const int s = it->mb_->segment_; @@ -177,10 +186,14 @@ void VP8StoreFilterStats(VP8EncIterator* const it) { DoFilter(it, level); (*it->lf_stats_)[s][level] += GetMBSSIM(it->yuv_in_, it->yuv_out2_); } +#else // defined(WEBP_REDUCE_SIZE) + (void)it; +#endif // !defined(WEBP_REDUCE_SIZE) } void VP8AdjustFilterStrength(VP8EncIterator* const it) { VP8Encoder* const enc = it->enc_; +#if !defined(WEBP_REDUCE_SIZE) if (it->lf_stats_ != NULL) { int s; for (s = 0; s < NUM_MB_SEGMENTS; s++) { @@ -196,7 +209,10 @@ void VP8AdjustFilterStrength(VP8EncIterator* const it) { } enc->dqm_[s].fstrength_ = best_level; } - } else if (enc->config_->filter_strength > 0) { + return; + } +#endif // !defined(WEBP_REDUCE_SIZE) + if (enc->config_->filter_strength > 0) { int max_level = 0; int s; for (s = 0; s < NUM_MB_SEGMENTS; s++) { diff --git a/external/libwebp-0.6.0/src/enc/frame_enc.c b/external/libwebp-1.0.0/src/enc/frame_enc.c similarity index 95% rename from external/libwebp-0.6.0/src/enc/frame_enc.c rename to external/libwebp-1.0.0/src/enc/frame_enc.c index abef523b..1aec376e 100644 --- a/external/libwebp-0.6.0/src/enc/frame_enc.c +++ b/external/libwebp-1.0.0/src/enc/frame_enc.c @@ -14,10 +14,10 @@ #include #include -#include "./cost_enc.h" -#include "./vp8i_enc.h" -#include "../dsp/dsp.h" -#include "../webp/format_constants.h" // RIFF constants +#include "src/enc/cost_enc.h" +#include "src/enc/vp8i_enc.h" +#include "src/dsp/dsp.h" +#include "src/webp/format_constants.h" // RIFF constants #define SEGMENT_VISU 0 #define DEBUG_SEARCH 0 // useful to track search convergence @@ -198,13 +198,15 @@ static void SetSegmentProbas(VP8Encoder* const enc) { for (n = 0; n < enc->mb_w_ * enc->mb_h_; ++n) { const VP8MBInfo* const mb = &enc->mb_info_[n]; - p[mb->segment_]++; + ++p[mb->segment_]; } +#if !defined(WEBP_DISABLE_STATS) if (enc->pic_->stats != NULL) { for (n = 0; n < NUM_MB_SEGMENTS; ++n) { enc->pic_->stats->segment_size[n] = p[n]; } } +#endif if (enc->segment_hdr_.num_segments_ > 1) { uint8_t* const probas = enc->proba_.segments_; probas[0] = GetProba(p[0] + p[1], p[2] + p[3]); @@ -452,6 +454,8 @@ static int RecordTokens(VP8EncIterator* const it, const VP8ModeScore* const rd, //------------------------------------------------------------------------------ // ExtraInfo map / Debug function +#if !defined(WEBP_DISABLE_STATS) + #if SEGMENT_VISU static void SetBlock(uint8_t* p, int value, int size) { int y; @@ -516,6 +520,34 @@ static void StoreSideInfo(const VP8EncIterator* const it) { #endif } +static void ResetSideInfo(const VP8EncIterator* const it) { + VP8Encoder* const enc = it->enc_; + WebPPicture* const pic = enc->pic_; + if (pic->stats != NULL) { + memset(enc->block_count_, 0, sizeof(enc->block_count_)); + } + ResetSSE(enc); +} +#else // defined(WEBP_DISABLE_STATS) +static void ResetSSE(VP8Encoder* const enc) { + (void)enc; +} +static void StoreSideInfo(const VP8EncIterator* const it) { + VP8Encoder* const enc = it->enc_; + WebPPicture* const pic = enc->pic_; + if (pic->extra_info != NULL) { + if (it->x_ == 0 && it->y_ == 0) { // only do it once, at start + memset(pic->extra_info, 0, + enc->mb_w_ * enc->mb_h_ * sizeof(*pic->extra_info)); + } + } +} + +static void ResetSideInfo(const VP8EncIterator* const it) { + (void)it; +} +#endif // !defined(WEBP_DISABLE_STATS) + static double GetPSNR(uint64_t mse, uint64_t size) { return (mse > 0 && size > 0) ? 10. * log10(255. * 255. * size / mse) : 99; } @@ -552,7 +584,7 @@ static uint64_t OneStatPass(VP8Encoder* const enc, VP8RDLevel rd_opt, VP8IteratorImport(&it, NULL); if (VP8Decimate(&it, &info, rd_opt)) { // Just record the number of skips and act like skip_proba is not used. - enc->proba_.nb_skip_++; + ++enc->proba_.nb_skip_; } RecordResiduals(&it, &info); size += info.R + info.H; @@ -640,7 +672,7 @@ static int StatLoop(VP8Encoder* const enc) { // Main loops // -static const int kAverageBytesPerMB[8] = { 50, 24, 16, 9, 7, 5, 3, 2 }; +static const uint8_t kAverageBytesPerMB[8] = { 50, 24, 16, 9, 7, 5, 3, 2 }; static int PreLoopInitialize(VP8Encoder* const enc) { int p; @@ -670,6 +702,7 @@ static int PostLoopFinalize(VP8EncIterator* const it, int ok) { } if (ok) { // All good. Finish up. +#if !defined(WEBP_DISABLE_STATS) if (enc->pic_->stats != NULL) { // finalize byte counters... int i, s; for (i = 0; i <= 2; ++i) { @@ -678,6 +711,7 @@ static int PostLoopFinalize(VP8EncIterator* const it, int ok) { } } } +#endif VP8AdjustFilterStrength(it); // ...and store filter stats. } else { // Something bad happened -> need to do some memory cleanup. @@ -821,6 +855,9 @@ int VP8EncTokenLoop(VP8Encoder* const enc) { if (enc->max_i4_header_bits_ > 0 && size_p0 > PARTITION0_SIZE_LIMIT) { ++num_pass_left; enc->max_i4_header_bits_ >>= 1; // strengthen header bit limitation... + if (is_last_pass) { + ResetSideInfo(&it); + } continue; // ...and start over } if (is_last_pass) { @@ -851,4 +888,3 @@ int VP8EncTokenLoop(VP8Encoder* const enc) { #endif // DISABLE_TOKEN_BUFFER //------------------------------------------------------------------------------ - diff --git a/external/libwebp-0.6.0/src/enc/histogram_enc.c b/external/libwebp-1.0.0/src/enc/histogram_enc.c similarity index 77% rename from external/libwebp-0.6.0/src/enc/histogram_enc.c rename to external/libwebp-1.0.0/src/enc/histogram_enc.c index 808b6f78..9fdbc627 100644 --- a/external/libwebp-0.6.0/src/enc/histogram_enc.c +++ b/external/libwebp-1.0.0/src/enc/histogram_enc.c @@ -10,16 +10,16 @@ // Author: Jyrki Alakuijala (jyrki@google.com) // #ifdef HAVE_CONFIG_H -#include "../webp/config.h" +#include "src/webp/config.h" #endif #include -#include "./backward_references_enc.h" -#include "./histogram_enc.h" -#include "../dsp/lossless.h" -#include "../dsp/lossless_common.h" -#include "../utils/utils.h" +#include "src/enc/backward_references_enc.h" +#include "src/enc/histogram_enc.h" +#include "src/dsp/lossless.h" +#include "src/dsp/lossless_common.h" +#include "src/utils/utils.h" #define MAX_COST 1.e38 @@ -76,7 +76,7 @@ void VP8LHistogramStoreRefs(const VP8LBackwardRefs* const refs, VP8LHistogram* const histo) { VP8LRefsCursor c = VP8LRefsCursorInit(refs); while (VP8LRefsCursorOk(&c)) { - VP8LHistogramAddSinglePixOrCopy(histo, c.cur_pos); + VP8LHistogramAddSinglePixOrCopy(histo, c.cur_pos, NULL, 0); VP8LRefsCursorNext(&c); } } @@ -138,7 +138,9 @@ VP8LHistogramSet* VP8LAllocateHistogramSet(int size, int cache_bits) { // ----------------------------------------------------------------------------- void VP8LHistogramAddSinglePixOrCopy(VP8LHistogram* const histo, - const PixOrCopy* const v) { + const PixOrCopy* const v, + int (*const distance_modifier)(int, int), + int distance_modifier_arg0) { if (PixOrCopyIsLiteral(v)) { ++histo->alpha_[PixOrCopyLiteral(v, 3)]; ++histo->red_[PixOrCopyLiteral(v, 2)]; @@ -152,7 +154,13 @@ void VP8LHistogramAddSinglePixOrCopy(VP8LHistogram* const histo, int code, extra_bits; VP8LPrefixEncodeBits(PixOrCopyLength(v), &code, &extra_bits); ++histo->literal_[NUM_LITERAL_CODES + code]; - VP8LPrefixEncodeBits(PixOrCopyDistance(v), &code, &extra_bits); + if (distance_modifier == NULL) { + VP8LPrefixEncodeBits(PixOrCopyDistance(v), &code, &extra_bits); + } else { + VP8LPrefixEncodeBits( + distance_modifier(distance_modifier_arg0, PixOrCopyDistance(v)), + &code, &extra_bits); + } ++histo->distance_[code]; } } @@ -192,14 +200,9 @@ static WEBP_INLINE double BitsEntropyRefine(const VP8LBitEntropy* entropy) { } } -double VP8LBitsEntropy(const uint32_t* const array, int n, - uint32_t* const trivial_symbol) { +double VP8LBitsEntropy(const uint32_t* const array, int n) { VP8LBitEntropy entropy; VP8LBitsEntropyUnrefined(array, n, &entropy); - if (trivial_symbol != NULL) { - *trivial_symbol = - (entropy.nonzeros == 1) ? entropy.nonzero_code : VP8L_NON_TRIVIAL_SYM; - } return BitsEntropyRefine(&entropy); } @@ -473,7 +476,7 @@ static void HistogramBuild( while (VP8LRefsCursorOk(&c)) { const PixOrCopy* const v = c.cur_pos; const int ix = (y >> histo_bits) * histo_xsize + (x >> histo_bits); - VP8LHistogramAddSinglePixOrCopy(histograms[ix], v); + VP8LHistogramAddSinglePixOrCopy(histograms[ix], v, NULL, 0); x += PixOrCopyLength(v); while (x >= xsize) { x -= xsize; @@ -523,11 +526,12 @@ static void HistogramAnalyzeEntropyBin(VP8LHistogramSet* const image_histo, // Compact image_histo[] by merging some histograms with same bin_id together if // it's advantageous. -static VP8LHistogram* HistogramCombineEntropyBin( - VP8LHistogramSet* const image_histo, - VP8LHistogram* cur_combo, - const uint16_t* const bin_map, int bin_map_size, int num_bins, - double combine_cost_factor, int low_effort) { +static void HistogramCombineEntropyBin(VP8LHistogramSet* const image_histo, + VP8LHistogram* cur_combo, + const uint16_t* const bin_map, + int bin_map_size, int num_bins, + double combine_cost_factor, + int low_effort) { VP8LHistogram** const histograms = image_histo->histograms; int idx; // Work in-place: processed histograms are put at the beginning of @@ -593,14 +597,13 @@ static VP8LHistogram* HistogramCombineEntropyBin( UpdateHistogramCost(histograms[idx]); } } - return cur_combo; } +// Implement a Lehmer random number generator with a multiplicative constant of +// 48271 and a modulo constant of 2^31 - 1. static uint32_t MyRand(uint32_t* const seed) { - *seed = (*seed * 16807ull) & 0xffffffffu; - if (*seed == 0) { - *seed = 1; - } + *seed = (uint32_t)(((uint64_t)(*seed) * 48271u) % 2147483647u); + assert(*seed > 0); return *seed; } @@ -641,57 +644,75 @@ static int HistoQueueInit(HistoQueue* const histo_queue, const int max_index) { static void HistoQueueClear(HistoQueue* const histo_queue) { assert(histo_queue != NULL); WebPSafeFree(histo_queue->queue); + histo_queue->size = 0; + histo_queue->max_size = 0; } -static void SwapHistogramPairs(HistogramPair *p1, - HistogramPair *p2) { - const HistogramPair tmp = *p1; - *p1 = *p2; - *p2 = tmp; +// Pop a specific pair in the queue by replacing it with the last one +// and shrinking the queue. +static void HistoQueuePopPair(HistoQueue* const histo_queue, + HistogramPair* const pair) { + assert(pair >= histo_queue->queue && + pair < (histo_queue->queue + histo_queue->size)); + assert(histo_queue->size > 0); + *pair = histo_queue->queue[histo_queue->size - 1]; + --histo_queue->size; } -// Given a valid priority queue in range [0, queue_size) this function checks -// whether histo_queue[queue_size] should be accepted and swaps it with the -// front if it is smaller. Otherwise, it leaves it as is. -static void UpdateQueueFront(HistoQueue* const histo_queue) { - if (histo_queue->queue[histo_queue->size].cost_diff >= 0) return; - - if (histo_queue->queue[histo_queue->size].cost_diff < - histo_queue->queue[0].cost_diff) { - SwapHistogramPairs(histo_queue->queue, - histo_queue->queue + histo_queue->size); +// Check whether a pair in the queue should be updated as head or not. +static void HistoQueueUpdateHead(HistoQueue* const histo_queue, + HistogramPair* const pair) { + assert(pair->cost_diff < 0.); + assert(pair >= histo_queue->queue && + pair < (histo_queue->queue + histo_queue->size)); + assert(histo_queue->size > 0); + if (pair->cost_diff < histo_queue->queue[0].cost_diff) { + // Replace the best pair. + const HistogramPair tmp = histo_queue->queue[0]; + histo_queue->queue[0] = *pair; + *pair = tmp; } - ++histo_queue->size; - - // We cannot add more elements than the capacity. - // The allocation adds an extra element to the official capacity so that - // histo_queue->queue[histo_queue->max_size] is read/written within bound. - assert(histo_queue->size <= histo_queue->max_size); } -// ----------------------------------------------------------------------------- - -static void PreparePair(VP8LHistogram** histograms, int idx1, int idx2, - HistogramPair* const pair) { - VP8LHistogram* h1; - VP8LHistogram* h2; +// Create a pair from indices "idx1" and "idx2" provided its cost +// is inferior to "threshold", a negative entropy. +// It returns the cost of the pair, or 0. if it superior to threshold. +static double HistoQueuePush(HistoQueue* const histo_queue, + VP8LHistogram** const histograms, int idx1, + int idx2, double threshold) { + const VP8LHistogram* h1; + const VP8LHistogram* h2; + HistogramPair pair; double sum_cost; + assert(threshold <= 0.); if (idx1 > idx2) { const int tmp = idx2; idx2 = idx1; idx1 = tmp; } - pair->idx1 = idx1; - pair->idx2 = idx2; + pair.idx1 = idx1; + pair.idx2 = idx2; h1 = histograms[idx1]; h2 = histograms[idx2]; sum_cost = h1->bit_cost_ + h2->bit_cost_; - pair->cost_combo = 0.; - GetCombinedHistogramEntropy(h1, h2, sum_cost, &pair->cost_combo); - pair->cost_diff = pair->cost_combo - sum_cost; + pair.cost_combo = 0.; + GetCombinedHistogramEntropy(h1, h2, sum_cost + threshold, &pair.cost_combo); + pair.cost_diff = pair.cost_combo - sum_cost; + + // Do not even consider the pair if it does not improve the entropy. + if (pair.cost_diff >= threshold) return 0.; + + // We cannot add more elements than the capacity. + assert(histo_queue->size < histo_queue->max_size); + histo_queue->queue[histo_queue->size++] = pair; + HistoQueueUpdateHead(histo_queue, &histo_queue->queue[histo_queue->size - 1]); + + return pair.cost_diff; } +// ----------------------------------------------------------------------------- + // Combines histograms by continuously choosing the one with the highest cost // reduction. static int HistogramCombineGreedy(VP8LHistogramSet* const image_histo) { @@ -714,13 +735,11 @@ static int HistogramCombineGreedy(VP8LHistogramSet* const image_histo) { clusters[i] = i; for (j = i + 1; j < image_histo_size; ++j) { // Initialize positions array. - PreparePair(histograms, i, j, &histo_queue.queue[histo_queue.size]); - UpdateQueueFront(&histo_queue); + HistoQueuePush(&histo_queue, histograms, i, j, 0.); } } while (image_histo_size > 1 && histo_queue.size > 0) { - HistogramPair* copy_to; const int idx1 = histo_queue.queue[0].idx1; const int idx2 = histo_queue.queue[0].idx2; HistogramAdd(histograms[idx2], histograms[idx1], histograms[idx1]); @@ -733,31 +752,22 @@ static int HistogramCombineGreedy(VP8LHistogramSet* const image_histo) { } --image_histo_size; - // Remove pairs intersecting the just combined best pair. This will - // therefore pop the head of the queue. - copy_to = histo_queue.queue; - for (i = 0; i < histo_queue.size; ++i) { + // Remove pairs intersecting the just combined best pair. + for (i = 0; i < histo_queue.size;) { HistogramPair* const p = histo_queue.queue + i; if (p->idx1 == idx1 || p->idx2 == idx1 || p->idx1 == idx2 || p->idx2 == idx2) { - // Do not copy the invalid pair. - continue; - } - if (p->cost_diff < histo_queue.queue[0].cost_diff) { - // Replace the top of the queue if we found better. - SwapHistogramPairs(histo_queue.queue, p); + HistoQueuePopPair(&histo_queue, p); + } else { + HistoQueueUpdateHead(&histo_queue, p); + ++i; } - SwapHistogramPairs(copy_to, p); - ++copy_to; } - histo_queue.size = (int)(copy_to - histo_queue.queue); // Push new pairs formed with combined histogram to the queue. for (i = 0; i < image_histo_size; ++i) { if (clusters[i] != idx1) { - PreparePair(histograms, idx1, clusters[i], - &histo_queue.queue[histo_queue.size]); - UpdateQueueFront(&histo_queue); + HistoQueuePush(&histo_queue, histograms, idx1, clusters[i], 0.); } } } @@ -777,90 +787,130 @@ static int HistogramCombineGreedy(VP8LHistogramSet* const image_histo) { return ok; } -static void HistogramCombineStochastic(VP8LHistogramSet* const image_histo, - VP8LHistogram* tmp_histo, - VP8LHistogram* best_combo, - int quality, int min_cluster_size) { +// Perform histogram aggregation using a stochastic approach. +// 'do_greedy' is set to 1 if a greedy approach needs to be performed +// afterwards, 0 otherwise. +static int HistogramCombineStochastic(VP8LHistogramSet* const image_histo, + int min_cluster_size, + int* const do_greedy) { int iter; - uint32_t seed = 0; + uint32_t seed = 1; int tries_with_no_success = 0; int image_histo_size = image_histo->size; - const int iter_mult = (quality < 25) ? 2 : 2 + (quality - 25) / 8; - const int outer_iters = image_histo_size * iter_mult; - const int num_pairs = image_histo_size / 2; + const int outer_iters = image_histo_size; const int num_tries_no_success = outer_iters / 2; - int idx2_max = image_histo_size - 1; - int do_brute_dorce = 0; VP8LHistogram** const histograms = image_histo->histograms; + // Priority queue of histogram pairs. Its size of "kCostHeapSizeSqrt"^2 + // impacts the quality of the compression and the speed: the smaller the + // faster but the worse for the compression. + HistoQueue histo_queue; + const int kHistoQueueSizeSqrt = 3; + int ok = 0; + if (!HistoQueueInit(&histo_queue, kHistoQueueSizeSqrt)) { + goto End; + } // Collapse similar histograms in 'image_histo'. ++min_cluster_size; - for (iter = 0; - iter < outer_iters && image_histo_size >= min_cluster_size; + for (iter = 0; iter < outer_iters && image_histo_size >= min_cluster_size && + ++tries_with_no_success < num_tries_no_success; ++iter) { - double best_cost_diff = 0.; + double best_cost = + (histo_queue.size == 0) ? 0. : histo_queue.queue[0].cost_diff; int best_idx1 = -1, best_idx2 = 1; int j; - int num_tries = - (num_pairs < image_histo_size) ? num_pairs : image_histo_size; - // Use a brute force approach if: - // - stochastic has not worked for a while and - // - if the number of iterations for brute force is less than the number of - // iterations if we never find a match ever again stochastically (hence - // num_tries times the number of remaining outer iterations). - do_brute_dorce = - (tries_with_no_success > 10) && - (idx2_max * (idx2_max + 1) < 2 * num_tries * (outer_iters - iter)); - if (do_brute_dorce) num_tries = idx2_max; - - seed += iter; - for (j = 0; j < num_tries; ++j) { - double curr_cost_diff; - // Choose two histograms at random and try to combine them. - uint32_t idx1, idx2; - if (do_brute_dorce) { - // Use a brute force approach. - idx1 = (uint32_t)j; - idx2 = (uint32_t)idx2_max; - } else { - const uint32_t tmp = (j & 7) + 1; - const uint32_t diff = - (tmp < 3) ? tmp : MyRand(&seed) % (image_histo_size - 1); - idx1 = MyRand(&seed) % image_histo_size; - idx2 = (idx1 + diff + 1) % image_histo_size; - if (idx1 == idx2) { - continue; - } - } + const uint32_t rand_range = (image_histo_size - 1) * image_histo_size; + // image_histo_size / 2 was chosen empirically. Less means faster but worse + // compression. + const int num_tries = image_histo_size / 2; - // Calculate cost reduction on combining. - curr_cost_diff = HistogramAddEval(histograms[idx1], histograms[idx2], - tmp_histo, best_cost_diff); - if (curr_cost_diff < best_cost_diff) { // found a better pair? - HistogramSwap(&best_combo, &tmp_histo); - best_cost_diff = curr_cost_diff; - best_idx1 = idx1; - best_idx2 = idx2; + for (j = 0; j < num_tries; ++j) { + double curr_cost; + // Choose two different histograms at random and try to combine them. + const uint32_t tmp = MyRand(&seed) % rand_range; + const uint32_t idx1 = tmp / (image_histo_size - 1); + uint32_t idx2 = tmp % (image_histo_size - 1); + if (idx2 >= idx1) ++idx2; + + // Calculate cost reduction on combination. + curr_cost = + HistoQueuePush(&histo_queue, histograms, idx1, idx2, best_cost); + if (curr_cost < 0) { // found a better pair? + best_cost = curr_cost; + // Empty the queue if we reached full capacity. + if (histo_queue.size == histo_queue.max_size) break; } } - if (do_brute_dorce) --idx2_max; - - if (best_idx1 >= 0) { - HistogramSwap(&best_combo, &histograms[best_idx1]); - // swap best_idx2 slot with last one (which is now unused) - --image_histo_size; - if (idx2_max >= image_histo_size) idx2_max = image_histo_size - 1; - if (best_idx2 != image_histo_size) { - HistogramSwap(&histograms[image_histo_size], &histograms[best_idx2]); - histograms[image_histo_size] = NULL; - } - tries_with_no_success = 0; + if (histo_queue.size == 0) continue; + + // Merge the two best histograms. + best_idx1 = histo_queue.queue[0].idx1; + best_idx2 = histo_queue.queue[0].idx2; + assert(best_idx1 < best_idx2); + HistogramAddEval(histograms[best_idx1], histograms[best_idx2], + histograms[best_idx1], 0); + // Swap the best_idx2 histogram with the last one (which is now unused). + --image_histo_size; + if (best_idx2 != image_histo_size) { + HistogramSwap(&histograms[image_histo_size], &histograms[best_idx2]); } - if (++tries_with_no_success >= num_tries_no_success || idx2_max == 0) { - break; + histograms[image_histo_size] = NULL; + // Parse the queue and update each pair that deals with best_idx1, + // best_idx2 or image_histo_size. + for (j = 0; j < histo_queue.size;) { + HistogramPair* const p = histo_queue.queue + j; + const int is_idx1_best = p->idx1 == best_idx1 || p->idx1 == best_idx2; + const int is_idx2_best = p->idx2 == best_idx1 || p->idx2 == best_idx2; + int do_eval = 0; + // The front pair could have been duplicated by a random pick so + // check for it all the time nevertheless. + if (is_idx1_best && is_idx2_best) { + HistoQueuePopPair(&histo_queue, p); + continue; + } + // Any pair containing one of the two best indices should only refer to + // best_idx1. Its cost should also be updated. + if (is_idx1_best) { + p->idx1 = best_idx1; + do_eval = 1; + } else if (is_idx2_best) { + p->idx2 = best_idx1; + do_eval = 1; + } + if (p->idx2 == image_histo_size) { + // No need to re-evaluate here as it does not involve a pair + // containing best_idx1 or best_idx2. + p->idx2 = best_idx2; + } + assert(p->idx2 < image_histo_size); + // Make sure the index order is respected. + if (p->idx1 > p->idx2) { + const int tmp = p->idx2; + p->idx2 = p->idx1; + p->idx1 = tmp; + } + if (do_eval) { + // Re-evaluate the cost of an updated pair. + GetCombinedHistogramEntropy(histograms[p->idx1], histograms[p->idx2], 0, + &p->cost_diff); + if (p->cost_diff >= 0.) { + HistoQueuePopPair(&histo_queue, p); + continue; + } + } + HistoQueueUpdateHead(&histo_queue, p); + ++j; } + + tries_with_no_success = 0; } image_histo->size = image_histo_size; + *do_greedy = (image_histo->size <= min_cluster_size); + ok = 1; + +End: + HistoQueueClear(&histo_queue); + return ok; } // ----------------------------------------------------------------------------- @@ -925,7 +975,7 @@ int VP8LGetHistoImageSymbols(int xsize, int ysize, int quality, int low_effort, int histo_bits, int cache_bits, VP8LHistogramSet* const image_histo, - VP8LHistogramSet* const tmp_histos, + VP8LHistogram* const tmp_histo, uint16_t* const histogram_symbols) { int ok = 0; const int histo_xsize = histo_bits ? VP8LSubSampleSize(xsize, histo_bits) : 1; @@ -933,7 +983,6 @@ int VP8LGetHistoImageSymbols(int xsize, int ysize, const int image_histo_raw_size = histo_xsize * histo_ysize; VP8LHistogramSet* const orig_histo = VP8LAllocateHistogramSet(image_histo_raw_size, cache_bits); - VP8LHistogram* cur_combo; // Don't attempt linear bin-partition heuristic for // histograms of small sizes (as bin_map will be very sparse) and // maximum quality q==100 (to preserve the compression gains at that level). @@ -948,7 +997,6 @@ int VP8LGetHistoImageSymbols(int xsize, int ysize, // Copies the histograms and computes its bit_cost. HistogramCopyAndAnalyze(orig_histo, image_histo); - cur_combo = tmp_histos->histograms[1]; // pick up working slot if (entropy_combine) { const int bin_map_size = orig_histo->size; // Reuse histogram_symbols storage. By definition, it's guaranteed to be ok. @@ -958,10 +1006,9 @@ int VP8LGetHistoImageSymbols(int xsize, int ysize, HistogramAnalyzeEntropyBin(orig_histo, bin_map, low_effort); // Collapse histograms with similar entropy. - cur_combo = HistogramCombineEntropyBin(image_histo, cur_combo, - bin_map, bin_map_size, - entropy_combine_num_bins, - combine_cost_factor, low_effort); + HistogramCombineEntropyBin(image_histo, tmp_histo, bin_map, bin_map_size, + entropy_combine_num_bins, combine_cost_factor, + low_effort); } // Don't combine the histograms using stochastic and greedy heuristics for @@ -970,15 +1017,16 @@ int VP8LGetHistoImageSymbols(int xsize, int ysize, const float x = quality / 100.f; // cubic ramp between 1 and MAX_HISTO_GREEDY: const int threshold_size = (int)(1 + (x * x * x) * (MAX_HISTO_GREEDY - 1)); - HistogramCombineStochastic(image_histo, tmp_histos->histograms[0], - cur_combo, quality, threshold_size); - if ((image_histo->size <= threshold_size) && - !HistogramCombineGreedy(image_histo)) { + int do_greedy; + if (!HistogramCombineStochastic(image_histo, threshold_size, &do_greedy)) { + goto Error; + } + if (do_greedy && !HistogramCombineGreedy(image_histo)) { goto Error; } } - // TODO(vikasa): Optimize HistogramRemap for low-effort compression mode also. + // TODO(vrabaud): Optimize HistogramRemap for low-effort compression mode. // Find the optimal map from original histograms to the final ones. HistogramRemap(orig_histo, image_histo, histogram_symbols); diff --git a/external/libwebp-0.6.0/src/enc/histogram_enc.h b/external/libwebp-1.0.0/src/enc/histogram_enc.h similarity index 88% rename from external/libwebp-0.6.0/src/enc/histogram_enc.h rename to external/libwebp-1.0.0/src/enc/histogram_enc.h index a9d258a1..e8c4c83f 100644 --- a/external/libwebp-0.6.0/src/enc/histogram_enc.h +++ b/external/libwebp-1.0.0/src/enc/histogram_enc.h @@ -11,14 +11,14 @@ // // Models the histograms of literal and distance codes. -#ifndef WEBP_ENC_HISTOGRAM_H_ -#define WEBP_ENC_HISTOGRAM_H_ +#ifndef WEBP_ENC_HISTOGRAM_ENC_H_ +#define WEBP_ENC_HISTOGRAM_ENC_H_ #include -#include "./backward_references_enc.h" -#include "../webp/format_constants.h" -#include "../webp/types.h" +#include "src/enc/backward_references_enc.h" +#include "src/webp/format_constants.h" +#include "src/webp/types.h" #ifdef __cplusplus extern "C" { @@ -90,7 +90,9 @@ VP8LHistogram* VP8LAllocateHistogram(int cache_bits); // Accumulate a token 'v' into a histogram. void VP8LHistogramAddSinglePixOrCopy(VP8LHistogram* const histo, - const PixOrCopy* const v); + const PixOrCopy* const v, + int (*const distance_modifier)(int, int), + int distance_modifier_arg0); static WEBP_INLINE int VP8LHistogramNumCodes(int palette_code_bits) { return NUM_LITERAL_CODES + NUM_LENGTH_CODES + @@ -103,14 +105,11 @@ int VP8LGetHistoImageSymbols(int xsize, int ysize, int quality, int low_effort, int histogram_bits, int cache_bits, VP8LHistogramSet* const image_in, - VP8LHistogramSet* const tmp_histos, + VP8LHistogram* const tmp_histo, uint16_t* const histogram_symbols); // Returns the entropy for the symbols in the input array. -// Also sets trivial_symbol to the code value, if the array has only one code -// value. Otherwise, set it to VP8L_NON_TRIVIAL_SYM. -double VP8LBitsEntropy(const uint32_t* const array, int n, - uint32_t* const trivial_symbol); +double VP8LBitsEntropy(const uint32_t* const array, int n); // Estimate how many bits the combined entropy of literals and distance // approximately maps to. @@ -120,4 +119,4 @@ double VP8LHistogramEstimateBits(const VP8LHistogram* const p); } #endif -#endif // WEBP_ENC_HISTOGRAM_H_ +#endif // WEBP_ENC_HISTOGRAM_ENC_H_ diff --git a/external/libwebp-0.6.0/src/enc/iterator_enc.c b/external/libwebp-1.0.0/src/enc/iterator_enc.c similarity index 98% rename from external/libwebp-0.6.0/src/enc/iterator_enc.c rename to external/libwebp-1.0.0/src/enc/iterator_enc.c index e48d30bd..7c47d512 100644 --- a/external/libwebp-0.6.0/src/enc/iterator_enc.c +++ b/external/libwebp-1.0.0/src/enc/iterator_enc.c @@ -13,7 +13,7 @@ #include -#include "./vp8i_enc.h" +#include "src/enc/vp8i_enc.h" //------------------------------------------------------------------------------ // VP8Iterator @@ -26,6 +26,9 @@ static void InitLeft(VP8EncIterator* const it) { memset(it->u_left_, 129, 8); memset(it->v_left_, 129, 8); it->left_nz_[8] = 0; + if (it->top_derr_ != NULL) { + memset(&it->left_derr_, 0, sizeof(it->left_derr_)); + } } static void InitTop(VP8EncIterator* const it) { @@ -33,6 +36,9 @@ static void InitTop(VP8EncIterator* const it) { const size_t top_size = enc->mb_w_ * 16; memset(enc->y_top_, 127, 2 * top_size); memset(enc->nz_, 0, enc->mb_w_ * sizeof(*enc->nz_)); + if (enc->top_derr_ != NULL) { + memset(enc->top_derr_, 0, enc->mb_w_ * sizeof(*enc->top_derr_)); + } } void VP8IteratorSetRow(VP8EncIterator* const it, int y) { @@ -76,6 +82,7 @@ void VP8IteratorInit(VP8Encoder* const enc, VP8EncIterator* const it) { it->y_left_ = (uint8_t*)WEBP_ALIGN(it->yuv_left_mem_ + 1); it->u_left_ = it->y_left_ + 16 + 16; it->v_left_ = it->u_left_ + 16; + it->top_derr_ = enc->top_derr_; VP8IteratorReset(it); } @@ -450,4 +457,3 @@ int VP8IteratorRotateI4(VP8EncIterator* const it, } //------------------------------------------------------------------------------ - diff --git a/external/libwebp-0.6.0/src/enc/near_lossless_enc.c b/external/libwebp-1.0.0/src/enc/near_lossless_enc.c similarity index 59% rename from external/libwebp-0.6.0/src/enc/near_lossless_enc.c rename to external/libwebp-1.0.0/src/enc/near_lossless_enc.c index 2bd03ab2..5517a7e2 100644 --- a/external/libwebp-0.6.0/src/enc/near_lossless_enc.c +++ b/external/libwebp-1.0.0/src/enc/near_lossless_enc.c @@ -17,18 +17,20 @@ #include #include -#include "../dsp/lossless_common.h" -#include "../utils/utils.h" -#include "./vp8i_enc.h" +#include "src/dsp/lossless_common.h" +#include "src/utils/utils.h" +#include "src/enc/vp8li_enc.h" + +#if (WEBP_NEAR_LOSSLESS == 1) #define MIN_DIM_FOR_NEAR_LOSSLESS 64 #define MAX_LIMIT_BITS 5 // Quantizes the value up or down to a multiple of 1<> 1) + ((a >> bits) & 1); +static uint32_t FindClosestDiscretized(uint32_t a, int bits) { + const uint32_t mask = (1u << bits) - 1; + const uint32_t biased = a + (mask >> 1) + ((a >> bits) & 1); assert(bits > 0); if (biased > 0xff) return 0xff; return biased & ~mask; @@ -69,22 +71,30 @@ static int IsSmooth(const uint32_t* const prev_row, } // Adjusts pixel values of image with given maximum error. -static void NearLossless(int xsize, int ysize, uint32_t* argb, - int limit_bits, uint32_t* copy_buffer) { +static void NearLossless(int xsize, int ysize, const uint32_t* argb_src, + int stride, int limit_bits, uint32_t* copy_buffer, + uint32_t* argb_dst) { int x, y; const int limit = 1 << limit_bits; uint32_t* prev_row = copy_buffer; uint32_t* curr_row = prev_row + xsize; uint32_t* next_row = curr_row + xsize; - memcpy(copy_buffer, argb, xsize * 2 * sizeof(argb[0])); + memcpy(curr_row, argb_src, xsize * sizeof(argb_src[0])); + memcpy(next_row, argb_src + stride, xsize * sizeof(argb_src[0])); - for (y = 1; y < ysize - 1; ++y) { - uint32_t* const curr_argb_row = argb + y * xsize; - uint32_t* const next_argb_row = curr_argb_row + xsize; - memcpy(next_row, next_argb_row, xsize * sizeof(argb[0])); - for (x = 1; x < xsize - 1; ++x) { - if (!IsSmooth(prev_row, curr_row, next_row, x, limit)) { - curr_argb_row[x] = ClosestDiscretizedArgb(curr_row[x], limit_bits); + for (y = 0; y < ysize; ++y, argb_src += stride, argb_dst += xsize) { + if (y == 0 || y == ysize - 1) { + memcpy(argb_dst, argb_src, xsize * sizeof(argb_src[0])); + } else { + memcpy(next_row, argb_src + stride, xsize * sizeof(argb_src[0])); + argb_dst[0] = argb_src[0]; + argb_dst[xsize - 1] = argb_src[xsize - 1]; + for (x = 1; x < xsize - 1; ++x) { + if (IsSmooth(prev_row, curr_row, next_row, x, limit)) { + argb_dst[x] = curr_row[x]; + } else { + argb_dst[x] = ClosestDiscretizedArgb(curr_row[x], limit_bits); + } } } { @@ -97,26 +107,45 @@ static void NearLossless(int xsize, int ysize, uint32_t* argb, } } -int VP8ApplyNearLossless(int xsize, int ysize, uint32_t* argb, int quality) { +int VP8ApplyNearLossless(const WebPPicture* const picture, int quality, + uint32_t* const argb_dst) { int i; + const int xsize = picture->width; + const int ysize = picture->height; + const int stride = picture->argb_stride; uint32_t* const copy_buffer = (uint32_t*)WebPSafeMalloc(xsize * 3, sizeof(*copy_buffer)); const int limit_bits = VP8LNearLosslessBits(quality); - assert(argb != NULL); - assert(limit_bits >= 0); + assert(argb_dst != NULL); + assert(limit_bits > 0); assert(limit_bits <= MAX_LIMIT_BITS); if (copy_buffer == NULL) { return 0; } // For small icon images, don't attempt to apply near-lossless compression. - if (xsize < MIN_DIM_FOR_NEAR_LOSSLESS && ysize < MIN_DIM_FOR_NEAR_LOSSLESS) { + if ((xsize < MIN_DIM_FOR_NEAR_LOSSLESS && + ysize < MIN_DIM_FOR_NEAR_LOSSLESS) || + ysize < 3) { + for (i = 0; i < ysize; ++i) { + memcpy(argb_dst + i * xsize, picture->argb + i * picture->argb_stride, + xsize * sizeof(*argb_dst)); + } WebPSafeFree(copy_buffer); return 1; } - for (i = limit_bits; i != 0; --i) { - NearLossless(xsize, ysize, argb, i, copy_buffer); + NearLossless(xsize, ysize, picture->argb, stride, limit_bits, copy_buffer, + argb_dst); + for (i = limit_bits - 1; i != 0; --i) { + NearLossless(xsize, ysize, argb_dst, xsize, i, copy_buffer, argb_dst); } WebPSafeFree(copy_buffer); return 1; } +#else // (WEBP_NEAR_LOSSLESS == 1) + +// Define a stub to suppress compiler warnings. +extern void VP8LNearLosslessStub(void); +void VP8LNearLosslessStub(void) {} + +#endif // (WEBP_NEAR_LOSSLESS == 1) diff --git a/external/libwebp-0.6.0/src/enc/picture_csp_enc.c b/external/libwebp-1.0.0/src/enc/picture_csp_enc.c similarity index 88% rename from external/libwebp-0.6.0/src/enc/picture_csp_enc.c rename to external/libwebp-1.0.0/src/enc/picture_csp_enc.c index e5d1c75a..02d9df76 100644 --- a/external/libwebp-0.6.0/src/enc/picture_csp_enc.c +++ b/external/libwebp-1.0.0/src/enc/picture_csp_enc.c @@ -15,10 +15,12 @@ #include #include -#include "./vp8i_enc.h" -#include "../utils/random_utils.h" -#include "../utils/utils.h" -#include "../dsp/yuv.h" +#include "src/enc/vp8i_enc.h" +#include "src/utils/random_utils.h" +#include "src/utils/utils.h" +#include "src/dsp/dsp.h" +#include "src/dsp/lossless.h" +#include "src/dsp/yuv.h" // Uncomment to disable gamma-compression during RGB->U/V averaging #define USE_GAMMA_COMPRESSION @@ -26,11 +28,11 @@ // If defined, use table to compute x / alpha. #define USE_INVERSE_ALPHA_TABLE -static const union { - uint32_t argb; - uint8_t bytes[4]; -} test_endian = { 0xff000000u }; -#define ALPHA_IS_LAST (test_endian.bytes[3] == 0xff) +#ifdef WORDS_BIGENDIAN +#define ALPHA_OFFSET 0 // uint32_t 0xff000000 is 0xff,00,00,00 in memory +#else +#define ALPHA_OFFSET 3 // uint32_t 0xff000000 is 0x00,00,00,ff in memory +#endif //------------------------------------------------------------------------------ // Detection of non-trivial transparency @@ -39,12 +41,15 @@ static const union { static int CheckNonOpaque(const uint8_t* alpha, int width, int height, int x_step, int y_step) { if (alpha == NULL) return 0; - while (height-- > 0) { - int x; - for (x = 0; x < width * x_step; x += x_step) { - if (alpha[x] != 0xff) return 1; // TODO(skal): check 4/8 bytes at a time. + WebPInitAlphaProcessing(); + if (x_step == 1) { + for (; height-- > 0; alpha += y_step) { + if (WebPHasAlpha8b(alpha, width)) return 1; + } + } else { + for (; height-- > 0; alpha += y_step) { + if (WebPHasAlpha32b(alpha, width)) return 1; } - alpha += y_step; } return 0; } @@ -56,15 +61,10 @@ int WebPPictureHasTransparency(const WebPPicture* picture) { return CheckNonOpaque(picture->a, picture->width, picture->height, 1, picture->a_stride); } else { - int x, y; - const uint32_t* argb = picture->argb; - if (argb == NULL) return 0; - for (y = 0; y < picture->height; ++y) { - for (x = 0; x < picture->width; ++x) { - if (argb[x] < 0xff000000u) return 1; // test any alpha values != 0xff - } - argb += picture->argb_stride; - } + const int alpha_offset = ALPHA_OFFSET; + return CheckNonOpaque((const uint8_t*)picture->argb + alpha_offset, + picture->width, picture->height, + 4, picture->argb_stride * sizeof(*picture->argb)); } return 0; } @@ -126,7 +126,7 @@ static WEBP_INLINE int LinearToGamma(uint32_t base_value, int shift) { #else -static WEBP_TSAN_IGNORE_FUNCTION void InitGammaTables(void) {} +static void InitGammaTables(void) {} static WEBP_INLINE uint32_t GammaToLinear(uint8_t v) { return v; } static WEBP_INLINE int LinearToGamma(uint32_t base_value, int shift) { return (int)(base_value << shift); @@ -170,29 +170,33 @@ typedef uint16_t fixed_y_t; // unsigned type with extra SFIX precision for W #if defined(USE_GAMMA_COMPRESSION) -// float variant of gamma-correction -// We use tables of different size and precision for the Rec709 +// We use tables of different size and precision for the Rec709 / BT2020 // transfer function. #define kGammaF (1./0.45) -static float kGammaToLinearTabF[MAX_Y_T + 1]; // size scales with Y_FIX -static float kLinearToGammaTabF[kGammaTabSize + 2]; -static volatile int kGammaTablesFOk = 0; - -static WEBP_TSAN_IGNORE_FUNCTION void InitGammaTablesF(void) { - if (!kGammaTablesFOk) { +static uint32_t kLinearToGammaTabS[kGammaTabSize + 2]; +#define GAMMA_TO_LINEAR_BITS 14 +static uint32_t kGammaToLinearTabS[MAX_Y_T + 1]; // size scales with Y_FIX +static volatile int kGammaTablesSOk = 0; + +static WEBP_TSAN_IGNORE_FUNCTION void InitGammaTablesS(void) { + assert(2 * GAMMA_TO_LINEAR_BITS < 32); // we use uint32_t intermediate values + if (!kGammaTablesSOk) { int v; const double norm = 1. / MAX_Y_T; const double scale = 1. / kGammaTabSize; - const double a = 0.099; - const double thresh = 0.018; + const double a = 0.09929682680944; + const double thresh = 0.018053968510807; + const double final_scale = 1 << GAMMA_TO_LINEAR_BITS; for (v = 0; v <= MAX_Y_T; ++v) { const double g = norm * v; + double value; if (g <= thresh * 4.5) { - kGammaToLinearTabF[v] = (float)(g / 4.5); + value = g / 4.5; } else { const double a_rec = 1. / (1. + a); - kGammaToLinearTabF[v] = (float)pow(a_rec * (g + a), kGammaF); + value = pow(a_rec * (g + a), kGammaF); } + kGammaToLinearTabS[v] = (uint32_t)(value * final_scale + .5); } for (v = 0; v <= kGammaTabSize; ++v) { const double g = scale * v; @@ -202,37 +206,44 @@ static WEBP_TSAN_IGNORE_FUNCTION void InitGammaTablesF(void) { } else { value = (1. + a) * pow(g, 1. / kGammaF) - a; } - kLinearToGammaTabF[v] = (float)(MAX_Y_T * value); + // we already incorporate the 1/2 rounding constant here + kLinearToGammaTabS[v] = + (uint32_t)(MAX_Y_T * value) + (1 << GAMMA_TO_LINEAR_BITS >> 1); } // to prevent small rounding errors to cause read-overflow: - kLinearToGammaTabF[kGammaTabSize + 1] = kLinearToGammaTabF[kGammaTabSize]; - kGammaTablesFOk = 1; + kLinearToGammaTabS[kGammaTabSize + 1] = kLinearToGammaTabS[kGammaTabSize]; + kGammaTablesSOk = 1; } } -static WEBP_INLINE float GammaToLinearF(int v) { - return kGammaToLinearTabF[v]; +// return value has a fixed-point precision of GAMMA_TO_LINEAR_BITS +static WEBP_INLINE uint32_t GammaToLinearS(int v) { + return kGammaToLinearTabS[v]; } -static WEBP_INLINE int LinearToGammaF(float value) { - const float v = value * kGammaTabSize; - const int tab_pos = (int)v; - const float x = v - (float)tab_pos; // fractional part - const float v0 = kLinearToGammaTabF[tab_pos + 0]; - const float v1 = kLinearToGammaTabF[tab_pos + 1]; - const float y = v1 * x + v0 * (1.f - x); // interpolate - return (int)(y + .5); +static WEBP_INLINE uint32_t LinearToGammaS(uint32_t value) { + // 'value' is in GAMMA_TO_LINEAR_BITS fractional precision + const uint32_t v = value * kGammaTabSize; + const uint32_t tab_pos = v >> GAMMA_TO_LINEAR_BITS; + // fractional part, in GAMMA_TO_LINEAR_BITS fixed-point precision + const uint32_t x = v - (tab_pos << GAMMA_TO_LINEAR_BITS); // fractional part + // v0 / v1 are in GAMMA_TO_LINEAR_BITS fixed-point precision (range [0..1]) + const uint32_t v0 = kLinearToGammaTabS[tab_pos + 0]; + const uint32_t v1 = kLinearToGammaTabS[tab_pos + 1]; + // Final interpolation. Note that rounding is already included. + const uint32_t v2 = (v1 - v0) * x; // note: v1 >= v0. + const uint32_t result = v0 + (v2 >> GAMMA_TO_LINEAR_BITS); + return result; } #else -static WEBP_TSAN_IGNORE_FUNCTION void InitGammaTablesF(void) {} -static WEBP_INLINE float GammaToLinearF(int v) { - const float norm = 1.f / MAX_Y_T; - return norm * v; +static void InitGammaTablesS(void) {} +static WEBP_INLINE uint32_t GammaToLinearS(int v) { + return (v << GAMMA_TO_LINEAR_BITS) / MAX_Y_T; } -static WEBP_INLINE int LinearToGammaF(float value) { - return (int)(MAX_Y_T * value + .5); +static WEBP_INLINE uint32_t LinearToGammaS(uint32_t value) { + return (MAX_Y_T * value) >> GAMMA_TO_LINEAR_BITS; } #endif // USE_GAMMA_COMPRESSION @@ -254,26 +265,22 @@ static int RGBToGray(int r, int g, int b) { return (luma >> YUV_FIX); } -static float RGBToGrayF(float r, float g, float b) { - return (float)(0.2126 * r + 0.7152 * g + 0.0722 * b); -} - -static int ScaleDown(int a, int b, int c, int d) { - const float A = GammaToLinearF(a); - const float B = GammaToLinearF(b); - const float C = GammaToLinearF(c); - const float D = GammaToLinearF(d); - return LinearToGammaF(0.25f * (A + B + C + D)); +static uint32_t ScaleDown(int a, int b, int c, int d) { + const uint32_t A = GammaToLinearS(a); + const uint32_t B = GammaToLinearS(b); + const uint32_t C = GammaToLinearS(c); + const uint32_t D = GammaToLinearS(d); + return LinearToGammaS((A + B + C + D + 2) >> 2); } static WEBP_INLINE void UpdateW(const fixed_y_t* src, fixed_y_t* dst, int w) { int i; for (i = 0; i < w; ++i) { - const float R = GammaToLinearF(src[0 * w + i]); - const float G = GammaToLinearF(src[1 * w + i]); - const float B = GammaToLinearF(src[2 * w + i]); - const float Y = RGBToGrayF(R, G, B); - dst[i] = (fixed_y_t)LinearToGammaF(Y); + const uint32_t R = GammaToLinearS(src[0 * w + i]); + const uint32_t G = GammaToLinearS(src[1 * w + i]); + const uint32_t B = GammaToLinearS(src[2 * w + i]); + const uint32_t Y = RGBToGray(R, G, B); + dst[i] = (fixed_y_t)LinearToGammaS(Y); } } @@ -856,7 +863,6 @@ static int ImportYUVAFromRGBA(const uint8_t* r_ptr, return 0; } if (has_alpha) { - WebPInitAlphaProcessing(); assert(step == 4); #if defined(USE_GAMMA_COMPRESSION) && defined(USE_INVERSE_ALPHA_TABLE) assert(kAlphaFix + kGammaFix <= 31); @@ -864,7 +870,7 @@ static int ImportYUVAFromRGBA(const uint8_t* r_ptr, } if (use_iterative_conversion) { - InitGammaTablesF(); + InitGammaTablesS(); if (!PreprocessARGB(r_ptr, g_ptr, b_ptr, step, rgb_stride, picture)) { return 0; } @@ -991,10 +997,10 @@ static int PictureARGBToYUVA(WebPPicture* picture, WebPEncCSP colorspace, return WebPEncodingSetError(picture, VP8_ENC_ERROR_INVALID_CONFIGURATION); } else { const uint8_t* const argb = (const uint8_t*)picture->argb; - const uint8_t* const r = ALPHA_IS_LAST ? argb + 2 : argb + 1; - const uint8_t* const g = ALPHA_IS_LAST ? argb + 1 : argb + 2; - const uint8_t* const b = ALPHA_IS_LAST ? argb + 0 : argb + 3; - const uint8_t* const a = ALPHA_IS_LAST ? argb + 3 : argb + 0; + const uint8_t* const a = argb + (0 ^ ALPHA_OFFSET); + const uint8_t* const r = argb + (1 ^ ALPHA_OFFSET); + const uint8_t* const g = argb + (2 ^ ALPHA_OFFSET); + const uint8_t* const b = argb + (3 ^ ALPHA_OFFSET); picture->colorspace = WEBP_YUV420; return ImportYUVAFromRGBA(r, g, b, a, 4, 4 * picture->argb_stride, @@ -1045,7 +1051,8 @@ int WebPPictureYUVAToARGB(WebPPicture* picture) { const int argb_stride = 4 * picture->argb_stride; uint8_t* dst = (uint8_t*)picture->argb; const uint8_t *cur_u = picture->u, *cur_v = picture->v, *cur_y = picture->y; - WebPUpsampleLinePairFunc upsample = WebPGetLinePairConverter(ALPHA_IS_LAST); + WebPUpsampleLinePairFunc upsample = + WebPGetLinePairConverter(ALPHA_OFFSET > 0); // First row, with replicated top samples. upsample(cur_y, NULL, cur_u, cur_v, cur_u, cur_v, dst, NULL, width); @@ -1085,40 +1092,59 @@ int WebPPictureYUVAToARGB(WebPPicture* picture) { // automatic import / conversion static int Import(WebPPicture* const picture, - const uint8_t* const rgb, int rgb_stride, + const uint8_t* rgb, int rgb_stride, int step, int swap_rb, int import_alpha) { int y; + // swap_rb -> b,g,r,a , !swap_rb -> r,g,b,a const uint8_t* r_ptr = rgb + (swap_rb ? 2 : 0); const uint8_t* g_ptr = rgb + 1; const uint8_t* b_ptr = rgb + (swap_rb ? 0 : 2); - const uint8_t* a_ptr = import_alpha ? rgb + 3 : NULL; const int width = picture->width; const int height = picture->height; if (!picture->use_argb) { + const uint8_t* a_ptr = import_alpha ? rgb + 3 : NULL; return ImportYUVAFromRGBA(r_ptr, g_ptr, b_ptr, a_ptr, step, rgb_stride, 0.f /* no dithering */, 0, picture); } if (!WebPPictureAlloc(picture)) return 0; - VP8EncDspARGBInit(); + VP8LDspInit(); + WebPInitAlphaProcessing(); if (import_alpha) { + // dst[] byte order is {a,r,g,b} for big-endian, {b,g,r,a} for little endian uint32_t* dst = picture->argb; + const int do_copy = (ALPHA_OFFSET == 3) && swap_rb; assert(step == 4); - for (y = 0; y < height; ++y) { - VP8PackARGB(a_ptr, r_ptr, g_ptr, b_ptr, width, dst); - a_ptr += rgb_stride; - r_ptr += rgb_stride; - g_ptr += rgb_stride; - b_ptr += rgb_stride; - dst += picture->argb_stride; + if (do_copy) { + for (y = 0; y < height; ++y) { + memcpy(dst, rgb, width * 4); + rgb += rgb_stride; + dst += picture->argb_stride; + } + } else { + for (y = 0; y < height; ++y) { +#ifdef WORDS_BIGENDIAN + // BGRA or RGBA input order. + const uint8_t* a_ptr = rgb + 3; + WebPPackARGB(a_ptr, r_ptr, g_ptr, b_ptr, width, dst); + r_ptr += rgb_stride; + g_ptr += rgb_stride; + b_ptr += rgb_stride; +#else + // RGBA input order. Need to swap R and B. + VP8LConvertBGRAToRGBA((const uint32_t*)rgb, width, (uint8_t*)dst); +#endif + rgb += rgb_stride; + dst += picture->argb_stride; + } } } else { uint32_t* dst = picture->argb; assert(step >= 3); for (y = 0; y < height; ++y) { - VP8PackRGB(r_ptr, g_ptr, b_ptr, width, step, dst); + WebPPackRGB(r_ptr, g_ptr, b_ptr, width, step, dst); r_ptr += rgb_stride; g_ptr += rgb_stride; b_ptr += rgb_stride; @@ -1130,12 +1156,7 @@ static int Import(WebPPicture* const picture, // Public API -int WebPPictureImportRGB(WebPPicture* picture, - const uint8_t* rgb, int rgb_stride) { - return (picture != NULL && rgb != NULL) - ? Import(picture, rgb, rgb_stride, 3, 0, 0) - : 0; -} +#if !defined(WEBP_REDUCE_CSP) int WebPPictureImportBGR(WebPPicture* picture, const uint8_t* rgb, int rgb_stride) { @@ -1144,31 +1165,41 @@ int WebPPictureImportBGR(WebPPicture* picture, : 0; } -int WebPPictureImportRGBA(WebPPicture* picture, +int WebPPictureImportBGRA(WebPPicture* picture, const uint8_t* rgba, int rgba_stride) { return (picture != NULL && rgba != NULL) - ? Import(picture, rgba, rgba_stride, 4, 0, 1) + ? Import(picture, rgba, rgba_stride, 4, 1, 1) : 0; } -int WebPPictureImportBGRA(WebPPicture* picture, + +int WebPPictureImportBGRX(WebPPicture* picture, const uint8_t* rgba, int rgba_stride) { return (picture != NULL && rgba != NULL) - ? Import(picture, rgba, rgba_stride, 4, 1, 1) + ? Import(picture, rgba, rgba_stride, 4, 1, 0) : 0; } -int WebPPictureImportRGBX(WebPPicture* picture, +#endif // WEBP_REDUCE_CSP + +int WebPPictureImportRGB(WebPPicture* picture, + const uint8_t* rgb, int rgb_stride) { + return (picture != NULL && rgb != NULL) + ? Import(picture, rgb, rgb_stride, 3, 0, 0) + : 0; +} + +int WebPPictureImportRGBA(WebPPicture* picture, const uint8_t* rgba, int rgba_stride) { return (picture != NULL && rgba != NULL) - ? Import(picture, rgba, rgba_stride, 4, 0, 0) + ? Import(picture, rgba, rgba_stride, 4, 0, 1) : 0; } -int WebPPictureImportBGRX(WebPPicture* picture, +int WebPPictureImportRGBX(WebPPicture* picture, const uint8_t* rgba, int rgba_stride) { return (picture != NULL && rgba != NULL) - ? Import(picture, rgba, rgba_stride, 4, 1, 0) + ? Import(picture, rgba, rgba_stride, 4, 0, 0) : 0; } diff --git a/external/libwebp-0.6.0/src/enc/picture_enc.c b/external/libwebp-1.0.0/src/enc/picture_enc.c similarity index 93% rename from external/libwebp-0.6.0/src/enc/picture_enc.c rename to external/libwebp-1.0.0/src/enc/picture_enc.c index dfa66510..c691622d 100644 --- a/external/libwebp-0.6.0/src/enc/picture_enc.c +++ b/external/libwebp-1.0.0/src/enc/picture_enc.c @@ -14,9 +14,9 @@ #include #include -#include "./vp8i_enc.h" -#include "../dsp/dsp.h" -#include "../utils/utils.h" +#include "src/enc/vp8i_enc.h" +#include "src/dsp/dsp.h" +#include "src/utils/utils.h" //------------------------------------------------------------------------------ // WebPPicture @@ -76,13 +76,12 @@ int WebPPictureAllocARGB(WebPPicture* const picture, int width, int height) { return WebPEncodingSetError(picture, VP8_ENC_ERROR_BAD_DIMENSION); } // allocate a new buffer. - memory = WebPSafeMalloc(argb_size, sizeof(*picture->argb)); + memory = WebPSafeMalloc(argb_size + WEBP_ALIGN_CST, sizeof(*picture->argb)); if (memory == NULL) { return WebPEncodingSetError(picture, VP8_ENC_ERROR_OUT_OF_MEMORY); } - // TODO(skal): align plane to cache line? picture->memory_argb_ = memory; - picture->argb = (uint32_t*)memory; + picture->argb = (uint32_t*)WEBP_ALIGN(memory); picture->argb_stride = width; return 1; } @@ -92,8 +91,8 @@ int WebPPictureAllocYUVA(WebPPicture* const picture, int width, int height) { (WebPEncCSP)((int)picture->colorspace & WEBP_CSP_UV_MASK); const int has_alpha = (int)picture->colorspace & WEBP_CSP_ALPHA_BIT; const int y_stride = width; - const int uv_width = (width + 1) >> 1; - const int uv_height = (height + 1) >> 1; + const int uv_width = (int)(((int64_t)width + 1) >> 1); + const int uv_height = (int)(((int64_t)height + 1) >> 1); const int uv_stride = uv_width; int a_width, a_stride; uint64_t y_size, uv_size, a_size, total_size; @@ -118,8 +117,8 @@ int WebPPictureAllocYUVA(WebPPicture* const picture, int width, int height) { total_size = y_size + a_size + 2 * uv_size; // Security and validation checks - if (width <= 0 || height <= 0 || // luma/alpha param error - uv_width < 0 || uv_height < 0) { // u/v param error + if (width <= 0 || height <= 0 || // luma/alpha param error + uv_width <= 0 || uv_height <= 0) { // u/v param error return WebPEncodingSetError(picture, VP8_ENC_ERROR_BAD_DIMENSION); } // allocate a new buffer. @@ -271,9 +270,11 @@ size_t NAME(const uint8_t* in, int w, int h, int bps, float q, \ } ENCODE_FUNC(WebPEncodeRGB, WebPPictureImportRGB) -ENCODE_FUNC(WebPEncodeBGR, WebPPictureImportBGR) ENCODE_FUNC(WebPEncodeRGBA, WebPPictureImportRGBA) +#if !defined(WEBP_REDUCE_CSP) +ENCODE_FUNC(WebPEncodeBGR, WebPPictureImportBGR) ENCODE_FUNC(WebPEncodeBGRA, WebPPictureImportBGRA) +#endif // WEBP_REDUCE_CSP #undef ENCODE_FUNC @@ -284,9 +285,11 @@ size_t NAME(const uint8_t* in, int w, int h, int bps, uint8_t** out) { \ } LOSSLESS_ENCODE_FUNC(WebPEncodeLosslessRGB, WebPPictureImportRGB) -LOSSLESS_ENCODE_FUNC(WebPEncodeLosslessBGR, WebPPictureImportBGR) LOSSLESS_ENCODE_FUNC(WebPEncodeLosslessRGBA, WebPPictureImportRGBA) +#if !defined(WEBP_REDUCE_CSP) +LOSSLESS_ENCODE_FUNC(WebPEncodeLosslessBGR, WebPPictureImportBGR) LOSSLESS_ENCODE_FUNC(WebPEncodeLosslessBGRA, WebPPictureImportBGRA) +#endif // WEBP_REDUCE_CSP #undef LOSSLESS_ENCODE_FUNC diff --git a/external/libwebp-0.6.0/src/enc/picture_psnr_enc.c b/external/libwebp-1.0.0/src/enc/picture_psnr_enc.c similarity index 83% rename from external/libwebp-0.6.0/src/enc/picture_psnr_enc.c rename to external/libwebp-1.0.0/src/enc/picture_psnr_enc.c index 9c0b2295..1a2f0bef 100644 --- a/external/libwebp-0.6.0/src/enc/picture_psnr_enc.c +++ b/external/libwebp-1.0.0/src/enc/picture_psnr_enc.c @@ -11,11 +11,16 @@ // // Author: Skal (pascal.massimino@gmail.com) +#include "src/webp/encode.h" + +#if !(defined(WEBP_DISABLE_STATS) || defined(WEBP_REDUCE_SIZE)) + #include #include -#include "./vp8i_enc.h" -#include "../utils/utils.h" +#include "src/dsp/dsp.h" +#include "src/enc/vp8i_enc.h" +#include "src/utils/utils.h" typedef double (*AccumulateFunc)(const uint8_t* src, int src_stride, const uint8_t* ref, int ref_stride, @@ -165,6 +170,12 @@ int WebPPlaneDistortion(const uint8_t* src, size_t src_stride, return 1; } +#ifdef WORDS_BIGENDIAN +#define BLUE_OFFSET 3 // uint32_t 0x000000ff is 0x00,00,00,ff in memory +#else +#define BLUE_OFFSET 0 // uint32_t 0x000000ff is 0xff,00,00,00 in memory +#endif + int WebPPictureDistortion(const WebPPicture* src, const WebPPicture* ref, int type, float results[5]) { int w, h, c; @@ -191,8 +202,10 @@ int WebPPictureDistortion(const WebPPicture* src, const WebPPicture* ref, float distortion; const size_t stride0 = 4 * (size_t)p0.argb_stride; const size_t stride1 = 4 * (size_t)p1.argb_stride; - if (!WebPPlaneDistortion((const uint8_t*)p0.argb + c, stride0, - (const uint8_t*)p1.argb + c, stride1, + // results are reported as BGRA + const int offset = c ^ BLUE_OFFSET; + if (!WebPPlaneDistortion((const uint8_t*)p0.argb + offset, stride0, + (const uint8_t*)p1.argb + offset, stride1, w, h, 4, type, &distortion, results + c)) { goto Error; } @@ -210,4 +223,36 @@ int WebPPictureDistortion(const WebPPicture* src, const WebPPicture* ref, return ok; } -//------------------------------------------------------------------------------ +#undef BLUE_OFFSET + +#else // defined(WEBP_DISABLE_STATS) +int WebPPlaneDistortion(const uint8_t* src, size_t src_stride, + const uint8_t* ref, size_t ref_stride, + int width, int height, size_t x_step, + int type, float* distortion, float* result) { + (void)src; + (void)src_stride; + (void)ref; + (void)ref_stride; + (void)width; + (void)height; + (void)x_step; + (void)type; + if (distortion == NULL || result == NULL) return 0; + *distortion = 0.f; + *result = 0.f; + return 1; +} + +int WebPPictureDistortion(const WebPPicture* src, const WebPPicture* ref, + int type, float results[5]) { + int i; + (void)src; + (void)ref; + (void)type; + if (results == NULL) return 0; + for (i = 0; i < 5; ++i) results[i] = 0.f; + return 1; +} + +#endif // !defined(WEBP_DISABLE_STATS) diff --git a/external/libwebp-0.6.0/src/enc/picture_rescale_enc.c b/external/libwebp-1.0.0/src/enc/picture_rescale_enc.c similarity index 90% rename from external/libwebp-0.6.0/src/enc/picture_rescale_enc.c rename to external/libwebp-1.0.0/src/enc/picture_rescale_enc.c index 0b7181c0..58a6ae7b 100644 --- a/external/libwebp-0.6.0/src/enc/picture_rescale_enc.c +++ b/external/libwebp-1.0.0/src/enc/picture_rescale_enc.c @@ -11,12 +11,16 @@ // // Author: Skal (pascal.massimino@gmail.com) +#include "src/webp/encode.h" + +#if !defined(WEBP_REDUCE_SIZE) + #include #include -#include "./vp8i_enc.h" -#include "../utils/rescaler_utils.h" -#include "../utils/utils.h" +#include "src/enc/vp8i_enc.h" +#include "src/utils/rescaler_utils.h" +#include "src/utils/utils.h" #define HALVE(x) (((x) + 1) >> 1) @@ -261,4 +265,45 @@ int WebPPictureRescale(WebPPicture* pic, int width, int height) { return 1; } -//------------------------------------------------------------------------------ +#else // defined(WEBP_REDUCE_SIZE) + +int WebPPictureCopy(const WebPPicture* src, WebPPicture* dst) { + (void)src; + (void)dst; + return 0; +} + +int WebPPictureIsView(const WebPPicture* picture) { + (void)picture; + return 0; +} + +int WebPPictureView(const WebPPicture* src, + int left, int top, int width, int height, + WebPPicture* dst) { + (void)src; + (void)left; + (void)top; + (void)width; + (void)height; + (void)dst; + return 0; +} + +int WebPPictureCrop(WebPPicture* pic, + int left, int top, int width, int height) { + (void)pic; + (void)left; + (void)top; + (void)width; + (void)height; + return 0; +} + +int WebPPictureRescale(WebPPicture* pic, int width, int height) { + (void)pic; + (void)width; + (void)height; + return 0; +} +#endif // !defined(WEBP_REDUCE_SIZE) diff --git a/external/libwebp-0.6.0/src/enc/picture_tools_enc.c b/external/libwebp-1.0.0/src/enc/picture_tools_enc.c similarity index 64% rename from external/libwebp-0.6.0/src/enc/picture_tools_enc.c rename to external/libwebp-1.0.0/src/enc/picture_tools_enc.c index 895df511..be292d43 100644 --- a/external/libwebp-0.6.0/src/enc/picture_tools_enc.c +++ b/external/libwebp-1.0.0/src/enc/picture_tools_enc.c @@ -13,8 +13,8 @@ #include -#include "./vp8i_enc.h" -#include "../dsp/yuv.h" +#include "src/enc/vp8i_enc.h" +#include "src/dsp/yuv.h" static WEBP_INLINE uint32_t MakeARGB32(int r, int g, int b) { return (0xff000000u | (r << 16) | (g << 8) | b); @@ -25,20 +25,7 @@ static WEBP_INLINE uint32_t MakeARGB32(int r, int g, int b) { #define SIZE 8 #define SIZE2 (SIZE / 2) -static int is_transparent_area(const uint8_t* ptr, int stride, int size) { - int y, x; - for (y = 0; y < size; ++y) { - for (x = 0; x < size; ++x) { - if (ptr[x]) { - return 0; - } - } - ptr += stride; - } - return 1; -} - -static int is_transparent_argb_area(const uint32_t* ptr, int stride, int size) { +static int IsTransparentARGBArea(const uint32_t* ptr, int stride, int size) { int y, x; for (y = 0; y < size; ++y) { for (x = 0; x < size; ++x) { @@ -51,7 +38,7 @@ static int is_transparent_argb_area(const uint32_t* ptr, int stride, int size) { return 1; } -static void flatten(uint8_t* ptr, int v, int stride, int size) { +static void Flatten(uint8_t* ptr, int v, int stride, int size) { int y; for (y = 0; y < size; ++y) { memset(ptr, v, size); @@ -59,7 +46,7 @@ static void flatten(uint8_t* ptr, int v, int stride, int size) { } } -static void flatten_argb(uint32_t* ptr, uint32_t v, int stride, int size) { +static void FlattenARGB(uint32_t* ptr, uint32_t v, int stride, int size) { int x, y; for (y = 0; y < size; ++y) { for (x = 0; x < size; ++x) ptr[x] = v; @@ -67,54 +54,114 @@ static void flatten_argb(uint32_t* ptr, uint32_t v, int stride, int size) { } } +// Smoothen the luma components of transparent pixels. Return true if the whole +// block is transparent. +static int SmoothenBlock(const uint8_t* a_ptr, int a_stride, uint8_t* y_ptr, + int y_stride, int width, int height) { + int sum = 0, count = 0; + int x, y; + const uint8_t* alpha_ptr = a_ptr; + uint8_t* luma_ptr = y_ptr; + for (y = 0; y < height; ++y) { + for (x = 0; x < width; ++x) { + if (alpha_ptr[x] != 0) { + ++count; + sum += luma_ptr[x]; + } + } + alpha_ptr += a_stride; + luma_ptr += y_stride; + } + if (count > 0 && count < width * height) { + const uint8_t avg_u8 = (uint8_t)(sum / count); + alpha_ptr = a_ptr; + luma_ptr = y_ptr; + for (y = 0; y < height; ++y) { + for (x = 0; x < width; ++x) { + if (alpha_ptr[x] == 0) luma_ptr[x] = avg_u8; + } + alpha_ptr += a_stride; + luma_ptr += y_stride; + } + } + return (count == 0); +} + void WebPCleanupTransparentArea(WebPPicture* pic) { int x, y, w, h; if (pic == NULL) return; w = pic->width / SIZE; h = pic->height / SIZE; - // note: we ignore the left-overs on right/bottom + // note: we ignore the left-overs on right/bottom, except for SmoothenBlock(). if (pic->use_argb) { uint32_t argb_value = 0; for (y = 0; y < h; ++y) { int need_reset = 1; for (x = 0; x < w; ++x) { const int off = (y * pic->argb_stride + x) * SIZE; - if (is_transparent_argb_area(pic->argb + off, pic->argb_stride, SIZE)) { + if (IsTransparentARGBArea(pic->argb + off, pic->argb_stride, SIZE)) { if (need_reset) { argb_value = pic->argb[off]; need_reset = 0; } - flatten_argb(pic->argb + off, argb_value, pic->argb_stride, SIZE); + FlattenARGB(pic->argb + off, argb_value, pic->argb_stride, SIZE); } else { need_reset = 1; } } } } else { - const uint8_t* const a_ptr = pic->a; + const int width = pic->width; + const int height = pic->height; + const int y_stride = pic->y_stride; + const int uv_stride = pic->uv_stride; + const int a_stride = pic->a_stride; + uint8_t* y_ptr = pic->y; + uint8_t* u_ptr = pic->u; + uint8_t* v_ptr = pic->v; + const uint8_t* a_ptr = pic->a; int values[3] = { 0 }; - if (a_ptr == NULL) return; // nothing to do - for (y = 0; y < h; ++y) { + if (a_ptr == NULL || y_ptr == NULL || u_ptr == NULL || v_ptr == NULL) { + return; + } + for (y = 0; y + SIZE <= height; y += SIZE) { int need_reset = 1; - for (x = 0; x < w; ++x) { - const int off_a = (y * pic->a_stride + x) * SIZE; - const int off_y = (y * pic->y_stride + x) * SIZE; - const int off_uv = (y * pic->uv_stride + x) * SIZE2; - if (is_transparent_area(a_ptr + off_a, pic->a_stride, SIZE)) { + for (x = 0; x + SIZE <= width; x += SIZE) { + if (SmoothenBlock(a_ptr + x, a_stride, y_ptr + x, y_stride, + SIZE, SIZE)) { if (need_reset) { - values[0] = pic->y[off_y]; - values[1] = pic->u[off_uv]; - values[2] = pic->v[off_uv]; + values[0] = y_ptr[x]; + values[1] = u_ptr[x >> 1]; + values[2] = v_ptr[x >> 1]; need_reset = 0; } - flatten(pic->y + off_y, values[0], pic->y_stride, SIZE); - flatten(pic->u + off_uv, values[1], pic->uv_stride, SIZE2); - flatten(pic->v + off_uv, values[2], pic->uv_stride, SIZE2); + Flatten(y_ptr + x, values[0], y_stride, SIZE); + Flatten(u_ptr + (x >> 1), values[1], uv_stride, SIZE2); + Flatten(v_ptr + (x >> 1), values[2], uv_stride, SIZE2); } else { need_reset = 1; } } + if (x < width) { + SmoothenBlock(a_ptr + x, a_stride, y_ptr + x, y_stride, + width - x, SIZE); + } + a_ptr += SIZE * a_stride; + y_ptr += SIZE * y_stride; + u_ptr += SIZE2 * uv_stride; + v_ptr += SIZE2 * uv_stride; + } + if (y < height) { + const int sub_height = height - y; + for (x = 0; x + SIZE <= width; x += SIZE) { + SmoothenBlock(a_ptr + x, a_stride, y_ptr + x, y_stride, + SIZE, sub_height); + } + if (x < width) { + SmoothenBlock(a_ptr + x, a_stride, y_ptr + x, y_stride, + width - x, sub_height); + } } } } @@ -144,9 +191,9 @@ void WebPCleanupTransparentAreaLossless(WebPPicture* const pic) { // Blend color and remove transparency info #define BLEND(V0, V1, ALPHA) \ - ((((V0) * (255 - (ALPHA)) + (V1) * (ALPHA)) * 0x101) >> 16) + ((((V0) * (255 - (ALPHA)) + (V1) * (ALPHA)) * 0x101 + 256) >> 16) #define BLEND_10BIT(V0, V1, ALPHA) \ - ((((V0) * (1020 - (ALPHA)) + (V1) * (ALPHA)) * 0x101) >> 18) + ((((V0) * (1020 - (ALPHA)) + (V1) * (ALPHA)) * 0x101 + 1024) >> 18) void WebPBlendAlpha(WebPPicture* pic, uint32_t background_rgb) { const int red = (background_rgb >> 16) & 0xff; diff --git a/external/libwebp-0.6.0/src/enc/predictor_enc.c b/external/libwebp-1.0.0/src/enc/predictor_enc.c similarity index 96% rename from external/libwebp-0.6.0/src/enc/predictor_enc.c rename to external/libwebp-1.0.0/src/enc/predictor_enc.c index 0639b74f..f3715f51 100644 --- a/external/libwebp-0.6.0/src/enc/predictor_enc.c +++ b/external/libwebp-1.0.0/src/enc/predictor_enc.c @@ -14,9 +14,9 @@ // Urvang Joshi (urvang@google.com) // Vincent Rabaud (vrabaud@google.com) -#include "../dsp/lossless.h" -#include "../dsp/lossless_common.h" -#include "./vp8li_enc.h" +#include "src/dsp/lossless.h" +#include "src/dsp/lossless_common.h" +#include "src/enc/vp8li_enc.h" #define MAX_DIFF_COST (1e30f) @@ -26,7 +26,6 @@ static const uint32_t kMaskAlpha = 0xff000000; // Mostly used to reduce code size + readability static WEBP_INLINE int GetMin(int a, int b) { return (a > b) ? b : a; } -static WEBP_INLINE int GetMax(int a, int b) { return (a < b) ? b : a; } //------------------------------------------------------------------------------ // Methods to calculate Entropy (Shannon). @@ -90,6 +89,9 @@ static WEBP_INLINE void PredictBatch(int mode, int x_start, int y, } } +#if (WEBP_NEAR_LOSSLESS == 1) +static WEBP_INLINE int GetMax(int a, int b) { return (a < b) ? b : a; } + static int MaxDiffBetweenPixels(uint32_t p1, uint32_t p2) { const int diff_a = abs((int)(p1 >> 24) - (int)(p2 >> 24)); const int diff_r = abs((int)((p1 >> 16) & 0xff) - (int)((p2 >> 16) & 0xff)); @@ -180,6 +182,7 @@ static uint8_t NearLosslessComponent(uint8_t value, uint8_t predict, // max_quantization which is a power of 2, smaller than max_diff). Take care if // value and predict have undergone subtract green, which means that red and // blue are represented as offsets from green. +#define NEAR_LOSSLESS_DIFF(a, b) (uint8_t)((((int)(a) - (int)(b))) & 0xff) static uint32_t NearLossless(uint32_t value, uint32_t predict, int max_quantization, int max_diff, int used_subtract_green) { @@ -196,7 +199,7 @@ static uint32_t NearLossless(uint32_t value, uint32_t predict, } if ((value >> 24) == 0 || (value >> 24) == 0xff) { // Preserve transparency of fully transparent or fully opaque pixels. - a = ((value >> 24) - (predict >> 24)) & 0xff; + a = NEAR_LOSSLESS_DIFF(value >> 24, predict >> 24); } else { a = NearLosslessComponent(value >> 24, predict >> 24, 0xff, quantization); } @@ -209,15 +212,17 @@ static uint32_t NearLossless(uint32_t value, uint32_t predict, // The amount by which green has been adjusted during quantization. It is // subtracted from red and blue for compensation, to avoid accumulating two // quantization errors in them. - green_diff = (new_green - (value >> 8)) & 0xff; + green_diff = NEAR_LOSSLESS_DIFF(new_green, value >> 8); } - r = NearLosslessComponent(((value >> 16) - green_diff) & 0xff, + r = NearLosslessComponent(NEAR_LOSSLESS_DIFF(value >> 16, green_diff), (predict >> 16) & 0xff, 0xff - new_green, quantization); - b = NearLosslessComponent((value - green_diff) & 0xff, predict & 0xff, - 0xff - new_green, quantization); + b = NearLosslessComponent(NEAR_LOSSLESS_DIFF(value, green_diff), + predict & 0xff, 0xff - new_green, quantization); return ((uint32_t)a << 24) | ((uint32_t)r << 16) | ((uint32_t)g << 8) | b; } +#undef NEAR_LOSSLESS_DIFF +#endif // (WEBP_NEAR_LOSSLESS == 1) // Stores the difference between the pixel and its prediction in "out". // In case of a lossy encoding, updates the source image to avoid propagating @@ -244,6 +249,7 @@ static WEBP_INLINE void GetResidual( } else { predict = pred_func(current_row[x - 1], upper_row + x); } +#if (WEBP_NEAR_LOSSLESS == 1) if (max_quantization == 1 || mode == 0 || y == 0 || y == height - 1 || x == 0 || x == width - 1) { residual = VP8LSubPixels(current_row[x], predict); @@ -254,6 +260,13 @@ static WEBP_INLINE void GetResidual( current_row[x] = VP8LAddPixels(predict, residual); // x is never 0 here so we do not need to update upper_row like below. } +#else + (void)max_diffs; + (void)height; + (void)max_quantization; + (void)used_subtract_green; + residual = VP8LSubPixels(current_row[x], predict); +#endif if ((current_row[x] & kMaskAlpha) == 0) { // If alpha is 0, cleanup RGB. We can choose the RGB values of the // residual for best compression. The prediction of alpha itself can be @@ -296,11 +309,12 @@ static int GetBestPredictorForTile(int width, int height, const int max_x = GetMin(tile_size, width - start_x); // Whether there exist columns just outside the tile. const int have_left = (start_x > 0); - const int have_right = (max_x < width - start_x); // Position and size of the strip covering the tile and adjacent columns if // they exist. const int context_start_x = start_x - have_left; - const int context_width = max_x + have_left + have_right; +#if (WEBP_NEAR_LOSSLESS == 1) + const int context_width = max_x + have_left + (max_x < width - start_x); +#endif const int tiles_per_row = VP8LSubSampleSize(width, bits); // Prediction modes of the left and above neighbor tiles. const int left_mode = (tile_x > 0) ? @@ -352,10 +366,12 @@ static int GetBestPredictorForTile(int width, int height, memcpy(current_row + context_start_x, argb + y * width + context_start_x, sizeof(*argb) * (max_x + have_left + (y + 1 < height))); +#if (WEBP_NEAR_LOSSLESS == 1) if (max_quantization > 1 && y >= 1 && y + 1 < height) { MaxDiffsForRow(context_width, width, argb + y * width + context_start_x, max_diffs + context_start_x, used_subtract_green); } +#endif GetResidual(width, height, upper_row, current_row, max_diffs, mode, start_x, start_x + max_x, y, max_quantization, exact, @@ -405,7 +421,9 @@ static void CopyImageWithPrediction(int width, int height, uint32_t* upper_row = argb_scratch; uint32_t* current_row = upper_row + width + 1; uint8_t* current_max_diffs = (uint8_t*)(current_row + width + 1); +#if (WEBP_NEAR_LOSSLESS == 1) uint8_t* lower_max_diffs = current_max_diffs + width; +#endif int y; for (y = 0; y < height; ++y) { @@ -420,6 +438,7 @@ static void CopyImageWithPrediction(int width, int height, PredictBatch(kPredLowEffort, 0, y, width, current_row, upper_row, argb + y * width); } else { +#if (WEBP_NEAR_LOSSLESS == 1) if (max_quantization > 1) { // Compute max_diffs for the lower row now, because that needs the // contents of argb for the current row, which we will overwrite with @@ -432,6 +451,7 @@ static void CopyImageWithPrediction(int width, int height, used_subtract_green); } } +#endif for (x = 0; x < width;) { const int mode = (modes[(y >> bits) * tiles_per_row + (x >> bits)] >> 8) & 0xff; diff --git a/external/libwebp-0.6.0/src/enc/quant_enc.c b/external/libwebp-1.0.0/src/enc/quant_enc.c similarity index 92% rename from external/libwebp-0.6.0/src/enc/quant_enc.c rename to external/libwebp-1.0.0/src/enc/quant_enc.c index b118fb2a..35bfaf21 100644 --- a/external/libwebp-0.6.0/src/enc/quant_enc.c +++ b/external/libwebp-1.0.0/src/enc/quant_enc.c @@ -15,8 +15,8 @@ #include #include // for abs() -#include "./vp8i_enc.h" -#include "./cost_enc.h" +#include "src/enc/vp8i_enc.h" +#include "src/enc/cost_enc.h" #define DO_TRELLIS_I4 1 #define DO_TRELLIS_I16 1 // not a huge gain, but ok at low bitrate. @@ -457,11 +457,11 @@ void VP8SetSegmentParams(VP8Encoder* const enc, float quality) { // Form the predictions in cache // Must be ordered using {DC_PRED, TM_PRED, V_PRED, H_PRED} as index -const int VP8I16ModeOffsets[4] = { I16DC16, I16TM16, I16VE16, I16HE16 }; -const int VP8UVModeOffsets[4] = { C8DC8, C8TM8, C8VE8, C8HE8 }; +const uint16_t VP8I16ModeOffsets[4] = { I16DC16, I16TM16, I16VE16, I16HE16 }; +const uint16_t VP8UVModeOffsets[4] = { C8DC8, C8TM8, C8VE8, C8HE8 }; // Must be indexed using {B_DC_PRED -> B_HU_PRED} as index -const int VP8I4ModeOffsets[NUM_BMODES] = { +const uint16_t VP8I4ModeOffsets[NUM_BMODES] = { I4DC4, I4TM4, I4VE4, I4HE4, I4RD4, I4VR4, I4LD4, I4VL4, I4HD4, I4HU4 }; @@ -492,14 +492,14 @@ void VP8MakeIntra4Preds(const VP8EncIterator* const it) { // |YYYY|....| 12 // +----+----+ -const int VP8Scan[16] = { // Luma +const uint16_t VP8Scan[16] = { // Luma 0 + 0 * BPS, 4 + 0 * BPS, 8 + 0 * BPS, 12 + 0 * BPS, 0 + 4 * BPS, 4 + 4 * BPS, 8 + 4 * BPS, 12 + 4 * BPS, 0 + 8 * BPS, 4 + 8 * BPS, 8 + 8 * BPS, 12 + 8 * BPS, 0 + 12 * BPS, 4 + 12 * BPS, 8 + 12 * BPS, 12 + 12 * BPS, }; -static const int VP8ScanUV[4 + 4] = { +static const uint16_t VP8ScanUV[4 + 4] = { 0 + 0 * BPS, 4 + 0 * BPS, 0 + 4 * BPS, 4 + 4 * BPS, // U 8 + 0 * BPS, 12 + 0 * BPS, 8 + 4 * BPS, 12 + 4 * BPS // V }; @@ -826,6 +826,85 @@ static int ReconstructIntra4(VP8EncIterator* const it, return nz; } +//------------------------------------------------------------------------------ +// DC-error diffusion + +// Diffusion weights. We under-correct a bit (15/16th of the error is actually +// diffused) to avoid 'rainbow' chessboard pattern of blocks at q~=0. +#define C1 7 // fraction of error sent to the 4x4 block below +#define C2 8 // fraction of error sent to the 4x4 block on the right +#define DSHIFT 4 +#define DSCALE 1 // storage descaling, needed to make the error fit int8_t + +// Quantize as usual, but also compute and return the quantization error. +// Error is already divided by DSHIFT. +static int QuantizeSingle(int16_t* const v, const VP8Matrix* const mtx) { + int V = *v; + const int sign = (V < 0); + if (sign) V = -V; + if (V > (int)mtx->zthresh_[0]) { + const int qV = QUANTDIV(V, mtx->iq_[0], mtx->bias_[0]) * mtx->q_[0]; + const int err = (V - qV); + *v = sign ? -qV : qV; + return (sign ? -err : err) >> DSCALE; + } + *v = 0; + return (sign ? -V : V) >> DSCALE; +} + +static void CorrectDCValues(const VP8EncIterator* const it, + const VP8Matrix* const mtx, + int16_t tmp[][16], VP8ModeScore* const rd) { + // | top[0] | top[1] + // --------+--------+--------- + // left[0] | tmp[0] tmp[1] <-> err0 err1 + // left[1] | tmp[2] tmp[3] err2 err3 + // + // Final errors {err1,err2,err3} are preserved and later restored + // as top[]/left[] on the next block. + int ch; + for (ch = 0; ch <= 1; ++ch) { + const int8_t* const top = it->top_derr_[it->x_][ch]; + const int8_t* const left = it->left_derr_[ch]; + int16_t (* const c)[16] = &tmp[ch * 4]; + int err0, err1, err2, err3; + c[0][0] += (C1 * top[0] + C2 * left[0]) >> (DSHIFT - DSCALE); + err0 = QuantizeSingle(&c[0][0], mtx); + c[1][0] += (C1 * top[1] + C2 * err0) >> (DSHIFT - DSCALE); + err1 = QuantizeSingle(&c[1][0], mtx); + c[2][0] += (C1 * err0 + C2 * left[1]) >> (DSHIFT - DSCALE); + err2 = QuantizeSingle(&c[2][0], mtx); + c[3][0] += (C1 * err1 + C2 * err2) >> (DSHIFT - DSCALE); + err3 = QuantizeSingle(&c[3][0], mtx); + // error 'err' is bounded by mtx->q_[0] which is 132 at max. Hence + // err >> DSCALE will fit in an int8_t type if DSCALE>=1. + assert(abs(err1) <= 127 && abs(err2) <= 127 && abs(err3) <= 127); + rd->derr[ch][0] = (int8_t)err1; + rd->derr[ch][1] = (int8_t)err2; + rd->derr[ch][2] = (int8_t)err3; + } +} + +static void StoreDiffusionErrors(VP8EncIterator* const it, + const VP8ModeScore* const rd) { + int ch; + for (ch = 0; ch <= 1; ++ch) { + int8_t* const top = it->top_derr_[it->x_][ch]; + int8_t* const left = it->left_derr_[ch]; + left[0] = rd->derr[ch][0]; // restore err1 + left[1] = 3 * rd->derr[ch][2] >> 2; // ... 3/4th of err3 + top[0] = rd->derr[ch][1]; // ... err2 + top[1] = rd->derr[ch][2] - left[1]; // ... 1/4th of err3. + } +} + +#undef C1 +#undef C2 +#undef DSHIFT +#undef DSCALE + +//------------------------------------------------------------------------------ + static int ReconstructUV(VP8EncIterator* const it, VP8ModeScore* const rd, uint8_t* const yuv_out, int mode) { const VP8Encoder* const enc = it->enc_; @@ -839,6 +918,8 @@ static int ReconstructUV(VP8EncIterator* const it, VP8ModeScore* const rd, for (n = 0; n < 8; n += 2) { VP8FTransform2(src + VP8ScanUV[n], ref + VP8ScanUV[n], tmp[n]); } + if (it->top_derr_ != NULL) CorrectDCValues(it, &dqm->uv_, tmp, rd); + if (DO_TRELLIS_UV && it->do_trellis_) { int ch, x, y; for (ch = 0, n = 0; ch <= 2; ch += 2) { @@ -1101,6 +1182,9 @@ static void PickBestUV(VP8EncIterator* const it, VP8ModeScore* const rd) { CopyScore(&rd_best, &rd_uv); rd->mode_uv = mode; memcpy(rd->uv_levels, rd_uv.uv_levels, sizeof(rd->uv_levels)); + if (it->top_derr_ != NULL) { + memcpy(rd->derr, rd_uv.derr, sizeof(rd_uv.derr)); + } SwapPtr(&dst, &tmp_dst); } } @@ -1109,6 +1193,9 @@ static void PickBestUV(VP8EncIterator* const it, VP8ModeScore* const rd) { if (dst != dst0) { // copy 16x8 block if needed VP8Copy16x8(dst, dst0); } + if (it->top_derr_ != NULL) { // store diffusion errors for next block + StoreDiffusionErrors(it, rd); + } } //------------------------------------------------------------------------------ @@ -1162,7 +1249,7 @@ static void RefineUsingDistortion(VP8EncIterator* const it, const uint8_t* const src = it->yuv_in_ + Y_OFF_ENC; for (mode = 0; mode < NUM_PRED_MODES; ++mode) { const uint8_t* const ref = it->yuv_p_ + VP8I16ModeOffsets[mode]; - const score_t score = VP8SSE16x16(src, ref) * RD_DISTO_MULT + const score_t score = (score_t)VP8SSE16x16(src, ref) * RD_DISTO_MULT + VP8FixedCostsI16[mode] * lambda_d_i16; if (mode > 0 && VP8FixedCostsI16[mode] > bit_limit) { continue; diff --git a/external/libwebp-0.6.0/src/enc/syntax_enc.c b/external/libwebp-1.0.0/src/enc/syntax_enc.c similarity index 97% rename from external/libwebp-0.6.0/src/enc/syntax_enc.c rename to external/libwebp-1.0.0/src/enc/syntax_enc.c index 90665bd7..a9e5a6cf 100644 --- a/external/libwebp-0.6.0/src/enc/syntax_enc.c +++ b/external/libwebp-1.0.0/src/enc/syntax_enc.c @@ -13,10 +13,10 @@ #include -#include "../utils/utils.h" -#include "../webp/format_constants.h" // RIFF constants -#include "../webp/mux_types.h" // ALPHA_FLAG -#include "./vp8i_enc.h" +#include "src/utils/utils.h" +#include "src/webp/format_constants.h" // RIFF constants +#include "src/webp/mux_types.h" // ALPHA_FLAG +#include "src/enc/vp8i_enc.h" //------------------------------------------------------------------------------ // Helper functions @@ -289,11 +289,17 @@ static int GeneratePartition0(VP8Encoder* const enc) { pos3 = VP8BitWriterPos(bw); +#if !defined(WEBP_DISABLE_STATS) if (enc->pic_->stats) { enc->pic_->stats->header_bytes[0] = (int)((pos2 - pos1 + 7) >> 3); enc->pic_->stats->header_bytes[1] = (int)((pos3 - pos2 + 7) >> 3); enc->pic_->stats->alpha_data_size = (int)enc->alpha_data_size_; } +#else + (void)pos1; + (void)pos2; + (void)pos3; +#endif if (bw->error_) { return WebPEncodingSetError(enc->pic_, VP8_ENC_ERROR_OUT_OF_MEMORY); } diff --git a/external/libwebp-0.6.0/src/enc/token_enc.c b/external/libwebp-1.0.0/src/enc/token_enc.c similarity index 88% rename from external/libwebp-0.6.0/src/enc/token_enc.c rename to external/libwebp-1.0.0/src/enc/token_enc.c index 02a0d72c..3a2192ac 100644 --- a/external/libwebp-0.6.0/src/enc/token_enc.c +++ b/external/libwebp-1.0.0/src/enc/token_enc.c @@ -20,9 +20,9 @@ #include #include -#include "./cost_enc.h" -#include "./vp8i_enc.h" -#include "../utils/utils.h" +#include "src/enc/cost_enc.h" +#include "src/enc/vp8i_enc.h" +#include "src/utils/utils.h" #if !defined(DISABLE_TOKEN_BUFFER) @@ -194,39 +194,6 @@ int VP8RecordCoeffTokens(int ctx, const struct VP8Residual* const res, #undef TOKEN_ID -//------------------------------------------------------------------------------ -// This function works, but isn't currently used. Saved for later. - -#if 0 - -static void Record(int bit, proba_t* const stats) { - proba_t p = *stats; - if (p >= 0xffff0000u) { // an overflow is inbound. - p = ((p + 1u) >> 1) & 0x7fff7fffu; // -> divide the stats by 2. - } - // record bit count (lower 16 bits) and increment total count (upper 16 bits). - p += 0x00010000u + bit; - *stats = p; -} - -void VP8TokenToStats(const VP8TBuffer* const b, proba_t* const stats) { - const VP8Tokens* p = b->pages_; - while (p != NULL) { - const int N = (p->next_ == NULL) ? b->left_ : 0; - int n = MAX_NUM_TOKEN; - const token_t* const tokens = TOKEN_DATA(p); - while (n-- > N) { - const token_t token = tokens[n]; - if (!(token & FIXED_PROBA_BIT)) { - Record((token >> 15) & 1, stats + (token & 0x3fffu)); - } - } - p = p->next_; - } -} - -#endif // 0 - //------------------------------------------------------------------------------ // Final coding pass, with known probabilities @@ -283,8 +250,9 @@ size_t VP8EstimateTokenSize(VP8TBuffer* const b, const uint8_t* const probas) { #else // DISABLE_TOKEN_BUFFER -void VP8TBufferInit(VP8TBuffer* const b) { +void VP8TBufferInit(VP8TBuffer* const b, int page_size) { (void)b; + (void)page_size; } void VP8TBufferClear(VP8TBuffer* const b) { (void)b; diff --git a/external/libwebp-0.6.0/src/enc/tree_enc.c b/external/libwebp-1.0.0/src/enc/tree_enc.c similarity index 99% rename from external/libwebp-0.6.0/src/enc/tree_enc.c rename to external/libwebp-1.0.0/src/enc/tree_enc.c index 2c40fe7f..64ed2836 100644 --- a/external/libwebp-0.6.0/src/enc/tree_enc.c +++ b/external/libwebp-1.0.0/src/enc/tree_enc.c @@ -11,7 +11,7 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./vp8i_enc.h" +#include "src/enc/vp8i_enc.h" //------------------------------------------------------------------------------ // Default probabilities diff --git a/external/libwebp-0.6.0/src/enc/vp8i_enc.h b/external/libwebp-1.0.0/src/enc/vp8i_enc.h similarity index 94% rename from external/libwebp-0.6.0/src/enc/vp8i_enc.h rename to external/libwebp-1.0.0/src/enc/vp8i_enc.h index 93c95ecb..624e8f8e 100644 --- a/external/libwebp-0.6.0/src/enc/vp8i_enc.h +++ b/external/libwebp-1.0.0/src/enc/vp8i_enc.h @@ -11,16 +11,16 @@ // // Author: Skal (pascal.massimino@gmail.com) -#ifndef WEBP_ENC_VP8ENCI_H_ -#define WEBP_ENC_VP8ENCI_H_ +#ifndef WEBP_ENC_VP8I_ENC_H_ +#define WEBP_ENC_VP8I_ENC_H_ #include // for memcpy() -#include "../dec/common_dec.h" -#include "../dsp/dsp.h" -#include "../utils/bit_writer_utils.h" -#include "../utils/thread_utils.h" -#include "../utils/utils.h" -#include "../webp/encode.h" +#include "src/dec/common_dec.h" +#include "src/dsp/dsp.h" +#include "src/utils/bit_writer_utils.h" +#include "src/utils/thread_utils.h" +#include "src/utils/utils.h" +#include "src/webp/encode.h" #ifdef __cplusplus extern "C" { @@ -30,8 +30,8 @@ extern "C" { // Various defines and enums // version numbers -#define ENC_MAJ_VERSION 0 -#define ENC_MIN_VERSION 6 +#define ENC_MAJ_VERSION 1 +#define ENC_MIN_VERSION 0 #define ENC_REV_VERSION 0 enum { MAX_LF_LEVELS = 64, // Maximum loop filter level @@ -75,10 +75,10 @@ typedef enum { // Rate-distortion optimization levels #define U_OFF_ENC (16) #define V_OFF_ENC (16 + 8) -extern const int VP8Scan[16]; // in quant.c -extern const int VP8UVModeOffsets[4]; // in analyze.c -extern const int VP8I16ModeOffsets[4]; -extern const int VP8I4ModeOffsets[NUM_BMODES]; +extern const uint16_t VP8Scan[16]; +extern const uint16_t VP8UVModeOffsets[4]; +extern const uint16_t VP8I16ModeOffsets[4]; +extern const uint16_t VP8I4ModeOffsets[NUM_BMODES]; // Layout of prediction blocks // intra 16x16 @@ -120,6 +120,9 @@ static WEBP_INLINE int QUANTDIV(uint32_t n, uint32_t iQ, uint32_t B) { // Uncomment the following to remove token-buffer code: // #define DISABLE_TOKEN_BUFFER +// quality below which error-diffusion is enabled +#define ERROR_DIFFUSION_QUALITY 98 + //------------------------------------------------------------------------------ // Headers @@ -201,6 +204,8 @@ typedef struct { score_t i4_penalty_; // penalty for using Intra4 } VP8SegmentInfo; +typedef int8_t DError[2 /* u/v */][2 /* top or left */]; + // Handy transient struct to accumulate score and info during RD-optimization // and mode evaluation. typedef struct { @@ -213,6 +218,7 @@ typedef struct { uint8_t modes_i4[16]; // mode numbers for intra4 predictions int mode_uv; // mode number of chroma prediction uint32_t nz; // non-zero blocks + int8_t derr[2][3]; // DC diffusion errors for U/V for blocks #1/2/3 } VP8ModeScore; // Iterator structure to iterate through macroblocks, pointing to the @@ -242,6 +248,9 @@ typedef struct { int count_down0_; // starting counter value (for progress) int percent0_; // saved initial progress percent + DError left_derr_; // left error diffusion (u/v) + DError *top_derr_; // top diffusion error - NULL if disabled + uint8_t* y_left_; // left luma samples (addressable from index -1 to 15). uint8_t* u_left_; // left u samples (addressable from index -1 to 7) uint8_t* v_left_; // left v samples (addressable from index -1 to 7) @@ -330,9 +339,6 @@ int VP8RecordCoeffTokens(int ctx, const struct VP8Residual* const res, // Estimate the final coded size given a set of 'probas'. size_t VP8EstimateTokenSize(VP8TBuffer* const b, const uint8_t* const probas); -// unused for now -void VP8TokenToStats(const VP8TBuffer* const b, proba_t* const stats); - #endif // !DISABLE_TOKEN_BUFFER //------------------------------------------------------------------------------ @@ -404,6 +410,7 @@ struct VP8Encoder { uint8_t* uv_top_; // top u/v samples. // U and V are packed into 16 bytes (8 U + 8 V) LFStats* lf_stats_; // autofilter stats (if NULL, autofilter is off) + DError* top_derr_; // diffusion error (NULL if disabled) }; //------------------------------------------------------------------------------ @@ -502,19 +509,10 @@ int WebPPictureAllocYUVA(WebPPicture* const picture, int width, int height); // compressibility (no guarantee, though). Assumes that pic->use_argb is true. void WebPCleanupTransparentAreaLossless(WebPPicture* const pic); - // in near_lossless.c -// Near lossless preprocessing in RGB color-space. -int VP8ApplyNearLossless(int xsize, int ysize, uint32_t* argb, int quality); -// Near lossless adjustment for predictors. -void VP8ApplyNearLosslessPredict(int xsize, int ysize, int pred_bits, - const uint32_t* argb_orig, - uint32_t* argb, uint32_t* argb_scratch, - const uint32_t* const transform_data, - int quality, int subtract_green); //------------------------------------------------------------------------------ #ifdef __cplusplus } // extern "C" #endif -#endif /* WEBP_ENC_VP8ENCI_H_ */ +#endif /* WEBP_ENC_VP8I_ENC_H_ */ diff --git a/external/libwebp-0.6.0/src/enc/vp8l_enc.c b/external/libwebp-1.0.0/src/enc/vp8l_enc.c similarity index 67% rename from external/libwebp-0.6.0/src/enc/vp8l_enc.c rename to external/libwebp-1.0.0/src/enc/vp8l_enc.c index b1a793d9..a89184eb 100644 --- a/external/libwebp-0.6.0/src/enc/vp8l_enc.c +++ b/external/libwebp-1.0.0/src/enc/vp8l_enc.c @@ -15,20 +15,17 @@ #include #include -#include "./backward_references_enc.h" -#include "./histogram_enc.h" -#include "./vp8i_enc.h" -#include "./vp8li_enc.h" -#include "../dsp/lossless.h" -#include "../dsp/lossless_common.h" -#include "../utils/bit_writer_utils.h" -#include "../utils/huffman_encode_utils.h" -#include "../utils/utils.h" -#include "../webp/format_constants.h" - -#include "./delta_palettization_enc.h" - -#define PALETTE_KEY_RIGHT_SHIFT 22 // Key for 1K buffer. +#include "src/enc/backward_references_enc.h" +#include "src/enc/histogram_enc.h" +#include "src/enc/vp8i_enc.h" +#include "src/enc/vp8li_enc.h" +#include "src/dsp/lossless.h" +#include "src/dsp/lossless_common.h" +#include "src/utils/bit_writer_utils.h" +#include "src/utils/huffman_encode_utils.h" +#include "src/utils/utils.h" +#include "src/webp/format_constants.h" + // Maximum number of histogram images (sub-blocks). #define MAX_HUFF_IMAGE_SIZE 2600 @@ -128,7 +125,10 @@ static int AnalyzeAndCreatePalette(const WebPPicture* const pic, uint32_t palette[MAX_PALETTE_SIZE], int* const palette_size) { const int num_colors = WebPGetColorPalette(pic, palette); - if (num_colors > MAX_PALETTE_SIZE) return 0; + if (num_colors > MAX_PALETTE_SIZE) { + *palette_size = 0; + return 0; + } *palette_size = num_colors; qsort(palette, num_colors, sizeof(*palette), PaletteCompareColorsForQsort); if (!low_effort && PaletteHasNonMonotonousDeltas(palette, num_colors)) { @@ -188,22 +188,33 @@ static WEBP_INLINE uint32_t HashPix(uint32_t pix) { static int AnalyzeEntropy(const uint32_t* argb, int width, int height, int argb_stride, int use_palette, + int palette_size, int transform_bits, EntropyIx* const min_entropy_ix, int* const red_and_blue_always_zero) { // Allocate histogram set with cache_bits = 0. - uint32_t* const histo = - (uint32_t*)WebPSafeCalloc(kHistoTotal, sizeof(*histo) * 256); + uint32_t* histo; + + if (use_palette && palette_size <= 16) { + // In the case of small palettes, we pack 2, 4 or 8 pixels together. In + // practice, small palettes are better than any other transform. + *min_entropy_ix = kPalette; + *red_and_blue_always_zero = 1; + return 1; + } + histo = (uint32_t*)WebPSafeCalloc(kHistoTotal, sizeof(*histo) * 256); if (histo != NULL) { int i, x, y; - const uint32_t* prev_row = argb; - const uint32_t* curr_row = argb + argb_stride; - for (y = 1; y < height; ++y) { - uint32_t prev_pix = curr_row[0]; - for (x = 1; x < width; ++x) { + const uint32_t* prev_row = NULL; + const uint32_t* curr_row = argb; + uint32_t pix_prev = argb[0]; // Skip the first pixel. + for (y = 0; y < height; ++y) { + for (x = 0; x < width; ++x) { const uint32_t pix = curr_row[x]; - const uint32_t pix_diff = VP8LSubPixels(pix, prev_pix); - if ((pix_diff == 0) || (pix == prev_row[x])) continue; - prev_pix = pix; + const uint32_t pix_diff = VP8LSubPixels(pix, pix_prev); + pix_prev = pix; + if ((pix_diff == 0) || (prev_row != NULL && pix == prev_row[x])) { + continue; + } AddSingle(pix, &histo[kHistoAlpha * 256], &histo[kHistoRed * 256], @@ -246,7 +257,7 @@ static int AnalyzeEntropy(const uint32_t* argb, ++histo[kHistoAlphaPred * 256]; for (j = 0; j < kHistoTotal; ++j) { - entropy_comp[j] = VP8LBitsEntropy(&histo[j * 256], 256, NULL); + entropy_comp[j] = VP8LBitsEntropy(&histo[j * 256], 256); } entropy[kDirect] = entropy_comp[kHistoAlpha] + entropy_comp[kHistoRed] + @@ -264,8 +275,24 @@ static int AnalyzeEntropy(const uint32_t* argb, entropy_comp[kHistoRedPredSubGreen] + entropy_comp[kHistoGreenPred] + entropy_comp[kHistoBluePredSubGreen]; - // Palette mode seems more efficient in a breakeven case. Bias with 1.0. - entropy[kPalette] = entropy_comp[kHistoPalette] - 1.0; + entropy[kPalette] = entropy_comp[kHistoPalette]; + + // When including transforms, there is an overhead in bits from + // storing them. This overhead is small but matters for small images. + // For spatial, there are 14 transformations. + entropy[kSpatial] += VP8LSubSampleSize(width, transform_bits) * + VP8LSubSampleSize(height, transform_bits) * + VP8LFastLog2(14); + // For color transforms: 24 as only 3 channels are considered in a + // ColorTransformElement. + entropy[kSpatialSubGreen] += VP8LSubSampleSize(width, transform_bits) * + VP8LSubSampleSize(height, transform_bits) * + VP8LFastLog2(24); + // For palettes, add the cost of storing the palette. + // We empirically estimate the cost of a compressed entry as 8 bits. + // The palette is differential-coded when compressed hence a much + // lower cost than sizeof(uint32_t)*8. + entropy[kPalette] += palette_size * 8; *min_entropy_ix = kDirect; for (k = kDirect + 1; k <= last_mode_to_analyze; ++k) { @@ -273,6 +300,7 @@ static int AnalyzeEntropy(const uint32_t* argb, *min_entropy_ix = (EntropyIx)k; } } + assert((int)*min_entropy_ix <= last_mode_to_analyze); *red_and_blue_always_zero = 1; // Let's check if the histogram of the chosen entropy mode has // non-zero red and blue values. If all are zero, we can later skip @@ -325,60 +353,94 @@ static int GetTransformBits(int method, int histo_bits) { return res; } -static int AnalyzeAndInit(VP8LEncoder* const enc) { +// Set of parameters to be used in each iteration of the cruncher. +#define CRUNCH_CONFIGS_LZ77_MAX 2 +typedef struct { + int entropy_idx_; + int lz77s_types_to_try_[CRUNCH_CONFIGS_LZ77_MAX]; + int lz77s_types_to_try_size_; +} CrunchConfig; + +#define CRUNCH_CONFIGS_MAX kNumEntropyIx + +static int EncoderAnalyze(VP8LEncoder* const enc, + CrunchConfig crunch_configs[CRUNCH_CONFIGS_MAX], + int* const crunch_configs_size, + int* const red_and_blue_always_zero) { const WebPPicture* const pic = enc->pic_; const int width = pic->width; const int height = pic->height; - const int pix_cnt = width * height; const WebPConfig* const config = enc->config_; const int method = config->method; const int low_effort = (config->method == 0); - // we round the block size up, so we're guaranteed to have - // at max MAX_REFS_BLOCK_PER_IMAGE blocks used: - int refs_block_size = (pix_cnt - 1) / MAX_REFS_BLOCK_PER_IMAGE + 1; + int i; + int use_palette; + int n_lz77s; assert(pic != NULL && pic->argb != NULL); - enc->use_cross_color_ = 0; - enc->use_predict_ = 0; - enc->use_subtract_green_ = 0; - enc->use_palette_ = + use_palette = AnalyzeAndCreatePalette(pic, low_effort, enc->palette_, &enc->palette_size_); - // TODO(jyrki): replace the decision to be based on an actual estimate - // of entropy, or even spatial variance of entropy. - enc->histo_bits_ = GetHistoBits(method, enc->use_palette_, + // Empirical bit sizes. + enc->histo_bits_ = GetHistoBits(method, use_palette, pic->width, pic->height); enc->transform_bits_ = GetTransformBits(method, enc->histo_bits_); if (low_effort) { // AnalyzeEntropy is somewhat slow. - enc->use_predict_ = !enc->use_palette_; - enc->use_subtract_green_ = !enc->use_palette_; - enc->use_cross_color_ = 0; + crunch_configs[0].entropy_idx_ = use_palette ? kPalette : kSpatialSubGreen; + n_lz77s = 1; + *crunch_configs_size = 1; } else { - int red_and_blue_always_zero; EntropyIx min_entropy_ix; - if (!AnalyzeEntropy(pic->argb, width, height, pic->argb_stride, - enc->use_palette_, &min_entropy_ix, - &red_and_blue_always_zero)) { + // Try out multiple LZ77 on images with few colors. + n_lz77s = (enc->palette_size_ > 0 && enc->palette_size_ <= 16) ? 2 : 1; + if (!AnalyzeEntropy(pic->argb, width, height, pic->argb_stride, use_palette, + enc->palette_size_, enc->transform_bits_, + &min_entropy_ix, red_and_blue_always_zero)) { return 0; } - enc->use_palette_ = (min_entropy_ix == kPalette); - enc->use_subtract_green_ = - (min_entropy_ix == kSubGreen) || (min_entropy_ix == kSpatialSubGreen); - enc->use_predict_ = - (min_entropy_ix == kSpatial) || (min_entropy_ix == kSpatialSubGreen); - enc->use_cross_color_ = red_and_blue_always_zero ? 0 : enc->use_predict_; + if (method == 6 && config->quality == 100) { + // Go brute force on all transforms. + *crunch_configs_size = 0; + for (i = 0; i < kNumEntropyIx; ++i) { + if (i != kPalette || use_palette) { + assert(*crunch_configs_size < CRUNCH_CONFIGS_MAX); + crunch_configs[(*crunch_configs_size)++].entropy_idx_ = i; + } + } + } else { + // Only choose the guessed best transform. + *crunch_configs_size = 1; + crunch_configs[0].entropy_idx_ = min_entropy_ix; + } } + // Fill in the different LZ77s. + assert(n_lz77s <= CRUNCH_CONFIGS_LZ77_MAX); + for (i = 0; i < *crunch_configs_size; ++i) { + int j; + for (j = 0; j < n_lz77s; ++j) { + crunch_configs[i].lz77s_types_to_try_[j] = + (j == 0) ? kLZ77Standard | kLZ77RLE : kLZ77Box; + } + crunch_configs[i].lz77s_types_to_try_size_ = n_lz77s; + } + return 1; +} +static int EncoderInit(VP8LEncoder* const enc) { + const WebPPicture* const pic = enc->pic_; + const int width = pic->width; + const int height = pic->height; + const int pix_cnt = width * height; + // we round the block size up, so we're guaranteed to have + // at most MAX_REFS_BLOCK_PER_IMAGE blocks used: + const int refs_block_size = (pix_cnt - 1) / MAX_REFS_BLOCK_PER_IMAGE + 1; + int i; if (!VP8LHashChainInit(&enc->hash_chain_, pix_cnt)) return 0; - // palette-friendly input typically uses less literals - // -> reduce block size a bit - if (enc->use_palette_) refs_block_size /= 2; - VP8LBackwardRefsInit(&enc->refs_[0], refs_block_size); - VP8LBackwardRefsInit(&enc->refs_[1], refs_block_size); + for (i = 0; i < 3; ++i) VP8LBackwardRefsInit(&enc->refs_[i], refs_block_size); return 1; } @@ -571,11 +633,16 @@ static void StoreFullHuffmanCode(VP8LBitWriter* const bw, length = write_trimmed_length ? trimmed_length : num_tokens; VP8LPutBits(bw, write_trimmed_length, 1); if (write_trimmed_length) { - const int nbits = VP8LBitsLog2Ceiling(trimmed_length - 1); - const int nbitpairs = (nbits == 0) ? 1 : (nbits + 1) / 2; - VP8LPutBits(bw, nbitpairs - 1, 3); - assert(trimmed_length >= 2); - VP8LPutBits(bw, trimmed_length - 2, nbitpairs * 2); + if (trimmed_length == 2) { + VP8LPutBits(bw, 0, 3 + 2); // nbitpairs=1, trimmed_length=2 + } else { + const int nbits = BitsLog2Floor(trimmed_length - 2); + const int nbitpairs = nbits / 2 + 1; + assert(trimmed_length > 2); + assert(nbitpairs - 1 < 8); + VP8LPutBits(bw, nbitpairs - 1, 3); + VP8LPutBits(bw, trimmed_length - 2, nbitpairs * 2); + } } StoreHuffmanTreeToBitMask(bw, tokens, length, &huffman_code); } @@ -642,7 +709,7 @@ static WEBP_INLINE void WriteHuffmanCodeWithExtraBits( static WebPEncodingError StoreImageToBitMask( VP8LBitWriter* const bw, int width, int histo_bits, - VP8LBackwardRefs* const refs, + const VP8LBackwardRefs* const refs, const uint16_t* histogram_symbols, const HuffmanTreeCode* const huffman_codes) { const int histo_xsize = histo_bits ? VP8LSubSampleSize(width, histo_bits) : 1; @@ -665,7 +732,7 @@ static WebPEncodingError StoreImageToBitMask( codes = huffman_codes + 5 * histogram_ix; } if (PixOrCopyIsLiteral(v)) { - static const int order[] = { 1, 2, 0, 3 }; + static const uint8_t order[] = { 1, 2, 0, 3 }; int k; for (k = 0; k < 4; ++k) { const int code = PixOrCopyLiteral(v, order[k]); @@ -686,7 +753,6 @@ static WebPEncodingError StoreImageToBitMask( // Don't write the distance with the extra bits code since // the distance can be up to 18 bits of extra bits, and the prefix // 15 bits, totaling to 33, and our PutBits only supports up to 32 bits. - // TODO(jyrki): optimize this further. VP8LPrefixEncode(distance, &code, &n_bits, &bits); WriteHuffmanCode(bw, codes + 4, code); VP8LPutBits(bw, bits, n_bits); @@ -705,7 +771,8 @@ static WebPEncodingError StoreImageToBitMask( static WebPEncodingError EncodeImageNoHuffman(VP8LBitWriter* const bw, const uint32_t* const argb, VP8LHashChain* const hash_chain, - VP8LBackwardRefs refs_array[2], + VP8LBackwardRefs* const refs_tmp1, + VP8LBackwardRefs* const refs_tmp2, int width, int height, int quality, int low_effort) { int i; @@ -730,8 +797,9 @@ static WebPEncodingError EncodeImageNoHuffman(VP8LBitWriter* const bw, err = VP8_ENC_ERROR_OUT_OF_MEMORY; goto Error; } - refs = VP8LGetBackwardReferences(width, height, argb, quality, 0, &cache_bits, - hash_chain, refs_array); + refs = VP8LGetBackwardReferences(width, height, argb, quality, 0, + kLZ77Standard | kLZ77RLE, &cache_bits, + hash_chain, refs_tmp1, refs_tmp2); if (refs == NULL) { err = VP8_ENC_ERROR_OUT_OF_MEMORY; goto Error; @@ -788,39 +856,37 @@ static WebPEncodingError EncodeImageNoHuffman(VP8LBitWriter* const bw, return err; } -static WebPEncodingError EncodeImageInternal(VP8LBitWriter* const bw, - const uint32_t* const argb, - VP8LHashChain* const hash_chain, - VP8LBackwardRefs refs_array[2], - int width, int height, int quality, - int low_effort, - int use_cache, int* cache_bits, - int histogram_bits, - size_t init_byte_position, - int* const hdr_size, - int* const data_size) { +static WebPEncodingError EncodeImageInternal( + VP8LBitWriter* const bw, const uint32_t* const argb, + VP8LHashChain* const hash_chain, VP8LBackwardRefs refs_array[3], int width, + int height, int quality, int low_effort, int use_cache, + const CrunchConfig* const config, int* cache_bits, int histogram_bits, + size_t init_byte_position, int* const hdr_size, int* const data_size) { WebPEncodingError err = VP8_ENC_OK; const uint32_t histogram_image_xysize = VP8LSubSampleSize(width, histogram_bits) * VP8LSubSampleSize(height, histogram_bits); VP8LHistogramSet* histogram_image = NULL; - VP8LHistogramSet* tmp_histos = NULL; + VP8LHistogram* tmp_histo = NULL; int histogram_image_size = 0; size_t bit_array_size = 0; - HuffmanTree* huff_tree = NULL; + HuffmanTree* const huff_tree = (HuffmanTree*)WebPSafeMalloc( + 3ULL * CODE_LENGTH_CODES, sizeof(*huff_tree)); HuffmanTreeToken* tokens = NULL; HuffmanTreeCode* huffman_codes = NULL; - VP8LBackwardRefs refs; - VP8LBackwardRefs* best_refs; + VP8LBackwardRefs* refs_best; + VP8LBackwardRefs* refs_tmp; uint16_t* const histogram_symbols = (uint16_t*)WebPSafeMalloc(histogram_image_xysize, sizeof(*histogram_symbols)); + int lz77s_idx; + VP8LBitWriter bw_init = *bw, bw_best; + int hdr_size_tmp; assert(histogram_bits >= MIN_HUFFMAN_BITS); assert(histogram_bits <= MAX_HUFFMAN_BITS); assert(hdr_size != NULL); assert(data_size != NULL); - VP8LBackwardRefsInit(&refs, refs_array[0].block_size_); if (histogram_symbols == NULL) { err = VP8_ENC_ERROR_OUT_OF_MEMORY; goto Error; @@ -836,142 +902,162 @@ static WebPEncodingError EncodeImageInternal(VP8LBitWriter* const bw, // 'best_refs' is the reference to the best backward refs and points to one // of refs_array[0] or refs_array[1]. // Calculate backward references from ARGB image. - if (!VP8LHashChainFill(hash_chain, quality, argb, width, height, - low_effort)) { - err = VP8_ENC_ERROR_OUT_OF_MEMORY; - goto Error; - } - best_refs = VP8LGetBackwardReferences(width, height, argb, quality, - low_effort, cache_bits, hash_chain, - refs_array); - if (best_refs == NULL || !VP8LBackwardRefsCopy(best_refs, &refs)) { - err = VP8_ENC_ERROR_OUT_OF_MEMORY; - goto Error; - } - histogram_image = - VP8LAllocateHistogramSet(histogram_image_xysize, *cache_bits); - tmp_histos = VP8LAllocateHistogramSet(2, *cache_bits); - if (histogram_image == NULL || tmp_histos == NULL) { + if (huff_tree == NULL || + !VP8LHashChainFill(hash_chain, quality, argb, width, height, + low_effort) || + !VP8LBitWriterInit(&bw_best, 0) || + (config->lz77s_types_to_try_size_ > 1 && + !VP8LBitWriterClone(bw, &bw_best))) { err = VP8_ENC_ERROR_OUT_OF_MEMORY; goto Error; } + for (lz77s_idx = 0; lz77s_idx < config->lz77s_types_to_try_size_; + ++lz77s_idx) { + refs_best = VP8LGetBackwardReferences( + width, height, argb, quality, low_effort, + config->lz77s_types_to_try_[lz77s_idx], cache_bits, hash_chain, + &refs_array[0], &refs_array[1]); + if (refs_best == NULL) { + err = VP8_ENC_ERROR_OUT_OF_MEMORY; + goto Error; + } + // Keep the best references aside and use the other element from the first + // two as a temporary for later usage. + refs_tmp = &refs_array[refs_best == &refs_array[0] ? 1 : 0]; + + histogram_image = + VP8LAllocateHistogramSet(histogram_image_xysize, *cache_bits); + tmp_histo = VP8LAllocateHistogram(*cache_bits); + if (histogram_image == NULL || tmp_histo == NULL) { + err = VP8_ENC_ERROR_OUT_OF_MEMORY; + goto Error; + } - // Build histogram image and symbols from backward references. - if (!VP8LGetHistoImageSymbols(width, height, &refs, quality, low_effort, - histogram_bits, *cache_bits, histogram_image, - tmp_histos, histogram_symbols)) { - err = VP8_ENC_ERROR_OUT_OF_MEMORY; - goto Error; - } - // Create Huffman bit lengths and codes for each histogram image. - histogram_image_size = histogram_image->size; - bit_array_size = 5 * histogram_image_size; - huffman_codes = (HuffmanTreeCode*)WebPSafeCalloc(bit_array_size, - sizeof(*huffman_codes)); - // Note: some histogram_image entries may point to tmp_histos[], so the latter - // need to outlive the following call to GetHuffBitLengthsAndCodes(). - if (huffman_codes == NULL || - !GetHuffBitLengthsAndCodes(histogram_image, huffman_codes)) { - err = VP8_ENC_ERROR_OUT_OF_MEMORY; - goto Error; - } - // Free combined histograms. - VP8LFreeHistogramSet(histogram_image); - histogram_image = NULL; + // Build histogram image and symbols from backward references. + if (!VP8LGetHistoImageSymbols(width, height, refs_best, quality, low_effort, + histogram_bits, *cache_bits, histogram_image, + tmp_histo, histogram_symbols)) { + err = VP8_ENC_ERROR_OUT_OF_MEMORY; + goto Error; + } + // Create Huffman bit lengths and codes for each histogram image. + histogram_image_size = histogram_image->size; + bit_array_size = 5 * histogram_image_size; + huffman_codes = (HuffmanTreeCode*)WebPSafeCalloc(bit_array_size, + sizeof(*huffman_codes)); + // Note: some histogram_image entries may point to tmp_histos[], so the + // latter need to outlive the following call to GetHuffBitLengthsAndCodes(). + if (huffman_codes == NULL || + !GetHuffBitLengthsAndCodes(histogram_image, huffman_codes)) { + err = VP8_ENC_ERROR_OUT_OF_MEMORY; + goto Error; + } + // Free combined histograms. + VP8LFreeHistogramSet(histogram_image); + histogram_image = NULL; - // Free scratch histograms. - VP8LFreeHistogramSet(tmp_histos); - tmp_histos = NULL; + // Free scratch histograms. + VP8LFreeHistogram(tmp_histo); + tmp_histo = NULL; - // Color Cache parameters. - if (*cache_bits > 0) { - VP8LPutBits(bw, 1, 1); - VP8LPutBits(bw, *cache_bits, 4); - } else { - VP8LPutBits(bw, 0, 1); - } + // Color Cache parameters. + if (*cache_bits > 0) { + VP8LPutBits(bw, 1, 1); + VP8LPutBits(bw, *cache_bits, 4); + } else { + VP8LPutBits(bw, 0, 1); + } - // Huffman image + meta huffman. - { - const int write_histogram_image = (histogram_image_size > 1); - VP8LPutBits(bw, write_histogram_image, 1); - if (write_histogram_image) { - uint32_t* const histogram_argb = - (uint32_t*)WebPSafeMalloc(histogram_image_xysize, - sizeof(*histogram_argb)); - int max_index = 0; - uint32_t i; - if (histogram_argb == NULL) { - err = VP8_ENC_ERROR_OUT_OF_MEMORY; - goto Error; - } - for (i = 0; i < histogram_image_xysize; ++i) { - const int symbol_index = histogram_symbols[i] & 0xffff; - histogram_argb[i] = (symbol_index << 8); - if (symbol_index >= max_index) { - max_index = symbol_index + 1; + // Huffman image + meta huffman. + { + const int write_histogram_image = (histogram_image_size > 1); + VP8LPutBits(bw, write_histogram_image, 1); + if (write_histogram_image) { + uint32_t* const histogram_argb = + (uint32_t*)WebPSafeMalloc(histogram_image_xysize, + sizeof(*histogram_argb)); + int max_index = 0; + uint32_t i; + if (histogram_argb == NULL) { + err = VP8_ENC_ERROR_OUT_OF_MEMORY; + goto Error; } + for (i = 0; i < histogram_image_xysize; ++i) { + const int symbol_index = histogram_symbols[i] & 0xffff; + histogram_argb[i] = (symbol_index << 8); + if (symbol_index >= max_index) { + max_index = symbol_index + 1; + } + } + histogram_image_size = max_index; + + VP8LPutBits(bw, histogram_bits - 2, 3); + err = EncodeImageNoHuffman( + bw, histogram_argb, hash_chain, refs_tmp, &refs_array[2], + VP8LSubSampleSize(width, histogram_bits), + VP8LSubSampleSize(height, histogram_bits), quality, low_effort); + WebPSafeFree(histogram_argb); + if (err != VP8_ENC_OK) goto Error; } - histogram_image_size = max_index; - - VP8LPutBits(bw, histogram_bits - 2, 3); - err = EncodeImageNoHuffman(bw, histogram_argb, hash_chain, refs_array, - VP8LSubSampleSize(width, histogram_bits), - VP8LSubSampleSize(height, histogram_bits), - quality, low_effort); - WebPSafeFree(histogram_argb); - if (err != VP8_ENC_OK) goto Error; } - } - // Store Huffman codes. - { - int i; - int max_tokens = 0; - huff_tree = (HuffmanTree*)WebPSafeMalloc(3ULL * CODE_LENGTH_CODES, - sizeof(*huff_tree)); - if (huff_tree == NULL) { - err = VP8_ENC_ERROR_OUT_OF_MEMORY; - goto Error; - } - // Find maximum number of symbols for the huffman tree-set. - for (i = 0; i < 5 * histogram_image_size; ++i) { - HuffmanTreeCode* const codes = &huffman_codes[i]; - if (max_tokens < codes->num_symbols) { - max_tokens = codes->num_symbols; + // Store Huffman codes. + { + int i; + int max_tokens = 0; + // Find maximum number of symbols for the huffman tree-set. + for (i = 0; i < 5 * histogram_image_size; ++i) { + HuffmanTreeCode* const codes = &huffman_codes[i]; + if (max_tokens < codes->num_symbols) { + max_tokens = codes->num_symbols; + } + } + tokens = (HuffmanTreeToken*)WebPSafeMalloc(max_tokens, sizeof(*tokens)); + if (tokens == NULL) { + err = VP8_ENC_ERROR_OUT_OF_MEMORY; + goto Error; + } + for (i = 0; i < 5 * histogram_image_size; ++i) { + HuffmanTreeCode* const codes = &huffman_codes[i]; + StoreHuffmanCode(bw, huff_tree, tokens, codes); + ClearHuffmanTreeIfOnlyOneSymbol(codes); } } - tokens = (HuffmanTreeToken*)WebPSafeMalloc(max_tokens, - sizeof(*tokens)); - if (tokens == NULL) { - err = VP8_ENC_ERROR_OUT_OF_MEMORY; - goto Error; + // Store actual literals. + hdr_size_tmp = (int)(VP8LBitWriterNumBytes(bw) - init_byte_position); + err = StoreImageToBitMask(bw, width, histogram_bits, refs_best, + histogram_symbols, huffman_codes); + // Keep track of the smallest image so far. + if (lz77s_idx == 0 || + VP8LBitWriterNumBytes(bw) < VP8LBitWriterNumBytes(&bw_best)) { + *hdr_size = hdr_size_tmp; + *data_size = + (int)(VP8LBitWriterNumBytes(bw) - init_byte_position - *hdr_size); + VP8LBitWriterSwap(bw, &bw_best); } - for (i = 0; i < 5 * histogram_image_size; ++i) { - HuffmanTreeCode* const codes = &huffman_codes[i]; - StoreHuffmanCode(bw, huff_tree, tokens, codes); - ClearHuffmanTreeIfOnlyOneSymbol(codes); + // Reset the bit writer for the following iteration if any. + if (config->lz77s_types_to_try_size_ > 1) VP8LBitWriterReset(&bw_init, bw); + WebPSafeFree(tokens); + tokens = NULL; + if (huffman_codes != NULL) { + WebPSafeFree(huffman_codes->codes); + WebPSafeFree(huffman_codes); + huffman_codes = NULL; } } - - *hdr_size = (int)(VP8LBitWriterNumBytes(bw) - init_byte_position); - // Store actual literals. - err = StoreImageToBitMask(bw, width, histogram_bits, &refs, - histogram_symbols, huffman_codes); - *data_size = - (int)(VP8LBitWriterNumBytes(bw) - init_byte_position - *hdr_size); + VP8LBitWriterSwap(bw, &bw_best); Error: WebPSafeFree(tokens); WebPSafeFree(huff_tree); VP8LFreeHistogramSet(histogram_image); - VP8LFreeHistogramSet(tmp_histos); - VP8LBackwardRefsClear(&refs); + VP8LFreeHistogram(tmp_histo); if (huffman_codes != NULL) { WebPSafeFree(huffman_codes->codes); WebPSafeFree(huffman_codes); } WebPSafeFree(histogram_symbols); + VP8LBitWriterWipeOut(&bw_best); return err; } @@ -1005,11 +1091,11 @@ static WebPEncodingError ApplyPredictFilter(const VP8LEncoder* const enc, VP8LPutBits(bw, PREDICTOR_TRANSFORM, 2); assert(pred_bits >= 2); VP8LPutBits(bw, pred_bits - 2, 3); - return EncodeImageNoHuffman(bw, enc->transform_data_, - (VP8LHashChain*)&enc->hash_chain_, - (VP8LBackwardRefs*)enc->refs_, // cast const away - transform_width, transform_height, - quality, low_effort); + return EncodeImageNoHuffman( + bw, enc->transform_data_, (VP8LHashChain*)&enc->hash_chain_, + (VP8LBackwardRefs*)&enc->refs_[0], // cast const away + (VP8LBackwardRefs*)&enc->refs_[1], transform_width, transform_height, + quality, low_effort); } static WebPEncodingError ApplyCrossColorFilter(const VP8LEncoder* const enc, @@ -1026,11 +1112,11 @@ static WebPEncodingError ApplyCrossColorFilter(const VP8LEncoder* const enc, VP8LPutBits(bw, CROSS_COLOR_TRANSFORM, 2); assert(ccolor_transform_bits >= 2); VP8LPutBits(bw, ccolor_transform_bits - 2, 3); - return EncodeImageNoHuffman(bw, enc->transform_data_, - (VP8LHashChain*)&enc->hash_chain_, - (VP8LBackwardRefs*)enc->refs_, // cast const away - transform_width, transform_height, - quality, low_effort); + return EncodeImageNoHuffman( + bw, enc->transform_data_, (VP8LHashChain*)&enc->hash_chain_, + (VP8LBackwardRefs*)&enc->refs_[0], // cast const away + (VP8LBackwardRefs*)&enc->refs_[1], transform_width, transform_height, + quality, low_effort); } // ----------------------------------------------------------------------------- @@ -1144,6 +1230,7 @@ static WebPEncodingError AllocateTransformBuffer(VP8LEncoder* const enc, } enc->transform_mem_ = mem; enc->transform_mem_size_ = (size_t)mem_size; + enc->argb_content_ = kEncoderNone; } enc->argb_ = mem; mem = (uint32_t*)WEBP_ALIGN(mem + image_size); @@ -1164,11 +1251,13 @@ static WebPEncodingError MakeInputImageCopy(VP8LEncoder* const enc) { int y; err = AllocateTransformBuffer(enc, width, height); if (err != VP8_ENC_OK) return err; + if (enc->argb_content_ == kEncoderARGB) return VP8_ENC_OK; for (y = 0; y < height; ++y) { memcpy(enc->argb_ + y * width, picture->argb + y * picture->argb_stride, width * sizeof(*enc->argb_)); } + enc->argb_content_ = kEncoderARGB; assert(enc->current_width_ == width); return VP8_ENC_OK; } @@ -1215,12 +1304,13 @@ static WEBP_INLINE uint32_t ApplyPaletteHash0(uint32_t color) { static WEBP_INLINE uint32_t ApplyPaletteHash1(uint32_t color) { // Forget about alpha. - return ((color & 0x00ffffffu) * 4222244071u) >> (32 - PALETTE_INV_SIZE_BITS); + return ((uint32_t)((color & 0x00ffffffu) * 4222244071ull)) >> + (32 - PALETTE_INV_SIZE_BITS); } static WEBP_INLINE uint32_t ApplyPaletteHash2(uint32_t color) { // Forget about alpha. - return (color & 0x00ffffffu) * ((1u << 31) - 1) >> + return ((uint32_t)((color & 0x00ffffffu) * ((1ull << 31) - 1))) >> (32 - PALETTE_INV_SIZE_BITS); } @@ -1346,6 +1436,7 @@ static WebPEncodingError MapImageFromPalette(VP8LEncoder* const enc, err = ApplyPalette(src, src_stride, enc->argb_, enc->current_width_, palette, palette_size, width, height, xbits); + enc->argb_content_ = kEncoderPalette; return err; } @@ -1364,52 +1455,11 @@ static WebPEncodingError EncodePalette(VP8LBitWriter* const bw, int low_effort, tmp_palette[i] = VP8LSubPixels(palette[i], palette[i - 1]); } tmp_palette[0] = palette[0]; - return EncodeImageNoHuffman(bw, tmp_palette, &enc->hash_chain_, enc->refs_, - palette_size, 1, 20 /* quality */, low_effort); -} - -#ifdef WEBP_EXPERIMENTAL_FEATURES - -static WebPEncodingError EncodeDeltaPalettePredictorImage( - VP8LBitWriter* const bw, VP8LEncoder* const enc, int quality, - int low_effort) { - const WebPPicture* const pic = enc->pic_; - const int width = pic->width; - const int height = pic->height; - - const int pred_bits = 5; - const int transform_width = VP8LSubSampleSize(width, pred_bits); - const int transform_height = VP8LSubSampleSize(height, pred_bits); - const int pred = 7; // default is Predictor7 (Top/Left Average) - const int tiles_per_row = VP8LSubSampleSize(width, pred_bits); - const int tiles_per_col = VP8LSubSampleSize(height, pred_bits); - uint32_t* predictors; - int tile_x, tile_y; - WebPEncodingError err = VP8_ENC_OK; - - predictors = (uint32_t*)WebPSafeMalloc(tiles_per_col * tiles_per_row, - sizeof(*predictors)); - if (predictors == NULL) return VP8_ENC_ERROR_OUT_OF_MEMORY; - - for (tile_y = 0; tile_y < tiles_per_col; ++tile_y) { - for (tile_x = 0; tile_x < tiles_per_row; ++tile_x) { - predictors[tile_y * tiles_per_row + tile_x] = 0xff000000u | (pred << 8); - } - } - - VP8LPutBits(bw, TRANSFORM_PRESENT, 1); - VP8LPutBits(bw, PREDICTOR_TRANSFORM, 2); - VP8LPutBits(bw, pred_bits - 2, 3); - err = EncodeImageNoHuffman(bw, predictors, &enc->hash_chain_, - (VP8LBackwardRefs*)enc->refs_, // cast const away - transform_width, transform_height, - quality, low_effort); - WebPSafeFree(predictors); - return err; + return EncodeImageNoHuffman(bw, tmp_palette, &enc->hash_chain_, + &enc->refs_[0], &enc->refs_[1], palette_size, 1, + 20 /* quality */, low_effort); } -#endif // WEBP_EXPERIMENTAL_FEATURES - // ----------------------------------------------------------------------------- // VP8LEncoder @@ -1422,6 +1472,7 @@ static VP8LEncoder* VP8LEncoderNew(const WebPConfig* const config, } enc->config_ = config; enc->pic_ = picture; + enc->argb_content_ = kEncoderNone; VP8LEncDspInit(); @@ -1430,9 +1481,9 @@ static VP8LEncoder* VP8LEncoderNew(const WebPConfig* const config, static void VP8LEncoderDelete(VP8LEncoder* enc) { if (enc != NULL) { + int i; VP8LHashChainClear(&enc->hash_chain_); - VP8LBackwardRefsClear(&enc->refs_[0]); - VP8LBackwardRefsClear(&enc->refs_[1]); + for (i = 0; i < 3; ++i) VP8LBackwardRefsClear(&enc->refs_[i]); ClearTransformBuffer(enc); WebPSafeFree(enc); } @@ -1441,134 +1492,324 @@ static void VP8LEncoderDelete(VP8LEncoder* enc) { // ----------------------------------------------------------------------------- // Main call -WebPEncodingError VP8LEncodeStream(const WebPConfig* const config, - const WebPPicture* const picture, - VP8LBitWriter* const bw, int use_cache) { +typedef struct { + const WebPConfig* config_; + const WebPPicture* picture_; + VP8LBitWriter* bw_; + VP8LEncoder* enc_; + int use_cache_; + CrunchConfig crunch_configs_[CRUNCH_CONFIGS_MAX]; + int num_crunch_configs_; + int red_and_blue_always_zero_; + WebPEncodingError err_; + WebPAuxStats* stats_; +} StreamEncodeContext; + +static int EncodeStreamHook(void* input, void* data2) { + StreamEncodeContext* const params = (StreamEncodeContext*)input; + const WebPConfig* const config = params->config_; + const WebPPicture* const picture = params->picture_; + VP8LBitWriter* const bw = params->bw_; + VP8LEncoder* const enc = params->enc_; + const int use_cache = params->use_cache_; + const CrunchConfig* const crunch_configs = params->crunch_configs_; + const int num_crunch_configs = params->num_crunch_configs_; + const int red_and_blue_always_zero = params->red_and_blue_always_zero_; +#if !defined(WEBP_DISABLE_STATS) + WebPAuxStats* const stats = params->stats_; +#endif WebPEncodingError err = VP8_ENC_OK; const int quality = (int)config->quality; const int low_effort = (config->method == 0); +#if (WEBP_NEAR_LOSSLESS == 1) const int width = picture->width; +#endif const int height = picture->height; - VP8LEncoder* const enc = VP8LEncoderNew(config, picture); const size_t byte_position = VP8LBitWriterNumBytes(bw); +#if (WEBP_NEAR_LOSSLESS == 1) int use_near_lossless = 0; +#endif int hdr_size = 0; int data_size = 0; int use_delta_palette = 0; + int idx; + size_t best_size = 0; + VP8LBitWriter bw_init = *bw, bw_best; + (void)data2; - if (enc == NULL) { + if (!VP8LBitWriterInit(&bw_best, 0) || + (num_crunch_configs > 1 && !VP8LBitWriterClone(bw, &bw_best))) { err = VP8_ENC_ERROR_OUT_OF_MEMORY; goto Error; } - // --------------------------------------------------------------------------- - // Analyze image (entropy, num_palettes etc) - - if (!AnalyzeAndInit(enc)) { - err = VP8_ENC_ERROR_OUT_OF_MEMORY; - goto Error; - } + for (idx = 0; idx < num_crunch_configs; ++idx) { + const int entropy_idx = crunch_configs[idx].entropy_idx_; + enc->use_palette_ = (entropy_idx == kPalette); + enc->use_subtract_green_ = + (entropy_idx == kSubGreen) || (entropy_idx == kSpatialSubGreen); + enc->use_predict_ = + (entropy_idx == kSpatial) || (entropy_idx == kSpatialSubGreen); + if (low_effort) { + enc->use_cross_color_ = 0; + } else { + enc->use_cross_color_ = red_and_blue_always_zero ? 0 : enc->use_predict_; + } + // Reset any parameter in the encoder that is set in the previous iteration. + enc->cache_bits_ = 0; + VP8LBackwardRefsClear(&enc->refs_[0]); + VP8LBackwardRefsClear(&enc->refs_[1]); - // Apply near-lossless preprocessing. - use_near_lossless = - (config->near_lossless < 100) && !enc->use_palette_ && !enc->use_predict_; - if (use_near_lossless) { - if (!VP8ApplyNearLossless(width, height, picture->argb, - config->near_lossless)) { - err = VP8_ENC_ERROR_OUT_OF_MEMORY; - goto Error; +#if (WEBP_NEAR_LOSSLESS == 1) + // Apply near-lossless preprocessing. + use_near_lossless = (config->near_lossless < 100) && !enc->use_palette_ && + !enc->use_predict_; + if (use_near_lossless) { + err = AllocateTransformBuffer(enc, width, height); + if (err != VP8_ENC_OK) goto Error; + if ((enc->argb_content_ != kEncoderNearLossless) && + !VP8ApplyNearLossless(picture, config->near_lossless, enc->argb_)) { + err = VP8_ENC_ERROR_OUT_OF_MEMORY; + goto Error; + } + enc->argb_content_ = kEncoderNearLossless; + } else { + enc->argb_content_ = kEncoderNone; } - } +#else + enc->argb_content_ = kEncoderNone; +#endif -#ifdef WEBP_EXPERIMENTAL_FEATURES - if (config->use_delta_palette) { - enc->use_predict_ = 1; - enc->use_cross_color_ = 0; - enc->use_subtract_green_ = 0; - enc->use_palette_ = 1; - err = MakeInputImageCopy(enc); - if (err != VP8_ENC_OK) goto Error; - err = WebPSearchOptimalDeltaPalette(enc); - if (err != VP8_ENC_OK) goto Error; + // Encode palette if (enc->use_palette_) { - err = AllocateTransformBuffer(enc, width, height); + err = EncodePalette(bw, low_effort, enc); if (err != VP8_ENC_OK) goto Error; - err = EncodeDeltaPalettePredictorImage(bw, enc, quality, low_effort); + err = MapImageFromPalette(enc, use_delta_palette); if (err != VP8_ENC_OK) goto Error; - use_delta_palette = 1; + // If using a color cache, do not have it bigger than the number of + // colors. + if (use_cache && enc->palette_size_ < (1 << MAX_COLOR_CACHE_BITS)) { + enc->cache_bits_ = BitsLog2Floor(enc->palette_size_) + 1; + } } - } -#endif // WEBP_EXPERIMENTAL_FEATURES + if (!use_delta_palette) { + // In case image is not packed. + if (enc->argb_content_ != kEncoderNearLossless && + enc->argb_content_ != kEncoderPalette) { + err = MakeInputImageCopy(enc); + if (err != VP8_ENC_OK) goto Error; + } - // Encode palette - if (enc->use_palette_) { - err = EncodePalette(bw, low_effort, enc); - if (err != VP8_ENC_OK) goto Error; - err = MapImageFromPalette(enc, use_delta_palette); - if (err != VP8_ENC_OK) goto Error; - // If using a color cache, do not have it bigger than the number of colors. - if (use_cache && enc->palette_size_ < (1 << MAX_COLOR_CACHE_BITS)) { - enc->cache_bits_ = BitsLog2Floor(enc->palette_size_) + 1; - } - } - if (!use_delta_palette) { - // In case image is not packed. - if (enc->argb_ == NULL) { - err = MakeInputImageCopy(enc); - if (err != VP8_ENC_OK) goto Error; + // ----------------------------------------------------------------------- + // Apply transforms and write transform data. + + if (enc->use_subtract_green_) { + ApplySubtractGreen(enc, enc->current_width_, height, bw); + } + + if (enc->use_predict_) { + err = ApplyPredictFilter(enc, enc->current_width_, height, quality, + low_effort, enc->use_subtract_green_, bw); + if (err != VP8_ENC_OK) goto Error; + } + + if (enc->use_cross_color_) { + err = ApplyCrossColorFilter(enc, enc->current_width_, height, quality, + low_effort, bw); + if (err != VP8_ENC_OK) goto Error; + } } + VP8LPutBits(bw, !TRANSFORM_PRESENT, 1); // No more transforms. + // ------------------------------------------------------------------------- - // Apply transforms and write transform data. + // Encode and write the transformed image. + err = EncodeImageInternal(bw, enc->argb_, &enc->hash_chain_, enc->refs_, + enc->current_width_, height, quality, low_effort, + use_cache, &crunch_configs[idx], + &enc->cache_bits_, enc->histo_bits_, + byte_position, &hdr_size, &data_size); + if (err != VP8_ENC_OK) goto Error; - if (enc->use_subtract_green_) { - ApplySubtractGreen(enc, enc->current_width_, height, bw); + // If we are better than what we already have. + if (idx == 0 || VP8LBitWriterNumBytes(bw) < best_size) { + best_size = VP8LBitWriterNumBytes(bw); + // Store the BitWriter. + VP8LBitWriterSwap(bw, &bw_best); +#if !defined(WEBP_DISABLE_STATS) + // Update the stats. + if (stats != NULL) { + stats->lossless_features = 0; + if (enc->use_predict_) stats->lossless_features |= 1; + if (enc->use_cross_color_) stats->lossless_features |= 2; + if (enc->use_subtract_green_) stats->lossless_features |= 4; + if (enc->use_palette_) stats->lossless_features |= 8; + stats->histogram_bits = enc->histo_bits_; + stats->transform_bits = enc->transform_bits_; + stats->cache_bits = enc->cache_bits_; + stats->palette_size = enc->palette_size_; + stats->lossless_size = (int)(best_size - byte_position); + stats->lossless_hdr_size = hdr_size; + stats->lossless_data_size = data_size; + } +#endif } + // Reset the bit writer for the following iteration if any. + if (num_crunch_configs > 1) VP8LBitWriterReset(&bw_init, bw); + } + VP8LBitWriterSwap(&bw_best, bw); - if (enc->use_predict_) { - err = ApplyPredictFilter(enc, enc->current_width_, height, quality, - low_effort, enc->use_subtract_green_, bw); - if (err != VP8_ENC_OK) goto Error; - } +Error: + VP8LBitWriterWipeOut(&bw_best); + params->err_ = err; + // The hook should return false in case of error. + return (err == VP8_ENC_OK); +} - if (enc->use_cross_color_) { - err = ApplyCrossColorFilter(enc, enc->current_width_, - height, quality, low_effort, bw); - if (err != VP8_ENC_OK) goto Error; - } +WebPEncodingError VP8LEncodeStream(const WebPConfig* const config, + const WebPPicture* const picture, + VP8LBitWriter* const bw_main, + int use_cache) { + WebPEncodingError err = VP8_ENC_OK; + VP8LEncoder* const enc_main = VP8LEncoderNew(config, picture); + VP8LEncoder* enc_side = NULL; + CrunchConfig crunch_configs[CRUNCH_CONFIGS_MAX]; + int num_crunch_configs_main, num_crunch_configs_side = 0; + int idx; + int red_and_blue_always_zero = 0; + WebPWorker worker_main, worker_side; + StreamEncodeContext params_main, params_side; + // The main thread uses picture->stats, the side thread uses stats_side. + WebPAuxStats stats_side; + VP8LBitWriter bw_side; + const WebPWorkerInterface* const worker_interface = WebPGetWorkerInterface(); + int ok_main; + + // Analyze image (entropy, num_palettes etc) + if (enc_main == NULL || + !EncoderAnalyze(enc_main, crunch_configs, &num_crunch_configs_main, + &red_and_blue_always_zero) || + !EncoderInit(enc_main) || !VP8LBitWriterInit(&bw_side, 0)) { + err = VP8_ENC_ERROR_OUT_OF_MEMORY; + goto Error; } - VP8LPutBits(bw, !TRANSFORM_PRESENT, 1); // No more transforms. + // Split the configs between the main and side threads (if any). + if (config->thread_level > 0) { + num_crunch_configs_side = num_crunch_configs_main / 2; + for (idx = 0; idx < num_crunch_configs_side; ++idx) { + params_side.crunch_configs_[idx] = + crunch_configs[num_crunch_configs_main - num_crunch_configs_side + + idx]; + } + params_side.num_crunch_configs_ = num_crunch_configs_side; + } + num_crunch_configs_main -= num_crunch_configs_side; + for (idx = 0; idx < num_crunch_configs_main; ++idx) { + params_main.crunch_configs_[idx] = crunch_configs[idx]; + } + params_main.num_crunch_configs_ = num_crunch_configs_main; - // --------------------------------------------------------------------------- - // Encode and write the transformed image. - err = EncodeImageInternal(bw, enc->argb_, &enc->hash_chain_, enc->refs_, - enc->current_width_, height, quality, low_effort, - use_cache, &enc->cache_bits_, enc->histo_bits_, - byte_position, &hdr_size, &data_size); - if (err != VP8_ENC_OK) goto Error; + // Fill in the parameters for the thread workers. + { + const int params_size = (num_crunch_configs_side > 0) ? 2 : 1; + for (idx = 0; idx < params_size; ++idx) { + // Create the parameters for each worker. + WebPWorker* const worker = (idx == 0) ? &worker_main : &worker_side; + StreamEncodeContext* const param = + (idx == 0) ? ¶ms_main : ¶ms_side; + param->config_ = config; + param->picture_ = picture; + param->use_cache_ = use_cache; + param->red_and_blue_always_zero_ = red_and_blue_always_zero; + if (idx == 0) { + param->stats_ = picture->stats; + param->bw_ = bw_main; + param->enc_ = enc_main; + } else { + param->stats_ = (picture->stats == NULL) ? NULL : &stats_side; + // Create a side bit writer. + if (!VP8LBitWriterClone(bw_main, &bw_side)) { + err = VP8_ENC_ERROR_OUT_OF_MEMORY; + goto Error; + } + param->bw_ = &bw_side; + // Create a side encoder. + enc_side = VP8LEncoderNew(config, picture); + if (enc_side == NULL || !EncoderInit(enc_side)) { + err = VP8_ENC_ERROR_OUT_OF_MEMORY; + goto Error; + } + // Copy the values that were computed for the main encoder. + enc_side->histo_bits_ = enc_main->histo_bits_; + enc_side->transform_bits_ = enc_main->transform_bits_; + enc_side->palette_size_ = enc_main->palette_size_; + memcpy(enc_side->palette_, enc_main->palette_, + sizeof(enc_main->palette_)); + param->enc_ = enc_side; + } + // Create the workers. + worker_interface->Init(worker); + worker->data1 = param; + worker->data2 = NULL; + worker->hook = EncodeStreamHook; + } + } - if (picture->stats != NULL) { - WebPAuxStats* const stats = picture->stats; - stats->lossless_features = 0; - if (enc->use_predict_) stats->lossless_features |= 1; - if (enc->use_cross_color_) stats->lossless_features |= 2; - if (enc->use_subtract_green_) stats->lossless_features |= 4; - if (enc->use_palette_) stats->lossless_features |= 8; - stats->histogram_bits = enc->histo_bits_; - stats->transform_bits = enc->transform_bits_; - stats->cache_bits = enc->cache_bits_; - stats->palette_size = enc->palette_size_; - stats->lossless_size = (int)(VP8LBitWriterNumBytes(bw) - byte_position); - stats->lossless_hdr_size = hdr_size; - stats->lossless_data_size = data_size; + // Start the second thread if needed. + if (num_crunch_configs_side != 0) { + if (!worker_interface->Reset(&worker_side)) { + err = VP8_ENC_ERROR_OUT_OF_MEMORY; + goto Error; + } +#if !defined(WEBP_DISABLE_STATS) + // This line is here and not in the param initialization above to remove a + // Clang static analyzer warning. + if (picture->stats != NULL) { + memcpy(&stats_side, picture->stats, sizeof(stats_side)); + } +#endif + // This line is only useful to remove a Clang static analyzer warning. + params_side.err_ = VP8_ENC_OK; + worker_interface->Launch(&worker_side); + } + // Execute the main thread. + worker_interface->Execute(&worker_main); + ok_main = worker_interface->Sync(&worker_main); + worker_interface->End(&worker_main); + if (num_crunch_configs_side != 0) { + // Wait for the second thread. + const int ok_side = worker_interface->Sync(&worker_side); + worker_interface->End(&worker_side); + if (!ok_main || !ok_side) { + err = ok_main ? params_side.err_ : params_main.err_; + goto Error; + } + if (VP8LBitWriterNumBytes(&bw_side) < VP8LBitWriterNumBytes(bw_main)) { + VP8LBitWriterSwap(bw_main, &bw_side); +#if !defined(WEBP_DISABLE_STATS) + if (picture->stats != NULL) { + memcpy(picture->stats, &stats_side, sizeof(*picture->stats)); + } +#endif + } + } else { + if (!ok_main) { + err = params_main.err_; + goto Error; + } } - Error: - VP8LEncoderDelete(enc); +Error: + VP8LBitWriterWipeOut(&bw_side); + VP8LEncoderDelete(enc_main); + VP8LEncoderDelete(enc_side); return err; } +#undef CRUNCH_CONFIGS_MAX +#undef CRUNCH_CONFIGS_LZ77_MAX + int VP8LEncodeImage(const WebPConfig* const config, const WebPPicture* const picture) { int width, height; @@ -1633,7 +1874,6 @@ int VP8LEncodeImage(const WebPConfig* const config, err = VP8LEncodeStream(config, picture, &bw, 1 /*use_cache*/); if (err != VP8_ENC_OK) goto Error; - // TODO(skal): have a fine-grained progress report in VP8LEncodeStream(). if (!WebPReportProgress(picture, 90, &percent)) goto UserAbort; // Finish the RIFF chunk. @@ -1642,11 +1882,13 @@ int VP8LEncodeImage(const WebPConfig* const config, if (!WebPReportProgress(picture, 100, &percent)) goto UserAbort; +#if !defined(WEBP_DISABLE_STATS) // Save size. if (picture->stats != NULL) { picture->stats->coded_size += (int)coded_size; picture->stats->lossless_size = (int)coded_size; } +#endif if (picture->extra_info != NULL) { const int mb_w = (width + 15) >> 4; diff --git a/external/libwebp-0.6.0/src/enc/vp8li_enc.h b/external/libwebp-1.0.0/src/enc/vp8li_enc.h similarity index 65% rename from external/libwebp-0.6.0/src/enc/vp8li_enc.h rename to external/libwebp-1.0.0/src/enc/vp8li_enc.h index 8c5fbcbb..298a4a00 100644 --- a/external/libwebp-0.6.0/src/enc/vp8li_enc.h +++ b/external/libwebp-1.0.0/src/enc/vp8li_enc.h @@ -11,14 +11,23 @@ // // Author: Vikas Arora (vikaas.arora@gmail.com) -#ifndef WEBP_ENC_VP8LI_H_ -#define WEBP_ENC_VP8LI_H_ +#ifndef WEBP_ENC_VP8LI_ENC_H_ +#define WEBP_ENC_VP8LI_ENC_H_ -#include "./backward_references_enc.h" -#include "./histogram_enc.h" -#include "../utils/bit_writer_utils.h" -#include "../webp/encode.h" -#include "../webp/format_constants.h" +#ifdef HAVE_CONFIG_H +#include "src/webp/config.h" +#endif +// Either WEBP_NEAR_LOSSLESS is defined as 0 in config.h when compiling to +// disable near-lossless, or it is enabled by default. +#ifndef WEBP_NEAR_LOSSLESS +#define WEBP_NEAR_LOSSLESS 1 +#endif + +#include "src/enc/backward_references_enc.h" +#include "src/enc/histogram_enc.h" +#include "src/utils/bit_writer_utils.h" +#include "src/webp/encode.h" +#include "src/webp/format_constants.h" #ifdef __cplusplus extern "C" { @@ -27,16 +36,24 @@ extern "C" { // maximum value of transform_bits_ in VP8LEncoder. #define MAX_TRANSFORM_BITS 6 +typedef enum { + kEncoderNone = 0, + kEncoderARGB, + kEncoderNearLossless, + kEncoderPalette +} VP8LEncoderARGBContent; + typedef struct { const WebPConfig* config_; // user configuration and parameters const WebPPicture* pic_; // input picture. - uint32_t* argb_; // Transformed argb image data. - uint32_t* argb_scratch_; // Scratch memory for argb rows - // (used for prediction). - uint32_t* transform_data_; // Scratch memory for transform data. - uint32_t* transform_mem_; // Currently allocated memory. - size_t transform_mem_size_; // Currently allocated memory size. + uint32_t* argb_; // Transformed argb image data. + VP8LEncoderARGBContent argb_content_; // Content type of the argb buffer. + uint32_t* argb_scratch_; // Scratch memory for argb rows + // (used for prediction). + uint32_t* transform_data_; // Scratch memory for transform data. + uint32_t* transform_mem_; // Currently allocated memory. + size_t transform_mem_size_; // Currently allocated memory size. int current_width_; // Corresponds to packed image width. @@ -54,8 +71,7 @@ typedef struct { uint32_t palette_[MAX_PALETTE_SIZE]; // Some 'scratch' (potentially large) objects. - struct VP8LBackwardRefs refs_[2]; // Backward Refs array corresponding to - // LZ77 & RLE coding. + struct VP8LBackwardRefs refs_[3]; // Backward Refs array for temporaries. VP8LHashChain hash_chain_; // HashChain data for constructing // backward references. } VP8LEncoder; @@ -75,6 +91,13 @@ WebPEncodingError VP8LEncodeStream(const WebPConfig* const config, const WebPPicture* const picture, VP8LBitWriter* const bw, int use_cache); +#if (WEBP_NEAR_LOSSLESS == 1) +// in near_lossless.c +// Near lossless preprocessing in RGB color-space. +int VP8ApplyNearLossless(const WebPPicture* const picture, int quality, + uint32_t* const argb_dst); +#endif + //------------------------------------------------------------------------------ // Image transforms in predictor.c. @@ -92,4 +115,4 @@ void VP8LColorSpaceTransform(int width, int height, int bits, int quality, } // extern "C" #endif -#endif /* WEBP_ENC_VP8LI_H_ */ +#endif /* WEBP_ENC_VP8LI_ENC_H_ */ diff --git a/external/libwebp-0.6.0/src/enc/webp_enc.c b/external/libwebp-1.0.0/src/enc/webp_enc.c similarity index 94% rename from external/libwebp-0.6.0/src/enc/webp_enc.c rename to external/libwebp-1.0.0/src/enc/webp_enc.c index f18461ef..9f4b10c2 100644 --- a/external/libwebp-0.6.0/src/enc/webp_enc.c +++ b/external/libwebp-1.0.0/src/enc/webp_enc.c @@ -16,10 +16,10 @@ #include #include -#include "./cost_enc.h" -#include "./vp8i_enc.h" -#include "./vp8li_enc.h" -#include "../utils/utils.h" +#include "src/enc/cost_enc.h" +#include "src/enc/vp8i_enc.h" +#include "src/enc/vp8li_enc.h" +#include "src/utils/utils.h" // #define PRINT_MEMORY_INFO @@ -159,12 +159,16 @@ static VP8Encoder* InitVP8Encoder(const WebPConfig* const config, + WEBP_ALIGN_CST; // align all const size_t lf_stats_size = config->autofilter ? sizeof(*enc->lf_stats_) + WEBP_ALIGN_CST : 0; + const size_t top_derr_size = + (config->quality <= ERROR_DIFFUSION_QUALITY || config->pass > 1) ? + mb_w * sizeof(*enc->top_derr_) : 0; uint8_t* mem; const uint64_t size = (uint64_t)sizeof(*enc) // main struct + WEBP_ALIGN_CST // cache alignment + info_size // modes info + preds_size // prediction modes + samples_size // top/left samples + + top_derr_size // top diffusion error + nz_size // coeff context bits + lf_stats_size; // autofilter stats @@ -175,11 +179,12 @@ static VP8Encoder* InitVP8Encoder(const WebPConfig* const config, " info: %ld\n" " preds: %ld\n" " top samples: %ld\n" + " top diffusion: %ld\n" " non-zero: %ld\n" " lf-stats: %ld\n" " total: %ld\n", sizeof(*enc) + WEBP_ALIGN_CST, info_size, - preds_size, samples_size, nz_size, lf_stats_size, size); + preds_size, samples_size, top_derr_size, nz_size, lf_stats_size, size); printf("Transient object sizes:\n" " VP8EncIterator: %ld\n" " VP8ModeScore: %ld\n" @@ -207,7 +212,7 @@ static VP8Encoder* InitVP8Encoder(const WebPConfig* const config, enc->preds_w_ = preds_w; enc->mb_info_ = (VP8MBInfo*)mem; mem += info_size; - enc->preds_ = ((uint8_t*)mem) + 1 + enc->preds_w_; + enc->preds_ = mem + 1 + enc->preds_w_; mem += preds_size; enc->nz_ = 1 + (uint32_t*)WEBP_ALIGN(mem); mem += nz_size; @@ -216,9 +221,11 @@ static VP8Encoder* InitVP8Encoder(const WebPConfig* const config, // top samples (all 16-aligned) mem = (uint8_t*)WEBP_ALIGN(mem); - enc->y_top_ = (uint8_t*)mem; + enc->y_top_ = mem; enc->uv_top_ = enc->y_top_ + top_stride; mem += 2 * top_stride; + enc->top_derr_ = top_derr_size ? (DError*)mem : NULL; + mem += top_derr_size; assert(mem <= (uint8_t*)enc + size); enc->config_ = config; @@ -256,6 +263,7 @@ static int DeleteVP8Encoder(VP8Encoder* enc) { //------------------------------------------------------------------------------ +#if !defined(WEBP_DISABLE_STATS) static double GetPSNR(uint64_t err, uint64_t size) { return (err > 0 && size > 0) ? 10. * log10(255. * 255. * size / err) : 99.; } @@ -270,8 +278,10 @@ static void FinalizePSNR(const VP8Encoder* const enc) { stats->PSNR[3] = (float)GetPSNR(sse[0] + sse[1] + sse[2], size * 3 / 2); stats->PSNR[4] = (float)GetPSNR(sse[3], size); } +#endif // !defined(WEBP_DISABLE_STATS) static void StoreStats(VP8Encoder* const enc) { +#if !defined(WEBP_DISABLE_STATS) WebPAuxStats* const stats = enc->pic_->stats; if (stats != NULL) { int i, s; @@ -288,7 +298,9 @@ static void StoreStats(VP8Encoder* const enc) { stats->block_count[i] = enc->block_count_[i]; } } +#else // defined(WEBP_DISABLE_STATS) WebPReportProgress(enc->pic_, 100, &enc->percent_); // done! +#endif // !defined(WEBP_DISABLE_STATS) } int WebPEncodingSetError(const WebPPicture* const pic, @@ -336,10 +348,6 @@ int WebPEncode(const WebPConfig* config, WebPPicture* pic) { if (!config->lossless) { VP8Encoder* enc = NULL; - if (!config->exact) { - WebPCleanupTransparentArea(pic); - } - if (pic->use_argb || pic->y == NULL || pic->u == NULL || pic->v == NULL) { // Make sure we have YUVA samples. if (config->use_sharp_yuv || (config->preprocessing & 4)) { @@ -361,6 +369,10 @@ int WebPEncode(const WebPConfig* config, WebPPicture* pic) { } } + if (!config->exact) { + WebPCleanupTransparentArea(pic); + } + enc = InitVP8Encoder(config, pic); if (enc == NULL) return 0; // pic->error is already set. // Note: each of the tasks below account for 20% in the progress report. diff --git a/external/libwebp-0.6.0/src/libwebp.pc.in b/external/libwebp-1.0.0/src/libwebp.pc.in similarity index 100% rename from external/libwebp-0.6.0/src/libwebp.pc.in rename to external/libwebp-1.0.0/src/libwebp.pc.in diff --git a/external/libwebp-0.6.0/src/libwebp.rc b/external/libwebp-1.0.0/src/libwebp.rc similarity index 81% rename from external/libwebp-0.6.0/src/libwebp.rc rename to external/libwebp-1.0.0/src/libwebp.rc index cb9afed0..d554124f 100644 --- a/external/libwebp-0.6.0/src/libwebp.rc +++ b/external/libwebp-1.0.0/src/libwebp.rc @@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,6,0,0 - PRODUCTVERSION 0,6,0,0 + FILEVERSION 1,0,0,0 + PRODUCTVERSION 1,0,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -24,12 +24,12 @@ BEGIN BEGIN VALUE "CompanyName", "Google, Inc." VALUE "FileDescription", "libwebp DLL" - VALUE "FileVersion", "0.6.0" + VALUE "FileVersion", "1.0.0" VALUE "InternalName", "libwebp.dll" - VALUE "LegalCopyright", "Copyright (C) 2017" + VALUE "LegalCopyright", "Copyright (C) 2018" VALUE "OriginalFilename", "libwebp.dll" VALUE "ProductName", "WebP Image Codec" - VALUE "ProductVersion", "0.6.0" + VALUE "ProductVersion", "1.0.0" END END BLOCK "VarFileInfo" diff --git a/external/libwebp-0.6.0/src/libwebpdecoder.pc.in b/external/libwebp-1.0.0/src/libwebpdecoder.pc.in similarity index 100% rename from external/libwebp-0.6.0/src/libwebpdecoder.pc.in rename to external/libwebp-1.0.0/src/libwebpdecoder.pc.in diff --git a/external/libwebp-0.6.0/src/libwebpdecoder.rc b/external/libwebp-1.0.0/src/libwebpdecoder.rc similarity index 82% rename from external/libwebp-0.6.0/src/libwebpdecoder.rc rename to external/libwebp-1.0.0/src/libwebpdecoder.rc index 3fdcbfaf..8a2def48 100644 --- a/external/libwebp-0.6.0/src/libwebpdecoder.rc +++ b/external/libwebp-1.0.0/src/libwebpdecoder.rc @@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,6,0,0 - PRODUCTVERSION 0,6,0,0 + FILEVERSION 1,0,0,0 + PRODUCTVERSION 1,0,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -24,12 +24,12 @@ BEGIN BEGIN VALUE "CompanyName", "Google, Inc." VALUE "FileDescription", "libwebpdecoder DLL" - VALUE "FileVersion", "0.6.0" + VALUE "FileVersion", "1.0.0" VALUE "InternalName", "libwebpdecoder.dll" - VALUE "LegalCopyright", "Copyright (C) 2017" + VALUE "LegalCopyright", "Copyright (C) 2018" VALUE "OriginalFilename", "libwebpdecoder.dll" VALUE "ProductName", "WebP Image Decoder" - VALUE "ProductVersion", "0.6.0" + VALUE "ProductVersion", "1.0.0" END END BLOCK "VarFileInfo" diff --git a/external/libwebp-0.6.0/src/mux/Makefile.am b/external/libwebp-1.0.0/src/mux/Makefile.am similarity index 75% rename from external/libwebp-0.6.0/src/mux/Makefile.am rename to external/libwebp-1.0.0/src/mux/Makefile.am index 47b1fbe1..447bcce4 100644 --- a/external/libwebp-0.6.0/src/mux/Makefile.am +++ b/external/libwebp-1.0.0/src/mux/Makefile.am @@ -1,3 +1,4 @@ +AM_CPPFLAGS += -I$(top_builddir) -I$(top_srcdir) lib_LTLIBRARIES = libwebpmux.la libwebpmux_la_SOURCES = @@ -12,8 +13,10 @@ libwebpmuxinclude_HEADERS = libwebpmuxinclude_HEADERS += ../webp/mux.h libwebpmuxinclude_HEADERS += ../webp/mux_types.h libwebpmuxinclude_HEADERS += ../webp/types.h +noinst_HEADERS = +noinst_HEADERS += ../webp/format_constants.h libwebpmux_la_LIBADD = ../libwebp.la -libwebpmux_la_LDFLAGS = -no-undefined -version-info 3:0:0 -lm +libwebpmux_la_LDFLAGS = -no-undefined -version-info 3:2:0 -lm libwebpmuxincludedir = $(includedir)/webp pkgconfig_DATA = libwebpmux.pc diff --git a/external/libwebp-1.0.0/src/mux/Makefile.in b/external/libwebp-1.0.0/src/mux/Makefile.in new file mode 100644 index 00000000..87ab9610 --- /dev/null +++ b/external/libwebp-1.0.0/src/mux/Makefile.in @@ -0,0 +1,738 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/mux +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(libwebpmuxinclude_HEADERS) \ + $(noinst_HEADERS) $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/webp/config.h +CONFIG_CLEAN_FILES = libwebpmux.pc +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \ + "$(DESTDIR)$(libwebpmuxincludedir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +libwebpmux_la_DEPENDENCIES = ../libwebp.la +am_libwebpmux_la_OBJECTS = anim_encode.lo muxedit.lo muxinternal.lo \ + muxread.lo +libwebpmux_la_OBJECTS = $(am_libwebpmux_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libwebpmux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libwebpmux_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/webp +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libwebpmux_la_SOURCES) +DIST_SOURCES = $(libwebpmux_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(pkgconfig_DATA) +HEADERS = $(libwebpmuxinclude_HEADERS) $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/libwebpmux.pc.in \ + $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_builddir) -I$(top_srcdir) +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVX2_FLAGS = @AVX2_FLAGS@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GIF_INCLUDES = @GIF_INCLUDES@ +GIF_LIBS = @GIF_LIBS@ +GL_INCLUDES = @GL_INCLUDES@ +GL_LIBS = @GL_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JPEG_INCLUDES = @JPEG_INCLUDES@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPNG_CONFIG = @LIBPNG_CONFIG@ +LIBS = @LIBS@ +LIBSDL_CONFIG = @LIBSDL_CONFIG@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NEON_FLAGS = @NEON_FLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PNG_INCLUDES = @PNG_INCLUDES@ +PNG_LIBS = @PNG_LIBS@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SDL_INCLUDES = @SDL_INCLUDES@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSE2_FLAGS = @SSE2_FLAGS@ +SSE41_FLAGS = @SSE41_FLAGS@ +STRIP = @STRIP@ +TIFF_INCLUDES = @TIFF_INCLUDES@ +TIFF_LIBS = @TIFF_LIBS@ +USE_SWAP_16BIT_CSP = @USE_SWAP_16BIT_CSP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +lib_LTLIBRARIES = libwebpmux.la +libwebpmux_la_SOURCES = anim_encode.c animi.h muxedit.c muxi.h \ + muxinternal.c muxread.c +libwebpmuxinclude_HEADERS = ../webp/mux.h ../webp/mux_types.h \ + ../webp/types.h +noinst_HEADERS = ../webp/format_constants.h +libwebpmux_la_LIBADD = ../libwebp.la +libwebpmux_la_LDFLAGS = -no-undefined -version-info 3:2:0 -lm +libwebpmuxincludedir = $(includedir)/webp +pkgconfig_DATA = libwebpmux.pc +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/mux/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/mux/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +libwebpmux.pc: $(top_builddir)/config.status $(srcdir)/libwebpmux.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libwebpmux.la: $(libwebpmux_la_OBJECTS) $(libwebpmux_la_DEPENDENCIES) $(EXTRA_libwebpmux_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwebpmux_la_LINK) -rpath $(libdir) $(libwebpmux_la_OBJECTS) $(libwebpmux_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/anim_encode.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/muxedit.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/muxinternal.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/muxread.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) +install-libwebpmuxincludeHEADERS: $(libwebpmuxinclude_HEADERS) + @$(NORMAL_INSTALL) + @list='$(libwebpmuxinclude_HEADERS)'; test -n "$(libwebpmuxincludedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libwebpmuxincludedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libwebpmuxincludedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libwebpmuxincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(libwebpmuxincludedir)" || exit $$?; \ + done + +uninstall-libwebpmuxincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(libwebpmuxinclude_HEADERS)'; test -n "$(libwebpmuxincludedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libwebpmuxincludedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libwebpmuxincludedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-libwebpmuxincludeHEADERS \ + install-pkgconfigDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libLTLIBRARIES \ + uninstall-libwebpmuxincludeHEADERS uninstall-pkgconfigDATA + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES \ + install-libwebpmuxincludeHEADERS install-man install-pdf \ + install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-libLTLIBRARIES uninstall-libwebpmuxincludeHEADERS \ + uninstall-pkgconfigDATA + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/external/libwebp-0.6.0/src/mux/anim_encode.c b/external/libwebp-1.0.0/src/mux/anim_encode.c similarity index 97% rename from external/libwebp-0.6.0/src/mux/anim_encode.c rename to external/libwebp-1.0.0/src/mux/anim_encode.c index 60663887..7be99068 100644 --- a/external/libwebp-0.6.0/src/mux/anim_encode.c +++ b/external/libwebp-1.0.0/src/mux/anim_encode.c @@ -16,12 +16,12 @@ #include #include // for abs() -#include "../mux/animi.h" -#include "../utils/utils.h" -#include "../webp/decode.h" -#include "../webp/encode.h" -#include "../webp/format_constants.h" -#include "../webp/mux.h" +#include "src/mux/animi.h" +#include "src/utils/utils.h" +#include "src/webp/decode.h" +#include "src/webp/encode.h" +#include "src/webp/format_constants.h" +#include "src/webp/mux.h" #if defined(_MSC_VER) && _MSC_VER < 1900 #define snprintf _snprintf @@ -35,7 +35,7 @@ // Stores frame rectangle dimensions. typedef struct { int x_offset_, y_offset_, width_, height_; -} FrameRect; +} FrameRectangle; // Used to store two candidates of encoded data for an animation frame. One of // the two will be chosen later. @@ -50,7 +50,7 @@ struct WebPAnimEncoder { const int canvas_height_; // Canvas height. const WebPAnimEncoderOptions options_; // Global encoding options. - FrameRect prev_rect_; // Previous WebP frame rectangle. + FrameRectangle prev_rect_; // Previous WebP frame rectangle. WebPConfig last_config_; // Cached in case a re-encode is needed. WebPConfig last_config_reversed_; // If 'last_config_' uses lossless, then // this config uses lossy and vice versa; @@ -206,7 +206,7 @@ static void ClearRectangle(WebPPicture* const picture, } static void WebPUtilClearPic(WebPPicture* const picture, - const FrameRect* const rect) { + const FrameRectangle* const rect) { if (rect != NULL) { ClearRectangle(picture, rect->x_offset_, rect->y_offset_, rect->width_, rect->height_); @@ -400,7 +400,7 @@ static WEBP_INLINE int ComparePixelsLossy(const uint32_t* src, int src_step, return 1; } -static int IsEmptyRect(const FrameRect* const rect) { +static int IsEmptyRect(const FrameRectangle* const rect) { return (rect->width_ == 0) || (rect->height_ == 0); } @@ -413,7 +413,7 @@ static int QualityToMaxDiff(float quality) { // Assumes that an initial valid guess of change rectangle 'rect' is passed. static void MinimizeChangeRectangle(const WebPPicture* const src, const WebPPicture* const dst, - FrameRect* const rect, + FrameRectangle* const rect, int is_lossless, float quality) { int i, j; const ComparePixelsFunc compare_pixels = @@ -498,7 +498,7 @@ static void MinimizeChangeRectangle(const WebPPicture* const src, } // Snap rectangle to even offsets (and adjust dimensions if needed). -static WEBP_INLINE void SnapToEvenOffsets(FrameRect* const rect) { +static WEBP_INLINE void SnapToEvenOffsets(FrameRectangle* const rect) { rect->width_ += (rect->x_offset_ & 1); rect->height_ += (rect->y_offset_ & 1); rect->x_offset_ &= ~1; @@ -508,9 +508,9 @@ static WEBP_INLINE void SnapToEvenOffsets(FrameRect* const rect) { typedef struct { int should_try_; // Should try this set of parameters. int empty_rect_allowed_; // Frame with empty rectangle can be skipped. - FrameRect rect_ll_; // Frame rectangle for lossless compression. + FrameRectangle rect_ll_; // Frame rectangle for lossless compression. WebPPicture sub_frame_ll_; // Sub-frame pic for lossless compression. - FrameRect rect_lossy_; // Frame rectangle for lossy compression. + FrameRectangle rect_lossy_; // Frame rectangle for lossy compression. // Could be smaller than rect_ll_ as pixels // with small diffs can be ignored. WebPPicture sub_frame_lossy_; // Sub-frame pic for lossless compression. @@ -538,7 +538,8 @@ static void SubFrameParamsFree(SubFrameParams* const params) { static int GetSubRect(const WebPPicture* const prev_canvas, const WebPPicture* const curr_canvas, int is_key_frame, int is_first_frame, int empty_rect_allowed, - int is_lossless, float quality, FrameRect* const rect, + int is_lossless, float quality, + FrameRectangle* const rect, WebPPicture* const sub_frame) { if (!is_key_frame || is_first_frame) { // Optimize frame rectangle. // Note: This behaves as expected for first frame, as 'prev_canvas' is @@ -594,7 +595,7 @@ int WebPAnimEncoderRefineRect( const WebPPicture* const prev_canvas, const WebPPicture* const curr_canvas, int is_lossless, float quality, int* const x_offset, int* const y_offset, int* const width, int* const height) { - FrameRect rect; + FrameRectangle rect; const int right = clip(*x_offset + *width, 0, curr_canvas->width); const int left = clip(*x_offset, 0, curr_canvas->width - 1); const int bottom = clip(*y_offset + *height, 0, curr_canvas->height); @@ -620,7 +621,7 @@ int WebPAnimEncoderRefineRect( } static void DisposeFrameRectangle(int dispose_method, - const FrameRect* const rect, + const FrameRectangle* const rect, WebPPicture* const curr_canvas) { assert(rect != NULL); if (dispose_method == WEBP_MUX_DISPOSE_BACKGROUND) { @@ -628,13 +629,13 @@ static void DisposeFrameRectangle(int dispose_method, } } -static uint32_t RectArea(const FrameRect* const rect) { +static uint32_t RectArea(const FrameRectangle* const rect) { return (uint32_t)rect->width_ * rect->height_; } static int IsLosslessBlendingPossible(const WebPPicture* const src, const WebPPicture* const dst, - const FrameRect* const rect) { + const FrameRectangle* const rect) { int i, j; assert(src->width == dst->width && src->height == dst->height); assert(rect->x_offset_ + rect->width_ <= dst->width); @@ -656,7 +657,7 @@ static int IsLosslessBlendingPossible(const WebPPicture* const src, static int IsLossyBlendingPossible(const WebPPicture* const src, const WebPPicture* const dst, - const FrameRect* const rect, + const FrameRectangle* const rect, float quality) { const int max_allowed_diff_lossy = QualityToMaxDiff(quality); int i, j; @@ -683,7 +684,7 @@ static int IsLossyBlendingPossible(const WebPPicture* const src, // transparent pixels. // Returns true if at least one pixel gets modified. static int IncreaseTransparency(const WebPPicture* const src, - const FrameRect* const rect, + const FrameRectangle* const rect, WebPPicture* const dst) { int i, j; int modified = 0; @@ -709,7 +710,7 @@ static int IncreaseTransparency(const WebPPicture* const src, // Assumes lossy compression is being used. // Returns true if at least one pixel gets modified. static int FlattenSimilarBlocks(const WebPPicture* const src, - const FrameRect* const rect, + const FrameRectangle* const rect, WebPPicture* const dst, float quality) { const int max_allowed_diff_lossy = QualityToMaxDiff(quality); int i, j; @@ -778,13 +779,13 @@ static int EncodeFrame(const WebPConfig* const config, WebPPicture* const pic, typedef struct { WebPMemoryWriter mem_; WebPMuxFrameInfo info_; - FrameRect rect_; + FrameRectangle rect_; int evaluate_; // True if this candidate should be evaluated. } Candidate; // Generates a candidate encoded frame given a picture and metadata. static WebPEncodingError EncodeCandidate(WebPPicture* const sub_frame, - const FrameRect* const rect, + const FrameRectangle* const rect, const WebPConfig* const encoder_config, int use_blending, Candidate* const candidate) { @@ -958,7 +959,7 @@ static int IncreasePreviousDuration(WebPAnimEncoder* const enc, int duration) { if (new_duration >= MAX_DURATION) { // Special case. // Separate out previous frame from earlier merged frames to avoid overflow. // We add a 1x1 transparent frame for the previous frame, with blending on. - const FrameRect rect = { 0, 0, 1, 1 }; + const FrameRectangle rect = { 0, 0, 1, 1 }; const uint8_t lossless_1x1_bytes[] = { 0x52, 0x49, 0x46, 0x46, 0x14, 0x00, 0x00, 0x00, 0x57, 0x45, 0x42, 0x50, 0x56, 0x50, 0x38, 0x4c, 0x08, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, @@ -1223,7 +1224,7 @@ static int CacheFrame(WebPAnimEncoder* const enc, enc->prev_candidate_undecided_ = 0; } else { int64_t curr_delta; - FrameRect prev_rect_key, prev_rect_sub; + FrameRectangle prev_rect_key, prev_rect_sub; // Add this as a frame rectangle to enc. error_code = SetFrame(enc, config, 0, encoded_frame, &frame_skipped); @@ -1535,7 +1536,8 @@ int WebPAnimEncoderAssemble(WebPAnimEncoder* enc, WebPData* webp_data) { if (!enc->got_null_frame_ && enc->in_frame_count_ > 1 && enc->count_ > 0) { // set duration of the last frame to be avg of durations of previous frames. - const double delta_time = enc->prev_timestamp_ - enc->first_timestamp_; + const double delta_time = + (uint32_t)enc->prev_timestamp_ - enc->first_timestamp_; const int average_duration = (int)(delta_time / (enc->in_frame_count_ - 1)); if (!IncreasePreviousDuration(enc, average_duration)) { return 0; diff --git a/external/libwebp-0.6.0/src/mux/animi.h b/external/libwebp-1.0.0/src/mux/animi.h similarity index 98% rename from external/libwebp-0.6.0/src/mux/animi.h rename to external/libwebp-1.0.0/src/mux/animi.h index cecaf1fe..88899532 100644 --- a/external/libwebp-0.6.0/src/mux/animi.h +++ b/external/libwebp-1.0.0/src/mux/animi.h @@ -14,7 +14,7 @@ #ifndef WEBP_MUX_ANIMI_H_ #define WEBP_MUX_ANIMI_H_ -#include "../webp/mux.h" +#include "src/webp/mux.h" #ifdef __cplusplus extern "C" { diff --git a/external/libwebp-0.6.0/src/mux/libwebpmux.pc.in b/external/libwebp-1.0.0/src/mux/libwebpmux.pc.in similarity index 100% rename from external/libwebp-0.6.0/src/mux/libwebpmux.pc.in rename to external/libwebp-1.0.0/src/mux/libwebpmux.pc.in diff --git a/external/libwebp-0.6.0/src/mux/libwebpmux.rc b/external/libwebp-1.0.0/src/mux/libwebpmux.rc similarity index 81% rename from external/libwebp-0.6.0/src/mux/libwebpmux.rc rename to external/libwebp-1.0.0/src/mux/libwebpmux.rc index 7f9a33a0..8c7d5f67 100644 --- a/external/libwebp-0.6.0/src/mux/libwebpmux.rc +++ b/external/libwebp-1.0.0/src/mux/libwebpmux.rc @@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,4,0,0 - PRODUCTVERSION 0,4,0,0 + FILEVERSION 1,0,0,0 + PRODUCTVERSION 1,0,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -24,12 +24,12 @@ BEGIN BEGIN VALUE "CompanyName", "Google, Inc." VALUE "FileDescription", "libwebpmux DLL" - VALUE "FileVersion", "0.4.0" + VALUE "FileVersion", "1.0.0" VALUE "InternalName", "libwebpmux.dll" - VALUE "LegalCopyright", "Copyright (C) 2017" + VALUE "LegalCopyright", "Copyright (C) 2018" VALUE "OriginalFilename", "libwebpmux.dll" VALUE "ProductName", "WebP Image Muxer" - VALUE "ProductVersion", "0.4.0" + VALUE "ProductVersion", "1.0.0" END END BLOCK "VarFileInfo" diff --git a/external/libwebp-0.6.0/src/mux/muxedit.c b/external/libwebp-1.0.0/src/mux/muxedit.c similarity index 99% rename from external/libwebp-0.6.0/src/mux/muxedit.c rename to external/libwebp-1.0.0/src/mux/muxedit.c index d2c53053..7a027b3c 100644 --- a/external/libwebp-0.6.0/src/mux/muxedit.c +++ b/external/libwebp-1.0.0/src/mux/muxedit.c @@ -13,8 +13,8 @@ // Vikas (vikasa@google.com) #include -#include "./muxi.h" -#include "../utils/utils.h" +#include "src/mux/muxi.h" +#include "src/utils/utils.h" //------------------------------------------------------------------------------ // Life of a mux object. diff --git a/external/libwebp-0.6.0/src/mux/muxi.h b/external/libwebp-1.0.0/src/mux/muxi.h similarity index 98% rename from external/libwebp-0.6.0/src/mux/muxi.h rename to external/libwebp-1.0.0/src/mux/muxi.h index e6606aa5..6b57eea3 100644 --- a/external/libwebp-0.6.0/src/mux/muxi.h +++ b/external/libwebp-1.0.0/src/mux/muxi.h @@ -15,9 +15,9 @@ #define WEBP_MUX_MUXI_H_ #include -#include "../dec/vp8i_dec.h" -#include "../dec/vp8li_dec.h" -#include "../webp/mux.h" +#include "src/dec/vp8i_dec.h" +#include "src/dec/vp8li_dec.h" +#include "src/webp/mux.h" #ifdef __cplusplus extern "C" { @@ -26,8 +26,8 @@ extern "C" { //------------------------------------------------------------------------------ // Defines and constants. -#define MUX_MAJ_VERSION 0 -#define MUX_MIN_VERSION 4 +#define MUX_MAJ_VERSION 1 +#define MUX_MIN_VERSION 0 #define MUX_REV_VERSION 0 // Chunk object. diff --git a/external/libwebp-0.6.0/src/mux/muxinternal.c b/external/libwebp-1.0.0/src/mux/muxinternal.c similarity index 96% rename from external/libwebp-0.6.0/src/mux/muxinternal.c rename to external/libwebp-1.0.0/src/mux/muxinternal.c index 387b57e8..1473f100 100644 --- a/external/libwebp-0.6.0/src/mux/muxinternal.c +++ b/external/libwebp-1.0.0/src/mux/muxinternal.c @@ -13,8 +13,8 @@ // Vikas (vikasa@google.com) #include -#include "./muxi.h" -#include "../utils/utils.h" +#include "src/mux/muxi.h" +#include "src/utils/utils.h" #define UNDEFINED_CHUNK_SIZE ((uint32_t)(-1)) @@ -504,6 +504,20 @@ WebPMuxError MuxValidate(const WebPMux* const mux) { if (!has_animation && (num_anim == 1 || num_frames > 0)) { return WEBP_MUX_INVALID_ARGUMENT; } + if (!has_animation) { + const WebPMuxImage* images = mux->images_; + // There can be only one image. + if (images == NULL || images->next_ != NULL) { + return WEBP_MUX_INVALID_ARGUMENT; + } + // Size must match. + if (mux->canvas_width_ > 0) { + if (images->width_ != mux->canvas_width_ || + images->height_ != mux->canvas_height_) { + return WEBP_MUX_INVALID_ARGUMENT; + } + } + } } // Verify either VP8X chunk is present OR there is only one elem in @@ -515,6 +529,7 @@ WebPMuxError MuxValidate(const WebPMux* const mux) { if (num_vp8x == 0 && num_images != 1) return WEBP_MUX_INVALID_ARGUMENT; // ALPHA_FLAG & alpha chunk(s) are consistent. + // Note: ALPHA_FLAG can be set when there is actually no Alpha data present. if (MuxHasAlpha(mux->images_)) { if (num_vp8x > 0) { // VP8X chunk is present, so it should contain ALPHA_FLAG. @@ -525,8 +540,6 @@ WebPMuxError MuxValidate(const WebPMux* const mux) { if (err != WEBP_MUX_OK) return err; if (num_alpha > 0) return WEBP_MUX_INVALID_ARGUMENT; } - } else { // Mux doesn't need alpha. So, ALPHA_FLAG should NOT be present. - if (flags & ALPHA_FLAG) return WEBP_MUX_INVALID_ARGUMENT; } return WEBP_MUX_OK; diff --git a/external/libwebp-0.6.0/src/mux/muxread.c b/external/libwebp-1.0.0/src/mux/muxread.c similarity index 99% rename from external/libwebp-0.6.0/src/mux/muxread.c rename to external/libwebp-1.0.0/src/mux/muxread.c index 410acd91..0b552868 100644 --- a/external/libwebp-0.6.0/src/mux/muxread.c +++ b/external/libwebp-1.0.0/src/mux/muxread.c @@ -13,8 +13,8 @@ // Vikas (vikasa@google.com) #include -#include "./muxi.h" -#include "../utils/utils.h" +#include "src/mux/muxi.h" +#include "src/utils/utils.h" //------------------------------------------------------------------------------ // Helper method(s). @@ -43,7 +43,7 @@ static WebPMuxError MuxGet(const WebPMux* const mux, CHUNK_INDEX idx, SWITCH_ID_LIST(IDX_ANIM, mux->anim_); SWITCH_ID_LIST(IDX_EXIF, mux->exif_); SWITCH_ID_LIST(IDX_XMP, mux->xmp_); - SWITCH_ID_LIST(IDX_UNKNOWN, mux->unknown_); + assert(idx != IDX_UNKNOWN); return WEBP_MUX_NOT_FOUND; } #undef SWITCH_ID_LIST @@ -270,6 +270,9 @@ WebPMux* WebPMuxCreateInternal(const WebPData* bitstream, int copy_data, ChunkInit(&chunk); } + // Incomplete image. + if (wpi->is_partial_) goto Err; + // Validate mux if complete. if (MuxValidate(mux) != WEBP_MUX_OK) goto Err; diff --git a/external/libwebp-0.6.0/src/utils/Makefile.am b/external/libwebp-1.0.0/src/utils/Makefile.am similarity index 96% rename from external/libwebp-0.6.0/src/utils/Makefile.am rename to external/libwebp-1.0.0/src/utils/Makefile.am index e346c0b4..fbb0fe73 100644 --- a/external/libwebp-0.6.0/src/utils/Makefile.am +++ b/external/libwebp-1.0.0/src/utils/Makefile.am @@ -1,3 +1,4 @@ +AM_CPPFLAGS += -I$(top_builddir) -I$(top_srcdir) noinst_LTLIBRARIES = libwebputils.la if BUILD_LIBWEBPDECODER diff --git a/external/libwebp-1.0.0/src/utils/Makefile.in b/external/libwebp-1.0.0/src/utils/Makefile.in new file mode 100644 index 00000000..ad30addf --- /dev/null +++ b/external/libwebp-1.0.0/src/utils/Makefile.in @@ -0,0 +1,715 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@BUILD_LIBWEBPDECODER_TRUE@am__append_1 = libwebputilsdecode.la +subdir = src/utils +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(common_HEADERS) \ + $(noinst_HEADERS) $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/webp/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libwebputils_la_LIBADD = +am__objects_1 = bit_reader_utils.lo color_cache_utils.lo \ + filters_utils.lo huffman_utils.lo quant_levels_dec_utils.lo \ + rescaler_utils.lo random_utils.lo thread_utils.lo utils.lo +am__objects_2 = bit_writer_utils.lo huffman_encode_utils.lo \ + quant_levels_utils.lo +am_libwebputils_la_OBJECTS = $(am__objects_1) $(am__objects_2) +libwebputils_la_OBJECTS = $(am_libwebputils_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libwebputilsdecode_la_LIBADD = +am__libwebputilsdecode_la_SOURCES_DIST = bit_reader_utils.c \ + bit_reader_utils.h bit_reader_inl_utils.h color_cache_utils.c \ + color_cache_utils.h endian_inl_utils.h filters_utils.c \ + filters_utils.h huffman_utils.c huffman_utils.h \ + quant_levels_dec_utils.c quant_levels_dec_utils.h \ + rescaler_utils.c rescaler_utils.h random_utils.c \ + random_utils.h thread_utils.c thread_utils.h utils.c utils.h +@BUILD_LIBWEBPDECODER_TRUE@am_libwebputilsdecode_la_OBJECTS = \ +@BUILD_LIBWEBPDECODER_TRUE@ $(am__objects_1) +libwebputilsdecode_la_OBJECTS = $(am_libwebputilsdecode_la_OBJECTS) +@BUILD_LIBWEBPDECODER_TRUE@am_libwebputilsdecode_la_rpath = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/webp +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libwebputils_la_SOURCES) $(libwebputilsdecode_la_SOURCES) +DIST_SOURCES = $(libwebputils_la_SOURCES) \ + $(am__libwebputilsdecode_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(commondir)" +HEADERS = $(common_HEADERS) $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_builddir) -I$(top_srcdir) +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVX2_FLAGS = @AVX2_FLAGS@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GIF_INCLUDES = @GIF_INCLUDES@ +GIF_LIBS = @GIF_LIBS@ +GL_INCLUDES = @GL_INCLUDES@ +GL_LIBS = @GL_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JPEG_INCLUDES = @JPEG_INCLUDES@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPNG_CONFIG = @LIBPNG_CONFIG@ +LIBS = @LIBS@ +LIBSDL_CONFIG = @LIBSDL_CONFIG@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NEON_FLAGS = @NEON_FLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PNG_INCLUDES = @PNG_INCLUDES@ +PNG_LIBS = @PNG_LIBS@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SDL_INCLUDES = @SDL_INCLUDES@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSE2_FLAGS = @SSE2_FLAGS@ +SSE41_FLAGS = @SSE41_FLAGS@ +STRIP = @STRIP@ +TIFF_INCLUDES = @TIFF_INCLUDES@ +TIFF_LIBS = @TIFF_LIBS@ +USE_SWAP_16BIT_CSP = @USE_SWAP_16BIT_CSP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +noinst_LTLIBRARIES = libwebputils.la $(am__append_1) +common_HEADERS = ../webp/types.h +commondir = $(includedir)/webp +noinst_HEADERS = ../dsp/dsp.h ../webp/decode.h ../webp/encode.h \ + ../webp/format_constants.h +COMMON_SOURCES = bit_reader_utils.c bit_reader_utils.h \ + bit_reader_inl_utils.h color_cache_utils.c color_cache_utils.h \ + endian_inl_utils.h filters_utils.c filters_utils.h \ + huffman_utils.c huffman_utils.h quant_levels_dec_utils.c \ + quant_levels_dec_utils.h rescaler_utils.c rescaler_utils.h \ + random_utils.c random_utils.h thread_utils.c thread_utils.h \ + utils.c utils.h +ENC_SOURCES = bit_writer_utils.c bit_writer_utils.h \ + huffman_encode_utils.c huffman_encode_utils.h \ + quant_levels_utils.c quant_levels_utils.h +libwebputils_la_SOURCES = $(COMMON_SOURCES) $(ENC_SOURCES) +@BUILD_LIBWEBPDECODER_TRUE@libwebputilsdecode_la_SOURCES = $(COMMON_SOURCES) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/utils/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/utils/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libwebputils.la: $(libwebputils_la_OBJECTS) $(libwebputils_la_DEPENDENCIES) $(EXTRA_libwebputils_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libwebputils_la_OBJECTS) $(libwebputils_la_LIBADD) $(LIBS) + +libwebputilsdecode.la: $(libwebputilsdecode_la_OBJECTS) $(libwebputilsdecode_la_DEPENDENCIES) $(EXTRA_libwebputilsdecode_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(am_libwebputilsdecode_la_rpath) $(libwebputilsdecode_la_OBJECTS) $(libwebputilsdecode_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bit_reader_utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bit_writer_utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color_cache_utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filters_utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/huffman_encode_utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/huffman_utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quant_levels_dec_utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quant_levels_utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/random_utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rescaler_utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thread_utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-commonHEADERS: $(common_HEADERS) + @$(NORMAL_INSTALL) + @list='$(common_HEADERS)'; test -n "$(commondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(commondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(commondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(commondir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(commondir)" || exit $$?; \ + done + +uninstall-commonHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(common_HEADERS)'; test -n "$(commondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(commondir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(commondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-commonHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-commonHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-commonHEADERS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-commonHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/external/libwebp-0.6.0/src/utils/bit_reader_inl_utils.h b/external/libwebp-1.0.0/src/utils/bit_reader_inl_utils.h similarity index 94% rename from external/libwebp-0.6.0/src/utils/bit_reader_inl_utils.h rename to external/libwebp-1.0.0/src/utils/bit_reader_inl_utils.h index fd7fb044..2ccc6ed3 100644 --- a/external/libwebp-0.6.0/src/utils/bit_reader_inl_utils.h +++ b/external/libwebp-1.0.0/src/utils/bit_reader_inl_utils.h @@ -13,19 +13,19 @@ // // Author: Skal (pascal.massimino@gmail.com) -#ifndef WEBP_UTILS_BIT_READER_INL_H_ -#define WEBP_UTILS_BIT_READER_INL_H_ +#ifndef WEBP_UTILS_BIT_READER_INL_UTILS_H_ +#define WEBP_UTILS_BIT_READER_INL_UTILS_H_ #ifdef HAVE_CONFIG_H -#include "../webp/config.h" +#include "src/webp/config.h" #endif #include // for memcpy -#include "../dsp/dsp.h" -#include "./bit_reader_utils.h" -#include "./endian_inl_utils.h" -#include "./utils.h" +#include "src/dsp/dsp.h" +#include "src/utils/bit_reader_utils.h" +#include "src/utils/endian_inl_utils.h" +#include "src/utils/utils.h" #ifdef __cplusplus extern "C" { @@ -187,4 +187,4 @@ static WEBP_INLINE int VP8GetBitAlt(VP8BitReader* const br, int prob) { } // extern "C" #endif -#endif // WEBP_UTILS_BIT_READER_INL_H_ +#endif // WEBP_UTILS_BIT_READER_INL_UTILS_H_ diff --git a/external/libwebp-0.6.0/src/utils/bit_reader_utils.c b/external/libwebp-1.0.0/src/utils/bit_reader_utils.c similarity index 98% rename from external/libwebp-0.6.0/src/utils/bit_reader_utils.c rename to external/libwebp-1.0.0/src/utils/bit_reader_utils.c index c3157e8f..1500354d 100644 --- a/external/libwebp-0.6.0/src/utils/bit_reader_utils.c +++ b/external/libwebp-1.0.0/src/utils/bit_reader_utils.c @@ -12,11 +12,11 @@ // Author: Skal (pascal.massimino@gmail.com) #ifdef HAVE_CONFIG_H -#include "../webp/config.h" +#include "src/webp/config.h" #endif -#include "./bit_reader_inl_utils.h" -#include "../utils/utils.h" +#include "src/utils/bit_reader_inl_utils.h" +#include "src/utils/utils.h" //------------------------------------------------------------------------------ // VP8BitReader diff --git a/external/libwebp-0.6.0/src/utils/bit_reader_utils.h b/external/libwebp-1.0.0/src/utils/bit_reader_utils.h similarity index 96% rename from external/libwebp-0.6.0/src/utils/bit_reader_utils.h rename to external/libwebp-1.0.0/src/utils/bit_reader_utils.h index ec3426cd..317d311c 100644 --- a/external/libwebp-0.6.0/src/utils/bit_reader_utils.h +++ b/external/libwebp-1.0.0/src/utils/bit_reader_utils.h @@ -12,14 +12,14 @@ // Author: Skal (pascal.massimino@gmail.com) // Vikas Arora (vikaas.arora@gmail.com) -#ifndef WEBP_UTILS_BIT_READER_H_ -#define WEBP_UTILS_BIT_READER_H_ +#ifndef WEBP_UTILS_BIT_READER_UTILS_H_ +#define WEBP_UTILS_BIT_READER_UTILS_H_ #include #ifdef _MSC_VER #include // _byteswap_ulong #endif -#include "../webp/types.h" +#include "src/webp/types.h" #ifdef __cplusplus extern "C" { @@ -155,9 +155,10 @@ static WEBP_INLINE int VP8LIsEndOfStream(const VP8LBitReader* const br) { // For jumping over a number of bits in the bit stream when accessed with // VP8LPrefetchBits and VP8LFillBitWindow. +// This function does *not* set br->eos_, since it's speed-critical. +// Use with extreme care! static WEBP_INLINE void VP8LSetBitPos(VP8LBitReader* const br, int val) { br->bit_pos_ = val; - br->eos_ = VP8LIsEndOfStream(br); } // Advances the read buffer by 4 bytes to make room for reading next 32 bits. @@ -171,4 +172,4 @@ static WEBP_INLINE void VP8LFillBitWindow(VP8LBitReader* const br) { } // extern "C" #endif -#endif /* WEBP_UTILS_BIT_READER_H_ */ +#endif /* WEBP_UTILS_BIT_READER_UTILS_H_ */ diff --git a/external/libwebp-0.6.0/src/utils/bit_writer_utils.c b/external/libwebp-1.0.0/src/utils/bit_writer_utils.c similarity index 91% rename from external/libwebp-0.6.0/src/utils/bit_writer_utils.c rename to external/libwebp-1.0.0/src/utils/bit_writer_utils.c index ab0c49dc..f4f476ce 100644 --- a/external/libwebp-0.6.0/src/utils/bit_writer_utils.c +++ b/external/libwebp-1.0.0/src/utils/bit_writer_utils.c @@ -16,9 +16,9 @@ #include // for memcpy() #include -#include "./bit_writer_utils.h" -#include "./endian_inl_utils.h" -#include "./utils.h" +#include "src/utils/bit_writer_utils.h" +#include "src/utils/endian_inl_utils.h" +#include "src/utils/utils.h" //------------------------------------------------------------------------------ // VP8BitWriter @@ -239,6 +239,18 @@ int VP8LBitWriterInit(VP8LBitWriter* const bw, size_t expected_size) { return VP8LBitWriterResize(bw, expected_size); } +int VP8LBitWriterClone(const VP8LBitWriter* const src, + VP8LBitWriter* const dst) { + const size_t current_size = src->cur_ - src->buf_; + assert(src->cur_ >= src->buf_ && src->cur_ <= src->end_); + if (!VP8LBitWriterResize(dst, current_size)) return 0; + memcpy(dst->buf_, src->buf_, current_size); + dst->bits_ = src->bits_; + dst->used_ = src->used_; + dst->error_ = src->error_; + return 1; +} + void VP8LBitWriterWipeOut(VP8LBitWriter* const bw) { if (bw != NULL) { WebPSafeFree(bw->buf_); @@ -246,6 +258,21 @@ void VP8LBitWriterWipeOut(VP8LBitWriter* const bw) { } } +void VP8LBitWriterReset(const VP8LBitWriter* const bw_init, + VP8LBitWriter* const bw) { + bw->bits_ = bw_init->bits_; + bw->used_ = bw_init->used_; + bw->cur_ = bw->buf_ + (bw_init->cur_ - bw_init->buf_); + assert(bw->cur_ <= bw->end_); + bw->error_ = bw_init->error_; +} + +void VP8LBitWriterSwap(VP8LBitWriter* const src, VP8LBitWriter* const dst) { + const VP8LBitWriter tmp = *src; + *src = *dst; + *dst = tmp; +} + void VP8LPutBitsFlushBits(VP8LBitWriter* const bw) { // If needed, make some room by flushing some bits out. if (bw->cur_ + VP8L_WRITER_BYTES > bw->end_) { diff --git a/external/libwebp-0.6.0/src/utils/bit_writer_utils.h b/external/libwebp-1.0.0/src/utils/bit_writer_utils.h similarity index 88% rename from external/libwebp-0.6.0/src/utils/bit_writer_utils.h rename to external/libwebp-1.0.0/src/utils/bit_writer_utils.h index 9c02bbc0..2cf5976f 100644 --- a/external/libwebp-0.6.0/src/utils/bit_writer_utils.h +++ b/external/libwebp-1.0.0/src/utils/bit_writer_utils.h @@ -11,10 +11,10 @@ // // Author: Skal (pascal.massimino@gmail.com) -#ifndef WEBP_UTILS_BIT_WRITER_H_ -#define WEBP_UTILS_BIT_WRITER_H_ +#ifndef WEBP_UTILS_BIT_WRITER_UTILS_H_ +#define WEBP_UTILS_BIT_WRITER_UTILS_H_ -#include "../webp/types.h" +#include "src/webp/types.h" #ifdef __cplusplus extern "C" { @@ -100,16 +100,24 @@ typedef struct { int error_; } VP8LBitWriter; -static WEBP_INLINE size_t VP8LBitWriterNumBytes(VP8LBitWriter* const bw) { +static WEBP_INLINE size_t VP8LBitWriterNumBytes(const VP8LBitWriter* const bw) { return (bw->cur_ - bw->buf_) + ((bw->used_ + 7) >> 3); } // Returns false in case of memory allocation error. int VP8LBitWriterInit(VP8LBitWriter* const bw, size_t expected_size); +// Returns false in case of memory allocation error. +int VP8LBitWriterClone(const VP8LBitWriter* const src, + VP8LBitWriter* const dst); // Finalize the bitstream coding. Returns a pointer to the internal buffer. uint8_t* VP8LBitWriterFinish(VP8LBitWriter* const bw); // Release any pending memory and zeroes the object. void VP8LBitWriterWipeOut(VP8LBitWriter* const bw); +// Resets the cursor of the BitWriter bw to when it was like in bw_init. +void VP8LBitWriterReset(const VP8LBitWriter* const bw_init, + VP8LBitWriter* const bw); +// Swaps the memory held by two BitWriters. +void VP8LBitWriterSwap(VP8LBitWriter* const src, VP8LBitWriter* const dst); // Internal function for VP8LPutBits flushing 32 bits from the written state. void VP8LPutBitsFlushBits(VP8LBitWriter* const bw); @@ -143,4 +151,4 @@ static WEBP_INLINE void VP8LPutBits(VP8LBitWriter* const bw, } // extern "C" #endif -#endif /* WEBP_UTILS_BIT_WRITER_H_ */ +#endif /* WEBP_UTILS_BIT_WRITER_UTILS_H_ */ diff --git a/external/libwebp-0.6.0/src/utils/color_cache_utils.c b/external/libwebp-1.0.0/src/utils/color_cache_utils.c similarity index 95% rename from external/libwebp-0.6.0/src/utils/color_cache_utils.c rename to external/libwebp-1.0.0/src/utils/color_cache_utils.c index 0172590c..b09f538e 100644 --- a/external/libwebp-0.6.0/src/utils/color_cache_utils.c +++ b/external/libwebp-1.0.0/src/utils/color_cache_utils.c @@ -14,8 +14,8 @@ #include #include #include -#include "./color_cache_utils.h" -#include "./utils.h" +#include "src/utils/color_cache_utils.h" +#include "src/utils/utils.h" //------------------------------------------------------------------------------ // VP8LColorCache. diff --git a/external/libwebp-0.6.0/src/utils/color_cache_utils.h b/external/libwebp-1.0.0/src/utils/color_cache_utils.h similarity index 86% rename from external/libwebp-0.6.0/src/utils/color_cache_utils.h rename to external/libwebp-1.0.0/src/utils/color_cache_utils.h index c373e6b3..20b7be11 100644 --- a/external/libwebp-0.6.0/src/utils/color_cache_utils.h +++ b/external/libwebp-1.0.0/src/utils/color_cache_utils.h @@ -12,10 +12,12 @@ // Authors: Jyrki Alakuijala (jyrki@google.com) // Urvang Joshi (urvang@google.com) -#ifndef WEBP_UTILS_COLOR_CACHE_H_ -#define WEBP_UTILS_COLOR_CACHE_H_ +#ifndef WEBP_UTILS_COLOR_CACHE_UTILS_H_ +#define WEBP_UTILS_COLOR_CACHE_UTILS_H_ -#include "../webp/types.h" +#include + +#include "src/webp/types.h" #ifdef __cplusplus extern "C" { @@ -30,7 +32,7 @@ typedef struct { static const uint64_t kHashMul = 0x1e35a7bdull; -static WEBP_INLINE int HashPix(uint32_t argb, int shift) { +static WEBP_INLINE int VP8LHashPix(uint32_t argb, int shift) { return (int)(((argb * kHashMul) & 0xffffffffu) >> shift); } @@ -48,19 +50,19 @@ static WEBP_INLINE void VP8LColorCacheSet(const VP8LColorCache* const cc, static WEBP_INLINE void VP8LColorCacheInsert(const VP8LColorCache* const cc, uint32_t argb) { - const int key = HashPix(argb, cc->hash_shift_); + const int key = VP8LHashPix(argb, cc->hash_shift_); cc->colors_[key] = argb; } static WEBP_INLINE int VP8LColorCacheGetIndex(const VP8LColorCache* const cc, uint32_t argb) { - return HashPix(argb, cc->hash_shift_); + return VP8LHashPix(argb, cc->hash_shift_); } // Return the key if cc contains argb, and -1 otherwise. static WEBP_INLINE int VP8LColorCacheContains(const VP8LColorCache* const cc, uint32_t argb) { - const int key = HashPix(argb, cc->hash_shift_); + const int key = VP8LHashPix(argb, cc->hash_shift_); return (cc->colors_[key] == argb) ? key : -1; } @@ -82,4 +84,4 @@ void VP8LColorCacheClear(VP8LColorCache* const color_cache); } #endif -#endif // WEBP_UTILS_COLOR_CACHE_H_ +#endif // WEBP_UTILS_COLOR_CACHE_UTILS_H_ diff --git a/external/libwebp-0.6.0/src/utils/endian_inl_utils.h b/external/libwebp-1.0.0/src/utils/endian_inl_utils.h similarity index 85% rename from external/libwebp-0.6.0/src/utils/endian_inl_utils.h rename to external/libwebp-1.0.0/src/utils/endian_inl_utils.h index e11260ff..3630a293 100644 --- a/external/libwebp-0.6.0/src/utils/endian_inl_utils.h +++ b/external/libwebp-1.0.0/src/utils/endian_inl_utils.h @@ -9,22 +9,15 @@ // // Endian related functions. -#ifndef WEBP_UTILS_ENDIAN_INL_H_ -#define WEBP_UTILS_ENDIAN_INL_H_ +#ifndef WEBP_UTILS_ENDIAN_INL_UTILS_H_ +#define WEBP_UTILS_ENDIAN_INL_UTILS_H_ #ifdef HAVE_CONFIG_H -#include "../webp/config.h" +#include "src/webp/config.h" #endif -#include "../dsp/dsp.h" -#include "../webp/types.h" - -// some endian fix (e.g.: mips-gcc doesn't define __BIG_ENDIAN__) -#if !defined(WORDS_BIGENDIAN) && \ - (defined(__BIG_ENDIAN__) || defined(_M_PPC) || \ - (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__))) -#define WORDS_BIGENDIAN -#endif +#include "src/dsp/dsp.h" +#include "src/webp/types.h" #if defined(WORDS_BIGENDIAN) #define HToLE32 BSwap32 @@ -97,4 +90,4 @@ static WEBP_INLINE uint64_t BSwap64(uint64_t x) { #endif // HAVE_BUILTIN_BSWAP64 } -#endif // WEBP_UTILS_ENDIAN_INL_H_ +#endif // WEBP_UTILS_ENDIAN_INL_UTILS_H_ diff --git a/external/libwebp-0.6.0/src/utils/filters_utils.c b/external/libwebp-1.0.0/src/utils/filters_utils.c similarity index 98% rename from external/libwebp-0.6.0/src/utils/filters_utils.c rename to external/libwebp-1.0.0/src/utils/filters_utils.c index 49c1d18a..bbc2c34d 100644 --- a/external/libwebp-0.6.0/src/utils/filters_utils.c +++ b/external/libwebp-1.0.0/src/utils/filters_utils.c @@ -11,7 +11,7 @@ // // Author: Urvang (urvang@google.com) -#include "./filters_utils.h" +#include "src/utils/filters_utils.h" #include #include diff --git a/external/libwebp-0.6.0/src/utils/filters_utils.h b/external/libwebp-1.0.0/src/utils/filters_utils.h similarity index 83% rename from external/libwebp-0.6.0/src/utils/filters_utils.h rename to external/libwebp-1.0.0/src/utils/filters_utils.h index 088b132f..410f2fcd 100644 --- a/external/libwebp-0.6.0/src/utils/filters_utils.h +++ b/external/libwebp-1.0.0/src/utils/filters_utils.h @@ -11,11 +11,11 @@ // // Author: Urvang (urvang@google.com) -#ifndef WEBP_UTILS_FILTERS_H_ -#define WEBP_UTILS_FILTERS_H_ +#ifndef WEBP_UTILS_FILTERS_UTILS_H_ +#define WEBP_UTILS_FILTERS_UTILS_H_ -#include "../webp/types.h" -#include "../dsp/dsp.h" +#include "src/webp/types.h" +#include "src/dsp/dsp.h" #ifdef __cplusplus extern "C" { @@ -29,4 +29,4 @@ WEBP_FILTER_TYPE WebPEstimateBestFilter(const uint8_t* data, } // extern "C" #endif -#endif /* WEBP_UTILS_FILTERS_H_ */ +#endif /* WEBP_UTILS_FILTERS_UTILS_H_ */ diff --git a/external/libwebp-0.6.0/src/utils/huffman_encode_utils.c b/external/libwebp-1.0.0/src/utils/huffman_encode_utils.c similarity index 99% rename from external/libwebp-0.6.0/src/utils/huffman_encode_utils.c rename to external/libwebp-1.0.0/src/utils/huffman_encode_utils.c index f9504658..6f3b1bbe 100644 --- a/external/libwebp-0.6.0/src/utils/huffman_encode_utils.c +++ b/external/libwebp-1.0.0/src/utils/huffman_encode_utils.c @@ -14,9 +14,9 @@ #include #include #include -#include "./huffman_encode_utils.h" -#include "./utils.h" -#include "../webp/format_constants.h" +#include "src/utils/huffman_encode_utils.h" +#include "src/utils/utils.h" +#include "src/webp/format_constants.h" // ----------------------------------------------------------------------------- // Util function to optimize the symbol map for RLE coding diff --git a/external/libwebp-0.6.0/src/utils/huffman_encode_utils.h b/external/libwebp-1.0.0/src/utils/huffman_encode_utils.h similarity index 92% rename from external/libwebp-0.6.0/src/utils/huffman_encode_utils.h rename to external/libwebp-1.0.0/src/utils/huffman_encode_utils.h index a1571651..3e6763ce 100644 --- a/external/libwebp-0.6.0/src/utils/huffman_encode_utils.h +++ b/external/libwebp-1.0.0/src/utils/huffman_encode_utils.h @@ -11,10 +11,10 @@ // // Entropy encoding (Huffman) for webp lossless -#ifndef WEBP_UTILS_HUFFMAN_ENCODE_H_ -#define WEBP_UTILS_HUFFMAN_ENCODE_H_ +#ifndef WEBP_UTILS_HUFFMAN_ENCODE_UTILS_H_ +#define WEBP_UTILS_HUFFMAN_ENCODE_UTILS_H_ -#include "../webp/types.h" +#include "src/webp/types.h" #ifdef __cplusplus extern "C" { @@ -57,4 +57,4 @@ void VP8LCreateHuffmanTree(uint32_t* const histogram, int tree_depth_limit, } #endif -#endif // WEBP_UTILS_HUFFMAN_ENCODE_H_ +#endif // WEBP_UTILS_HUFFMAN_ENCODE_UTILS_H_ diff --git a/external/libwebp-0.6.0/src/utils/huffman_utils.c b/external/libwebp-1.0.0/src/utils/huffman_utils.c similarity index 98% rename from external/libwebp-0.6.0/src/utils/huffman_utils.c rename to external/libwebp-1.0.0/src/utils/huffman_utils.c index 008b5d74..7a69963c 100644 --- a/external/libwebp-0.6.0/src/utils/huffman_utils.c +++ b/external/libwebp-1.0.0/src/utils/huffman_utils.c @@ -14,9 +14,9 @@ #include #include #include -#include "./huffman_utils.h" -#include "./utils.h" -#include "../webp/format_constants.h" +#include "src/utils/huffman_utils.h" +#include "src/utils/utils.h" +#include "src/webp/format_constants.h" // Huffman data read via DecodeImageStream is represented in two (red and green) // bytes. diff --git a/external/libwebp-0.6.0/src/utils/huffman_utils.h b/external/libwebp-1.0.0/src/utils/huffman_utils.h similarity index 94% rename from external/libwebp-0.6.0/src/utils/huffman_utils.h rename to external/libwebp-1.0.0/src/utils/huffman_utils.h index c6dd6aaa..ff7ef17f 100644 --- a/external/libwebp-0.6.0/src/utils/huffman_utils.h +++ b/external/libwebp-1.0.0/src/utils/huffman_utils.h @@ -11,12 +11,12 @@ // // Author: Urvang Joshi (urvang@google.com) -#ifndef WEBP_UTILS_HUFFMAN_H_ -#define WEBP_UTILS_HUFFMAN_H_ +#ifndef WEBP_UTILS_HUFFMAN_UTILS_H_ +#define WEBP_UTILS_HUFFMAN_UTILS_H_ #include -#include "../webp/format_constants.h" -#include "../webp/types.h" +#include "src/webp/format_constants.h" +#include "src/webp/types.h" #ifdef __cplusplus extern "C" { @@ -85,4 +85,4 @@ int VP8LBuildHuffmanTable(HuffmanCode* const root_table, int root_bits, } // extern "C" #endif -#endif // WEBP_UTILS_HUFFMAN_H_ +#endif // WEBP_UTILS_HUFFMAN_UTILS_H_ diff --git a/external/libwebp-0.6.0/src/utils/quant_levels_dec_utils.c b/external/libwebp-1.0.0/src/utils/quant_levels_dec_utils.c similarity index 97% rename from external/libwebp-0.6.0/src/utils/quant_levels_dec_utils.c rename to external/libwebp-1.0.0/src/utils/quant_levels_dec_utils.c index d4d23d31..3818a78b 100644 --- a/external/libwebp-0.6.0/src/utils/quant_levels_dec_utils.c +++ b/external/libwebp-1.0.0/src/utils/quant_levels_dec_utils.c @@ -14,11 +14,11 @@ // // Author: Skal (pascal.massimino@gmail.com) -#include "./quant_levels_dec_utils.h" +#include "src/utils/quant_levels_dec_utils.h" #include // for memset -#include "./utils.h" +#include "src/utils/utils.h" // #define USE_DITHERING // uncomment to enable ordered dithering (not vital) @@ -71,10 +71,11 @@ typedef struct { //------------------------------------------------------------------------------ -#define CLIP_MASK (int)(~0U << (8 + DFIX)) +#define CLIP_8b_MASK (int)(~0U << (8 + DFIX)) static WEBP_INLINE uint8_t clip_8b(int v) { - return (!(v & CLIP_MASK)) ? (uint8_t)(v >> DFIX) : (v < 0) ? 0u : 255u; + return (!(v & CLIP_8b_MASK)) ? (uint8_t)(v >> DFIX) : (v < 0) ? 0u : 255u; } +#undef CLIP_8b_MASK // vertical accumulation static void VFilter(SmoothParams* const p) { diff --git a/external/libwebp-0.6.0/src/utils/quant_levels_dec_utils.h b/external/libwebp-1.0.0/src/utils/quant_levels_dec_utils.h similarity index 86% rename from external/libwebp-0.6.0/src/utils/quant_levels_dec_utils.h rename to external/libwebp-1.0.0/src/utils/quant_levels_dec_utils.h index 59a13495..f822107a 100644 --- a/external/libwebp-0.6.0/src/utils/quant_levels_dec_utils.h +++ b/external/libwebp-1.0.0/src/utils/quant_levels_dec_utils.h @@ -11,10 +11,10 @@ // // Author: Vikas Arora (vikasa@google.com) -#ifndef WEBP_UTILS_QUANT_LEVELS_DEC_H_ -#define WEBP_UTILS_QUANT_LEVELS_DEC_H_ +#ifndef WEBP_UTILS_QUANT_LEVELS_DEC_UTILS_H_ +#define WEBP_UTILS_QUANT_LEVELS_DEC_UTILS_H_ -#include "../webp/types.h" +#include "src/webp/types.h" #ifdef __cplusplus extern "C" { @@ -32,4 +32,4 @@ int WebPDequantizeLevels(uint8_t* const data, int width, int height, int stride, } // extern "C" #endif -#endif /* WEBP_UTILS_QUANT_LEVELS_DEC_H_ */ +#endif /* WEBP_UTILS_QUANT_LEVELS_DEC_UTILS_H_ */ diff --git a/external/libwebp-0.6.0/src/utils/quant_levels_utils.c b/external/libwebp-1.0.0/src/utils/quant_levels_utils.c similarity index 98% rename from external/libwebp-0.6.0/src/utils/quant_levels_utils.c rename to external/libwebp-1.0.0/src/utils/quant_levels_utils.c index 73174e8a..d65ad3c2 100644 --- a/external/libwebp-0.6.0/src/utils/quant_levels_utils.c +++ b/external/libwebp-1.0.0/src/utils/quant_levels_utils.c @@ -14,7 +14,7 @@ #include -#include "./quant_levels_utils.h" +#include "src/utils/quant_levels_utils.h" #define NUM_SYMBOLS 256 diff --git a/external/libwebp-0.6.0/src/utils/quant_levels_utils.h b/external/libwebp-1.0.0/src/utils/quant_levels_utils.h similarity index 86% rename from external/libwebp-0.6.0/src/utils/quant_levels_utils.h rename to external/libwebp-1.0.0/src/utils/quant_levels_utils.h index 1cb5a32c..75df2ba6 100644 --- a/external/libwebp-0.6.0/src/utils/quant_levels_utils.h +++ b/external/libwebp-1.0.0/src/utils/quant_levels_utils.h @@ -11,12 +11,12 @@ // // Author: Vikas Arora (vikasa@google.com) -#ifndef WEBP_UTILS_QUANT_LEVELS_H_ -#define WEBP_UTILS_QUANT_LEVELS_H_ +#ifndef WEBP_UTILS_QUANT_LEVELS_UTILS_H_ +#define WEBP_UTILS_QUANT_LEVELS_UTILS_H_ #include -#include "../webp/types.h" +#include "src/webp/types.h" #ifdef __cplusplus extern "C" { @@ -33,4 +33,4 @@ int QuantizeLevels(uint8_t* const data, int width, int height, int num_levels, } // extern "C" #endif -#endif /* WEBP_UTILS_QUANT_LEVELS_H_ */ +#endif /* WEBP_UTILS_QUANT_LEVELS_UTILS_H_ */ diff --git a/external/libwebp-0.6.0/src/utils/random_utils.c b/external/libwebp-1.0.0/src/utils/random_utils.c similarity index 98% rename from external/libwebp-0.6.0/src/utils/random_utils.c rename to external/libwebp-1.0.0/src/utils/random_utils.c index 9f1e4154..7edb3fef 100644 --- a/external/libwebp-0.6.0/src/utils/random_utils.c +++ b/external/libwebp-1.0.0/src/utils/random_utils.c @@ -12,7 +12,7 @@ // Author: Skal (pascal.massimino@gmail.com) #include -#include "./random_utils.h" +#include "src/utils/random_utils.h" //------------------------------------------------------------------------------ diff --git a/external/libwebp-0.6.0/src/utils/random_utils.h b/external/libwebp-1.0.0/src/utils/random_utils.h similarity index 93% rename from external/libwebp-0.6.0/src/utils/random_utils.h rename to external/libwebp-1.0.0/src/utils/random_utils.h index c392a615..6d36c667 100644 --- a/external/libwebp-0.6.0/src/utils/random_utils.h +++ b/external/libwebp-1.0.0/src/utils/random_utils.h @@ -11,11 +11,11 @@ // // Author: Skal (pascal.massimino@gmail.com) -#ifndef WEBP_UTILS_RANDOM_H_ -#define WEBP_UTILS_RANDOM_H_ +#ifndef WEBP_UTILS_RANDOM_UTILS_H_ +#define WEBP_UTILS_RANDOM_UTILS_H_ #include -#include "../webp/types.h" +#include "src/webp/types.h" #ifdef __cplusplus extern "C" { @@ -60,4 +60,4 @@ static WEBP_INLINE int VP8RandomBits(VP8Random* const rg, int num_bits) { } // extern "C" #endif -#endif /* WEBP_UTILS_RANDOM_H_ */ +#endif /* WEBP_UTILS_RANDOM_UTILS_H_ */ diff --git a/external/libwebp-0.6.0/src/utils/rescaler_utils.c b/external/libwebp-1.0.0/src/utils/rescaler_utils.c similarity index 95% rename from external/libwebp-0.6.0/src/utils/rescaler_utils.c rename to external/libwebp-1.0.0/src/utils/rescaler_utils.c index 0d1f80da..90e2ea76 100644 --- a/external/libwebp-0.6.0/src/utils/rescaler_utils.c +++ b/external/libwebp-1.0.0/src/utils/rescaler_utils.c @@ -14,8 +14,8 @@ #include #include #include -#include "../dsp/dsp.h" -#include "./rescaler_utils.h" +#include "src/dsp/dsp.h" +#include "src/utils/rescaler_utils.h" //------------------------------------------------------------------------------ @@ -85,11 +85,13 @@ int WebPRescalerGetScaledDimensions(int src_width, int src_height, // if width is unspecified, scale original proportionally to height ratio. if (width == 0) { - width = (src_width * height + src_height / 2) / src_height; + width = + (int)(((uint64_t)src_width * height + src_height / 2) / src_height); } // if height is unspecified, scale original proportionally to width ratio. if (height == 0) { - height = (src_height * width + src_width / 2) / src_width; + height = + (int)(((uint64_t)src_height * width + src_width / 2) / src_width); } // Check if the overall dimensions still make sense. if (width <= 0 || height <= 0) { diff --git a/external/libwebp-0.6.0/src/utils/rescaler_utils.h b/external/libwebp-1.0.0/src/utils/rescaler_utils.h similarity index 96% rename from external/libwebp-0.6.0/src/utils/rescaler_utils.h rename to external/libwebp-1.0.0/src/utils/rescaler_utils.h index 98b01a76..8890e6fa 100644 --- a/external/libwebp-0.6.0/src/utils/rescaler_utils.h +++ b/external/libwebp-1.0.0/src/utils/rescaler_utils.h @@ -11,14 +11,14 @@ // // Author: Skal (pascal.massimino@gmail.com) -#ifndef WEBP_UTILS_RESCALER_H_ -#define WEBP_UTILS_RESCALER_H_ +#ifndef WEBP_UTILS_RESCALER_UTILS_H_ +#define WEBP_UTILS_RESCALER_UTILS_H_ #ifdef __cplusplus extern "C" { #endif -#include "../webp/types.h" +#include "src/webp/types.h" #define WEBP_RESCALER_RFIX 32 // fixed-point precision for multiplies #define WEBP_RESCALER_ONE (1ull << WEBP_RESCALER_RFIX) @@ -98,4 +98,4 @@ int WebPRescalerHasPendingOutput(const WebPRescaler* const rescaler) { } // extern "C" #endif -#endif /* WEBP_UTILS_RESCALER_H_ */ +#endif /* WEBP_UTILS_RESCALER_UTILS_H_ */ diff --git a/external/libwebp-0.6.0/src/utils/thread_utils.c b/external/libwebp-1.0.0/src/utils/thread_utils.c similarity index 86% rename from external/libwebp-0.6.0/src/utils/thread_utils.c rename to external/libwebp-1.0.0/src/utils/thread_utils.c index 1729060c..2052b6b0 100644 --- a/external/libwebp-0.6.0/src/utils/thread_utils.c +++ b/external/libwebp-1.0.0/src/utils/thread_utils.c @@ -13,8 +13,8 @@ #include #include // for memset() -#include "./thread_utils.h" -#include "./utils.h" +#include "src/utils/thread_utils.h" +#include "src/utils/utils.h" #ifdef WEBP_USE_THREAD @@ -50,11 +50,11 @@ typedef struct { #endif // _WIN32 -struct WebPWorkerImpl { +typedef struct { pthread_mutex_t mutex_; pthread_cond_t condition_; pthread_t thread_; -}; +} WebPWorkerImpl; #if defined(_WIN32) @@ -201,25 +201,24 @@ static int pthread_cond_wait(pthread_cond_t* const condition, //------------------------------------------------------------------------------ -static void Execute(WebPWorker* const worker); // Forward declaration. - static THREADFN ThreadLoop(void* ptr) { WebPWorker* const worker = (WebPWorker*)ptr; + WebPWorkerImpl* const impl = (WebPWorkerImpl*)worker->impl_; int done = 0; while (!done) { - pthread_mutex_lock(&worker->impl_->mutex_); + pthread_mutex_lock(&impl->mutex_); while (worker->status_ == OK) { // wait in idling mode - pthread_cond_wait(&worker->impl_->condition_, &worker->impl_->mutex_); + pthread_cond_wait(&impl->condition_, &impl->mutex_); } if (worker->status_ == WORK) { - Execute(worker); + WebPGetWorkerInterface()->Execute(worker); worker->status_ = OK; } else if (worker->status_ == NOT_OK) { // finish the worker done = 1; } // signal to the main thread that we're done (for Sync()) - pthread_cond_signal(&worker->impl_->condition_); - pthread_mutex_unlock(&worker->impl_->mutex_); + pthread_cond_signal(&impl->condition_); + pthread_mutex_unlock(&impl->mutex_); } return THREAD_RETURN(NULL); // Thread is finished } @@ -229,21 +228,22 @@ static void ChangeState(WebPWorker* const worker, WebPWorkerStatus new_status) { // No-op when attempting to change state on a thread that didn't come up. // Checking status_ without acquiring the lock first would result in a data // race. - if (worker->impl_ == NULL) return; + WebPWorkerImpl* const impl = (WebPWorkerImpl*)worker->impl_; + if (impl == NULL) return; - pthread_mutex_lock(&worker->impl_->mutex_); + pthread_mutex_lock(&impl->mutex_); if (worker->status_ >= OK) { // wait for the worker to finish while (worker->status_ != OK) { - pthread_cond_wait(&worker->impl_->condition_, &worker->impl_->mutex_); + pthread_cond_wait(&impl->condition_, &impl->mutex_); } // assign new status and release the working thread if needed if (new_status != OK) { worker->status_ = new_status; - pthread_cond_signal(&worker->impl_->condition_); + pthread_cond_signal(&impl->condition_); } } - pthread_mutex_unlock(&worker->impl_->mutex_); + pthread_mutex_unlock(&impl->mutex_); } #endif // WEBP_USE_THREAD @@ -268,26 +268,28 @@ static int Reset(WebPWorker* const worker) { worker->had_error = 0; if (worker->status_ < OK) { #ifdef WEBP_USE_THREAD - worker->impl_ = (WebPWorkerImpl*)WebPSafeCalloc(1, sizeof(*worker->impl_)); + WebPWorkerImpl* const impl = + (WebPWorkerImpl*)WebPSafeCalloc(1, sizeof(WebPWorkerImpl)); + worker->impl_ = (void*)impl; if (worker->impl_ == NULL) { return 0; } - if (pthread_mutex_init(&worker->impl_->mutex_, NULL)) { + if (pthread_mutex_init(&impl->mutex_, NULL)) { goto Error; } - if (pthread_cond_init(&worker->impl_->condition_, NULL)) { - pthread_mutex_destroy(&worker->impl_->mutex_); + if (pthread_cond_init(&impl->condition_, NULL)) { + pthread_mutex_destroy(&impl->mutex_); goto Error; } - pthread_mutex_lock(&worker->impl_->mutex_); - ok = !pthread_create(&worker->impl_->thread_, NULL, ThreadLoop, worker); + pthread_mutex_lock(&impl->mutex_); + ok = !pthread_create(&impl->thread_, NULL, ThreadLoop, worker); if (ok) worker->status_ = OK; - pthread_mutex_unlock(&worker->impl_->mutex_); + pthread_mutex_unlock(&impl->mutex_); if (!ok) { - pthread_mutex_destroy(&worker->impl_->mutex_); - pthread_cond_destroy(&worker->impl_->condition_); + pthread_mutex_destroy(&impl->mutex_); + pthread_cond_destroy(&impl->condition_); Error: - WebPSafeFree(worker->impl_); + WebPSafeFree(impl); worker->impl_ = NULL; return 0; } @@ -318,11 +320,12 @@ static void Launch(WebPWorker* const worker) { static void End(WebPWorker* const worker) { #ifdef WEBP_USE_THREAD if (worker->impl_ != NULL) { + WebPWorkerImpl* const impl = (WebPWorkerImpl*)worker->impl_; ChangeState(worker, NOT_OK); - pthread_join(worker->impl_->thread_, NULL); - pthread_mutex_destroy(&worker->impl_->mutex_); - pthread_cond_destroy(&worker->impl_->condition_); - WebPSafeFree(worker->impl_); + pthread_join(impl->thread_, NULL); + pthread_mutex_destroy(&impl->mutex_); + pthread_cond_destroy(&impl->condition_); + WebPSafeFree(impl); worker->impl_ = NULL; } #else diff --git a/external/libwebp-0.6.0/src/utils/thread_utils.h b/external/libwebp-1.0.0/src/utils/thread_utils.h similarity index 89% rename from external/libwebp-0.6.0/src/utils/thread_utils.h rename to external/libwebp-1.0.0/src/utils/thread_utils.h index 84083118..c8ae6c90 100644 --- a/external/libwebp-0.6.0/src/utils/thread_utils.h +++ b/external/libwebp-1.0.0/src/utils/thread_utils.h @@ -11,14 +11,14 @@ // // Author: Skal (pascal.massimino@gmail.com) -#ifndef WEBP_UTILS_THREAD_H_ -#define WEBP_UTILS_THREAD_H_ +#ifndef WEBP_UTILS_THREAD_UTILS_H_ +#define WEBP_UTILS_THREAD_UTILS_H_ #ifdef HAVE_CONFIG_H -#include "../webp/config.h" +#include "src/webp/config.h" #endif -#include "../webp/types.h" +#include "src/webp/types.h" #ifdef __cplusplus extern "C" { @@ -35,12 +35,9 @@ typedef enum { // arguments (data1 and data2), and should return false in case of error. typedef int (*WebPWorkerHook)(void*, void*); -// Platform-dependent implementation details for the worker. -typedef struct WebPWorkerImpl WebPWorkerImpl; - // Synchronization object used to launch job in the worker thread typedef struct { - WebPWorkerImpl* impl_; + void* impl_; // platform-dependent implementation worker details WebPWorkerStatus status_; WebPWorkerHook hook; // hook to call void* data1; // first argument passed to 'hook' @@ -78,11 +75,11 @@ typedef struct { // decoding takes place. The contents of the interface struct are copied, it // is safe to free the corresponding memory after this call. This function is // not thread-safe. Return false in case of invalid pointer or methods. -WEBP_EXTERN(int) WebPSetWorkerInterface( +WEBP_EXTERN int WebPSetWorkerInterface( const WebPWorkerInterface* const winterface); // Retrieve the currently set thread worker interface. -WEBP_EXTERN(const WebPWorkerInterface*) WebPGetWorkerInterface(void); +WEBP_EXTERN const WebPWorkerInterface* WebPGetWorkerInterface(void); //------------------------------------------------------------------------------ @@ -90,4 +87,4 @@ WEBP_EXTERN(const WebPWorkerInterface*) WebPGetWorkerInterface(void); } // extern "C" #endif -#endif /* WEBP_UTILS_THREAD_H_ */ +#endif /* WEBP_UTILS_THREAD_UTILS_H_ */ diff --git a/external/libwebp-0.6.0/src/utils/utils.c b/external/libwebp-1.0.0/src/utils/utils.c similarity index 97% rename from external/libwebp-0.6.0/src/utils/utils.c rename to external/libwebp-1.0.0/src/utils/utils.c index 504d924b..44d5c14f 100644 --- a/external/libwebp-0.6.0/src/utils/utils.c +++ b/external/libwebp-1.0.0/src/utils/utils.c @@ -13,10 +13,11 @@ #include #include // for memcpy() -#include "../webp/decode.h" -#include "../webp/encode.h" -#include "../webp/format_constants.h" // for MAX_PALETTE_SIZE -#include "./utils.h" +#include "src/webp/decode.h" +#include "src/webp/encode.h" +#include "src/webp/format_constants.h" // for MAX_PALETTE_SIZE +#include "src/utils/color_cache_utils.h" +#include "src/utils/utils.h" // If PRINT_MEM_INFO is defined, extra info (like total memory used, number of // alloc/free etc) is printed. For debugging/tuning purpose only (it's slow, @@ -252,7 +253,6 @@ int WebPGetColorPalette(const WebPPicture* const pic, uint32_t* const palette) { int num_colors = 0; uint8_t in_use[COLOR_HASH_SIZE] = { 0 }; uint32_t colors[COLOR_HASH_SIZE]; - static const uint64_t kHashMul = 0x1e35a7bdull; const uint32_t* argb = pic->argb; const int width = pic->width; const int height = pic->height; @@ -267,7 +267,7 @@ int WebPGetColorPalette(const WebPPicture* const pic, uint32_t* const palette) { continue; } last_pix = argb[x]; - key = ((last_pix * kHashMul) & 0xffffffffu) >> COLOR_HASH_RIGHT_SHIFT; + key = VP8LHashPix(last_pix, COLOR_HASH_RIGHT_SHIFT); while (1) { if (!in_use[key]) { colors[key] = last_pix; diff --git a/external/libwebp-0.6.0/src/utils/utils.h b/external/libwebp-1.0.0/src/utils/utils.h similarity index 86% rename from external/libwebp-0.6.0/src/utils/utils.h rename to external/libwebp-1.0.0/src/utils/utils.h index 3ab45905..52921bf2 100644 --- a/external/libwebp-0.6.0/src/utils/utils.h +++ b/external/libwebp-1.0.0/src/utils/utils.h @@ -16,14 +16,14 @@ #define WEBP_UTILS_UTILS_H_ #ifdef HAVE_CONFIG_H -#include "../webp/config.h" +#include "src/webp/config.h" #endif #include #include -#include "../dsp/dsp.h" -#include "../webp/types.h" +#include "src/dsp/dsp.h" +#include "src/webp/types.h" #ifdef __cplusplus extern "C" { @@ -48,13 +48,13 @@ extern "C" { // somewhere (like: malloc(num_pixels * sizeof(*something))). That's why this // safe malloc() borrows the signature from calloc(), pointing at the dangerous // underlying multiply involved. -WEBP_EXTERN(void*) WebPSafeMalloc(uint64_t nmemb, size_t size); +WEBP_EXTERN void* WebPSafeMalloc(uint64_t nmemb, size_t size); // Note that WebPSafeCalloc() expects the second argument type to be 'size_t' // in order to favor the "calloc(num_foo, sizeof(foo))" pattern. -WEBP_EXTERN(void*) WebPSafeCalloc(uint64_t nmemb, size_t size); +WEBP_EXTERN void* WebPSafeCalloc(uint64_t nmemb, size_t size); // Companion deallocation function to the above allocations. -WEBP_EXTERN(void) WebPSafeFree(void* const ptr); +WEBP_EXTERN void WebPSafeFree(void* const ptr); //------------------------------------------------------------------------------ // Alignment @@ -66,7 +66,7 @@ WEBP_EXTERN(void) WebPSafeFree(void* const ptr); // memcpy() is the safe way of moving potentially unaligned 32b memory. static WEBP_INLINE uint32_t WebPMemToUint32(const uint8_t* const ptr) { uint32_t A; - memcpy(&A, (const int*)ptr, sizeof(A)); + memcpy(&A, ptr, sizeof(A)); return A; } static WEBP_INLINE void WebPUint32ToMem(uint8_t* const ptr, uint32_t val) { @@ -112,12 +112,12 @@ static WEBP_INLINE void PutLE32(uint8_t* const data, uint32_t val) { #define WEBP_NEED_LOG_TABLE_8BIT extern const uint8_t WebPLogTable8bit[256]; static WEBP_INLINE int WebPLog2FloorC(uint32_t n) { - int log = 0; + int log_value = 0; while (n >= 256) { - log += 8; + log_value += 8; n >>= 8; } - return log + WebPLogTable8bit[n]; + return log_value + WebPLogTable8bit[n]; } // Returns (int)floor(log2(n)). n must be > 0. @@ -147,14 +147,14 @@ static WEBP_INLINE int BitsLog2Floor(uint32_t n) { return WebPLog2FloorC(n); } struct WebPPicture; // Copy width x height pixels from 'src' to 'dst' honoring the strides. -WEBP_EXTERN(void) WebPCopyPlane(const uint8_t* src, int src_stride, - uint8_t* dst, int dst_stride, - int width, int height); +WEBP_EXTERN void WebPCopyPlane(const uint8_t* src, int src_stride, + uint8_t* dst, int dst_stride, + int width, int height); // Copy ARGB pixels from 'src' to 'dst' honoring strides. 'src' and 'dst' are // assumed to be already allocated and using ARGB data. -WEBP_EXTERN(void) WebPCopyPixels(const struct WebPPicture* const src, - struct WebPPicture* const dst); +WEBP_EXTERN void WebPCopyPixels(const struct WebPPicture* const src, + struct WebPPicture* const dst); //------------------------------------------------------------------------------ // Unique colors. @@ -166,8 +166,8 @@ WEBP_EXTERN(void) WebPCopyPixels(const struct WebPPicture* const src, // MAX_PALETTE_SIZE, also outputs the actual unique colors into 'palette'. // Note: 'palette' is assumed to be an array already allocated with at least // MAX_PALETTE_SIZE elements. -WEBP_EXTERN(int) WebPGetColorPalette(const struct WebPPicture* const pic, - uint32_t* const palette); +WEBP_EXTERN int WebPGetColorPalette(const struct WebPPicture* const pic, + uint32_t* const palette); //------------------------------------------------------------------------------ diff --git a/external/libwebp-1.0.0/src/webp/config.h.in b/external/libwebp-1.0.0/src/webp/config.h.in new file mode 100644 index 00000000..d3c1f808 --- /dev/null +++ b/external/libwebp-1.0.0/src/webp/config.h.in @@ -0,0 +1,152 @@ +/* src/webp/config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* Set to 1 if __builtin_bswap16 is available */ +#undef HAVE_BUILTIN_BSWAP16 + +/* Set to 1 if __builtin_bswap32 is available */ +#undef HAVE_BUILTIN_BSWAP32 + +/* Set to 1 if __builtin_bswap64 is available */ +#undef HAVE_BUILTIN_BSWAP64 + +/* Define to 1 if you have the header file. */ +#undef HAVE_CPU_FEATURES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_GLUT_GLUT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_GL_GLUT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_OPENGL_GLUT_H + +/* Have PTHREAD_PRIO_INHERIT. */ +#undef HAVE_PTHREAD_PRIO_INHERIT + +/* Define to 1 if you have the header file. */ +#undef HAVE_SHLWAPI_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_WINCODEC_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_WINDOWS_H + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#undef LT_OBJDIR + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +#undef PTHREAD_CREATE_JOINABLE + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION + +/* Set to 1 if AVX2 is supported */ +#undef WEBP_HAVE_AVX2 + +/* Set to 1 if GIF library is installed */ +#undef WEBP_HAVE_GIF + +/* Set to 1 if OpenGL is supported */ +#undef WEBP_HAVE_GL + +/* Set to 1 if JPEG library is installed */ +#undef WEBP_HAVE_JPEG + +/* Set to 1 if NEON is supported */ +#undef WEBP_HAVE_NEON + +/* Set to 1 if runtime detection of NEON is enabled */ +#undef WEBP_HAVE_NEON_RTCD + +/* Set to 1 if PNG library is installed */ +#undef WEBP_HAVE_PNG + +/* Set to 1 if SDL library is installed */ +#undef WEBP_HAVE_SDL + +/* Set to 1 if SSE2 is supported */ +#undef WEBP_HAVE_SSE2 + +/* Set to 1 if SSE4.1 is supported */ +#undef WEBP_HAVE_SSE41 + +/* Set to 1 if TIFF library is installed */ +#undef WEBP_HAVE_TIFF + +/* Enable near lossless encoding */ +#undef WEBP_NEAR_LOSSLESS + +/* Undefine this to disable thread support. */ +#undef WEBP_USE_THREAD + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif diff --git a/external/libwebp-0.6.0/src/webp/decode.h b/external/libwebp-1.0.0/src/webp/decode.h similarity index 90% rename from external/libwebp-0.6.0/src/webp/decode.h rename to external/libwebp-1.0.0/src/webp/decode.h index 4c5e74ac..2165e96c 100644 --- a/external/libwebp-0.6.0/src/webp/decode.h +++ b/external/libwebp-1.0.0/src/webp/decode.h @@ -36,39 +36,39 @@ typedef struct WebPDecoderConfig WebPDecoderConfig; // Return the decoder's version number, packed in hexadecimal using 8bits for // each of major/minor/revision. E.g: v2.5.7 is 0x020507. -WEBP_EXTERN(int) WebPGetDecoderVersion(void); +WEBP_EXTERN int WebPGetDecoderVersion(void); // Retrieve basic header information: width, height. // This function will also validate the header, returning true on success, // false otherwise. '*width' and '*height' are only valid on successful return. // Pointers 'width' and 'height' can be passed NULL if deemed irrelevant. -WEBP_EXTERN(int) WebPGetInfo(const uint8_t* data, size_t data_size, - int* width, int* height); +WEBP_EXTERN int WebPGetInfo(const uint8_t* data, size_t data_size, + int* width, int* height); // Decodes WebP images pointed to by 'data' and returns RGBA samples, along // with the dimensions in *width and *height. The ordering of samples in // memory is R, G, B, A, R, G, B, A... in scan order (endian-independent). // The returned pointer should be deleted calling WebPFree(). // Returns NULL in case of error. -WEBP_EXTERN(uint8_t*) WebPDecodeRGBA(const uint8_t* data, size_t data_size, - int* width, int* height); +WEBP_EXTERN uint8_t* WebPDecodeRGBA(const uint8_t* data, size_t data_size, + int* width, int* height); // Same as WebPDecodeRGBA, but returning A, R, G, B, A, R, G, B... ordered data. -WEBP_EXTERN(uint8_t*) WebPDecodeARGB(const uint8_t* data, size_t data_size, - int* width, int* height); +WEBP_EXTERN uint8_t* WebPDecodeARGB(const uint8_t* data, size_t data_size, + int* width, int* height); // Same as WebPDecodeRGBA, but returning B, G, R, A, B, G, R, A... ordered data. -WEBP_EXTERN(uint8_t*) WebPDecodeBGRA(const uint8_t* data, size_t data_size, - int* width, int* height); +WEBP_EXTERN uint8_t* WebPDecodeBGRA(const uint8_t* data, size_t data_size, + int* width, int* height); // Same as WebPDecodeRGBA, but returning R, G, B, R, G, B... ordered data. // If the bitstream contains transparency, it is ignored. -WEBP_EXTERN(uint8_t*) WebPDecodeRGB(const uint8_t* data, size_t data_size, - int* width, int* height); +WEBP_EXTERN uint8_t* WebPDecodeRGB(const uint8_t* data, size_t data_size, + int* width, int* height); // Same as WebPDecodeRGB, but returning B, G, R, B, G, R... ordered data. -WEBP_EXTERN(uint8_t*) WebPDecodeBGR(const uint8_t* data, size_t data_size, - int* width, int* height); +WEBP_EXTERN uint8_t* WebPDecodeBGR(const uint8_t* data, size_t data_size, + int* width, int* height); // Decode WebP images pointed to by 'data' to Y'UV format(*). The pointer @@ -80,13 +80,13 @@ WEBP_EXTERN(uint8_t*) WebPDecodeBGR(const uint8_t* data, size_t data_size, // have a common stride returned as '*uv_stride'. // Return NULL in case of error. // (*) Also named Y'CbCr. See: http://en.wikipedia.org/wiki/YCbCr -WEBP_EXTERN(uint8_t*) WebPDecodeYUV(const uint8_t* data, size_t data_size, - int* width, int* height, - uint8_t** u, uint8_t** v, - int* stride, int* uv_stride); +WEBP_EXTERN uint8_t* WebPDecodeYUV(const uint8_t* data, size_t data_size, + int* width, int* height, + uint8_t** u, uint8_t** v, + int* stride, int* uv_stride); // Releases memory returned by the WebPDecode*() functions above. -WEBP_EXTERN(void) WebPFree(void* ptr); +WEBP_EXTERN void WebPFree(void* ptr); // These five functions are variants of the above ones, that decode the image // directly into a pre-allocated buffer 'output_buffer'. The maximum storage @@ -96,22 +96,22 @@ WEBP_EXTERN(void) WebPFree(void* ptr); // The parameter 'output_stride' specifies the distance (in bytes) // between scanlines. Hence, output_buffer_size is expected to be at least // output_stride x picture-height. -WEBP_EXTERN(uint8_t*) WebPDecodeRGBAInto( +WEBP_EXTERN uint8_t* WebPDecodeRGBAInto( const uint8_t* data, size_t data_size, uint8_t* output_buffer, size_t output_buffer_size, int output_stride); -WEBP_EXTERN(uint8_t*) WebPDecodeARGBInto( +WEBP_EXTERN uint8_t* WebPDecodeARGBInto( const uint8_t* data, size_t data_size, uint8_t* output_buffer, size_t output_buffer_size, int output_stride); -WEBP_EXTERN(uint8_t*) WebPDecodeBGRAInto( +WEBP_EXTERN uint8_t* WebPDecodeBGRAInto( const uint8_t* data, size_t data_size, uint8_t* output_buffer, size_t output_buffer_size, int output_stride); // RGB and BGR variants. Here too the transparency information, if present, // will be dropped and ignored. -WEBP_EXTERN(uint8_t*) WebPDecodeRGBInto( +WEBP_EXTERN uint8_t* WebPDecodeRGBInto( const uint8_t* data, size_t data_size, uint8_t* output_buffer, size_t output_buffer_size, int output_stride); -WEBP_EXTERN(uint8_t*) WebPDecodeBGRInto( +WEBP_EXTERN uint8_t* WebPDecodeBGRInto( const uint8_t* data, size_t data_size, uint8_t* output_buffer, size_t output_buffer_size, int output_stride); @@ -122,7 +122,7 @@ WEBP_EXTERN(uint8_t*) WebPDecodeBGRInto( // 'u_size' and 'v_size' respectively. // Pointer to the luma plane ('*luma') is returned or NULL if an error occurred // during decoding (or because some buffers were found to be too small). -WEBP_EXTERN(uint8_t*) WebPDecodeYUVInto( +WEBP_EXTERN uint8_t* WebPDecodeYUVInto( const uint8_t* data, size_t data_size, uint8_t* luma, size_t luma_size, int luma_stride, uint8_t* u, size_t u_size, int u_stride, @@ -213,7 +213,7 @@ struct WebPDecBuffer { }; // Internal, version-checked, entry point -WEBP_EXTERN(int) WebPInitDecBufferInternal(WebPDecBuffer*, int); +WEBP_EXTERN int WebPInitDecBufferInternal(WebPDecBuffer*, int); // Initialize the structure as empty. Must be called before any other use. // Returns false in case of version mismatch @@ -223,7 +223,7 @@ static WEBP_INLINE int WebPInitDecBuffer(WebPDecBuffer* buffer) { // Free any memory associated with the buffer. Must always be called last. // Note: doesn't free the 'buffer' structure itself. -WEBP_EXTERN(void) WebPFreeDecBuffer(WebPDecBuffer* buffer); +WEBP_EXTERN void WebPFreeDecBuffer(WebPDecBuffer* buffer); //------------------------------------------------------------------------------ // Enumeration of the status codes @@ -277,7 +277,7 @@ typedef enum VP8StatusCode { // within valid bounds. // All other fields of WebPDecBuffer MUST remain constant between calls. // Returns NULL if the allocation failed. -WEBP_EXTERN(WebPIDecoder*) WebPINewDecoder(WebPDecBuffer* output_buffer); +WEBP_EXTERN WebPIDecoder* WebPINewDecoder(WebPDecBuffer* output_buffer); // This function allocates and initializes an incremental-decoder object, which // will output the RGB/A samples specified by 'csp' into a preallocated @@ -289,7 +289,7 @@ WEBP_EXTERN(WebPIDecoder*) WebPINewDecoder(WebPDecBuffer* output_buffer); // colorspace 'csp' is taken into account for allocating this buffer. All other // parameters are ignored. // Returns NULL if the allocation failed, or if some parameters are invalid. -WEBP_EXTERN(WebPIDecoder*) WebPINewRGB( +WEBP_EXTERN WebPIDecoder* WebPINewRGB( WEBP_CSP_MODE csp, uint8_t* output_buffer, size_t output_buffer_size, int output_stride); @@ -304,7 +304,7 @@ WEBP_EXTERN(WebPIDecoder*) WebPINewRGB( // In this case, the output buffer will be automatically allocated (using // MODE_YUVA) when decoding starts. All parameters are then ignored. // Returns NULL if the allocation failed or if a parameter is invalid. -WEBP_EXTERN(WebPIDecoder*) WebPINewYUVA( +WEBP_EXTERN WebPIDecoder* WebPINewYUVA( uint8_t* luma, size_t luma_size, int luma_stride, uint8_t* u, size_t u_size, int u_stride, uint8_t* v, size_t v_size, int v_stride, @@ -312,19 +312,19 @@ WEBP_EXTERN(WebPIDecoder*) WebPINewYUVA( // Deprecated version of the above, without the alpha plane. // Kept for backward compatibility. -WEBP_EXTERN(WebPIDecoder*) WebPINewYUV( +WEBP_EXTERN WebPIDecoder* WebPINewYUV( uint8_t* luma, size_t luma_size, int luma_stride, uint8_t* u, size_t u_size, int u_stride, uint8_t* v, size_t v_size, int v_stride); // Deletes the WebPIDecoder object and associated memory. Must always be called // if WebPINewDecoder, WebPINewRGB or WebPINewYUV succeeded. -WEBP_EXTERN(void) WebPIDelete(WebPIDecoder* idec); +WEBP_EXTERN void WebPIDelete(WebPIDecoder* idec); // Copies and decodes the next available data. Returns VP8_STATUS_OK when // the image is successfully decoded. Returns VP8_STATUS_SUSPENDED when more // data is expected. Returns error in other cases. -WEBP_EXTERN(VP8StatusCode) WebPIAppend( +WEBP_EXTERN VP8StatusCode WebPIAppend( WebPIDecoder* idec, const uint8_t* data, size_t data_size); // A variant of the above function to be used when data buffer contains @@ -332,7 +332,7 @@ WEBP_EXTERN(VP8StatusCode) WebPIAppend( // to the internal memory. // Note that the value of the 'data' pointer can change between calls to // WebPIUpdate, for instance when the data buffer is resized to fit larger data. -WEBP_EXTERN(VP8StatusCode) WebPIUpdate( +WEBP_EXTERN VP8StatusCode WebPIUpdate( WebPIDecoder* idec, const uint8_t* data, size_t data_size); // Returns the RGB/A image decoded so far. Returns NULL if output params @@ -340,15 +340,16 @@ WEBP_EXTERN(VP8StatusCode) WebPIUpdate( // specified during call to WebPINewDecoder() or WebPINewRGB(). // *last_y is the index of last decoded row in raster scan order. Some pointers // (*last_y, *width etc.) can be NULL if corresponding information is not -// needed. -WEBP_EXTERN(uint8_t*) WebPIDecGetRGB( +// needed. The values in these pointers are only valid on successful (non-NULL) +// return. +WEBP_EXTERN uint8_t* WebPIDecGetRGB( const WebPIDecoder* idec, int* last_y, int* width, int* height, int* stride); // Same as above function to get a YUVA image. Returns pointer to the luma // plane or NULL in case of error. If there is no alpha information // the alpha pointer '*a' will be returned NULL. -WEBP_EXTERN(uint8_t*) WebPIDecGetYUVA( +WEBP_EXTERN uint8_t* WebPIDecGetYUVA( const WebPIDecoder* idec, int* last_y, uint8_t** u, uint8_t** v, uint8_t** a, int* width, int* height, int* stride, int* uv_stride, int* a_stride); @@ -368,7 +369,7 @@ static WEBP_INLINE uint8_t* WebPIDecGetYUV( // Returns NULL in case the incremental decoder object is in an invalid state. // Otherwise returns the pointer to the internal representation. This structure // is read-only, tied to WebPIDecoder's lifespan and should not be modified. -WEBP_EXTERN(const WebPDecBuffer*) WebPIDecodedArea( +WEBP_EXTERN const WebPDecBuffer* WebPIDecodedArea( const WebPIDecoder* idec, int* left, int* top, int* width, int* height); //------------------------------------------------------------------------------ @@ -416,7 +417,7 @@ struct WebPBitstreamFeatures { }; // Internal, version-checked, entry point -WEBP_EXTERN(VP8StatusCode) WebPGetFeaturesInternal( +WEBP_EXTERN VP8StatusCode WebPGetFeaturesInternal( const uint8_t*, size_t, WebPBitstreamFeatures*, int); // Retrieve features from the bitstream. The *features structure is filled @@ -457,7 +458,7 @@ struct WebPDecoderConfig { }; // Internal, version-checked, entry point -WEBP_EXTERN(int) WebPInitDecoderConfigInternal(WebPDecoderConfig*, int); +WEBP_EXTERN int WebPInitDecoderConfigInternal(WebPDecoderConfig*, int); // Initialize the configuration as empty. This function must always be // called first, unless WebPGetFeatures() is to be called. @@ -477,14 +478,14 @@ static WEBP_INLINE int WebPInitDecoderConfig(WebPDecoderConfig* config) { // The return WebPIDecoder object must always be deleted calling WebPIDelete(). // Returns NULL in case of error (and config->status will then reflect // the error condition, if available). -WEBP_EXTERN(WebPIDecoder*) WebPIDecode(const uint8_t* data, size_t data_size, - WebPDecoderConfig* config); +WEBP_EXTERN WebPIDecoder* WebPIDecode(const uint8_t* data, size_t data_size, + WebPDecoderConfig* config); // Non-incremental version. This version decodes the full data at once, taking // 'config' into account. Returns decoding status (which should be VP8_STATUS_OK // if the decoding was successful). Note that 'config' cannot be NULL. -WEBP_EXTERN(VP8StatusCode) WebPDecode(const uint8_t* data, size_t data_size, - WebPDecoderConfig* config); +WEBP_EXTERN VP8StatusCode WebPDecode(const uint8_t* data, size_t data_size, + WebPDecoderConfig* config); #ifdef __cplusplus } // extern "C" diff --git a/external/libwebp-1.0.0/src/webp/demux.h b/external/libwebp-1.0.0/src/webp/demux.h new file mode 100644 index 00000000..555d6413 --- /dev/null +++ b/external/libwebp-1.0.0/src/webp/demux.h @@ -0,0 +1,363 @@ +// Copyright 2012 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// Demux API. +// Enables extraction of image and extended format data from WebP files. + +// Code Example: Demuxing WebP data to extract all the frames, ICC profile +// and EXIF/XMP metadata. +/* + WebPDemuxer* demux = WebPDemux(&webp_data); + + uint32_t width = WebPDemuxGetI(demux, WEBP_FF_CANVAS_WIDTH); + uint32_t height = WebPDemuxGetI(demux, WEBP_FF_CANVAS_HEIGHT); + // ... (Get information about the features present in the WebP file). + uint32_t flags = WebPDemuxGetI(demux, WEBP_FF_FORMAT_FLAGS); + + // ... (Iterate over all frames). + WebPIterator iter; + if (WebPDemuxGetFrame(demux, 1, &iter)) { + do { + // ... (Consume 'iter'; e.g. Decode 'iter.fragment' with WebPDecode(), + // ... and get other frame properties like width, height, offsets etc. + // ... see 'struct WebPIterator' below for more info). + } while (WebPDemuxNextFrame(&iter)); + WebPDemuxReleaseIterator(&iter); + } + + // ... (Extract metadata). + WebPChunkIterator chunk_iter; + if (flags & ICCP_FLAG) WebPDemuxGetChunk(demux, "ICCP", 1, &chunk_iter); + // ... (Consume the ICC profile in 'chunk_iter.chunk'). + WebPDemuxReleaseChunkIterator(&chunk_iter); + if (flags & EXIF_FLAG) WebPDemuxGetChunk(demux, "EXIF", 1, &chunk_iter); + // ... (Consume the EXIF metadata in 'chunk_iter.chunk'). + WebPDemuxReleaseChunkIterator(&chunk_iter); + if (flags & XMP_FLAG) WebPDemuxGetChunk(demux, "XMP ", 1, &chunk_iter); + // ... (Consume the XMP metadata in 'chunk_iter.chunk'). + WebPDemuxReleaseChunkIterator(&chunk_iter); + WebPDemuxDelete(demux); +*/ + +#ifndef WEBP_WEBP_DEMUX_H_ +#define WEBP_WEBP_DEMUX_H_ + +#include "./decode.h" // for WEBP_CSP_MODE +#include "./mux_types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define WEBP_DEMUX_ABI_VERSION 0x0107 // MAJOR(8b) + MINOR(8b) + +// Note: forward declaring enumerations is not allowed in (strict) C and C++, +// the types are left here for reference. +// typedef enum WebPDemuxState WebPDemuxState; +// typedef enum WebPFormatFeature WebPFormatFeature; +typedef struct WebPDemuxer WebPDemuxer; +typedef struct WebPIterator WebPIterator; +typedef struct WebPChunkIterator WebPChunkIterator; +typedef struct WebPAnimInfo WebPAnimInfo; +typedef struct WebPAnimDecoderOptions WebPAnimDecoderOptions; + +//------------------------------------------------------------------------------ + +// Returns the version number of the demux library, packed in hexadecimal using +// 8bits for each of major/minor/revision. E.g: v2.5.7 is 0x020507. +WEBP_EXTERN int WebPGetDemuxVersion(void); + +//------------------------------------------------------------------------------ +// Life of a Demux object + +typedef enum WebPDemuxState { + WEBP_DEMUX_PARSE_ERROR = -1, // An error occurred while parsing. + WEBP_DEMUX_PARSING_HEADER = 0, // Not enough data to parse full header. + WEBP_DEMUX_PARSED_HEADER = 1, // Header parsing complete, + // data may be available. + WEBP_DEMUX_DONE = 2 // Entire file has been parsed. +} WebPDemuxState; + +// Internal, version-checked, entry point +WEBP_EXTERN WebPDemuxer* WebPDemuxInternal( + const WebPData*, int, WebPDemuxState*, int); + +// Parses the full WebP file given by 'data'. For single images the WebP file +// header alone or the file header and the chunk header may be absent. +// Returns a WebPDemuxer object on successful parse, NULL otherwise. +static WEBP_INLINE WebPDemuxer* WebPDemux(const WebPData* data) { + return WebPDemuxInternal(data, 0, NULL, WEBP_DEMUX_ABI_VERSION); +} + +// Parses the possibly incomplete WebP file given by 'data'. +// If 'state' is non-NULL it will be set to indicate the status of the demuxer. +// Returns NULL in case of error or if there isn't enough data to start parsing; +// and a WebPDemuxer object on successful parse. +// Note that WebPDemuxer keeps internal pointers to 'data' memory segment. +// If this data is volatile, the demuxer object should be deleted (by calling +// WebPDemuxDelete()) and WebPDemuxPartial() called again on the new data. +// This is usually an inexpensive operation. +static WEBP_INLINE WebPDemuxer* WebPDemuxPartial( + const WebPData* data, WebPDemuxState* state) { + return WebPDemuxInternal(data, 1, state, WEBP_DEMUX_ABI_VERSION); +} + +// Frees memory associated with 'dmux'. +WEBP_EXTERN void WebPDemuxDelete(WebPDemuxer* dmux); + +//------------------------------------------------------------------------------ +// Data/information extraction. + +typedef enum WebPFormatFeature { + WEBP_FF_FORMAT_FLAGS, // bit-wise combination of WebPFeatureFlags + // corresponding to the 'VP8X' chunk (if present). + WEBP_FF_CANVAS_WIDTH, + WEBP_FF_CANVAS_HEIGHT, + WEBP_FF_LOOP_COUNT, // only relevant for animated file + WEBP_FF_BACKGROUND_COLOR, // idem. + WEBP_FF_FRAME_COUNT // Number of frames present in the demux object. + // In case of a partial demux, this is the number + // of frames seen so far, with the last frame + // possibly being partial. +} WebPFormatFeature; + +// Get the 'feature' value from the 'dmux'. +// NOTE: values are only valid if WebPDemux() was used or WebPDemuxPartial() +// returned a state > WEBP_DEMUX_PARSING_HEADER. +// If 'feature' is WEBP_FF_FORMAT_FLAGS, the returned value is a bit-wise +// combination of WebPFeatureFlags values. +// If 'feature' is WEBP_FF_LOOP_COUNT, WEBP_FF_BACKGROUND_COLOR, the returned +// value is only meaningful if the bitstream is animated. +WEBP_EXTERN uint32_t WebPDemuxGetI( + const WebPDemuxer* dmux, WebPFormatFeature feature); + +//------------------------------------------------------------------------------ +// Frame iteration. + +struct WebPIterator { + int frame_num; + int num_frames; // equivalent to WEBP_FF_FRAME_COUNT. + int x_offset, y_offset; // offset relative to the canvas. + int width, height; // dimensions of this frame. + int duration; // display duration in milliseconds. + WebPMuxAnimDispose dispose_method; // dispose method for the frame. + int complete; // true if 'fragment' contains a full frame. partial images + // may still be decoded with the WebP incremental decoder. + WebPData fragment; // The frame given by 'frame_num'. Note for historical + // reasons this is called a fragment. + int has_alpha; // True if the frame contains transparency. + WebPMuxAnimBlend blend_method; // Blend operation for the frame. + + uint32_t pad[2]; // padding for later use. + void* private_; // for internal use only. +}; + +// Retrieves frame 'frame_number' from 'dmux'. +// 'iter->fragment' points to the frame on return from this function. +// Setting 'frame_number' equal to 0 will return the last frame of the image. +// Returns false if 'dmux' is NULL or frame 'frame_number' is not present. +// Call WebPDemuxReleaseIterator() when use of the iterator is complete. +// NOTE: 'dmux' must persist for the lifetime of 'iter'. +WEBP_EXTERN int WebPDemuxGetFrame( + const WebPDemuxer* dmux, int frame_number, WebPIterator* iter); + +// Sets 'iter->fragment' to point to the next ('iter->frame_num' + 1) or +// previous ('iter->frame_num' - 1) frame. These functions do not loop. +// Returns true on success, false otherwise. +WEBP_EXTERN int WebPDemuxNextFrame(WebPIterator* iter); +WEBP_EXTERN int WebPDemuxPrevFrame(WebPIterator* iter); + +// Releases any memory associated with 'iter'. +// Must be called before any subsequent calls to WebPDemuxGetChunk() on the same +// iter. Also, must be called before destroying the associated WebPDemuxer with +// WebPDemuxDelete(). +WEBP_EXTERN void WebPDemuxReleaseIterator(WebPIterator* iter); + +//------------------------------------------------------------------------------ +// Chunk iteration. + +struct WebPChunkIterator { + // The current and total number of chunks with the fourcc given to + // WebPDemuxGetChunk(). + int chunk_num; + int num_chunks; + WebPData chunk; // The payload of the chunk. + + uint32_t pad[6]; // padding for later use + void* private_; +}; + +// Retrieves the 'chunk_number' instance of the chunk with id 'fourcc' from +// 'dmux'. +// 'fourcc' is a character array containing the fourcc of the chunk to return, +// e.g., "ICCP", "XMP ", "EXIF", etc. +// Setting 'chunk_number' equal to 0 will return the last chunk in a set. +// Returns true if the chunk is found, false otherwise. Image related chunk +// payloads are accessed through WebPDemuxGetFrame() and related functions. +// Call WebPDemuxReleaseChunkIterator() when use of the iterator is complete. +// NOTE: 'dmux' must persist for the lifetime of the iterator. +WEBP_EXTERN int WebPDemuxGetChunk(const WebPDemuxer* dmux, + const char fourcc[4], int chunk_number, + WebPChunkIterator* iter); + +// Sets 'iter->chunk' to point to the next ('iter->chunk_num' + 1) or previous +// ('iter->chunk_num' - 1) chunk. These functions do not loop. +// Returns true on success, false otherwise. +WEBP_EXTERN int WebPDemuxNextChunk(WebPChunkIterator* iter); +WEBP_EXTERN int WebPDemuxPrevChunk(WebPChunkIterator* iter); + +// Releases any memory associated with 'iter'. +// Must be called before destroying the associated WebPDemuxer with +// WebPDemuxDelete(). +WEBP_EXTERN void WebPDemuxReleaseChunkIterator(WebPChunkIterator* iter); + +//------------------------------------------------------------------------------ +// WebPAnimDecoder API +// +// This API allows decoding (possibly) animated WebP images. +// +// Code Example: +/* + WebPAnimDecoderOptions dec_options; + WebPAnimDecoderOptionsInit(&dec_options); + // Tune 'dec_options' as needed. + WebPAnimDecoder* dec = WebPAnimDecoderNew(webp_data, &dec_options); + WebPAnimInfo anim_info; + WebPAnimDecoderGetInfo(dec, &anim_info); + for (uint32_t i = 0; i < anim_info.loop_count; ++i) { + while (WebPAnimDecoderHasMoreFrames(dec)) { + uint8_t* buf; + int timestamp; + WebPAnimDecoderGetNext(dec, &buf, ×tamp); + // ... (Render 'buf' based on 'timestamp'). + // ... (Do NOT free 'buf', as it is owned by 'dec'). + } + WebPAnimDecoderReset(dec); + } + const WebPDemuxer* demuxer = WebPAnimDecoderGetDemuxer(dec); + // ... (Do something using 'demuxer'; e.g. get EXIF/XMP/ICC data). + WebPAnimDecoderDelete(dec); +*/ + +typedef struct WebPAnimDecoder WebPAnimDecoder; // Main opaque object. + +// Global options. +struct WebPAnimDecoderOptions { + // Output colorspace. Only the following modes are supported: + // MODE_RGBA, MODE_BGRA, MODE_rgbA and MODE_bgrA. + WEBP_CSP_MODE color_mode; + int use_threads; // If true, use multi-threaded decoding. + uint32_t padding[7]; // Padding for later use. +}; + +// Internal, version-checked, entry point. +WEBP_EXTERN int WebPAnimDecoderOptionsInitInternal( + WebPAnimDecoderOptions*, int); + +// Should always be called, to initialize a fresh WebPAnimDecoderOptions +// structure before modification. Returns false in case of version mismatch. +// WebPAnimDecoderOptionsInit() must have succeeded before using the +// 'dec_options' object. +static WEBP_INLINE int WebPAnimDecoderOptionsInit( + WebPAnimDecoderOptions* dec_options) { + return WebPAnimDecoderOptionsInitInternal(dec_options, + WEBP_DEMUX_ABI_VERSION); +} + +// Internal, version-checked, entry point. +WEBP_EXTERN WebPAnimDecoder* WebPAnimDecoderNewInternal( + const WebPData*, const WebPAnimDecoderOptions*, int); + +// Creates and initializes a WebPAnimDecoder object. +// Parameters: +// webp_data - (in) WebP bitstream. This should remain unchanged during the +// lifetime of the output WebPAnimDecoder object. +// dec_options - (in) decoding options. Can be passed NULL to choose +// reasonable defaults (in particular, color mode MODE_RGBA +// will be picked). +// Returns: +// A pointer to the newly created WebPAnimDecoder object, or NULL in case of +// parsing error, invalid option or memory error. +static WEBP_INLINE WebPAnimDecoder* WebPAnimDecoderNew( + const WebPData* webp_data, const WebPAnimDecoderOptions* dec_options) { + return WebPAnimDecoderNewInternal(webp_data, dec_options, + WEBP_DEMUX_ABI_VERSION); +} + +// Global information about the animation.. +struct WebPAnimInfo { + uint32_t canvas_width; + uint32_t canvas_height; + uint32_t loop_count; + uint32_t bgcolor; + uint32_t frame_count; + uint32_t pad[4]; // padding for later use +}; + +// Get global information about the animation. +// Parameters: +// dec - (in) decoder instance to get information from. +// info - (out) global information fetched from the animation. +// Returns: +// True on success. +WEBP_EXTERN int WebPAnimDecoderGetInfo(const WebPAnimDecoder* dec, + WebPAnimInfo* info); + +// Fetch the next frame from 'dec' based on options supplied to +// WebPAnimDecoderNew(). This will be a fully reconstructed canvas of size +// 'canvas_width * 4 * canvas_height', and not just the frame sub-rectangle. The +// returned buffer 'buf' is valid only until the next call to +// WebPAnimDecoderGetNext(), WebPAnimDecoderReset() or WebPAnimDecoderDelete(). +// Parameters: +// dec - (in/out) decoder instance from which the next frame is to be fetched. +// buf - (out) decoded frame. +// timestamp - (out) timestamp of the frame in milliseconds. +// Returns: +// False if any of the arguments are NULL, or if there is a parsing or +// decoding error, or if there are no more frames. Otherwise, returns true. +WEBP_EXTERN int WebPAnimDecoderGetNext(WebPAnimDecoder* dec, + uint8_t** buf, int* timestamp); + +// Check if there are more frames left to decode. +// Parameters: +// dec - (in) decoder instance to be checked. +// Returns: +// True if 'dec' is not NULL and some frames are yet to be decoded. +// Otherwise, returns false. +WEBP_EXTERN int WebPAnimDecoderHasMoreFrames(const WebPAnimDecoder* dec); + +// Resets the WebPAnimDecoder object, so that next call to +// WebPAnimDecoderGetNext() will restart decoding from 1st frame. This would be +// helpful when all frames need to be decoded multiple times (e.g. +// info.loop_count times) without destroying and recreating the 'dec' object. +// Parameters: +// dec - (in/out) decoder instance to be reset +WEBP_EXTERN void WebPAnimDecoderReset(WebPAnimDecoder* dec); + +// Grab the internal demuxer object. +// Getting the demuxer object can be useful if one wants to use operations only +// available through demuxer; e.g. to get XMP/EXIF/ICC metadata. The returned +// demuxer object is owned by 'dec' and is valid only until the next call to +// WebPAnimDecoderDelete(). +// +// Parameters: +// dec - (in) decoder instance from which the demuxer object is to be fetched. +WEBP_EXTERN const WebPDemuxer* WebPAnimDecoderGetDemuxer( + const WebPAnimDecoder* dec); + +// Deletes the WebPAnimDecoder object. +// Parameters: +// dec - (in/out) decoder instance to be deleted +WEBP_EXTERN void WebPAnimDecoderDelete(WebPAnimDecoder* dec); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif /* WEBP_WEBP_DEMUX_H_ */ diff --git a/external/libwebp-0.6.0/src/webp/encode.h b/external/libwebp-1.0.0/src/webp/encode.h similarity index 84% rename from external/libwebp-0.6.0/src/webp/encode.h rename to external/libwebp-1.0.0/src/webp/encode.h index 35fde1d0..7ec3543d 100644 --- a/external/libwebp-0.6.0/src/webp/encode.h +++ b/external/libwebp-1.0.0/src/webp/encode.h @@ -35,7 +35,7 @@ typedef struct WebPMemoryWriter WebPMemoryWriter; // Return the encoder's version number, packed in hexadecimal using 8bits for // each of major/minor/revision. E.g: v2.5.7 is 0x020507. -WEBP_EXTERN(int) WebPGetEncoderVersion(void); +WEBP_EXTERN int WebPGetEncoderVersion(void); //------------------------------------------------------------------------------ // One-stop-shop call! No questions asked: @@ -46,37 +46,37 @@ WEBP_EXTERN(int) WebPGetEncoderVersion(void); // These functions compress using the lossy format, and the quality_factor // can go from 0 (smaller output, lower quality) to 100 (best quality, // larger output). -WEBP_EXTERN(size_t) WebPEncodeRGB(const uint8_t* rgb, +WEBP_EXTERN size_t WebPEncodeRGB(const uint8_t* rgb, + int width, int height, int stride, + float quality_factor, uint8_t** output); +WEBP_EXTERN size_t WebPEncodeBGR(const uint8_t* bgr, + int width, int height, int stride, + float quality_factor, uint8_t** output); +WEBP_EXTERN size_t WebPEncodeRGBA(const uint8_t* rgba, int width, int height, int stride, float quality_factor, uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeBGR(const uint8_t* bgr, +WEBP_EXTERN size_t WebPEncodeBGRA(const uint8_t* bgra, int width, int height, int stride, float quality_factor, uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeRGBA(const uint8_t* rgba, - int width, int height, int stride, - float quality_factor, uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeBGRA(const uint8_t* bgra, - int width, int height, int stride, - float quality_factor, uint8_t** output); // These functions are the equivalent of the above, but compressing in a // lossless manner. Files are usually larger than lossy format, but will // not suffer any compression loss. -WEBP_EXTERN(size_t) WebPEncodeLosslessRGB(const uint8_t* rgb, +WEBP_EXTERN size_t WebPEncodeLosslessRGB(const uint8_t* rgb, + int width, int height, int stride, + uint8_t** output); +WEBP_EXTERN size_t WebPEncodeLosslessBGR(const uint8_t* bgr, + int width, int height, int stride, + uint8_t** output); +WEBP_EXTERN size_t WebPEncodeLosslessRGBA(const uint8_t* rgba, int width, int height, int stride, uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeLosslessBGR(const uint8_t* bgr, +WEBP_EXTERN size_t WebPEncodeLosslessBGRA(const uint8_t* bgra, int width, int height, int stride, uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeLosslessRGBA(const uint8_t* rgba, - int width, int height, int stride, - uint8_t** output); -WEBP_EXTERN(size_t) WebPEncodeLosslessBGRA(const uint8_t* bgra, - int width, int height, int stride, - uint8_t** output); // Releases memory returned by the WebPEncode*() functions above. -WEBP_EXTERN(void) WebPFree(void* ptr); +WEBP_EXTERN void WebPFree(void* ptr); //------------------------------------------------------------------------------ // Coding parameters @@ -93,12 +93,15 @@ typedef enum WebPImageHint { // Compression parameters. struct WebPConfig { int lossless; // Lossless encoding (0=lossy(default), 1=lossless). - float quality; // between 0 (smallest file) and 100 (biggest) + float quality; // between 0 and 100. For lossy, 0 gives the smallest + // size and 100 the largest. For lossless, this + // parameter is the amount of effort put into the + // compression: 0 is the fastest but gives larger + // files compared to the slowest, but best, 100. int method; // quality/speed trade-off (0=fast, 6=slower-better) WebPImageHint image_hint; // Hint for image type (lossless only for now). - // Parameters related to lossy compression only: int target_size; // if non-zero, set the desired target size in bytes. // Takes precedence over the 'compression' parameter. float target_PSNR; // if non-zero, specifies the minimal distortion to @@ -159,7 +162,7 @@ typedef enum WebPPreset { } WebPPreset; // Internal, version-checked, entry point -WEBP_EXTERN(int) WebPConfigInitInternal(WebPConfig*, WebPPreset, float, int); +WEBP_EXTERN int WebPConfigInitInternal(WebPConfig*, WebPPreset, float, int); // Should always be called, to initialize a fresh WebPConfig structure before // modification. Returns false in case of version mismatch. WebPConfigInit() @@ -186,15 +189,15 @@ static WEBP_INLINE int WebPConfigPreset(WebPConfig* config, // speed and final compressed size. // This function will overwrite several fields from config: 'method', 'quality' // and 'lossless'. Returns false in case of parameter error. -WEBP_EXTERN(int) WebPConfigLosslessPreset(WebPConfig* config, int level); +WEBP_EXTERN int WebPConfigLosslessPreset(WebPConfig* config, int level); // Returns true if 'config' is non-NULL and all configuration parameters are // within their valid ranges. -WEBP_EXTERN(int) WebPValidateConfig(const WebPConfig* config); +WEBP_EXTERN int WebPValidateConfig(const WebPConfig* config); //------------------------------------------------------------------------------ // Input / Output -// Structure for storing auxiliary statistics (mostly for lossy encoding). +// Structure for storing auxiliary statistics. struct WebPAuxStats { int coded_size; // final size @@ -242,16 +245,16 @@ struct WebPMemoryWriter { }; // The following must be called first before any use. -WEBP_EXTERN(void) WebPMemoryWriterInit(WebPMemoryWriter* writer); +WEBP_EXTERN void WebPMemoryWriterInit(WebPMemoryWriter* writer); // The following must be called to deallocate writer->mem memory. The 'writer' // object itself is not deallocated. -WEBP_EXTERN(void) WebPMemoryWriterClear(WebPMemoryWriter* writer); +WEBP_EXTERN void WebPMemoryWriterClear(WebPMemoryWriter* writer); // The custom writer to be used with WebPMemoryWriter as custom_ptr. Upon // completion, writer.mem and writer.size will hold the coded data. // writer.mem must be freed by calling WebPMemoryWriterClear. -WEBP_EXTERN(int) WebPMemoryWrite(const uint8_t* data, size_t data_size, - const WebPPicture* picture); +WEBP_EXTERN int WebPMemoryWrite(const uint8_t* data, size_t data_size, + const WebPPicture* picture); // Progress hook, called from time to time to report progress. It can return // false to request an abort of the encoding process, or true otherwise if @@ -354,7 +357,7 @@ struct WebPPicture { }; // Internal, version-checked, entry point -WEBP_EXTERN(int) WebPPictureInitInternal(WebPPicture*, int); +WEBP_EXTERN int WebPPictureInitInternal(WebPPicture*, int); // Should always be called, to initialize the structure. Returns false in case // of version mismatch. WebPPictureInit() must have succeeded before using the @@ -371,20 +374,20 @@ static WEBP_INLINE int WebPPictureInit(WebPPicture* picture) { // Allocate y/u/v buffers as per colorspace/width/height specification. // Note! This function will free the previous buffer if needed. // Returns false in case of memory error. -WEBP_EXTERN(int) WebPPictureAlloc(WebPPicture* picture); +WEBP_EXTERN int WebPPictureAlloc(WebPPicture* picture); // Release the memory allocated by WebPPictureAlloc() or WebPPictureImport*(). // Note that this function does _not_ free the memory used by the 'picture' // object itself. // Besides memory (which is reclaimed) all other fields of 'picture' are // preserved. -WEBP_EXTERN(void) WebPPictureFree(WebPPicture* picture); +WEBP_EXTERN void WebPPictureFree(WebPPicture* picture); // Copy the pixels of *src into *dst, using WebPPictureAlloc. Upon return, *dst // will fully own the copied pixels (this is not a view). The 'dst' picture need // not be initialized as its content is overwritten. // Returns false in case of memory allocation error. -WEBP_EXTERN(int) WebPPictureCopy(const WebPPicture* src, WebPPicture* dst); +WEBP_EXTERN int WebPPictureCopy(const WebPPicture* src, WebPPicture* dst); // Compute the single distortion for packed planes of samples. // 'src' will be compared to 'ref', and the raw distortion stored into @@ -393,19 +396,19 @@ WEBP_EXTERN(int) WebPPictureCopy(const WebPPicture* src, WebPPicture* dst); // 'x_step' is the horizontal stride (in bytes) between samples. // 'src/ref_stride' is the byte distance between rows. // Returns false in case of error (bad parameter, memory allocation error, ...). -WEBP_EXTERN(int) WebPPlaneDistortion(const uint8_t* src, size_t src_stride, - const uint8_t* ref, size_t ref_stride, - int width, int height, - size_t x_step, - int type, // 0 = PSNR, 1 = SSIM, 2 = LSIM - float* distortion, float* result); +WEBP_EXTERN int WebPPlaneDistortion(const uint8_t* src, size_t src_stride, + const uint8_t* ref, size_t ref_stride, + int width, int height, + size_t x_step, + int type, // 0 = PSNR, 1 = SSIM, 2 = LSIM + float* distortion, float* result); // Compute PSNR, SSIM or LSIM distortion metric between two pictures. Results // are in dB, stored in result[] in the B/G/R/A/All order. The distortion is // always performed using ARGB samples. Hence if the input is YUV(A), the // picture will be internally converted to ARGB (just for the measurement). // Warning: this function is rather CPU-intensive. -WEBP_EXTERN(int) WebPPictureDistortion( +WEBP_EXTERN int WebPPictureDistortion( const WebPPicture* src, const WebPPicture* ref, int metric_type, // 0 = PSNR, 1 = SSIM, 2 = LSIM float result[5]); @@ -418,8 +421,8 @@ WEBP_EXTERN(int) WebPPictureDistortion( // must be fully be comprised inside the 'src' source picture. If the source // picture uses the YUV420 colorspace, the top and left coordinates will be // snapped to even values. -WEBP_EXTERN(int) WebPPictureCrop(WebPPicture* picture, - int left, int top, int width, int height); +WEBP_EXTERN int WebPPictureCrop(WebPPicture* picture, + int left, int top, int width, int height); // Extracts a view from 'src' picture into 'dst'. The rectangle for the view // is defined by the top-left corner pixel coordinates (left, top) as well @@ -432,42 +435,42 @@ WEBP_EXTERN(int) WebPPictureCrop(WebPPicture* picture, // with WebPPictureInit() if it is different from 'src', since its content will // be overwritten. // Returns false in case of memory allocation error or invalid parameters. -WEBP_EXTERN(int) WebPPictureView(const WebPPicture* src, - int left, int top, int width, int height, - WebPPicture* dst); +WEBP_EXTERN int WebPPictureView(const WebPPicture* src, + int left, int top, int width, int height, + WebPPicture* dst); // Returns true if the 'picture' is actually a view and therefore does // not own the memory for pixels. -WEBP_EXTERN(int) WebPPictureIsView(const WebPPicture* picture); +WEBP_EXTERN int WebPPictureIsView(const WebPPicture* picture); // Rescale a picture to new dimension width x height. // If either 'width' or 'height' (but not both) is 0 the corresponding // dimension will be calculated preserving the aspect ratio. // No gamma correction is applied. // Returns false in case of error (invalid parameter or insufficient memory). -WEBP_EXTERN(int) WebPPictureRescale(WebPPicture* pic, int width, int height); +WEBP_EXTERN int WebPPictureRescale(WebPPicture* pic, int width, int height); // Colorspace conversion function to import RGB samples. // Previous buffer will be free'd, if any. // *rgb buffer should have a size of at least height * rgb_stride. // Returns false in case of memory error. -WEBP_EXTERN(int) WebPPictureImportRGB( +WEBP_EXTERN int WebPPictureImportRGB( WebPPicture* picture, const uint8_t* rgb, int rgb_stride); // Same, but for RGBA buffer. -WEBP_EXTERN(int) WebPPictureImportRGBA( +WEBP_EXTERN int WebPPictureImportRGBA( WebPPicture* picture, const uint8_t* rgba, int rgba_stride); // Same, but for RGBA buffer. Imports the RGB direct from the 32-bit format // input buffer ignoring the alpha channel. Avoids needing to copy the data // to a temporary 24-bit RGB buffer to import the RGB only. -WEBP_EXTERN(int) WebPPictureImportRGBX( +WEBP_EXTERN int WebPPictureImportRGBX( WebPPicture* picture, const uint8_t* rgbx, int rgbx_stride); // Variants of the above, but taking BGR(A|X) input. -WEBP_EXTERN(int) WebPPictureImportBGR( +WEBP_EXTERN int WebPPictureImportBGR( WebPPicture* picture, const uint8_t* bgr, int bgr_stride); -WEBP_EXTERN(int) WebPPictureImportBGRA( +WEBP_EXTERN int WebPPictureImportBGRA( WebPPicture* picture, const uint8_t* bgra, int bgra_stride); -WEBP_EXTERN(int) WebPPictureImportBGRX( +WEBP_EXTERN int WebPPictureImportBGRX( WebPPicture* picture, const uint8_t* bgrx, int bgrx_stride); // Converts picture->argb data to the YUV420A format. The 'colorspace' @@ -476,14 +479,14 @@ WEBP_EXTERN(int) WebPPictureImportBGRX( // non-opaque transparent values is detected, and 'colorspace' will be // adjusted accordingly. Note that this method is lossy. // Returns false in case of error. -WEBP_EXTERN(int) WebPPictureARGBToYUVA(WebPPicture* picture, - WebPEncCSP /*colorspace = WEBP_YUV420*/); +WEBP_EXTERN int WebPPictureARGBToYUVA(WebPPicture* picture, + WebPEncCSP /*colorspace = WEBP_YUV420*/); // Same as WebPPictureARGBToYUVA(), but the conversion is done using // pseudo-random dithering with a strength 'dithering' between // 0.0 (no dithering) and 1.0 (maximum dithering). This is useful // for photographic picture. -WEBP_EXTERN(int) WebPPictureARGBToYUVADithered( +WEBP_EXTERN int WebPPictureARGBToYUVADithered( WebPPicture* picture, WebPEncCSP colorspace, float dithering); // Performs 'sharp' RGBA->YUVA420 downsampling and colorspace conversion. @@ -491,9 +494,9 @@ WEBP_EXTERN(int) WebPPictureARGBToYUVADithered( // method is roughly 2x slower than WebPPictureARGBToYUVA() but produces better // and sharper YUV representation. // Returns false in case of error. -WEBP_EXTERN(int) WebPPictureSharpARGBToYUVA(WebPPicture* picture); +WEBP_EXTERN int WebPPictureSharpARGBToYUVA(WebPPicture* picture); // kept for backward compatibility: -WEBP_EXTERN(int) WebPPictureSmartARGBToYUVA(WebPPicture* picture); +WEBP_EXTERN int WebPPictureSmartARGBToYUVA(WebPPicture* picture); // Converts picture->yuv to picture->argb and sets picture->use_argb to true. // The input format must be YUV_420 or YUV_420A. The conversion from YUV420 to @@ -501,22 +504,22 @@ WEBP_EXTERN(int) WebPPictureSmartARGBToYUVA(WebPPicture* picture); // Note that the use of this colorspace is discouraged if one has access to the // raw ARGB samples, since using YUV420 is comparatively lossy. // Returns false in case of error. -WEBP_EXTERN(int) WebPPictureYUVAToARGB(WebPPicture* picture); +WEBP_EXTERN int WebPPictureYUVAToARGB(WebPPicture* picture); // Helper function: given a width x height plane of RGBA or YUV(A) samples -// clean-up the YUV or RGB samples under fully transparent area, to help -// compressibility (no guarantee, though). -WEBP_EXTERN(void) WebPCleanupTransparentArea(WebPPicture* picture); +// clean-up or smoothen the YUV or RGB samples under fully transparent area, +// to help compressibility (no guarantee, though). +WEBP_EXTERN void WebPCleanupTransparentArea(WebPPicture* picture); // Scan the picture 'picture' for the presence of non fully opaque alpha values. // Returns true in such case. Otherwise returns false (indicating that the // alpha plane can be ignored altogether e.g.). -WEBP_EXTERN(int) WebPPictureHasTransparency(const WebPPicture* picture); +WEBP_EXTERN int WebPPictureHasTransparency(const WebPPicture* picture); // Remove the transparency information (if present) by blending the color with // the background color 'background_rgb' (specified as 24bit RGB triplet). // After this call, all alpha values are reset to 0xff. -WEBP_EXTERN(void) WebPBlendAlpha(WebPPicture* pic, uint32_t background_rgb); +WEBP_EXTERN void WebPBlendAlpha(WebPPicture* pic, uint32_t background_rgb); //------------------------------------------------------------------------------ // Main call @@ -531,7 +534,7 @@ WEBP_EXTERN(void) WebPBlendAlpha(WebPPicture* pic, uint32_t background_rgb); // the former for lossy encoding, and the latter for lossless encoding // (when config.lossless is true). Automatic conversion from one format to // another is provided but they both incur some loss. -WEBP_EXTERN(int) WebPEncode(const WebPConfig* config, WebPPicture* picture); +WEBP_EXTERN int WebPEncode(const WebPConfig* config, WebPPicture* picture); //------------------------------------------------------------------------------ diff --git a/external/libwebp-0.6.0/src/webp/format_constants.h b/external/libwebp-1.0.0/src/webp/format_constants.h similarity index 100% rename from external/libwebp-0.6.0/src/webp/format_constants.h rename to external/libwebp-1.0.0/src/webp/format_constants.h diff --git a/external/libwebp-0.6.0/src/webp/mux.h b/external/libwebp-1.0.0/src/webp/mux.h similarity index 92% rename from external/libwebp-0.6.0/src/webp/mux.h rename to external/libwebp-1.0.0/src/webp/mux.h index daccc65e..28bb4a41 100644 --- a/external/libwebp-0.6.0/src/webp/mux.h +++ b/external/libwebp-1.0.0/src/webp/mux.h @@ -98,13 +98,13 @@ typedef enum WebPChunkId { // Returns the version number of the mux library, packed in hexadecimal using // 8bits for each of major/minor/revision. E.g: v2.5.7 is 0x020507. -WEBP_EXTERN(int) WebPGetMuxVersion(void); +WEBP_EXTERN int WebPGetMuxVersion(void); //------------------------------------------------------------------------------ // Life of a Mux object // Internal, version-checked, entry point -WEBP_EXTERN(WebPMux*) WebPNewInternal(int); +WEBP_EXTERN WebPMux* WebPNewInternal(int); // Creates an empty mux object. // Returns: @@ -117,13 +117,13 @@ static WEBP_INLINE WebPMux* WebPMuxNew(void) { // Deletes the mux object. // Parameters: // mux - (in/out) object to be deleted -WEBP_EXTERN(void) WebPMuxDelete(WebPMux* mux); +WEBP_EXTERN void WebPMuxDelete(WebPMux* mux); //------------------------------------------------------------------------------ // Mux creation. // Internal, version-checked, entry point -WEBP_EXTERN(WebPMux*) WebPMuxCreateInternal(const WebPData*, int, int); +WEBP_EXTERN WebPMux* WebPMuxCreateInternal(const WebPData*, int, int); // Creates a mux object from raw data given in WebP RIFF format. // Parameters: @@ -160,7 +160,7 @@ static WEBP_INLINE WebPMux* WebPMuxCreate(const WebPData* bitstream, // or if fourcc corresponds to an image chunk. // WEBP_MUX_MEMORY_ERROR - on memory allocation error. // WEBP_MUX_OK - on success. -WEBP_EXTERN(WebPMuxError) WebPMuxSetChunk( +WEBP_EXTERN WebPMuxError WebPMuxSetChunk( WebPMux* mux, const char fourcc[4], const WebPData* chunk_data, int copy_data); @@ -176,7 +176,7 @@ WEBP_EXTERN(WebPMuxError) WebPMuxSetChunk( // or if fourcc corresponds to an image chunk. // WEBP_MUX_NOT_FOUND - If mux does not contain a chunk with the given id. // WEBP_MUX_OK - on success. -WEBP_EXTERN(WebPMuxError) WebPMuxGetChunk( +WEBP_EXTERN WebPMuxError WebPMuxGetChunk( const WebPMux* mux, const char fourcc[4], WebPData* chunk_data); // Deletes the chunk with the given 'fourcc' from the mux object. @@ -189,7 +189,7 @@ WEBP_EXTERN(WebPMuxError) WebPMuxGetChunk( // or if fourcc corresponds to an image chunk. // WEBP_MUX_NOT_FOUND - If mux does not contain a chunk with the given fourcc. // WEBP_MUX_OK - on success. -WEBP_EXTERN(WebPMuxError) WebPMuxDeleteChunk( +WEBP_EXTERN WebPMuxError WebPMuxDeleteChunk( WebPMux* mux, const char fourcc[4]); //------------------------------------------------------------------------------ @@ -222,7 +222,7 @@ struct WebPMuxFrameInfo { // WEBP_MUX_INVALID_ARGUMENT - if mux is NULL or bitstream is NULL. // WEBP_MUX_MEMORY_ERROR - on memory allocation error. // WEBP_MUX_OK - on success. -WEBP_EXTERN(WebPMuxError) WebPMuxSetImage( +WEBP_EXTERN WebPMuxError WebPMuxSetImage( WebPMux* mux, const WebPData* bitstream, int copy_data); // Adds a frame at the end of the mux object. @@ -241,7 +241,7 @@ WEBP_EXTERN(WebPMuxError) WebPMuxSetImage( // or if content of 'frame' is invalid. // WEBP_MUX_MEMORY_ERROR - on memory allocation error. // WEBP_MUX_OK - on success. -WEBP_EXTERN(WebPMuxError) WebPMuxPushFrame( +WEBP_EXTERN WebPMuxError WebPMuxPushFrame( WebPMux* mux, const WebPMuxFrameInfo* frame, int copy_data); // Gets the nth frame from the mux object. @@ -259,7 +259,7 @@ WEBP_EXTERN(WebPMuxError) WebPMuxPushFrame( // WEBP_MUX_BAD_DATA - if nth frame chunk in mux is invalid. // WEBP_MUX_MEMORY_ERROR - on memory allocation error. // WEBP_MUX_OK - on success. -WEBP_EXTERN(WebPMuxError) WebPMuxGetFrame( +WEBP_EXTERN WebPMuxError WebPMuxGetFrame( const WebPMux* mux, uint32_t nth, WebPMuxFrameInfo* frame); // Deletes a frame from the mux object. @@ -272,7 +272,7 @@ WEBP_EXTERN(WebPMuxError) WebPMuxGetFrame( // WEBP_MUX_NOT_FOUND - If there are less than nth frames in the mux object // before deletion. // WEBP_MUX_OK - on success. -WEBP_EXTERN(WebPMuxError) WebPMuxDeleteFrame(WebPMux* mux, uint32_t nth); +WEBP_EXTERN WebPMuxError WebPMuxDeleteFrame(WebPMux* mux, uint32_t nth); //------------------------------------------------------------------------------ // Animation. @@ -296,7 +296,7 @@ struct WebPMuxAnimParams { // WEBP_MUX_INVALID_ARGUMENT - if mux or params is NULL. // WEBP_MUX_MEMORY_ERROR - on memory allocation error. // WEBP_MUX_OK - on success. -WEBP_EXTERN(WebPMuxError) WebPMuxSetAnimationParams( +WEBP_EXTERN WebPMuxError WebPMuxSetAnimationParams( WebPMux* mux, const WebPMuxAnimParams* params); // Gets the animation parameters from the mux object. @@ -307,7 +307,7 @@ WEBP_EXTERN(WebPMuxError) WebPMuxSetAnimationParams( // WEBP_MUX_INVALID_ARGUMENT - if mux or params is NULL. // WEBP_MUX_NOT_FOUND - if ANIM chunk is not present in mux object. // WEBP_MUX_OK - on success. -WEBP_EXTERN(WebPMuxError) WebPMuxGetAnimationParams( +WEBP_EXTERN WebPMuxError WebPMuxGetAnimationParams( const WebPMux* mux, WebPMuxAnimParams* params); //------------------------------------------------------------------------------ @@ -328,8 +328,8 @@ WEBP_EXTERN(WebPMuxError) WebPMuxGetAnimationParams( // WEBP_MUX_INVALID_ARGUMENT - if mux is NULL; or // width or height are invalid or out of bounds // WEBP_MUX_OK - on success. -WEBP_EXTERN(WebPMuxError) WebPMuxSetCanvasSize(WebPMux* mux, - int width, int height); +WEBP_EXTERN WebPMuxError WebPMuxSetCanvasSize(WebPMux* mux, + int width, int height); // Gets the canvas size from the mux object. // Note: This method assumes that the VP8X chunk, if present, is up-to-date. @@ -343,8 +343,8 @@ WEBP_EXTERN(WebPMuxError) WebPMuxSetCanvasSize(WebPMux* mux, // WEBP_MUX_INVALID_ARGUMENT - if mux, width or height is NULL. // WEBP_MUX_BAD_DATA - if VP8X/VP8/VP8L chunk or canvas size is invalid. // WEBP_MUX_OK - on success. -WEBP_EXTERN(WebPMuxError) WebPMuxGetCanvasSize(const WebPMux* mux, - int* width, int* height); +WEBP_EXTERN WebPMuxError WebPMuxGetCanvasSize(const WebPMux* mux, + int* width, int* height); // Gets the feature flags from the mux object. // Note: This method assumes that the VP8X chunk, if present, is up-to-date. @@ -359,8 +359,8 @@ WEBP_EXTERN(WebPMuxError) WebPMuxGetCanvasSize(const WebPMux* mux, // WEBP_MUX_INVALID_ARGUMENT - if mux or flags is NULL. // WEBP_MUX_BAD_DATA - if VP8X/VP8/VP8L chunk or canvas size is invalid. // WEBP_MUX_OK - on success. -WEBP_EXTERN(WebPMuxError) WebPMuxGetFeatures(const WebPMux* mux, - uint32_t* flags); +WEBP_EXTERN WebPMuxError WebPMuxGetFeatures(const WebPMux* mux, + uint32_t* flags); // Gets number of chunks with the given 'id' in the mux object. // Parameters: @@ -370,8 +370,8 @@ WEBP_EXTERN(WebPMuxError) WebPMuxGetFeatures(const WebPMux* mux, // Returns: // WEBP_MUX_INVALID_ARGUMENT - if mux, or num_elements is NULL. // WEBP_MUX_OK - on success. -WEBP_EXTERN(WebPMuxError) WebPMuxNumChunks(const WebPMux* mux, - WebPChunkId id, int* num_elements); +WEBP_EXTERN WebPMuxError WebPMuxNumChunks(const WebPMux* mux, + WebPChunkId id, int* num_elements); // Assembles all chunks in WebP RIFF format and returns in 'assembled_data'. // This function also validates the mux object. @@ -388,8 +388,8 @@ WEBP_EXTERN(WebPMuxError) WebPMuxNumChunks(const WebPMux* mux, // WEBP_MUX_INVALID_ARGUMENT - if mux or assembled_data is NULL. // WEBP_MUX_MEMORY_ERROR - on memory allocation error. // WEBP_MUX_OK - on success. -WEBP_EXTERN(WebPMuxError) WebPMuxAssemble(WebPMux* mux, - WebPData* assembled_data); +WEBP_EXTERN WebPMuxError WebPMuxAssemble(WebPMux* mux, + WebPData* assembled_data); //------------------------------------------------------------------------------ // WebPAnimEncoder API @@ -442,7 +442,7 @@ struct WebPAnimEncoderOptions { }; // Internal, version-checked, entry point. -WEBP_EXTERN(int) WebPAnimEncoderOptionsInitInternal( +WEBP_EXTERN int WebPAnimEncoderOptionsInitInternal( WebPAnimEncoderOptions*, int); // Should always be called, to initialize a fresh WebPAnimEncoderOptions @@ -455,7 +455,7 @@ static WEBP_INLINE int WebPAnimEncoderOptionsInit( } // Internal, version-checked, entry point. -WEBP_EXTERN(WebPAnimEncoder*) WebPAnimEncoderNewInternal( +WEBP_EXTERN WebPAnimEncoder* WebPAnimEncoderNewInternal( int, int, const WebPAnimEncoderOptions*, int); // Creates and initializes a WebPAnimEncoder object. @@ -490,7 +490,7 @@ static WEBP_INLINE WebPAnimEncoder* WebPAnimEncoderNew( // Returns: // On error, returns false and frame->error_code is set appropriately. // Otherwise, returns true. -WEBP_EXTERN(int) WebPAnimEncoderAdd( +WEBP_EXTERN int WebPAnimEncoderAdd( WebPAnimEncoder* enc, struct WebPPicture* frame, int timestamp_ms, const struct WebPConfig* config); @@ -503,8 +503,8 @@ WEBP_EXTERN(int) WebPAnimEncoderAdd( // webp_data - (out) generated WebP bitstream. // Returns: // True on success. -WEBP_EXTERN(int) WebPAnimEncoderAssemble(WebPAnimEncoder* enc, - WebPData* webp_data); +WEBP_EXTERN int WebPAnimEncoderAssemble(WebPAnimEncoder* enc, + WebPData* webp_data); // Get error string corresponding to the most recent call using 'enc'. The // returned string is owned by 'enc' and is valid only until the next call to @@ -514,12 +514,12 @@ WEBP_EXTERN(int) WebPAnimEncoderAssemble(WebPAnimEncoder* enc, // Returns: // NULL if 'enc' is NULL. Otherwise, returns the error string if the last call // to 'enc' had an error, or an empty string if the last call was a success. -WEBP_EXTERN(const char*) WebPAnimEncoderGetError(WebPAnimEncoder* enc); +WEBP_EXTERN const char* WebPAnimEncoderGetError(WebPAnimEncoder* enc); // Deletes the WebPAnimEncoder object. // Parameters: // enc - (in/out) object to be deleted -WEBP_EXTERN(void) WebPAnimEncoderDelete(WebPAnimEncoder* enc); +WEBP_EXTERN void WebPAnimEncoderDelete(WebPAnimEncoder* enc); //------------------------------------------------------------------------------ diff --git a/external/libwebp-1.0.0/src/webp/mux_types.h b/external/libwebp-1.0.0/src/webp/mux_types.h new file mode 100644 index 00000000..b37e2c67 --- /dev/null +++ b/external/libwebp-1.0.0/src/webp/mux_types.h @@ -0,0 +1,98 @@ +// Copyright 2012 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// Data-types common to the mux and demux libraries. +// +// Author: Urvang (urvang@google.com) + +#ifndef WEBP_WEBP_MUX_TYPES_H_ +#define WEBP_WEBP_MUX_TYPES_H_ + +#include // free() +#include // memset() +#include "./types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +// Note: forward declaring enumerations is not allowed in (strict) C and C++, +// the types are left here for reference. +// typedef enum WebPFeatureFlags WebPFeatureFlags; +// typedef enum WebPMuxAnimDispose WebPMuxAnimDispose; +// typedef enum WebPMuxAnimBlend WebPMuxAnimBlend; +typedef struct WebPData WebPData; + +// VP8X Feature Flags. +typedef enum WebPFeatureFlags { + ANIMATION_FLAG = 0x00000002, + XMP_FLAG = 0x00000004, + EXIF_FLAG = 0x00000008, + ALPHA_FLAG = 0x00000010, + ICCP_FLAG = 0x00000020, + + ALL_VALID_FLAGS = 0x0000003e +} WebPFeatureFlags; + +// Dispose method (animation only). Indicates how the area used by the current +// frame is to be treated before rendering the next frame on the canvas. +typedef enum WebPMuxAnimDispose { + WEBP_MUX_DISPOSE_NONE, // Do not dispose. + WEBP_MUX_DISPOSE_BACKGROUND // Dispose to background color. +} WebPMuxAnimDispose; + +// Blend operation (animation only). Indicates how transparent pixels of the +// current frame are blended with those of the previous canvas. +typedef enum WebPMuxAnimBlend { + WEBP_MUX_BLEND, // Blend. + WEBP_MUX_NO_BLEND // Do not blend. +} WebPMuxAnimBlend; + +// Data type used to describe 'raw' data, e.g., chunk data +// (ICC profile, metadata) and WebP compressed image data. +struct WebPData { + const uint8_t* bytes; + size_t size; +}; + +// Initializes the contents of the 'webp_data' object with default values. +static WEBP_INLINE void WebPDataInit(WebPData* webp_data) { + if (webp_data != NULL) { + memset(webp_data, 0, sizeof(*webp_data)); + } +} + +// Clears the contents of the 'webp_data' object by calling free(). Does not +// deallocate the object itself. +static WEBP_INLINE void WebPDataClear(WebPData* webp_data) { + if (webp_data != NULL) { + free((void*)webp_data->bytes); + WebPDataInit(webp_data); + } +} + +// Allocates necessary storage for 'dst' and copies the contents of 'src'. +// Returns true on success. +static WEBP_INLINE int WebPDataCopy(const WebPData* src, WebPData* dst) { + if (src == NULL || dst == NULL) return 0; + WebPDataInit(dst); + if (src->bytes != NULL && src->size != 0) { + dst->bytes = (uint8_t*)malloc(src->size); + if (dst->bytes == NULL) return 0; + memcpy((void*)dst->bytes, src->bytes, src->size); + dst->size = src->size; + } + return 1; +} + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif /* WEBP_WEBP_MUX_TYPES_H_ */ diff --git a/external/libwebp-0.6.0/src/webp/types.h b/external/libwebp-1.0.0/src/webp/types.h similarity index 92% rename from external/libwebp-0.6.0/src/webp/types.h rename to external/libwebp-1.0.0/src/webp/types.h index 98fff35a..989a763f 100644 --- a/external/libwebp-0.6.0/src/webp/types.h +++ b/external/libwebp-1.0.0/src/webp/types.h @@ -40,9 +40,9 @@ typedef long long int int64_t; // This explicitly marks library functions and allows for changing the // signature for e.g., Windows DLL builds. # if defined(__GNUC__) && __GNUC__ >= 4 -# define WEBP_EXTERN(type) extern __attribute__ ((visibility ("default"))) type +# define WEBP_EXTERN extern __attribute__ ((visibility ("default"))) # else -# define WEBP_EXTERN(type) extern type +# define WEBP_EXTERN extern # endif /* __GNUC__ >= 4 */ #endif /* WEBP_EXTERN */ diff --git a/external/libwebp-0.6.0/swig/README b/external/libwebp-1.0.0/swig/README similarity index 100% rename from external/libwebp-0.6.0/swig/README rename to external/libwebp-1.0.0/swig/README diff --git a/external/libwebp-0.6.0/swig/libwebp.go b/external/libwebp-1.0.0/swig/libwebp.go similarity index 100% rename from external/libwebp-0.6.0/swig/libwebp.go rename to external/libwebp-1.0.0/swig/libwebp.go diff --git a/external/libwebp-0.6.0/swig/libwebp.jar b/external/libwebp-1.0.0/swig/libwebp.jar similarity index 100% rename from external/libwebp-0.6.0/swig/libwebp.jar rename to external/libwebp-1.0.0/swig/libwebp.jar diff --git a/external/libwebp-0.6.0/swig/libwebp.py b/external/libwebp-1.0.0/swig/libwebp.py similarity index 100% rename from external/libwebp-0.6.0/swig/libwebp.py rename to external/libwebp-1.0.0/swig/libwebp.py diff --git a/external/libwebp-0.6.0/swig/libwebp.swig b/external/libwebp-1.0.0/swig/libwebp.swig similarity index 100% rename from external/libwebp-0.6.0/swig/libwebp.swig rename to external/libwebp-1.0.0/swig/libwebp.swig diff --git a/external/libwebp-0.6.0/swig/libwebp_gc.c b/external/libwebp-1.0.0/swig/libwebp_gc.c similarity index 100% rename from external/libwebp-0.6.0/swig/libwebp_gc.c rename to external/libwebp-1.0.0/swig/libwebp_gc.c diff --git a/external/libwebp-0.6.0/swig/libwebp_go_wrap.c b/external/libwebp-1.0.0/swig/libwebp_go_wrap.c similarity index 100% rename from external/libwebp-0.6.0/swig/libwebp_go_wrap.c rename to external/libwebp-1.0.0/swig/libwebp_go_wrap.c diff --git a/external/libwebp-0.6.0/swig/libwebp_java_wrap.c b/external/libwebp-1.0.0/swig/libwebp_java_wrap.c similarity index 100% rename from external/libwebp-0.6.0/swig/libwebp_java_wrap.c rename to external/libwebp-1.0.0/swig/libwebp_java_wrap.c diff --git a/external/libwebp-0.6.0/swig/libwebp_python_wrap.c b/external/libwebp-1.0.0/swig/libwebp_python_wrap.c similarity index 100% rename from external/libwebp-0.6.0/swig/libwebp_python_wrap.c rename to external/libwebp-1.0.0/swig/libwebp_python_wrap.c diff --git a/external/libwebp-0.6.0/swig/setup.py b/external/libwebp-1.0.0/swig/setup.py similarity index 100% rename from external/libwebp-0.6.0/swig/setup.py rename to external/libwebp-1.0.0/swig/setup.py diff --git a/external/libwebp-1.0.0/webp_js/index.html b/external/libwebp-1.0.0/webp_js/index.html new file mode 100644 index 00000000..10873a98 --- /dev/null +++ b/external/libwebp-1.0.0/webp_js/index.html @@ -0,0 +1,75 @@ + + + + + + simple Javascript WebP decoding demo + + + + + + +

+ WebP in JavaScript demo - +

+

+ WebP decoder in JavaScript, using libwebp compiled with + Emscripten. +

+

+ +

+

Timing: N/A

+ Your browser does not support canvas + + + diff --git a/external/libwebp-1.0.0/webp_js/index_wasm.html b/external/libwebp-1.0.0/webp_js/index_wasm.html new file mode 100644 index 00000000..b77c22c4 --- /dev/null +++ b/external/libwebp-1.0.0/webp_js/index_wasm.html @@ -0,0 +1,90 @@ + + + + + + simple Javascript WebP decoding demo, using Web-Assembly (WASM) + + + + + +

+ WebP demo using Web-Assembly - +

+

+ WASM version of the WebP decoder, using libwebp compiled with + Emscripten. +

+

+ +

+

Timing: N/A

+ Your browser does not support canvas + + diff --git a/external/libwebp-1.0.0/webp_js/test_webp_js.webp b/external/libwebp-1.0.0/webp_js/test_webp_js.webp new file mode 100644 index 0000000000000000000000000000000000000000..f798f5563e4fa21e8784067ed1a0cd5d81239c3b GIT binary patch literal 1321542 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¨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%0AH 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

s;QtfP>{DVWoQTmJ^4G>GtZOMuK`^FWv* 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%0AYYT1GUib;NOfeNbsmV?Y-=*63Xa_Uur zfPw){4h7O7)e4e0&4xQPtFQfK1%#x=1s;Rp73>L1-I6xB*XN+$W5TkbZZe?o3Iv+K zcI+Fp@!$KCf3Emh>9;Ds9of**s2YYr$N*8O2?8L}a_+#DGo2&wj!n8E%pt5z*mziSY(wb zBtViexHe1Sid%+#0^@pRq{IRm%9(sdCQYQZ?JM^F^y@|RQO=-&XCh)|6Iw`~!3~Q_ zU?D=Ai%4Fqpf-Gt3RBC>T+pUUG+CNjCH6`JaK(LG)9ws&&>y;!v74vLJi$Z5g2YC3 z5EnTh7Se{`D?v@|?R)|f28BpP%^@1XhQOT)X{ju`hs!TJJhy082jLJK#4z!$qN#^c z(sGacK7W3pNAEpXIIK6YFtnbBuhaL`(~7w%0}{M3d1((tQt;R4s60N$XUBi=nXUaIlh`V!vWBs)FJ%q-p7vGdS$((-9I@aBH0 zbT(hJ{Dk`+xM_wF<7-JN0NyT?TK7xwGkg?2`XjDex?G+&k&fm6$@#bYdUZ|?i}+2v zEuJ6TiwKmaF20*w)BFZie0wCv{pa}n^Rx5k7U)W~E^)7+H^e+66uO?NnQr@`gh{BI zy!LZLi!6bo?>UeB?eOLKJj=PlJPjYmbI0xu&3w=D`~4!TKbSTHdakljKYYl$AF?vlw;G1xDevrzb4)NEg4HuTB*c(Kb*@ek3Pf? ze143UfTfMwddqFQ0Vf2dvVqWQ_9_4r^Mu5NwC1HX<13rBMPl!yM3=KPB29q<1XeQp zKUh+?N6%c_q9-VjXd|W^(P+vrIbkUh!Rc~59_nyK9%l59e>e5%&UgA=!v^~Pi6?2HC zQp7&}jJ&y~?{i(c1$w-rXsD$i$N*FRMe(LQPS{uPevMXWWscVO0*i-p`R3{1-y_Ze?Z>2#AGFPC;*E@kAyTLk zGL*@V9>;a~nxzD=nYP1Bk}0Y<=M{l=m*+9rXnu&6f zFw}xUl-odp<~>7axDU80x1E|W?nY~m#j3mWD}q-GNk4v_ylZ=_;FHRi%f3ZloJR z8E}ij62P`Po4eko>#@A}9b%$$h(Vi-35u2o5U>gm2oRO&+(00(XfF%MtSD=0iGQM@ zP+K!B)+RUsYN*}iABNmRWGnN9Igl;^8c?&u`dDLiZwr2?iPb|SWviM~h-jKPh(?ks z>N2YL@_0LUY&)qn<#g_a%-DlCx$`N5x*#R#MzJ~Yqi7 zJ6m<>!_ry@bZ8C4PP9Q~>>SSJjXj%3KYzWPxcv6`Q{KNAkMxuUc1Byf7dG~-OTO-2 z=4Bz^_*B~?X-=~XV3$;pCD~+iv?GFCG8ury!&6b`j+tc}(_UDNY?sF$1eU&OOHTBh>@tb_*pYDY;-`E4-+ z1G}uW!qTWKmQFM(S$QYEUF|Ds!=8U)&(va0-Ahd0b)4Y>`7cZJcQOZykvLaaFc1zF zML+C$)fyhFTQ5xx9ao3T7sNu;HtN$hzpdDPbB>b;0Fvm#!wM4zDGE%I3PCb9QMhc# z#ud$|N$35h9;porVvbxEXXG+6yyBZlbx=OOOLMZ#xa$Ct)Q#Vr@kl zTxxVpjKc=VUo0s9nA`q|%i~KDYj=wy3bV(mcv7PU+9V;YtK0g~c^>wUk0z_<1Y%RD zPK``g$_+g+8>Em3(ST8ykVhaRgDUNX5KvUAq7@W0XvV6Eu_($^ghd!;5e(6?g>@W) z4ur==lq_&j7a--A8SyEL9)qhw;cg@$BJR>%=rErGMH_`10V@8|icy`xU1hbZ%!skt zxq<W(Q8N(_6(hESbD`19;*X;uMe{k&sDZrYVqo0L>ttos$pW`PRgox*AVOk4 ztW;!DqCra}C0SSmqARjSyo8IHyooM#JkDc2UXeU+x>|{71k4KJV?=mGh!oQ3>yhc> zQoCPvO4Kf^D&;%%dHd3YC2ZB9T0>YL27??_0v3p4LN4h9HQ_wUdc4RTAh%6VW*WMb zEFnku;FPBrG_*kMP*qurc@JMyMprxuyo(8<L(_cCU?`pPY%0FQe3l+WaVwaxts%eBbr)(sLHtYu%6A zmFsZB^P_dAu22uGb1$1_3NceWmnq8tg}JD$%A`;P#41DzkO>G%$W!#|0ou|rt@SJFTNk^V>wDVl zu5({)mtJUv26ipNk?@h+FpEWS9feLMezX=aE(t7BkLTHVEprL4G*{c#-oJYDMe|j9 z5t~b(fmWdyA?PY?AeJQpWu!%&tdH6UYy<&`N~JkmDqZuu(VF4V(}r|ggbfKn3v@ms z%O~xg0Y}XWER_m^4BL9ouzpJSE(gNfO}>jNzt{Ge>A@$>oF+#hta{GYolyV!xabn0 zH{KZx8a6%>gbi+Z)twTxv}_8dF+ng6sTd;!WQKxJz!1ia66h3TSqxIqD~d|pj!7d3 z;TV_4{%ZSwUjOUQ-un08f2;Dp?_pN}Cm18cNHuvOYIWalXeSJSUhow65ruK6k;X%3 z?X(}BIm~1%E0j21*N9rEj_MeuSw&+SW)&hC*2qO%ihsZB0dN1!&v_i}u!paEW1jD) z*VqLnlPT<=xOmtH=(;Ihvx#T5r&*m503IlSfUjg7SF}OZ2n`$vsC?GPTlxKS4F<+w z28ykTq)d!TluY+rpHbs3x(?ROYjxIUKN4RT^01M;MlfmI6vT;eykD177BWQ@CC^vH(fH~x}9|!jUTh^MNLLC@ey+df5wILtaHi|E7%`J{&-{mndaBn zc_Z$g`}9~_YmgF~C$iIeK+j?3P1w+a#+Oc!%Ej~ifY)hb@hjf0U6fHVaJsmPt~iF` z6hARVHU`6<2%?X_zr0=Ia{EG-am}coj|!a0e7@`vs5Ll)hh(#76$a*f_ zT@9p|IF=*439K+p$b+yIcfw1-MJ*G>LbVfNZ6grIqC_PIg=C_)RjeI#UWRv6 z-d*$K3!fvIL+PXqkl5|~pw8L5X-tIPT74FjLaRyRo*ino;B-0{3&7d=IY9%{4DM2z?}N$p2b7lV;Y9AXJcp z3s_L5322x@9S)jXz}(n7G`IXSaRIP^Ly15Oo!F9+R2H;|4!qN^RGg(jD-0F44ZTUH ztt+P05UzBEYSqft&xSq7^qo3hpY`V-KXZQX%+=id*i!6KiuyErPTz=za;*V~bMn5E zj;{{k1_4T`Hk)ybeGBshp=gu$P3{c%QP1;(kF4e|Pu7FTnTR%(+BfuKHd+=gWK_pX-*==WE-)WsNGKY#*J;U%O5-crdf@ zKRW+f=l^x|xqR=XOg;DcvAsXe))Siux(Ysyx~1zXv+b{uyB!zv5Qk+N-*F9j4f@rS zLp+|Z^6+U++xKi&x%KHsU%dSsxHFn^pY!L+R(~^>W%e$dRpTmnGgD~jTZ;o?n=k~n zKv!JNDAFT6H6PaAF)vvTRVYCsZD{MNYTur`3pX<(*RA^rZw79a%WK4@s~eTqP!ZO+ zm=2oOREN325?a@J#2%XxwrIyQ6X|(t`;R0yXbMr8IQH|k-EZM}KPk@-=S#;ub@U|5 z-9bXT9c6+=5CtebtOE04RuMT2JyHrnG<0Xc#sPGI*qJQ2uy&O99?b#PHZrb40ZYb_ zD*)DDON|=At#U~hts@L_8cWvS+p|D|%6@i6qX$ahYr39Zb){B9hoErQs*5O60TXJw zwYIqUk1Lw@qI0#iJq>LvunY(1vb}hhJKbKi_sKq7b-rUY+^e9OouSXg8>$_YvjgZd z^UTPPK&MihYASGzP1B^4F1U{+HsgNh*q4!QKc?{X?wV-6Z(s;Bf9F+O&UDP@AKjRuijmKW8Zm3PaMD_456&Tn7$2;c?NRH z!nu2I$jGGdpjm6Yuuza}{mGa&Y)5w>REmF%z~#mO`b;0mK3=t~otGz+z(5w|2fMN^ z%MX}n8v`zB4PfI^h@MkzeT;4TRA`y#75Hv1@T8C!+v-NH;S)S0_-5&w-BY`8 zeG(%q*UV+@E!JKTWuYj?L_lW(xEi0!hI1TK^u3pJ3b{8uhDTsuCd=W1Jc-);DAiEh zEzReD_pSTYXZ8Hy$N9tO^&xXWN=|;bbKXMLKpxA3wI*8nu8pE}>t4cJ7~@Xo#XR#h z=={=$pXb~BwafoCG%~=YZQORHXFOf!UB;-#&CB0-riPr`VlZv_S!qAv?T>p^LOrB; z*akfu4G)Q^CwZ5#k0zYyoL=GB4tc%YYl|_`LPW)Is)05DB(?}ILrX>p0^LdLgmX%M znyF50|J2a{*KI-Jr|^J1T3J6f`kDR;a<8NB!jE$&p6W)YZ(@FMInWFuj=>UhYmW=u*yC< z-e>x&v6Z$>MqSS)1jD51rR;{qYhvz6vw}&=3A|y7YIH>VN*Pk_qW#}mj=j#GaJMUQ ztork186W%m-@Vk&#sJ0|>55=mC14Z@(sYs-=DmX?S}cnoETAkF8Uen7{io%lvYVyX zbW7_PszF6^=`-3znCht_9We_PXnT;Ew@{k?b)l_suwT)IpF|Z~!o-C6}QMV!#NLh%p985d$qW z)6BFp@Kqcy%oe)PMaBr&xg16Sj&W5qfKZpXZ8o&agvHDn9BH*fAxRn(td_!4y=7sb z#9Z7d(W?i8$bhyHPL#uxly&T341El;c_E}VH7C?ocrlGp>M#|R0L<)I$hNM5ZefSB z@qlC41S%<^Nr)|1b&Du90?1irZZeqybsv_hCZEt5NqII5042@_kOl;s^inmk2VGKg zl4NF3V%VI2tlZnd*1$Hs8ggXM7e&coxUiHd5doE13E;pHm5H~7+Fm)@Fe<*1 zPs_DfNz1S(6wuv#x*Wi&mrk*5E$Uzpd12YQNVx`-eVjb9)V65FC{hGVP?91U5+Fn& zunCsjwJIGkgSae)3*3=uT3F>G#ZM_)N8m{-7y|gyRQIiex|?Em9zQ*+@LRK?HN~}S ztB~T>>t3$K{`TVGaqU~<8>MXXOxseW7T_UK$45y#D@$y^8hoM^T_}MWLI`aQM1*I6 z03$jMpVdBpelq@Q<2o-UAFR5p&9ZNZ7d1Qeb@eh=fh7ntivd1+IS=ReZ`W@h){9*) zf7ewV0aNJ`y0bk`)~UbfcZ||j2~-c+5_YC6kd$J$f#Sv_Rp-nHoreU-3Nsq!_EziV zwYmdkR;woW!|$f}RevBHF!!WriOR}?K`sG8S3Q2SstC){ zAY!vSuegM%MG^Q+At|Ivx!z~GynA=arvetto}wOwM%e^(;rhc~&-r!Y=}&6hG#%*b z+~Y9~89{(pg&>woN)(4QqZ@e! zEC%_G5X3Pfr6_<5G3`oNsEUXjOh^fxf*t=XOz{0uiKmY~n<1rZeVmogR_6-YnCCz9NZJK$Ixn12y3~)`g0CbYF zQ{>?yzL&2Rzq!@UYhKCgBKuj>r|}klidUiX0;P7;kM|u{!zh>PO}GhrW+@LQ$^%*h z2MPpDD2|W|L?iqpS0!JLT&=vhto**1BLl(|0xMz|W%Bleyx;o!`@?s~Z&4CttCMp| zNUHpTEE#3OFu2zq??-L4nQHJDQPHAGW52(mhQ4o0CrizRIa@tstJQ^aSzhiwhIPRr zbGR=DO+`kpXRi38*?~J(dEVq6?!Q3h^jJ?x{fsX%56}B~GbIF_)G>ry!Y7t&fo)nDf>Z{jQ`8%&U>49#{q$4x`?~qfH}I)pPd1My-~agGdyDT+ z{qQIMi#Ptie8;ye*e%se*_sMF-qebqA!-MCBE9~({-m$REq#5{?U_c&Crxlk>Iev2 zq!2&@wa`oE`+jfcTRs7rmfg57Pd+v0Xj2Qkr!`XIg4NURd^cZ~uZ^+8NmVQOW+D`I zYX`hYj>n|A%nCs?V~Q3f$)a0Og36f0DHSEGSfG~G?*koJ3b`PvK}b+86$ywe6^39C zb>Wy#v|xfBDTF&(J-zWFG9ZO+`RHQeiH%YNbZ%Qp0a%zxCqBK6)&F-+jmpdj5sOmH zE<_h-MeUkH7K2bgG;BkJ7xje3xMv)Aa78T-!ZI9!m4Ox|898a4vSa?F+yqIiDOE2} zjchPTs1Z^_Ct6?(NYIfpK#jFh#6nr90tzq_R8p-PDr{J7QX|eR<0yl3iSMkRqkg`L zz59Ba13UhftWG;#8iDl_z$gd^>HvX6D@~y04y`EC;uK*Kv00{SJK4u{AT_M-;o^F1 zM3lOb9S{b!AhP9mwhNt3hr=rFubwbtW;ZVO8PK~-MQ3i?V|agY(?ElHo-BwCf)CuI zwc$(VXU?%dhxQ8+#(Tei|L^Qm+qO?(E_1n;m;au_Nx(GHwtjHwwv^?uRL~#kZADnyNSK3-&yjQ?x zSpjNlGAz9tP$t+$0mo+GZ9Z}m!`F)?4q2weOV4x8(ac1@|v)BFPdRtOp zb7qvCGIphE9Fr%B#$am-qZI-gsRe^dIFZ#cCzuJSqHCqOa&P`zb*DPT2yx!VESj*o?ch2fRYXW| zKv*K8I(E5z#A9sru>Pr6_9&h-v~zWo)PZs>cYsQ&Y)5#)>%fmxrE0ykqC}B4wWW2L zbOvaUh(zp*v8p0Oq9KT7FPo6Xhem5G$1s+nc4Q$IMF106n)i5* ztHFrLJR5i<992krp-T&58;krlk^YI>fiH^;M%$t*6y~S&0hz2wqxschUe_my#pcuZqnu;8`vy(bfP7TJOMB5)$1aD znboR<$2ht!pbYK`-|oDi%Hc-2%H*<{9r80}{~W=yry69nP;O0%sg?3R5xSY$4C(j` zVG?368m_^wZ}yG_dnvn9@~Q}Qy@54Xu(nV z0+r^Xtx+Qg+x`%kz2vjFk2!OnZ{?HA(eHrUX3D$q0&ailFa(>`@L={5sC?$P*VV6M z?dK=|a`HksJgPaCQA~$rVytABwI36I6gr`;4|^ZzCm+n2|6K8(T>P75x{HM2!F#PA z3R+n#LuEIhU$)B5n2`{zK6&f09%Jn@hz(>m*HdUsto`+;?2;PX*;?&FWjnlU$Xpaz zt8`OZam)4gczoB|PqcUPQ0^%Jg1V&Fm{U~~^geK}{PVf+Hb4F8U6$M2+X0XrY+qW4 zO#?pKXqi>$a@Y-06B?N^_ylA)W!Qt#x0Xm?U&rphv$uu6%){ah@D7wMUh(-l3ccF? z^0$_59DwgzB_yuRzb^?|F26l;`?W{SwxzvJ>}8Oa>8kuhkUTRlW4Fe^y)73D0=cg( z1{~2hk4}GPzZaoxXBNH#pR- z8C{kO72F^?v?cWSwX@~dKW^2o$3-MQi$2ZTRKE(nX3_=|0hxQ83JklXHKjp@iG{@i zMdMUg+llVB$K&O$mR3}@T5P5{8&5s$ho{5y*2SC|6SLtIKx@>*Ub zE35Jbx1Sqp2UDneZd(qoVg$tq*G%JC`25)4>Cq7~(A$09q7iJtJ)(FZ@6J0)`|n%p zznNd-vauEy`BEKxoR~+~(Gcc2wml~M8DwH?PLK!y=y#u}NsxPEpMedrI3NH>I+r33 zBnB#BqGiI@9$D&yS^N`Az$Q~S4ykP%&oN`+E81XOFT~jE8IXApfKpu~ZIEueU0RgS zA*C{7lrrXM9_^n zi?TVYrm)b)IzBKnI-ekY4%Z_n`z-G*23i>OZZ8)Li`_qQ*3=8~Eb>VTfgn-kf>@A2 z2oT{aq?8X>frXwXMZ~cpF@YI~SkO>ZYrCAa3u2~J>@=kS*#yx2B1Blm74@|HV4Yit zOPi+hDz}eT3hKxd0JuUIHs#SYIm1%0L=9+LQEb5NOoo+4q6uUyNPr&bOQ~X$NQ$Z6 zdT&g*kD;hLYOTXaS-=ED=Woa`9aB&-`pk`YN2(@S8o>%EUhdN>DImc7Mrp9dkOaVP zT4WQzfGl7E09f{~rU$lCET(C>ugr%@A|TFbt&+mM>^?z_?9gOh0}@kOhMu06ym*d(*eV@QKwuPRsCBZ7Jf(4;iPs@p^6i?= z_SA;Sd0<)-cuRE|#~q9eQ^s)-L4rt{G-i7I#Xesyl+nqvD^6%-!r_v;ls_tZVSMh$ zg`_NWz?<$+KU*hU15p)~RjN`1#h262wutp*#u|0@s{bPS(JQO{3fjuA$}FYh8*nW} z=EgDSJZ2qAZ;}cm^N8*PF5(5O7$E?Pdd#bndjpzhcoeEc(Jd-#QoIFmB zji;$oew%c>xm@F0pS;c6pRk6tq}^R}Qi=9S)^nr3;_@PO>(~pg_Fk-Mt7>R&-kYgS zkJmw0&C>m`{UcTYL|p*^f(T<-5`k!l8tnaM=1m@4mOo!#YTdudeIe!=%FlahV`*Mx zT3oMeiW6dxxp>Bbp|18>A}h!2z-It?AgIGm}=R-8p+=YqLmQX4?1iprJ+GwEpYoWp0p zw)<&n+tF3enXnUF>bh=JZn5^R0DDNJ7)V>REEFPPnL~r%fP@erL>p$TN>Emk1_opU z2pN<^DqCZcy1p%AbZK-h5XY}9R_Kr*Nf_ri#wH0_=1&9$%W z*JtxdvD8?{BD?*#I_v&9D{rzj>^s=|R3$N+*$5)wiH7Xe;=v2lIvF4}wzdJTs% zAp#{9l%gpXa%koo_Aipp$>0`gcwS5-n808#<|T}>k~mr@>qv=SXO?ZQ+PJ4_-UGb? zTz80tvh2_hT0Z+?|DLBu=-JP8yh536cBH4*9Due2YDymXL&vu>z56;FY?MX!e zB1NQu+QI}hCpubRYmA znTk!VjLcNO>-TmPMR@)q*nHpEXKwHL%RWBf^y*9kmxVgWDx^W`${_@Es@%3X_pNH%`-1t1H{qXe9uKTimClG5pe;s**blsBEkCf|`qBEAPCovlF#p$U zvsvrn)jB{|HAHo^z_96{>d6P#31C7fBP>ofAz1=9JGgg|6VxkQNPk#PEpRv%~v;Ybf~BCm3Ak8l6+teI=#S5O(^V)v=Bc^WwD-MFFP(5qJp9zZH1EjTd8iziCi z3W4zXQXk1*79d%U96V%}K?uBsMk`H+{p^G)xU6D_-Q9ZPSAc+gjP+tcxC{FA3`FWz6D z^sg~g4P7w-%oslQK3&tzG}HL`JTwkoobSn*VxOsL@8@&&bo(8%%=~0zE}g-1y?xu> zXnN^MXK5xtz-*@u{Bx>nN_dgDp`x;fwam}nE~lD3EGtq&8T5(bV4|6qfK_A zyCMbRF&O}Zi0w>Ch*ZqbX!WPkH24L)#v~0_U{GZll_et>utU7ER9;Nih8_?QI8t3m zVM{EA#lA(PReL`95AGbADki0?obTgrtbaY=hv$<=>OzTTqz)1q2~H)FmlJ#*CW%ov zSRZd)aqP#0b=SDy#ET;)<~G&G23si}5g9OSUA&WfF!u@R7Wgv$iglVgVSBO);B7zf1i7?d6Y0^6J;G7ljVNU2MfCY|{D$;O~r3akD zC`N}Ky^wNMT_CP+y!&>0`zMZp1mp}E1}BfMmdOcN`Aj`8JM7y24CUb1#zk#z3`Ofi ztKWWnj%RJ57Qz5z?@M)9D{8*kU*roVl{fmB5dQO|)mpF#0=n z_dmG0iZzdznOPpWy+u@+&R@1(f8%)9hjmWGMjlochSQf078_iGA6`z8bmIpmUrhMa z(sc&Xc2Z*{Rtd|F0?`I4^iv0AEQ{Ab!}0yWk#rwLFNPfXiqgvp?=cwN*<540maqLi*-~7qCeAu6ld(qDp zryGey1toQvf6NnnA3nAnY~hVBh8^&Ngb3PLu*!o=?Gyc8`7y06?oVmuV~hBc?S;@R zX`gf3rWI;VIKu0owlaUPRr}TBjg?n8P%EtB5Kjg>QTJR=FA$ z20%;uDzs?~y}1_dhDfn_Eyer*bgw~N>dZaM_tC=)M?hlm-AGTY zyQy#tysd4k6A2Bf1=}C5#N`xY8DoH~uH`+#`3dn8Z0?smA9UEyE0OeY?f@MnRKgN+&&^IiL1 z0uf>$gyZ>!OaXV`lx=4ngNM(&Jljz&LVedROt@QEnPozUeH^c1+y7+#g|mDX-<`eN zw3MPuVVP=(LLuP~&dP>2Bn1xv8X`AGgDG)?AP!w~Tk#r1pNd=*1 zu;Nw?eAS3ze&~X699JEY!nF$)#fkvqEI^?O4J9I4b*QvNS0Gp{8<)t5%A2cJAUXSY3*!GOYz*q9gW21#w(vXRQNpqYRksYdmf|FPfhe#kGiKreC z8YlJMFAwvZdFPn`47R>zYuYAzwsV8G%u1O>km>-_k!iEC1WI)9Uo!jL3*i@kDi&>9 ziE$Ox8vX0Ee?_-)S!b`CXX#vYifto_2Hj(Td0^Oerz#i&6op1or86DBJKSGu(@LN+4CyxLibrNkadeIA+4WeqInqOblnq>> zN=Rs?(WEX2VaNt1rXyR5%T{2gfFML3!I2OQh-GMx21Eb=0wc@>Gg1{#4i-t!?U;%K zk$@#y+DZz-(ZNPxgK=m;#m@U>LH7Q}^m#w+nS$=hBXX*;o=5ro!Rs@<_Ovx_#MXJ^ zaL*Jq>evbR(yQSHk3j?@1`*(>p+aaSSmdU$7QN!yj|3E%Sxz-%7^$W%w`j2k3?^_8 z=`=GiEyH?Gn<>ebG=+$|(q|ZF2%8M1Hu*4*`5+dP00LN6`ZOPG^OY6>#}IE*EEI7D z&eCkOL}4&f%`}eSu9>#Rzyv|j(yY1bg$$1{!I8CR6aB~^LwF!F0VWmYE>0>>IP&yK z#IRHcTz{75LiSm9e$Vvo1=6=C!2?yf1XchQDS#2SFl;3tf!R;gyvlPcW^C%58GXOQ zRjEK#!a`&PO5=Wf`49DhbMh*DuzR2GD8#ZB=%Wk<8;8M4eU{?y3$;d^d2sM&)TMs8 zLj(-2Ud;2MYit~HYBh&@$Vui~kE=(B(6K41%Bj0*M@1&;X*AAfzrTHd-E>#;*iu=B z{hY~gtM>)xsFOFe5s56QB8`Z1ep1``re=V4lVrj7jmnSrPNssEq&0qpB0^#a@--2V zb|K`WNwQ&=%jch*-~8>en|x$Cg)El`!5NX(z%K_P53@Lee#A&mS#SwA&wAQAx%J+n zJjnCAGo0cBVyuS0w*INp-_Q07um1noVwTIyUWM0n97r^p(>3tC}?2CFo7y%0!v&2Iy@x>no@)lIOJm)#fwQow0Joc zAWLSM^FXN>u>uq7Lm6apol7ugL}sO&ZF;QUO;T&sc@S)~_4#|RSaBos)l9SWo zt>TgJLcT8P@@-oD{uAbG%9x9e!G!<>a@XT|{q_79++Y5+=pS@#=4G!PcU%z6yjZ0Q zvs=UYthpcSOB>F68^Vs>or>ldIoQszx(@an(WC@*aroCVHNyhEVHooic2QRn@(&TPeLk4-f z1R-eQ0;m?D#v$S(09~CgEClFgT8H=ZaOLZmXn2`U+rU(C(cD!E7hc3pot7fX@9s4( zJvTOXV+-zgip%`vsRbF#N?s#YgEEQPN8L?3*sxycStYAb5W5p@#QYxQy|ZW52VA`l zx&CHc;@foQS6Ki4&-+FH)i>|YzqtPL`Onysb}@0pWFV!}U$D)**cr@Y-Y@dzyenGL z%ag^k$9@)hZM*j8`1><{ckR>UW-q`@CdVIte1GXwf;YYq$HD#}`EtdbOI*#E*3P*g5`jl4p+geZ==4^ZqY4iWa@$c=5R9iS1>imwCpvP zN4AyJSzB3qsv-d#RtziDwy2FHC=me`Z8#37PYY*X+u%ZH9tf(pKv{-&)=Jwg~@HbHE<5u3kMOO=4+< zs^ZcW{RgBm)*wjm^{LdqtV(#C;D=U%nj>rY5#F#i&?{9eE+KTiEEAA==&-^n6XHq zZ%cVjRsV>Z+=83&;QfW$Od98izdGNI?$`!b1QSF$Q4HsMUkqWP5l^ld>qFZO7)fB! zD6246de8GQbLV@8vu~7-Ju5n5ao$WyT@6v&L26=ABR}Y#*&3g#W|D)g00D@z#maOd zB$aFOE7gw4Lr#;W;X>^6tWuG)jaW-_!6SF{GynEj*;(AV;WN~Tj5h%xl!>$yd(To| z?!P$l&*VCKzrB<52FiV_5E9s>ApsZMqTz0vdam|u#>v*L!?lwSw0=^=6>x#5>o`*9 zjc3@bj%~%VmktZ4P%k z!aw4K{mG}xe+*z);K{wtymj620%arN5oPgsGcz%SrARbpXP7zt%!+??%<-Y+ZdkUr z!w7Hs=G4utADw>+torZ|zav6;*GPxwq^NiI)xHyXQSM2$4FEwI1qU>0ak?W4J4McC zHY;}ezOBT|x_C!+&ur8vD@WZrZ9F=&T@3N|imoDuKC>=swNp`lV)Sx#VY9a>3Gf3x z58~QsVT&J7hPk{m_o0BEm+$0sY^BZkxVv*oAA9`!_wJ^TAKzx+iceo}#8;;dFq!SL zMa8Bib?517c4F)F#7FEqqOae&2uV9~M?4*oJe8DLeIWj<$gvVT^@Vat zT3ujZy++xLx^9q`r5&NoxjtzCQ$Vc0Wfrk=h_Q!aRc>vmK6J3?MaO83=`UhS;)3@_ zFn-R^pP3fJD-wM!q$fpGo0J3P#5?z}a=d}hsY8z}8c@g(UJkfA;xYaS48c^^V4)F? z*5;Pe30vw}|Anjn@J{FQ#{{Cl;$Rj41?_`Y9kt2KO8G*?-d)@7H4Z#}J>HtAdbv@% zZ|n%pfM#I##mydcytwWQFLBv_T;w<8Y0n@0bsW#;CVGAFAI&erBk_;z>4PTAmC>O-1cN7nJ3vK)w$i=V0eB|22bFIV@ONb= z{ZvTKPV3!{l?JB}OwSyG;)Iky8pMG>D4<}%+{;+bej~OfER#46tx18hinL`h;gP@n6Awkfz5bq&7&|!qi|zH zGT1@YmCz7ObbeSrHdVG&Fex{*Eztn7peuR_319|WB;*FA#*!r=L0d$s5DXzQ8R?M{ zjzuyQzn7XE9o1N)O^<4X|vq3Z^ zS+&Bl*m>Ok894xwv~0T+6N||*z(akXUp?Qs^;$Kbto7gS>t4DnWPyd{?lmoe4Sh|n z(ZsMyab`FAa#Pp_%mVrWZfda)ByE(-MI|Y-DA1)0mI9zQZcep3(ggOPk?GM^x~u1K z*la9&6w@4LEvQ2wlXDV@0CFVBIva=8=mK|8X_3%_L{^ZE zt}bC+)RvUA1xz_80Vese~SzrnT+=EwDqH4Os=eJkCf4s=I96{+;MEXsYN8PK6 z{2YSCu1+j3fC}NPKboE%n?xpaB^^Ra$tqUGVW+4Hg_+2Xj&88xI_MywLeaHcaLsk6 z4MHW_PYYs#$cCz_GZk!NU{vIy1`A9rz>@0OJi#M^wYWBUEyIagAjt}sVfD!?lop_* zL?JG?4bD!!D)_t!PsYU)DBxQ6!h{C}Q!Qbu-1WNoW7AllxRq^mFi?CoTDFo4-UwIK zp>?Hp2|u6@d~5nuE}f_)u9Ihbp^sxyqDpOnu(g@X$gh$vCr^4!T%21;?bWuSCZ0Gb z_gI$WJEl&>u|GrktQ$heAtCyXw3?;PJaZf!Kmixikl;;L2>8B!@!V%~&t?kr_Plke zjFZEpD58ag3>ES0eQ!6e&N?_mdE93=*0A=*ahp8lUCMiEH$-6SW^=fyQF=NDBICrQG|Gk7-~X2gmFG;>9nf zzz9-l2(!`^w_*~W0ta|P0TQ>15qxLu#&J)UGpKrtZO4*=$kOX`^Q&k1w|D-(>g00# z6knpUDAk>|f=!{Ra3obHN>7u!sy?jmzm(S`J99w+0*jf`Bl(<1FE0{WN}PUxM*b6o z#o2HO{8xADW%}hU=sYLS9t@Not(La?j;!7G5ANGSAM+Ofb{8H@;^7eqj4UZ)3ZNbl zQczkEY=f%hH|;KY=W&4<+uTLWyDT3Ym3 zIl%gOXFUd{NHyb6xS36RrA-|OzVz)o)Pg*1?4Xb8EuAe5dczHTuZAmAXm8gex%C|^ z$Q8C+1Z(d>o(fhd!xj)T3l&?$B8#b1u+%})A;*Qaj99#e_;yAQ#Z%6xt&q$ZsulS5tLHee)G+NCz#=rGM>rC6u6kSBTDuSVQfR0xZ`)W zm}w9%%8RnA?jwJle(+BW1+21_)soN)#0u5GK&`siYwq30Zhy3Yso$UOJ`Ll2H7S%zTPjS5KB z0Pm}YL^SW5O*PqPKSF?K$;Zwc>XW3t)0Q0A^>SKuj zBL>oev+2ezJ#MDq>qKh?ax?8oh)q-wta;~`<+s~%t9H6yFS(LIm{ewil3JOW zk!q}_m1-eHEr?ZwDm~ytMhNRaV-}=F3=s=b6roFeI@D^_EP2v=pk4INW!Ve_wey6^ zqkxbcm{Q}q!wkZp_VG_$2Nv{&Afhm?dltD5a@~F&PkY${*VeQ5*m=f}bQR6B?#H>V zH}gLI!I2I053Ebvf3DNzQ626w$m}>45|DwpCJ_S=2FjEa_;7YXt!VLS0ukr8Poi9h-o)nlZlcPidjRr4|LrORpFZrra^0?qABPAHJ|vD-Sl(}b(kOM zZ^l*G46KUD4XttHu(~QBJf=vRe<#_x;${@HzFiCR%lhh*cM+w`j<1b0Zvtoe!a@#*h*?0c=I zf1^$)B9)U9R%dI+154$F=K2c4=A%@2Y{cgC&n5oOkg2U?oay;=5PRyvw8d!AU7J}g z8eZVHyK|QSg!n%kNNQVP91Ax1E;=q{=;|e_8rrjV|X4A|Gxe|Z+1P5f7NCEqm|8Kz2Pho zt)l?B)`7`Pok3Ywq_5{IpY&h(CC1liH;!IqqKdg|^OB#A=jG>KyGEV#?@75i+M9Ba zoBwT-uI7L85Vw12txE>hxVICLd02jYU#dFQp~QKRiKmT(h*^vSI5~K2dl;DRJ{NAM zHAE6gYXRW!VfM{><&5<4Xx?Wg##TN8pPYV9tOI5{=6-MaY)HS#A*uefhaITP?94Gf z-N(iICg(@Ex;3NmapcR~s0Ro9dz|>>bLzE^N}gM?V+#BFd`|Rc&$S&*11Hm|y*r#f z?v>6nqaV#ZJ(;=l6WzPGGGRC4Q%IANDia_VqTuAtyCzQoj-rr7*m7KS_^GW~uW=t`L5B4jI&YBs&{>NEjea)z z#r$Ug{(t=(57{kD$cygDUh4w9!h#h2U#ckugjra}?YONH_{*S$6Jemxo>nITX@p~d zN&tbzHa4JF7G;7VIOlZ~&A{qldcZgykH%l?ufcmup!wrH@Q82Y>T%9K+VEO9?pp8# z9cYM~K;ihA)TAXZkO7y1&=PA_df&DoM}@n&N z*_e=H(1kAO7%sz>7b22RuOm@$Ey-YrCzVoT}S9ZXI zKGp~`LPY~AAl5s}eGDAOGDSWzzR);vA_-~`jmU!{0+Clht3uC_tx2opkYGl|pXZOL zy=(n^Pr%@4!SIaVJGB3994qLp;(FoDDy%ph+A!EBQ>G4>1N6|)O+fV!-5}Avepr}F z45mxX&U@v3(remWO%<&S-5LoOWIXTqx-L+PbqGfcb#SDRwUN{$6ND2)F*FpAfHdUB zWzF0U(wvH*0$A^B4AyKP;OkmCN5`b487>GJF^)cci@4|~*j2R$;XtF@o2IV*wCuIQ zK>^yy7?#4uM)!5i88K3RKSqvEl_2B}9!s_!EiJ7uLzbDKl;YTY6w<6BQ#<$a#jWgto&pe1nG3xR_5LmTy01g3l$vr4u?WX?SOt%A z-YP95zKVcKuhc`K$vGZfvoUa*kEOX<3#2epCWAKAQESSK%`vPJNm+wL+ypTl0u6AK zDFBtZNhCuh*;!R7GRz4cVA+(4g47U62@tHB-}I{sq0|Xk5v-|;+n18MLN2RMA}zIE z{9LlM^Kwm#$XpPC3Qg5T*tv1zEivI$P=}sq1)4$vDh_nW(1jlKe7s+L@siEa45l^8 z(w5~ai|LxnB3Yn{HcAo70ANs0CFodV5*zx5Rx`3fhgq-?8`6|zJ17GYwSMweYq-V0 zQnW3Q$~fbBf_u@g*~*?>%p7{mzupq9OS@ByIy{V*pTJ#CsnvuYU$-^S;WJX22_jNa z)gPfl7%f~W4C<_KdL|9lx+$^9=m4`tL ziJ~P`5%6-PGND85qr|n-I1*K=Vj~qm5tPg+I?PLMn+=o)mmus!>Ifckmmy=uFe+n2 z>pDQm*T4Jy`^{g!|K0CDR?~7@6%^K}XWFniHZ;J>?Aw3^D0SrARbs`7B~VeNAgIQG z2uvFubRoU?X`*a_z1n8?%>|IRSm4gRT>ynKmdD)WjJVn=Erewp=w;7duj=^ zbw6Xyc`J3(NqVTLvNVy!YXS`eLISDt39z`In%HjV$wIwr?8Tyv`lJko#N=4(OpMC0 zZI3ym?yVE*iYwasK$WZOI|b}*xsdPDY*G2z65E37W*KTR%cCBuu|BqDbyE2_f(1Oi zDpNzLSeiT`-FSxfBn2%o)#wl+;!9D0 zekiXk$05vQVg{T`)wFfaw(%L=Esz3SiUdABp0^hqa-nvG*?TjmhG#Kh6uQuXFQp9$ zWTZ%ii_s~+Bt9g6q4=9*|HF^g|Dac|9I7&H^-G!JVy&7UA2QeP^*OuG(=@N`)*vas z&^Sg(Iu@6lK0rCZXac3CNC1H`=NLi>8lpozp6diEsRM=PTZ6A>_~RV>RQ|r%eA2$x zM@}{ag5(q#ItaOAfTa$KW;*n?}EuMI8ft!1)cG6f92sIhD zkrx?Zm%yw02i=nObVgTrb}Mcb(`M8-Q#fqCkRv|Sr$E`?OCCEwUT89$#I?|q>^=&8 z$UCx-&2(fUdO`@Aea<(2mK^9v*V`YgynT9lE+QxhKxdXDFll{K?GW(d>gT8-`*_E% z6C0k=WuJ#8V;zm?sTJdAjnUH4a+ecND77U&+L^w=f1ztiSjcK`Ez(iKoKNhAdz+j$$Nqpq$VW7V1O%@-HtB)y z>m0ZE{rx$w;IJze*A~HO-pfP+c>8_gX#>T%jO@h(!D#e@rh;B6wtURb(}&3#D}3@1)(i9rEM2e zSn*gRw76*RvQCJrAe90mtb%&hF*p@7?vb#-eKB1m6gW-^AGyXF=)@I!8N~`Kb%=yoix)K@gsIF0>wpP})=_1?uW)0#dQ1y}ic_

#>LNMZzE^~6|+smkQD$s7k15i>H1QT~XQMVC4G38rE|1JlJz z_=$*E1aQ@kjx%8oW||VK2qQ4rV&8-jm@Fh zG@3advxJ8SQMYxkd5zBjrwI9*Vg)l{7zZJLWVX2H&uh6ZS+Mwr@y*ZI(^h3 zC5cc}8{|}aR{nkt{-I_cr{~wsoY@OPXmP(6O(ZwV$8D{l=n8@W0SSRpLRA!|4oo9< z;A(Usoml48u-wWsut8mR_79%(KrMHR@P## zQ`2=vL%o}Pr8?HzN3X-3Nz4v?NhDEH11GAfkC4wLj$vMpGJkVkoq7Bl@+} z7Dt&T(71E!)!iGSL79LLs|Uo2jbn_jkve8o>J*~^K?Z0%Nj^GF+EwaUpPi8=5945< zw<9$9D(|mL{&l?d%X<0DHx8?V*`mb_&+{iAIuuhp@a;}Wz^<;f@{%xjNUUB74GVJ zYu`2)fp4bG&Vj4WOMpyu17hcTRR+WZUZB~EEod}VJtAsj`5p? z<{vPAf8F6cK>JGga*Gj@)K>#ZurORIK%6|tu|e)*f3!SOx^yb3sqXC@5Mxp;;X?tG zfG$4k*1U)E)u*zd{$*B2hsPt_dk#!c^ z>hbp=`6PXqfADm%wnO^5tsV45Wsw@nTl2KW;bvGYL*<4QeUCgISC;l~q^Qcv$n=+E zr@q~LxWeqZ@*{wSVfiCQ-lczk!mmw7y^pwW`{wc*uY{Rw2M~|@b}-sEuB9UEq`Dod z3X;oec8WmJTQq>IL3cG9%o0*>69J5CE;RyMrAU?F&UJNH+lxD3?ybEh1Vs0E+6Q01P&SoZgJ~ zBaRL}4gJ5o#;qDKQ3Bu_qb-_i0c`P zc@*(XkHSnA8-^3IuwI_8lftJI?A`Jz2b190-szAI&w5Y}U%kkw~(L?aL8lKa36v>6n>3xw6;s6o}N;Sr+hM< zovwre#j?Z$64JHe#Rm`eR<&BBgtSjmBheSTs}h)+9LWS$i`(m9*Z+^DDF3V5mjCj} ziR0qFOR@5Zg9wJxsmAvB!VZDhUrvix0je^OMztr)-8uzpqmjf|dEaCe+$sD+z1?-M zC$%Vtz0?)0rH!**(nQ65&gfh@Uujv5q$YqCoo9oZ8;gWtQ(P>?8$|S2<|rT9s6O>{ zfCp>Hq+rerBbC)ow21))VK5N}S`-%STjb1>-U2rukRvn%qAa2ssc=Co7NA+z>Mx&f zZVa6(FSo_ciyEws^nE@$m3>8NwZ3Vm0A+|j3tE^aGfznW^=vpbOVI!!9Kr~&MG?cX zz#xbsKXuk$Ko4bTBj( zSQG+`N8PPfsB(hKnF1I&0tCTOjJWh){I|aTf4994iv?oE&N@e=V!-sSS%*@25i0}| zm_QDU2*WbeYQY+jkbW5A#R-h^yQ5OHXbIdiP7^{TBs-2|7{HNDx6^`WZ@Exeo^8A{ z85t-eby1sw^dw_v6eb-TRUh^^I5$%-D^&V)W~4qsa0m{IoB*0!vOsSNiloVYB;Ggl zS}Xv#wKM7=69TM0sN9t`hV~unoCjvip)cL;-shcQZtnY#?Ene}LZZpG8db@g@0&Oi z!b&d-Y*>y@kMrSrr)WcUf2n2dw2G`MJs^e6$6m6II=(+_dG%c;MLkaMsy;A&YDA96 z8l9ydrBtT3ajdgl3N3jl#h}~xFhML(;vf$NdWf(k!DyycrEvzk=p=n@*<&2cb6Ao` zD&5uh`lD!Z?>Xm?*`L~t8aXFEMqT6P979!VI~{71Rn2l$EDtTqyoGP+ zrLJh{SAHeuA%zN{-LNWv-|}F>T=QcXt;i|anCYAC$;`8Uyx0l0xodM@g5 z7)46HjU#qqLMS@2B|EADtq2?9v6u^4;iw-k^6c|h6%!4=y|Ai(JgJcjwgVIx3Ed(% zq3K(`{oa24{P{!Jr(R6mdnoSGYr94|R*9InBP^{YM9x)V4ObK?lwji0G>lmeHA@_c zXi?JaI!8R43!t>D#cDAz7`7uU5*dSuZPVDwhdY&G{WP!FVtZ~B6Z1SRr$TT2=8qAZ z^}~L!%IEYVeot7W;a~-2kCMY-NRM;63afMvyHr1!pWbWvo|30lHsO$o3Wt+VRq+^& z2!!IMj1`k(Csm|{qNOEI!oo<)aAilKm+pxTvfv92ka7h-r)qZFI2UjP z0;E(lfLom?FpR?3y#H$1@2O8k7G$`G+(g&Cn_A&W+p%0nEklh;BQR_hm#}D6L1Zyt zQIO!!)oeH&h-x-9*W0jbZ?U~C*&cfnF5MoqqvE!8XGOof@AC=&*ykS2?=S41{=BZn z##qj>LoO_1ldj{N#^FF23{q*~rCoi4P2|8$@Q#iZ-6fhG5`(zOs7DK^LDU0Ej8UAV zZ!i0KJ(HCXTjYtk06+vyxI64oo+6|*TT4NlXAcc}q zPvc7M8X~wY6aY2^!PYdW$olkM4olW7cLP`E_`cuQlUHP!+{bbxa12kZDDq|C)tLw~!rLqf$BJ~H5jTBRU1QAR^q zUKw5(osN(hD}O0p$x{hgwLdSe_&ygBtp?WZb2memE_r9Lg^k`tba=cEF<5>D6IaIcU9RkRRhjPVC6 zdHP;iItM*-_V(TCoWM#7P(*P0`|)wV|MYmC*_^pgqZWE0G=pm4=y@IHXy{Amum^8O zbxtWGNqv}q7*6}2xPSh^-AD9SJIvx5+Bosh=(>5oT%u3YtPnMKUbc=FCB14RhHt^5 z3?-?o)fWDnssD$;E@N0DY59ViJg{@ca53Z_$;6mS7=Y>t@Fqv>*(4%B?f~JS zg65{CTVB_8e=@FY&xx(;B(Jm@?$A6Es2omc_Gi!asI@fW@Bg%3`2LM~`K5hrX9k~6 zI{6q3xm9HM#2&2DYp2@*PoP#)+bQn81dmzaBI_FI>obK1cUcgu^}MC*T0hW2|HI|q zANaxNe)csqnlxN*)O=tLJkulK(~rCwH!&@%l0q}sf1i7y>2}2py+&HkrEy*#b3Lch zxaINpzx>WC>l|L+ow|LKq`muX{qy{t&-mF?j>WahM6v_p{^29e2Sa)^&Yp|FgWjWk zkK;+ja-JVyJFf9?9c$ehh|)kVMh%X6a(~R;63L-HSL2DYuk3f|=Op)4zg^=S@B!;N z8OQpr>dj9GOl5apKi-iZ@Ld%XPMxt@L-a;)Nl+4N3EdpgT0SA+irvcOJfExaNY*)+ za7n(NzN)7!$PZ-s$nti_cu0upcyUZY>gPLXb(VJJJ>jHg>B{b0~cVQ5kU2w!pG( zC!l$hpUXeuQeGIw%JSvTP;T-P(l+RTR7Q9|q{VJr_Th&`uRTh_6!WqFq_$bMQ6Gb5 zG!2tTcGH+X2Uotic?a$KC+qQ_o8ZY**$7`>ZEp<@z?cj?j4Mn{wALpBFp`~E%WD{> zzD-{oTizbK{Fj~B!;1&K&SqDTfk_(6#PLF}JL_S2>+$Hm_K?R1gBel>&CP^X62G}%Z z6n3nZz`KlqiVR>3<-{{y7z;~BBpJ|6*P>&SuI-2Pnmzsi`qA;!AO#Fq`Q%m2usGj)mepy<}`k2r3&+ zQ=poOP!xb*cT)nE4Rr)uv1jF@%2d$@1)sQArEiyiy6(%#-|olmbvTXdBg_2E-tZc& z!J&_>i(u_nKy$C#psV2sdl))dtR>)PTtFK{rSInxZsq%Sr%Nxw8a!uA1~R*wcG&a1 zwXQYAy=FVCbE7`~WkM(P-pZ64@I+cL&km|v;bC?y0f!Kx*8Loj*2Oqi!naM=U7|rL zJ~3OMI9Mq;@whgjc%Pv^+aIa^?j1+?l-QlULL53{rHW zw|n)ORB!WGnH=A8If(8HzU0!^>v4VIiDs?5N6r~Ly7tu2;UFUi-ka+X&`i%4kJs$l zGjVNXJp^;eyvyJ$TpP7p6Zp95&8o9takO&kdaMI&JAM3b`dpcMEjFXWh1vp3&n1G) zDf?OCITa;MOpx(IeYa5OQcPMWP$-bH%z=A{FNsA3AL`Ze z=qg55sWH41j83R3$*HN((w?6`PT$`%_Ey>`4j~+nSaPjwK-OcaCXO(U(GbCf5|6P9 zYrT$@73fwTHG(QxrCUImdO(f>ASBKPKo!bbaj|iaCdV~uPM(=2Z_R&g{wFf_=`rLiVQ{1aL+Xk>96k>$~Q56&zM6D*%7daOW($M(~ z?iRM!i;72MQ73cwhq>Mw(K)VXvG!AWlJy{P+SnJ4Nn6KBolUoy*Y=+~?9mB&tBRhjD(mp?q?w!8& z3!~<0+otOmIFWlPpwer+MMbGUBZcnTmQI9_F$BdBWJ)I1dUPF*wc@mwC4OSyvY~l= zb3T;4;Jaca#oegEvq0a?e!s=H(U=z~CNuOi;`}KXE z_jpK*p&hzHjcllI>FV!c*437C?46VYFH%qrpv;zP(gBTfCSBj;ZR)kQlI!nF{oTJ+ ze-GxLKOoNo-xaI=9oBRi?HEo{l6CfB@S{Bx?)-P|UNq{k{9A?xCO|`I?Pf|LOThq`(OR66Qy>StS~=_b;3W0a(tv`!6RQ7pApiDYbz7~|k*?}bsq0WJTMp)q_Wg^+oe5Ru$USTF zL#O%DHQNumH|my1q&V%xX}~WL0Z#`iu^fo1Q$+gCANaaBoNvenk|^2`JeekR+0gpG zA9-Bt(7T>X)vpgk{g-p+Gp|pgyW|Yg0zpEMVr5U@myqQjzVYarb)86VIT)#fTGSxLN$u1;jx*xK zJM}aQm9y=378_MS8JH@=5q792_Q+leghXnD5tihg$J2l*rJrlvCIX+)Gk zo$K9+FPrDV2C=G&I z+iB?Y6h~c|o{#PuQZf&nhy5|#`@_HUr$0a8zxk(6`n`OY{<34I%;u;JikJ{6*8XxAAIEoMTZLZQ2Rr2B#s*20;IP$hCq6AOyfFOpB z3lOS+dX?6ead8Y@#ms#`DUdKAW(2I|K%QV59bp|+Pbk?`$4#sj2-}zaIllMdy?0kj z#GxyX+Xp_@v0SJaz;RM5fIIqDCI1&K%wj6REn5|vBCC4Wwi{}3V4R^bAG^c<={is2 z4^F+-{nFannHD83^mihZ;ksfOdbU?~M6S(-$209ORosH%9ffBb%d#B2&Q#q+!uqpry>oNH{+4F{X!xn&L@5TQ&J zy*%0kROHv*OYp*mRwOrSC*3f34x_Lasp0Mwkny32T+W^$LXd-4f_z3#pF1u>}?Q2ANmE$zegk=ll zfTeNmWp7KU@kXPzywG)Km};3CgBR03dE)hCA#a+m=Zj4fEXQVRJM?Mi=wO_xhSXtK z2~^(>h!)z{^Zdt`{L|g5z58KVhovLdIC8COs#p{^Ss_t7%ejMn6VFvGW{VL9E1DVM zCM<%LS-4f;6Cm)U?e>U~R6`xs+|#gh<$x5YQ4%37LN#Z1r@K;lhxKE#eiKK7%JTCr zdYZ@Rwfui`6#wSc{#XApl~=$o?a#J$&qRrU277OA6t`V3n}%>MF&xj+tfXX^v>u+m z2tkF>7+hC?djU#=NHz^duaKFfwJ=WWZhIRXGthve!7#8YHd{H=4@O%SCZMw$iyZAl zs}=`q4MNM(wGCB>S`$Cspu7t0LeHJ6OuepzPG%w}`cd-2{f{TcQ9R$Lc}~5OOu}SR zjWJW3pZRG}d`if@`;nFAKmj8YepD9Q}kV05p zpD72F5IK25NeG0ZAZ48TrH1bsF3J_s6{D@x?#&YcxG00Z4PZDjTWg*AMq+-yQqI zxuX#~M&0j=1cJ80sh$IZbCX|DHy{VMo?=>KN$Q` zjfE+C^py4cA`bR`Kivyq*w?UL)|b3Les92ndv}N zKii&Km9|jpV|6>)KO2bFpZ=u7+s1#3_V14H@n1c^=c!|Ta4VOw?#`|IhriPcpJ!>FvCXr`14YXu2!<)oAp_i_h|Lv!Xx!%$VBknMgMTjBrw3 z(~AyRsnph>xS4+|qOktibr$Q!?g2iLdh9%{qsOV`g!+ix<1cYI8Cxt?wdFL;K}fI#bL+fKL8Xi1dA%T%cW zYoKAz9aX-CM&}VI7zOsFa><|sZV{pr7^ZniXi0hBSKj{Y%=OQYX7fZ@8(XDR0j=nv zJ-W|GgAMdMAzl&UXQ0g~qbXJZ`Ts_Q4slIGzE{BwY1u(wfUV zYfSB);(PvR%Fhp#A$zmI7-Z8MLD-QYK@n4 zg}Hc{ffBNZHW?i0(^t^?6}GG{55zDO_zE+{3IQ&AU?okuCQU%v6-3HeoCex;Dcm}| zgkBeXrn$%YxCpA=pfl|Pme|_Mr?I%OsfQ?Hv zR_{H1UpMrV|5MXdZpE}xQ}47J+KK9%;dXN0+_&@E9i$eo+2;;10${RXO;j|<9K469 z@TVz>1%?2M#8%WnwNvEOE6!OsBR`-qeu)NdPWM_LA82wv-Ydt z-`GFRgCx=uV}owMG>NvO#R+|VVf&T;ruNwg68nn=eigM}6hk=x!+al9WQ+GN~p)yjSym3ds}yxz3* zU)lfkYqvGV3nl32c!AcP5}mv6l(nF0y*K~li0Sa1h6nB!l@;uZ%(_&%T32&PrM5iN zU_F~NGQyM`B~?OXkQS~}rgb2AjopzF<3VOMaQpdnGz;mac3TT!Wm+jFo=8!84)^pRTRkSuI|?OkpWWXbW@Z5^z(Ggd(sZ0I?(?hD#to#$uzWzpl4W=fNWCA`5-b zM%Ck0x7QV@zii%yy&x5l>QbwzOPj;bb^JoG^o!S^Jtx|^L4`zx`xavRabJV9#Y#mpYMxTa>w#mC1dR~Z<^*7DC{L)m0TXt1vi%W+~|uT8CEUlF3Mg1R7dqrjW#hO4MaY$b0oW{R&Wk z)0>OZweOFUW}hJq!%fZYX4cU`fr>b3sHX^3=MrThTwv5|p}+`DFIc>a`q%?lD#0iu z5mu<$C~wKOa0#z2tt|^6ZeuB*^6T>5>N{GO+dEI!Kmt>iDu^ni0+hl8E?$g=qCv_; z{pr|$wqAR@IeVNa*|@vW;Vl?fDu5DVkT9&G1y+t1afcp7XV(2TG02D-@eXnmz$l>` zh(f{Cy*|S@h5LnGnr#;?@p=6)oCCi$J4J6w&j44;w>!r;z@x2krZ4Hky2!Z4(6iq+ zV0qI+?<@Cp>HT^2{Zi?-&X28A{S)(2@qq~o#d-+P&UGLm%8Jg(<0`60+Ny21$EZo!&0>h#N6x@o_(XNC0^6|##MPfT@Jkc}M+WnF&z@P0#cqKp$`M?~2pZEE=&)putU2re{GQGX*a6cFAW^XT@; zc5y%U|GYoCcz1H~8hP?;-nRML8mD~YD{Pg>bJ`*nt6oJX)C#Hdip2*`Ihq&}x9IgwPP0hb4p#5_!Vl5U^i9x%7N|8KC)s2?5 z7i<9}(O{#HP*4a;ku2hae50@AJ-XYFYCs7dw2pl$v)Y&DC{n>_u6O1Sf0O@bPZt*u z(Tr!E(0BFO;$tg>ao95Ybc@pfnnqIQG=K#q3P$5&Ljbj{T5SDc_S$lj{Cq#efBN40 z+q<)wrJyNDF1ewhyR{pcohk6*N7DB+3Yd{7AI~F|ogBZKpT9r&Yj6MQ-#f@Tzg3*e z5~tEkCN$uzt;g>#yvI7}`opFC7Zst2r@qfsM3faht{1L`hjBToP$SL>Bg^zZKZ`j+Q#+qP9uP zTAo-(SC3xS?#8+iADg3lDp*GGObAAx=$dS5Yr`5tE3B@>34Dk+5$hA;vZ#`uEG9|JQecv%O}W2;zbw1BRQRD+dC^0<&%K(FhY*v&Q6m<@yjK6GB2BNWqi= zv3lAe*t#lnk$waLS5g&dGQzUsY>FVKX>!S<{nsbp`KKMLkMZ0kw5|He$Yebop+4Kw z;VOaSN}LSi(3Lz^6^)y@;z8ou>^Jb29VieJMAbsj0Mg|a05D`60cewZ7pKxOBR!%6 zLIpupb%L}!iz<;ZBe-g)W8+eF-V8Fl39FlMPK2INlWBpHQ8}hEsaw+_)JswS7hkz4 z)5nS$ARx>d6hmD0+gt>AHP(M=vve2u2`bRb?X=cYS?+sAaS;4$I>iq!98uT&DVD@gtd}NLY#rN)qLfy@+MTz(i(w$t`8;p;&@70LN-A zw3T5Th6JMmT0)%|8WV_vIyr6iHxLk>rWyt&2}A%0sn%LV zm8nG?mMZ4TedxBy(Rq}}t_kjo>2&vrqjCqGdc3ghgg)-Iq#iR6(;O6Xs40>yZDho* zMn$5c0Zl864!Om+c~^N-1HM!dnN6(N3^|}hkRoNmZ7dWw9hDa~bh#st!G2;WXoFZI zcR|}>fLW>@tsdPJaaltMH)+C5_%Q4laBgCI;B`E{Crz_Yg}-Hftlq1@rMJS1ofC3J zWcdKP^5UnSvo(p%07Ybp6O2KiaO;0OIwY|`3YdykClQVHHstB;5lJah0`dA2xPy~DPJ$-k#=V+J2BwgCAkX~!0z3=|pDt!A~dH-f^yH9_2 zW50Ozwz;``90#$pr!QSS3+&FSBM?<4^ByWZ4u-R|Y+PeOaj73Du#2Vn$%U@3g73^rs0Mu>5#Ju^XwyiZEn_G11 zaI1X$?MjWi8ik2&nAdFj)q2=}I)4a%cYXGH6ncTU_qf5ye{uciXXEUTk52Ay)xA-s z#ya&fPmQmmy`eLvBAUrR`ed80@ZT<4(P&{98*_B=dG)etnJQ93T-f`>QO!Bd?y-AY zt=*oHA#JUBaj&-8j*TgqH(d_$jeQoXbG z+4e<_hie1{{`2$)Y$C{U9rP^p1dD~kZ(fxr!6B|EKB}`&!fjabE9*+um+x=KnTm~d zVt}}NK;$2r(tm}G?f=-v>+AVkP0n)EVj5o|8+*e?M%LySdnlnL28jl44Fz57sS*Ox zc6>IyDz_?znw0>Q#6F&H7ZDpEP?Ea*Fcs>85lhxqP7-puoT~-dD?owwGLN7>TnA9YSYsV=b_7(Wn#DkPKJ~avblfhXBnpgX*kap-lI! zYK~8pI8U?8v~;(&E*BqNe5eS&t_nviDrI(S`02a-T++oz04jHRT$M&_h00AXl%LlL_MjqfX;%*_gWxH6D3IPSV z!Ec}B>l4rt2ReUA@7!oNc+nr*e`Z-yRtSrNhv3-d#ycyr^_0Kg46^CxWJC>Yrv-CP zCbZvxk*9*o(3PA@75Dd&M5I`Pp$W-U8yif*_iQ*uNpmKP=lHJRyKLf^SZOHlw0y%3 z{a0?D=Dv5OHOj;H0-?)Dwu1Sq^*j>XSU?@N*AiLF=f^e7IzSj|S6Lnv{Y@aGsteOh zj`l_d$e`TAIP_k-oc0>AZpADew=koWGmHKhUlr2YFI$rqd-Xyz7g9(Q)A4{v^*GlQ z{Z%=eH58DgA&Q!k6lE1#W}ujRV$38BxVU!p?R7m{CeNd94OG?7SU);`9RzPc0plT9CY zoNax4E1YOL*7n*HeJuU-%uFH5^ICl`Mz*|CkL_D&0tRY>WgyU~d_ zuA>&1Gq^*c!e}R$XpLT!Vlu96!e`}K2u@H?NcC*Mr! zHp*+2vjP*>n}zU#tiV9WrM^|`AR2=&Z3;M5O`(Gtwu;*F@fm7b63BS4v?4HDTwk`I z*k4j-#dwZ9APWwp!XtNCBWBl_WI3!jVz+!!Yb#ANMzITCR*iHM)$dQ6-0!cL^|~Rl zTCeEo(ke4jw&##0*D3GkQVY}AFycb~rsifP($2&-#fF{mJ6;zn1Mv*W!cxH=s$Pdt zI9Bh<1DzB&0x*O_lqEx9!wbO7WF}nZLWw}Dn^Sm-0IPs3QAM1^unv{9BPIyp0usqt z&JrR`?3&kSzc*Vxe25=KNxm~rULIYK&odp7X4MvE=M=;>rV*mdhd>jpN>r4?WT8Ny zQc5l93UNmgIY=pu!VDo=7$^3~1{tbAu}1K*ngS@kUH!Csd$boxe!6_W&E8jW8ud!1 zf-PhPB`Hb*ib8}UfCM$`c{_RR_2b8TzMV{-?2{&55*Np*j}=ZTF$rZXWLB1ti-1T# z{=`t)-R9RY3*PQ`m}XKoBr2{G>m-#AGZmaq}7 z_-AzbJWg-=Jn^$PI`(<;`2*JH4c{d|&szz;X_*54oT$82pO%s5FVG8(l^8=J1V zs;t;@XbdS%;U$JvbyO93NO~s89W+YfEZ4q0Rp$YbOiM(T-P9&;kh74m3LrU_my^}U zB;V^?x}8iT&JKvJ2imKGsKoAx>;z;yZ$5GNo=B4F+oCdrQWLQHJo3?NyZml_eyXLX zTh`6C>{~=@n?3^!0DSC%REP+WdSoCSXOV~&5=mgd6qr_UXv?&U))#My()c}pvUx-2rpsZcb6Vi&IkbTxJj8H|x`!*`IHq=h}v<)lGzefvl2&o1lX zNM@wS(wysIWmH*YD9XD=M=hkq8X91Xy+FxCG&5QT3{W6T861=riw79e^ln(B-)MTh)UoD!7wH;b>7U-ap5Dsx>{Cd+&nHGa@7M+q z6$n?amDu$cef<}2vXuGO(H)AM8ID;Un0ruEP>NJHM0gOvh3xd1Pd!9~7>f`R)QN_*07_bI zJk7E?Jvph*pvNE0EdI>-nZeu9b*H|>pebWdmV#t8RR?6e$t_`{WUgJfm``|?icc11rOLwTV z>pXCGol)~E_IB;E)0k?i#Nz<_?%Vsi@io*|A!K0SORjub82Tcptwa$z6B7&8w zFeU_9%#z_T+0?SjHdUD~pluJwOd1pv6xXnIJVba1pND(-bA``)xtG13ygwo{&A8od zzifKV`r@lZ#b@y$PWfkYn<=@+wmMd9d8?x>8FS~m-`OAMtU4_!H?(Dq8el{*3SyrL zJYdw|lDC-=uU2-<4ADWTu}D}s4vr`6Xyszq>vAWTgG}Sd3GIe(3KfIuRyNC4q#<7yT4Mx?fSPy6mW%=fF+nU5b1r(g1{ zmQP_6C;nb6N;0@agSUQ1U*#@}V|khn+Ua}N)AQ@oU2nCbo1b(+Dyg^*esgw@Dd}Sp z%T3B`eF`lOH(P?KA5c^zllMJS-#>h1yhUZ>DWZqiGktw|q7A$G$SrT;gmS!&tFbnr zp>4(SP0+A{RpJR>TwDlt2ou3Dd8ocKe0lRK8!$jCEkg)pM8(hY7=CXvpXL^b6n3&o zE#vwaWEzYXmV4|uV5g0RxS&d#JkD6*_!D^{U-q4yr$7C-dF%IEGbXC*ZY%=8R5x_M zi7sGf+|OB(wcA^{Zi-g@)|YQ9d0f>qdgbA5VyvakX1%G>Qw^R_93%s5CfU9oJi}m zJ2%R(Ov`W>$#Q)AOTG!+OD05~DL5B84K)!D^Eu&P)yrh%dsU&1H7MsxqWss3tdV+0K~!C5|oS^H`F{($bi$=dG2$h`f-=eXww zPC>fK6)H0j=K&;KO01)!9+As<5Skzx(r`hGP!4?}N39p%>h14-?R*3B?06f9gjOL) zWHtgK>Em{S60co){^R%G_Ag?*_rAY!d_4N;1AOwrxyI((pJ+UV`1VVcd`HSIHLBaV zp?*Rrt04%Qm3?nsYMq>Wj<>g}J{>9x?)mlOYZ&wXYkG*l9OtvnZ`(&&C-zH-{3}%Y z+S;#d-hc*;l&b#t5#Jfv8?fi`Rej_}8CwXX5=?KYTQa=Jza&4c@Csma2yT z1+@N4<%3(HX7n+J!;JVGr5?3g583GHF(*Y8P#876Dh#?BoUB|<^p9O3#NPoEVIqsA zmuky~a7cimB*F|Qi4icepg;e)^yfFSzPf99F9FdY`iznyHnk>DmjclAn>9rEDC{p{ zpVmas4OY@@uQJ^@H!WM)Zl~kHMt9>8^8LNFrmfUG3vCWx!>psRVeFT2QBIL_uY2g5 zo*K)q47PWoCz=sd#-I&~eb={s{CW3KCZcU^5(~z)V!~8Vi@LXUseV8hnGk1_4c2S!XE5R zImhT&TGEv|p*h;j%Hn!GMq)5+_c%JwhT7hUsLW5;N5CGYoEBOdXaWi$fkH!AXek2F zib^P915=4xxfKi%fr>K}NwHWVL+2Er8IBACZ7S?^eRVBdCR@IUogf1Nm|jPF%Di-5 zWuEeVMKjUF5hN{X&#Q0qhdHab;xqYT%us1k>$vallew`I?wg%;SP)Z}UNg{VH2&u) z?550reCMYmM#Jq2&yU|>ee$-?n5CLG{cR|sPOP*YCo2R+aY@FZ!Ayg@&k_uQOIO)! zS)2Ngbb4KvrsUChKKjr8Ts#y0h+%|pBCFpP_R}`ls)o`?bpfu2I!;ELwJQ6okd9B4;IRtoPHZg1yfgMJK*~ZsN z78%L)V(ygFAn2Y*L~jFj1fkc40rd$NE#q~KbacM0yZz(OpMmSUdueokE&k24=1eRi z?4ihr%#Sbqg##yGp%xs` zTS*?nd49aP$JerQvJx4ZtJ^n8)w&oe4JaYkb1V|5c-CqW3s;IS)Zz7o$Q|=x3}tC{&*athYSRT0Z9ZF&rPf2Q0bB<# zfh*)i9_K%jY5vYPufEi+ms+*ZTr-{7M2GoWqvv2DH;91LyXYUFH-OchzI>*t{g%#B z6)H{jd34w3#7XU7WQAA=)MNbP`jb~YUa8j7wm7U-Qp} zH&`n*I=cH@a|29Z%2FAd_A-BHy#@Lx_5L4nzLVV?QqeLTazZp}$CnIHu#s;a)U+~J zZsBPgi0;i)VG!IsIE#^%sSuPFLqd{nXoqKVVlIedk)j7SAJv)>C|yK{)Kt!;u#{F1 z2M~K1BVd6!uvlg6OJL&Uc=UE04qtwcKwXaCkTpDclO^>H=%HGoSaD2I&W0%9N(l^R zSzx1>$u*)zHM2l9WG&HhN`XWa6OO83ebFjb+722pXm15@+NuT%CJdJ+fA;%2`F-Oe zw#KJFd!ON;Z4Z`G0%#0ejVhvm0!%?n<1FpbW-h#S=ezsXJ93tTxZ)m5dyw7znsOju zDK0$3O47&3z}*KFlxF*KPU4PmA;78D{snLXd&j+V&Y5!RDO0(09~>u3NmG!Q^HAd?us^0hMsM3AGOFwIA zcGZt>n7IB4kJbV-pp2-77H5D!Rz)Wm`GOWBD1ne;B!rr^sGKDegGlU3lVHRt59#V4M14pcCkar!}qV|BAe?5-UN>_Kjime zczZTg9jKt3&``=4A!7NcEMY1`nmM6~RHo^O9O0s#YqLw@kS)hkZca+>a=}m;NyfmC zn?BHN$;-cI^x?hd8TEncN$GW_M4<@#*yz-XYyD7Id>o``Y(=>YP9ikUh#Bq~qOnUe zxbg%i>v;Yw^;>JW(^ZCwBs1NSJH3!k>v_u(2BJJ=w=g0_B&Jw|Okf3;3iY52-Vugc zv$hpPW?OcPDuYl`-~}Ot1(^US-_2}liOtIn+9I%UQ!6>XT7A(ecs_ylk?)V2bNz0; zohbP=`)Yowu5OD*W&&V0Kc4#f9X8NQ5cni4Q6kWoD~fdBJSn{?owyP$QMblrGJyJG z{r>XhqkJpW<0huG8RfZX$$;sriCk!^w#uEBpsu8B!k}>Y*LG0>qaH-cj`;BTd$MY3Ahf2~ zcQ@(T+S9S97kiF7&-x+}irz6dUO}whZRah7A`?>t?C7!(A@~_Tn z>W56CZMW;=fth_Z%gSl@AXXiV+2e@Dww-mmrY1C8eaO~)Aa7zVbIe`QbF$j+&3=Y9 zRqlgD2&;Qf8O}!~oo&~l#7_0}!e_Csyw}qx9if~0ZG;-9rW6sT#Y7wsSAY;PM#8Yz zJ#n~~)OkB`S?-96+9Rr?!juoL2w}-!idV6I(L3x1Xw_7C7bqHZJf_wMUOVWId9MH z%8CZf$QNiS_PSEnNotr8B9a+rr)sL1aGkg^-6=7pAuPAJIXM%Gm1LT6l2X?~S_&FQ z5rb0^VOafM$HZ)q2pj&VE&uaSnVJFXVn7Eey1z>C6UWcn+y@GbjrBI3 zX%Iu!Yy&~5lH@!1l%py)>qn|IgM&pMx>=&==O$ib_k9D|y8zmnAGg3q&Mrga!=-tVj_TrASGZ z(U6qFi7T|yCd|;O9DoSxGB3}ArUHUKot;^$SWU0Vp7_sOQ0KB_pLlio9pWOX*{^)+FL-nk^L3oe;9=%dhf_H!h84!>&Oo5Jvs}TuC$K5~)Pdg2U4;6w{ zAsE!K&{$-^F|x~>8@yh&;ZO9o6WfOXhAi4RY-LjZfvwASF28h)8jFk4MJOc79HE~b zDPs2UbS(EBu&@)pYvxHfwn|T8g%^D$Yq|Ak>fH4_SC8|zjQAR^G~C|0#W(hv$hWg| zgjq5LVSg2_heKcDrVM1oO(_}zd@lM}r9FJeTBM0Y?GETaN;@j^W3j&)b{ms19jAO^ zR3*8n%9OZMks#nb(U1_12E<*#kh}t&Vq;eFNN96HvCI}f7(GZuML4_Rm|7!Yv?sG! z6)`JJMLnkQa6zp z%M$>Z4WR|M8hBLecd38%vAMpKUk;DnYl#nXD-EyVi+=Z0LPHMBFG)*$SAeTEQ~J9F74>*t23<)kRd7$_-8DirVqMcRA!%5 zy^+~`Xzq(g=g`IIj=~MoG<)hV*mqz1h;mI4 zOQhJ^W{6+`R<3O&ts#mX2oLcPu53#)ohC!;TRG7vZ!_X;TnSvj~HkPM$=x9!M2=?9=%ZAtDcIn7d6qXTLU}W zB}MyVZFp)|N*K`@XXA9LYUGrMU8@x*HA{Ydi$58RqxyZCa4YVq>5TenDEP)WT50$f z@J$K818QbgaOERl5GrSNYIYl|O^6}^<4QA@m1_s(63I^Z0fP~01Rq)K%6sL6C z+S^o{9pu&fNN&L@u*mdk@4MxU6+=vY4LT%|eX>r`XbMxvifP`g{*|W(`c|sIhjqvPQvvgBjnnI!p_oc*g@kdr&wqJ2j)qc! z$6gyKjn1()x;*32e3r|>=iS)CQMVC5xsBGCLLfqB{;|e(((wIWqA;s*JD{hTLr-|k)ER+skfkzpHQ z#>q7vKTu@VZ4Z^HJ@ZPXeN(xFxpZv~eSm{%>kQbObLDFNI_UE^_}fQo zH(fsUq{fPRBdBUlA{`tyTH(zs}d!;LIgeyRyiw5(p_`CFQy> z+F2qo!1veVS90Y%T=GR74Gku|U;%fkJj*>Ru5?UIUpR$f5J?ma%(8G)JJS14Io?na zJrDJDOFJ{>PA9~YU5bn6L~B{I4yC2(RT&K+<+_w#FHp>fKa7HXK zZuGcYuGsp@+s<~BeDV2OX)!Q@qEe&)?NvL0GSij$BGKajGa?0(u5xEt}j#oyD;r2$Ld$w{c5MS5HYj^Kq|?Qy%2Xmmg*Cb z#E6AD)`3Q3OsH(fD7Xtx7pSVy-D;+_A~7+u^0H_#oNfLPPJw&QlOTq zL9NTnijl5z)yx<4t>{TH(ts@n97_NR4I-!~#r6E;&p$o>b1%PN_uk&EAJr2~2$hpP z-HAvGP*e>mXo|2aT#b+I!e4W5gZ{Ot_n~~vz)`)sZ)fo8&Q3KG8M+l~@+tvQTlcmV z%@b^#!7GwaiVJUBe5D0~d&mUo#-!?bmGHaxBD(_3bY>Fovk;@1Q!SWCAtKWPl?9J+tMSH?@-c0E7;g-NPeUH$R=OVd8m8-xWq`Nm-IUBC zQU-zF*L^8)z5QT4RY8mz9beAIVY%1ubtb8A^sS%Qkiqou{IJh{x-Jp6BVw#IP#CxP z&IWH%LJlD%41&vcIsrsfri;a*bM}4>%474j2CliiUjo&x2tumTlOuKVT>6c27n=>O zA!q;rgAmlE#YZ5lcmlQv&El#zkOW--z7iy2af?YulR;=)AW#8-sFF$2ks#RMUcieh zS;8bqvIsVyYRB%==)8o7llXd2s`(kRkXQ@Ky4U?=;^txdqxBQFQcJ2TZnA=g0R6ZJ z_dHK^f`Q4NyYY1hou|Pv<1e$){iyq36~R-+K)KiNAN74R7YHaa!@3c0F1^q?@L3W+ zoyn*6)pV#Fc$Aa~!YEytJ$7xSt%+njrZk(#*NsG7(9jiYArL+R2I82sD1KBwng_bi zxSEhUgE|QzHW01^f?GA0W0f@%@uK=Fl#w1e=4TkOM2SwXGWo^^Isw7B%Npt)Fcc#s zo3>-}RNh*~Wn7}ZAv88oNQIy~U~i;j(X!&Gfd-&yAMook1>4(3c&vi=Xf47Bi4n9l zAT7r>CFc~dx>=P-OyD3QGI7JPWehHG?;W~>Go8QB%j@{knT}7bm(dl{9xOPvT_0c6 z<|{Fsi6$HQvB*>BULPz=$9&##wh~pEiJA$Vn(9$aHS+a;7i`Uoj=HGpPKCe{l{2~~ zT-tLzwkb^SbC)@fy56t(Vv1ac%U6wPtj0myL7JF6YPdv2&CX!G99?!c zpyt;*uSGncC``s;yb0@fXFnxfJP$sLWGzWQIJ2>^KeqhQ@1L;af%aLNBn0R?1;B;^ zAxE6@+l=n(B zthj^%6S!*bH68E0kn4<&y#k*ckg24Q+900I==DUO?Z*L&NMrz$rc&p%xzLhyMmx6d zKIPzvnIT%ZeK{KRt9bj~(_K`mD4L@ZzX;~Tc-8?5v{ggTpN>DDf1l64c0055dQu6( z8dQ!QaB(4VY^C7JI7Cv`6{~^P;>Cx7MFa z^(7`sMwa6|Q;H;SFI|&cdo}+%<6rpA}kRZJu27m}ZJzc^4Qu zF<`aA+xaplD)U*UtqMiYUdKPz63p9T%YKQ)CH=ErE5$en+l6i$o+BxmGQf2LRLMb~Qyhe(`sI{BJ*tEamrX{ei*X zezMvQH6EICJ{q>ndJtH6w%OB1#p%BJMS_T9vy2D*8njDqf9m-$c*Plw(zrO#h8fHl zAP3d#s9TFb5Y|ei=O@|kMyIW_fBnYmfnL+Tj-Ah1sF8BE%T&1%luFwcbzC6bsiP>^ zpKhG#4Nfm$h)TIg1tBw2OEj=)6gH!HB$umlB3lJ$Fd-em@m3VvFb+t{>W9=J$BtF} zHSpg8|BErJOgl~U*R4OYs5W*Rq~1Fp_rt`FlAwp;GKA8-K;g*Rk_gJ;JgQo1TC-Yt;qyJ}Tz9jOFrm{PfB1Ia+G^_2;K6?|Y!k zUOJUt115(vTp~-6)5^NaB1f4Lr8=g%tC$YsA@eQrFA~=H>LW)`A@;U@SD4a%Rmjlh z%8%#Vu6Og@5s0*~2#o{;5EYRmPJ$DL&})#Jv`Jm89IzV|NJ=J4s#qZ$s#NB5P4T*| z+p;wuf=>W^i!E1TLvB!^HsSUOTUfy_V~*uU)kOd0gEx&$N;8Pku=d!x}79IHWR5d z*p)+Gh#`Gj*2Vnvw4?K|Q*ZT;qFA-w?+@>Z9V0dUv;FFf`0NJr$k{s!)arDCOw5>I zjv+oVW;cKP4&$XWw>h?*D_c?rcF>m1EX83oV@>)ZO*{#-J}*)Q1P;lmqSy<+Il+VofY+2Pyw$7j_;o-0BR&zqP#8|+{u7mWp#;@M-Sj>e`6ZI^>$Lwe@CL6GI z{#Pv~ROw%I_kEY!x$wgp;d z3vM1*HeYJnVc)5XSk0bxw2Y5%qU6}#S+EMiHv!XwlX7WsEr{q7LJQGilz?T zQdllAOM$R1!Hmy4P{?$iJp~f6)m&Zic&NR$w9IEr5^2Rfc#W@ewva(z1cKJMeSSN1 z4yM136%0cvh2JXxC};63uTiB4J$u}2vd&ys#X=Ith$ezT)Eixu71W4XBU}P5fou(d z<1%VVCGKa)GKF)H6coF=-7=|-VM#wJq)+#MLkZlFcQ&8+w?yE0C-<%Sd^z08_)`B> z{*%0wnyGdb5;d~u3JF52=>pw2707*W8Q~bSLFYp490Oy(f|K7=W39`dUmp5#xc4$a zwMJ^TOjRk%{P0s(iB=}4XUru#b7jr>Isc-uPD)^ZRKF$jqnixWR;;V)+P zIOfW#u9m98rfSBn=}3r51(_T*=ZPL>HA6*In>GP~)U|bdYSoYMt9KOza zxmI3nZuC}VWEhw;_;vnd)*C?!f)FrMi~yJHmID$o2IU7AzkD$~@-U3JM1u#_BUxY*cdPdZ>rN7bv)S#poLQ98b7i}43May>>(DCMqm(R8#@w?tji+tw5(%NS>^ zq@IvHK6bq&)+++8e9hn>DOuGP$>z*vt`~p#so=`5G7dp#&O+0PFsbYhN0K6uL=YsI zoY(v>{nC3wy4E9#?H0jV<*r5oOl zBbb3$;+LF;^FF|eV~|oM61KLbB7iz;kVN=#!QE?w_jAKR9B@ri0?gsOayzGZC4AiL zna-DmU^iK(KmDZsa$MqmZeM4WmG$py(AL`AQY|X9P?7ba%i+}hOb$-Ulf`up>a4T) z4b-W?XMv||vuw=wB5JRnQB~l}Cq5qX{pWF#z^u=_TvYFz>txYb695Rxlj@0IB?>ZD zk5dZ|RWprgh}Je*JGB)yDZ5@K^PQx+UN+iQY@580nA{|1r~G} zKG_EgjVhh9a+zLE;D=5d>`@mb5F7beKl|$bRg*q$dIq0Z<^Ag8PiwzOfEv z4oLNi(()MC4(+s(mZ${C2Tw+G@p>?n`*g?;@H(*;s1jIuC?qa0u*Wd# zNZpjC>ZQHV{Br0DX}B4$LXpwp)NMH>s6vILKoX(p%GaHaePD~Z=q6naRjJZAv?CWI z3Zg<=2MJbGAh?!%(kZFhx z0S$SqpCosNZZtMn7r_OH{W8=`OufpX2)cbR}}@(YoH*K9pHGwW!0FavqW_6R3#P zQ61|htD~6>nxo8t-U18zlhv|8GDYoR$~cCx6|oR$3b)|~(!!6Ba8Yo#bX(?v;5@ z>?#)*)*5b~ew=^4;`iv!4Zpt8*UC9MKj2$B?ES&ZzQTUJe(!_#bE{kM3Eh)Z7BEbG zPA=3SHl*p`T^xwD#wia`v4-|a+SWl%H=}*BQ0y=bz~0x=pHPr%0U7|VQOUex8Dyh^ z6e9Pk2BNJH;S9?{^bV{uzFy>1j`3@&NZtNgnTYQ3?sL$LN1aNQ-nmxX{3JDUJ0UM! z428x41r2?=+c~os7W=0a=8MZ%W1TP>Zc05~kKrRAn?RUwy?!G%ev<2=qNrN)SZ-ow zQnp1AE*)p6*Fz%<(T3>Y19vI+Ay@RBdKR?Us*Oo^Wcv;0A8?=idd5uiOzM&8x+Vai zDg?w-8E>+h>xN-4nh`T%EFRJ6aQ?{y?$xR~w7#?7MkcNjHl&kfj!M%f@(`N2j!twE z2Z6970xhMYEuNH$D?^5%#MK!vO% z!leP3Dq#lznJL@Z(b89b)DSM1x3K=Ln7cb9)9Z~%j` z9;+#xqEm9XmR*^s>YpsWyN>s&j!UWOk#X*>`-)xDSQ+lpfQ?>Xw zh0_l;9T-RRb#v{kvb$)dI`I@otzxWH1lm&WVIGOC@@#K(Jm+wRmto7tSf(MA!!1;b zm9T;n;HMxA^b7QD-ObX#Dxp-QX0N*Y)K;w{f({99lDO3xZTvgup~sW!M_b_^^2FaQ zMBn*;uD$y)n#WU4gnF;*v*lUrRBV7(36Fegd@#7?Ud#9ti!-{bh9Rv9t}V6R4}6`8 z?cv^d$$#Fv5{DvVvkM3nYLVizmfMl zj4tZs)#>LXq5cbiKZa|h8kbSoRQ!8p`~3P3A1WU)SmpXHW9db&9?7)t-^+>0KPvhG zdD(pXpm49<+;r|Ux46h<;w67DGHgv~?Fdqa+|_Vaqpfq(9DP7H^P9Yh!z;}sXo}j_ ztqw??L~i$f{M_`7%{Y*3SW_Ya7GlJ~z7%g0mTR$V?Eawq&Sx2gt-3mpdHy3lcInO& zGe@$kA3htaOwjheU;fz#t3meheB{j4m$&xz$%@JR(D$!H3=UrSJWd@tTDST+SW420 zMN+yJYUdlo0?CBLx$I}bXG6En_fm7t?{{}@9ZYACbBnG9G>A}v5oi%6@D!C2QW4en zd*-j66Gxvh@nX80wgfgCF}@+oKdj?g*5}mot4w3K5ZwuWX~rNi7@w1QTPfKDAXo82 zByVvR}0pj+sB0gZ0!kzV-i8fHu0V0C3Qv;`TF%M{lwepR)LktbAe z7V7pI*gQM4KR!PxvArIvXZAMkRauJj=iK@-^#lIA(7J5V8>Bni;{@|Dy)7fq;ytl_ zRmHDl{-xJcMQ%1={pw%e9wk5guI&PI0=(Mk)~d`it)4J%V7qtqhfni)Qngx*Pvn7FKe9*-R9#lLTDius6Icem?wR2a<`A>4J^l2 zk1G7t4U1Kb!<=v~44JldIU^9z?zXj$2T#+-c=p5L#>>-MYM$3Dj}FyO^v2rR`gCg% z(h=9IW^>%{Wr`<96*qQbgn*Rnqth<(DIF6}H>a13K-g3LfsA+dRTqBtW%y%!^LPLH z;qztnhc93I4x{697>GW(i5%n#a69^VOv?Bx;Y}t9E;#5fj%QE*=c8}m(8}jOy|wo7 zLB5Dz7q{K&N5MZfj>2s{d`q9x&6?fv;00iJ=_*g~!qhZB|EnW?8LPB;@&EOf37?fB zGjNTX<#x&LpP<(mv13N`T20K{=W{B)N;y1;EAK8g3rLGrgu}Y}Q&xX4hm+K0I^Zdh z6`>zXbaD|)B)c-Lf9^rs-8Ev@n7LgRv9l^vHhF_R_^6NOTp6ATR~~kN)@515k=t&P zU8FoMUs+!dxdXm)^}MuKBWE${^Izui=)#Y=dmdzLm{{sY9g{Wv)wdBkkY4v5!FGB| zV5H?{tTfCg!Ri>l3PjznWe{)Mv0QqEy<`s+#fi--@Ytv*jfsA79hUEDgj^3Uz*O#})>GM6~R3EQt zk=2=%AT+m;)D!zG9S;8ZsRy!-TvFNJ^H3lJ9&+qy3;_$e7d zZz}V2cig+M%&#MwugPU@CNuhc>i(czAPkB$Y#)I*@9DhTK_?Dz*rD->uW3+1WaMusP0YjEJj} zmVII8ry37^7QHsRPNtbdp+}U|AGbS9CgP9|c6d~F^Iw);Ej-_Q@iPd1*7F~;FM;LW zhyMB=@GbGx_wV}psh_lqL2X$qG%KzeQW8NST12AjdZJ#5>``b&Ho;wrEXUOc^-crh zxnK2f`@A;Bj_Pd9L?L3UOAHs{qxI{QUvKsgS8{N@{V3nfn!0bbIQ8`U73*+;QeTH> z*_PIfp-?1Xj#GVm=jngC{(NHJpPwJ)__=s!6Q=I^BDE^KmE?d=ZHAYZPH3*oQwwArG7mNF+zIIJYjoCJ39ZOU)50 zeDhgw=XF{oDQ2WGbO%<`OWQ8t^O($)T8K-PXdCkj*c=q{Dod!JVdtc6cM70+CDn8$ zvv9dME~>C@*;NPMIxEF@+9(qJu!&H_4q013C|!!qu`y0YYg6SxAYGU*@aOt%G3?*Zi#k`C~gcRJYx6eIYl2@p( zhsLMfy)=!?LSvL!P3bO-SYE2(9KBH-A&6{LY7l91X`WB+y;E{_{BUIE`a;aES6VB! z?E#4ajyad7>U}sOs8PX$}1l7D$NXwk+^^8;ArUMiyMiEvvSI1yT;Q zRuw_CSi)Wa_{A7ZMBL8M4-p3Ul8P%$p+N+cHm~U8u)12MpynU-Wl_S}TbDV5K0C*aiJEI(7@7EWM1UcuV%3ijoDM@XjZIG;2?7Mf@J5?W#Ny2(w_ zZ4WdZl*mwMn-^m^UKwO!LanZxYZ^+MI}zPh-_W+Wnh_y60FY4SvQj}2!ogril3ebU z`4qLch`;Z1HeIW4+{i>hVc!(SJwKp(af6FGtNumqyKycJA{MFI+SUI zLu{%8!3R}_H1{L5qsO`RAeW^4<-9*rJ+_BO`bW#_ICSUM>Ih1mE$GRq({aYRPXbv7 zvRVtBkrV&$)VEizbQPt#Oe2_OjP(&00Azvz3nyRsa^z5Jg9!AJUU1B@X;yILkGJ_C zJkUbd6EkB7B#j~ki36}8+t5UWSXNEGkK1U=MTsR*OHB=KyF^Z2DYqHqO@O7@+qu;- z^(Tc}C70Ua;9mP_^yfybTRh~PZ+!Z0RS>e}y3>23TeAy359jk%KBc=ME5m^CVP5ZG zVuTi|M1d>RbL?VEU>azSJ_he!i(T$z1ekWixI$X8<>Z}tA7&C&N)Es`n2%h%!#yYy zFs|ALfo3lFr@2o?2%&C(ieY|fUp4RDUYt**I^xE7xYs~#QNMViXbDgzMcB0}0Y{Tf z(x#y59jy(;ntIKUz{(V7TUE!4E~5Ia-m_j~V&n|hrxa&vq~o1RdQ zB3Ipn4#{3eBlAe?Ypp^WT6Mx+SXcGkUc3F#a8~h0$$6|wZ3w`FLZo2VfI$#Slcqsgk~nrf<5Y*HoaHbfc_Q~(jZvER-VdqtGR zgT2>O@E41xThCm-pDd!CtjAArIxz)!W(%SO$<~ulxjkv}oNT%#l33yv4oPT7Mo6Wd zT5bu}@q^MejjBJiKf85*ZRNG8ix(GlTtuY*h_jdV&)CAMng#-lG%Mm%%bNl%{*vrK z%BWJWcF8SX^N<(GsL*bF!K$b5i=>DjumByNW-q6PAjxA5qyi!@{758z0Av?2nMT%; z_htNT{cxeZ&+fD{bb^vpkd_F@%{`92tB#WesUxFg`?XS>$=i*2yY)upI`{h~EmE+> zI>!3~2@VW{MU>?IiIYirxjcxrSvY&VSH%GOL@5>3ON z#M-juJNqb5i{omyxhxI^+LD(-7gW2e-LpJ4Rf;1H_b?sp0)?y21t;d*H`LB>pFk4D z_EY=){co6D3=Z$1k6LU$xKT?9x=Gl;SW$F3e_mo=@0=j?xd4=8e(Z83P?COdZ(JeJ96(Ef40eXZhcg9Mly2eXQxlX zKw7_hw61Dybh^`mIZtR#>(LMbc$Mnv$sIaO!VVMP2e1a+PSGpGnF!06#F{NEGo*vK z8l=M@3?#!2(KZzVMWO;nHNa!SwTH?P=V6Uv%~3ZM&QThD%lpuW#GUM&TH+8<`{(#R z-`Dob8x(Y#JrCqX&=*|1mkIdLO;2!`jGOp8x@9T!=V2!74?h=K$9f;d91sk+D$-`4 z_ORrp2mvTy4j863H=VtX_lD)FS@`DKfQjscDN(?EcP;R=)SDfDjM=u{AIL=QKI^9UZ`?A@ zwf1!6yYXNYfElX3)H|;I?O2SOyd!qUy}i^)1DhZ}Blyizws)Phgo{sDcpAtcqeiF@ zCQGd>z{1(Mo{V}!AK#v}^yym%w?F)CocP#pKAFcz=f!N(AxFJcF`J#yGmN>w;jqlZ zLa7hWdD-_?pX1%}n?Ftqz~XZb>)vOhTf&$0Rd9NbF=;RNz)ttQ-l2V3Pe}oIGn@Yv z8vo^}HsQZq@yJOzty;<}y&;=yoVow8rl&(zlng+AASu+@1y-JPqTB97>&Zz6?o*!7 zwU~bzi!Tz(aJU?phrLkQ(utfg!~uJ>^#dyHYU#XL&JQAyUWlGzT)P%G!Qsk2z$hhm4w*Jb`!>k9T?n5V5MUQ2J$n0 z^=NQOjUC}ya)P4|)PSpG;Y6zZK0MmD-?-;z!R*2Y9IGoufQ9fgRV5Qbi9ni6%4Pd# z8OeqgDyGVk*&mnq=@(%`th*XE)ceFCw;j4=FS=7zd_-z0UqWI;K?ghc#gZvQMOc9# z#Urfxaiwc}?JFasKWQdSAlc!p*n-Y`%zN*5bqnq%**^*2)Iv88E18!~i&sp5Q4{D% zOLRa{#S~_vnUD$9v0H|eInoz7^Kc^{iDE+^|2Di5%ju10e|7b|_{Ooe z&P3LyeZKTZ+4~R(ih5ncPx0i7@$m(EKd7R4 z+wRAXFCeGX9Eyd=hrnr`ai_F1{kIvjIG;@>l9|krv0j(1f8<*$=O15lV8=u7RF9AK zJt#c&r)_)~P1hV302%Mv@RUYkH|(dvTEKK(8H)v8HRAfE`2zTj^S7CvZjKx5gL*&D z`1WG4FlX1-)n1GBr$wIsHGMssd$mh7OYtyjzf|riJ(KmP#pwEpRIpjW+NcQFn8@}R z!xx-A?teueqk5Ebs7+{2-;7#+b zy?3QTyy%4{;sDDwYQm}M#Lm&;43K_zA-H^PYpU;a)%WVFJi~4o&rv<;%=qI5%AhJN zMfX}-1ePU-IK4O4O-iSK)M^!9|jw%ebo@l(g}*3pU$C0MCrZ{gC$-yZ?! z97YaU=a2E!3ldbXQY|aQgsB)*bDi}Vi$Ea-vJxeDt*X)c?e;%Ee(=`o^9{WlbwU3d zjXggsXJXqW7PClP3Vw;^FQ@*w;$t`bxb^dS>*pcw(^@0V(aD#J!Bw~mrhBlC&FPsEuV1}Gt5yL$>I${BjCSECY0eU9yn zX|5I%3UD^ByWu`_f!?I9JvaFu$Ks=3z%%2W6l@_WMw3A3Y>R5?&c9ykxnJ;(nxFYa z7olw%5I}G%_D#GCsC{RZytsYt=B*3(h!3pe{pn-&w?qHsxJPIE$gn^zWjfw!+_m3H znA4iJidhG}T^LTszHO()_Tw$a$FFeq3e027zM@NB%s!z3F2OCa%$iE2sR~i=4c3QTG0TLK!1DIo$Ypm@>9t`t}Z73d=y!v!J=B*56lHKb}tL8C?NVvkM==o?=9 z3Xu~}fC5e)F|+dqS(PH-tq!P9hF}&MBuHjLDUxOqCw>9*4of8^a7*5Xjx}Lipim@F zPtlB%5&$H;fWz8fg%{@pjvf@1@X9cVohEby5E@;r#x16orcO^uqOL($TnbW3<*#wU zs^;W%cvA)@G0KgrLXz2PFNaq_htg70hEf0tte1aR6Nxt&$8a<>I|bS%B7!ar$Z!DU()sGI^91FGJ?7luDQFXW|g!QDp73ft*^JA^2E;f4%DV@aj=cX z^YLl_?xfYpSNq7od8^+GyE1WJxbR$5)})|jDP_`J^hUMO#nkpjf4!cSGh_|xURApu zsX8v;Aw}$IX-;~KJqZpG}OK-(HqW5aVz@CBZZZ83PF;;pWAi zXm?bV!PspA+=X|__uTJ}tI+pB9aMdeC7xB5D+MJe3&n~j9WipVXQM8XtGus`f0d@5 zX}6|70d&|ZV(cEeKf(<$#HV1q58WUhkvJz%N|evGV{)XA;Xy0}+@TPZ1OO8mu3`<9mPWnLGJpOLxc+eRTmI>{{AoBI zlF)gA=WG;N$Pi*Jn6MVYIjBVd%{5}ENTb%6h^(GEvwi$|Gh236+K#{(WXQVVed~Pt zU>-l8hhJ%6$b!TjDq&jot5K!Ae$mwOTK9T7T1;~O{f2*?6B4wB2#7kSU?QMMmPuj} zY=T90M&v{pW3E5bITHsGCF}zIA z2b$d@BMvYuq#`HgCiwtg@gFQyAk%?63cf^s1N7p?j7x;II%$BQsT|p_d!3!qZJeTY z5Mu=ufNiTtJGYIWv3p;=K8__JRicN*UK)B&{hayh?%y#gHqurJqk|4AsL)yTnvbw1 z;*jj%^`l&!T&>JckF_nSi5S##!BykSh5;Z1!z^3hf&RWe4Vzm{vE{EN;YK`s^!`oX ze(M_ASCB2N4pqzu#hXNvZ*Bc_zt0H~nl)8I7PT>`x-Lec=P;@Na}$u88aeZDPRx!GjGI?Nt_gN~PrA6w%RBh=4POq(ulQT;&U&Z+9D>Om=2bzu z0skPLX&=1FZ74>TXH=z-F;;}VN>rwdzV!ObUcHxnM{3wC$uJF#1B9RmRv-mssDL1_ zs3fJ3zsUSg!uK9*y|i&3m*>)+$5_Pil)ZFL^KVMnzAoOn;<&WBVcH}(uA@9H-jA2U z$`u9d(Ad@rC^p@&C&4#BSBYz>&v2efH{F07j*1S;TL!XaEE%2U(6L&Q(y8`vEodwX z_6jVb2ejM6IC|@)ZN{~2Zx)z^I}^x|bg!1Q+utldT#w-f`(o%V*AG|a$z%1;9n4i( z#pITFmiPMw^-=q{{l?$=E2(>|p@Z}`s<)_)w&bbbXW-nEc0OQ)Au`Wqm)vjVUX?@n zxTXh|UUmE4O^<+fiC=>d9#*DRfhhGN`@NxA9qU;F3d$@^+A{aoF( zrh4dw-_3quN1M7VIfu-OOZxzuX7VH>Y;2vKpPRbf^X%I6+^QqnXcD`s4uGM7VHP>Y z`+WSN7YuQrP^KEV1}20%LO!8+@nlhVn!+$StHw1cT|_9>wU&+D;Lw{h$@hq z{a~~nuOIxqf!?-J@0(dJpsaCDuK48b8J{?2j%)M-E!2#~u}`}S9rNoT9%=0`uW zzT)h9fBB{UbC1Zy&}Z*KZUJ9mKeczxDC@u7zP^3uMv+9D;ozpgc>j75!M(`!G-YMT zV4`$?dUcU14|PB$Ohr@(SQm<#`F2%ulmd8_u8StW)^WgN;vhrF7Iov`q7 zXr}c%kx{`M`H65YtviDE_`SW-`<_yTG zBy^YKO;w=ASS3R(IOXPyBF)MjTsK)brg(W_xtPFFx0| zFXMM}k)`7uf7aH?6VfJ`j*xj5T-NDG!%R@zS2QGX;f>PE`Ed5*%uvRZ&(evOB`_I;P)gt>_0Xp^OV{T$jpeV@i&^_j!0QrTJ>Mf%TJLwyk5M=hT~%I8 z&~*(G%fy-5rak*An0C$gV{J{`3bJ)E37c62L4gzB2BEaM(26GDWTy6&K;^(w<+j$4 zx~d1%qxJ0W&(D|ZVfwy-6>u#_tHAs1)2^@&p(EY5`+_59h^dxAOx}@4>-qD3JDI*~ zPWBq?x#m0aSZqJ24=2VpmnUWeGOQsYMF@ofip#-Q0e9 zEVvR40CgaB)N|=$G}C3GNeRPCuUB=zv$kQ;W7$Q5%#X?9qINqsD}nTe65l z_S^MGw~Z^Pr>71{Ev*ACW}=}Ahg76N#1^yFJL!1Vu(lwpa(&Z+W|3GrEO_WZz4! zs(pd@qId#@KxkATATbUDrwr3(jA>G&0^+gNaL>}>G_eyhMLV_n0NxYzVB<&unFn)2 zW$bhvwh?KH0IYP~c859suHMdTBZ&r)u!7Y=|7iN^%v-49C1ZSxYImIpOa+=!aWp!p zL9lb36^|L#YI$$GnAl1^!cVhJeL@Rhb*#T6KcPB2xO zJc)KP&00u+>I`QHSuDYw^ffrtQBELBuSKcAP9~X28WaPjm~u2i#4X9JFsf62-@04E z$Bo z6d+{SG~%L*+a108x9&%E#squOwX88tNKE1?SF9SNMoNczD_Eh8wPTuO`>3l?S;VbI zso8lenI}%cQiid5+W-w?mOWw*R>z~!_L%r+4Vuj&)d_aRA?d+&kPU3*OVu5z$IP{r z`Xlw3R0XbL8^m@7^r#wC=?gt&GYz%$WM*iXKrS4u0QON{#mLE7dlht@RgIHVZ}i0_ zq0SUtujo}-(`$SNFR&ZsBb<8m_|erXS3|$fjh}o9&3SWc_1}NVGg%!Z$Y-2*EM`TR*Z|7&mfM=iC}uOsH~m*2X+cKXC2VfpDo1wFT6SJvoh8_)9;5M&@jlucSN z4$A4v`jegfoTkO<%8pr1R3whFP@q^vN}MO_lHpd`cC{A%h;JAC$vs)!e;CsY@xzlM z`@BIpU1yUsTBxXyT=;FBkVM!mUXuMXxgXH`F_B&u*2STqPy@{jX-)h|cz?b&`FYL# zx_=_+q{gAVCi=;>r+2>2=C9`0OK)rkyz{wV2$e-8+OQ;EO?^~9|KZ-7cV2D8&Nf|i zOTOXnFj;nqj`&?6p)Fi{wCx$S; z(OnV(UbvD5PUAd*OiL=cwAch2#EfvpDP7d4I+H*NDzM{Nxo#M0P7AElrk$@$aB0q; z@_b^pjfK^=Fzx18iZ)^({lrmwHuQtqf?G$@A!2d{*X4+R&h&0^MY|{{;wiE7qj`?p zf!9ECYlxCk<1S|o-nPOOOzOtbt$nVB!_nuLeE+$>3+cWW?&F0Xohj=d)C+oJAOsaG zM!-fs^W1;}mIZ=R6mnjAuFPTOs~z6bm3P0lw}(xZkCD8=rcU1PPkmqX64k*av!@$g zGP@7+XLfl$C8P84n1@-FdyD^Bhf#vT|32-XMyrAe0N4qlC?FyP1uLqk@`8qXxl5WC zUvIBZH@q`txDd-_T4A9GDM-c*h%%sD4KZUe%hrXNSh7@=Qbr>U1=xL`zt+9~bKu;q zU}*~$wH}?MAD(ZA-H&=%{cCj=i|~#3?bI_fnf2)N0X<*$k;n}{*T3lTWdGjfCtfY% zT&<$M89zIpoYg~T!gO<~fLSGA8SA=}7yQ>P)jR`owo|t@xwL)h$ir zsLr~MBXT{L3y_JCmNRK;!Du)byi|V+HMJzrv7N$cf*=D{T$7=*m#CsE2erSXi-8lR z_wU;w*&XMOxYNIKR?e-#*2MuF@i5M&WBvtkUYYacej};7^P>~OQ&U7#WEN-Q{^B5C zpr~V<5P=tC$+_LBy}zCK_v9wW9*2&K)cQPPgh8M2h*S4kg!F}eZwqz&3@1myiTRw& zI@5^z>u4Mu%^la1`IN+G?>#GhX0*CPhgT+wObNEkDh#2|xZ3_DxKB_uOk1?p8Z{K{o0dn?##X7 z$*MlvpT#E*A9gh9@P>COqJ3NR$Cx@)9dICe9x@Bh!c zpA>d=>y1F1x~4)SWbNJ0e%}`!)Xx4#i0vxThReJGDnZ7r!8Ibv0xMa&r=<(cHuHv$ zz0K5CpZa>QOqOs?uCds(vTQDeA`&vu1$hCHD1-(-B3g2>%GEw}?N5Jf>hp4z?fabH z)$?M1JpDe%=Fjf?WL=iUAg-BBtm>vAj>tOsyM|2)2B7t8=>C~lFZK#h=7j+!-vj)H z>a*7SRF@l%_PWgvLU^)~5%GSn5$2v1aY8YPB!D1uV7RL^s65^l-<3*9o^^(f?ChG1}+8P{n@- zLzm@J7(maH)Ah6>G=l6?yOU-h4Doj`D1hEn@0s z4@V=rZ3tc0X^z-9R+3}ghAzEXpu%X!hHv}Emg!j0Sz3p`jz)VL&OTfGL|omEInM?K zNdBQ>5i_;b3RkXVI;N;LK91|YTQ+$5f8FEn@%mloqDCn`=w!rpW^D(RKgP$@-sfJC z%irvN<-rH*z_M5TzQ^|Ksrit0tUtDu(|PV~pK>(}e?|NM{ruO_k3Nl$@s|sUvIE#) z%N?+BlmN8q%c+GpxXl^5{Wqq6`d|3DmtO_fRDA&Rz6NNZ(Fx31?M+_X=Xq|#exSy6 z0l2HeVR$%CjCsx$qM@-JQUr3$RIdJzaG7_SfjXyM5$3J!Fc{ z*W&!pXX^7M=ioWc(;*>)Wb&thiB#nAL}{T0f)-AT2R=`nVKTC zxp!cf8-JU>cf8&FKWF}V_4Ok62|r?!^VpLxHGle|yswg!mn~^w(eS6Y%NvV(+s#QL z0J&jDZejFd#O|OH_n3uoxmV$J@?tjRigq`!HY_$~x3(-_l@}4g5zfNA!5>xjR$04+ zxMMqOffw?SqPOvpqX?MdGD(dslQ!!@Ila7Ot6wZHRT`Wp(3Sbx^zi4->vRZs^==OE zro>#XGu7=S_xf%qfJmswSxOszGF$EdNyQl<2xIVPJN`3ueJbbXyEGz=w(B>_nfKEQ zTMt)XB#1d0sgrbXbeil5nZegFTyv{Htx zdr_VnmNY10{c`!!_gALthsqs#A|ujldbQ_V^y7P7E9Y7cB|=pfX07ZqQO2BX4qu98 z*30msemT5 zlYirv&Fzo5nU_ULa|%cc4Q4LB9$Ww-T);KHiS0^i!0qrNTQiQAU3qL+)$7L9VdH_G zwT-x=fMRq|@YE-@Fty6!$Se#KuA;aY3YD=r{N4Shx#s@9XgM~Z1Yo7L#*eL^5Bs+x ziAsk%_L3(bY17Yp?02weZ4(a+;ziW;sGrr$=Eu|$_)u;Vv5=!JZD2H;xdm!nBH+;y z>ncMkL@8dMJ)hY-1;mwX{orgLd#WXr`I@B*$61gJb7$H}UeQVx&nwtmXd2LF1kj+4 ziatm`nmMLrvo69*aarc1^u?+**(-V4z*yK&k9TU3!T5xmLh?jQAR(P%u?UxY+wMaR z4y@S(bqkt!N^%{UkfCXvfpBHiYJv(0Zq(w?57$d-vD-urvO5EMc%FLh#ZPU$c)s>~ zp5Fc8Wmj1rY>ASbMp9G7s-kR=>zJ><%WwYK{uv&|b4W=;3tAB~lNpJ#-BD``v8ouU zJq5b@JYH@v7M#L4sPa$$@p-3@@2~Gao&02~TcGX~CvF?#^~|}S+h6!^D)%DINL?Bw zj6IS&_z)^#5ILv^uZ$|Ro`u7k$qY(I@shTv8eY?9B1JQY-Ys8Lcg*e-o?b)rolJ_T z1OqQsDqV3VuMFDKGRc{jD-5={zPyj`X5x&L_9Tg6?}OJ`I!nwLgj`I=g(GVrm!vpf z^hb|!roYU_0F|a*@9(~wciksk68{JTbEB++=NJ5Jn0wf7oz$Z%bry)lEcNx*%V*A6 z-shMiQ090Mx9(V*xO7wLi+(Fl;f`AncH^yF-A{3wO zysPh%8ccywQNZ9l6dwmzEdzlgL=YiLDP7=|(!x+d8WxDOB+3;I!1xN$CWu8_c2_l+ z0D^-l*kHQa>}^1$!9)uJDVbH-=a2!l&Ke6-+So#4ms)#`FIED>G0;en0`yo*3rmEO zlKr_gd43kgK0RUz9%%$cN)TZhqKC(q8{I3%&H})Y0a;8yBMB)JTUyTm6ksSBLyW$^Z+{A(GW~#P?U~%?09rpc$ot}#+2lJ z_drnOi24Pl#tFT>$rTLsIjy?@>*r8<^&Nm4EMe~>Rc*YXo5Di z<=gin*%>%K@<1+vBu_ulKl69`BQs7-X$01-C>R4U41csI4qpJdrki`@AGr*SMu|I>kj|KX=d#i*`TGXW9Zks z3Et2*)A1<1$Bwgz%;3TY7+m+e&%pPU^(3_}R&g)V)z#5Miyr4q*{fc9`Rd+aLmcVISpb6jH$lqv%*vHM!4j ze+OSK=D6>({l1A2SG zs?-q$S3Hn0K!ciJLp{Oo(m_4)o?_A3uJeYJL4Spldw(FmZdM41WNx@#xK^z_RGBhm zoqgodjT2w}Tbys&Tf9EWHv9j%dJn6!RSTzLt9pf_Xc)OFmaXE_3%kwAz$2%6krBP$b&htw<(ZzBCDZml$XiBZX7&0&Px*Z5p0ktH zH2fJE4M>`-YKKk@XSyjf6oMti&Rf6q@h7mhS1(<6as_YBb~5(PlkFcF{P{ZluDe%e zel?z+Oy8lZbS>LPHc(;~Pw^TGxwmGrPB$PC0dxQWu0$oJ0I0aH5`u%dg57QF2#1Im zuTR8tLAKw${-v|Od!wl?uqBuHrOk}1iG@y}QvNJ(m+I!uD*t-R$@X*Tw}G8PP8FK- z8L1nlOELpve5CWG#F~3PH~(%0b3gybO#VRjhZSlTt)ap$*0iWY#LmH1O3KK2bRv_$=}FEFPht zTGM>ZFwf=J_mkH@{O)=MG{UKbs$PVi2*7H-8qBjiSh2x&+?7UnS&+8uC*Fask{rFS z1?HRa#K^lq^qEp({g{f}IHycFV_qN#2(%B2*H z5?Vf!yiu(Yv2Z0ue((e2SbH>vx41o;fkiOwlw!L*$}jDpJaSa-ynVc_zj#Eyn;#!! zpmP+RGloXUXVj45#L;o@czoZ(cZ2IKyt-{^S*g+8(UKto5O6#$1KdcyU*`7YH+Qzu zw{yMxj)$eMPYl$;kCZiLnt~9KD8ZXxK@(15Qb%QihAPgfuhjZ7berZan>_11ZFD|# zevUI)b`-D{(o zIh2Pkp=1z6v5f=Y*lOU}#$BF}Z3Gv+p<*mN4Hm{WNr8<|{S6-Gy5QNw1lkG}DEHC> zN)S5nH-Fr|dwKQgOOG!xiyYYHReve=OH<+YtES!ZyLd)17Z%P-m?nnRc6b`!6-dHih6n6de#Y64(8?Mkq z7r0AjrjhF$9ygbC`50~?y~fVql^?fmZHJ}Vy*HRhE?4LVun}Zc67M-DAICk9!?dq< z$Mk4%Yh4k?QsVy88kPOysXf|y%zS{n3Npus$r~QEqAc7(r_9cn=zGqpO^INohs>O5 z&|lM7L23ogI6Ljeyu&WNuOPmT9ZVcX3PXR`=4qsSxi%vZMOWaRa6^L?E1l1qPz z+NhR9MpW2kb}GyTXi#+rY_d#k4(*p^MI;2wWDL6`lmjN5B{QXw3eFeN{lg>s&Rm)Y zWI84Y3{i?3PVx7TUw6Lfw0^?I>MOTTk(Di=8mLt0axNa0HcjU2ZabUFFd$%u%@`;H z{7RDMwn_q3F&q%=@d2M$WP_jgKzzl*MA@M#5DCKRlQ&pG17wCR@kstwWGZ` zGYr^w{e^@?)JhSZRf>qkg5#*j165xhg*Dy} zgQ{7gE*z-)k2cu(0pCzBG#jnPM}zZnzBGU~fY>Ck;>t2e8s_S0>;V30V%=#v)=td1 zN)+st*%~z!p3VmSR^}Hne(h_T;kqiKZPg-(eR?0;X@yMP$OIATGyRLh&-w^F{|GC$( zo*R99{4gTWQz~#cfJo^LB+QMZ(kh)e9JiHFLyC?R!8hgwjHjDwQo}s-KrO@jt$b3L zb7Q+$4&2R?HP$b$Y=j%FRdb>&Dw?sv7peHIo3E`*=OlhH%WzSNP*fcZ(|{GBl+G+- z?8T*r&W2K#fs!gYjwb(=uWL~Lbaf4HC0KOI^EJjyvq!^XSG)wwp4N#GD1fmBo&;(^ zs8U(s(%>(-a~mO&pbf3Mb!obyC0cT0mV7{(B!pW-vR*tIn$VJzoD8sH)n1yLW&-*m zF(1L2q9Z68i}UsTlp|9A>S|VaE*qa%NNG=1ilAE3{o$MNvs*7PM^mrjynvtCg}$ke z?>1|&j7)`0HuIehOXT#}#B-(j{*J%2&$X(`YmALkR6v5=D`v(P@5m*kIn}FP_@Vs$ zi{15|E`=?h^D1%uX6x*`rv3iTkCT1z>+6mzO-YHuR!_RI++3iRXZD!(JJZX#SE9Ss z04kv(NwO;uifHN={Rc5bfL2XisYDQi%aQ4Fx3iTld8#?b$xpja*x&8WyB9#1fggb} zND8Oj6Il{TIobgtRAd}@M2!wyz6aWbMj#Qp72uyb*E3LHs>TAT$aX19J0^3`E9K)6 zfgy{L%%U&%`wf39{bR(pmC5PN%Dyfgb{bg|6HBvESjJT|lmE@!`PWy^%9hNLY}R3x z(y}6}VwH|2J&Q3`hS61JJJo$(&3QOd;?wGW$>&8~(ASM!PtXivz%4+9)WhON>(#ij zEBi_Dox&se=Zb$RZCN{dWksmwA_&+(z@m_YVq`EDSR^69&;cZ{mli~zR1QHxK+;j` zvSi^LB2+{=!Imi1ra@*xw!{a=g37g#R9>8Y&7w+Mq?t(erG|U#XMj%OoIxD^$e^s9 z*d-`NtQg}AfkYTqAsH+IT_p*4aY@so!Yi=K6v`XL&sNMK zS%IXjguxaXgtpj3b4syhUndu2XU{BfxCE$|jgywvjEOFF!G`xvtw!z1NQ=qL01u)C z5jruQg8Ch8WnF%Hz?tK`#D#MWvZr}?GnJgAPx_k8Yv!g$yU*9>7xlckyq2&i0R$M% zgc|e98~Xd384L~$q`;JaNE8I93WQidB1V>}G|aln`l^4;sVY3r`6+&-^XpoNVYYkW zz_Xk1&`n{0HGbxy1fS5sgcydqbr!w$l^`trTpH!8(gH@b3Eg?98?% z;S;l)E>1tSZ;ajH^>@Dc!_U*N?cG|%iB`DsSCB{u(04}8vSp&9*a6Xu30<@A=$zj- z>8N&`TRYP|kK1DN*2mX>CHV>K*&LQ3rU@?GxE_;jJLLDMdCaI{#S?4d)s)yFu>s(> zB_K*4m=}bgNB5^&jOq3w1QOsA)LqU#C) zw9a;?-3U0b4w_?J$l7zfLI(jbs47kGP<;DS?pM4Q+(m3RD8y9FvCa~5pesu#FgS%R zV!?-K)u?UA(eymaVcVqDU(e?UOdIyI%irnwI(qPHqYb!G4sO$~bFtwS6`)!BAg)mZ zD9H6T1S95Dh1zYUwXCFAX54ct{xj!aqF-==Qd5O_ZST{(S5^h%=0T{Pv7g`Dx-LIV z{nY-f(SM8jcY5RBkG)nSciI-ZIB1-Jl&Hcw%xZ$~ykgH;x1vy7)fg2O7l%!*VhGw* zfEjUFbS6~QkWfHl2^-p)3}?|Ait*ao9DGDatFv}QQ+tl3Wuk{q-W4|KWfNl>clLkZ z=i~ij%-VMOFz@-D&EI#H@I(5t`P0nzTMyQMu>8^Jfqcdn&3R~KEBWPvp1%IH(_3`# z$fd<5c!o)__tv7d6%)&oW+(aP`s$hQ{<^pudAM&|cUBmD(6TxquT1EEEH2%#PO@H+ z`zZ&WC|Gh(J?n~)=%_`%Un5?--yAbCx~rNC38}KhtT;x&hPFp(y=kgihF78pLKR5$ zXU|psJzn_ffBl&7sKk$35oWj}VN6&!PQNkwlKVyfo7`W=0OTIj7of(CUa86k+nAow zQX7I!0SN)Ab=>y?=E=sw0l2z?R4g4o!ZTA5`>L*z{s+@TQAiey%>Kg_&zmY)Z?4UqobEBruaqZjUYnFHA-r3r@*m^CxRxV)`xx*c<5y zHTrK+Y597ul;cdR1|btD#Gz#f;UKT?T;6*O<#@ALdePUdbn~;PU z9(;0XtYeR4F7#goa;y4wmIwOmkBfxH!2OrLPB6BKq55+XpWAeVa|Pq>#>Y<52-3B6&ZOlAIxeU6QT7y{4Hv(aXk|Pt6 zN%o$YE#DMrbh*y9AP?N$qZ|bHGDlbFb|i;1qpj-Y-+Cz zzp&&jHv1>iNAr%bSA1^Z2X@LI6SX7}lU$LmC}nG{c18IP7wFNcXy8_2cCJ`#KYgs9 zs3?Vo1d^JGMu-Qc1Ov!XP70KcbP`|5KJ?oi_}eIs-EV8wWDIxqsGHRq@GzR{GqlIc z--&F;^hz^pxabEPJvtUYV4_{Xn+*`)M&jj+-_|qya=G8*`GoGR(?(Miid5q+O=d%3 zTcZmp^FG9WYDaT(_QD$ZusdTFMvccnoe^1cmo%C=PgkvE`-_9E0szcnjnCoeoc7`g zA-oZFv%uWG6kmpM4exzIplTZMK#siubyQa@*gylK-}OABE9O9w6bLkd*8|&!^>u|@ z*SO!0ClorW3!4H>uv{y+WIvu~IY7%98t^)OZpdyUUyteEdB`$=Bl$Vb*;pOZ=GYTI zdo2_T3q7iNY~F|33t3Q9Tys>NFhiHo(*cIhLy>@CWmKe4e~u>~w^Ux}%bHN(swU$G zw-H8UJnqZc5b5Qw`riH-U*UHu*|AtIMWm3hW7U;tRQMPh;O$x8eijd19YN7$g_ZRz z{1M=+mZIg$EaDp3Ts#&Lolh3vbNMkM+Ffoqbl#vr#e18 zr}bR4Wp9kjb}mt^l7S#tRM=5k6(p6WMw*&qw}kb8yzx6*sQrN zAbG`)nHRRPC;o&@BW|@xA4kO2s$alvRilHc4I4K=pd+6+dafSDYRlVW;#u>_uwX$T zSr645s_bWJV`bE~Ne;xg601PJ+&fWOHTh!XCs3d5s7NTHNObn#sk$o$LNFQtPe8E0 zX0c(69$M@qO-MFq%C;~HApn$*LfM|jRx=ByFa?OD8zTD|PCQd>(CslYWhIC(5NF?^ z1Ysk-qKnGW(Qx?@sGHPR{Y}w`|MBt6+1T%e#YCq&O<^AyX(BF5D<-NkZSb&x2%~1b zNKk=@neLZy)t1-PGL8Gl=uI7g%w+*%z?f(eTEnBKJwIK=N#lc@C-Nkgz7S*fs2ko` zg`TRj-OqUcj{D2|KAIhU1LHESs4jAuI{|xz%r284XHSS{LHv04J{|N18bzj8d zbCjteQ+t?jSJ!^2FzYC#hJ~l-_)fe|4J$9RpW^@vHO}^Fv3E9WtNam29ol=+RiVR2 zfqIvvD@F|K+l#dJC*=nz5P;w2z^qH1F~EC6#jRp-B>;!#ILS9g|wc!_jn zse@RU8Lh1b3UF)w0pORn9Z#CQ~TLcr;5+`;5;wg;Q}N*2!Xyy@w8d zWZZY9PWxX5B%(hYn&u#%FPT;FRD@yt3nU+eKX>}800INZ2XjLZXAV-q{VwIQ1>eDg zYD=9hSlPeQ_zWDDn;cIIvE>LGs(kQLn2Lt`t!plc1E@e9KR9Es=?ohaG)kOO9ag!S zJ>DPWEgkL5P9$HlP)SAa>YFghG-C#fS*=x{qr5ii5h^~pLKosk+A|nKJFBmU7_@Bz z7BimgQqQGb6;DG%+~coz_h$FioG}F;KG33bTz_(?^g)&6S~3zsUCKefWks1XGIAX& zI^x33{86pzCJ!&JiUVJpTx0BNi3J}gB2@%Pn>TJI!a_I=emgmEJlr|^!}h%si$!b`s$bD-z`+Yf&E1|OV| zWY?^Q)I@v11#jj&a11FphA1?pr9cq1azn!ekLiX|6nV!DnyO?Vv+hP!Vr}w;1CQ8O z<|uJ4>3*21JzaEZEEog3b-F8_RsOwScE9oKBmyd#LoNc?9$6g)uoVh3hDPIYFNU&k zgs^mMO|Br}@jKg`_mrqqRTmrbLa4FFA}L?aK2R8G5e;!dNE3GCSrN+zh8lK;sxV*o zYQMaURB;>FqU18nj5COHnYS=!=~u(haxON?f|y9cNia0KB|V$df%H&tj0YV3O4rP` z%0;k9g<11`fA%UDA+=T(rqYM%2dJXIS$}yt?U^}0e2;+~iXR&g@3_Yq=F{zd`dj3g zOn{MwNWw6bcu}jARg%d^a}KYM*YEr0HIxX8ENG$}T|7!$)qfAc29?k@%p31sx?u zO|qO{Db~W(@Mw(7QS&4qRM3sJj>KJpr$0ZHou#J^mJd#fO@D7#P=e@e*O{u)sbFA?uGqGv{X8=blG-WBMgfSxpq|O4v zwVvxxCpYbW_?CAMvetE7N9x z0WRJSR011N2qr*eK`UI7CqPIQA5ctNq>xyl6i}pIJG2fl8nr9jjzdg%6@-EAxCV=5 zDwC*gyjr1=B(B>u6nYHNe3;9j5A{GM9rBclCL%ri^4M5Ic*)^BUWZl~8gBGh@W4UzWto%Nj#Up&`P+OF@(b zvLQ;479?voPSC2YKyMA#g=JDESf|R<{*0Q?A$tKcz-Vh&nbvAutIk(T=(c)__KgF! zy*jY$IFTQDGhXkT71y}ls!fK&UgUyKyc8GVhFXZ(XhS$D>`^1f2ergbh5&&6s2&`C z&DL-O@7U`Cc&Q@WTs}eari?dN_Wj3|?L#}Q^m*F1V+WW&+hRz({O;za}MSUt0;f~!sckVlQhth z01{V(BU=n%fjr3!B+1}sI*xgZc!R-km*3CL^Znr|8;9wQe7M=&O+uL}{jaZC>-MUCsTj$Y?;5g&=OYH+1+%I=S zzY}G7ili=MX-_&XUiM^L$#q-ygfayefLez`;PoFt|hrJjzf=gKe1` z?g~Opz#2F?eg4%K{(2zDAchvCQfX-n7^{XxCCG6_4)Xz1ZJ82KmAj-8YPyDwdXeQm z^(+xU4uC+TfQyZ4edwkcus=3M)3@5Ks%(X&#Esl{!G$X$Q z%ih9NWmmNG1{&#)$CY{;*3wXY`Yx~6`97L2$DPN198|hl__(BdSN*5++W+?Z2loZ3 zCZ&%)Tfdv$X46Tjh(!d-mC(j3@|j~ptWnP~?c-x(jBzA@W}rk_axQLD3{7mI*pGXD+V_>5+Z|Vf-hlTy&!cG# z%$PKItrK~4O@E!8FTUbB|NRk;U|#b-)bM-T&uqVR`X1)}O(ps6tY?t+Su{vSwk?la zU;Zxd>D&InUKcdDBL!V>3(yERNMS=sgn`j7FD*-?i(?~0d-4mWg3)Mg2%GcN=U4Jp z@|EJNbx0vAdOP<`pNU1gm*7+Pp< zZNB>84;cfSr~=m(@m$A6G~m`S*V(bM&_aiTVDR8o`1j_eRKZPRFV|| zrPL5j$~)*DMLAF=$UrOSB}#_A!=LgB$wK?<1iX%a`6uPSdvyL+7XPg1-xB>1knwUh z#4{;y>rjZ;7KmPca=ltlH?qjGT-3^u2cEmWv#YO|#Y!K};!4u}JKr{TYUH_uTY}rh zJfn7POz)+E=)kmeGW-#BX~a3X+VLMIhK_&ek6N#f`iN<7bJV7Jr=o{9zrWbM${U_~ z#>-DXJh`6Z2OBc4>+GW+l#SfBN9YU5b*;_;FyYp~=YhZZ;qs;ENL*N&9;#F0ckJv` zTJ8`nm};d0{LrWR^z`l8A5S$O$LkF7RnNDy*0vd-vST#oyid8<)CcHjKHAnxg{Y5x zUbD}gUmiXoA68FBr=KSJ>)YJN7r}x_=gqn%$|!W`z95#NV3;_WoVWasJbt0l`38{A z?j0cMmfNI9|17`$Y-|wUefKx&wxYLpe4TTVu}V)} zw?N3W!Ke5S(Z>(5yWN`GySzF0U%VB&G*j_uXPPK3#3j<@%FYO*qA_P zuzi{f$$CGqQK<&RyX4Jae11J+%P4`h0yJ!iU4al~awYUEkKdiotQ= zhYne{69`nAw&Xn9R<+Uj90_}DKaeuC7c5FBe!tDNJocQCY4bBUPd7}#D_ zkKQwrEf|deL{sw`Y^+{sEiN8T&uimi7B3Gw{ehFrgn0z%CC^f-`@eKC6l#l7?XWx1 zS31erCDP`O74&Ka$Ur?eTdDxLPg`VP`B9~_TRAfO%5k<<-79Zn4X*NcAKzS2zP^23 zyJvjt=dbJAKQeh9dY2m85i1eSa_s_oAq98JcV$>rq@ND_Ykp_e33Ov~m;Ko`tWgQbpR(l0-<`eOh6U+f(SQv$=kT zf4R@^Kle8w56Mdz)4#L6_cYU!4=bmK{S1#)xwsv|E;1r5U?V#)ctl24mHb>_tl_Qw zzy@Rz+wH4;4gT@kTl-f2k3>VurExTxU~cs_`YlVl!)buU+hW~$R3ot0WMGZ%y<9D< zwU=6}O0j56C}oYO@nCfRpw+(8vu|Bo=#_idv#@;KVM;T#>4!5{{rTnPSj;vniFV@S z6f^;s;xR+E37}WAxZO4vw-<^V%lDdzZd#c{vLQPN*%U;n=NI>WOp1JKn>kU&NR0WC&bLJ68_%s)U)t%xH(^kYj_0s+yEzv z07>7N`kdSs4v#GUA?a_|^ba%mHq;8T*6PbM_dTE&2pO9vgSDyW1E%^_>QiSX^;Mq} z$?@Btr2BPx&>C!oIGBU9WR>M0c&CwdnzJ{s$YZgNDV1_AXLb5wDw=wl7|&V1_Qu6m z*{!gwF?}3tOoTm_&E1^Elil<-IwYu;mPO+!TUk3ocA%Mu1+L_J z;10E9HqA3-h~iVWY3X@80A4p%N;Co6zs9Tjp!ibm)+91YQ z#e5{A(70nkpoTkd+eRTo$Y~kFMKGex6=~>-+#pV&G^Jj}>&>xy+7`nBd_(wYQsBJ0sSs)!&y=m?g%!iZ??r>DxD z&8KF=Mn94*U>w`23se&$fR>F0JOTOtn;jBiU{S&_gN52vk#$e}Xqgb}1Ip zQR0{(YKBC#Q?7nJf}M&LB;7k~!cX9r0GO7xG#fhxq+ktOR4X=ipCeB_444B+1GQx* zP27Rcsd3JF^3qibYY%FehM4L|e@MT}HBT+$N%m_#_Bf_t00}M<4mNWYW6%10kJ{RD z?!4NnkB25hx+D+BE5CewH``xG$+v)xi4gF!)vw^+q#8j8vMp1jQ9zMFSrEi)!!=&n z_hi@LiUj9+u>b^6QmnK|v;fq><&w}ubVpr!cNxGLSE=>5WU>kx;0FVbKt)pfS@djm zQXv#P{F?ctgH=|CE=UgLRKUT0*I+3IZ4&juFrwI4FaxX8#TkE#ue21^N`4ovm_cV3 zGBqtNQA+QLtXs4svz5V_wJ=0ZN(8ZjrL!b=EJr9-e#F_A_3-s;YM+^ENYNZ^KKebEW4!Zrokb)lT@H^OKIFEckLocFJK|9@i{kX5D&zo7xyGf0n!L@`g zr^YI4qoa&cWyYB_*igmIOp`pC=%c-gVk9aiaw*VvHhdNDk00G2LBl@U%Ji4>wwe(*dWWuD!c(;Mbt&pa`Hnnn1`)wK({Q}5tTpH0qLVwc%K zJvSQPDfSSbOL%c_gKu`M++JJfS2G{?H}^a1jhmKz-5vYr{jozD+hu!1D_vfPDmw632hC)DEONKxMnL>l9HC*#h+Pj{O zVc?l*EHxtg+D~VPE?_JSGgTBYMoiUF3>7M@y8`9T0|yGENg9ek4YUkKLoLV*rS7TV z;E2V=K(=hGAbE`EqR4F!um-NxCCrT))CyGddR_qlCS0lj60lo!sT#e(YwbBA58SV6l(ods&x!F3^CitDVI?P#TeayM77oF2o#u|>M|61bOZ=Jo4-cPPOe{!$r zew1%bFhPWZU@L}AKdvkaQiH{)&BxKO*FCMfy{Zwbs@>JE)>CG68n zxazjYx(}35moDJgYu)vJ1a)?J+R?kWzE{hbNKjkQl78Nk$v;SjdA?!2NX+Ge@tj@w zGP;fbaL)c+pWjMf&)XUMoU`Z3XumzUZ(kqX`D4wivs=8{^JYKgycb(9G;}-(TbVVS z|6D#)_kY>_AAGG3)J3$07PLn?RGcl1Rt@WLSpDJiLA|9J!ECrcinYImWSc8U~ z2WZ$^5|Y1qU)sGN+yEyZwblZCsp;#AV&iO>-Ll_`Ra3RZEbddL_Iwrb!)ZDvoIRtW zOS(+Hu>V)^Uy=$Ugo3L8gr!n|jCO9?hr$C18J%1shOcJNCoiBZUAM;fx@|5b(E5+> zb@+DAgLEs!vm!Kb=VhDk!BuU}N2c!sQjA zazukI2n5<~aP(@lDWF+H9%)D-@}l#ST+7A}T;+hL?z4*j0FTO@X?<{R5H z$6BIPi(MS8yzh_T{JDg0Q{zJ)mDVy)6Q5o_!#$ya3SGK`cl5l}I<)7STUqFAcP&<5 zyu;?Sa@x;=3&|z41XN!fm(J<>7_Pu5=SlNrEdR%PzcF`M8@cMCX>!Z42Mte3Hu{c8 z`28ds&<;P!Gu6iT4!r-%(vNrNhs`?+0^O&qw_7G&erbg-hzti4AXnzh*$XAjEv;Eb zCtPX*R{%}(?FZBg+&qWR!H#jnKRCUCj<>JP&#Qg}LHq1Nx$Oh>>A`S?YM`h#5vAM~ zN}*(5^~|~(!R?-3`Rn~?UjOLRR9y^=cmmta4RwM+J&xb8b_l$W9%`l9PuqvaM)rKRHjupem+8b} zBq+ntzTgIKky^p6PpGcPesZq2X+aFnLj%#grnbTfN>(t#>JU*g#+f$8hwq=tQ>c*H zKY6!uOF8};KDzKxYv5DdN;zYjo886P=l%KmdLMIPARS;h{$gGSCZ-WAOU;}Gu9r3%=z4*;$y6TjB_C-)+sq@l#MPVb=!*`7T+i!9#zl{B#-yZkSluzx~Q|vOZ17$iC zM3E3p=a&rq!ceFolX0}mI(5dq=qNH{CTQqnmTTaB2F9)L^hZA1b@OvYS7-bBqp#HB zud@}gPN^=G9?#`tJN@u+CtXdAK1929G!w^mTu4{M6tYr~4nsB4E1hepgDi^Q(N8d= zWCWg(wSMQl za8*SynBv~gv7Z9&^SEC{U#!E|`!~_lOD|_Uxz(VyMwfW&-Pt?#pSJsMq`Tbk`ofd` z>uFCW096>Y3*9$;e=v)__M~$R$#v_JjM_QZ#;8LMo07TsR|UDq0FB;M7=YmzHwiRs zz42Mcqld&(l=5sQg9T}SP0MkioIh}ZJeeIls*iz3DZsG+e8}7B05V9+lw7F%;G>U~ zZr5BKh{1RagYr{kY#Up!TlhHT%7E`G+-ek2RSeI?y8MueZ36*67F>lXWTGsow`m6E z6P6N$Y^bh*N>{mA@7NJC&vOgVneA&rhVr>_I#fs@B1kci>A$I0Pahqj=n;c9h~>t` zeJdfnuqcw)jJ!Zvm&VN~ml8Q8y{W5pyx{skHPLgm!qQV^YLcwy~;>6Hpu3@u;pD#Kl?iR&!g7VfnAL0bGau* zQpd|E=EbjOn+6mq6ymJXz+|MvN_yPyxAePHi-C&R6M(_(Hk#8u(qij9zTH%V% zyWHRd%THPhSM$QLiz@}lnSlicxD}gqCM7N~cb-lj+dOH6>z3F36Uvg=pI>e10 z|55kAges#lm~)P8FemTXhTD{$#yY3lr}dy-c=7S->_r(RDuI>9LZ=90Kza=^s9JQ^ zsa%T&%(m8ZX|ro3rx%?27C_oaPKpbrK3Gp58`#T}XSiR-qZv?d&okYES!vZoA_JvX zsm;Ky=ZN)r9h-iIC1EV2W-$c5YtKCxB+nHoB<;nv&u&a6tb9Gvf;`j>>U191(TX97_>Jo)9n&LBSXZPjp2x zDzz@2>->2?KlQwQf|qBPGifIJb(y}y+2yqpT_vSm0HHW)T^mnqYZkYH!4V-*n5#N% z4oRB9oJI*Z3X>Y1I^Y?uI4<#M$Vc#s=1 zF?W22hf?MUQ7J}$NtUgehgn8OPHY3k01S?dqyqr4fb_PpJL{Euw$^3I=D-1-Sm%gt zdmkpGqJRcs(HJOBEP^pz;3>LbEkZk^kPBLw0Dx*@8OX3k#vuVH&2Ig09=tJk{ zH$^u9Tw$!Lg5c#oNsEOCinWZjx&chx?lYuHh22cUa+7f+WCVkSc#RRj@Xw_TPY7{a zSI2L`)7DZ$TDZUl zDiojtJt;z4>~8J8a)0^CeVysgMU=YC&9mZ)zo+zd?247}wXR>K_Q99TD{1YxsVyW` z!vzrHc7UiX0x2Mh`jGRulV3gFN3ZlZ`OkvCckTmrP)?-Q28WqpFI28}O6=-e<(3n2 zh`0$Sbr#H!`SM=&6X(%Mtp{&Ki-Y~x7n?S#8v21TqMlYZ!gk@J5Lqr23BFTfI6ek7 zOP4*9fMo(LTSx&Ix{HhP50;6_j8X!x3Zta^2RXVw(&F{)g{9{W3R&j>`rk3G|25c% z3dU)xZ_RA5?@&Jx>}WU-r58k$%}T&ShNUVBB~P`=L<(VttJKkcUP%sS<}A)9C=8V{ zooDsZf=*BMqJCLgZyc{NPr_f^?14gKnJm**-csD!@qMFShx)b1P#gDnI}dBdi!8sb zp0}Vs6Dug5ANg#>IGWYgu%f?@y-w>5N z_bHuKe~dSG{S5gI>@~>NLLdoc(pnlnTMh+mp{XN|4g5Lghk4F13Db`|#bZxEL+B+Q z>&mQr269lY+c)ksKU5auCWxy7=K1vbBBbylN=T7gd_53_}F10lBX^lNccG#H_ z(kEmAk$ElsvGnUhkE&SiB`wb{W81R}cl)}z1kmC|yIh)yZNGd;W~{;H+}nh8vNf}v zvvtZj`Z?LPn8Td#j=GYJCp93VH)uqFC{aMQKog{ph}Max1*PA~^BQqgHjb!4S~G|S zab=JK`Vp456(!>VG+x3|YVvt;erbM9{*Bkv0*wePAXJtF2UfLGVGXLGeb`SE4H$$F z6{?}4f)Kk+w+5Ub>lIkSSb0pyl-$W8wAaIV+6PD-W32&7?Q+0kh>(@43GiYD6cqqr z-J=@KUH816PMD28Wg9cq-(FpB|4O>o{9O1bvkn4C-qx|RZ06cKN7`K zdP=gD^DNJ^JYEkp9spm7sQ}t>zd|iN9Vd8hW@8%s(45$F_g-=@0jevS(6SOa^PDC+ zwZ5*6IiDetklScm-FLm>y!>M=|Eh||_VJ?m0jpvb)nt!h=$bI^r|;#0KC<+`wEFP% zT}+)%4+h08Tll}A=08XHFQoq?ckkouzg^Kf$>%4wDtlUQBcG)nrrs8;1uk=3?`L^; zX+EBmYuGQCy^>q1%Ra0CAngh8y(zRtkB%;` z?{C%D8oB_jsBvN*Y2ml==RUG;Dt5lIFzQU;X7<@wm(7CZ z&;P8ue9`BWSzmAV{sP`VBXfYaDi~?$Tf67QNvW08W)CWK*F?SqznWjVDCu{S1I`XV zFMDTg5Po%kCvZ~92vfqM8;1#ir6$CsD@K%{$pVwgeqlhb^RGPB-UGJa@DHr1Z5$h- ziMJwcDMKo>qe)VlTKXl6D&CB0y<#u=i_=11{Z6uW>|_WIssQyYpw!0kfnAJ#YFu-v zM|%h+NI3wYWVk#;_x)!8c`Sc>=EHSipRAAQBrPN1+~K64?4j{1<*%es72tenK7-ke z&7>*R%xC}*7x^e=D>@Q}xFsL@4?mNBDEobSvwVuEM;zPPxKi)Ov47HN36Le>(K$%~ z&g7XBm$gst`-a#Zd>?Md$B!9(KUF{c`~4q;_rLhhQLtWKd%Vf3XP#sFt^WF2U+K>& zf5*}G8xv3OoP8ng`&;ege5TzCL&6Sc@$}KLt#-N?C*uB&PJAAZefT%t{@cIK#dnk5 zdv1Y@WH|wn8|C3^9~yUSnhTJ6dE25J+b@&WQSV1A1fW1oMjQlKtkBz>>HYrkgty5# zbDMf93BH!49efMr$b0QPHw<}|PtyDC$g3cDG=QdwI>#=k(vIVCV#|UviIrv@IwoZ6 z7-2qBn)k;IZM9CnZ25D(Z@a)HCThM18s66ao?4FVf=jO<9Ghi{IUqe#B1n&N$S4YM zjG(=e&b779atl@#du%{y3z*&jUe;+dK{IQFink^@{uuA+cCVxnkPIfrTczt#w=9fGqFXM^LNC=RMm0WrHya z;LtYH0Cm*elnWzJ_~X8`)sfTsi{0*4S&(BfYzz&h(ZR|2Qzc3`9oX~A__{j?a{{2Sv0jjvEAq>jl7 z;TvRVao2S`Vv6}Z-*>Sd^9YaI@P(BVw3UT;w$%cMF6nEIYZZ|=;_;kThwY6=mo8v- zF53Ry$_HsfPhm^thz^ruU@MwVG-CdpsCcBv_=^yT&UVvD7q2=V-ORO)JXhvWkZiU(??o* zpC>*>o_m^pZ~%=lYnjp_2@A2Gzw1BQ8`|@F2);Yt)a1v%R~XhRxAGk3ocM0l>un!! zJ{j`IEs zfB#4yY%(`HwN8YbwOTy&Y}rr8UW6^%3PlyG5?HE?W;k*{J}*D=t@BY z%BtD9+Ln|&7FJNogwda0|I+9FUgP>UpZTGDpXS%0i{`M4rJ_bqA?0dNNjr5@rNR(PTAFINHOn8N%>;S{)R z39Hm>410}~)xCQc4WW=!#s*4KDuctaNT6kQp4n7Aq*mVUr7oi_T#SaGW+}&%ORpx+ z5szy`W`sBur6H`u$HnM9L+4|4@d`QM6V3--+jS3`@9TEwD}v#w#XeZEV)D|Oqd^T+ z&7|I_cwr5W89lPw9$z8&t3Hm+$B2e~Hsv$1LQsH3$!Ct2E6%HXSS>;`%|J({AsW*V z1I#JQtSh*KF#WNpDfGrh4}l)_fEqBX9{@455mbM*PVy%)W&pZz|g&ySt^ zRb+NNXCB=tSJ~L;wLueV)fbN4mTLtGODT{Gb4<*MHH9n%8WUJlCavLGv+jGfG+B>D z)JEfNqoyhCbI;?VHJk6t{bcVGyFcmbX&oMD6AUYEr^^f~;J<2)YpW8u%P!vFA3=gs zHKSEbWG|S)JPb8gOgvl$02nZuiraaEsIbSMMgawDzAgMz;C!|Ik1QDy3?{TKhoA)@ZhJKBm$TaC%MRmBtR#l040JQj?o%mGce=dzy1aPYX3;-}i#xNGRgfY`FXU2oAKlpt8 zSD)X%`+S{xuHbUFI+xlr>orVD$J;qi#Yy8?(o{;;8utP%xU-lkCnc3f&tH4XPP4YA zg>0TrSaM(Mrp}huNS=`feEki7*7f4ffj`V`!wasCZ0WRHU^D&5eo-E+D!VXQtl}aye38cGs1J2> z%9z8C-TSwmug>i`WGgr(XA>I3Gz1O00ssRbS->NqWRjOiQHoPMOr`BK%}Y`{qB&bf zf-Hs_S^`#x5|TWG7SQPfp!Tpt;wLZPk!AW)s_b+oP`DTyKg;fgE5QO9&l@zU(|l+M<%%=(OPziQ9w+yRI+)>*xp z8B)>tVlK|$=Z0G`4qrU-VYpUkKkaz!{j-;;3e)Z!7V0p^Kcm$aEWnlzjgq)w8;;P_ zy_0|Tm-n9^ye?H}_bt7XWC97mEo9y;D!v)@$>1K?mFS=vHoFl*Ly;xmf~b)v49_|*}B!G4xKhzzbkk}Q&%l584;0$G0BsMQ)i*a?lIub>T zmtw#ja!sZsghTZc&CmVdoFYAHx35mSeWQH{B&Bz9zSuU}i}whh2nV#F$Jr5bbTEP3 z#GI+9dT!4a<0+2R>OnhbDqBVeRvo`oaUjDKKl1cmG<}Cc+v8Qg{$pf7AOM)09$n`ac#YvsP?@j z{RQ}df6{KRjxD~boa5nh+EY>AvLCP0-)!X6$lHqM!aZ4c+OeJbu*ESG(QJ<`(N6=0HD{>6!g~13Ua5Z&KbCZ$ z_Yt4BJ{p^i;jBPRWIkN(v%xRaJ9AUF6L)Xrp=4l7_AsvnDr~NP{}jC3+5agmD-10^ zH+2lQw${s4DieN;>0ONj!7UpzoaKyulI6csz72a0J-YJci?M%P(|6wJXI=q>|J6ma z>5bh2Qz#n^Yqh?t`qjsuC&RWRi?85$p3MEb-hI8M#;v_R7Pn8GdUCn{+0o1c{vv<^ zx*WpovRdATc4oC)a)d8V{~-6Ii$ENN=~~?&aXlvi<9? zr=E9l-pq9aChe=C;^cST29>&#F60t4@}K`x|JddEa^mX=gBkZ9y=L$G`%B+GUb<{@ zwpWd+(0ik!&|SVULC>kX`*9KR!Q>L2H|rgV$FM#I{jwU{u{Iqo<}8200cv+sXP>VI z!YlBW8%#hPxBbZ_Ig=($uLZ2PI?nFZft^3Svid~K$^e#9YT1|f`)I<)ngK@N@yqf3 z*Z03Up1(S*+dIp*(c_zKcSq^28WLQ=q(`USbH?wJj3g<;IQ!PCLusQc=hX8VD+Q#u zUbjbIZ}anm+`KjHfsw9cefhnVa`(qZK6Z(7Jk9{8fXU~Hhnl_X&auQ`xxqH4HD_Ge z@*^DAMk!L;hEHVT^3#oeH1FGRrR@y_ZHnodV?K%PiAE0{Y7)8o$PX|?>=XK7e=U&B zx)A_OZ_NKl#D8Mqhu-?V{r#sQ8nM!OE~?ZpCvC!l9Fh3*X#TwEUx@+;kSOcWA>hmA z3y6ol^72v`Ob_90U?PNYAyEkZtIK%f^S_Y!sfPNLPdhG+o3S$9TVvpLDT~chil?8O+0*lVR+&!a>~aeln`>GQ6Wy zj^93S`r~2R7UD$L-fU=%z6iw%{c3Q};3l4p=o=T07uoE+A$%KTvgP28F*Wb|y>Oyj zzpc2MXHS3L3!fHz^ou^6oSNh5gfG99om4*?p~txt<@-6(9fJ`px7v2aiKn8>L`TCy zo?r80OxLV696O|1-X}V1P~Ms&ID!r9+V0i3Iu_pScqOQVT4YOJtxPI(SC+-*-iEQD z$O|z}>6dDc81_C0O2Za=GIS!kaN*svQ!M-{=@4+_-&9`2P`G4f=e@OEW zKL7Uh4_-cJH~nf){wpv2Cc1g8>sZjRX_(S*YD5wwA_dS$owNWka->79MuTXrVb82UPrRQx2S6k>e2A9; za*D0F7cIl5XZBu7Kj>7U|KR1l!>@WDnMn!`6CErJGJ!gmXCZ+dA(~t?`n5{i5vnt) zBbi*gw>;*EjkhOjlSy!e7F8wFXV6S?;^zp@6fLDfmOl(MM>FKGKN^}Ge)?`t1DvUa zTc6$cQ?_cFO@G!=1Cc72s%mTj9k}T6ETOgU+nj#+j%YtS>bTA~H=J8SBT1E_S-Y0+ z`n0|H`3=5meWR|qdN+UWcZV_Ok-(qs(QnXENPCP#;t#l4}QI!3f#NR;5b}s&eD^L=W%f{(tw7&$GV=(hSCd zP}+itEI~L#%ndiPpl4P<0tFUgZg!Zmi1wO8FVb(ugZfA9kVWA$;4pV{DfiIJRWQw9 z1yRr>_6$Ioq0~f46_aqWL=8L(H?SZo@FXF%rSY7`Ouj_>*!=CVx)UoCEE)#RthBw- zj%GD~dpg6}Hw1sG-oLKeQMM#E_7CgSzrKG@bM^S#Njw*PDi`Wb_4EpS7^w*$#fVuq zj=%cDUp~gxm-%?>$LwPD)UN*!$-n!5^Q-*fw|LuL6QDB7bFhBDaUc5qHoaH;JnQEy zhf16yzZLYdo`*#Cb9U$9O|F=(%7|sE7+O(AF>xsF&|eHDi$ayb{k-V>d^nJ@PlotXqu{_#|6ajOt>yd6~9T9N?C57(L%9tn568`a-5 zI#mY42(qiSk|WULv)2?=9-8?Q5i#OoX{fTYi4ma;nUR7rPQ<2IEnvg|YJeT?%B+-G z%#epOwW_cObZ7oC@K1ylf)d5&%0VK-(m_HORh%b><+*Oovn@wVR zKy2v%T8v$poQkN;pv+>o%%Hm=NUE4+_)WR9n`iVSbH$^#_v4@5kKP{VA0hBle?H!S z-88qFOjC#h_P4kWmX7K#Y;W3U8KucJOrt|HsG}f}P^T7wr`oobbbUrMFLSD#++iXS zxoN-WO`q@oykG7-;(M{zjhp(hWA_O?YFLy{@C*Hl%9nZA-n@%_`aN#3i?8;E z7eUf&!O$wm1e~-v7xRV)g-?t5A4xxqe}J?fXgGa?|8V4A$u5KCDwCg3oLW*JFLF+j zfKQl0p*U#Dy0Q0jK3Ws#Q9U-9_dSceKJJgW`);ZX~y$-FHgE3a~s|5;{?0cMKZgJo70vl7?j+WrS%9-P7a9d%GwY5Ip4+H)#px;xj2Xc9k2>5hHrk8ZVaN16g0_mRd}U{n2XACNWs+24-K2&ktidD2t`$i}vL`jp&TF>;qHGEyWExWHnatks1_WpGwKi=znzW&5NZg^mqx97Rs zRvkOJ#H)@{W}n2)T~^xV?K6`nKj1m^^SpD;m7^84ZQJCC+Kw^7!;*1??!&G1$*1f2 z^1+$KeVnbW7r@zwO(Eh4HkpEe0}x^fLK>t+AQ3bLkpT=iEbX44KX^yd&WV&pi}aKz ztZbkNl`XLoiK>h=w96-u)0{&`zV#}0xeIF-bvzgAIS{2nWU9GFv8bdT1q4-EoYDlU z(T$5n>Vhx=<*HzC%85;VP5>`vWUs*GwUzD?_iJ(hT|lD0eF`bwR`3y9w^~&edNk~J zcAefv{A5vwAJloAMEv;Uf9*Xka+<{T6byH#7+1CLYup$3nEe1+1t>+OI+OvgC|1q=aXa8b{WpAl_H%CVpp$Bw?G~JRS`B13gX|G;J(NJ^mG*{4sRu#BG5EwG!5~IuEgoGs+CjR_M6e|@B)?pm-MQywYhtXfI5`= z$zE}`FZN4szM(x{Xw$H4yN|%A@s{-FQ~#9GKZkb1eZRnZg0Bny$bkua0O%+i;!MQ@ zr9L{h@v?}Z)eDE1^b_cX&I7qV0b2uDS%DAnv5Zk@)W)r{Cx_2{G498IcUibxE+ASO z)wpYAU#PC*5BFd8;15C}SH4`t(e{G}=u1Bjc$3HWxI7g`lH~d)2|R3#(h%on_&&u_ zF8iI`#vHh<<33P-kooL*&&2cukOKg$gG06ubsRR>sz0{llXfk1u-GxJFw~1^>C)l> zW2gbA!(zJw)~VLRR#<9JVA(;)3hcVs*!A|zx*kl7?jBqy8rY4apS2F8*Q(adZYSmp zl@B|2k<%MazBlIR-#PC6;c!$0OtYXacrx|z6TqF`{^oI7JCmJ2q@6vqhRg2%b!>*7 zeqG8dr7P5j$ZcQ3KY_dqAKSXMaKA$10epJMU(TJMF6r}8JASkB@}lnqC=Crs3){s6 zrC3N0pb5%N8q!M*7RftVSFb##v57U^xf|haw>ZjuPN3Iv3`GOY{{&4OsKu+&&o3e&jKRewwRTka)d+Tv(jL(42+%O}vITt5yBd&JS zjhzk%U1kB3hIjOdX^t`xoKW^tUwali4Cbz9-~?AFp#>8FF8snstv zp5a}2=#$63Hb1$52rdp?-Fgpd!<8x$6{IyI{4pLr_3n9_yH#{wdrrW|=2a(lOQcY+ zilS*lx&s1km2B~zjEv$rrUk_IuH%z}8!vI(dJjS{TqHy}=mE}>S$_viW4fCC6}^i2 zwt6U)dlw{r0ha251YLp2e_`8mdsrTU#e_88o>#6X{qiZAK!Y0m*jn8#Q<9lV1kS%o z=XUD{(ccI4&(J*aR-b>cj}QqHJUHqamxv^_p+_3AD?KqQ{m4 z`aGwZ?Awc0DseWUi4wMMcRISDOdG$tvfi}M&%)~3M9#<`ae3AlJkpz!L)tNCt-2|x zr_&2gX$_Yx56UT;+TP?A=W{`8OkYIBkdVuEY6Dxgtq09pv*=2#G%^m$U^>aLRa)>v+xX? z>gE^1w?O~VReAXVj=7D$->pvFKK5&Cf%EQuedFJBXKTJVRbw2vgi2b2o5qlK!ZoP? zQlSG?Lg))hV57N)Vy3egM8ph;Ci`6+$G{ODvxwjG~nk;GWj+AJchHx)vCM&KP_(9ZF%2XMiY=qZx9_kopEi0DukKF zIT2A!C}<1DauhGc`lMwTK_yH*jgUv~2q8_EfzvaY>F|+a19Rpi=+Sz>2PeQ%${E?5 zwRV;G(RwSME+JsX@7N-oCTYrDy4rP|4_RVHPffyyML$f3#hkzXo&>C^34&Y^vX>iG$rUwdo z9?d_#9rbxUeqGgKn-8SmT>czw5+-Khk=F_XL-o_o`>pR0xmJbX<+*MeYB4fr#u`<~ zTnvUs1vDd|Xz_%{ze%-(f* zufFr|$;8p?i{PEV$zS&QzMDEd*W&nc4W4S(!@BAh{kZX`^Z4NIu|H0R&35}(4=00C zoQO_L=9~u(>>p*pVTl}>DGviO(cM*Lty&y4t)G>JwBQu%rTdr8-T%=3PwN&ZhhSW6 zZ_9;oEh63nP~hAXxw1BS(ms6n=cDz)o|S-x7&!&6(3S6HU+enDG8blUtqMsYAwd)? zhSYfmuN4J}N_5dOr;CO}aY1OLL_%@uH0Xz*91C1*NYm13YAJ!#sgE;Dbkk5&%+$CN z4b2~{UWdKsXWB|Bag@TyN`j%6;MiueDs~Ah1TT({6{_tZhqMu><}0V`Kk5hZt78YAyGu4Y>)znprtx{^%IG#l*Wt?DSGfGt35md zl}Gw7jDP2V(}^UYbBIG%_%GOhGyg06-y$0RO&?Hd$1Bg1My7om^05|o7N)Pr#LF#m zx;KbY7EvUp``Yjv-#?46(;~K!I8@#`z%;9gu~oF9svIT5NM+$jmkd{Q$^}w8jY^9o zPPi07uY?#2jy16*!4%eLme& zo1F9rur#WO!Kg@HB;9xu{3JbsM?iCokhd1VS6JJ66fbusWTXlp5JdnP2+15fg9rBu z4C~c#ykn-f7jLhztoU(K)8m|p`q_DW*e}_;;I-A-FQhdulW6}qH@q~}&)ABZ!64b= z#3$2ajNz!BSBvXQJ2y6$QM0OpQzf3r%qvaT%l*Ez7R`_ExviY8wbQ>f>3sd2X~7id zl@^bGY<`5QWMA*Bq+_$aEama>I)mos(a5ihu>N)97-QqN>ads8Z)@B$mbKT$xI3Ml zeWoQ!iM9UqkbeK}@t+?4%!zNi*6u6?oN8YNC=N*Yfp}?>F-6EA`v8_3MVe8gqS~*U$a- z?)CGn_zV8YAN#%Z`a=4Vo}Z9XW$(bxKaRisxcKCJZC0{MP7}#1uGjmzI31T)3=>p@ zOOX{yOzb4}1UgJKMM)9{WjW(aF)51PkiR^}uH~d>N#Rvr^>tXKW5onM)&*=7fexS} zB|B1y+1NWAn9GaX&5eLs)@e;c7zheNnSRQ6?##TNeBOB!-L5yyUCW}pDzlzelCYC5M>16Co9uWA=)5rAj?+OnVZx5w=}&kIaFL$)xdUahlq zcKg>qGD&Nl%v(N-1<8jUcRTdX+U8K7*imzE9oy@Ri}s8*S8H+c2WEauejG(MiWXE7 z2@wLaLW<&~;!y~>00U-tLD1SWg}NY16jkGM&O46w6D&AQh*j_mvBYaSvoQ+%vMh*7 zYyeY&)*NT054eJ*gB5~w6%}108QLveHI+wwL@_fOg1Zt2thyqDlA}g5baeh5P(WM#0?4o zoJr3tb70TGRXd-b0Rs@4dzVq`HM|^`g|Bygee*Ts7w>g=M0Q2<$&G&d29K|`C#85=l=iz9fS;QBb z1@;M*C&+JLza7!1B*zZE`{49`fCdaA5CdXDLmo~E2bFu%5D0*za7+HzGEcXum2O1m zdUB($|5j*=8US$?jX+5?7MGU0esfA@pQq8*ZLL8)(Y6{Ao1K0xe^&Hn=RN4(-Yj^u zMb|{?a>dS0zx-g0{%WogJL%XnYUWC;J^{D^ae*kn40Z^^loeoPUQcqJ5r#Oi^U2%a zF?D?qJdZvbDwH>s-0`s}_6Ku(@wsgsXX$Xv>VHY*hqoN5s%>evP9ax($N1?D%QylQ zhqLnlwis{4D?jmPcz=N0o~GDmCs=-dT5(CO$S-u#Ra9Is8!K_(0BhAHC%+Hci* zZ@Lg{BnPijhf_Cgx7w~QOw4*f<8!2~%xXI@I$K5CH~aC;Is>D#Qtofyqcs2Q+qlO! zLxQ+iUG!7s^_G=6AQ@vbdX@|BLRsE0&{IkOOQw={kn-v(3t2)QqYlg7>WN`k6%?oZA9fAc*79fd+ z*5!Nun?@M`;9v)1UmK+#O27Q!Yky%h8KBkK6fhtdI!u4pO@y*lr3d^)h}IjM8HuYWHqRbd@wguN~eMf&r|Vl=i)(r zg(sb9-(Uamwo6BT*!cYI86nk@-MQj?b14YYuHQ~S&gqXS*Uj9Q{{G?R+oDs3-h zIGh|5iJA9OZXE7hxkisPl1FcAm&d}&*0BX$oLcNIbv}WL*D~RH3T@rvvCmJpHma6< zt9=KVWg3%*aXfXSr@6A5?q@;(sD0{rKa#$lA4iAp+Qp;y;TUOxn**9dUWD7RW&Jr; z%P;WBG1a)(_{!_Aj7Ke;zkp*T66^RjQ=R2;v-yL`XL2Ls?RgRk5&)1NAt) z3)V7JOA5>1UO6^y%zrgzDO#ER+VBNe3bj?;%Dt!^vvQb~Kkn9TE#2(=&+_;yTE7v4 ziV}3EMKPPYzDYHbQtV(AsuW8TqGZ!Bl!{s6TxlG^c#w~I(6ff$H2Gx@KCJ)DOXojn z{oe<|QhRmjf<&^~R@|c;VKq7pp6;}1r&}GPnm$+ktiTLpH@z#{O3w1)+spM;GrpBE zt)!?8uADj|Qn0@YFyrY?d@sid+YiWGE!3eg}N+R9-I943*11(L8-x(Q(k(K6nxdTfI;5EHG)zgX_#xVnSl z2}j3wmdUtl4JrY!(2DJCK9j{0a&9!&#ILB*829^=-nX*0vTONc zt9pMbnka?S!UVZvF@*-WMvQ^Jwcnv2KX{1Dp~zyTKNl!6;$;Ok?IRm6dH3uEePYkE zIexLYRasi&n7*Mi5v`#dkWUoXYS}Y1G!V}upC|$PV)&f zFfpipi}*>hZv-B|Pnm2ahH_jEU6Gh z%$|!2kr~)%0z)Z_iRsPQF@q|Bq=Qm37P_!%qLC9tk1dgj7@qp9yBiWG>#Ug??TxS2 zW1(o>Y|j3_e(2$1sdDv(tO!}Cixmeiy3$^0-v8X3ZeRQA{Jh#ZWY}>vxK*y9VyMbd zZQ+QHMZ!m5dG*Wn)O|c(xBf>bi0l6Adi(7=`*QGE*6zUvPyeU7asMh>%advCRhCzI zVYIvmYYJyhA*?M1a%?2UKCggRy0gTQ)&@2ais#TY9bLJ~jlGnNd~-=6#?qALw6aq5 zv@kEU=tc=_E*5E3$K;_5E+$6PV6gxW~2h*(A{Bt*K7S(db!x2Mb>-r(0@iV_E6k4(iX*o3e z>yd|YL`X3~tNm)p3KbEhis@2ZN-AgtbS4q|0R485H>ruLlZk0q@vha)9-d8bmuopn zQV^6z4E=@(b6dF~sORl?>e~qD>(nQ~V5nOq>Z5Bg3zNVFzj$S)s*N4&44Oq2IkFx! z9zR#*%Q~PUS0l;RW0%cXKG)|>bLo~Ij%BPaDGYXlH)WE737qIoY}-mIN69H*ft6W-4U0}Fe7%D+QdLB01kFiskbyP= zXck>3qVIat>EXIqPvC5;?cn&HkG*;5`lF}t`-krTT?n6=B7)iyih3r5qfKW<)r;sn z1BwYk6S>AyAn`}bes1Mje$M%wm@J?UahX{)RGv)sIF?<+RppoYlWRr0@wek&65n6` zq6wy8D%sXk$t>leMfIfk+pl#UqzqAD2*OCl)hG{ z=F~H|?iEr1`8O&4<35i-x0CBzzF+~lz<89M*4d+%1|K{AkxAOT; z?tP(iP4lzlbk0x(_WIvE|K#rT#{=i7SN;KZtq&h4?$mC~+RWEQafs?mnFy4M(2Py@ z1PnDXodS4f$2ifM>2XsuTW|AlX8!2l46Tot=o(mj(OGkXLb8xbZM`sp2~$DZ11w5#GBdNaIpx_Z3FurJ=ZFNF_2{^4|Ea8DRNNu7M8;1B{C($YHf zltK96K!H>QwNl>fblc~|YtO7W_gkz5x_X|Lv>mNnKCLN@%?WurKT3N|Wa^%H)TJaM zrYH<9pcp`#)8$iH)EEc|;R*{9!107_bRv=nREiioAO@GP z>`K??<2EcrXn+riyaI{voT6}-V8=W1#M;@R$GrZps(UhfhN*4blY_$9vIfI#g%)1G zHI!lZPW0W+=fqrGZv*91+)+iz*hhWJ0ph`K+K#og6L*opMh(J|K}MpEw%WuK+sC$- z^HH@DdVB~g-SSkR{3-Xeh;YFJt*M9&R5ay8#sNwOkiuGk1d!P3PxDN0k*qi#;FM&@ zHiZFA#F}tP+Q)7%go75-o~E9|y`%D#*8Ap{#Q_4L62Z2p4*2~`FCFoH=7h7}c{)72 zOR^>Imx&*@%@aebL1QtYTac53MM}FiL6`%gdLb%zS=ps+u(7oGkuHCY;Scau7oKjZ z)okj|IQt};4R)js)QM6P?EAq)>6Z3sT9J1ksHY=yqKqKHZgg}oThvVZ=22qp(k#q0 z_*Kbq(~IYR^VY{uOrtw-51tOpT8vL7JybVpg_;2>(u{gR^AzE8Xp7zojJ=buf!^bl z+(|PLh;-CPGkh?~Gy8z!o3OxK=v4;)Yd?0lIBlz%W0GI^{V zi+8r~R=t<26+OfIHMC!edNlv#CH;uzYZ!bV-fif8!+Zx3Xf@VE+l1lzeS^9XXm=gn zRG}6sUyzX!{_`6^0$czHpdpa!op~H|RB3yDIF`3x_4Jw2rS}uqV&f;?>Y7;S-pR@T zhwI$hx<~CPGkaJ~!2ya5&e;V$(ujKWSUu)Q0+!MD>BOa@T@K+nlGBo42eZAcFMk%X z*+(;%!{kUy4U2da8P)=2gOCj+2$b8>JDPj1AItA9ADd}i?77QqJeKtn^luD3l-%qt znEXiUMq_llnFO>z4>i)o&ypc^tU@rGt)H^fy^;d;lq+XEH!1=0;{$_+kh=KXTS1>+Z zJ+6Jn3#U8PV!1MhQ*JF6PYNfiRmy^Q!N)XRM}-%Mm-f~B(Va!`n$D-lVwr4wL{nqt zvB}@$Y+La&HtW-%Uh<3HwSm)=!?2z970}Jz1f`=P<>+J5M;Y70|8iY?2a|0Ky|eB! z?dgd~nO%ZmVCy{=_0vU`))X1=X?(!jb@TFUbiKM~E#dr9|I!}zAIsEu0q<+}JcTYX z+)=ArrHCi&`axdE4EaVDawZGz*J&&d^CtJiQ~aZ2&ol6qJOu0{4@eG8TfUl4e{$~Q z*TS}*+M+s@zciEmSda2OxWj&;8hLAEDtlt=u|e(nJ*v0oZ+^cB`eEPtePf=+ewae` z-LBp7pqY+qoQXxYZbR&!+4Tn@{GqbJM!WNehr#2{)dNt^wvU_;2}8N#2+E} zT}burpJDzVl!Ye#3a4BXxLnUFZMx4d=w6U5U5xZ-B({YSZPPiEKM|Wo;=R3pvRr-& z_@PnfqB&bX`HrjP_ih)k7D7WJ~0lh@wdk4k?0Y!k1>tKT-J+DL=Wh?{*ZRo6NV zmtOIfE)ow+Vt%Y2I1lYgeDQc})0CK;Z}h+^HR4x7IL<)|4if(Ks(A%HBMB7`C^6GZ0>> zVpa-}Cs!B)7=qTX1lk->W+lythib%H+)!gY8Y&Ul&0f&t^PRN{?*P9l`eu1+{jI-H z?b9)Tf0f_6e3%wV=N$Cq^Yz#Fs+;<}Q5~D{(eU8%9T(nj^lz{Df81I?L{uaBO=mFT z;$-AON0FRIo`y0jP3HiPqd4xC#&K_s_UX*yQoOxy`FCu8^xeOT^Un<80t=VPWi%@A zLeq?ZoCpAGPVaxi!`)we`sV5Ewu>5Y_oV%B7+10L^hP=2`eyztmOC<0*%p3vfQ28a zCiV@_TN63_BoxTBN|95Jl_wH<8G!+J*^|M&gO{TUHkz$sBlG=HdxQjGJkb)!o|#9i ze2y?Jpb3@_o#wfv0z%Kz8*SSw~{AZAYh)tCgH+wm~Hp1?t6ao z@*N5%V$G%OVBXGXs=>&9UBRmD#DYS3B>at;CpENaJ5A}ySgg{56m2Im1Txd?UMLg- zT2nK=)ZJM?Hk>)bWvRY1RnFUkoX#&knMmwe%4oAlu!^q42xYi3(&L0OmYE4I)|urGb`qxsqAAIv;5m%dnf+mRAK z)qGjqKK}IeLwG#h{*s=1C8JjJ`SErACG>rb^8T|t#Wkb@wYey^GRyUcFo@YRp8eF{ zTXm2!@-c4S&AiiSO(~AQpr(p-A8J>zG3lFD%-1+I$&SEsnRmMh0+c9I+hLDf@b zq=nwBQA?c2&G^_u7Lx2h%?a8xKyfHvj05Dj*x8#x&)S_w=&5QC4f9b$%T@v@?m?VQ z)h)DIFT=+I&KF-bT9Zul!4eQ*EmaLbW+sw0Rb4E)!kGyc46sR_p-p2dFj8x(1~BBN zsAx%_1Sk_sbscQT=aK}jTRKoI10$7*&=`vqxX`y#A8h8@6V-v^4Lk#x=;1?G%k2k0 z)%)J;M6hEWDdIh}c#I#LU(UpZ)0=~*NkNoGaMS#wOW_)}Uh12I`HHPJt6-tY9%-E! zQP%D?`3pJ*u%*-p%jU`Q(3g{MYjM%)X;RJfHoXm5)9>Z|rF!qZ1CfDpwvOJteX?G8 z-JPW`sdHB=z7C;Vd8!rPo-?)~iyk_pef$j)Zp+y)AFQk+yWx*0^z2bZ z=1iDQa-qx1Sl6!Rj{7kO^;Fp5mAjnu|$R^=4UMP5{-BILQ5 zxa;wl!gP+rxD0tK(e1H#by&nHg;76O&gRG+`;iGgTR@9!yxVJ>)B_{iiL$W(TzoE( z2v9V1fLblC2IG(Hdgl|Y{V{_*o=`&;Tfhy9l*BYyOk=R8%t2q>YRaDg4b4) z+rt?oNE?(k4q`otgTS^%CHKg?0;nx8{R!kA|6;XibmSl&>g-sW5LG38gn&i9WokbI zv$UPNoO{@uGaBKMVg^pvK7QWSUcTMXjp8)6dd#S3!72B2?-{NyR95FMlb?)(Z7wzj z?Zb3Z=HAx1XQs%!bPIIa*$1JFGtP<^QUe7y$xGp%Vq~z*k*>~g%5~U2zW1fqw@XW( zUh_-4l$Xb!ZMNFon;nyRa+ARLan|p-*{eSPF3|rDsDI0;e>G4Re2AUbE+$yi#HPBg zvhee73+uo3vDwQ!v|NsKp+pzDiKQV(^lr)Ta5~m6M~vu@GuQgQp7%~YaE&bw26BwV z=BjaaPU?$H4c0RSfeqJ@Tb6YZ+h?WF76}}NVORh(SHv3mjA3Ty>-f*tz3H77{F;yX ze4(SnwO7FUx*@)QX5;?&=Hs}|`R2_;eWW__+0wc*xDbwrxuS|h=?W&Wkq2xIW-gS* z5;iZ4s6aEDS?8>mNwBPxM(Q`t@u+%|6v9aP#im+LtapU3!(<^{#70yZUCOq?OZm#^alOt42AmT)#gNorxbEXnOcM6bc2fokaXx1Z;J=g2KzJ-cDx}TNBKy+h%)ua09&6F{) zLtW7p4L0e$*;nl-pr5?!G;z8(m|Maw=k1RzzeN^LY)nIsa_YMY?=GIP(5bgnXhfZC zGt8W}IyUYV5ui>38`7qD`(e&uPKy+xN~2uGYYPkT@ppKOf!Nb4WiUXJtP1jKvF^g5g_-7DuM^n&ke4g#cg?lFpYIE3y_i^ zy7tbi%8x6@?uN`#Gyo@2TYj=^O1lR5B8GHq0HCyn$E;ve6Ta41_2WtSZbsf^uaX72 zUs3p2g)htG$In#&S>#+`52%1V2p;Sl0E0k*<9*m8rNydkc2PsnAZbE%2A+Wkjf3E) z3|_2m&bKo^1&(aKwy%c6>N|x6CbYp=WE5$Du@ShBaC2~CcQviW9W#t>JhHE$sav2F z>f?z0x*Dq0AU0fi|5R>2gI7&cV&fsBp)A*vf-;x zn&dF}ITst=4E=rpdx3sYtrC-(*eWI!XzA_MM(f$r7}PoY`d#E_oKdPVGw(PrK=;q*uW+r0U$sC zDBPeV&j7lspM01j7wxNzuSM>7B5#gJtEjEZH-QlXn#fpBF*%T{tVPG{zVzkC2wv1X z*8v4Fk{|ddRJVy_qXi(N5)EjjJHk?m5jMKq_u%58BzIYjhiC z+GfvdvokZI@!H6C4z}D&&yvxXHrH3ivifLjww8K%)(>{f2#nC`2w|9uhpRa@gb$A{ zr_XM<+q4cvn?M~4@r>1&e$un8o<|39B6Bx#OdROA?scAej9r-#*%p4mvfy;_-3psHOATl z7l zL(c)0`&v#A6cGvqK@b27=@8E!&?!8bodWu;mKA#p8-0wYKYtz{V{3FzMC71b zqc{d!%6BDd<5~exkQ5{nY_=Ic8p)jhl-=uV7F!)>^M&n&iw^A6J+^P_=HlH8mE1sE zbKN61FngK9lvm!`vw3&BkQOu-l7*y|PMcs4%%gKhM&jz&v^;gt%nV?gc<1uF?33v3 z-`)IbUE}PZJh}@#e?v~KRUC~TdFndYaGgtx1gv&hv@caDeAo(L$Rhb88p|d$;ADgn zjKL>T-38%+I9!P_tc<%G9@MoBmI3D_m>~g*I{O+WHwHLlWfb=ber@abj=lnnzFW`& zh3nME+}^v>x&Gy0#_GnW`|C#7ZjW)tbvgE(uHziAk)UKxOHpCWj~|D(e<~9H-|^{a zRcLd6I(k~uSse-XUSV1G4KR2sM9 zcL^{ReBrP&k{)X5JP}+B6mm_<4u8$De;m1^TYYNI3l?XMfG*os2f-otzr>Y)?!LgIvXs*}$=2XW^ZQT)R6S~yZmVmJ;s%uXRjviedZre%RUx$91^CXdgDN(x z!Kt3Y=Fzozv<8IH7CHx^#>Z0gIHqOq?kWRK6u4LhE^JA&xETrQz9~X-WNcr>D=)m^ z2#^hN}w2q2L)bt2+$sNw>5cz!c=byHSJRI79-rXXZc z-D8CipP*YXipYcIPSv>E(&@WafG+V0KFS}}V)g?;+Ip~m`;puh&7c4XHA5(6mN7g| z@~N71L3Y9l&Gp2yYwT2Pf)Lqs8hR3(9jWRN0efa76c7+(wm<=@l#(1#t_oytzHp8L zHsnHCio6aq4H66bRi{#w0@GekrYem3P>DS|Hd!4c0Zm_(K(jmNrLk6?dFJbx<4%nk7ij^R&&ij~{nSF5SjNhuQc)Td@$Q%n}a-9Z>$ zP(1Z4XXOkU(5>PVVSfXf>phD4uc+ zCL@MWNFg18h)Dt)5fzu~xzG()`Y?|WSd_RxpbH%%PUy`uA3>(slR+sngPC)Yf}CTYjZbM2VyRLs2xU5AM4{`Vsiuy&>;uj zgR7EQOF!C0HOAwSJVk7 zN!TbK6?1*R-bW7gw7v9P+b$$QRjTXipjlyoe(Jgop`oH3=fYEMvtoJC%<-prZu(<& zeM|r_xW#NKFqxzjE?Hy0`BJ1a9${j8+Zrb@gnUsX48|o|5tQ65vsHe6eCPlBd|2OW zj|scslGn5dC`Xlu_LD*5o%*`vRViy_d9|?st%I3Qp3ACIY5v|z-H z_=~Xx6_DUsP*yoKGtKVkK`TTxtiV>FWBNG!H_98$WHCyBVaf!ZgnfLS&3txL7YSAg zMQN#srh1?$=FHG&vT@(jy@L2GxHImC_P{|r;MT#KN@o??f~iU=rq~uJn=sC(>v=*q zkA0pqX2Mh6VyPIVk#J+a1c=#4nsKAHpNdo5z%zTw8hqK&6;dyrf=UU`xxe1A^C&|T zYRWN-je-PcRDu%EI+R8g>THw1>U=^AqWoT)Do~bVwDQQ56vUBaR2YF;C5=jNHo~Nk zNXZ&#x^@F9L}qvsCt6sL80#$4*zX&za;kz?IU*am7A=c1m6@f(l2FpMfRGnUK}u+w z%FwGV(S~T(;;3N4VGvI&gj|H^QZ&NCI;s`}cTi+k_M(M=r6a*$L_@1JjYh^b7J|ZH zFa zh=-)KqWYWgvy4&L*g_3d5c$;^r=wE50QJ7+IOX=JIIZ59Q4|E%NxNH4leg0IHe<1x zuWwY(LF&#FTaERi)X+U=tY0QAXR1q3v_9mlGo6^KfcQ15YBGkk1)Gw|8N@IGN?v$L z+?9T6iqAWxL*vKD!5ca0t5;b)^m^-X*nd>dozk@yUV5dZ7#+=0{fU$rKGyvIWRBQxY%>DUQU<9qfs2WxBl!4Xggl;_-EWP| z?Z}vyR=fG7o_zWFSZDQkl&79$IzH)h>Ie^j2dPYfWD=WNH(x(8eiQOK^LtKWMx}%+ z^5S_No}Y^%lv=85UcY`FM%{pYLYAeMTCh&Tu`8SP0i{i^E+4^lewahvS4{8md9M3Q zYRL1wl1DGSCohUh1{@2O43kt-Pq4^JAlNv$b(7(x>p;tMU2@6F?B!zy3P)$?LI2~JjdN?4{U^x>GNqj+ zd34WA?tyxD)SOWT9QEt!hF;10so%`O&n+SyM!jWf)2kI#`A4SSZ4V72CKxj#5v^ihhO02b*7vSwapO0=Qj}>0bqVfcWHa zg9+@sxbv=~*zW0rpV4arEmG1kv>$&fqu2)TBx_~oZh<}K91O27Bkj~fdxy+aB^Kuh z6y~8UE;!QdOyL3F4`+Gu((Vh=?F%z%X(g^Un*9}p-Z&+v2x^*jx4r)8xC%W{dvmzR z6kvct00JWjGy>y9b?o8tbpFFzNMCRhbXVysoH%h+BeiBy+CP*;?!qt8WpxO5++Z=) zp%Yyr*z+)HD03A>4i_RV%TQ?|tV6+c!*okFuF3xNJo{^Y{#@L*&E3HdfACj7{2Lr& zdJ4YC^lf*~L{zpIs&Uj_rw_x`F`wER{1XTM0ubbq5MTpPIL-!aiNHzukE8{z{ap14 zc2yLvN$Gvt=~PB@hpz9nSOm}vTB`8V+XgdQdOh{^R6(d-isy*XPQNSk-n*}H7_VM~ z?Rfp;R+y`})jBMG19#Bddn&Y549ScrH9%49BefuSYyv~E>Ai{j=3@7QCN4Y#ZIB1V z%?^$c9tB+$ffYj<0@^QS@AMO|2(>H$9v#BV`o4$?o#7Ap0oM<2}_F3Ww;hQ@r75oHfII~q$?bvhKqji%P~2 zRE4R4kChL)g}Jn;ex4fNWw)Z_iJc%g*a*TMI9G zXJpMi{|tEHq%0Kk``^~Ldpmu*kB{;#;0+^yZIs%#o;trB%=7MjrTn(0U*5s>!N0-4 zBDNgDvvWK1fzh|77@cK{QsvoW-5YawH-HL!n1PPpS(dpI3mYE(v@g)a zv*}>>Dz)^v`*D=*T?x!SvmK9qNW2VDCsM<@(2cP#dv(+FixpqGwGl38Vb{MHw@!WO z-s|?4hwLxven&MinIXr(2dzTi725G&za84rXiyzQ(|r?5@sK#8S2h~F7{Nctl|?ox z(LafP=LYh2+u?|Ki(W0_PeDpM3oSYVNF+j<|MnLD%#S<{){&`nD16a>#`CwCCMLAj z95eop{(IOadt?h$j`>9qJNnT9Ci|;+m+x(9Enez#+&138@tj>ZyMhOLQMJ-qAQ(02 zFMl|j`~577NsmB3uS+RZ7%3(F=|B+?en74`!Cp{7f?&pZmbq z3|nQK`Opy#u+VsTNaC%VZ-4h?176O|gLy>t0rItw7GPSOvJa-H%q2~>I=upe{qaI3 zM=9((=uzLUrm7r8BVDDqLJ-t}i_REKvT+z?Fcm*Gx?J1ZhAi@>7?`8$1-zw`Z!C zpY*lorx{jzmAdvgyEt|rElwR0reG>Szy&Zyy=I_&8B#T77*uUXL&$L9F)KiJ&Rh?k!e*ulL^qHV@4u_1c6}%OEWAYMD4eg z(eqQul|}?OF1X^p*2`jfEKQ%F`2s}A%0+bel4ToqHmnNH;%d3Mz=aE;C+E7CV5euz z{Au`k;F=ID%uRC2kl*)USI;*VNEkJ-fD5#}GRV}S!NDv|O$pFL>2p@?;0CYWQwIWb zBRfNX5q03QSgSzINAzZoC&sNNxi;wj=-Tw;@Pi)G!s6uv$mngHZr(~b%hBc8!tydz zjY||FkT!W{pkCfz^`^M>OTAs{Xr`L5xb94t5x0gd-G-vU{FrptbUeZr?Cu#{ol?WtBrC1@rSyaLq$>kb& zlOL^Inf!0_>wjCFPkvUXM0b>{lBpf%sC`v4MS@~TObJ*E>1f>cZ_^Kcwk}k5%<-q@ z*YtxZFTRr2T2GdY9k@s9qzdccKxUF3R5Sh{l_8>~k3a#6fkaMmvKBwx`qhu|j^Fs1 zD^7%iowQv{^@n}@rLjAxH-B7E>+X6_&}lud7^EbUMfPwdOf!~1A%j5@YBEieIiJmP zuW`A0EyT5iYGK#SB?VJ~n6nKo1g0;XZiyAsW4d?K35+=|b#R?c=AIly;~)T19J$qI zn%ExOp|(y?$yn!)bzb*PHTrfv+uTep0-MiT`Tae6GWxR*AfYmm1u;xys$=}T2RYKU zzTjHJ&e4;G*6cdr=U668Xh$G!&&`6TS%lXy|NoWvHa`E8uiJB46IlU^&wZTa05iB{ zf)(C!Ji15(Zf&RapFZ_#!@S`?YCsXXKDbCDNZh0o zV44X<6uK4?V{pQQ9k|%@vFGiLH}DjS)*7{BAOS~!tj1_-6JHQx9l}XFRG*n>Jbgqu2eg}mptl&YSRz3Ov^vox)`46`A zpG4L>WM@Ii0UYRm9u?F0EFg|3w3(n1WStG<^_KfQGb+vZB;v1HE zD>P;68R7I1kS!}^7i2FL0M5B@Y?oiuHB&EhB76tluKCq^?da>6`eikPksq%2ZQ7oX zX6~NO#gjZNwOr1-v_CiU(2FC@>1MSBFIIb`ku5BXu&64vLREA`O&`tp(#^WavZ=n* zUSG0Q39c_+*D`~rN+Fy^e;alOYUW1LZkf>ObE;3De2ZAVT}Y+k@ft$scj?czihVI()pGYb+0nn?u>& z>HX2Xz$ySqhu^>ZtN!p_-IAAZVa9aFC6^GlT(92up05VuYFxkV+@37(BNoE6`sVYp zpKFsWN!#2n(}#vMOJnFLOeGFBc-(|_WeMBFdn)0Lc*p0?d6vzT;$Kqtc`hx_HC{_@o8R2$~_KrCq& zJ=x7*#|Q<7_j*@6>3)cpKpJjEJhV0c)8pdbyk_(5R!dH6C+JsotVtK^nkgv2qRMdIGcAhLxVe(xnyQ-DRY~G zLqbZi$SDN@0eQtd$cm&vz4FmZeFjX>O>?OQQK@1^K+@Y)zVzRf@&&pH+L_uOa0Jd@ChEoSz|E|L>jRQKH;G2Ty)^oJW z++43a^(NKt*7q?jueqy(k%>FjpY74lyd?lg=wLiH5lVeD`qsdAc=VvEs3DKmn$Nlh z>o2!XKz68L3^wpW2KmB3P8;lCOR8eSB#ZuS1uqcZP;LZM`UcB91fa+_4&!Lzg6HM> zKIJkzLgZmp7yua*gb<_&0g+Xx7vdjK{*z7VRAWBaaa#as@-zo0jusOh>xwgI=^*;7 zPj^IhouXG2GMKIZ)cRc$1J?RLY-QlpGMI)-Wh{#-E|#wA>MhpDj}FTxcI&&^-|sJ9^g28{N45^fZF2s;fYZ(>B~!2c71T93){K*CXGc8VB6K{ zy@^GGQ^|{o73YQPXbiU-MnxcZfjRg(-GhkePN*=S3bqUWsn-DXx3T?)*x|uh%YC(L z+`o}TVKV(^O!yw|XQ~h#NUgaK}bwhIR z*1kT@a}Z zvPaV~f~s)XV3sle%Gvki_u=dM;P-gL+mR`RwLd zAuyk=jXidP+|VZa<(+t9qmwn<&5T?S3y3zKf8cJH|Hxa*`#Ea)oLA-_ead2^;Ya=^y+zI@|@UfZxj=Tp?aE7F^JB+!)>-@kj2w?ln&CNZzpMnJw?+{9KH*;-hg{!P01TR&?vLqw3pgdCtgZAy`R;5dPxx3a1oTIDd_=6M9XFxCV@DPDPTCE zg49@SzchZh+e#XQlW?3wD&X>NUVe@^2EKsA;Z`+bVP0T++0U_4Q5T^|1-vMlLq=gk z8g|TF)up;Y5Xh(Q}=vcntFxVR&FYxN6a{3hqex~Y18DF0Zj;s zRpCxW-x7mFMslXW!#K!@(Amc-$_igT@7G_Bg`oL=_el zhMD3B1|~Ms3W~s(foM0^v}P449W|zd05E7$Mgi@rHiMh0#85AYSERfFGPSF_!UwD>s)-&vu6JVw!2E=EvRRGg9rLAN&A7c;Mwqx9l&3SRq^^`+ zMJ*_e25;a+UXmQn_(h)ajl%T8nQX`fNGw-8H&=ji-(OIdCmGc9ck5W#ebkGW(@(fi1b(_KRm zQh^*;aP7H!yADP*-&dcxr>tHoOnU7XLISg2hW%|6zUb<)iTK%mCYh^8##|s~>o{4s z>Km((^f<9YzCB4y8UzQa;!t&Ie9kBYiHgLCz)(4seD`jOHWe#8VR#sq>RU(4%BQ+w zd?79G7Iv{o=&9;3b6xVTf&X_uS~EX!bw@W3iK`-QB4izOMj3L!jC^V9m&f(f`#sX2 za-at;zWWbe$^UJf;X7$FRSs;2u%|aS`(nICuJKG6x~XUjT4Cx43aQ6r&jXHsFqf)w z)&@#eTW*kE$-z^g5O+m!}All)9+V zw|5)8OTb!f`|MM7O=B+( z7O*zcc*6CXw4k?PEJYJkBU?fQLf`DBtuS1g(gtJ!mxkf$HVlMy;(q%v|1-kd!w$1u zv2yYr*g1_SY0~etxx?N{UH3G$WyOI7=On%z-%la9Bpi6K6ez*rB_Sfy1RWOUsQyp^CTnWch@#8GBTFC{=af}xm zJ#`1pG~8uiy6USsi+UvL8rNGhYJkKff_d}iA)f2D_SJIns&;88Fp-VKK=%nIq(g@g zcT+!)VceXc2tWxT=^p3*lg4yk1okN{)=MMkKPTu2S*3I;Se^II(6e?L0z zsq^a`b?gl@K}Pd%HO?OCX@Y`A8hwcQ@Y0<5?R*fxchF7Qum7IEv{l;JIiGW>U+hPR zzdR3|$HDhDo4o9KsXhx&n2am;D?!PY-t+UhJ=3nfq~_v~e%N?-zp#_TmSilZQkVf0 zSlN!$Yd=s5+pYQ&ddIB@LncE;S=o1fn@4$<1czyE3+phV%Wf1%QQF1LY_yf0ALidE z?!NW@9xSxL;D%>I|9tzY9clWp7;@M$Zr$!W$xe@Rd}>yH(63>?%JKQ!tNo>~gO1$; zjMgxKJ2rxcra20WrC~Ort=Dxo4@q}wk@1;GT~r(?rqHdgEP8ZPOijj4#h)56E9=g{ zkSWpH-a>a~K$2u6)L7h2c+WzeC^!YBPtm%*YO`&PS#;GN35+JCzQUtW60;`gn zuFnec8+|K(JK55xJ8`Y?I$bYkz@B&e6#FQr4{pv?qz5t`3{EY7Ei!Y3Z|$BD=j=|0 zDX^YG?S9tLkQ!BiyQ|JJhOBn)tpBlVDOLAj_Rtct&#l|-#_mD zjeb>!wOXe7q2Fp|ldmSI8p98T z8)gOQj@?)@F=a(;WETc6&;@hG%B*XcJE&koWJKXWOl{a9#hoNaMJ{EBXlo&>qwYQvS1kz*KT}IW;Uh$8nK!AILXbv7j}NRZ%&j0-HSiW!`&CKiYt~CW;}IbWBktZ+<-bJ!13Ulz z@GmAHi{pv0-~mA$;#KXSDyj*nV#O#xtWgJz1&{(!0DD4F5)B|8paf+e&v(PoGN@!B zkgqBfM71hIDRG=H@2aDKR&GP8CfY%7`k~tVri)*_>8?iH+ok7e{~^u&O8I};k{pO5^j6kbqD?WdS%mf_?VpRfcl06e(qXC7C&c5nw>O-= zBE4F<79^J2E4B@D?6PQEj<*?~UW}+gfQ`4mdpE`N21a^7di}emenR&@n|F_bflG32 zKlmf?v%?oKr85t=Mq=64XU8elxhUjv@f8B(BQ{hO4CXPr$v#I5sAW+)FJ}eY!+V7E z%*x1&Y1ojEpl4VRvP3R=Q#XMnc38inJtqU{LRf5y0Em>ZFE?M3|NngX|H0& zEMkXyLCT2c9GPCgwjIYw(#XE!9#CXTf;t=2<=`*PWMlCv3`BQs^P9r^I9l30L0uif z)QwG+6r8AE)|UtNv?4luIM;7h-*2zmp4X_4Vm!m9tnGU2&Aor4-U+3x>Gwp&{>SDo z4~1AFjRbE|mqp18}{np(c(XGdSJe9n^eQ|sTK)3=GG^U$yTCgA! zbSQ)sGIBD01`i4xa$U1qxFQrq8ney|Bk7}ltkakCmE`ao<>i3kOISOFA>9@QV7C%- zNN=|M9(vrot>hs>nSmKZ1RR|0HYV;ZF*?i8GGbdIV9HSDINz$i;hTCXbVzVq>3@H|loU5->cjkB<`}wrZ8}Cg^4G8nIY~BzwhZ6`&p{7T zNi5;KviG_V&yWFNbZSp|w3MW#0Zo=|QCjaBYIes4mv2;(>p48wuX=p{&A+^zld{}e zS2<6{{m?`kF(L(0ZrzvSymDRC+X+=jKSBs+#?C$%`tYSOU%)Sc@f96!7xbORU%@(c zNkyXU<7}w93PV`NuCs@4ep_-3(Sp$~n-$zrZOCqWhSnwmm%GS7+CJN&Z!DJ}k^rK_ zDGz4vq1cJ%e*Ag-c+T6eda}9M{MD!WX(D3|o=$BSFd&S)nf+tq=Okg+ZU;Ovw8%nT zI>Dx%cnMhD_>e8IZw>og^C2lbzIfa-{er&ooY*{^Z4?D^hJMF0PpSuJf;YX7ltcpX#h)lp0>SJjDcmx-sbf zm3wk zoPMl#BRU^?7TX^opKXjdA5_=Gk{ox(YMI!baf$h^&)T{N`hu5WFx0m3&idff988cn z;aG^m7X3&wMl$>g2~ti&)rzPA9-Ml1W-?vYFe=Ah>vl8Y?_r9PfQAel<9WOavr)r& zl41g>Z=8ILFG4|t!347oH(7Ejab7JZb4~k#P}HRnK(G*H z@<;;V6w=~~FbKiGbvU6dX^;WggeJf+qA4TRU??&Vh=yw+P@Z13K-&xj5-~T_O9wF1 z2R{Vj88tTya8*c{D+~xev8vl5e9b=(-YJ(G-ws~a$aKaapnY$9FdD5eGhn)zMauAx zrU8IqEEBOsP^v-(XGH=+Q$3z<9z5~o>!rw|^1(yTUykcP-*?_uRIfp~@S8+mSBt4QIAWbdd8=1DJd&zXeRb~k$OZHCehN4Bj2g7`rJ^Q ztjRe#rB^IhWt)}wcsSwk9B=t96A7}$Ao>+6Zm-NBMd1Uz@3^2f0be<`$aZiG0Qu#b z;Ewg`=M=&euEQ4dLy#q&45|f1rUhzP8#y5(qy-=(2rO``zFUCD`Q+%gdsxhkr><#a z75{o(H>>2uAjB${^Wkfc@Ri!_Qs&jrcY^McnO%9d`UzcjssrwD`Q8fqig0J#x zWQPv8Aq}G`jq|4#krh-muU>qsogw4l;IkU`m!vA7f-gWBE=plgYFOu*U4c}ML&NU1 zR(~XHAVh?+1P;<1vw|!xjVZkgcoVg%bRM9VoZ#RUT9ty zY~d zS1=ZFcp8qtsJK$Vhx>f6vv1&=PSEzLw*qwk=q2pqVS%TCT3~%GsjSf>YU)*#Qa=7<2^j4xzB40T@T} zV<~p^4PGM8!?&t&-MnT+;tEG85h7{L$2>3Ym+gH{_gA~@^9=qvF3*3Oe>!BtS~%aE zub!^*IPc{;@A2>X3O>Na`f_~=yUrZHov)86)Z68)DG#eu3uc&z(AjFHLkrz#mSm&G zIAHLa2U8-ggg*u{ztnH_$KkyTiaU4%=P(5(+)6W7hugCmcUv=ru&T#8OS))#`?AF@ zHJ-eu-9XzoBj|S=(;k*1LFN0Y}c|Uh`1dpSAvXtY8< zhsmDl>PBllJIANy1R|OX&-AY9Yg`{8uZ#f^Zoa{8(NS85V;UGo^PlfzsN8yG1Jvwl7ZK%vFyBpYV_=x=*=Afq?{zsTV&# zil4Od&@cS>cI#TI3!Nvs%zi}ZR+2Q$ARJNWIns-r&;y?Kj(z+1@n6($U#v|pPPy3F zAkO^o{G49n`BTFAt`#IZ^k9loUG<_Kyf*Nq1)@LU*YAIaYVITT7d+xY^-ARxqBe0f z)neZ%-QTzNYL5hyS9Xnn*JXMK<=O+Za?-zLpX=dz+~>XRSLC}?`TAmk5PxwwE-XQ5 zW}vi@@-$m|NZpxkdBJT^;Jc`yta=r7WwpK$3+wg>y60A8-gZXiLi}uWU1&fglOc?~ zP$FYsBqIkS2b7ksge4VTx_-_1cqZj)Gj2%{R;Ug<6tc0tjvl__>m%f_e|VVhu;} z0B_-iN2Cgng2)lBAoAcp;9J{Zn@;Lylho1Aa?R9hKeW4N?)Y_%4^p|t#z2T>ha3(d&-NJrA*1@otF%=CJGQy#?ms;h5 zW7I(;*UVRkZmzX(t3wzApmqh~!O#J%S7}c=`(^uhbI%(K7sGi_)Ex&O3-5} zAp?Me#CCfB;$zp=oxp}gRmE<|Xag*jLK?^yhUT2)>Td7g*zGP5Syg8Xb!~%K(Mb=9`HQ^G z<+5|V58HC{>#OrTeoo(8nHS}AgH)rM^8ZnM(Y^2gfBv~~bvUc~!v`@@J2 zYfRj=_90Xze#hKp@>zWc6OAO^_-@|b;_!X&zs+MAfcaDAMTUK0Z|mtKtfl(B(NaUY zIDo0k=;WCTzw|>RX9F7=+uSDbVTwUwAeUl8cUnSO2RO53WNYPM<-(KG^)bY(Kr2vy zk_U+;)UZr7PN{EhtRFr7XtnyQgM->@k9&?q-=6m?P2$C}9dyh;PUCl<h2HV1#a zXV)O;i^J;P+3IgVi#iu3e8tL z*ci?l-=6Wub+a4K!3-fMLsa zcg0WxmpE~V2-70DO9vUh4K`~w{rt(BuU)Kg6BVGz$%{p8@FY^9F=e%=(S`yn6!0+} zwE2-ZE?8rQ4zswYE)#vjf;W@HY=)>HPEH9FBx;_SiadTy=cgmU2#$!7KH7>-RXJn; zsNlo^`vVz1ys(m#7ZV&V2drj^KH7ra(OmGTFTv8x$R3w-o8!owEaIlsQ*ED zp)c^Isg8h=PmvUskTO*y0jq&igi3~o$;OD+t|k%KWr zTEK|qP#KSZM?kY8Tfu`8#%R_PW#UD1vjLrTrhz-%c45%Gw?d=X^`6;ALi#Gz@E^Q=9?E zwE-VyX2a%yTU9cf<^dQKL0YT1PgL&Hed+5A_NwGx5hE^^{w4HpduG1=nAc;>M{cmG zd@(s2zKr4nuTefkueB2tHNd$@M8$$l|Ne$Q#rLzmR|ik)h_~f#e&8(da(yOnTZQm{AG2TNv1nywgkyU?s?WUR-<)!K|Mj+{7a9lkzN_OEZGjb!k36JO3R1@2o|xxV|MU9e+Il4% zO;`9D9jJq&r%IJ5JiHXg*SnEn+80Ye*|zQSCD2A>`^8xyFHgMI%3szoR^D)PNPkX% zQM3pJ2$#OUe{JWbJS(CDY=D6&#~)FzW(j{*C1fFYs9|LPRegS5z!F#mrRFFVuVB=& zVO?6&{tv$X?1Mk8t-FJVE7HZj+oi(hTVV0T@!q84YguvOCm&fA&zy2)zC4IcV@*k6 zQ+77rUN|e^^3neC{ADp$$$1Sy?<{~$%V(dVtzCNM&S)NH(z+hSHP7Goq70Bi0y6Hs4rEDZx zL{$?hdKF(Vrt<A^Ks1q-Sc<%ADV*%BmoO^h@# zsuh=|zs=7d^tqyX;5Q;R^kTwd9Xdx_t7Ir)C2vt8_|E3L*l<(=A6Yi;KD1#jffN{4 zv;N?H81DyioBQ*F^E~)@Ebh1CRD01sJdgE$AB@yJsNIKNgX~>;vGFp&b9_m0_L|tH zJ*9R&PtK3t{k(SjQP*;2L&*j5Q{IZ8BHd6Gx(q5lJZgOE!dpK-AD5FKY618?%#DM=1Ss&)ROAUgpM{b7jJ^+qvq)MZSQ_{pYuPT@U!l?49{~| z#}JtDLl-a&@BM2a-aaf_r0#@$t$UjV?4aj0Ov}^uNpzOR)Y?WFsBjwJmOrLqZv>Nx zr6NI*Y&Ge`G1vmW8Rqy-95q{Liz)@NBzz3ZXXCah*s&5~4Dr;PVTuY0;7)@Gs6D~l zpD+0V;lS?+_d3`y^%Dwj4L~CiZ|ZuWIK8a98`I`q*@hqH->l8E%&F#|yzaj^+!48| z2vn7k5KfRoVt_ax#Y8ee#u%4b?!Cy~Yr5%ty#}T}lwm!sV)U5~NR{lTwy(bMCRjxZ z0)~8TK?(?LBt4^HM=g@Z$}~CDD+o7Xrf$i$S{5MXDpZzev4klV;Ycfm2*dYr`}rZH zXSwst&=cIs)!}%c#E=OT+X{XE#P{X>G?WC|8lx?9A-!}+{XWk>6!=}0J?>ug`Z|4= z(?u=LYyg7DmFE-bAYp??=Cb@S@(^%aCtk_lQc8H1Itsk&djI_ExgDMa0e1R8 zM&*H45<2it`T_dNHvd}VbFD>sj?bsFt9dA3xxBH+U)>X*OaB|WVEL`OZ#U_FR=^zS z5o+?TDs0A5?E#-%Z|o_FSQNr$&ZXhU)gr$h31U4<&o9}NwjUf5l@|peJqx%T-==cD zmiqz=v-PYW^`96t+=(U9#&(C*b2@EvFZ_fQb1kPIsj zg26Ig%1b$lBq>&28CA)Z7&S+SW9StJOR&Dg$Su+cb?GWeE5Gc_LK$Jxj1W>GRbY{b z5~)^V7$R0J(T z#fx1p-OX4cm2NtBjKx?;rom$l=W~B2Mm5Z5MLg&G%n zxqti3Cq93>$y+VdLfOQGfS{s15JP=kkJ?_}eeWZbMgjqr$n7>(FAh)V)3J@Wu1ch? zWQKkDd!sjZNx%SwE})=HYfzD^`GsP|L@_dU1`QWOP7zfW(EWLQm-}#H)n8xxo_+U6 z(ctAZJvFEyLWMB_0t=&{gd>nf7MKHye(-somK4IJg}Pso`HX$hiFoS6&h^8WE&G59a9~(1- zlLt*oxrUcp%j*b%b=tZ$nJHYM?Seng0h#*-Gdq$^pFN`6%4WG$Hv@{p8iwW-yq0pB z5Wo+HUKVDWPr^^xt0VaX@%A4D@}FMh2X(VLcW^SBIJm!dwn;7uPs2uZ0DO{JQ;F06 zdDy|^`ev;HL8>s%9FSlTl405tI-`BY`(w`UO%sf8F9Dlr65&mGe#-QCj_V-39{Vmb zuhoMgLEX+h1za?48#KPjeEwMe^4z>lA-rfWA5Gn7Ti43BW8?XG>~RC0J9bJlC=2QC zm1Gaxkh+k>CuH~Fg% zuSL?Vt-gE57oNMtI&;R~9`-keOC-97OPPY+fv`ib_Pro-bLx)n(MPU*2uYS)+JRWx zz=nn$PZSI%*Fp8k=+pQ9$>sO(39tG>(p?SQ`>&2ZK)-P5!n-{pD#!ogLS#a@&TaMY zN9PaXUe|tG`emivYDX0AMt$l^X1MhU(Yc`}&u)EZwdf1gcc=9A#Ex4+w_PS{Raaoxa)K8*FM~TJq^}3}#2gXoo~_jJoDBdynTZZTUS$$Ui^oG)_~0WP{z z!_GlTd^h%;qEA&AgvPS_0jY$x`9_e~!+PzPMx+5asvGtFd#FS!W2L0SFtF|SHa}e) z?qO_2Knq{DzMQ+M^HJKs)uC%HF7SsV`oh+EeC9Ky#gHRkm>%2+=qVVca*&cBqX1YD zY(hX~;S|gQ$fypQvfDKj%gLT7IZkj@Xh20Aq`29HbTql4-^oRyAr=vtY&eDw5mF4j z%K8KAbeSwEhdQCPv%-btm+wD( zg6=cPBU5H57DD`3y@i(X4ExfTv}t@_CpAjxxdJR;Oa!8!htd#W0*NG$MuO_`)pRt% zH7XjQInF~)EiW@b<=6u0#1mfeB!j>p_9;& zS&sjJ);3AQmjj#y1eW6-d2ep(C~)Ys3ck>8dqoQvJB~a zO&z%uug6{S?a4cVns+m4ZkPlYVsPi#>pETuARvKKSdWIfKfB(f0|MmDXHAj`ju{2N z4BK=rh}fAuTywqdTj;05Jq}&ifFWIxK4HBCpee}l>DbUV!%fmNBqz46B_K`n^Jo~~ zJO~mb{bi=aEVFgKwYX zlqz8{&a9nTbv>EcUu0OGFRLgHn_`7@8k>>)gGX+jv6}A>_qCtjKi(X*Um?E&pz|oK?8c8cHlx`S|Dv{+`IQ`>{Sq z&U=WwPEKWgjDa87&Cv~_Rri8J2hzB z0fsq^5Ky0}CSH@Gxd5tbAcdxRBy8i%hCo9jEOc~k^oKvGqvhUy`#N;(8iF zB^98{@G}OG$i9^p0H~pX7=e|IEI?o-h-lVdd~fJE$b`-AML01fh*&%g%gCM{YPf02 zESy&0BC)iIM)waJ!D4YnZfU#WoO}*l-TksO!?NDUF7hIcS8x678`ZFr!~!lmh7LV3 zhb|n!9~awR$OZHKcK^=!W{-I+;}(l@Bfj`l)$BWvXOY9cAc8~{hBoa|k-hm!! z^|6pKtPcGJ{krA4>ZQr44D3`S7F7ZPN}f$9gB;H|!|P3GRQ6n{(#b$SoQrRdg{>c6 z^G(h}P1s*<0yWli4$3!Mtb854eRQSj2}SzE-z(O`Nat)mKlLzgn#X1O_Nc+v`96xW zG*;lTCSv^Mp=RJyixrDD)L5Pa6a+9=;;QKmA;>3wlR5kG=JmT7`Vl6+_qSgDhJMtZ zuWxCpCBE_5YO6_CK9Amf_&8waKhNP`0%!QSs-6=c zfAI)9do0q{=TSIrenFiM9rN)fIodmB*93Elqxbza?j1@bef0E`KE>7-1v? zInYBG1(s2Iq})IvD|9VHW;kuHVq=tblP#_kh7NHR6@>sQ;cTv5%MFE%TyO6JsK`hK zjK@Zi9SL6B>PaV0scsAW!Cd=!97pr%SiVH776A+J)5}@j}uNkVadUl3SakceC@xSbCLU3IM17(WIFlb?@+9} zhf*KDwWX@ctZSE$vWxwIhtbFlYKe-7I5JvT0wA|!$0ZI5!nB*s8|%5-0sPs&C;C_> z$W2b zyw^@SkGju;P~~;ocBfgI9XaoW%CYK@M~Ca@&{;N@alPc~ti)<=?ipr^Dj*ZcLL;6a zp(3s^7@zh-D%!~Vl0$tH0ijvEB3{K34&q&Tt3@=?mAT0R4J-*Fs9*;3FYl9`}3c$G#wtrz3iuFlu}eY&}hH9V3W-(}w&YFL>G{37)pQf4YB z&=@M%vOL1{N0|5>k5~c zI2K_#fw(x;%I!6?uj#oRJJJ|tKrW98=BDxh`LbR>pZw8CvSV1tQOipR1-sz$vMKxZ z*5`KTI9b%`)djlVU*->)u{Pgd!jQkAR_$zUM|9z|Q^=AtNnjWOaTI#jI>yFwVT_er z!8YNh6Y3eAP{n;C$c2qmx!SgKGb(dNuZw<#*(8k{+R(*Bdks1qEwW%8CG1@#=(XLR znniE-KOiE7;x0rSBWuXe{i|`Y2Bg>Oj$4V^@hr;~#|cW*A~R>~d7-|LjQO_wsQ1V5 z^R5BUXs!ka6hV+EC{YOq6@XLVKqEB}Cb0}R_}fE&Q93*3d)Bm74tv`SS;oLSPr6@M zw?E{1^33CtBlJb{#{)g&W#tQfgqN6;fc)gG`gBFYO)Vx*Tyks=*Z!y-VJ z7|9hNhHB}kx#bA0r-(Td*E{>mZ@dskLYUrb^oPsgXd}8U3WB+7h~h)y5x=(j4+%`u zJAq4tWD9T-roK&1i7(#YKh?`BkQ5kNrBzY$pwlj>4TS5{7-6p@0M`VdM4qS%I0z3O zbl?1m;-TGdWsZ8}r_gIKS8boj0G_D)s?@@bnGFx~cPxAnLV`o`%{Qv#1qx)eZYp$U zOvyt+C{W#c_LOQVozp z>3|#B6*a-Ggb-F6gt6cbWQG!19VTDA`E{vZ1+&-*^WTr^e<1b0dNIxmW|wuAT)oDv zbPu^D8bb|%VVJn3_LhE@)49W#F!)@o!Kur#(J?q*FplJXBARVabjt*UlJ0?&yeUJq zDJpfXNS^z7N0sO&fdETDw7)+o?iY3WPi-W<#N5j@R|PejvEkuw=;r^k@$gugYKS8U z`u(=z&9Hyg{eR1L2%YKEQAYd0%-1{jc;{a}K7Zk6j=Q(x+^MN_!&TbK%MdP2ZQWV& zY?ecH&`gXMyYCNcW4B32Acd;M-JunHDhO){SnL|D7an2{XjG1ZYozHk(I(zFn(S{C z-V+>l7$nQ2wi7BjsHq1*pTrOz3csbewH2k)kx5{#Jhp0#e*5c~!?^_7kS6vgGc>tf zf^5(V#gk}_Z-@_Afl?yZKvmU7IMkfm)Ejd*hl{VAVKNOxP0w-MlftXfQJ*?CVsL(qWn{}Q&$SK(0_5` zbHsOpMf-B&B556%7?piwxH|lO{q@r``6+dL9UFYJAqV&y#}QkXoqlWktnH7vdY)nu zinbw{rmWz9hw?=Ii@*P>AMDv5AN;&Iy%iEU^Dq_uX!_OK;9IA|H@~!<6E42=rAt#9&zG78s`6pbqCj zfFN$_y~Z%*&pgt+T?vTzkSjBvuuQcLZ!?=dfrOzWTLuf_A>Gs)9n z+D?1xWMIcCFQUhT;Fw@QSI38aoKG;%K3?7)2NiiT^do+)CPTWhUPOLK_g-9MXw!F} zJk6&eiczVjXPpfOW0j#0l!WrW9Y{>BaNtnf%iX?rCs%_@;eg#j=W zjg+?02t_J%uhAx0tUSxg<#+^JS;g= z(ZgvOB_6RdY=N3}D6FaIZm->H1B60wSV#Rtkm$4(YRo6@n4o04e4Z>6f$Z4)FxyWI z?JBJ?f&IL_*nV>5IUOCllB6NT3805Ga+J@rUuL9kFK|KGBQJfdD!|onw!~XV#$pC2 zi5eh8Bt*zi$Sm!%-AcSRpVNYrGcZ+Yqe>cZh>)V~&Au%@g=Ifyt`K=o+X6Ior#f03n8G|qxDjr*a zmta%QEl@L4FqG|=k?&@uo`h-vJCvXlW6EVK7$rFZI**S|VK)*u^X%W8v+tjfA_eV7#dX=CPsWhuvp@GgrO>$n| z%iXOj9k10(ulmVv5VIojivzRt;-h1#LKm21R;{BP@a=_6$Noq{Gwl%+&|KaWYKi;pfEBFv&%2KH$ zzIulrWqPc>X2ap5nT}$13ovDoDILo`DS#DAStgr9VHQnVm-rF<<7a>HZ3M~Tc$ECaS0IMCVU3pZ~DZEG}(P&J~T6f zR|mL?bVP}DiXBD=wL^RCjE^sXSEe5<_t3*5vMMR*w2l=u)wN~Dg1J4LnVPxHkQ4|$ z)_EJ`v$^)k`u9oXv_FG%Dp=nr;oEdFvUKg}IGsEJ+Is$dJXt>DGi>6oEia)Ud z6@*EPW$1Kdb4{*Q#--be^Zpv>9ROa!k|E~s&$Hh3ZF}O}(@cjlT%(d)pvWkgQW^*y zPy2l}evL5)wlxnM<#Iyh*!HEUVOr9tJZRdEJKBYCQmgBA#@vw>s;6HC(CdqBUR9;R z`8mBcGR{I>FOE`J?fvvTfZR~t%JG3l0MB&Hr@0SJ|MO1&3zuH@@4ZXB+rnjtEXqVm zL|ejHXX|l>n_Vropcr&*$(vF^F>^pfBp^bO41FC&x;>Y9A3OUr-d5Nf-A42plYe-G zKXtwHG3<}!Q9C2$xjsi*Z)>b8$K(9$HkOD%;oiJrbM7=T$m9F|=Fb@Ko!)>)FoziX z#n%>=?2`{@dqD)eKH7~Jgt<@T3)KqZhdC#Vy_&F81hlb)JWNMv^&kJLw-CzhdhE4eKK}f z-w*od>U?#}DuYO{OK@#AahKE~SCCoLEKctc9|K|scCusqQom>aKSD=PT$)Cqa7?FY zI5WM0GkWg%OkYD_58#V7L(XWJ1H4=3JH`@hT5&rFsKYe(?4`|t7~`izX&tJ zv89LmSU|(k9U>zNX{=k!Gfsb03p~V2t{6Z)K$2i90x*u`GrolTKE=JvM=9>gYY~?FhA{0im3h3jydTlF)28trL()3E7SqaktsDu_3Uf?Gtc=GyeVt>86^>XIT zF3XEj|I_=qfQM2#J4{D)85Jr$Y8<=iub;TzPbV_RW284zjn~jc>Oe8xrWnzHmi}RF z*DRARmF^7wWcanUXRNAiD$7R1S12rQ>=lui}0%Z<`?kC|4^luRlq_YCxD z#k1`RjG7eV*uLQKT&bK(ba}7tH=kb0eafF5@u>tn7u-$#@Ya3ty=W<%{nf}(&3xqb z_8+Xrp3W10Wv{S>NqPz@6IU_oww?>^o^?vxkEYjTE3)JY-KEAz-rxZd`jL$r2mlnl zcG!rx0wzA2Nsp5D+7_Cc>N{8I%Hp z1``QhyYTSU2VJ z`ARUnXi{*LD%Ko2F^62X+BFk?V~#HMsr|XNe}Z`MDge|)g5roDV*rf93=*X}76vjz ze#CyZ`mC>i3Y4qaKg#{j=X*~1Tg))RUMnMZimEoCDl8yoXvJ~igqRS>$hJ63z)o0^ z$|Chl_PEdMs;Qh*3j2NWz2${g3|V!isKp8tDyT=L_%c^B_?N(94b_AKL$pzohWjtv zhbo8^Q3!xBRkiqXeKp;SfZBFRsEngswi!ZPtEeYoMpLyYxI{rJI#;SFQ-oX z;F_v|a+E+m<3kL?5RG^IfHC065#C9XIYQZ2#CcF}^T}}=#$D?s7l$+uwRT_xo@1csoa3i14`|z4%qgFaNG6MNlNBphgV|k_0JB{7n!M z0wfxy(RK=ILc%9LRexU(Jb$eZsXrccPkOI45kz|QyW0%M+>_Yg$gUX_9sx5#B20@r zBJ!@auh-19ldG0~hhYSpXvzR1w!r@6gh9B)$lUGSUa>e#-kr8H8{C_TdRa?jBLhgD z!5g&n6wa7xj;~G?{eBQ&=1T~zm+K2X6zDNNp?fR7M7fkQ1aHO^SC5{#Hm|UE=i<27 zRcr{SB9gT<9S9B#)EQ*Nd1dU~a(C~f*v&LEY9YE;|1y;Ss)AmcLN5m7s0KrEA@)E^8tA(9C^|1v zz*Bxy721u){`NxD_`>1Wut?eU@GsLMuSly@+QHQUhtz~-oSQ!QO*uw>wN&K;Ru)2s=W_rrfW1Z_;B!6(C>=kl|VRh_)x`xzQsm zx2VqXcpV?+V`{MKQPNHm8t>fk0_s(~ZsBnmUmp6lCTb(1>SiPs z8?)Vc^{7>8NX(Vwll23@YjqfX_|#;{TQ7TJ0kNK_UpXzmck|GzbRaM|`wN$chrjQ| zL{Q8x;hf0p5i-neJ2!}zssiA43rq**73dEdSKmkUlL6n4^>x{;C!R)9pE;2j{PZ?B zZfN&E2A^UcpFFYl)BWk=ud)6W=2Nz1w1F}p;OFYJJ;t#Miz4%UTL`Z#L$%rS%IsJA z2nvy2ZzmI# zsn@mJX`~GGlNN159#nob{i0pmeY2NFx3--BS>5>9e!gSx<@^AN+iK_xb+omH@y7dz z4pqPS;BW6{R!;>AR?Dfd&yGFjiFwY=(;d?YHD=V`fDV`{e7e`(0nuPd5(gjIrbkWr z5xnzJ@7-^IPT&4!={7G1IrHdk4Ue{E7t_}Z!MC1_s@z(MI`}+VC9dT?>3b;{TwnF2 z%N8tiQ+sbAJNnjsNFI?rJ$_w>2YbPX-en#ytz_Z}Qfs?Q+acQ~Ry6NtYb!DVwGF>X z@E&3FIfJ`=i+^Wo|HQBWayamjv1L;z7JQcdL%UA^t(^xeA60#Nyox|l;YUnL=ZmfV zpYkVlHS^i2Z@#(ie9T>R&>MV4vLchwOz=^m@N1{Bij#6+{d)1Pzm@;sF4JsC2l?RPZ5^CS8^!Nm?{-vmtKe9Jn+IlXNcPq&$H{K-1HG z3eu@mP0k5N5KK)jOFeoL)FOWfA|Ht&4pb1~vSJ|Ef@IE&+$e*h$X;_0D}9h2e~2(cou(@yIug(*gHVa3$Yw2)O`3KVofmb&`dy6htXrf` z&bO<#TSHiyLLgcu925kFO=2)(VI1$mg_#N?w3~)7W9*9IIHVel1%r5^2%^63MERN)0%qS=y6f*8rRETCqJm6%q(k&$Ak4td3Y+^V^)#~{;=2ev#L3h zd6<3t1+7CNqb_r&xv^w3iQC3SZnW>#_xpb7pS~Yoe{~VW=U_TuPX*{~+#9F}g@Gr; zVj#j&RL!SNAnVkLt3-0pbdw53GgS@=xsi2Iv9e4F%2IO11-{5x9a0-K8XNokTIVbF zht(z}n#puF1JT~$7JJ;j!ej`=!ob<_f&u4;m0HCk>0O`nxEC%s@Xm^QX>FHDUm0~>pTwS zfRIvIm{9xNA!||1Ld$#AxJ?sqf*M`$+ngI$OCrWv8(C!?tn<&CS;zG)c(_UsKl`+5MWT4GtsvKI8y{M1igfU5^`9` z;6eR;EbkGpEuNJtxH&2V!$AZ0xOk^=d$L$9w^mimu+k~=HQ@*J71{yGsyH{z=+X;X zow`cHFbh$YTC!2l89K~IyD2;a2%U9~!YT@=WNIYmVIUe{!S>RnDC~$OGa%5m2q$j8 z@GKKlBRyJ1ZM(fUTKL5oo-c@wni{; zd}TE3L1TdT>16CC!!cn%_nG!WA{08H^jw0niQ9I>kYV~7AOOt<8Kmcli+4*)C6?r( zFzEscHL#%J=OFc;%kPglDwP#wLmd&BAuOiAN7{OB?AK&zzu`yA61AO7ONfS_@PKoY zlUKFxxb+z$QHD) z`kZDJrl50p{B(bwr*tUj02cjnZ&`ML0!pD6h|GYE5F-hdxI7KJq*uQ9hxOzKo_)OV zBl{n7yu0Ru;@NLBgO?dns-BsFNsasbSwF_v0W}*H`s+;c>YBtPL#BGJZ>s-7l1y)! z(W<7ptR&)X_qnpH6UjSs)Mrd~%YucuJkt|)ffkHN992w1AtAwM)kjs}-XLnC=Ca|EeBP(;(@TnE~+oACX-zAQ;tEj8L>gk9VWHPi6AK7BPzDUwZk>FY}j0q6DTBKkGoRtS4dX3)q z7x%8!JBe-oRddM4S@W9AGFv|l z2r?QodHkb%x$hfx)_aQ(0ktG-IA3xOk~s8Hr8qUJ$qL1)hmIr%h$@r9H`lmN`MrS0 zOW!(e7x*|Fi=wOrY6ZC5O_m=xN%GtghRw*DS)6ar&ObQwIeI0FcJS@#$@H%G_QmPasO)-na3_4uV4lkiAk2?si zOy)J`L-Qt238#fu`Pb&Hu9%t1fx-M?`SHhR=if=`4hYW7($#%ueKQpRNfAI{s8Jin zxF}>W(7_wEKuy*Snw5)~29KNNE($l58BcOgn#d|8*I-w(N45|6l?|WXqYwOtJN_?8 z9i4s)7}0vTN-Qkef=RJWZ$}zHmE+QUtUb?E2F8)?`jIym9T&``j@FMK*8A&=Z!xOK z;I`@?>Hb`MQT-<+XMelLU2!cbgVQzZzNYe_>I=QU>yF87&rdH{d!%={5G`5J=0W|C z2cAHoFClE=I+g2Ceh@ttobEXrd3>Em#1rb=T@_hz-ORmHnONEAt(g*^7wdwCpoa;> z;!a&?3$&v%fMb!tUsNN!>Sr%jKZZu@Mw-L$s$4CJy*bZ+>-^Mw9CcXY5*KX*@dqw( zMT*zmK71RakS#%LgK*_33JG-SR*xa}KUJ5ga*gWKJkMr7LjutE1@T@7{TG~GJ*}Rg zTPnk$Jycxp+aiFF&e+pxWOArjZF-$3ByAohs&}a^%JJ>}0&Y?PjO3o)p12Zs5*nI; zFP+`ws~T#1=ZpRRFLv7mrZ9{C>h{sD%~#C@fVB&1>$a_6sFmP_Pw*}cg}MdAw8cuv zSRsRe6dYxiZGw9$r7haS>(f-5{U!cqr+*FZe&EcPrx{j=F%D44gKf&v1wd7GE^-~O z!#L`B!3v1Cq)2mYQb8{JvfF7lm6}*w(A+jUu#6b>8p>_+Ca*JcwR1#XueO`Qs>W;X zA8}vluX*@ZT1VkXxN#B^W$Z<`60hXh;w8K{Uz28rsyp&$LCf*G2C1)45}xovk_0$a z+VPz26xtl9m6prHx)c59`AzZ5(fP~W23Jo$e63m3g@JLypR}$j*S#N>GZ#}mdVN{X zqPF60YOEO>QE3zV2!|Lr#`H=u#P_4{^b0h{$2c|t$%lVJ#VPS2%HW0AO3wDbw|e( z?0^a&P^*b3AxLsgv<)O^B*lgeh0M#ww*voZx$d#wEq`vm;a(|f47Ud>dea50dG_ze zE|855XwoY}m^nxxLI_^VnbP6Oq%oszTqwbVmEmsYC^fGjh)-*=Fw9KTt2RC(iV7<(b;kQ82xY=A8v?U7IC6 z%v9Tv4ZfGKlQPq-1ZobRv4=25{D4?WuE zGiswE*%Sf#rvag(R*LLJ#v?e6C)VYVkOU^^l_`9m;~P9<6aTHgL02(GCOiUIUr*yF z6KLpDC<>=5(N}>@KQ}v_Y1yLLV-U3U(M)^xN}cpfDTw}+17zLF^5&RvgQN)Ts!EP! zCBv6{zp@U_$?(DTfVDjxuz&(`wUDG~;tVo4O1m$cN8pOF-$D44Tc6oyQweG9p6`?O z=yU_i%;#>+MCV#Oy0l!28{$P;c5SRjZ;p;OFJ_?Gox`jRZF1?u84YYzWHjL{0ArKF z7&MITHulQT(payS1A_EQSa}A8RtpbP91yEGXytr+aO0QgiHx=fRTkchnYqHO!pZjq5*iWiGctqLN z0&Q@D`fAm819PbIL+lT(!kg2dyz%+=eruylNtZSnh+&O${Ea}cHFPTeVGr7Y4vFw{(>$p?Jy;Si?_ZerVzk5tH3P=P+ zuV6hQ-eNu8%JL6&9}Q7z(mz^zgpL6W)3>F4!S?+mxw>ucJD+~!%E&V-{q4KlVvyYR zrKqh7)!y-&fpsFs8Vq%R{BtjUXZmVnJol{rz8WGyJes{Z^x4SbUzrDE;;ZbN^fmCtd*ROm1_@gry!<$E# z6B9q^;~{V9*dc*E)VgBVu~af3f@dcwq|Gd9}j(5tdR{J)1{EdGRCt z&jC#gIE7b{>k88`-TKbm`5`<*(jJakjpyRNwQe{Z&lG^`xId!Cy4c%w^mW@83tUW4 z#H9V&_O#<(W8lwf{EPR$_b1ou+VSaCy>DE$UfVCm$54J2C*C+LTk0@`6?JCk5oo4c z<-*mLJZ9CV&>|%TGbq zMeQ|b!ALUYTKGUX;8KRfI=LP! zVu_(KnVpQzc3+Kn$tZ0odz1`V@=%dMxv1bUZo_`xVa5nnhyspF!I_0bbTu51z)|cX z40v{$W`qT>H@75SquChQwU&Ed2~JM3ay(UE^=4njxcxo`sxLHoeoq$kqxg;wUi z>};-Q&UoV6cQ>@OC#FX1PCy(Bkj1IPV@^1q#c$_|)rmM;5$XDF3+u3w53gO^i6(T3 zl;aX5XA}zPkVq2gM$=LMIS!qMCtRr?X^U4A9oEddRZYp1nVFz!q5S>B_+K0kzmfkf zOrP1eNq-l(5m=s-O0wDw5K+sn64<&E3K5#Nsd??*Hm~8w*U1bqQ0(vT!NUYzyEkN?I6d;ajCetqLD$DLla@Qqsep$QrV#7K~^aF&)9 zvrE*7R9FuHxSrw6FH}uque!D7#3;uN-~toS%&)kAdgi1S66tbp@daL)S5>fznQ^^7 z{^LuZd_JdFDeMX%spmSDc)fy9rp z={<5MD4Gjn_z5wdaVKoRd{#+w+GlCQJvzBxVeM$A8ouv_qfNn+421i5bm{Yt-W_BM zuZmYt5BH}6aR(#=>nV2;pupR6O4Nd) zVGJT3RWYraR}Zl^NfHIo>;6+vx7)E;Xa_dU?m2uu8uQpFKfT>wFK^EERqyxSj&~nC z@&15%V*XF`r>_d>k}%MAkf&45u{@i)H9ACBc@wgsI!JD2LS{pY#yADB{h;c>&xl1d zgdxa!p|`c?L$zugAvDa((qH5E^Lm_fq;sa#_ouJ*HOrAk1_Y5-3P87EMT!g14U#}g zs3aoT7*aDIcizf9>;p<?_ltJD>`=d`xA%ruNd+;ZEA!=iO~Br5%IMY&MP1(PNn92PV|hiv5JE z5xKgFbX`iyXBM`2ffR{AN@V~5NrB|PG83gLvT#_l%c>vZ{$vA3re)4S;EXc{DH6jE zT%0wWLL^Y0C-c^MBJMMKE%70%DWn=MW7}#`x{DOU<|)^how208;4=^uS*xxTXCY&0 zl!7Q<-Rpn#bpAuQyVTMurIK`g?aC~A00DbtFfG2t!RDvt6^nu$&5`&!)FKT)#FPjC zq2GaT;_tI|?9brn*@i(__2GXrEWy9Y-J5;>TR-{RkMH0GcE0}eJpbue{o`G~_y2gk z`$y{qe{avzly958I)<|*)5GlD#P`0jpC6*ik<9^}HhdXg+DkWa;YeBupf`Es*Ph?c z&!s0Y%$FN~ig+-epFYe1AwZD<24v?MkG1&+c>mz(Qp=YN>jm(SDd z?OfarKNFkRoW%3yJpb7|H_v(1&)2wM=2)_w3W8|5GwR@jJi>`#vjInu0+oFfM`}pM z5vni*GWg@XKb2>m+wBc16{8A91k{!b{a_&p37*IhXV~1TU;v7jy|1AOretL4O7aue zzSpcOMw*w0hq_EG&J5WZtVo5zm3d>WNMkC5kWr52zzS%-dAj3q53EU(uku*9HFw0@ zL%qi9QrVU^db-_rbU0?kHtE<*fjmu~>xach^&UtvYs2d5wp`G6$y>}0@=*?1l@t#( z00Y$}gNUuo5ldCuCZEiJ~n$g8R^ z$~CH*D3Axx*IX5wUx5$(7}PnX`f7LiSGOrubPyl(H+E;d-GAE6AO8g%N>8NiS_gnz z=0@uN0#ZFl_Nd+r-yYmr$pfv^5TPe9g|AQp-FPt*hp36Se@rlWRj5SMCTp44l+D

lz4u1ohNJZ~tcZOBe+vsF8E0^m$sTsjP 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


6hTOy3>!(mV)o=*fVX@ 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%0Af1Eo6yy2 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

DNUpN(!^ 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

s;QtfP>{DVWoQTmJ^4G>GtZOMuK`^FWv* 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%0AYYT1GUib;NOfeNbsmV?Y-=*63Xa_Uur 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

lz4u1ohNJZ~tcZOBe+vsF8E0^m$sTsjP zxvIMtn z$Mg0Ti^PaCMHp0{8|EI*Nx4mLWsIsW%d6YE{^^3!+puV7JmzNV9DJ~6TR-S*&^$8} zsacMPH~v9iUqaT39(4)2{o||`NxI|bL1MP`rdNu{847(Eo1QzV#zfEC*J}UFKyR#Z zzZ;(+#gULELkLoCrPipZu?i`-9>(#KA|_=oNO|!hbVRC%u86=GGIgzMiEeW?4O=8w z@xcq#LI*-5;A0tWNs>s#?>GD3es%qK{&W5!qNR6>`59Uja?>yM!sHejVxkBfc4ap; zMg`hdSzC^a$WUSt=NXF+SAET+H~` z?aljGoa?hxCVnYGk*27XG|_@7+2h{Ay&VnngXKj=V$LSScTtU0_6`%6$!b@^A&DhJhJ3EmyDFI1H`1(jPL#H;_Y?6Bl;kKB_qql>pWz|StO7B% zSQoGRbIF=-oVUrAYaI#`)46}Bvrs{Nh|?gCv7jhIqIke|zS|$|{`xHcL&IvLha&5- zhO)@9Krmfd{R>B{arUFQwUgH?S{!VS#Iw4sz~&BAdWy!L?vKb;!t-$3nD>f4YruK= z9x5ldv+J$7Hh6{O%|T6Ns<1w83`o*=LsSsq{)E;G+618aE(&nn=Blw>J}z952=YLw z5W95{d;MZCT55mcn{y|&&pKI~u{09785|k4oeomaZ)JbG#EpU1Zu$TKTu=#!(7Go^ zJw|5_^svX{;(b}oMtq(I!)Ic{OOY>8hdZusJwm&eOc_pco?@!i&ga8R;<((c1@`PC z=^MG!U`m5ueOq_8`HYV8O#88*hLSHtIi@rH9Xl$Uo7Up{=KC#!{}!#^Hu+CVt?K#q zHgBt3@U1q2{icC{WFQ10>~4^OxL`6HT6N{(nj2qy@fY8@hOOQ1w}9NPiMvk3fP~@J zOj?oZhjaSvYYtz@6zLUjvXf)>~(|M z{^YTL?)cI{KHcK23Jx+Xsky&p`jGHWV2jPX$d&Ha?1;6^q`P9%(BfNMOUt8h8-6rz zSDH6JrE-Jx+dq5!=|A~J{>nquH`~+B<}S~pv;OFdV{Pu7DB+4yE9CSyvNcRaR*OC*7lce%=)_^HIjDCUxP`W(9!iLI znD}%t7BOgV4hDT7zN%Z8s@v(eFt{}JO2|SVi;W!6dhO#_iXK&Mvx>wdhpFyIql_Ub zV!tNvW2*%R zv!ex9ZEu-YoJ`!SAGP8z`N;?V}=o86E9l-cQXsZOKm?iiBNGVewVPaTjg? z7p8I~h!H)_4`wk_(vWV20Yfy>@zP{O(fMRr05ZUtv5!KAI$iL|`|$6Y;% zSmWSxLBN-WqB5rP1PZ!wd6I}jEWjYFb)ZrlB9k_zyD`qsVT1v=Svo4QlYTFX%sXbZ z5ApC}7i|E=!`Tqg0)uYW@Rc-@w&e%}(+4!kt(t`*Bl@tcfWx+xmL~f7tB>>i%iP&V zbXa-j&kAq!PEc%QYG0gJ|5*E9%p;rX&`m?r;{*CBz7s9R=i#OjaifK)0z3D^)nR^Q zuYojp;0b&HXatbLlhptwMhQcsKRO0f9fA6?s&-VtPJQbh$dQOZ^lpsKx)uDert@En z{g-8G;(rEULn#;_41j7Uz^3F%JcCeY`$Q_~PI1E7KP>)nyvJuU-ml(;blH$`01wqQ zu(lx5O0~Bex-cuHnAL%hu}5T%CDsSl`E;KC7k<7~s}^)t@(&7{M{;skx&(=wP*>sI z^qJEt!z2!tjl4sZUb`pEqmh}!QR~&P>@LB`Llsn$EH@%7SZf3vWNN#eLg$1VPVweE&ApX3>e?xBQxoFSz!Nz7>zp6UHFZmn;o5`W4%=6+C%%o^_am z8&6yFW_4HmBZ$8~0b9d2x1{GaetEpD&driR4e33#x>ir! zKN?P2OxMFZ#s%HZ^4Q^A09{UR@!%i3F5yz5J2+ROtwVEew&(@tyf7>~gX66y=lqr! z1-Xt(Od9ODxiqg9Tl!P;`?5aW;Hq+xc4GSOjw44TtE!H1@-{j@jb%ROyRBcGhZTBp zs&StFmJaWh|7yLk_L~|q3L{c)Pp&H6YB?7Y1fNL&9Ef1dml^JSI?P_OC-LcK$qup% zSz@y$Fl+VQZDmz@UnQ*LiXuv}B6Ndjw_7P%Bo-F*Y1n1ywXNrk0li7w*DjXE zX{~3{^FH3rQsX9?!{1W=I#-Od`!me35mXO^O-VMux zy{yGmMFXc{QB@tH?hybx5n@t7)dg%3U8_bGMD>uA&3GAh>7v@kV#)cvxN(P0*ktLn*S2KnrOv0tIw5E+b#^f`w z=5a<|rE|J4`! z{a=>5@Swy}8q4|Pef$-<@Ozi<*X;8ZeU98tf6S{s8}@cjdV7}KIQd~tOLe>N-lIo% zA8|$?8&n;VXvH6Gikg;4o;I&EZ*G1xyQ33Fx1(l0&qp~`xTae=A=--1bH+pvY=}AE z`P$E8*h0UY>6V(vy%W*%{GAi~D?C@64Yyv^Kuw!9kLLBhk#^#&jlTG(fQwr_>V(yx zQecZ~C!H{PKi=dUu_RESgi+S*_Wiqi*StfYM?ODK&Z*T=PfNfFJ!c%oQQ_cD5CeSp^6kXJ%;3 ztOLEBy6S*rxVD#ifl=FfJQY0hSJb)Ed({t2DtB^K;byYVZME?L56I7V2c1ICCZ|8m zc(%o;gVFNT69FcKHdDGP>JF-+2>>y$GcWa?W?Udn!>Cc?1WSPUgcDl}9;1w}9FF)d z+x2L0CbBa%?j+HGN0G3T2L?xmn0c?rvgd68L`WSRBdC!S#sThKz+na!j>+M7Z3*xH zHE4hgKu|xDa1`*tcpQuy63jsuLPfvFH#&dDY*PdHjHed(aj3Cx`_*S9q8)1+mS5%9 z_ro<>qQ;8>w$Hpz6-q(_W0eDBvl4 z!(qLh$=ie1o5Rs+;1`me3#Wj=(YtSj;?)a*IDmCHuau?u;*&2wezADP-D!s>;q#Gu zadzp#vzwzksM4*|^gLc}J>8Rk?tVKy0TnAX2@x4x2U||rH$;;(X=Qydh%K}g0PDt= zu*X%Kjagj#TJhR`(my}R{SA4)`>E$~Pt9*TdBnBd?@!sDJkUakM9L#BI5zYEhBAf( zSrW=IJ^+?Z#8^zzGsVW{Hj$4+Py+^~LbMW0%6{>Fdx}e*KfiBVcqBi>Y0qKx3f^{z zxhv1!zu4!<-06Q;p4Vi&3PQz^Yb+puxb_u;BM&5~6jeY%m$ z92nh=d`7F0eGH%0&6DGnVvkA~J+uM6n#g15x*C4Y{YNV=kAZ36)~De@2Lvq_28&Ql zCs$|eM~CGY*6D&hRkL#rIELU9(6HT#G>;hMq*&lzbWV1D*shBU|Il-HuH0*jgh6wr z(?V)-?b&^+Yjo_7yRERRe%e3GO_+`jg!UXKZG(=P7WLJja1{o+Q1Vs@3Frv+TB#7$ z;EJoZ83oxHvT}HswcA~5t1t$OLvlpFT2id_CUo9=vvN*xu0<+Ob(j?xojV!A{q%J_ z-|n1$cagUR&sI%pky44h9ITLHLM1E$bB$ZPQV0V=S|~M)Nx=pKR9-I6U>%`QOcWlM zKm?XJnH>91AM>BRksd{FRY-Wf3+rLeHqV6`4;@~FOS~A0d=*NQtw63leQn(hR>L;x z6=w0HDtFeq7dCxxTy?+cTF@IzsUMDj8AzSrDmi9ogdQW~QiqiD;Pka1=S2bzS{^5T zEl-ELvt~SzHMtHvv7p>7`l?l?Rmg7@gaE)ff;ySVo)%%ZBku59>?lDI!9??|`GgnS zh1xl0a-6Yhc)`+h&R%(8j4V&KOx{9 z$Uug>?d+B%o$&%zOTC$1$T6IOgs{6Bzp7qJm7@pBhd;DVXL|OoL~vU!f(ZyWJPN!E zHM{uD&zP)5>)+}*UH++iD9vg-(Vcdp7z2`Etq!PQBjP^NDECgl5!S2u4QSl+G`nOu zk+;Ra@`(sSSobNjhf*Fs$ai6X--uab%P}i1)yFZ3kbz!*{TxWz>*MSIBi6@v^N#1` zv;FUX4KRn>g%+V!<9HHz4k`riKp}+1noD1AD{0V=WrS&&3ZJvL63~IX^&J3+vQg4P zB4G|(axV=(LW4>$NQ7XK9nctt5a6XR4KJm_)I4b@OHBll!L_AZ{1(7%k8=_$wD`$x zKi7yo>padRpA4eiEWfn77WyOA=dcFb2Pg@2*bM}2yPc`?xpsEC8-|bZ%+^C(d_ z^tv2<+>M%L^Mvh@ur&=s^rSi=r~$8MU;}Yy@Kp051=h+apHj3>rng(Go+)}HweC5d zV{>D>9Oj)-b9g6qIl1#K4@94f{U~z6?siT9CylobmT=*~ZBzq`hG`{r(yQI8JBn}# zls(G#1*L?U~=F;QBDC(PdVxSzc+3BEzRAGJbVtuk{akHrw z*c{k!1=O%C<#KjbYCM{QuzV(!-Mn=QDMBF}fKJQzn!<#zgt3IfGZaWVm^>2S3;dyPp9%w~mWOJuRlry}&>CHRaU+d17 z$-XY*qdl@sX=jK-xqd`%&EI>Q#T+JO->q?GozdfZFe38o{DMpS^t11Tr@GYVpTqno zN8(Bh%JSPnS~mFj@h|j0*@|ipL%>IEevNV=G7JJ2zUhl^`*Uxf_rBdZ?Q2kj>^o_- zW`N1{d)u3-VfHKG+qrn?{q~HW0!hllPmf(DMgzN3Pd+%zWL9EN-#dO9Wu>FGQ3{Jd z!JjbPW@6Nntc4$6*}CPod?@d+5(B69Y~CiLelD0747ZG>c8X5YC1mr zTBvduo`80>51??zFn_G__pp~g1AlKv{9T{u>vH$<$V?>G?eAmrg78)BP!KGX=n&K> zJTP1#S79QAla9WaYqV_P~ES=qc)fi${QV= zPaaZ08UR%Z6Slxa87wE8>>OIe4_S6E<=K6YcE+}|G*YAS@Xr!OD|L%m7jwU&(Hl_W zcQbwlO@#-_SrFRFPAD5Uj7-;^^aCZeGx9kS-c{Ypj%Ju^Mnpkl7!{TAG?k7ePW0(2 z=0kPiMLXZzK?f|%HUwZ43~Lz<68DrbTSy(S035)JFcO4t8kCmW&liu!0&$alrqq4cU0QGjwZAsUY=9%9 z1)iKYiz|?Wp)$;gtaPG_Q~SDq?=Jn0dR>d!7#thvTRHPRzJTAAo&LL;aNyLuss3oQ>(q&El7bTUK(>z|DF5 zC~4R6H?Oz;FUPYlH?qdkG;d4kc7M*+0&`ovqsgSVItiH*cGz=A_Yr%)v@Vt)1uxTU zaH7(2sO2P47K|uO<}MTwma>o;h`bocYheopEJzY~5Tj1Xax8AbajIH)xqtX`Kc3t8 z_>9*XCK7n9z@D$-pL~5W+4&*KPdhZUB4bJ==BZt^@9|2_c6c+5^OcW$;bYf^A`AA3 z)#O3){ivw(?%=EGbC03w)kvI(3+A7^AYI%Mb%#zp$ObJml~KSAf3o+&4)50^_qj|@ ztBzclVRkqZ!gu?d&J@HIK)hmvSxsiV!ZK-?i61F$?7&hM1qyz*s0?S0A7IX%KOiek zn%L5O)G`(l;mXm9xtM5Oi0*rDDp81n%*qLxdXi5G*(3!a;fF=V1J_kTMJD}``|dth zujgq8l(lE8@4w6cfrR_e_Z_&DlI4+TCpYKqx6W~rg!uw=NAOLD0 zf^dXo@*FY`^DK`AgHqUWnbsBAE9B2!8Tgw{VJXfM2U?P_E2;0wC7^r>mgj;q8eZhl zihs!g(29QwXIVE-&#H>vRtVq{)crS9{YOl`hqmUmVD^emB9{h*x9e#cyJw|9xFx%W z%8^WPEi^feZJ22&d2O(kfQo5EAu41Es6i5FM%EcNbBSe{69Cn@#%Mp>EdWbEw7*x` zVpj7sa!jAwNln8k887EYC_$zr`T67%|*j( zEbUbsz8?7gw%50fU*eCqxRX1VVpa!`Kx9Nz{4o7TeB&{W5JZI9JpHcs+i#718SZxP z-240e@ukae@%4*!PCkRnY?QYozI*wO+w%$cs`m|EAXBaJY{AV6PIb1s z!^*@UO^e_F1ha%eLg5qb4Q>hG!Bf`vUEV!D=Y6pXi4y^hkQ+)^)nOib@N?|RY6K2! zq>tn&Uj7M6GDeF>aHPt3!~tBa7~`Cip+hZTflqmNzJ-HGfT)Hc{&Jd^DJV+80ZbCq z?PIbfwNi|JZ5Qbrb8%x2$KPr5n6pDe$29Ov=PfP&d zKnAwN6@~!HGE~8gEn{7%)r#W&EVDW^AW}s-> ztyJyXFL~%wo;W|}=6Ivu=xZ3Kfdr*s?%e(a5@d6eC#nb*v_X|4K?8^YY%Doukl4w& zbbNqO88Cn~YCdg5>Z0zXI$IIsChdcb#pV)J?$FSm9DLwK{g|NZ_5LjX>ZyVyMI8@l zra)8YnqcjqZbJhf&FhQPve(b=cA4|}zWH|dUYPrGmCxD zb7*n-)9#kv#0(|CEQl>c&Z?mFcbGl;P&g$!a?5Mx0WfOSExQ135?*Jm>v z+(=BqrD^L@Vu*nf!V>6NJk7rt|K{R7-Iyk6T4JgkrO5L(dYm~AkjARAHgefciLii+ z0#;;Ccp9$ALL%6cQoPx*JkpRn=(h~vRu0+-E^1m<*lhx!g`E=LzF)EYK-omF2N#*!8kgAKp4 zexuGI_xm!NC!1SvsVFXTd_<>l*Qd4bdg}RC?8YIlt?OInd5m1Y`dp$@qkVj8{eJdh zx3q~cK*YyJqyxAZpShg#+iJ`@V;1d3h*xWBPn?Jeid~o&a@1}lEg+hRL#j`2O}})5 zAK!tP6nl!i_%5;XR*c+cV5gQHSxp5U8Kt%WjGd^p`;po_0$U6@gf@7A&1HKfznOcnMN)|~x0Qo=qZG3ifY~Lq`tI>9Z-4d&eS^Iq%MRhfm;%#f6#+*TOf&+dz z@A0o}|FyTC(t-mG%9L4k?fHA%g}KyOwAYDQg554NAA+Wbj^*Abny5CcL#M*W?=DN;A?X}M=-2x_F`{-l4 zIvTAxxR(ztO&T7dt;^Y0E34WDUjy;=Exmg8fjZZTxpkkKncbJ8B!(Y!U%=+E>pVk&vaYe+S6}AiF%xrdaxlx;)iDhz<@E|v3?&Wm^Y=Xe zQ(jWu{(ny3b8#Qf&%WDN6{rwKuB?qLaZTY580DGZ8;To==>&-u(|dFrFDEGSIB57V zWl788{zEJNdtOK|tWO{DT>Dn;U#)91tT_xwn-_*qkF9R?_>YT-GLA~!! zxElS$>+?LvZ530?ujL%{i>)h($56-Po|B2KDODQ=u{x)qYK-WLdDAFr$s%%dTm{-x zJW}~H8{f8{NrhR=b>%S~Y`tI|(k28@6(Whiwsvq0 z=|#)2gq(t%!?xr=*`iL_fNP^HAfPI_8|eY7Ygey}|v|dC?*v2e;H?p^i|hDC#YC@(gU#np|V6=t}c?iLQNQI48&k;y&}i zFZ1%6G2fo;U%=OOXRev%uljuZ=i?MdKcGjh$#;f(p)N(PXQI)%J+77Zp9k79`yzl!Ph4Qj_%nP%bKW(e!Y06w*UjAgfaGIvSg1MIF(C? z1P8*B4_-nMl1$eoaTK5q6u+RPinZZV`bX}z^%r2L=C1rG-9B7PQPoehcS?F4?V{H& zqaT$xI`_WJ;ixJ%CrLBcYZ{fCiH+!$*AO3!D);ufwFnod3;l(n(5S2mi=okQ0{=nW zP68O#2f0|nbZLHx_Et&G3KeJS#u4`Q^h)nFA-GkUdCCQsVC{>7Bb25IAZUs?zQVqa zbrw#dfpQ)CO-U=fN^V$$6tr}rL;JH=ptj@IPk z6zTA1=f$)5oI|;3#_d_L-@ev!5hTjFVp{6WZqIQm;U;Tz!-+i25OGZ|yrQD7PDNfr z%|t3B0sS}=(?IC~{cO&UZt~Pl@pk4;uDOa2iy`lL0LP_nj#p2$bA19`~6&>lglM3;|81s%(Gp1$zBL^!&oCGg%s1jZXPR+iaF*s>(tQENzSVbY2!rss>a5B_wc|!BOaSP>*!B!?azF zj8p&o`1$aj)P^ewfw1VXVRS|pd@y1jo@2QwjpJ!{UPtTwqk9cbOsYAmBLXua29)Hy ze*0$}_2*(VMe8c7QdKrIuc_ZC^QAbIJqLWe%PY<6bf2av6pYRIr(vB%yG>;yxu>sR z&yRQbzFYV8E%S<&bp%U)`+Fw#g3~hL9{kR3PvfzRCExS+uke1F3BOC;?(Fb9ZT#=A z)$hUDlx^h!Lhp3%^K;v0 z#&>$SmhJ3aPiqf)me(c|qnz*J&E>*Q9BoSHsm|otJ0HHRc24{HT<;3E@A>#Ai&V^qexmO8`H0voX7)Zx&T*?7pyMr1O zJOEAU6I!YKnlQyPz#LVSDbFAe;iy<+UE6^ol7b$baY|-c0I(t94IwbZgJlpvgkKVe z7%I9~lyXE>gFf1A;1sHs-b*)P(kb`0IMFE2OcX|0@h+t*nxKpxCvo8heiXFr8e=X} znUTrFA!2Y<2sW}RQGgIaAOvfYI*j9EQW+G^+e12k_q>V%AwK(TRdttjkyuJ;JLPl9 zK0CV%rh3S!)!tU-g{;KKqrBzv#8sW?qv=K<3{_E0qj!hSTvnAwdz@u6gw#I0`qzrg z;Aja7FYpNw%35%r^h@8r*?E=MM>uNjKJlkFy*#mCxknDK0dYO0pJ+QRU_!$aX&F#q z=`|Y$6)zLTwNLEydJBp5vud?Wc~h zI(s_k_^jKZq4*pcJ)uY9NH zn^N_GAfM;P1i9)0X5|+CkO`MAjKH*j6R0ZAXk>~~)Z^m{E;Uu*aA)yF6j+T!_jJm& zlOm{v&}O~p!vIyNA++GqSqj>6CQ#0;3u||?08mLyNgS&c5OVVXA3 zJAF^L8mWNgVxWeDitKA^$n32BG<%6m8a^aQIFb=;6jm~Mpa@YjE$SjUNrKjBQ)-yE zU&?d+oUb1|NX_o3ygudls={_Z|B)Mc*=^j?f9_#J^wW0tf87?x20}&RV57yiVjK{S zLD;I8hU!4t<-5+w*QK-Iaf8MwX8-`S0t(7d1W%SY(xMW{CdP&s)E zFWSk@j{McVG;HfB{Tpj@G!_y{Oda$_YRaC|=Ne!KL0Sk&RIc)(w(Dwgpvt}QA?9Rv z$7tIzDxpGaTXn0l7DG)=(XH)q=mIKn6|qqfL&F?}Sg-7`i3aRibaK$yoCeT7U|On@Py&dZQa`iOfJCFf=JrGo60>y-@aOGUYJ z`Az9Hz5U=OocTe;R3f*4WC?-{reY!$f%^~Jwr2Wt&Guhw zY?LqTA@MOB=)QOThSnr&?_^(T=aslvo4&y7<^BB&eR<=Ypgfg}Qqp#?F4w-I+I0P@ z17SSGJQ<3#2CFQv6OrKf1@xNV`aj1oj0wy9!^!`H(tqKia`x8CyiQ!=-R&cM>(|7N{9tW z?XX}AuSLH1K3;?k4h$zc0rMeVQW@Z&=MS{-e-ELhHfs|@;ZHhy(uy(O5z0PCv=O@-jNG8f1Eai(-S^w?c`|ZuVBDX!y@}w!v ztGNH=AKqW|CliYW)HjB3v!0;DBX_d|TIs*d9H1<3XlK57`)4tA0UiSPx;2ui(o1Ny zZ4+U3kfl$DopxONf$8GahhnqfkSc|2fB#4SJGDO}hpMqMts%R8qP)S{%=h4nhu`+h zmhD|mUL0N?Qhfdeik1!a(>j^PXhJM3K((1)TmM!cH8wTG89PWmVQx3@sKXmDkmy?V z!O^U-((s+FkYcGbSD;>F>$;tO^yqh-SZh#xqB2Jr5?~WiU|RQ}sF^$0!H?Tpr-yB> z3rS%3@X=-201YSwreUfVv6PZn=$cY%d-m@%b~g?D(W%i8sW;?WvB)!WLXECID58hF zOm{1CWH>&~@dD?(`~$A7jXul?ecE+tq7AZPg?zdtY3z>8bg91mT({-5Fik4TLP&tff4`& zKzU|Z#UMl$sDmXQ{UD?{diQ|6Ts}^Jtu(h1k3uvyks^_tI02+m7gtKJuB-{O51aoE zBasCbnE(VSfX22-moDAOV$wWGn_VnBd#Y3ouKz%YODqzwvHMJ8jDIA#5yzDB@#zk?pN18Z8*j$FU z8TT%HrV$-tVu#mJa9k(0~Sga}pDKX}5 z-D8Ls0?iD4SJ@47Y|SMfwIhHt^IUqaUf?62A0<_8r6clDdF;LH8@B}3eQW*`90kE9 zP>Fb7(&R!DFmS}teO+ufkld|KnR_Y(mZ;Li#k!W2!DQ72grWo?sgyhKf=$hoQv}7r z7;H{?jhhlK#-_hSMe1-#T9Fk|y*bXa@tIVFTB}+gTffI;zM5lu`Rb(foL0S5=j#A{ zbd?BoSNawLotu_AWD8T`~8?m5?66I_vWh4Go99>lpWTgao8L3%$x)b#ekv#!g>Og zo9W7Bc^6L8LT;I|6PmPx7`z<*fooY)t!zCj(*0Syf+@FkiGz-!ujBQm@O(Mt=*+Y< zuUs^pV_*K{`>Y&pWz#IQ_vtYlaj{}zC*nhcSG)%}yCQLJ6aO*msviihPSC53pM8gd zesvO4CXwhS4uKGaLw=g(xa6_t#Dfwmu`-Dros>l+1@8@?A6>U4v!lX+Q;)4&v3Dkt z9{V{gMw1OIMH{Nua#!Jtp0th^(u}#J-u516F2t*~Xxpu(wV-<_M}^$gKTF&y@&ZAK zCFPY!ti!Etg2$33TofOSZinOPq);!)ZhLqTZ3LUCEP7I&Er*pGGY29om}GSjNK7D1 z6aCCyh%|+Cdeu=@_g;Cgr~CM-)<=5XaY5%iTGm=(92Xp>K$?H=#Xqf$kTzGBBTWlN zu$))}788UY*&{13yvl-!T4w653)z8n*>P&k;yF`!qJ2H$1Ir$SCXl^LXIXF-2%IcZ zfeJX_y*~ce4{)a-RGe1p_4eG~JA7RfuhlCA`7)4%tG*Tm6O%n-ouuzLmhgdGaTAVWul3S)R5XqL^Tpc z<+!M=CY=|Tp1`z`0Zf<-AgqIj>wB)W=Ssk9LxT(#si*9afd#858+V$ z)j2=%3U{rGHwyPDm1bOmyx0J-m@#MccgAyq*Fg^_eAT^jfvXp%tEgE9U1cKVPt}S$+l~82(oE zx8@JFY}EOs{DvDOK^vT}7Z0#S42?GS9YlZYI+GKaBv&v{JAQrpo%P6jIbe29fBS{6 z>3Y%Jy_Dol@(tfuzdAqKEG6%7e&E}(U+EXU)LqmZ`E}W?GPCrUgnPS~?J3D=!<`kc z2YgrZSo=HaXopwD%}hA$(VVA@>zusw>p7Y0>1C_e=(K(Mlkj3KjmhV=PlA)bC`)T! zz{(7~Z+C{RcW6VpryeXNi5J~0r-CMqcs zn-GWhxQ=O1&zR{&s4&>u`$y;Pz%`54%hBE^(PrMb1u2OhjBX`K8fcL^n}^ z*yvnE7XX@Qr4lsCq9piKekBMk-YPBxk)n>Z3LA>Z9?F*KwyRfJa#{_7)gg@1c{Xxv z73E4R!jTyH=t3e3nW^-|zNZ3Mpg4){Yn}Q?&8b~7)7fHXn9ooJr3ir^yO1HeIpge- zf^@#{?GLXayMlniqaj0%$&&SlS&Rx^FaMKyWk8a)%W%H@-!iwbu3(10yw24oIj;*> z!4mc$l~Cl(1LNx0gY1G1xjMp6=2DcXIS4d@t%i5*N%5IE5Gt|&v(Or}i$VXhmI#HM zj=|3|o7x`o?klQ(P~pKb74?6`UzOA{lZFG|raIUUbSm@664T`SI;-m!l^>BNlm)ry zs_^Lw^*1gFbQ5+vS_l2%fLFV0|}6e!xRuwVq3cshGtRBG?IZ953P&| zeW!Qh%9YQu+a^vUZ|G2{*$6AMViF+0)vmjjh%qhBUeX`TE=iyUhS-4ij5P?Anx>R| zGyv4-J;N!iApX(uC{$KsS#bdW(A`pH; zxAeFXe9E3leiY1vgMSZ3&5>K8ghT|7$ZG&ZVS#&2R$E=ir3!U_WHcI<#>Yty&Ye{Mz@H`scNEKHlM5+ zDYV<+4c}IZh5PugfB%23o?pLjOO28Ka3x#Pui2WPcg?~ug_@D9EZ4i?Z*gayZvNp;twB>+=!?5+DXTk8u$C`KuG%%7guiy z4<~keo8J%7_v^SsI510q3Md9m^N+>4Wz2nT^Xqn7=!kSzju;6MF4%B_qwc9n-zT9| zE;*7D{88Z1IU=CdS=vn;7<{-rWCfsyv;qkPI?-?~7BB)>z#znIn%G1^D``h2wKnT< zaK5^?fVVh5_e&low8;GK>hNgi<`2K{7xCs-ewCcs=K)7lum>tJeITf!zmd$x z73$y3?VB1sXVkCXmwsm7tp)v(>?!YOQ&IDzH2rB@hP;s&Nh6f5bCy%95BerZ(0tqG zA@_T}r!`NRTY*u*nufoc(ben(+-1nPYv>I>PqCn15`-=M_f5IJV|f~XS@f^-Yp-nd zBVKBZU7Q2i^ubFnte$z+&N%8Z{^?(TFt;xQQL+f`4S9bx5SH6DF!Jl1@p}F3ko)-V z7eqKiUM>cnEom_n0y0{jAPh=(2DEffNH8=&(No!Vo`8KtyW-rzj(Y**AY{#W-Hh@hduY=qx=3dEI(+2Fs!|?@sqZ{cQpxxo0tJ&B22^mMh|TPgF9_X zHEg5nc}Ax%epTzKZYt(y@m+4b91y69a>Z0Kj+9 zK!XHBVXO39vDNV|hzSaBRqwXdsoT3cm#s8+rG9pz=I8&N=jm^6Z*9L`Kb|DpY4zItq)v!U)S?Yq>q-Sp(iJ#cl_p7=04XCtq(jGK07j;66Nx=S4!Rk;91It zb)Rk(I}@6SEcRsvk3b)8JnMZ3O*hxEonkS3@!7%m@?maSf9~JvZ`ypfZXY*p^H-lX z{&D)F#+g}@7lgwi<66W6z$}eV|LuM=xzRZPW}R6;*mqc$ zzyfL}+?QHQz2c7wpXK!uISEXVa0(qpUGxlpiq`Xayl=r*i_}=SHkIM0c*ZQJw z58y|%Nu?MP@KYjx8%$acF6Dzw-X5=Qdwwo96b@%Fi${~knC+uiAUb!0jXWYLG)l-U zC}-!$z&?Emq3W9AHVu>olNC)+@Z?B{N?VOYaaAzx_3Pg*SbQq7VAqf$Iti3)L)9IO zcliNN_IG&n187(6Q}2&zki7b06dKZ++$a_~_Nb zKZRDQ8gx!ac2xxG^`M{v#6VY~C1PTpR84{!@QLMuZ_uTHfuwhaV~hle>OgyMDoZB< zt3k43O^TM&FwLOR?_-L##1(kqa}MOw>?`C82yu#8*jA_&_vX5Y5_K**wrHFLaWiqS=K$;{Dc?IRdqLgzVS%R1|KN` zLJAF$09lM?Udzb72VYFwby(95vXB)5Fw|~2*VhaBg*~_iRJtl6Z&FxtWD%XUKYw5+ zeqbC|I0#?&B)` z#{Ss#58?B{9JwgPm3=w7KjJd{_=$q*{r3I%fBn4D=hQh+&f?jhCcnPNzQ)(p#2ub5 zgp9s6{bXFuX^OVCJkUw?lp%8=GE~Nx$l_dN5RQeHi8EqI10l}U5J`~D*j7@C7t7e& zL;TyAxMRr`K#g|cWd-GRa){m|xd0+hPSg&jYBWC8n}71f$&FnnjL$=FCsd%09fguw zEbLWJ1eSU?U8H~0KGtx+Wx8m+ojIm));h1j&zJ8kUoj0h8H)@7wul(EI(h8FmOz60 zGlR)g)@VthK`J6e-|ASeCZTS&*e_q`;pzlzSisg`$MebMM7xlKjttmjF(cAz1_4uC z#gFi{rKz&>bm4f_7w2|N&vwBZ894%pL;Q66aTMs+OBkfstx{B;A)VvslxoL=q(n}M z29eOdCO>zYtBCYd#$Vx!yv7vB9eV_ZV2ER~MQsED zuAn(24RQm%GW>J+Z&eS+!o*y&1bhM-Dq$vqsxSqZm7?wK6cR;Xj_Ggi{YloaTBu6M zvXY0gEoHDamy}#FF=4Du{N{Y<4Dl!(I#CbvGM(8mm>6Io4ztixK5|?91LRsA=0e&~ z3?r$y0Ls4c%4Tym1zS+9SRPY%@MRJiu_2EoO9)6qG{Lyuut()`hZAWFNsvkDAP##d zGVU^%*vFmY3?bPBZfJ_$pcxwt7k^$;TV%`U&Q+oJa6K@X!AvWP%TCEHO;>9}!vM0y zLcoF)t6IJD5D%8hrE)L&dATdin9a;fuJ>e#o-Xyu&f~m`!|QTl#xg)ig@BQ0O-h9Q ztlq=iztTT77CK&i;m1>rhfUq<3-?!)a$(!BIK4~VLv6ECVH|n(!tX9NbCBC@(U6)1$erO_b2>d>FEM$9+e9vTf4fS! zui+Zq$*;QD9SK^T89Fm{UScgrh^k5{Rz^f(Z*Y2{%p$R*6g`g%6T#(vKl=@an}5Ha zO7~Ij_cIlPbg-#4amqlu!Hs#1&1ZguQ@f%!LnCdaup+tr1^7+v0+-gvlwu)O30JA{ zH*oI$E#_WiA}!W%^{6w`N;C(H&2n%N@1__wnX* zx$`@B=VSIRKiQlNeP%Vs!N~^ZCw^b^Id%e(W|cFhF+Ew1S0ke_w7{x$mNWJN=ITab zZQjKFb@Z9jxp=go6h?*+e09pTG{kd0Ku3!dZV>VYt!QnkYkl0ep1j^3W-#ZQtGDvQ zBY)WBI&Kx4UsW~A7gznRwUc$h_8?c`fEu02E22c`m@-absPYu-bxeIuJ>iYkm)KwI zEI5Qa;N;dZ9t;FV;#Y;(G${NF+l}+Ky;G>1b?%z1)k^;&Ba=}+kxm>jWUCYbaUsE= zXr%%coN#F30QqW!*(L|)NMu@_JOP-M5yWE>C^7|YSzG%KPoA2ZCp@cNXP0r+uNv5w zkhu(;G>}3N)nIKQD^ImG#a>7c?US@304ppBzMzLIrU?Wrb)O4BPLCTnZnd*y1o5qB zw{%z7f6RkkNd~u@5|0u=7|RqF$*zE5*bW3a6I7|rSX>+9#Xy8?)mqVz7BU0YdEWS0 zzVWkhoJ?h58l6PAgT&#MlEMPPf_cFR!7B?d+lSN zMXg8v7{C2%Ci%USCm2%EeCD(Ixu~09ytZB2!ik1fx4bs*auqlV7JXY}Om?`+a%5`R zZxzK-SRxQX#_8&LsV^@n1a1|=ma{hf5WTi!o<1qCi~guHCP$_SOKu2-bkw$lJ@`t@C<-a!qk|?Z&hJ{8 zA;fkNu{DQ93pH+?s<#8Y?Y~k)4{%OB{+vglg zCHhBx-qIQ0|LZINFA-z&nhyV`uU_=%=bwE4 zZ9(n%ZyMGVC^U`;YcMb05-6}(3^vB6=pih&o?%ng6=Tlv?rJ7J3ZfP41}$)KGum^S zMexh2!!1o>1OVtrRRxRDl@!@YhZcH@6R800BGPn>2GF~lwd?iK)N6TsYQL6w>puSa zB+swTG5R3Agr-{p&W_BPZncxfU(U6ylJLscmYOZtuK$&C-2% zJnP4v?;rKqF}ekcbgxOb=HzI+H~cB;Zyx4PA#1n@9;MqaH?J)wi(6{Q5iw$9gV1z! z-xAM^AFG3lf?}maHQoVDN~k5ejlZ>je?x6{o_a0t!6x*~9kzb$>#vPmpXXZ~fNrmK z-m-g>=F|Ybc;f?IpS^JQ^@hCr7|baLbh+30Je$DsS2pZhl0sqL6r=h5a(7_s`s4?+ z$6KwWJ=M&eV3;1Ak#BI!9i&Lst}2DnJ<&*NG3bj-HT|TAHDkY-vqnT<=v}2~WZ!#r zm9NM3?^$%GHo0TKiT72Xc zjEGzzThHroe$V&E8?UstYo}G;fH$yEY}{g8F~uZ-STL>RLMEDmZmmtmWVhNqT`cZe z1ku^6v8sjV3MGZ6m7VR2>=!W-;9z|X(`I`4jT4Jncpr9gL-?xE0;o3QzFK}p>RsJg zebI?a6`zj-1Z9$Hx@O|yR)zJ zWmAq-0vV9qoD3w!{@&LA2WTy##}56*KyKP!g*JqafcKj@EIsS?PcV6e`dohF)DNg{ zYrphO)g-4rt-@Uf>6LzgjK_W|fY3_{t(-;1TMWLfZA!FOwjyZvhPbQYgN%9Hc zQuSrH0%1r&ndRC%hqrO%b#}PBy%8t56;29a@~(~8=A^FA344g~nM7Mf^f~)?lwt2+ z#TbFJ48>z0_UPW_xXqK>2-8GAuF&%B+iD}ZX$YH>)aE>O1a{}!hJ2&GSfre|Js8(`&Xry#b-j9D}Onf8! zVP{!6y>B<8+k3nI@)N&u@`%dmb>i7aTis7O$$l2q-J=0jzc37m+^p%-1k;@%gQ=Yh zxoTKm?_oUs#lQBaevGz#XtjbzpXzsi)`P!ss7J$YFkDM}`G5F_#NS%)t(swf|9I}a zSaUlpu(lR5_4)Ajmi;52dXC4=dQmR&=i*Xu_?X*AU=|0b693hJFh)o1N%B}xAxbAUBNeAue+tqF36p> z2+OFBE>MB(H1@DKmKY7*$CJ-vf19IIhZea%Se|NpDwUf^b2AV>MfBT{4P2TWkL0l8 zan9hpacBbD&dda>^3uABWtr2KW~f7lNAv?;l*JX*^fFCV_u3cJy1Lr*0ZNKBDNn)B z5E|Us5~0GXUU{Ro;%Fx43hfK?7_6@VEn0%xplns?lwpf%{DK~20*5_M)7uLM4QP-F z(wQORmwFgb-bIk5xpcI)ib+NlO_oFiR#!gpwRX_Zysjk)M2c4D>%f z{m?7fs>VKA$PVLvr{gJTG@>16Q|k(YY7%0+Eg*7f(x1!* zA={O)i3Ms>kCPAz43Jd3#*U_!MS-_G#u z0h=v`NRwcQz6<)Ue(s;^fb!!@3`f*~ZZ0U#-1;yk0E;&1q#`)c&S;0EX9ECeLTh3w z8ICao;I}bNwg|~&XcdCo-%9wt!R&U-O|JL(pr}F5ubMnLds@5B^Xkt2tLJ`N1F;41 zis3GPQPi{b9lP!G2TPZXjr0iqfT1c5Qdbk*%AfylFaNsz?3Wrq$|WAwocGSId-=wN z#r9qFEyj;(L#>iPO?X{yg~MG8-!yFj_*~@m31}wk@77Z|HYtdkSkZ`CS`0S~UK$D2 zR6?W(0{~!@R#y(&V_dzq7!;UMpLJ)}olyY2Sv&oVf@GG-Aa;FHyYI!~zxQ7M1^S_{ zH<$jtaAuL#?5vtClr^pWxj8u;Z1zl6F*2)-cZAljmmfOc%yd=ORNZR*I=3D@KF1&V z@tr)D&*wkY=eIXSGhzt=<@KLk_aFP1jy_ENN9;rKU7zmM&!5@SL}jGCc8;P!HI|H} zG9@&4NJA(SS0PCX<#xnSTG)LVhf2^HYoHdByZ`C`wZ8a2arnC@E~f#^guh&8e{sJ0 zNrIm@dv=mxziQSMDhrjH_r6gmtXt{N-R9wi|Fhm-nK!YW8pW+yqmwmy@s*R%(4|Kg z6d(7Uc|yUJ5YjWC0h;w@>E6#s2f1rFm>1KIXiL}uf>`-;-Y5HfX|B5cVRUmWVS7*p zld7N~nvq2aoV<6t*N(1)0A(Hn6ADUaqOmX3HGJ_z-O5&z1SY|;&W{<3+3&eLJMWmO zgEh?Ktnpv)}8V ze=HQcGc5i7!O=V}l6~@>o#(&Am7+!g8dc=jIZHold1APYm=B07f{RZzOX=Ve)l$W% zlIym0#%N2a4BfSD-^X591jU0=SL%wD$ro2g1Xk!g%Q>$7Ea$5%;Sc^iQdoFa?6omZ z?s5INo-LZuek*LO9l*h+1Oh#MN-(#EaUk=wBA&8lNijeYK~`CdH^mr-Nxh-AzQ8@1PT{9J^jm>ST*e>Esy!WuZ6>6lv_jA`CP>SdEv_1+dYx;Qdhs z)~0AKY49l)t09-LDM|Rjxl!E1TB+12;LBl6vx=V%ZY55YxdkpEDp&R|_S-tJ#L-O8 ziVf3%Oc*um5x>`dm^nLO2wv5(?R_J!PqN?3+W;%A-mK{ZgJUB{DJ~T1H5Se+!-7O* zdI7f++tT^4buhZ8b(IO`V=bEkAr??19oN&uogJoH45Knyj0@rkouaw%(ZQOO0~p{c zcg{mpAFJ=2)Wzpy+NZOxlBFWpIMr|<)P^A#k)f@0JT1NouqDRHXv^Qlq>2u{JURlV zDFwNLZUW0Aq;D$y9Poqf5*9WWs|IA+ItSbZ&J&9Q)i4#$u#8jqp$BRl-Gr>HI?LYE z-3dzPqG~^jPbQvDTvge6{4o&{M!{^yOAjPe5>WZ>@96c%eK+f2Xx%nzlSg~ry-fan z_J37`OUt8XTM?=NP%v5yy;@*&)Z2vnSFh_4$19&N+pBgZU=mg(RYgnGIL8_cs8|dP z)4sXqne%DuV_x(A0UDIA&-1y#x7*XhGnyY-dw(99K1wXSiwb?f2%LEd*a^VOV-yv9a5EI0@( z6H}N9aalE$XVNc~zse5mX6bHsEgu)w6vwqH;5UmA8x2O9V;9>&8iTK&Aj?K8hQLS% zJ6Lu3YOGt5zh#Qb&Yx6ZPhqmFlpSJdb9&>=Wfwj$44qe zi~67g6vrD<*H5%Y{)17Yp$<(uw>B%M&V)oJnHqW>GZZl4ULDLPCm%JV7-xL`PF7vF z?mhxBhYhN`+T!#w+Zi7L=t-ZM$N(KQ2VFxLL@~2nUAC1FZohOqK#qTm7l+ z{cNVDb&4{!Gc!ipOG}XDxJ;8kGy05q!2`o*bC>Fmu_FvBC?-%>25h93GGzh}lE5KTvY@12l zJIMy;dD@j_AQ>abDxp;($eP(aPg;jwa1` z;q2ZPwhN;QCMJUhdl5gB@m|+am^#SmWva|o*Urfg(Mucr>b+OjyNdi`o;Q`DE5l~{ zos3&;Ps!G9I7`y@nE5HH{bSmYwEH_|(&(lcD+!DR2sOou8LU=dQsnvQU zt6;%+>MQ5|LewdHY}J3yhcu43&;$A3N?^;5U@_G6o`UWX{5sq!c)tyh)* z+Y$deT2B7=O}EvszBuD9LqVxdYE>id&gxJAf#X~2<5Y2GSm$X0+<*dNFN*8oc?tH) zYvto;f4$E0_i}%2Q{KAGH^*1pi>tq*PO|C9VW(MTb;e`aAf<}2ntq0RM{1}a2HVWD zj!U$KS#dwx>^|?zgst~kPv3m8^~URu_dY*>;lKWT9Ctj{4MriL>a{0>o2o%U!Cugd zglKg`Kb#1)q?>_Np{_VI2qtZeM?E?dzuf(oi@*Gpa-B0pogZf3?81T8HQe#2-NZ`h zo5KWc-q5T?{O~N`04@5aHUtrhJS(-9Jj-}$8VIlxS0N7GjXc5c6>e9apD#Ltehe=j z`;9^eR8O;>1|7hyAto7$7`Wq@8o`ttqSw{C(B8Jlrc&#ziSAgyp}Y;>F&Q`ar`LPW zaqTD(1N>>!AUKGRfWctw1Bt8bMrky{s!p%Mp=ILsx3xxvds=Vlk-r}&_Bk|vwF#-J zEv^&i7@uNQ=L>>^+civ*+Hp_KGmC_qlJ-HvM|o|P>ZdWg8kGSmLtl>&eUljB7TN~# zr@QfwhrK8AOA>#Tb#B9j`+?W|!C8qm9AN?kj;>U}-5bVM!561^i7EH!p1gww#im)MfFfgc$)~Y*qha7^7U;tW`bX&! z5gEY~{0RB&W*-EY2sUp|@CFI*vD(_7$BiA4IVp!cX1g>QZmN%esGhdA$!3R0a;c*- zp!6=2SVhM&!|vIlnfs0;n&9U_fnpUXR|CGi%Ugy#OqfkGFK&E0xqm0|cTsfz9@Md) zyxlQ+Y93?<2s6rEIADX?YRxbV4(7Q^bgm@6A7F|QoCe!TxPHKRbvp(o$jghk>DF)R z(fV?2bpiq;=dB>DNIl8^kST2RC4CtP<&P0)N(;rM>^HeTB>An+zIpUvu&jJj>4g@Y zD;VtkHnT+Ph(CV$qv{_C6tS7}zB(Xy!CIGBzPxeJt*yeK3j%QUM{Ih|FA=Q|@J= z#a#$_P^15(W9#p}6>aATUydt0(G51$Su0cUH(fGZs))WZ2gFM%Fz^X|6mwK1vS7S$ zVf@z8`U#kS%W7d%-VY}z=Y%3@K-8hpqLk<>u(>G^n_4doETN7=u0z>`l&)t0Mw#6l zqSDn>kAa7-z_mV2fP(tY9y%v;MxI$bRNRg&&~vpTQkWNdtN|%)J^3Kka>BsX8_$=G zZTpS<kDqrb_IDp#*;T@$7}2SR^0^#-XV|pq4S%TX2=5u<1iK znMq1CcK1>x4;d1$X!CFw`%Sh6lgX%=w4l({sR}E0Csip+4S}Da04SUyLAJk3RX{2f z(qPaqgn+Z@EOCH1&KLf9cV|^?^Fv^!ervm7BjbrgYJid?5JE&)<~T6QRTx@10Ti;? zlCX}8gB^gFM`}l4!h%K{7`kcgYP1LxVJd_ukg!;Y(|{NG@?N>Jx03OI2sKlMd`WM% zYL}uf-RASQT3`~OSUKBl-w7y4Od96uyMk7(B z4Lly7wOq7|_OA5o<312r3%Qh+vQe|mzRkv@=qZvSvMqIr1h&GAt>2xWzCj(b#ti~) znKLCd2gBqg^*vbE@70PfM$QZ7X*vN)Os#Q+CB}?l7SqwdipS5ft!m6&32*F}sn?39 z%|Uz6+OGAS%NE<_t>}Q{16lOxcfrwJ|4`?z#I7mJg{PcJ)xWE`JZcSV=%bH9n+;cL zJY$nSt_?=O(fdorosWC?mg<#qY1MBP(sFivWQdt*QWDru1tQR*kg$Zq9LM3cq{yYq z1R8+?kwC-35S!QjA07OA-|C5zekWHa0TE@ByhQr$E*)KqD~cPJUgo?!99NsSdakc8 zlH+-|CgXuPLpH>6*bRi!?2V(}pT20U*X*?)Tx}~}uCZEP7S-@nkO?eQ%hRLAC9Q=Z z6qpV0IOda8>}pcdKuBn$Q+O5D%MFR*4B@)a9l!=fF4NqcxUe13pRVPow>%!*W$;^7iB({FLNPM*2# zw3)E<%xDOO;#NM^F&JW)Dci0Ozv`Lx{_x`*KVU@XX7iVy^;Al}`y@Zsv!Yi2S@2J% z@k5x^hFnL%jjaNxC3o?2g^lm`GFuQ?Fd?!;A5DzN?v``04NS2Cwun?R;6;m4`Hp{% z;;c8$iXZu>SdaGJu;^k|Gg}y0m z^EbW*opegl9)qf=i)7&je1$g$>&iui!ZI)bw|=2A`ViBBdgAevX+oI7!HmpLgyvq;0E!ZNB4CX|zr z&-%l@vie|(`mwa~$(=A_nbV@^WAapPM#o~ZP*qMzM26hj?Ad`jGUJGf(FEUN0*o`s z$|vU``icdDh~5wRH1N4& zf=Br1=B^p&P@me{&kF~uZC$DB^pgL`!#^%LV2uh=abFVifGy0U_i@F~2PFbfN{

KCN9UY>3L2KjNzD?^K{SA9Vu=67tkusk8}3)uXQav?!*Dags-A{7pW} z{5(kGpok)wqP1m5F-)ImC*w0vMLp*ljhx2{3Tttl{j(83C4WN>{7fXC1`1(B0zHsW z+mwlr0})qoD`O411~kMmIyD0_NF`u5PJL4Lck2|^^mBlpxQ$*P+qmSe|suhR5(HnE91byp-9*b zfQ$1?H)1Ja1DGqmy|~NY!tI&-?BmhC;a=$v6-z*a!i0t+0!8ErC5+L+J^Chz$pmU? z3y=dw&h72zQ^yNB4l6V~MYHU2m;0xd=jRFChA1u732SUZ$?2Gylk7KqsfN+CqaM&F zjL;9ZI`o>A=KCQ0H_GR#YoF_Rwa}WcEnPeC%ur9omfz_*;tIthO^yO_MKeSa5M>Cn z^T3RIPjyNyGB2zRY)z z_1;Q9wop;d8uV%2o{d5n-V+b;5-NIx#Xrd|Crh{Ekx%dzAt?1Vs&>|hU;L3+kLr*r zu~pGqF34-!wHHK?8?wv-0<>azU@d!A-Q`?ep9z&*5>C>i1A4scmCsyeKJa2Gtv15B z%nW+Y_cvu|`?OPt%Q{fZ5C(e;?@&txN{V}i@|n`Zb3zJ9HWfkus|$L9zaCZz{%7z0 zm&EvUp0Cem-g&{-Yjzqz zK#eXb#^+UFXR`q5N2a5e&bS!&9$FpGk@IcYdAe`A-`W3l-8DF`fH&w-IB@0&j$*;e zJjn|~j>|X`epep)?Cc_KuWm|{1aP!1TPDC^@>V~7KmKF9tzS=F_gumk5ORnOA9KmhYp8f%D$Rg#>naE`+bR|u5p(A@BPF&2!GKvd~H^rvwUoN2caE<2}P1~ z2{C*^6*8oQq5NzqhCf_7+wkewz5cNExG~hbYa|0T94h{J!w){-{);6oYAxX8zT!N(R@(7d6M&W^LVsTlA?C`ArN${gbj=2iLqoWJzoBqz5JJ9I}SrLbb=-C15Z zG=1(rc?0H{p~KAl$l1oo$G&7vojNr=P)Y)hlJe~OLze3L)X=@WekbToO1|vi$9kma zi^pNVMQEX1gKSb&dhWNs_hhc+D5rA}2)ZunyX}|xp8!nD@T+&+_-#}-f3a(1R?hAq zAB?G%dX)1%PKIJJGs4FJ{?K zZLL$Ei~Doo4V=1j4BINU`jkJSyu4#^vFqh6%ID7z2f7$EKkTUW=5?R1V1!JaZ@Xq}@F zaUy@YHb9zgH?opNYcj0sm^Rotl7N$%xjJ9gdF%zAuPeMB3lL%3MYF4;HbgRH&7lk6 z0g&dlnRmEPdIOSj1z;ucO!v{w9`Q+wZ^@f3(cMTQ9$9obGVg)7Uy)m#TW{CqKXOV$1}(GC=lvmwvAWKZP&E z8v0{It~$QX{ule%zAZwJI3W=+feHJnmqz}xml9;Vax)@-(SFL;f>o(5(TQZ}qfxDA z%a7Q-qv=)T$!S_=BW5J#M>LlmuUnLm_F1P}ZtNl=t>DbVV37LksXt&~qp^ZtLx1=1 z@AixTFaM?gbNrKkC&nLs{Egs~klM$L?C&%Hd z)F^MFNH-VkE2o>>Sx#{+-6lwY!O2N(9888AHLZNt_k%TpXexf>tv|4*C*ps3(IrXM zn?kfc%j9?xlH*g(i|~v9b|hrY+QSoWZv_>pNGJ!KMB+sE$n{y=wmO#p4~YcMFo=SF zBrPAW^jRokf3r4@NAzgj#OI5I4g?{k0`0mibVy=fgRlbR@Bg8 zj}o-9ZS+v8mIm247Wz0M6TB&PjMXSh(Y-a#W4ju#9##@f36Tlu1UiC~fH;apX?gU5 zMH3NAvey_dAQREYut3>#@%Z*V`*|48dELsIVdQ~YrR^pKTLWV$f*~5H0Hx5VZAL@E z?=aUh0fpi31ATR-fOJAi)+=c;izZ~Gi6WJ7vRuMxie}L6iuuSp62^|i$(e8AfL_{9 zxS5?~F=dGmEJVlh7V;r5OVT0KMrzv{o}eziDO9`z>a`YdFV;??&3zM`-Enh}SX?%I{zAocS}`rKH9G+eO-K-SrxT{51~uowv&FMrY>b$-&SN*1A5Hq)?o!w_x(!1_@bq>V?z z)R1Om)3_#%p3=akIN@NaH-lYqm&lG?Adm-zSjtFbNM#VC?n$6~L}yZsjvksNl@{!Wp{g;9BUY<*bg!gB{| zO5Ht6l}EcG^QOkZpw{^WGD*SRUf8`MeN-;IuPiy^Bx!DYB)DT_^lE&htbOeJ+< zZA52r5nM#)@gh!SLA2mmTva#~p^I+VNSNi`WO%GwQeIq}s5>rLZ}g*pqQ7y(AlJo2!XOKV6g9r5<3htd1vgM4ZqZzNCm&qY;dz zxkna|BBny=O+__x$2MP=W`-Xzy`-GdsuR7#%t%CKI&6&{TD#OI6cF}_i6jDD;bPc^f|VFU%U_fo~?Ts@3M!3Z#-PL zW!fYE97MA$zWjw?^-d=v2*)T0N(NY^DJ25Sk{?;|k-!;Cp`8qvqayS}{65idZ)@)i zru|FBCNY-^7Y52bb8K3ndr~C*Za3|4$dNfDGAV{*)I`nkOH>$Gv?|drD`y}my0~iNB+Qog|QF&xZ4R(SXg%+T(;}Gl34=1gV^=Mpa(1@-_`Dh0scTI9=9acCj$p zagTyM-j`nPT$+J}i^Qr7Zc%Y*f$TK0RaUF0l(0$8``d8%deX?OjmY6^*~-1*<40yv zh~gEz6g|~76k8K^V_qtaaIwykSiG81Wlh6?T=aE#*RA9#U%Sj-_Va-bENNbsBja_3 zryF9PHTRL~f23$%uIQ~!SMd&9VjL9QbuI0=e+^~)viIqYXm_fB8CiU)1*xTqbRiY+ zh`h~khJsRWMyqiR%Q@{wusb)KYo*grI7$^6uA;{IOjypI&xateTA>H`{T3ILx!U!< zy&mWDDTEWDwK>it<4p1O>$<3;0grn6(zt>N7NsFo{xin9N<)bYy}1LNp%N!lcw1?+ z9q@|d+He_1(KRg^=OQs|`+Gi(@Iw4!=P*9u&mYw{dRHRIIEaBFBBZd8BrhZ7X{?7N zI!9u!a==&pBh{a!Kk3o_H2svIz8FFp4$1*@D0TP#*tB^abE)+eDzEV7&f9x^Cw#w4 z5429s5=sL4+RdhJI-t_!cypbu@fNnHLGQk3cfWk&J+=Jh?wPqouXr8*zI>^Ee%7#e z^SIZthYlb~5limNy=vzZ-fEM6zE{~h+2~d{)O_T5LbT^qbXxiY8w?TNVy@X7r6M&V z5fM+MplDJObBLg|AoaNr0YDI==PCUhwy287MfSO#Gi+F59kq@0+FsYosMRf2>u5p= z#t!Og?mDhTZCbRw+~+5qJ}Ot|Wr8*&4Dc($T(bRv$!6w zoi+R!*_b5ykKq3xc}23NZhU-*tlC=_EmSAg5Rh*4#hdB$0GJF#`tnSkviZ9{KmZ%o6bAu1rFE=!)SD^G+`uFJn7xO;=o~N3 zKF@x-fBbN@_Uh-pW%PG=kCV+w)vE%AJ0qFEi9k%?I?bsG`)48@o9IaiA=ViTJX0!kQm5$2NBq!t{-vkBHH!*QgiL^?kOd;e1ba zyjG+5{XiC{Smir*r|>R(PiK`O$D)3+7`dn0hg_cE*^=E|{1b%5mvC4{6KaGV00Lhg zFPBjs!2N)Hq`uHUp>LH##@fGpA3Or)wX2&~x?atpeye_xpgp`}9Y-=`Mxtr&Hh@;5 z5RwAb0!W357Jf>HY%FE3z@3A>mU&`)Lnt$CZkYr3vR77@KZ5^m!=Kk%JWAcC+{L30 z-ksVVfM!B8YLkLm(T>CH2dg38;EdXYej5YdXF49Fb>C zItz38mR}3Oh$9Hp;T@opBdJKbHP=FdLY85_@8{(_tmB_=%lZ1PtIj&_@AvB}_NP6# z1wSgEIGZ1#mXQ(#HMaiRNW%=Pfx!+}AXl&kUU^RYQ5#9IlErYhcg0CUX+6^Q&(4-> z1v2)`6N6$tCOPl>N0T>Bh>xXfj;0}kKA;bJOJhY68GdwkHV^cuoj1NQrI4i(nBfhL z!OT_oX2EW=biqPR!bju(I zxZd}>^p|38JwdKqiZrDik^vN@C1)}0!+yM-rU8pm!mFUuP*VYDPBv2f)|>&l?)S>C zU=y}-<-rp&@0ldhIN|!aj{fX?x29Gi$~F=kHFdCVQXfz6fb5u62?Ya*l7R&QL{s<&?%tNXCrK+WB|n%!JHV?SV731uk zT`R}qh1{FZLVfn{WIZY=k^(^ZNaYW`{D(L1WgFj)wEGLVLGiuE92kZH1KQmw#D?4E zy=J)#e2nh@pLcvT)=U1(=hc7l%#j%PLgN|xjgz}qkM1BEG&Fmb@MwmhQ_9YCtv+{^R?eG z@w)<+W3$2Fs9K8|rbRw%Vk?_iLog38TW)^WEIl>vn6JdPjD|e!4e@n3F$BICbI2h+ z-1@)or!IN1n+&D&>W?BXsDv%qa4ex@N5S|iWpL!F=xQ&y`eJ)~k9{z_No;<{+c1Y3 z0oCYVUg~y?or4fryLo>;&-3k1AOFgXLwehfp4-RU@twGTfBS3ycKp_N@cC=M9Vg%V zILbv&71xbVKdJj_r+%Nmdh!4H_W$AV;V!_p+t2u$KlN|y*FE}8)|_sm!Od@xViUb| z(fRrysao+_)m3H*jzB?zd1&}nmth4rT>mN1h6B-LwS~i0fe02Ehv-1VoXwPjG zr1!D&<@~|tb72yvdIcjeXPx;86K3((Ex6A0H(jARe6emi&MZB#M)7%2m}BiUC$yhq ze5Ggm3+{2nL_3kSp}U8kDc42Hp)B2$N~xzxs0c`ove4M+DFoXYFOf>+Fg9WWsunw# zq#R`>Y7~M2o#>2Ix+CZ5ZbLw;k|6sqka#eLdD4=r0jnBu@p<++dfB&>S#ULaA{*+( z70s8K+i~yuYTfTk?OUO2 zu0e_fn4WJho*(6rJVM0*hZJoGlw~_sHm2w&tp==A6)K;4ml7L1qvO)8*^J(-) zb*6as^5^6CfAX*O{hzLnzH-7`GA|ez*$F-OOu{~Dkf|nmJpA}Im*UL6{&3ezzED^{ zJxOjbpK8zI{c+eoFZH)`^}oEie*vaZsOR$S*Y$Ht_(9d#dfxH2)D+>aCV)N?*Ph)rTV!Sg zTe(e}T}PXfI_rx{0EX;+T5ZK^AS5GCB?M>EEa>uGD(t;?5kKdXoj&M!g} zD}{M(|JItP+_KmJr$Uf`ptbhrg00QYSAA}h>F&&y&Eif?EB)H!#jJbtwl$vA^BjMeYfrJj@pL${vI73AQw^-|=ssUuWZNg}?BVUXQ4brMViK znM&xRHsS#rsu7n+tPb%U^&FXEC@&PpR0diq3UYBa*=_-G{!B9j3M|Z1*0>Tc7GITD zA9%+!2H&6o7Tat7EICAg>C9F1ku$p-xQBb_W&hf?l#JxZ-%M z9ZXoGN8TG((jTT@9}o0cJou~moWDlv(9sX{*vml65@eUv$D|MpgY3J5X(vXFsIq3} zp&XV+g+09}FuY(LaT1eWl?WZEgjC?<+~;TC*V`_1CaWN^E*X+AY)#;is02JV;|r;0 z;mKhhu@9el%%wDCp{be)Ce|CSz215dJ4{-5aItXiA6sXZ8tPfj4K>?wftFTVE6MCP zA8_#Ai4Ren>E~^zWf_L)6$vvhvp;4l{LQg`3yhT-ye#4I8BkGF>}XLlz}2bFv-!S! zf<6+=z}o;0$6G6O@gzkCnHX&+c@KOSS>8gF^W-^NKYbPTqBQ$!hJ7>nnb|iR{MKC~ zG*_8G?K*EI< zdQx9^DU@QQ_j0E8$bAknYpx^k3OJ0zTla$;wg1NT!pKm7SOPEgFnxl)J>f=vjTyh6 zU%5Eb8AYI84MIr8zeoR329f|Rc+Uuiazp}H9}w{c(B3MhCqID$n+83z;+4y^>w5VT zk-@&_C(Kw9FmC02mL%qyN!6HSR7hedC>ChPU~@-+#6=kBaduf}Q6im%S_~UZER%!M%QT#H;K_P)(I8bC*YAM)Z`L$DQbp3C z!*x*#ga*d6bTlXjF$N}T80JzW=hC02Q+Z9Ia?fhO_2|z)sG#<^pZSgQl-ArhYiq6v z>p+>foRxGDOC(4t;}O{-$v_~&4J)U<5V;@`L_(*j+pkwFX|0g7BhCnbN7OP4j(FS$ z7$W)Ig-W{~t_|kmM2aVOGO(@(WSWnuiAKUba?*D;wp2)iLPoPM_%er zHqP`br_!)eeK-Mb#WJqU=HQnCGc3jrqa5XR4}=c(e5-1pq9@f*W6Q>}6_ua<`~9LT zjKVwoLEX@gg72Xt$A}^IYCkV8($U5T7hIzF!!jtir)%9mD_i`b2+UIlc85wmyR+gy#_GINV)0^p!BfN*_5%wie1SM@hfy|)x zWS1fA2EBueWRpi&;gXgJD7|bkm!q~^ZL>BBIwP~s+mk!Z6}*!D5_dH8wEIl;q3<2P zExYw!_tyWk%75MX4_JYa1}flU_)SCSy5JPfvSz1tJmgUxB%$`h(4-~FbN4D}Q&qDo zbh+n_yXdF$317nQ^6KS|jN|iRj>*s+_9}PMs(l=h{-PYWahZUuTofY~HEjEw`SW@B z9eQRXaWqDYLiJX2nEf!@*2?;YKhuxQN0I+byl0HM(|)hXN589K>tvBYj#o)&f>udIj}@80&rSxA^r# ze`@mn)%0z?PsmI^2zz)(ejENgpY>P2eHPdPG2R&OTCq=fbKQDC4;mv%Vc?0 zXySPKHgzpyuCYeZj#)`-fkFy8^g}n%&AzYGd~EngY0|`jctjN~2izAnc?8%{I;1mBPdG~(3HXmleaYV8_jY|P zCiEF`mO{9uN8d>kH_PvlPRR}O?3HIWJJ;Rv)ULs$;Y3t!*1ADyRq9|Lve)Yqc;$nK^CZ7tfyXaXeE;UQa8C4CDopp|>eP-=P%kFd~v z%HS}f>y2S!QMIyJ>CkK`xfJ~3JM7Cpq7r~#&6V$Y?@AgY)cN8`+g5&YXQUSb*SgSX zZf{?#FXMBHqICNh{=wY*>8ib+o%{OHm+TxpRs{YD$MaKn-|v0BjeP76UnT!!6>l2R zY0P&EleEA2xbOD;lecfCe{^8D4Lt(I0GbkLjSFA+HjaN_>Z2#;rm!klDsN+KP0v~d zwj#0Wf<7*MdQ?WK+wFh~bkCWZ*iu=P)@IT&y6Ig3bcY3`xl(A1zyg^2r=`5zV6mGTf5(LD7dC;LKd;vC6si>S|Vrr5Tj*&g-ZJ^JDK5%VChUdnH z;{B*pH+5VM9_P5PBlXYy7*(n~)$Oa771xB8OmCQ5h)U;FZVysoA#n^4Ld@<0SqRA@`#!dU^ID9ekT zss?S$7+|2mC9EYT}~^t<4&*dHT}4w zk%r0MkB`i)FP=Zi#v+#L8oVNOtY99-Wlw5zR}I(|Db^H~mB&-pv#t_7iwwgJOJvVf zqES?F9w69CCB`H%l+)yfWQ+6lM4&kxf*zg)ia=2F73WE%MB@W!W0lXXl_~_T#Kto+ zPJM`fzB9cDbp7Ch_m?adH-3(x?HzqV5EMhyU%AdM)S8&E6dvR&GogROaK-YI>?~dp zVW2EcJGMFU9It0Qn(M&${yJt_XUbpb{Tt~$-)}0P3-aVtNPKPdQI=%JE9@JUR=Pqb0-=?JP*IS3EIh+UfYbW^?;(*A2e^sz$EINE}YO zA1(YkDyNv6NMP7BtSaW{T0x|k=>yh3t`Vm)N?FJ zz$aj{sH=Ghlq&Zw7MrK79=smFXtBM&vdV5zEvEHts>`Z0yeGPdKTAEIhT-#NzLgLg zxsOr~$2ih@w9x6q5p&}diJ&E|o@q9wW9encV{r*P60$6I!+BT_KdzvZY@R98VazC( zkZ1){Ce`Cm&rY`Kcpw*`=!c3V6>gM}*-#kIYz`|akYDM%s3VpCdVgSPT*0PUj73-T zDu+Jj65g55Uaz|idNS2qsrw+v+zxec4zLQyV^2H&TD*-Q11u+d2%EtcIbi7-@oTS0 zH|o5ik5$4ND;j_53%lypCEiZ8uy$dmuXD)AwC-ldXNfh8G#te}C*_sEqX+~r^cYX5 zlxGRrlQ+WGHzBLCo&V(aJe^6Xli3#q;h>nOTbG+gY*pzy6Qi|yA+8mU%B)$=A;*c) z0|p4XzD~Zf3&{Gg_b(_r1+5J&Dxw7##vJFl_6r5h!~@olvmcwitRw%g7EY`joh>v;3Ya09E4+4#aAXGhkXh-P4C)C4SV}cE z%Ax}_qaCPa1fZtCN+1+(j{SD}v9()MRFIqOo$h@{_-$VOdAGIql`@ zsG;||cCk$$NsR!aB_KOVo2rJDk(nbqrU{(78UsP8VMyepp_lOj8mtO57UC(e$0{Bk zw}or43|HpdWsHhZMh(1fa+P*3b-&z?jEaZ=OJY!Q8y68kffgF#4(0{xs%?oJh_&al zzqZ-S`miaRv%*tbJ*NtZjw`3gG7=y_dBy>&GM%dG$V4h4)Ht%**iYu=GU*4|QcElH zSsdi#l+So^9Z!v;(h+m}(ZPg$n{!{YPrA_0mO;0(OVb4{IS!Nv9dwv%90Dssk_duv z(Jg!Gh~{UqB4!X206_zVF&s0&rbteoC2DhaU)tHdp5$dNsQ=C>SwSjr!+ z%u8ZYbzIWtk$TT>%DL3p3*!Z2ICbntcs4I*6(~dmX%a{=IZ5?cxA1sX`&F9Ag{^(W zwH!ViwO~_d!%1MpQ06Tt22i)|#orNs9YzVC&|q)ifGSxuHfw4#Y^WkGbp@fs#=?X} zT1>^>o7d%U5PVIg31uycqUB*1vOSuyU72`Q0NaD%jc`Nr$!i`i-cpL^{Qm(^vpC)b-9I9$nzF0=l%e$}888Nr#j!OITCN22COj8ue#6$hzfgiw_UDJ`%H z7w@WuuXg7IfYq$3DaQg{>?&xCylU=e#b3V&x0BDkseXC4z0V)q&&q@*>1z=m=z90( z&=X}u?>5<6pc!tWdw8#d>nGQkeBLHcj+b~xiRl%2hf;#P4P$~+AO$*)m1r`$;r^W2 z#4A0yDwxFXQ*=G`3D0~9i}%yi4YZ!GdC#!V%l>tqDcjQ9Y61{i7f+1GiU(m}QBufGAuuxI$Jw=rIL;mZjx-UEFh zwI}^dZa8UGh3@Rf(KZL@d}590ri*oR?CYqr7$Z(5Im>o|k{mG|Com^kA%YMzl4YG6 zO4#_|CoCMCO18wA#iQd#3GAheF6FTtRTDn8^A_^Hhm?2HBlI4p&i&g<&u5Kh{dC>| z1z6(|d_8<)Sghwzdz3N}Zbw%8uHWoPwD$G=U}nOT2xt<_qJiP)wbOWuddkYTFS@^2 z^q2#-Fz0!$JGcmnAgRowonc=dL25kwEsp0jr;x%kh%G(RG2cMbR8kDJy;Prr-Wz5*S_jdA8!lG~3+QZw)b6_+j6fn%$KAG|b_5u*oRmiMkx3%%4u zauJM3U%3JBq;_!S1HIgH?@QrPy){vcO1nw_=PL3LmcGZd<5~VEHE49GF$=+A?Zo{TIHo20U_ZsMOpKKz`&k1GD?t?*QkrM2n z1a&NhS2vD~I2hGn9cPHSzl8(;2;}(#A2%V!!uqh44XA5mKkr<|qqY3GnE9M(I?Ysw zNWS}O;n=#vi80}MC6-xqadZ9jH@aKJj;IScEpaq z=fZMBHOmZ{NOZZ^vKU_9aE48@fN`d8M{j%B+tbn)Ev-M@oeHkStw+>EM8hdyKb|+I z3(`z8JMp#8=ev8EIIbng57xD(`u-sv=dcUQSyC*sd!5l5&+Inc_Xg?zxBXPbQUmSF zngPvWObxrH)ZR_{h(_KvuA6v9{c7U!quzdG#tYb--cd>}nKfj8`;b(1uD9}&ks%d^ z!-T8`58pa7F@2k?+t@EPpf&GS5$VZhQb;ToGzyLGwSeh%<0rY?W@s5i9d!DOlWSX< zoF0q6dl_Jj?R&h9oLS?ICooqV>fF&hJ(-ShJ6~khsa0=|izyQYd?D4!(tPOO!k3>H zVMMUooTp|se!JFxm%W~+9&z>SZ%U7EANT7DKW%NBwLjq3??T7?>KMPYCD9)UOMk}h z*PHmhw;!+IEU(1SOh^+mP2#8H`}cahRp{sg#+fTz8M@gHpJ&$NOdRif%L1)+1&1nk zqAAxdmEvt!5ClD3VFnWM<7>nH?PueuW83wfj zixA)%7T|^3Y6t*GH{9)hZy}tI-=30*ZC7&ej<%y;_YAt+g{5pSRaqmH$|ni}g5>=f zK!@fPtyhViygohyXX?}KTxly*mE3K_W(UO-KdJ{8N|AB+%l3X(RJtti9urfHp$X}t z!h?gXB?T3CG!q#IZ1~V})mf2@)(52#U7(_v%8eO7aNwjA7o@kHZm-{J4>S+bzsC{yZ#P>@zpN{7k(xSBa)Jwr`c)>drAhg8Y5{c7F2xb^B&$YB)aj4fw|B6WXSe zWOjPA<(q`jwn-Gf?KXaIm`5 zA+4$GzV)(qgwagL1on}K1jGmP8dm3fyKq%-pPH&!l zJfl4)R>r;jNsXr-wZJVGY>Uvv^UPko-|L&3dRYkTh94*-$5!ENgKgDOR7d18laBM4 zr?Pf#zfn*Toh?)f;b@tKCnJ3>a-aXKm9IZtKi)#I+*r%E;jHN_?JDAgh|DCf-#ph} zxbjb`zmUF>Nz<7aX_~Hrtb~)Bun{}q3wRNd0WxaFS&vbLr(^>H8quQNDqb}ixep#`vsO->uXvYqOifCd1 z*oBV4gXbo!N$jFGgBU4*F%jF$_@V0cn!*atW0Y!y4g4MF&#F}M<<9@>Zft%{vnwx) zNZy?=W}r1_)s^P9s?8hC86QpI8EAU@WnW&A z0z7!whu+A370kbb^%q={qUC9!ZN#&u+AV3dF8O}5cha%@Jop~~n7J7-z=8)vDMmVg zh)mPErG1KTPh0+#6;7-NX3Q1o$$TSp|Mb(yD7f7iC9O(Ee!Detg=kkQCkJE<#cf5Q zf+e;Z2vV#2!^Pv|BHBW<1ja1+=<0Qvew~&YteV%LAUFL2Hw@X3cJGy!aJAtXg-#NL zmgv+blNIOlxq`pM$<=7umkn3v$H4KATDB`Cwp#Fz%2(uxeEfzH^DVSJGgR7+Ct zDsf6BA|hta``$xDozh7ctD+^wN(_Hkw=eyIbQwRmGC@`bV0f=9ujWVoveBd*Bt#ZY{%a$EtN1SI!h*ZY2Y_!y*vKPoeD53TJx)tF3$AaK$dPQUUx+K^zgfN5!QI?V_* z)oq359L3yN3ADk*C|#qHJrP`q|CO^(d|b6ijAm;JKs}O9R_e|euGoO;xbQP{=En!Q zz(4*A@y|q6%}sJ~@y9Fs1$m~-+VFBdC~g%BVNpHM$3FNau=<#hcdX zHP=z&scu?>fz~GBoktquB+VC2H9l3P312w(+6-9jC1+Veh^q@2!mRnmeNL~}@Fiw~ zosRJK_xbs=anC)4T!>({0r$8a4tpp?W`37=-am%auWvwqFNBDP-!Hn88cradvDST( zuTOpLW{@e8vzd&0EAK{+N(tKxF)+d*JHkLMOU0$AZ3^m^Q$^{KitHL|ZL}bXTcN1H z>j3AiC*8Dq)tp2)E5TL72*E?~aJdyzv?p^CF-ga(y7O7lR^HVTdsTQUC-DaFejRckY4dnH1X) zoe-ME4yPDL&D&|rom`*iYR2K_1MZ5GDRp!6EqQ2P(#L6 zSo-0GEP1X(qtwo85%0<7kUM?Tnq2v=33P^~WzHEFHF{q(#S;}Fn(0gs#Q=g+Hs|C}Ea zIBgv(wPvIWq@JKxPPnfn<`QTZhkJ(p2KN7)rL&-b>h;MEEy=T2@9G$G@3gP2|U2A&0fLqR2`ATtKkgqj(wZq8^cynen8pq0` z7zKU2pMfrC`mbN}q~s@i7V`(pVGs0#Q{+G`Fpq*>m&Hr@%{0J4hd4+R_G-BM0Du(7Xa~QGmKsYV} z4tJ|}WiHTtUtM*+?m6GO(d&+NnQQ%nn|I-pe&4TLfx}Ce8vd2|ADsUi6&-mrfLST+ zM^r_SRfrHcQ+J6akgd_umf>NK1|3%lXA$jKcNrY~?fUkP66bwB7}(jqyn(es&P=?+ z4DGc)vfGG-pau2z#Khk+}ZcgKy`o63CHW?La5phBZz2>{lIf4J1?Dup#n>i%oCVAd{gYCXG z{`dIB%-q3>4v2=>$Ogy{Fyf<5dvf2LV5Mpphzb9$ho3XnY0Y%=;Xba`D*qI~WyM_0 zGo5rHn;gZi?(nX#=qgNQWAKkP`Uvr7A)F{^IEkRVSy$jC&&)Ct8#Kl)d23>5%#F05 zoKmAaE@bxON$uuk^S8<5<{Jmj>Gf$N0|5z`wEDU{`pU%I(a$4y0{3thi(Iq{7m!@h zaQZ|n6~$o~KoA@O+s}M0;d`jxLUV)d`K!mlPt2#eCrLL<)|!2atk6JySX#TjE7_oK z07j_Zv>;CPX!i=hn_;~IX}KM2;smQcdKpjuwK#T4Zrq1I%u*zn=K?L|-4^JIn1>_RWfO}_!84QzcklA=+|aw>J#$u<_+h*jxH>2e}^>nGQ*|1;a)|7W(%mlWwm zk!>JV7T525%EzA**fJy_AlN}PoHi2W8c^H7EU>e|^&|Z+0B(@;iHv7E?j^QHcCcnTosJlW-$!i)(Z)T{$|V&$dO~ zG)Dm;Xu(WMXdenJ(>3tR0T;VT;G8*Udki@oV0xgntO_hr4`^NLBGxxP}xq`>E#O}-ZgpWS?hP>VkjAb#Pm7vEjzny8gH zeFADE))MWuFL)%@7@sGQhy>J5P3T;5GSG|L$gUL+v{=DX8qH0R@HLT04C*v^Fg0NfmiptW_qN2RK z=}xf{hhRe%Q*r9qt7p$|XEQ;jHg-zaX0`ixdLDlk zl^`%lw#r2^h7?N`VIk>B_VI_j{x9_F`{)U0ec4)GBLgxh18?{oP5UC!68=q&iI41PrW@ z533NmQp@g9l52Nh!c^gjl3`EI05hPl{>|U{Kh1Ca*(<3;YQw$us#!|6f!cvi$H=MP zjI;{16W7?}b>wJ}b`%F53p0B^em;9X{0iPnKeS#sR}X~**AKTeZWwHbAqF*(P4`jr@D|c0t z$d_&RSbUt2wx}-{JF>#EgEAax`aDuh|BBH!P`*X9Xq4AS83bU77_L&!!lo={6HXuW z^IdUTMI!FLbZCp?;$Q^42BVXa!W`Tv7 zF1pgf=$S|yl7+J+(F~}XytJ0f=nq=BQh+LhtN0hf?y`0Z)I1CJ1gYBd&VIg?b7O9} zE4t(kYR^4sdsL)K5Hw4b=m(0znoHN8>s+twDi=HSg)mv^Jri9s5ws(UHLT53VNyPk z))><>Fq&dFFf_G=sb?u_av^dsDnBgevOouwC`AK+hC69TBqL8h|CNq{lO^ii4Mi%2 zWfVj$`Zi<%_VIfADe*!0*6{le+3ncf`W!(q(1RKr;xE>Fr4`IaWwq!AYn;L{Mp*8l z1dNjVQ4L9yJ3RXqvGo4$`_I3b{!iy0RbF&d#<&nM1D?cVH^pF#;Y@Nfx!fM+BLi`dE(PGc?p#2cp@N| zT2zMDb2w}Ds9Q~K2_JJGpq3tH!$~s+-EDs7C+T~sv5x0c1LF_$qxAAPyXE=Tvq#jJ z6>&t%nO3Dy=R>)QoT@v@9*duHRifu86Ac#oX57LY2agI~Bd5LuhlRL7$5sv?Dse%! zNn+AjZOYLjl?u6w-~|mBzQv^0L5yg|Wnm!q+yw6!v70(`cVVP{ZKLWmHC~v55=uc> z<3;*_X)RHgrfYsFKi|}RQ$zlp|B3f&mvtAL5}2hnS;^*LSrrw5s6aie3z149@g#@9 zED3cmCBQ`$1_%famB`9Jh_58Ip4oyj5|PA{(Wp!k4*tb0Kp?pV54{c-1QRPzK}%NC z;XN^@+to`*HG>H4bM$euG{$?pM{O|z!*IP@G}n>8lfcsq7Ljvxp{&&i6uLw$8UnR6 zqCsR15-B2+P8NK2(7Pg$3z$@hdrm32uOBPBk0zu$>~Dfs`~7S(M3x_h)p?(#zm|ae zj5`KO+%HF-tG*xkW9_T3GxpLxOKiVv-}ftTb$cquGI0V8xtOYGfLo%Th#VwR+EFTl z5*QfB1tSwIaIKTri#v52x6Ciwe$K-j<7;+h@7ojCRM)66xUd!ygp8X&1g_<*RHx8D zm1+}!z>G^GyVL9OO?GO1^33jumF3Hr7VCcRuU7Tm<10l8 zK?PBfieeb*1TLV&bh1}kpUX5m5>>n$uHkZh(|EQtI#sH4giwj}$(VFaAhxs+5b2Ce zil*MAG{>HT3W7!SO7$oRk5+D1c5If_@oQR0GT#y|-F6KUfg%J16;Nditx+K<6H7Euazz+B zRb#Ut_X^(}*9Ar@WE!r)4P=5C%rX_voEmKj35j#Hn{UW*KYr$OA_EYCW(H}U@~)@6 zzJE3M4wD|*ivuewrp6YjlPDa_@rtaWH}wmOQUjXSdMB$KZctKEiMyVD^$C@JU=#BQv!IW9F%zt(V8`!k_VA^>Vk7zh0j|0aQJpz_ zI`iYh<n7@Vepr^)SLiDs#BW0G>62{Kj)(YIjguYfOEmQCO3~}1w32!CJp0;IoljbYzx~pm07VLqn`xYke*QOYXm0+)yi_l`5%M2t zP;`$j*YA53AA#cYKQ=tbx%bvzWzH$?*d5TSKi#|RIfdv#s}+l+lXt5x%b(5rlhSwa zP^j2P`NoiLTx@#wo5w9e;5CqoFrqk!M)yJoX-^+`Js9JytL+!u26Xz}nG%}DnNxT; zzuSp5tZU#7`{# ziFEU>lp<=02kH`8^H7E~ut)fs!H!zM=AnA1iGcm0@YJvVyJ9Q6pDTTW5D4pZ$GZHL z_Y>1SKd}$M#jrDiHS3QxFBc`4VP?ouQ;y@3DvImJI1+INjB%*VH{4ec9o^~(2r{Q~ zN9AH^^c`z=q0sD9ML@+trv4h%)0n>IMzv9CAI&k^vk}wk($7UbQjHDE;pmBs*{6r? zS*jN`kQr_MFfpi-0|Hs2|6zgA*bNpINQdP}<+=BPqj5`@ptSWlXG-_ zL(M+r@W*v-yWZ+?Hsb*GWaHUQ1++tWm#HB%D@9dk0OfUba+QiHSoR5*Fm`XQ2n_1% zCOv#q;i!uINKg@8$pQqs!ZWOA9uG9eRaZPV{if%nxVI0elF5 znneOYKdjSZ@WR8OSYTs zN@?4Tam0Q=Xj*fwe$@d{isprTUE94XE*LGLQ=QqHLdWpJez-IEWjKO@w66H%+Dfb3 zX3`h#8AQIJhEOpRc42CfbVV;17Ae6iv1(>Cpyg0{gf5slT54RTwvETqk~pk=^|Z>^ ztt(|e%m^!7ht^;=kWKB$FBC>F|6kTPs!zKWDB;W?S z+**bO&gH0KLnw=YVhA%}(j@?-V;rn;_x9y~N3);XeuRmPn$lDx<2JQ8IFW8mPqYwL z=2}Jpfz{6D#@hP~>G5BE7d+=Ny-Ej2T>j<*H~y>_LY~xos1{oeGCo6qH0TlHE?@#l zg-}jB3=4q%u&m_W5POmf+UlV#rx&dJ%Gt4#JwrxI@qsQhWJ7zGLCqmYq$~1+QfqJ^ z&*Z?}pYQ+V)A~n0^zhix3oibBz4@Q~?!kX2qDOUpwD)(3`h1p#M(s#V%2K!BM}j?d z7ImfRSXVZ4(vCzw+z9l0aN>-+EKx4P$Nbp%pMN~$;AK=}!y>Q2C`|E59fKU*{PPQ4sYYDCFTDDg7d+rE795TM8@NQA)GrXij8pzUVI#z! z73!)H> zmQL<4i&xPk1^%kvFn+i(O5tV}%!kIA={SiS!L-hDVlo@8(c(Gj$YSU+S0mF|FO`^q z)a48(gFRa-xiUZTLsGR^x%o@}i{Kw|MlYOCM?I#Lg-y{gZm<0z_doD)IuDFPrD}e%SDYpt54n!b0gv<&~esx(|iLC}$~u#mlOA@Pf; z^E}2(pntNWe=we^D-WrHf*L%CS2VsU&Q`@n7A#+wd60`3u3Gm$m+)PRpJO{67_2E# z+0u-d0OpI3-S{STf<9VQXBv;3)e*BXOV9t-jF8a*B90!AQS&5SJK2_Z$Q^XWuixwQ z+SV-2>kl{~p$F&V!cZ1R!bnq%cUw7Pqcw3*Z87YfIX3CSN!8bB24%#=knQ{IabnF( zXQzgaNr5u$qIqh3$QfEsT#eDQu`~rTWn}%7<4sLfD$Foodq7O=TtqGrv6PC%$UXK9 zUc|r$7aAM|f}MOb7nuHhx&1oV`_nq0Mb8SIVmTT%lpU07ylkPzs_*w2nm`ko%SSa{k1utLE9Yw&;NQvec4Fc2l_!6*5rfC`MR^R#Wtaq4=6H zafH}%B1uC47KW_2?vmV9w>5Hc4Q1uSd>Jj7svw_LN)SmAPxhU;K?R9-VFiL_0Ax{z zP0-LH$O^9?kC)ft>Uhrjn%swLfhjXsDT^wt;}98DwM>I82di==W9vdQRyL$&bR>RO z^pZB}qUYh`^QQ;ztmNOgw?C#-(pZGPR)NK+#l16^<;sfC$Tfi=#{iyJ4N0fnK2=wp zD=Xu*;ScC*;$ke9j$NbTzG(&hNF}e@6Y@5@QUyvWqEsXgiuIQw``F5;8`im5nn4f_ z%+}xl?tyledK*$7142Ma6BFXAe*MZi{$Xv22~Bpf^3K6R;$*Hd$$P!4j~#N5(mmM9 zn?c!yh~GNRv=ldH9zDn4k3aM?_2a8ldiHShJh@HjWgIzjQ@L76im5?Iju-^INyRxw zkSnuGf|utLVJS()P~m9~u>%UudtNQMBoxFoDRD5tm8cF6WGF02X#@y@q)>{X*YdQJ zn&6J6rH(u=y^F<4_o@fE3lNo*y-Wnj1lLl&#Db1}kq6&&i zR)zvRw5kG-RS*v$Ri`l1#AHD>g9DEaxRBHtK&Wc#0w$mX7^&8nn(iQi2;ZaMa$LUtNDb>co{YO}06b@sLaDf`Qo@9!KRARaF@qU#N_WvlizzCv zvjY7cb(p=I)3&6t&8}L|wr#L-c00ppECDq}(M*P@R#+>j zVx}sB;Yw_!t?uiVg{;Tq9&p%sx>k0UawHA4axjjHvS z%0(`*=@f0D&z4E6R7|FnI$s>>V{^?Fmz@#|!6r|j zdMw1)amCdsmC-lzRt#=H;tB9YuJZhl_t@p8hvIM5+OD=vv zy5mWxOlJTSYC);O5dwrlbb=BS^bEAx%Ud{2a0xVs(f}hU1VyG9Og{7DH1?e+YK}Lf z$<;LMljhO=``f`>EHQGpdT$7as(GH=EFP5q%%l)vP7g zl^vBWj25U8SqOJwikOwa6r`~%1Qe`NI;sg$;7AJ?c_EjSP#Tp4K}}pr64gC!2m-pm zHOK%EAq~rtZE(%9#@B?Bs)UMG%Q*mxdTuEV_luNF&F?fZHq2cf(1SC(XL`aVNV+Y}7v*Gz2$3TnM|p~{tyvBDFcHs?cApcFG_!C{LSZt2Iu3o1KoMk3(o5u8TS zlj(-$AVx96PH`?c_c5}bj+9=%OxxVE19;>@N+?Q86Gjp>-de2=5PPb z{yM767*EY5J%z5jQ<2qQHVC-q$QUU@15HT{R~sTvEKn84!ffsW52Nz!F`oC;8Ds6=thVUw+=|qVy@8F#Q`TIFTN}DI zt!1W2 z&t6erDKj|*9lx8mgS{?6$8imwzS13QI+)N9`nKP$o9_xWsvc?J!2N!hc`5PjeO?Mq zxafd%DfZ>$btuy|n^d->1u;{c?flra(J7M=^rjzkEghe>OdeU%0nyWxUNp?$l!^6_ zItkl@2h61*0_K1~FgO147drCae^~n=Q1NxoGBDtRhb)XZvboCiAvPMVcpiw9Q>dZn zpyCV*+_kUZJ_d&CG}Hi|^F60E26$c=80RbmLG3WT9qu}&dr;pJLsoV(U46JzHxsqQ zGcljJw}T%hZZVkV2z0l0Eo@T#vuL9LIWg|VwhJN_1e5T_9_ZLjTAwt_22VlJ452v4 z7;@2CJVDmT&|ZE_o>0A{P=dWP|pVVBg|%#j`bQC2|FmFsuEHFK?RyjQ88Q+Fj2XTUB% z+xvE%Qi=JkjVK7a#ynBiB!7 z&fkCCM{pC%D5u^(mZyu$yc(Y4!iWCZSNpTS{_>^XU^+z`fu1_+U%Y=;xbv_7ApYb# zWVf;)VWg2?yppMYC7As#FXpHTDLJ5A_yB)LF_@n>d zKX~b{{oD_MEc#?^)NJf{8ais=ZdF?f^c}r-u0H5J7m-1n-Fox0*Tz57YP^n$DIGsw z*JEZp*gnZvp63{VbR$%{i<=Mjy3k6`)PW3gNO6faVN-+|>FMVLcl9fu5!Mq5;Ik^D zqaJ1Y&?D$fa1R=xp76+n`roeTKf&uyBE$NWPE*~cK}P>tl*9NZq_{&z2o;X$3GR=XpY;K7Y=h3_uOCirxL#FU=0ehcx5r%h5h*@aw8t@bOQod z1n#imngCt|LBMXHDNsj4ASrsH4Wfc`pXLn_>vlMvd^ zUyz8u=(z$!*9b!sAAjiipijIz`V}bv>jsM+*21}dWeA=_dwf@UW#@0QizN6kpwfqo zBFv44hKJ}RvR@)K@HdKLUO>}vx*<->-yQtEie!Ar_zK+jn4uxNskKGU#aOT6G3G<# z6{5rlw3!)RLRR$hx_ZR;O_fx0I@6~9WJW)X{>vusc&Fa}xBs7?rf>b%y{{X3?<6Dj zctNKpdcG=4s}de_PpE_NC8UT-vPb!LUr+kimsdJ=x6NM?KJ(C z?~dbM=yQ%I*m}d~c6}sV*Ot&W^>*s8bAR7I;_T>Ozij_>&AjME>3dGAY#(W%r%qoC zRxQ&jfJvVf@}3U^K7!HhBv1?4FfHn|=WpWtIR%09VcSW)xj_@NBbpUvm0}2lt@MA{ z+=cX@^i8zY{AXo*(s&Bl3$pWxGfGH_!jT)MrJ8vM`dTgV%x*H8Lz`TR?c@7*b?@?{ zay~J}84q{VPB(qj1|wcIge%Q36(NYrAat$Ig_`IdyN0q2Egm?ea!DGvEmT>`|2VhoPbbUimOX2v6Z8mVO;qf_;u_Z@*ws9kh%6~G zMX;eMz;b=h1QhE|MJ!=X%sc(#NKr|}vVC67{L$&xNDt6x?ba|%T?Q77rjI|S?;Qv4 zF$<)q1vacAWbwIaQmU#|F0zXB|6ucfUvK}KiN7M=&C~5QGkrC502gMkvrRnLr|TTO z0bFFEbMuN!2|KdffdeIDU@uLeLj0D`IT3Uzzmwf6H*<@I8>y3bQQ>=GiDb;0pED|5 zvi(-F4I;d^bsp6DhjRYIb$*-)3Pe^6AJ>VW!R4x|q(xZFhW;boCyU|~Jp{Ecc;h>W z>XLk<__>ryeerwhKph<|xqnz1y_BENjeVSy7D%-9{0l+_^E(jX0_VWksphW` zMbRu~RZVrZH&Yl8L1FA3p_M_3v0b1r&HyeUf`tjuCIc+^$oyKz7;k$Lwy8p9B|=tr z?A|pT3zjA{yP@)mDWgF{RYY^hl5OPIboWfwepTh60kolA;=3xlNVH%M?e@!(TI33# zVZi3_+QpDQoag!PeEeBwzbxI??J%<~b+vE#(?Uko6JKw-ABP4tmFhB;(t;OCkR~3}#C?FkG<|q)|pGa4I>21Pbb43UtYNV10zKE)*!oNEdT?)m%`zub^O-3OCy*TL1F6R#Zv8Z zv7-lxrK=vV$EuqfJPM?OJpZZnq_eSzjP#Tv7aJLG$jAPC==%0k`tIwGzZ&s#2gkZ` zp4&@uwy*QaoYdQzF;OR+bw_|j9!?Gw3?EF_q$YlP_x4tL#9$OLy~ z*PF!v@u7orVL-P89VGT~^X6I2Ircb?eH!`jS6`Jl?vb$5jHx*5I3-o&ONGgXCX#^` zHIx8}M)ISvODhD7INCyN)OMswvrC`~Exu%chmnz>tC9e<5CIz`BnTNroiU67YqaU= zaP4gYmJhDDj@^UQ0yM(0mF?j>Lrz1zb|On4poyr;VkE0^X6HtI8k*IT;0$F3Ni+fF zBoW#?mFmc#7jkrZ!s^(8{n2>*eqAk>^EO-TohmW3$-+JMz~Ap@w)tsR+1$rlN!-sq zKz*-{e?7r_zMGl*DHTMHnRz-t4t=TpKHBCM>4WtrA9&tdipM$XnAE5li=h-$WMduE z5{4p5n4A)oizL!W5vye?iYH!^tQ$Jo^=127-Fbf&A6{(NkZu3*=wT}Cs_mnDdyby) z%j!#=XfQQ(D{iS$h{h9nirio$9HT7M#zdjOkq0rcaFmV_aNV~r2qY`c`F`9>yu8a= zvU8o&RQHCi?Lx#LNrZ?2$BdYbY}q)t8aI06DPaGMX16v;Z)|2{auefT_N3ljp}V`R^+I*CJ~uML>p>oD64`*&1gv_HvFmRi6&~ zo?pK@YqReBXm!uD*H_+VRnw?rtPU*p=&VR$0Md|B3$`yXfGX#fv_Qlnfr=bL%!84of)8;AwIZDblJjb74?i zeUfFb_Q#?2N@_O5;1k4t#RX~~iAzAR60sfO;tH=2!GT&o!s~jCtyCaYd_m&@x~_Oc zM;JqotwC%e(PsX0sCX?rx`BHM3e*7D`+A9+gG7|xh?C*yevZ3A|CD(&3T&=9Fs&E5 z1+$&`AiY2ujay-8XuWuIZ?@=5Ilz-S@L&I&KV5c#z+3Spl1JFTH6R>>j9wU{@qwRqPgH}ksubhsEsq{D(0|0 zy;{{4%LaAm0rn6=E@3GfYW*@dU#Y;cv1!c@N6 z+^_kqj5*kfCFv7h2!bNigjM3iH@cnDFZ%v|UkCJg{KuU4T2DC>{g=J|_nr(NRuB6k zcSTCuW2vv}ZDPNojFD1Pc)j`krxz9Lh&&yuGnsFY z)mJK13a2$3oTcuG3)Y~+rS2s#Avhf3Q1Bb^J@%_OHZTx|sC*2FQ{zYeGp{I)3rItZ zz}%?b;j{0nN2htb5hAy-ieYC~R6qYak?Uxm+CMse*6I3OKT+18I`9}hSsH7xHCZ~r zI;U8h(W%JPXQ)@zgVkGakJBB;1S8&6#RSh}zULszx#2ty)PLl49^*aJ!<4|g=N3}{ z8j6p6Uo#!QPrc+ZGg6|M5WU}hs$9(t6|-4Zk_@H>!g;gp-pap4e2?f=BnN>(cP3O+ ziBGVK zt~Y1a%?y%YZF0W`4#>T(r4O>3flnZuzul%BpE7lSaabYAccwSP|Ht|#^r?}u&?$;q zo078IKtLXIG+KAsY47Z=JmT&nJ*bF?|y|BEj*L5tEK&Zz%&PH+9y9l-P8 zym$KSW(BsbiZK&YAuE3(2cp6>OM>FTQQ~7NA&H3uDBFjiNvph#7%aI_D`FSS=RBOo zQYzQfagl>$yHw~)A#80rnvO<=V%nfXL%6_{$E2G>H7hF7DAl{6@j63emNKIrRJ1bM zaT`niD2!I7=)#MLk;)1Kh`n@NrM3pxUhhJj66)^l7A zHU_}+T{8{t;EGxYHHIjC>80#X&ySC$N>?9Wkse$fKsETz{@e18YHj(I%>rk%nrt{N z6UYG-4-B{3Q*U!KE9?>s%Z<{1h8v%I&LIp|H`T7X$Ow*pDuHuMrQQY(>;-SXJ>p#? z7;2PFqz3EzN|9-^pK#7o>W^xF++UAHkqOgmE_l8ZnG046uFD@5fz}5)VO1VWYx#J= zviDy+Tt+-2I5S9LK`;2(LYcaT$HsW`69nMu1H55nyB@#v%`N%WQ$Nc7xCW?o*8_k{ zMwEa|mBkRV4$^)qhy5nBCDrCzH~*wQtDLEAJlyQbr#bWe*Kd9LaxK38gQ_pjMhG1S z8^bQMX6Q_@TJDK<72EJ=S5ma&trREV3BbskMNErK6dA#04e`{dC%hpj02FK*@5i=r zxW2!-emAiF$FFB$>a%^FXT@2Dwl>f6wZ^pn{oB9eS#R3H|U}v002Az7-pXC)dB%P^s+I#yOzab zyEQt1#9TqGvpJJr=1Tv=JMRakL*!^@%v>+zJMxa(^Y{Db5duTLeax7=6>a0l81%bj zDHJ%km#KX9ht9bHxs#RHjvwc)&-xGN`_?`WdnA?ZXS=_=&i2T0M99D_LZum)IToZ; zSox-l-O)LCr8!<}{4(oiBD9L5`{0BKRIiPujScfS1(yq-yuNo@toZOB?EH8fu0w66 zYAlukpGC3;`@E<#c4j1<8y)!{{=6Fhh;RNej$4%*zp+!>@^3K#`041Fo%gqL@6bhW z+ieI3)drOCXR&N4+z2N(@HyR!zwmw(ClKo}NA0+QTVfHsZP1yG7@v3KeZO?osgvaw z)qd8WVM@`#E%aO%rXF#2ACKQ3!$T{57w78_QolSTJ7qQ0O2LAW`(&B#%(|c6-e6OG zMJ*t@i>0n2^hgA~@Ac>oVfpjQ*}`J*3~wvi-Bh`O<_#t zuG49eB(4TD%PwFe1=&fwkn8p=be>o8g*P6}t(A|Nnv+|goY`Uo1TP?sfK*3I2nNuy zV1_^fLr}Dnh$y?}X@8rYk31c29_RGSwVux%>|;YmNo;}BvBX=CTjY)G&G3svAJ|z> z@g|+G>)n0Dpogn$5(7E~<15senJEs(O}lVhQjTnDBU@AR7U!N1KJvAo_qO9F?Rf-gc zux%9FYZ6s?LWkjswL*7Y^;v4-$3EB(llxwLh17U-(p4~t;H>6>lq(O#l4w`3Z!81Fz?4JV9quu2`V=_JK z*~TJM2Zzqp3^-m%U4HiRSBzh?^&U*vURem`WgxAS>$v6nX1-Xif!FaIg40k@n0jiF zd%{&bI8xzCA*|b1DCgRgeDd6Lt5ODr$B;!_03=o* z^CR;#vTYGkGqHa3&HaQf;lG|;kFLbEW1X*j2=sbBule&dPZTAHiV!j@72!c4dGNSW zSyj}vJ@7&!Y{!-8c%)kT@vr6&j1@62^!=g#^nSiJJfTNjsLDx|D^)-U6=`T)%J$~c za0(D$l+F2+@Apm;ZsIRY&Q%!V08E%@ITHpQUek<7SGZK?v)=yOxiIlekKh@v1s$Vn zmT`_HdHO4sDN=WjL48#IDR0+-d(n~-#5&S2GKv$bzqD(IS{kbfS-(-#4+%&9Q0RKZ z$5@)I*YR8C&-C*0wVv01g;7)f%)&Hlwon4XI4~kZK#71&(_uLnLyf87Om+a#aha)& zamuB3PPOov%+aZjGM}458k?py;E|K!2Mu^kwy0dH0&Aiml0X10EfO)4Ua#FpRH~7C zB{Ygx0adIrRaAt6T}U_5DuXoB5&^Oj8X&+n(?meDv#G7A%#t%%u{Tr#My$wg{UCvk% z;6k70jF@-ZG5b29k>q@je=5b?ogxeP_-3>~%`-+jt<>`H$fU}FqFA-6-4ChYF={21 z!0xWS)MLFyzuxJ4?wa+zN)T0mncefv<+EJh=TdXsx;%|%^63m^*Auwutm7(#4ne5s z!6vD)!ca8WNDD*+`Gnh=>eWw5gPGyu)NEi{X}dmd*Wmnx>P{zLr)yz>iW8qnLpyR5 zS>jTnfF)s!oDsmE$6xX>Fegn8CCq$$&8xHLF&YWQvob#RJ1WvmtYe5&4rxTu7--b8 z%4F1$B6MFV1WZeuB>02Ni3idH;z1=`42M=YYGojlB7Ti0A^BH&xwYqg$M*!M)k;%GwIg@C|fJcO)9P80gX7ScUGHM$~ zFmF!yU*XW-JJy?6L%N7RP9BQ(!S1*G}Cvd{tHI#+4@fl|LZfY{=Ej* zfQrpgV|Tl^*IiyhoBiYbYWkO0u}wKSt?Y{5%NwhZ%ysKXi{lt7^4()iQ1+Ua3(#}o zFwqO&O?CI!Z`#}NrSK0eKJUmi=N0zD9QXylXQhw15ucKr-8*ohT>UN~w;;J@Y1p!a zvQi75hs{~<#=0u?hFaU|> z6yN}n+NrB%Ds4DNifrK+2XM8$lrWUAWKwvhj)hENvN8}}JgVQ#z+7r7aj1kMY}(iB z^Xb6M$JfEr`imI=qGfrlZRU!3gdb8LH_h?8T|;|;zI1+oH})1xyR2=AQ?8DOeo7$K z03HT^kBe|%tF0L1Q;48)$L8uF!Jzh2VFfb&Fnh|(r6?PTMn`i7+<(;kyP`R}qSsfs z?i6lY&CU`1t^e8ctN*$r`Ffr6$Mileu_6Kz3e~#CVFomoQ_C^&)AsmGuQyRn^7b3=kxHE*2fSH zA!@;{z?#&ps1XyQWYl1ax5I&>mvZlSqt6k*olUarv9>q!4V9mpHxV>&0i5gSGw$qz zq1D-z5s)jeK1+wd+B~&p>(&m=fBv=g{OzPjmE7vl`XS{)8aJK*!+F9E0Hhd>E8$2= zup~4E-r3EiYLSqrqBDh^mA%xIO<u{px1_B)ZY~nde;9o4UF=Gmz30-4m)347Zl1=?13)l1uDTc=Hm#RDp0t zkVaW+h4Xgg9Cs_Z*=Y*pbRMUbxi0lk)QhZ#h#zc^b(G3(WqGv0qeGY3F1w#R)@P{$ zI-Gz&xAkmnhkbnzJDOg2$~-E z&9Sma(cNR`zKJ^f6~t#-5>Zt;gcy{*u;H<$5MdiC$#g5F)2`2}jn1hF&r4%vlHZRB z-55w$!Gv%>)65zvK3Wa$UIr3d=*=GcOtE#dPBvH@I(yy&m$c9}jFihgq^C-YMTNB!e4FH1%SwuceZOx$-{!5c8iW^X3i6mMMdv1nhOrYXDphJrV8R6l#P;u?exuiy3aU z977?ng{&N5)RZ&Yj<6)!&HNUK#FoiDE^fb@jfV#?B1rg1Ts`b#;MhadWpgoxSURY+ zxeDwPvHU&vQ`Bdb1q);vIEXm)s}=6w$$61EQp*JyyJmp_2!udD@JwJ8FcXZ; ziw0Z(ppi;&d}0vv3Z5AJKbA*mZG5`vZi~Y-qREJx1Zj;Z#*_K(yul@(slmla5J!mFEdEMoHH~Qtv7_{ zkXBTq!R(-=kcMrUT(F+_03UktxkXj2AvPNdil*EzeX_6qx90ycV!Bw~+!^G$8HSdQ zbgloB9zNTC{pI<;kF9Qjhiw{KWzqYo{^pN)c0euOqJ!1mk%n{cWqj}-fclSc`}MkX z$xakQF#uISs=o=fBQ_9%QmWgQU{HJ3*UKibmxot3HMcs^ApAG()-}faQRA%8Y~9(! za(5tr+nZDVh5-uA8uUj$111Rx_;59a7IX9*!ORbzE}&^t!#iBY0V zyHsRZML{+O@>2S8aC|no?c3$3wxc^-X?bun`qMdLia=|}WRw&af5aLE{{_7N6O-R* z7My)yZcvZ9U?qVnU7#G}a(~w=&Q$lq)yKoFXP*bN3m>a>+!o`Dn_5>FpEMBf4(@{S zz{F3l^13b|t!2_fyIbI-e9~2osL9^!DjELq1OAq%lu98NwLnM&SV;yVi_w+l2$>v^ ziIOrB6F$fpG)Q7wq3mX8+hx}C`qfPtsrW4KWvA#X#U!1EI*1%*+sq}nE$~=GLN!dc z%F1>ti)lY7?Vt{e%=I#onbaL>>K*FGLVfhS2Z%0VOPweeE>jge*M37KZemmrENaCZ z5-E`p#AdePtZw|_Y8405H&c(PaUE}EUi1A)@(AA5lC)W>4qkK{{TOoazaX2Qe}maS zeKUToD=*CQIVUX5L=?jsxzpwDbe*!;17%S_MgWXlwKVy>@WJ_0wZE3<=ln#C-$1TtcjtM0;>Ct>=h@r zAh6o6YZdE$70=9MjrZ>vUIN`^GrE@^CVAYOgEn;om4?7LB#uj1Tomg_j_*aa>B!+o zooY?A=XQP#(M$?BEi0c3H31uec9EqhuyWp?t(7M zcDF7?F|>@BZsH6Ml!lZ5#^DO%@cM*_&`A&!LOGRc#&++W><82yL*e?sJ=V=(Ri&I4 z@WNJ zU#s~AS>l#vq+k}xf-4@W8j2$bAyxuX2DR3$>|hb0sWh+k`LXqS{z>Tjul0zg3UE}0 zEK)KGam5QNgsgxA%u=~gu21(GkPq`*1^0$&V4#+Ox z=%n{ve(T|a<>f8NLD7hpAl}3?#u6fz)*P+FK)t>WI9?+!-J%G#)aF>QZF2|`5y-%M{sV{qb?dX7V}+dVtTd+S=>yvjQrlXJ7{%}QknAnDf&cw>t&X^0d;b|O-9 zH+9}1-lt~vxbjbx{>Dpl{|EX1RQ>iR_A^*WtKK?Q4#DpN{OLjkl31*9ri;UngRM-$gZG0Al&U7#!N z7z}EgLI`Sdg+>XWAW#E<8muC8(XK=d9SWKD1JNVZrXz#-56o&G|X zkc@f0D^ivUn;sIua1U3d!vIW43Q2k#9BuU!qCvwb&uYfRazQGp6+qCH0t>@5-P$dc z^ttqP=ckk5saUm05c|PU^>whhQ2*O`J1kym-}4H}q)ZnUF^W?GVMqf7q$ELBsu8jk z7FI!|JFZM{vmHYUGE}oE8JaYumts3lO)Aua*j`%{Mlz-(8{Z-?gs=iNt+mbo404Ri zaoR^GC|~b7Zt_gJwAwZH4-dR$wowp>WCl8G6+v| ztxrh4WJyhi&tk=y5+%{*X z^=X+=6XnBFS-I$Rfw*nOMoMA`WZ=YQg$h`siB>_KS-VHw^t?!2p+wnqh>|a*i={d8 z#B1z5X9XhGC?!tEJJOX4OMAZW^7D8W6cd6pE17nth=??Jejdzg-EY@|Pd9t!6dsJO zr1y=6LLs6K0Jyn2`37g3T*%P^CvA=uHS4jJbcnGPqhtsXS6p!IR$POMj6fJdgqJn; z+kzAc)EAF1(jlz9#Rs_cK%&$a{|Hv3J#dUtg(|~PN$QV-($=oE7OzR=c&Z7-*(Q%S z2G8i;ygAYG!UZkKa)xowaroR0?px<kIF)e?;Kw-m(}y0yUE5d%ZVS#Rb7Cs>G54~S_M+Ji1XLFPwe%oy7H!& zCY2v~HMbKh?do{)8kiH$sgk!7GvDh;y6khvMMB2luwLUM{oGLYm{JL9lOM<$6Qa)Bcxt!6)cX?UxTE zg^FOiQO~>ssQztdfH6AM1+Uk)f7>@`StKvp3PiVtpY+t~FzWD+@^?Ao83M_PR&z>x z0ngcdKlS!lwf95|OT#j$W zU;kZoe|JGrxa?F%(pU@XWow&B)K$qe2oqGEYm+UktdpI5{rwL&^yz>4C)1bS(bhFK z30z=;&l%Dvt`_?GjPKj)4HkT5XM^)?<~RmSZ&NFfot|%Ol%5h=%3ClS+JRWoYkpBE9vcKP&ze$_d zE%+QRznG`8Qx}`NlPh~{-gEKpr+3f_*U3=eS?XJB30M#3xY4?kEAE!3KasThGHKWq zE*+%!j_zVUADy2D^6I^>;6FBAG4luFQwKvlNPn6OwFWs|oqqfU^n(*h7+%Jo+)mw_ zueHIWyu9{pth=U{ztJzKu78BRyAo-utH;`sIvAY+HpcxeIdPk_uk$mlyV?lG^fGj7 zZSz>42hq=bY~U48*h(opj;z*hU+C_J%4;wis34El5~m;Xoo%K7bzvBYsLdNTA^#Hi zpBmJ8a@$MvAYn3&Y!qZSq0GjTa2+6iq~nL2712Mn9Qw{Rk7Ylv?fL-~ zSy7)(aXQi7rhrUE!lI#)vN*}4%QRO7W9oS6Fk*g$-%sS!_{YoVKW;lvXc~~E-VhrM z1x_$-ca4p$22w5aPulBJn(A-3vjwehq&JXvDjt@}NzC&jv~3>=87#vlt=s;pYolt- z&z}y`_X?d-;7v+<^rh(`fMvPByW`ybZ5g}#Lwp>cnq9QutYBwe z#N*L+0{RZh7C_B-$&J=Ij(+D$Z^Gc&-KD8dJqA+8Gcfz+-1&WuMZUl$uk1eHf6JM( za`RLTNKU{;9v{o!R-x7(ANi#4b06dLMa=HA}`W_Gmz1S_kz+*TSepzQMQEp$F}8`0e9Ntx0l9f>k3O+&>%p<>hOy8 zT;8S?IFId%u6y;&QYNQD@I^cvG>P^XHDVo;~bQN?5DYdQZ18RL!-$+fR||4h7#OWBT!<9w85 zCZnx;s!94I@enX5WR@13lsg&JB?MC|942ETP$;z+#fh|(JV_0MZm)c>I!jq6Q!97k z($UqI82z{3Klp!NC35dL;2l5uk9+?~=Z~gep}ea%{ySfTJwN)#H-Do!w^hwt&&KtP zYF$hAMs_LAwqEWS;)rPD_mwO*Gd|sq$!q`K^$e{y0K&aF=ML#Ia%_-u5ZGWs3jG5Y5) zd=D!qM}Db$o})9lLiHmnKUP#69LJ}MbK_gAI*0|Mw(1h>gB!A2tEbarQwQ7=l~vX9 z`CEFUJPHXPxs{RDH{L(LSXb$W^%vgs@m2QLuUhzapMP^EW-!59DQISo^Xjjk$@E** z^!V(;Z}U9&@A%ObBd_o3Vw^5dQ{(&vx7V4M?`tGdPj&1$`|HL>3nbDCKq+-&6PJ?2 zLR7Iod`x}>TrL-7WPt`6urM)n}(+9S+D3 zescXkjN3mxD+opxcYpQctGFLktC{n`@ZCW-I8HpEY`6=DZZzjAI2cMbNVE?4%ejvV zcB`s2X75bLk?Lz2Wjfg(4(5r6x@Hr+N|O2>#VoVe4(~0c3Q-)|O^`#^6MI~CH(si3 zx}j+HBs^nnU*~P*!o4Xoc&boa+uh@bd0gllxm*90!{05)l!ynvdt>JgUlM#Y7xB&n z_Jhki4tED6`5=9q#8IWUa_PQ$uKwc?hGn|JJGXx=@`Ke6{TxrF83dn!{v}y>O+NT` zFDQ<#J`W~3d&XVq>$j18xg7T^Bi-Q!a*Be=b8i8|E9GFGBB@+>w_93e* zim2Ff%y}ufOR0?X%-G#u6of?kE9(brlk2G1Fr@KUKI3}-f&OR|g)s;1%EN_JRRDpJ z4?x@9Uh3>NO28v=l@)4InI+g4!N?nCkeA=qJR@QvMwSp+zIdAP$ZPUCYnqQz16|V6 z7xHhz);L!tFG^hcbPnskKYHg;hKz)-DX!G!Vm`_puCYB&pU2=n-qDiU9Jz<6;k2?5 z1-78W%CfK;pLVV0QM(Jw`#+zxr!Tm75TDE&QO&?DK;(yp&t)oeQGwdv`j1EV07oO# z(_@qu7l~pk8{8#~(nyCf4HGj-i@VNx=#Fplao=y3`^nz3j;x+r4A!!fG{gc*7b3`k z4ZX{F34k&;YM$5o&)m=tqu%K3oV&~}Ww_D0uPGsY;gax}6F3{WGL<=KF$Ks|N&HxE zzgK_ytLzJ|z9dP`0-CvxhI;qlXZQb%&EMU4iQ7!~clw|9`T382|JT&+=5=N5HJpw( zr~yENk!&ua?Or4penx_pilPdTL3coXg?=RVcD`m@Ea#B7gOTmWs$Sf)fLNe}5**pc z7J)~Xrsguw4r6k|B{?^~54nw$a^!wX9bDZ*u0kMt)TvqfJeyA!H-FT}JcP3u#oPhh zZ;y=81hiR_b)brOxM?zNPXnHu;mxhLv}aKutSdY&>ez@@2}ZYKz!iOmEO$_x->0UO1H7*P{6kbtPvQ?y00 zB!Y?|HHCACTe5htx;bi|>Q5~~0~)dpaTS!HB>)P*kV^^>1xZ?fvcMcpN*m5Pzwu#c z+BH?478NV63KTe>@^KVO2`snWX0_J37fY@e+L}Qx4?D`vlxrs6Tc@ z5(p3>f+0g4(a6G^KwPOR@X3Uw6u9d}npW8gUr>#=QiR0{S%{-2>h(c9YF@mSMNK5r zS&;F7?y8<8bzV;Ci)6?-vG=GHS&N?6`gj;mVxZW78pROHvJNUs@0Q z;emc!y@4Yn^5FACGirNZ^KMZSZ4N+P%4KZnoG{`8zN6*W_)Ge~vHHK%{dYe9v&ej} zUqwbA!~${OCCnR=Y&VK0)iF+%+N`2$f<#7B->4p`E0n$kLz|Hu@||0A zqwl=$U0i>$+lvIi%CLmRl5J?BrAmrsHFVBQfSE~|JmQnewYT)LZaDZm_4vQ*7SG}e zsgjS)IpPjZA;_%FdI>6kHI>)rati6R3x-;U95M-~ARrlsAwnK1S%DH&w!l(cuVS5# z`m=n#WC?&sHjOf|3dv%z64fj;vXB%4X$f^%iS38RDWLMa7hNnTDa}2TBoGX!Ks?bs zb@oE8Ar(Ea6Z3k-EW85yOeuXf27PN$&L>-3z14lv&##(WK2#*H{&dW|Xl`|#{@wQA zg3+Oh6|Z8&g%M0tp&_iO-S@y2Dv0RF0Zv@`7O${kt)F$`F|@dgl_dy%z*xqn4B^@< zMDiG1*pev;{0b0K6cxv|tlUdbKQlF(UQJ3ZT)7m&JL*^X1AIFZJYj=yJgBWAXBV8g zJ1J{Bd%Z=^KOa9ceQu@ye$GFI@)ymB7xHcO-_6(8=L6>Pp5OS~PCsJ0)dU~T?@hv# z>7ZM^7A+3V`cQzH>gXvNav^&60#8Ih*{ZAql^?tS-l00h;XT)1{%rI^uT@RFK~Tt;X?EB{Kf9;@NW-1ThHiMtzXr? zLeE$CZ58K;+((Dk-8+g^Xz1F9gHJzx^*p9VSYLbI^B(O|>dSE5-bXjo!PW?!yI!3~ zBe?~}Xn;ktprLsC4Y2vv=y~t2n$-MX@$kqgkT-&taqJx zJM~6PYDuhzFNR6q{n34`@NNC4y#7YCydHqgU<&k*=8i?W@~-9y=mT}uj`%US&=@bi zDz0!{@0W!4Zmv>Q_==`vjHw45wYNrvYL{2)oUf4j+w**D5EZUEepwEH*G7>JPIO!u z1SH~vV5r%ZvSTL7lmyq{&!9kAXa_)%Q+kK;r1!RhBrl4SgBJL}-W+Rzh|@Dx;2_pJ zv%l2AHQj{ATMSa*e-mt7t3Qj}>97eQ2|0j9P(6CY#>ZcjvUBesbZr@WOXx<5u(rh? zY1f1Okt#nv)qDV-A1Cu3WLTB*%Fjh^%yxBdhy^3|h#}Eb4BVTzZhV!S%ANaQ;>U^W zX;e*Z>G2zGzdHD4Nq?AsB{Sat%PXqAyVGfv{$I!B^JH7@(iYkfgzARpUxoGig8p|L z6+9t!P0ny>tofJO_umKm>T5fgL3)0|@^5_so7k3Ov*?~EYv?+B{%Z5#-@Z(I|217} z188|G*lpdrRmW9)T{AkA2Mw6R3Znain=hW-PaA9J8bogkzD_@N`t9yNx3_;foLe7% zKW`pnH$Qw1;4Yje3y6*AOF0&X*dcBI9*hP&Ndn-yg#X&4DWP8Lm42^XD|P-pZjqv zzG-!bdmqp&X~0y)O()QFpUlxBCkUQafldLvg z7C7X!w~at<(4_O|*}GlbW@U5V!JqAnjNyVi*E)$OkL&2*nevUU^B!-0>V@vxdAeQl z&iaiP)1QJk_QP+@{gbS(ZeZ#vX21v&7EO_Bu!$3PaMkMQ-N6Bi9!;SeeVZ=)M)qD^ z@EC=Mn9EsV;+CiR*3K`?sF2>PI4jf2A1t4eDs?O@OP2jq25xq3dGxB6?R~@^Awm?K zrp|n0Z;~|X+XtK))!u^X^qm?g0AXKQVNM>ow77kOPoK!Z7pQ=jGD)3+ zVE_rwr7wAGL&uvq!|@S}9325cFc%0y5D2&wV0dc44Y-rAQM%Q&60IU37zlc3uPdd; zv;B3oy|67q?#T+_V}cbTLjn-rr)@}76SZXunmIh|==HeRt**eUx?;6C+llw7QA^^N z)jy%lcp~vwclJF^WLvIO(8%n`LQ~D5$!<2vA|qvDC7?y)oxk}hz47*QD1X$7KJkm` zV`Pu<>EXZnp0EFtAA1_l@_7DtOPO?UqqD}fx`)Slm3a0iqo23tzjr%-SNLTncThj{ z>WX`x_yeQ#FD^-jEW#z&4w;N>z>MbF?Z zL*&JgLF|Ib52?wcPI^b3u$SruM%S9VXa%}g$IwmQBb`kKgp>VZvJ$xXLO|j2M!s+| z+1oX|$D(*sSmo;&967C-vChxu=eUW^yEmtl90`@{7q8VY&U20*n>zwpk@Q$Z5=GpF z8kR0hIspX!!w26n0HOvt1ZoOOG4eU{Gg&9BMdSSNq9=+j!8MM}xPXyX<%f_hYMD=( zStI2=ukTd)NxOm1p2F#Iqw<=FSjBEK=8SvgUY^JV=VH*q6k)|t^ zv3@Z!XnM0>?=j=_H>?!OIxb+7#z74ZueZTqHb34M+As;yh_R-XI?07?Q7dO3d-Djb zslU|xR$g5)Qqm=mur{8~tjMx7EjkDdYX|MrX=VKDhxaYh7 zuc#aT&K=V;e1$aOkn;GoK{24fee4=#X)f%UansW-mZ}S>0t-pNphKfM!#7ZUt-)EJ z=Q~QKZk-%;LE?)2gSvg$;0jt+*F{w@4#}BcOv8)#H zlH?9ds!-?CRiqB1$PNgY*L$wE?`>W9^zZK;KEp03V*U2j|l3IXt zgkup)YT!#!EFzFJ#C%Xlz-*@0pcOoxc@8)9SbiSSFWbC;ON+a6&)l&r12qeW*l1h0nH_W&4io_g2#J!EplRW~aM!i2Kk_Vx z%#xl1@f55|l9WaZuA)#etTUCb4)GRNN~zHR!jAE)^G`$83q5mCrvx#?KoaTmoYDK= z1oa>PoN{c%dSZ=A8j|Na zJ+G#2!d5z>^NXGH8Sk^buItA(4U~orh8$rrwp1}#AfV1Gn_cLf{`_u+{asWgTSv@ZIJj_t*|6(LY>T3y0?+_!HjJc0%pd%DdkHb z*b4R(l?GUKd5o+A#@LFPB$j7kSv-1?$3ulO)7+QpC7O&;6C&=*dyo9nCxjcHcwbJY z(Llk;Sog%~q{>7z$z1szt%EHAoW!6g49S6RJ6E5{M;K zu_)%)`KcczqXM}*$cxOxZl9_^v7=E(8E$9?RIgy-f(IKgzyQ?)QW*p;jH?HpOU|>+ z71L;`MF^Qc`A`mRo ztx{VH-&kvbduV3E8KlFJG5X-B>&VjO+Ac~Z%2jdPb+xFv2pu5@Ej1x)?6oC;DX%Ac zYNKA_F@?%XaTO{B={jDONK(SeHXST=qt(IOax}0K9gvQtz{tErPk_1lv-si)!;^rR z3Be7Vk{nm@5k51Q|33b|H{r_j@jt2M5XyaQEa3Zw)xz^+h8Y9f~sMwIelYg@d8T}T{a z49Cm|7oeyGndB->5eg#PFxacYiQVn;&D4ZcL%3d9Oq3^Dm>Q^1imZ}ZM3N!_n=_r6 zDU(y{@ppc|(#@Azu`(@4v>u!h+O%1ZvYGwfGmo|!HK;f)H8f0jUD^z)SvM*Dm6A+6 z_f2qtMWj#0T8??=uFf9*?D$h0Ac7-Qbjgf(?8R019RxyA;)r95NaSs)?8*ZmjQlYU zUPEG+t3eC@_?U$S%~(X9)Xo66%) zdHZ4Z)PAa)~rA5JEE!Ti&beE1Y2ZO%sU1$& z>Dpq6T(@I-Dt~y>ZB+ppkCR`Lw0^NL&m&w9y z9MQAdg}^Vmw_|#1sbIe!>;3V!$@J~_ej7%wmi9a~7!v7OM8gF>mmQwWvZ#sPIi^zW zU+A%C*nNS|v>o41>J@c{-W(V};)c4ZDcsYeJC*4Q1DHSrxZw_Zcjd?Wj(Z%4r-U{c zG8Vo)3v@Y@6iIK1mw*T2TEDg3AJ2KXV`B?F-?wtAS_PL(X zp4}s)VcNjvd_lkN0e;^aZ-_Bil|Cjy}-5eORvo#j7z+1firoNUBo`3WE=!p^QH)l>? zeEQ1|bw@YzX2%j$edblp^z)&T-B3pBf7glg3|BsWTTilQo-Jc7fIau4Y+p(b$Zoeb zdEvK`MVvN#pjNbHR>)m*^d2>HzD%5|P_1pJFcgoPxG?JEkg9S}>t!L?(OQk}7;ybG zYDl7?ZS9HV(d6!`Lt-Bz4$;RHB1y;ADk}XGx&7R?k%n86VN;hqSp*@=3uE`dF69~4 zg0>1R_Pl?8ZozOaYfM*GE64P?ToDezAur%%CX#Dez{pwhgALoO1~9#BvoWrS`%*dI zMHhf0v}bz(TNs#z?@Fd=*Fcz~Oo0(5+i11{QM5$RblZnEj+^TM5zQWwW=Lw~hC>E^ z20Z>&lRvq-fmF2XklhJqnb7 zpaX)@)Gqg=`z((OjqQ)Dcrh@VQh^|V1^|!_000`6189HuhPv${+h(9tFAy3CdbbY( zX?NomDAK67E}V03#HYgdMkQAfMLQlYI8+?calw%o#BS!)aDo7Bw;Pps zo-Gu`+unu=R~2KRsF()-Vj&jroV@mj3M z)&Hannf&K-=}-61SG|8_<5|NCS9bFub;OyJ^_Wft`(AyY$*EiW{IlotQt=(%a_gr* z!A5^AE^0olqz*XT1ptKv+7@qd@8!SI8D&gWw0f`fkYI;Jp->qjIe=?HG+^y$%mU66 z;Tou3`HV(cjwbg|oSV^0xhJD?MhN@9o8j!^FTEm-mjQC?N5NHtf#)6pqNjK7uE)Xs z?BK62#H;<#>Ui{gNbdlYGNT||S+m;SyIb9j2jk#tJ zmo~tWmMT`dSqGi*8!73x+8%sMdHehERJN>(%8_7*1O*64C0DP!O0XUD4BsKaB+5-u(yxn4 z!d6+Wx_ZAKGVZ^QUiYADzWeSiFqqHy;^WXCt9%USj_Z8+9>1AT8Pd|p(PalTqr=}F zlB3Wl&Zpwbt7lXS4Nek=tYdEEmB>UEiD|@1M^xD{D8@J86@tjbZZ#)hL@Gv7BsJwZ za*2}~uT~AH8fFBXwL6_xQyu4%b%bZ=6SZ_;Q7Z-}D431Ht4JKB0-{nU+{y%}$-+~! z2wR{FlR$%GQe+ug0X3?_ecf_>B?B@HOiQdw1fZxkd#pMxtvlAr#l;@AFo1MIx&tn4 zjQCL+{pS2W$FAmugsb+cifuu^#91-cy_Txbn9WZO`M+ z{MgP-YoOUe9!G-jl9xDakQb=R&CJlirQ6NR8C*kU07VpGe};K%b@*G~5ytB+@2*B%eAg56>kHZ|+I z45_&Jcpbp?bV$E3zD#5mYP}r}y4bVsk%O+f5iT+W3_&tbdfBiZ+FT?iA){t6!H5#F zu`-qtjX+s8OM8!m)E^Vw6TfP6qw}xM`dW_pXi+2@eJP((8)Id%Mv%zSq6EW0VuFAG zY)oJwMSZ9fQp^uVIFJ%zi&!x5Dw-)SMAAv6cSf4TW@0taFqbR~04Yj=5{_t<76kwj z2yuwjlB*4tqM6qHysh$iSN;YL)DM7Xj_V&<7e9g-}dEbuTP<}%;iFKa&mpMZoj z#P=IXG*kJ(;1D+kf{s(&U}LH%J^+E%iLxj`N=(%X4TSntG#}MfXT9^%-G&`?YNDj{ zBdP;cqoAW2;UelV$_C!`*31MQsXTMs?WW${tM?#+Xzlmwte5qK_olF zD66nrT#GYCA=GtkTSf?ER*jjdW)Ov)IG5T@l8x1A#6Xc%*R~@)pHH=YltnDhOmuxy1&t^MN`4Z&Cl` zv{aitYOuONMS|%0xqo8k6e`Lt%FCiVgr&qvV@F_0ruhSV^L>VZmc&1qg<^k zv7LD75W*q{NWn&ln53Xrp-ZS(((|m%Ov8YUwxDnwmR>bI*agvuc!cfgUZNgiRrSQH z2cB=7eVm+JWvJ=yX7Afkcl+6GpRh7ol-v}ID&i?tuBW=!$Y$1u&AsO*Dw~z|lUu~$ za3X|~der;iZM}LtP8}`tT4Owj3?R%+PIJZ+zQ5tUfYlGWp!g8?u#k9U&{btLDR=8@JL(q&Dpvm? z1Jnp;1*}#;)d@g@g%}8Mk)mlMGx&9@MDyaU^oh^jT*aEl{J6p)Dq|g?%roak5GKtu z8W3Sxq-jSKP;7y#l9z`aX3&nfMIGrTLBIy%lk@g9sNc^pKgn@!UMZ3j^Xeq8F`vKDXm#!m`9*8DZ-1KLu%N74uL>HVgg|n21YbnDkkq*T1!{aF)E3PL<&VovcwE$3K4VG zRHSgm5`>qpPhatLy`{C=+$*;{ywQ+eJ{DeM$277>g0JY&ihP@~*r6v?#a=xJn|R2I zDO)pukz+k%W-F=#b&$T148xnr+v)w|Bg4@~Oo>iDdSO^Fie7J>=e0}g2;_GV=hC^6U8#Gz`IS?Cpce}n zJO>V(F%l3uxXW@Bz2|lKy;HE0xAA@UIhWyt(j_G+vn+sSI1N0~ljtPJia0F9mH&)OpzH59PP8R;+*D?2OSLzM=t}Wizet7m%eRkE~ z`x-khy!Wd6kylrbU6e$toXBZnzI@|%%;?VZZ`DkeUoxIc9jkwXyaq6va}l-hTE3cr zYkm{V29m+SR+ch?ZC{02fpTZ18-Vr(Up!ZJ>go^A(*0XyN8sbMjs^t}f@wY$Gzy7! zx&YbS`+5G|*1oiRV4!;V8A!l66I|up&06vo#62d=4&YN&YyCz<(*n2gmh6T7dTleU zV4z))Z_G^g+n(@q@Lbbe*?N5asYHiyj619>x9noW4+e`;$TaR@`wWz!ZCl9MSv1?g zbkm&JmVci`xaZxkGoRhfxC$@Mp3Js3wa)qU*T{_7m(7=&a zoX&8+r~dNW)}q{;CrYbF^aNrN@KWq&F;)wmh<_B{13&z=%c0D#rOpiVK5_mIY0DQB z(Iw&BP9-SR%*QetLMUx zD4)q5M>o5#Uyl3v#j{2s6EWf;2}x{hS&xpsRnylceqNK=#$QtXU!kUcBArsxa!(>%$Ud)2 ze!6Lebdr_ax!LF8+(K60i}MDnMWU*xEgx_$R6=Nj@YM<&PmzOd=dgxM5pzN@kGvxT zr|i&xTMBDb%GO$K)=-9RPAoq8*3^MspCB38q~L$s~WW7Vd4#j>f4_ z7C^NSkPii^#97#PkG1>;!5s10kF9om(m0~|F?wHiwS{g0elkL#;Cd+N=WN#zZm)iN zUf5?d`qq5;lk0nAKVx{CLx9iE!>{98$w$CWT{Wd{b&pm(1D3Y&AlSK!_aysjwx+`xmK(R@SvPVP zTu-+>gK>BkP^1T^c2j=0y`P?s83}A@eHh>5+waG(a^H26mG{`eX1*h|$722Rm;K>& z;t@fzh)J^?nJEIzzQE9puB*ik3ZU_Z1G$L~s=l_#-r?{h5xUQfy+L-qTT42zcM-D2 ze#-Cd@f#=&hHwSDJG`c8t3oWrP)ZfVjF22uB{e7%O|dpX9sXuw)&ADe~QJJ*eVne1E27rY(;5LvmABZS3a^?@ilxE1+1PHoNPGZyez z{%v=EZR%cErawTdfDwn2N$IzhuhO&NhANTl((b}WP3n2ooR8zoU8+CmY|O5{=b`S{ z9j{sS%ZFc`U&z_wFRtpZFvP3)Xi8H7TF%|54zJ3m#4Iwr|01J31{L>!zt9{Eb*Y7` zI_6bf#?&mKhRP&MT7VWR09Zm>bd3^_%g8FKr|Oy{WFc8*ArWz1Tn;U%l-KG$?U;H} zFd??IXU+!X_{Q_L7%Mr$WvTM^G_HkUUj7tu(F1YN4<*q;hV&2m!qyDU48o5uN?#Wt8ZWK_gt)`D!=FMiRg+4ksg2J z`mtX3`Pd1XaTC>@qF{pviI_$c;u(QZ)xx)cyiD*{6?I*rM=N`lm#G3l&jDz`8*vCCA088Mtz4h=(wNO>~X-CN3v zIWpuc9Y!uMU|K1vPr+FqpNgA9ZMN3b3``ad^LX(d{P~yv+V|f9d*0`@xikCoT`O9T za}4VY=klS;_=&@?i6<>cXf|6tVWICosW(XmtQP5Nl1Z;io*ek#dub2oR_kePio)^& z;)(?jM_R@}B3f$Aq)0y0US1zYU?-x`I=U|KF)alEYf@?{506y2YG2#tlD0?V1nsNC z5;}QK^hIL^FlOD3GJhS`I#(*S>p8mb$+S?RGb$-$R%!`SBS5ADhv3{w1UX#+^_Ovy z)Wh=@RRIe%?e+~$YDHEhkI%n8bNq7kE?f5tfy5Y8xSsm4n%}dVvzwmXA$Cd>h3v!! zBoGsyO`k*8N!2SelvTM1AOkHRI;$iDnLM%yK?n>12w)-#!AdA2P+4@XRsY3?X z#1bS_5vld8JUoG{*O@qAOk&g$9cWYo?XIsLk7?Y59k)4fDs70=coa9|7vz^c(e5zj zq zuY0F&P9M$Da&~t}f*wD&!s#}ofEYZ0X&93Hszn;@Y&^I7uWaM3PwKYqRI(Zsd!wP) z^s89U>LYoK){KR04WQ+^(?_#RGXV(YwmfVf&$6@(o|Ix?#>jzoCceUM)0r|@y`Lb`wWxnZ2932W+ z$n-nAqh^s0!6$A@^3QZOY?Ht@V@u23RuN(%vs1DHTN;HTQC5nx%gj}I7%9M-sD;@p z>C}B$8O*ScNQxWK#Tp$@y!*Nn=ay1)bGch6Mid7g9ySHBH@OWRNEW0r1Xy}sbm(Mq zp>=Gi7OqnpfaO4vFbC|j2ff9Kv|eOgwRP9L*Q;IcW=-Sd+VqUORXCcvx#wTqKR#S9 z--U{=lvFOXNZD7M1kA7n;V<{PMX3@jhO!Nl9m6eAkNsA+)uHsN0u{KAbhkjti&}wB z&!MAM#Ml^{9LuBDv()(3a&_Lhf6eD&{`9j54+zv& zTH>IZT2%ZM-sZarpRde@oTdG8pvgVhj;V3?tQb^G-k%R%x|mt)!MASU*?GGFML@d0 z*w0Qc;s_`CK$HN`fQyqTRU8Rdmyg@8r5FpbNRWf9xk7~-h)8#}I{1a(3~SI-an)~s zovT~MUAKando+`bj2Z$`VFO^#n3=_SF5YcC2VbwLN?X3PrX3|r*0bzMW2wYAD2WJ3 zEfoq!Q3s@TquRIrg&of46Q{AaLkQ_>5*^6W^P1hy22m$!Cd_&8>tguKz^L-94vab< zHG41=IcpS5H*&vCxB!cE%LyY?Q8Hp|Gh!-WWQ_&bI!Uhu!`!9RB4~^o6|tq8Ln&2e zDoqYV3Q9Q4tX=!%-ieORN?FLb+SOO|qph1EpE}>2bt}2ZqrE?W$jK4;nevR(+^gBm zm|mJadu2ha7EYZ5m{bOd8c6xBs1f%tUQf^gsW5-eSK34~9nj+v{efou1VW9{(!*BAerNdDrl4%3eQxXnFItJWRUUCZ|` zZ;n^y%gfq_IYDVdZ7YS!jox`x`*&OWberhjnadZo!^^QeqpzFIc)F#sbV!7sE7mnV z<&ufnfz~bL%JS#u(awQJzY(EF898iP6e7RiACcM}# zjxV~uZDV&6LDJ-j76)C8hXI7+wPDL%*U zqgrIm6YB>4X8-2z7t8)H$LsSavW0Rr<9~j^%ODJRjCI)4a!2v@+RIO! zT#V4WT;rR%u1K#!h82Xk(J0dMDSo_Z+_`-_F;E^kG3tF(v$v(LsUIjn>_}DhIPr`9 z7vHV7$#Aru(8=H;Gx)vx_`GVr+6o(Yet7mbbKR3?2GxdA7A9?^MTW721&j@FT9iws zFDo49?Jvivr|n%>XpCR&j*I!=09W_jO%?uX z8YZ~bKN+cDq zFUS6x-0#5t7QSy?$t#fM#m#^%jC@<1E_czbbvuv8a7Q0zxPfZaL4Xrg8yMvN_lDov zo;EfgUi__Sy}A=*B4*_ZSdb8z;l^Y(r?TS5&t7sY&f?fb?e#wnmeT z!}h_8cLyK!hY-iYS`-8gQIpU;OYAZPq zL6{30qPkGgL5-qu3SDN?h!G6ixyIdZyzqh-L*GVHjv>j!26Q?(VbEzudU**XXfHtv z=s1CdMrj?;M$|;mK*)R)auAR?)vgKBu;_{~a`mL=fYuaEA&AP(H~Wt z1Euvss6oY}Mk5dof|#nelzvRXL<~3^%*eG3{Zp$U)d{)Cy z5Ugrf2VnuaN89hqCKK2d)=Aj-h$ntiGde0dKm4fT+qCDHvN=mkC= z<>k)5yi3D~#Y&BKEPJ2a{$$cN*_Sx*#1I{lb-=QjnEbn4Z>?+|9e>3QHV7o(BAa$c zXq)dA8@7D#aoeOCY_mObkb}0VfMlb!Y@~2t^k0DhA=LkAUxUeHuXjCoxQ{#*DZ8gL7 z_nJF(%CX(W#x&P*%)YMBFdo{(4qiruM(X`n`YntpGaywMkO3r!2MrfR+jJ5XMn+`6 zoOG{*@j4M<_t)M&v?A>=2vDxqr^spHi*-j}$Vj3cvt?a3q#DuX#Im5reMk}ERYk1| zmPmUi2!m4*P-JEG=N>@rzQfHbyP)!5Q}8IsCe@l*<(*j14hb2%&%F)$TE z$_bRs4ueB7vo#U#bT%KLSav^c^OS7b_I{DJDNsaR#Fg`*uB%}|8hewv&Hr{p$baHvZ#pfAI78>Mc;}dOE72 zu6KUfeV(HnNoM`LqRP58U)+bxDJFK!92rOh%fc{$P>TcV%A^!jc~*P6a2X28SLT%Lw^4dM^Vru4sfWu`_|!P5 zX}_+yGQDv#K93Y=5*bk`4#)PUdgf6Eb=|h3P}e#0Ni3ssDV(oIAW1BA=1y^Y?Z{+T zmRTBo^W?R~OKK$*w{Av5Iq-*`^zehj*K8VgR3v<{i7R~M+2dKnS@9${NbX2ucPbQ0 zJxoKso;7YnQm>-C0j|CKo#}nHaqx|g)kobPe_fgBh=!R9$AyJcOFZmQk?hEIG|9H{ z7;O||(^9x#O$dZIzaQ*p!3|L~M}hWF$~D(3$zM+oV8)GAXpb7HrC{I`)FT45$21nO z4&^k2p>^W-O6bwJ)Y3Aenh@!=#%*U>!5Z_*XFu`|jA5aAKzG8N>`_oK-P>6 zfgDUWupDHe;wyXB!KXgAyKBtkUc#u3W`-k;{L#JVeD&?iTOSr*gi1!v*@EJT!$xKf z)LsPWm~go>%X%v$pUeB~RpHL3*Ux&~d?Gw)!cuMRqJf*xl|Az^wXBLx747qclm-|D46QRUVaXsv)ks--~$5J?Ck$SA2aRzj*+VWbr# z2$W7RSRkUsAkri%rLbUM-qkg|Tx^u%iVqF|MAa@BBwQ#8GGHVp6F>q=P(*}Lm|OA3 zEc zqDASZ3=}!=L(ZJzquf>&=2qgwas%>wP8JAT>KoOTmIwud+3&~vfgrsWJg6$nEj4C@bOe;<+7fm&;VJHO*7#T2< zXlk_)(MKpv#+*yKhcNBgeY~Z#-L&c?F-2YL=QN>;JX-qwGKrU8EFPV$`io=9_bPLP3r+m*T`8SROlm0m5u!`_gFE2nUk$e^I!!4O-{*?o@h=) zU_>lpN3voH*^Ul96V=DiknAd!Ai&@1jvJGxKZJYe%OftIewwv?+`_!ib`8 zW70hqV893fX419G;jnwsF%47=6SUoJnKhfmZ_M40hb8ZjM|t9NYi|ydNEfs2Gmo8p zN-J-N+@{{Pa-1RmV&Aj}`M1vGh3bO=Ldz*&bpZe)g$0BH=&@S;iwMMENN4vT3Bt0B z5kba<)h5tDfe;u_;DT^O040beBE-d9eO-6#qQP6DKzK)*Po9b?7v~wqKu_>`^Jxxdsk~2%`WUHC>OS>L3u0eZt*B5zwV1q?5xQ{f>E@E*!J!`WOeBxBb63A29kmT zj-z7j1XECv{>HPmtV|^a>BM~rE2~KW=H+ELF=J&M%*`%+L-y5?DXR9(D9)b4?!%Vo zB{GhGLv{tv#zvpaC;gB@iNLB+g)Gd&L6$rDA2i`ZU zQ<%Oq#de0aIL0#O%w+xs=fU;KCwAUO_kY~4{CC@SGY85)ZlQ-bYYN=$tBU%1OX>y! z@185u>?EZqR}K98cd$2112ng~mGUr>KL5|>3s~?MI;*6P6r>P#JY-K2tf}fM%2#ZC zJ!SoEw~-Ea6_X?K3G;31{K3KPELYq#GqhwFOAOh78V-e*5`8E+9iT>H9GG=Rr=-1D zyu3?z2ko#zqp5oqlX9K>Sf6PP)ul_YTBW6F{djxsYh|5oe|F}L${qcidY+zb&a--F z^nX8`OHwDhM4j(s-`L-q0|7L#OvE$Aj~B=R?za>?)`aXaUjD3~ztTOLKyp+jA5DyC zv)xOss&DJuf!HuE167B}-w6Gc)PKN!%bh)kD2SuQu2TkefV0D((UW<~^lCC|!V|?lK9=`O8-ZrxHbQwatfIfp=K{!lH%(3-s zVP&zleQjSqS|6#hiQDBbe>_q;Z25y#7!d$iNPx#iu04X)PmeLp>KjKKXR0y=`BP_u1}m6eD>4k3K8$#&R)$!cF+t*d=S3ymxLttz^uAeR^(! zd)*M43zwQlOQv$Sb3b(Q=1|%;^Zo|sC~}=+@6X2Ms*i`A$aYlOXTu_vL(q+LN?i5P zx|u};orH@tJ8`sOuy4}2(-AOpVH=N@Vv269_J!T4s3NLL+`vXnqpJC`$DIUYsIGae z1{WyRI%2=U!W(+@$6<}&sVoRfaM)OL{PHWWfA8YUh_>VJ#m#hvHG77}c#<|h<*JjO zDlLI(gE|FE)T$af2w9htd&*YHV@x^Cip_S}AMDHGu&;LaVV?HoZzERr)P)!D_Rn-u zKh5snT7U63uFcmXg7;6n`M&tS&hNY-@%#No_wo=hfVGGVmlQwDd;nZk4D%X_Y~hT7 z5(D$1N0rdhKw!vxj*_x9B|81h6L8y*B@E!U{*N4m%T_>- z+2Cu7h;IjuamihAfus*>=Ldt?lb%x_fHWT^H_>@}{qtzNzAPTT@qE;J<;w^Sg$AvM z3F71=>+?B&0E$993mOMxE!dy17c+NTC%5I-vKq{70w^q@xVyZSj9MoS))g1CIO5xQ z^nF_O2TZ%2BUo&z{U34aK8y0LPkSDn6eEAgvU;F zDK+uRK!jVhhqhRMl@b?+H2%N z&C`|leW_Lw3PGH;X)Ah;qcF-~*lw($hX?{?xVPi-ckf64!APN?C#ws=O?G}{o#*26 z!rnEK3U-he52ns2;*)m^$el~adGm_(rK{)#q`j|5lMNhf)t|Fzqji*IwHxZz7;6~` zn+}L_FvRq?apD~#F|`{a%G&rWWLsg90O$$9y#c_Dr~tzo<>AV)J-0{VDCBss?7$mp zW4p7PIch8%ACeYo3k%^k8w?#{&d+2SGO_PIBj5D6f-A~rSL3m7S1`V(?bJp&QvJy3 z>sX6*41=ok>*L|+s$L!I4a{w4oRfx)>fM?FQ#4ZCVcQncgusjxFdCHS04Yk;=KF4st4Z~eIaqIyz3qvv#>oaTLkNwW zH5JP2vgeZojl|%%dvWIdd_4WW)1A~0cC`FL1jFiumLb?)54giU$ zi}?&@0R#n+N~Do4n$>}x*zf&E!`-Y5UGj$K>Z3ZKsF>%SWG zKkzX;0$WGNN-fx}L*W#mVs4P?ZFx2)^xYp8*zRRZW->z((*3~t%25U+20L-jrWQki zrC`}hZ(Ms4Q0&Y#>x#0I=?V}+3w?oEd&kJu?a@4w%c5As5V#gv=7<#JVdLl4J3ndqf}yiGCUH@Yd>+g|*f8ZS=D47+OTCuUJ32@tuu0L}1M^ z&XVAwOc0Tf(fPf1wO~n?$JQ!(7*LE_Y8?VC#tEw6U$s}&Kg@QX_;7Q1_I-c+`ebF^ z{wMtnA8oyJ^0X)YOHdaR=!3l2RM2M4^R3rUQa`fKlkoW$-^b{lU1w&WR`phAuhey1 zh;U{+coJ?Y*Oq4$WS(ia%Jsl8{7E~s!t(=r!napHDN8^ElGU4?n1w3|J5;F*AykY2 zHOWI&Py!`#QDbRWdLH{x&Hl?h{~*V^N$lyF4k@5#sB`zCS!LJjvJ65^6I)-J+7Cy+ z)-xX1VK?Lk4wMuxE{n`o?0{*7xjX``bu2~SGt(6cPWkxq6P+WU11(gq$ImbEdg$q0 zdG5V@DcQRdLIxXp0FJN>f<@64G82`G3+|?$sSdzYr#V@ZbdY?8M@Ji@15GI>ATOPmp+$yAH2I3B;canTfsWrG7_CPzt(BlOM-8g5jYfSPMw%XLG{NX9V~o=bD| z4(s=|7Vn35gthPQ&-?QMIk(sf*o9Qi##1bnq@-_eqz^yx?)jy(xZ_XJ8RLy6L=p@7jq0P}K37e6oGgNXnJo^CexklC z#Lwyh=h`+s*tKz~dx+MW%)KWMDg9I^v0i&#Nr6LUoNraWG z3?YI+T5`b%2(GB~bT3^+G5-Wl)+od__U9DC<@t;DL> zEJ^a0!taTt%e@?mFaQ?-cn=6;c2b8t*F<_xStq2)gU?H6hTwR9hblSEbnKF87swx;^U}%-lM|2aN(}sGsSnUv(0^1SVKeFCE!XPs6Z;cFJMSBgLlyTaH*k zwtEqel%OMVuumDGqZ&zfUEv9SL%p$xK@OsqB@w1wS=`gRBOiGqy|khp03-)u?V^Hl zm?A3+0q?uzps7!FVehw6k`vQ# z>PVtJuYYpWda3czYHmHS1!>VjE|h*6x^bmGNh}F$TX3y8SWCKUXq;b3xA7M1Iedq`_f+M~dALr~E*}fOKcU_~|IZ#SEhs@PMc!1CA+}ylu(#^O>_trVL zMeVff{`&jp=$$zKQ~x-7QeKO{@PVRgr2xl%^>EfQM^ ztm(wuY(8+=k7@&74G$y76lv^Zr*6%Yf92!%$i5G0IY@mwhda;V*VH(8|8I+1$zC_R z4|8VwvJT)70tDQM88D<`Ou3cZLLk7vp?Lt3br9q!cUcS`Q4OX+9SS&F4kuJVg(+?o zD$OKG%=pG_VT-++wZt7w5S=zgSY$qX4?0h+zz{H)r`t3$4_sxu9S zh3UD)MP|`SS7vo@Z}S<2k6^s`_Y1%Oblx6lL-~FW>z~oilYk_m6b6KiT3{2TcPBdL z;B-kBOF4;n(uI3~Igj;U*5e?5Fut~jk8Pe^ydKx)rTUNkk$?KF{NKBO*ymjUI*HWTv``woCpT)syhi!DRu=} z9W8aW)fM94dVcA19+FFr1Z}mf?Y3scRy<~Pas9~iJJmjs{m$9z(4sXFE)jBDm*D9l z5Z0IVx#HIYvdreW^|7Wg+%+%9yB|?mv;c@Q)d59Epm4s}3Q_|Z5B^BUJ|uMT#^K8Q zumV6u)ULkt*7re}CcZFeD&5LBo42&d#L~{NWlUD6I-!V=hn}Y6d66aRwF{Rfn`<@I zMcr?8;Ed4E=Y!wS{!8=yLyr8_OW@Ci|K;RV5Yhi7S-|Mt$DX(EF|g{WTlDO=n;IdR zu}-n#)9zhTwREh`=C+G^ z1%ODM;q};{@$n6^|0<&IF%{PO8sSmII?*3_*q;tu#9qGD#!K=ukHNe_J&K(ve7pdA zuuj|6dJ(~^P|q`IwhdwsT`do9k&%FG%ly*#_=~v%XT+mgdqbiaa0y*%tQX*vd%?OW z7YG9<#xP;5<3Kiwoip=e1Gya>r?J86Mplc^RgFo%eahbD3#S9)!`>Bx{_bL-e(7}; zD^f(RS7U-OrWk{ z+H}19>@>3NPR)y>8POIkNJQY=H*MJ%R?zKi=F|HWWbM~iXjQ4%7d@cyt#ERIitTZy zWn9Su+Kp8fuZ7hBuq|ONz%*|k9ZJc%zBs}0RqH-;S&ZCI!;f}u<;|MHjP?4HdLd%R zdZ8bqVUOZG9`k#jYtjeU4tbK>$$hWgDY(LXT6iu$S{qcp9cqu*c9EJe{K;0cIV)Wg z?g!ub*bk$n<78jk=hlY5Gk6$wchsBTzlTPeiJ{Wj>fXrSxvVGKkC4wDJWVWdo0yZ9 z5tBbSPOz<2#9tK)0-#bISuLt5=r2Z}#PHhvd-J!&a)y|*%tUt%7N#sUEP%9r?CRL? zZAZ5av3hUBXTe6Pm@Z>pTi@iovwN4;9dkmVOS&3-)aOB8n7+qbUDFFL)-GbT{%xLg zJ;+ze^IEU0%AI@I>RbLQ-SK)keCS9IBMo!k|m|J&vpTd>^ zFa;8*?Ozx7C^gd0nq`LMNxrMZw{;x|%wB|E8~uCRo#Yw{mqKdjkY1fcHId3m)EqQg z3Vx7?;ChZ`sd-8J5cbEt<2&hxeQLH)V^~_E-;2)qvaxIv3wKd=JFpVI0Tk^RRuw%P zQcF)6(;yol2L%@ic;)NKD|opZKnXCUW}NG^y$@C)s;V3wroG^L-I{}++rPwm$!o9* z@|M2qLYXX>E8lsz+GMyDLRQ*I;g~-}*4vD4niBZK<}L$j8$l-aC!(i{+ntI#z9;IO zmdmwrL8?okJ<^D*1k7)j2#ir+-fNe=R1xrG(DYOM!*u=9DqEyF>^0Jl{41! zO8@P=*V|UzS`UpD9j-IG6t<+yjtND}meV2|XQ>Al;x@lBy=0-LPu-8zFKNU;7wR$l`qE)6gr-p88Y3KTor=0HyFeyh|0ESpg5*DpV#@{BMsw1`V*>GOG5g&0&ALIF@%Sj=^m0gfDtM4O#I}h*B|3nJ z*~+ttimS5Rj@XDUGaRO`TfY$NYgi30?dfGLWkCRakU6;tTiQQ8j3h)N%yfIx+6b#> zj_W*9zIbjBHhL8t?kv_XPuhE!FbtXP(=p;B`TYMXumy}>F}u~*(%3t&mt!ccGtfY z`*ABBVGdiY!jxsU=v)x1%O1wAefG5PG2E*N(RX9W?2i`IPiGVZi!(kph{vHavw6|m zs;y0%!wcA}9$zm-jPWxP9XtEB`@>M*!ov+2b9Cd-2H9rI(GAh=A7W1n_16YY`pRm4 z8Lc(}kcPz*LuE8_d{6lC5nOY)B^7SwnAx9PUbLjL!JzZ->&={;4Uwyewyhi*aMA#E zArLdJF|Yra-7xxeOf6Xd5Baqmo85mtS2rZHU?UD!YiiZU1@b|pTWRjV!+~Dm(w1xL zxuik9?*Cz7@j*|K@n6`x&aeLsGv7BZFhPS!#msBDEt!T2w4X-1E6R|8Czhc_>`7PD zBM@6=sU*;LP=QHAo&c;u5|f&T8Prt(|0x}X|A~95hcYu5t7-C4B}t_7VZ7dhikB&! zNEj8>T3jf^pN;+oNHc~82+Ly2tPB;5JiRqgU12R|fkAw8>@JO$?i--l$X_hi-t;AX z!RorY`Q88G{afP~Jos@2S^2shf+kkq0LI2DM4()V9a9`iGh%y8bBOxg*4UF?e$swe z|H=|R4DZijEQia1kj|L+tA1GO6VV4=v){H*e&U#pV5_^zQ;%Z_GhK9~)G+L7+mcx3 z&-Fc>=ac?^ROfTA|CoL_>!nf)(~F{+oiQ6M4!^;+ve}ZW7wcwn>dC4luB$iZS}9L_ zE>I}r;paS%d}Dp+q9wRcqqPx zr3%UcmCmM_r+wP^+vd{qq|&!h#w-^?hnk02$Cd7NZ8W*B#8JwyvSTrv4U)-Lz^15< zl8+s&W3>o&snuvD{!&-xdcF7dzyJUH_3Hh<$oD^Jf8YM~`&^gB{y>+e6~r0i5Erq| zr(oT+Gq>g^%l^~+_75{$!|w%|H=8o zM|my$#E0wiBB2Z!v{E)2`u4b6HL*BCU+z?fiA8B|o@7 zOsQm+SUZojHVR;)ftUh77q)U%@~X4-oPQwaOpvuH333Nl(qcy2Oqm)*Ryy+F@ z?OHzwTQCJ+pyKJi@K?Sv3VjZPmYS4918E1|q^B4`0j8XyDy3|py42V5F4=%{5vff8 zYgdGy^I!dX{BuZAtTH3Bg-?z0h*ChPYXYW0{=bQVu>uXM}m3%I%SVAxjEn)J4 z&c)j5qwic^F2v{5TS7F(pvjIUH-gKg<<;!URB%1f()yjbzQ}oD|95BnVxgz+K398jVv!d#QvxX85ndAVoZ^f3l=F~w25_-&}Ai8;s| zs%cCm3rwd}+s-Z3Q0uq97P+_EJrDF)%YE4844#FMD(xoqc1jM8gnGfK~xsl)_~BwoC%&zk5VS4iO_v_T+v7z#ycF*FjQ zL-awuoNL#2jp7e~0cz^n%anx-j+ds3L|k9ipfa~%>NRX%pJNc~^;B<1dt7l|z36>1 z(WF4K{$=@S^MR2)QQ zkkez_+YRCAZzaupt$dLZSHvq3TRA(osVwJNX=dkr<1A7?*V# zyn>o1L?K1fF`N(DYZ$&8V&9rqlG@Syb58%W6n`(`zoy&Fi_j8SJhieh4_OGrOvS0g zI^am!M4{wKpPjQqU}r2u!AXY>?Y>xnsYqC?04+bzCn#d7+}G279D`TB@>bl(Uk7i$ zatbX`TqAV==Tkq4mU(m+6s9!P)pRqE-(!CdVV1z7e5z`n-;}I7o6VEn^NF5BLuQro z?u%Z3rt_a-+iy$5QjAxGAt4EESpY@}SWH6U+ILjpl$OmJTW2G^F!ua1Z+H6*S^Z`H z-<_xbmkht&izW5Xzv4fB;(m8|6*-qnb`ov*te%E$UFJAN=QC$>%2`RTB=BbwEP1}x zI663Ob!)$1;*Ma0x=4d^xhS_KcDq~q)glIqpVr;?P&`-Qm$;bx{D=yAZ|#9QZ)C}S z<+iGwPZWR9`H7cf8L}PP0N3cZTtXG~8ev_*uEY#5mqJYpLE@&Q*@zAJ4II`Sc1kjM zZ^RBxi;Ek!CKPP&#OXKrSy)*OujCH!=4fZ3t#h@2B|kEVIrqh_P0D1|{uH|I;)MX+ z2D_D~XoemOiu*80QC~P?HpZ=$Cf4Y8Vpw^>6Aa{093x#JLokQlH3f`rHnVMZv(d*y zoe`s;gthaa2urG~F1d+8)0ZzxAH^-CO5v>{S9_$~`6$=YiiY)9mrGOdL7yECtA8pLmn}AJa zrQ=t}@-Y`gw_NwUBL+xt0@q0_*ns=YdT>qz)$M)QK6&%~vxCG~HIASoQN zshbj?();a&V*_2Q#p24WwO^a`TCC)2IPPJB=H<7kVW2M`Lt7HWDlm2$>)a0|(tE)> zjOUk)?`*t2U-}v?eK+^ZBwa81;G89IGBA1Nxy{R*>^ucn#ynq5w zg$Za$TIJT~cK_U$UJ)tp8z+P%Jcl^XV0&3-qOAI(9PYLIcayozA-hCPA zIN2~`9!|qIF>*P)C~nrPRnrP95Oog`X9Rr4m|f~4Ev5CWea`q}VGc@kj&g0$La36Z zF5SU8#!#FQIV}?bje&vQnu09eT}Dl|%P=gcp?3v8$hb_jpYF3zz#e_+55WFMN}TqS z@?XF7;aA#`SIL}LaT|Igfvi{01ze#mejl%v$F4~&F)WESO32{Q(v@GjzXxB~27u76C#iSLGfo}`-)~B!ZPV#kK)gjM)JSW#j0}Cot!y;%8s>oZk z6^L2v4I_!i2+)eDh`_ny)#&JQe~Cd{^a$Z>Eu3gFXVoOi7$Pz_%U}`IBu)>(Q)>JC zYQKNy|KmLPS3j<^zudS#E*l(4J~$>*P}Rs+wN@e(5ptXp-Q1Kcn+%j-ngy9H*e%-b z4V=}p*gNeZIb_3UbjH}BGa5Y;th9+O2 z!>ST1hW3rinqKLE3w_+#9arx^KhRKNq-iu=Y>6-g>Kf&0D#D-Lp7_H?c2bkc@%8n0 z-8=2F!KP50%m1MIueJgvpD3oT$3KxJe5bmWX(i_2se&pox&WqGIY8cQc8V8(}|tIAZZO-NA74o7G-8ZF(oHtuTwjqErrMN@_Lk{rOOoja49Cm zYCDy5fNUg5STO`JU}=9m_YJUMw<6cTSFEHx zn?yWxByKUMFvng#2|R){4O4=ULXcR26g;O5P7+-@-E#K;LufD~YZ3i^YkzQK@&0zG z-|p3qbA*S6mNDZ`N>e$b3YCN%n0^>~mV&J#ec|#0aMjg`6?@I(uC4RUJNzmM$5`DqRLE!8pG*-Rey`t7hUH+%=ely zE37+8)ScQ8<7kM+ovA(7;Dh`E&FHif=|mLSrP(9R0{-Z)->pq&&Gx!)T=#gLYGlIH ztl(TY6k1e?A2Gf|%@!ID8kT|@l@1aN2?YWqi4Aa5XaO7y&4G}eDCAP2t#5yT7EHw^ zew)@gn*XWovWzM(%Sz=*jvaWw_O*RM4OggQp;|f=n=@}tRl*=v)Cq| z@nE-{$xtScF$1WXm9k8xYKu>`qN6>`ZDDUSG)_Ym#YDeo{s~injoRlA^`ZG(Rasj= z1Ui$dcD{%PUfBOLZ2zYawmssf-v1WPDt ziIN-fTqo!KUdO9yQ5-?2G7*CoAVo&az|^8aF^XzL=O!oKAQeCgmKny5t7csG%|@@N zXm~s9{Skfz@7^_TDb1{wRO;s59wQm2=8XFj=LxhN_AG-;O|RoIE%$iEl1NT_>V++G z2>{1d__wF${NZoxcbyN;$3^Z&ccc5oQnt5v+oH~^e&ipJQS0at(DdWQ8MIUEXSdgB|y578+XOvB;M5(GHXtc{;c$& z==mjXchV&QtD;s|nc72KO(K=nT^~<}Bf9=NF^R#*2si=msZXa^O zsg4BEgKIL`#Z%G3RR(phs5@#*q<6)(j`j4~@4q^qmr}p3?UML6d8Q;&G<#F#8?lI@Jk4wl)7pTQECNLPNk({(sc|#K! zrdsx{=`B4<=4rb>JZ~{AT24~T;*slwR8JCf@WngIGWm9mR}L_QY(4Lr?Kz|4zj`vAV%w2iCR1o7EuEQafE6ewU4%C2rL9TcqW4e zTX1!@Go|Ysi(qF^L2HXqA|(z6GljMhj^hcYqma=MRYXh_+TGmZge)b&54$y-&(ru$ zIY+zt|6R4Dtjs3?j>qkZ9J80;`lt-L#R7SJj`%&Kb0hv9yZ#QC8r%7svLzNMT3U)r z#124)8c-$b3hy-fJlMH1+rMAcMFh_DNT}sT?~JI#xPeipLjl{Ikc9c2I1wndsMP9a zzL-dBR_ZG#SB*QE?ya9P{-}TI@N7@T#r)hiCTHvDnXEF6(9rJ=RHaiSjAeO> zWTtaa4Z$~33+FOa0u6~2(n6o2qLC7WBrLFZ3Pk-TQUEd|8IG;i8^G$gm9iGut}PFA zJN!dSY~z25XTE-s+qkwjXMFO$k2)thu~?}Rs+kgkBEfF97%);VyL{Cncg09+AR4h+ zrBUjua)_=M0RfczfC7F<*?R&mWU0wQFPLHg9Z3;HvG0H!hT^twvTkna%r3ewciC1D zy0wIp_XFTBtA4;qq@mFcf#dUi6@$0;Hlnv2)KTiD>0(-q5t5zC6J7-fnTS@YHEvDx z0;!2z0t<8_6~T?G9=D7;VDsMZ&-ru8_U$)@d6@>4aRzUrbofMnuqAt=GU`-rwm;p&TvYp+A9ZJXQ?w0! zy4=1NPa;dX1MS_#T2t$7=)ik3={3-`evH?@fsY+bL!lv$bx>C+TR!*W%V)Xxdl>=| zL?DGkNzAgiBNq%4+b|O!hd68+sB{F;@Hc@5Hpz{pgq-2j@&B$r+}&%Vcqh!3hA~62X^0S~~%nTE`NS-~kkMb}q9-ThJF?nTRbCYPYnGUz>H?j=jCP^z$ ztErZwt4)0Uz?Y|krdkv6e2mc2@$B&}*qZ;_r|lYGo0Ili#xF@{ytWEqp`%)lYD+#L zw7A-ybURL$0}ds#kSvebo|=M{f%!YtSp{^ENJ z#O6JCtgb6hm4pFVr=9g__VQS_j?z?-imzOQ`lz`dI{MZaJdgv+h=otcwk|sF9NPs3 z9pKGjGa|?Yp^gA|=KK_SJHc&bD^1{*iJ@JG@UANG#EH!kn| zwr5h~?BYA|8_BCcK-Uow-qFiz{&+ELjtDST^^Bnbix1qE*Y z8VT?{zv1lL8lnG=^V5nYewX;pI1Y6H|NnbvtIg11zz4T=<^q4N1GVzt?kyyVjzB3m zGq%HG*CDK2URy8ooK78*D5rfJSiHOq(15-lcoLz*l`!RyR>_(Uh9Clz4N(En;6m*# z2(Yk*)8#+k2HH@-!Af>kEf^fuzWqthZk4)zet@G-gF9Xrc2baP3qU*@kUTeN_+=htlY$8vZrA+Ysefv1pT~nVVcd+ynJa<&p1Lxh z&zXp)Vm5ikJsfI(M~07(D<01w?FARtPDBme*a000(% zKw&5a5*`vT0Rq7E&^}^9J|YGf9$qMFf(g1WCAe&W0J=dKzyjF-=ptP#Pz8{V1fb!f zYga-lvl+dL1Y?`!cK-QPuA|<^j4Q5-&(UJsKejvBLq0F(S!0$okj=ovTz;VH``E7( zB5SeH{;_JTNkVk2(sQwt<8f)QGjHH&k+yG~N1Um*X5mRcYM1+9*&;=$)lEm^sTjy-dy2Hx|~P#(C(ho`!#5WG|U+{%aY6K^pZO72e63%O&Jje z&ca$-z33R8y;qy7OLs5t4R_g-PGC8p;IZSFjAf8Kz966;zDmQ+;o|}jfnw(uedg~! z_!oHypa%L8mASPP>F$-fh|>Jw=U%=X+pe@7PYt~LD+PSLW%uZ2+5+wNRJe5PY)_I< zj~}^yUDvOgKXO(KkdA{xG@ZQHgI8*fn;^uTZ={dK)$)_ApYG}g<9m0*S_OXMx+o7w zi)U`Pmq?t%H7?@Pk&9yS+=iH_US*a- z6EOe<6r^w}E~LR6-}>^?WJNWWj18a-!bOt83JQ`isluk# zoO&#i2&NJ#2x0*OIdCHlQewi1Cad9B0+AOS5oE@8&ks2-5cvCUubXH4<2;X4b)K^| zF_oo(s|b=}jF4zaRCOWYVwo<)cGqQ4mOoo-mVKtwJ)NV^$M+J+%nPV{KC=B8EM^4fq)8ap>Ia|8X<_SL#ZcsB{s$!*P~x z3u+~sxkXU7G6`1ws2pbhS_34P{?o7O+gHqr(GUv8lDvpXd@vmU;hgYIWO%>SV&~ek zhdLHe;C0M%#XO>X)aR{Nxm{V8JFO`f%ed$6?vRqF(`KFAN*$k@uD4Pj z?O9u%`BC6@3k=Dl!>F+~(4be^c?wqwK#eh2p&hN1C`BMm1$u!g?e|=_1qO;0Mi3|h zGO@HK3W$X~+(Row@zRY2SQG`3AR0tTnw6`=g#Ci2s&(^FBLq|x#UKKOifV9vut~CB zOWIEbPYfbrthCgCsTe%nytU$jxlF+nM@-RV zP&I>))zeWU8ZDQ`j6q5#H#l;9_@3jP+pTk*gB>@W>F3q9f1>X@e(C zOKrSd;D!eB$j@gPXThwsUKX(3yXee1xyi*ih@RM2ydog0K{7RUIDCWG?fTEAPo^#- zPm>BaM95WMPeREuOr_uIovEYm`pdWv*=6ad;HJ}y`~Y~nub>g=};E#t0$+USn4gDu{zZgObFY^?YSNMbE(@K}fizYPYgi1Sup&lSn5_6dr1* zC@HlJ+)YqtPUlI_lpNt8NF-H`CkG0_dIDrt0H9}A_N|`HI!EYXyXnXe8-tZZem(km z-AnPAqY#xJGd=Tv*u3ipytC(#J45e6(-KXT2OwgqF47c%oTvhBNL*AsYSkr5YG(R! z;0%Hb#BI<09TRmZ+)| zjH<_G1$qvY*7{kvpbLt6RMQk1s*xHq$+e&;)UF28Ky(&KuSN;3vE_JgEdzmI6JbmU znN)l_s*>$cRK7qwLARnO;cL%pW4B&DBIcW8i^g-r~Dn$j)ky_T~K_YBqyA(6-F(A2~ zpMLcz9^Zgl1~1Qmiw#;&<58_e6`xKf7(}mS8m@{4p-z&VMPvX;qnlfv;3~#gK%vzu zp>PmuQRF4M#wY8aaF6fsC-IY5#h8&$xD|0g;V4cE$z!7i24ZnKVG{R6Cn9}9#9#5I zON%;bdS|cY3`&^eU*o9!DZiph0uqp*1X9KJ%v<&8#q3d?`#xpJe9p05@2`ztuHon4 z@M0~Ah@@X?->GvT4s$%X0;sbW&Q`F7cr2!S!?TX)kn8;*5&e18TmOnr;HMMIt?mRR>;!YXg~ z=Qp-UeHOg81PADt26Rr{!|28%v9t3k+6tGUBe2}jF?nHNq|qQ9Do46vM6BLHR=Mcq zGret2llmz(R{c287nmi)2pVr1frq(2A@Zk5_z?DG>Q`%hCf5mV9omL+Z>yV}2%|Zq zaoldSG7{iPXqY`KW5efh(ANn*1Docy6^`4MIW@Bf>v;(d4~|JOmP?=-$83Fk?HE8k zkH+5+>67mL{y1Nu(+6_X>a}uM`LGY6hU*LH>OO;?x5q#Jb(HT}e>6tSBKEu0exCaL zoxZGrI~GD!S7LJbl?teNe{XHW+9uO*;6eG_wC6)?1fplF=^w4HQ>)0Gw)fpUUB%m= zJX{+b)$bsm1sniY#Kx0AKOPYxO;H8>P1FRI+=Xm^@UMf2D(BxrtHSK2+ZFB%sM`{l zdIi<=Ce=lyK3B6V&jD{m0Ek}r3G5<8zq{t_%O`}(!$e3_ z@}UgXgqKHjNJ#Aj+-!G#-acf@3(biV--J$qsIr=%Y0qWq& zZPGa11BET`e^Ta0k!yccx|Tf^tkJ+Y3UljVjwZ~0TZ|?C!MzhAo^74|t_Zo|27Cr=~&{bEs(~Pe}C=B;{L9Y7Ind@%hLa=P7iX-2s-ZQ!(_UOX= zb(nM$@+0Xci7*c;f}PTVqxjW$1r>-v8&v7i+h9L=Rsm}_^%${cjEkxi(gM9+)!c7x zQ3!e<2?<~-A)_;X^*>`}_fP(rcjx`($K1(wzUJ{7Rg~@Mxd&H&HDhHa+O!h9^U2}S z?bkY?lPMw;$y(|)fK2WK)$WJ}Nnb<%F*EX$!UfdY~Y z1qGK0Fd_Ev<_BC00*?2&gkN0Gmof&jW~jZ3D=hIboa)M(9@KW~(@0|~)KKa+U&kcS zt*^a2w!__|o1Gvx+YhRR2DzT;({RSWTAAv89VOy%i}y2>f*QJ0(;|UjbptKYR%%aJ zA}cp5fhFY*LzvN*Ar$2{KvIKo>CULTD~Xm23*k~hS$3h|IQxLakSGIWfm|KGg;0S^K|zyd%|1^@sG0su4sfM|~ZAdu#F>lV*z9O_NRrif*;+MYf!MW^?{*3>rV{o zaC2_V_QCFY`T7qep5D3n{*426Fk7G*@`XGb?sswj6~14eD^!d`@W)Hvpt`_RvDu_v z@&ge29u*$`HK**lPz3-EJeq{b-AgYzlsOJ*9(LqXTmVhUQv(&-P8gfsL8aE3~y4Ggf6r00ur%Fj;!{bggo(3#SSqc)VlA8yWW5v}@^6vPHU$jQ@y# z$4}Uw_j#Ys{`#aBBWIg5*gSiqHnGp!MhPwP|v$qDzNGtR=dV?y7RgW+MR%a2Zn zYZxn>3C{@A7GkU|*$)V9Fh|?q<1-V>R~P+E@3FxzS9dM)IuZmMwFQV*ycCk+L9zD% zzd|!FIo81zq<6J`VbnhwFMa>sUuE^MQ4V^b+m*f=uE!+*I7Vp%#MjFdW zz0IPzb?%qB>e@pvb{cJDi=~1%@+os%Yu2NU2ifoZq1Bk<5X80oB|TS6m5OUNhMp0w z7-BFmEO&Bd5oHRSz_Lz(sffxJ``jo60Ga?!0OEu~J;6gU;xio(ex}HzLo@LO!-SI1 zV37IjTx~s9s#66vXk^NI2&6@=ly(tf6$us^Je1PfLNOcZuKYOCTi-daMWx@mxz_WO zt(MIPYTUnTR=?j$b9Qv<8T~}SpSS~>h0R~ZyMeS(?$#B zWqn^Qo}6i(y8Rlw^o?VU4(8iQ`#_gv^tT*CLifqW%T?r>#v`adm-lxQRjbZ*LfcLr zYb)k1^{#=G;S6-+^L^YK7qa@T>&!Vb4PN0?QDRiqL1^n@YWe4;^!%l;3dLlO$~Kd7 zxjtXEUcrCt+uOb_P94OJjV86;7Um>tekQFrEZ{WFL7Fy;iv94-@f|GhWpN@%Kk+;`$d z3lc%RO#&c{Lo0f%)!K~WRo2<{haNjF*Jh=jv4`v^DVhH7?@ym`B>f+)OR;phQyJzp zyshibiV(#25Kgk(MZEsKM|kMt1j#iJ5VV z)^cSqt<5S|grv$tqKq)#x``HypPIKez-IOibE>gXoFmT^pN64Sn|7E98nSXp9XX>( z2cwp{K`kD>==Q7EN~7>&MIF6`7xA%wT>YZIzxI5nF23|9#MkT(?$WO?9jwiu(t^yU zr7T!1h07)~OTSbCo_e^e;uwh6TN6V+7m6L0_rMqU@--5vO;Cmh?-g8?sSX;9XDDfh7K;%(N~dz4iTu zSb_bEb&#D`wSbPk-1cobXI`P7P1K%p1g`mDVOl+eQWBPhG=milO>g3hAn8*ZDUbrv z2~Z$p0e!QN`4iKq0Tp6}6L-#OQ|sqVv=Tp(3k-u)Fp^h~9uCL&oE(L`o)NjPHD5~g zzLJ)_0WYu!S_D#N1`#HhHC*+GFD6^yI962IDgc$%3RZpgi%W`eJ=q%isg3(NKoOo3 z)*Z7jCrFPw%~34xEUwkoY1i2^Z+tSkj_iMGiytUI608a!R!9?7Mrhbnp;8#oB4gj0 z&y{-TeOl_czj6d#Kl%LFb?m1>Q^{;4u?zUfOhTkQ72<$b&&lF_KWlZpSIDQXbq9{j_Q}Pf< zKA@6A%CyP3c%HUKL5xr@851N9awD)Z;>v&~EvW?R>y~nq)3IR%C<+Ni!e9bdRIn$J zfnI7d+H^Y`KIGLZ@{EnKoOC_uP=Rm+M1|5|9m23e{=cBVcz-?4Z`Bw}YLp=xo2j zM0!wyAi_s(@nfSkAIYs4EbQ%piG0ofcDepg5j2 z2k%|IT*gZ_K7!b!Jf+$ZpT5e)nDk)}94!aDFvZV=hH@7a%sxMkbJG4A^2Ga7$=uOE z892(%L3f_S)PVP7-QXgb_7w1{ahKo&USBu=2+s%%@$e`&_PpoASp1#Gl?W@A9oG;SrfEW81>S`+6>IoF>qR;%#?Arb%(PAM*U`v-r4~{}{sX zU-|aZ=EyHpI7|vePSWdJB)9$`0qZfbPwqbpUoKVE zSLGQlUw@Q;$%eng)2la>1~@g*QG=ofdLTeJqz3}U>dy!D8~FdS0YLxDCQO6)H4nQ; zEL$ncJNo^qybGOnqzJ!U^mZLEz2idMaKtB1lQqVY8vCd@J+RA~*&0&GySLL{ z=x{0nv`?vQ+4I--*_|V$5spGs%H%fQwy8zm^ujXyvcw;~xqtV)JM1wS%sByKTtt+n z?y#d&%cf&N8lwcL7EpW*YE|A|-V0J+=9Ky6j&9NBN^RraxDwz6!$TZ5vl8M`JnuVS z;z(Te&K@xN(!zK0908L*@wzF@+y7 zX+FLA;;{7qKHY0`dn^8s;vM>T5C7#~V&Gx-OwhC;s`M3p-!dygqVd2JLqIl2{F8gIrW>wmJTaHN|b?Z=o zE(G{;l`P%X6S>K#@GEDD0Q?qk=>B6)t~fINRpJ+b3lsnVAlLPOSna)i^QYHm^6|xq zN3UOB-adzimHrFohS&DnJ{W-tB&-AwHV*^=DFB*})NkX{zg-{e?O&u*BPSD`)!M$9 z93Mu~oQNv#qRP407l)6C3c0xonq)}xeq92Q3og6?h&kI&ji+Q_pg0SIg+Q%?ID~lG zAB?Wn7EEqV5Zc_!MjDEHTrP6Hgh$C^!_v_f+J+9AlWa1~a7RtYRvpqC^NFx(r(CQ- z(XmQPHhkPqJxDY!G)1JBaeq9^c7na*HPR6S?PSdA*l^K8<`?d|6pd-O*U%vdt!Sa> zi1`2PFW>R1>n_qTThpXynAquNX;H}Ogp5uEX)@?8+Le3&gp}>U_BO#gK>&e#G?W^u zr?dAi(F^YCBpnwFjBFo=Prh8++PB=?5PYGKTV)-;@b#E}i;;&t-N6vUqqlomsPRvH zn@qb%T5*oZe%23500$3-7vc*i*J$5xYZW?hSO5yg1ouTDms5mBdAtrcVq?Np{yx+i zLhDGNTvKeSx{4K1tI6^RUo>1&I!>NKfd30S8~+!)J^;|8AP^t{8^{Jw0O%0_;GqFD zNC1Ebf&^d!XaE2_0VDtbfF}WfM*|_y1^@sE!Tz>&5VAml7M}Y6ct{N0<%YY@ zV*|9uQK8ySJdc+uHy|)P{Rlk5+Py@uG!LX>_vSXf&d&Zm9AV1)UU~QVvYe~eeFDKK z{@M7)xPF{a_Mq#%Idg*fRt^<`qlS^c{@Rc;_&mkJF?EG5=oa%DMo_1Rpb$714qJHu zH{!mtl&uQ{->BKwajK+pYmn=K8Mb<0n-DQVZsn4^?4W^z{X3;7EIh4i7|S-?$1EUQ zrAlQQV>bU|qyHlKN4D>}>v?7l?c1uqrjpR_CVoym?bR<32RGyyy2HS*kDw~bXO(Cn zZ-Q{OF)AorI1b7!T-cm0mlUG16S^ zSw0k4(Y2{f)2Y%xDbyqG+M3mgy-$!#%TTNBCp-XXQ+PBl7OQwvtT9U2x#rnKolS>K z8|~WQ8r2acO}9$0*(+O~Z)_DwiVD2qNpL}t+(`dk#YkiFBxOir*l^CqnZCGd(%+4Fbs1~@dXKU03b+k#~E>0E+B<6@fG1QLV}1AGBmJ29+aXM$s`U!g#7Sx z=iFU@vlao9v$Uz=0EQNn5gu0pqb>1D>nNwo2444~7lWVqzFsE}*U6LDc;YX?Pb^2? zONG5BhAtUaW;7&j;?2yNrIzS@Djb@yA8_ti&SM-{VG!7XA3lZo3{Z+TlgrmXN~CXP0RPh@=R3{nX*_r_1qD~iP%y}WCH^Lsni1|rLBXf z%&w{nDk+0A7a}m(m}QUh=mN4hCv_ba=;=%q6E8(mI$unFs-D%kMr)G5!-0g*3Y>m}c9a}6Eyvi8YbUteSEnBtn8nY%}I z-%V`o91KXq?b`G%%g=NsjC~JXVi}jfw;1lUGG1h_BL@y=E|da&UHfY$5C#M!n$b!FG)D160j>-(MX4aNyc- zASz;sy;_WDMGzq)Nl9C%BnJjz4QiR2Nk&38hzVJVuqMhT~XZz zOSwFDi*fNd`Ua2N$FMb(h}_8=Zrmgm~i_(?BU2QyCOMTa~mVd5fc5r?dwz z<>wMN_>nR^Mv+yGgFr_+Uo(fxMVVJOa$57kBWtgC%hX)DpOyWXa&Ii*>*aOB2sr$# zO`XCuD_?h-gvle+Si~64;D$_10|+b;e!xBTIImMYLRCuOzT|}wXNU$o;7Pt{m0FrirTr3s8khJ^ zx#zDO*wB3Tx!qWHjGfud*{=5ae!m~#=QN`3NBb@{boH9I<|6l3v3FBn*c*cm?(YO25{kn=4oTjkh%dOcg z)eGrdX+HHeZ`kDzwK89QkS!RJsap(%mmCG~)WDdIFSLtZ=O z5gHU}Mec&ZL`&N)15Dke>v0dNbC(qUW;i{b)pr+L$Eg2H9aCNnR`y>y$<%8hnDQ) z?dz@keFjK_`oRel_z{DUO9q4^HwFMipaBtBS_Z7XM6ax<%y#D_iDJbiAHCXU*vqgR zB4^>Un5G<_JI*S9Wy|0-iL#=HaXkBb=iPboF&K}HiNv89#Q-cJh|>dTpho@(X}!OU z*ps=h$g?_-MM-FUILHRs$1xwr6lmmLPKHRNI4qeNwMA9Tkz!NmxwghcQQ&Q&1d7tcA$t3GZnN44JU)nL4^zH<{7gJXGm#z!gOb07o)A7 zgI;M=tL~!q%t$O!yuZ2$(SWVs&WxVUUmBtKh)++woi{@|1j*MKJh${eistbsQp1(K zYaIRYG5cxy7c&p3>&A7Ao(8k_-+#pUy2KB|C+1L-s$!$hEho#zVcLzHK9TlY5EL8#;$OxU;6c67MKc3!INfg$Rzz4RYH zbANN9+Q%Eia6?w*4geJ$A)16EvwW$D+*KaWtsK)Ym-dB(j;_&02<^`81% z!27qbu7dtPIFskSYW@m=r1SBcA0Asuw_=$tNDyc%E~DL3HF;M-gCK`k9Gjs@+n95> zk%6f&MyoQ=LDG1s76d^H#IIiDi85 zV4v{&`&d&zky2BRtnxD-GR1we}?Lt#ra4oSEGJ&Yz6t zYRz3Ln<+USript<2Do}*`8GZ|*c$fPu%}b;l}CiNTkYnAG1YNDr5ir8$eJ8DzlCD! zUJ2NSq<^>l3T(K}MNA9 zO(2p{e|+hmXkHuN{gr;ROVzb^ktu#e0a*B`?CGRdTsp5Q=JVV3%yG053y)KW%^Tt> z7~#>u#`p83>s{LzJ?t-(AEFTSny%4Z4Aok6JE*eTP4lzz-a=P0UR46qhDlaWq{zkj zadP4GK+-0T1amMzZYt1K>_&$+4YEURTGQv|tp0`FZ|r`1-Ap?nLo+$HAos7% z&Mv^}T!*1ANRI{D!682Bg>b^^VDc%d-LwjT(Eup003j#=$(tPHw)_!^!4d$V71W~G zhT7Cx+W1Y!RU+iV8NG=N`SMcT^qUll5n+l#62uTt07F@D;m_@nzBdIB*aNk>CANxUd@8)A!O0w!bKvgcMvXwWOCAvjeA0mfK4E*bebR;#!B zjFOpc?M(2fU^rAJLmsYZuT|Yjr=26MtMC*XETJ;AvI;`#=rL&B_6=ay4UtWnr;urp z($)U%7(Z@kJ7lO`sNJ9(bcisZfpe-wP%Rh4D4=O~D!k)j+#swPZmcr~0w&84K!65B zGlTAgv6yXbHz)YH`?aQ@FDiFa^cJZoePq1#%#YF+hwvDUYzCKw9xuqmNz{#9Qxy}@ zkA}Ok$Nkl}K8B>cOWmwL$$9sEjCpoV6&*`*+8-f}mhP9dK|h*9)4c`>MO0`~6v-KH zgxaX~x|C{_>BV73?vuDuhRe}uBn=P+000009tnW|KO)kBFaY!@002-R0h0e$8Xf>N z2mk1ORvh2mv5K0&ai=Y@Pv;u$75CH8Tw>*MU>H`e3hXY+AKP zpc}-r_kn6a1P!)WYXX1b4|#yZG&+>*5RN<$_;qO zp^uyvasmFh{5)Z}sb7jni|K;Pm87;kpqW8D!!rCAvwwM?;hG%?w^X5O!D?4#Lli(@ z2_c2msAVv+SD4ku9o}2LVPI%k;abn?3Ipp9M0Jrt`uhA$<9Cf2;=YdWCw@h(7;Ja1 zTKj0gf}sg6*aZ6o6;hC%tu2BQ5Zzg0SWec1xYD4#5K+mLyEuCn6GxO=fISYO%#&0J zWe5||zJa~fwdy4OY)IzP;4{)p02tRkNH8#zf^pnTE#gdP`{XQ>Ew9j)b>($})(&?@ z;%WDx$C8bm?jjKh3N(WyGSX-&A4n@Pfuoh{=DdfAGcyZ_1C^!XGGlYD$d6c`uU?OD zR6}ScA{a6lP6Ti+QaJT_lp&uISx*-?BQX0mwfRK_W(C0|tozW@tmsu+V}A`l7!3wK}t5S_TFMfV6Tzpb)5J z#%hp7T-~wsc*t4jlG=~v46OIr2l;ee#J&|6z$u-Wjw?#mJEl1k2`B|6_;yGWsi8`8 zEW%bCHb&+;EN~6s89A5%4|+0ziO&Z-H7`zR1W zfbCk(_1ACm$I#_xH?SuSxZ!wNlHv_|73%Cm{X^mZgnk3LfPjH%jTiPG*2j~p_odKv zO#7`h{fpBuBllJ8=pAGbsZ4Y)X&r5srI^uUWi@xMJ#0`oo^>{_4!y$r zzgND|2U=a&Z&fo%Ibt(H1+}P-nX|N9%`VeC{)3xg3~q-ziHYcwvO%u-t22NaNQo6h zBnToMp@9NKDW$0R2#QsO#xuRtpT<;NXJ(P8;1HBzswpzSNC{&MDps+^6ag+75CJ^; zYn3bjfChpJWew`cSO5S$I>aEb7yzIz9spforA3Y?fE#Qg7*7IJg3@Yhrr{wO6f!~+ zkjE;h07H-7$!QE>Q?8`O3??ZY>NJ{FWHnJqVVY?yQX>H;O^m#G;>Y{n>*4p~bg#+2 z7ry7F4p^^#=-)B@sCcHG`o?$~L3yUY#E#$iS-tk}K7V}oY2GQC{yO)Z(VN@C_W|LO z=HwItMh?elDQ`-}Z1|rYqnNt#?Ynv}7xdY{ez8PM9h%ohYSj2NS?}t9SD@=sera=8eda zu?fW*8IjgRv{R5ZT0)(Y?zp8yJZeUudSVy#tLpR7&+j}-8zuxV3wD%3bB}ik?{)i* z-b-M;M5SX8#0f61l;7TyPvioW4pFB#-0zA(1d(LE(;Ii|xNU$4YDqtk7TW1vbO8V; zG=*wnB7uD7?F^fg6LqmZgVHc)Q)@$%J-kE36_opcRLfrc3~$v)`!}IW^}Qq$pQhUG z_lbC$*KQ#+H>E4NIxi_3S#v|ou4jFrEHG1^+r=R*( z>IiK)gX%PG7K3n*ZE|8__7=J(D^zhH(JIPd4F{3^V}wmTNTwLc_5=aSZ} za7$mr;PuCky6}Cpvo>~`Iyg;agJVA{aJOwTLtkZP=iKUz|2*^8kq_}@`K=erj|!-$ zeuz|ym;UI6&AP`Xp!e9J$c9MG^MWP~;)pm|)jKj}v3~o27iI~1=ANKxm^S1}xhRMg zK3ka{=9N3&x>v1Fug`8~&`H(rIpplxuH???JcVOIAl>p|ot#E_yqH7k%Wgu#h-JvYq8#&#}Am)l6M?I(B~~3j$-nA{iXg1XPA6XHWPu z<#Pw_ET8&Y{N9Tp%&yu@F^iaO?-n|DHNilH8xv$PB5A%PN?GDEZ zpyTJL-`)8;fLN18m;GL~jidf3nz{Z}K8b#~*?gSV*SDucgm}Dd{oyjB+1yL?H zQ;qIe_{?|)4mg_zLz$?s1SDD17}}5y)Nw3~cB$5NAyf}8Kex!obFgo15mkh8jbk{~ zNWb~@Cn#Q;YJsE10()2=)DwU4)C76Gep;rX8L#((oj{>R_$ z2ua`Ea@h=&L3ALYp*#HX#p%kY)t|QqyG`c<&H1P>su!I1g_3ZQYgjDPlcValmWAGr zTV3KTYm4Q#`E2_PYsdSAOUorf4WZ+33_ZYGQ!8MGOM5vCAulBl|XCVY;3m?|Vc4FEz6(rmNDgx`R zC75G$DMN%tr%ikdi+lOyw(8kl%MrY=6Ks^dOB>cAf9~`z<&)I`uKjjD^Bobv9~Fdu zV&A1*v-|LLyQB>L`|iD03LTV*jpdp+21PLE=9It%yry2emf z?~LY(u4p7vu+4-pc=GR`xqtMjaX?i|Z2;VX6dTT#glzpq*~bwqzlEO*cj|7)fOOo$ z%K8_P;ACGtKDPb!l1jm}YlLY2=-hh$C;Vo{uu$md;-G2^52@nj{^HlVP>&D2*xshl zhpocEys{KgTz2fW;IF#U&$lJLg*r6e)Hh=v5ox^kfSGJ>eq+P%;D`4vZKi7oFwSvA zVhH1he)-<3oItcHO@(btm)G4JU$g-Rjj_|Q?x|1QFGdZPl|p?lwinQ5uwfR;c2MId z=6@`z{JUizPtQ~@IhVISD%-UuCe^|Y6*&&?R_1d~`QDO>RtFb`E7-HMU2~}ucoho* zA;Cfb06>rGb5@@V8o}{WOU)oXISsS$@weQ0^8A!K^EvDd5vr~AOa=X8&Go! zbKMPgl$}~`Gz@I?JaIJJN@b6a=V!P6oWD_Jx7mi_tS(Q^cS2!n(Mb`6;w`&SH>@@K z^UH+pE_W{HEXHazNK5dMM!n5j5cVP0XibT6 zL620ptAejv@ublj}rlq$*5)xqFF5; zW9l-m_hCz}(@`J@paB#Jcpyjsphp4V|Nn;}01bj3_5Y1WcxVs}p#Lxa8<~PiPy&Vk zNdN!<0O=VZ97+);X?Q3g&4%GYC`7f~lD`dMG+8bd1d=A)NRc`m3`l<%I}sHMaqKCx_2^K4@BQnhHdo_6 z{`>BI!zvF7n${`w6-0p)Db{AE7&BrWPkBVFeD-g;1l_hQRjOD45m%Cq%ehf0pZA&_ z7^HgU-yS@=$zsb?+Kkq0k;vyjY539rjw( zeyueo`8sgl!{^C3qTTJ5q?gft9su3;v~ z5LiZ?jax(Os{Ns@*^>Y^kfX3}u*Grfd`Wpe70>ZNAB&Jm?l`0-Kmny6Qck$zoWkbK z+Wn66e(mQMWgmVh$fQH0)ql$x#^!koPj%QU-OE%4HNpl=NOZv3CIr?8BGc;GqdqYs zwv~cYgu?Nr>`$hEqUt5Pl1q6s35-DyE+kVxz(%fgLY4Hs?>$SG52h>wg~Ca6aIajx z{?+gPz3f{k1)C}hj8%YvF|Ho|__+NnZ%er@@O8oW)NwuolR&~*#otS(u+U!2LI)-x zE*lQc)&MFmmwg3z3eQGn7|KWk2gqV+a1P5(cPdHKQv;n7NS1wKHs> zOkB3ZwYg4X1reY{41|S|f&dg~={Jj)ED=;uxOF%C(1%@E?frv1j?34I#`6UVzYy5W zYq<0@&3~+8SABM66Gx#8yV5U|YhoohB6z%h%XrqtsrszemySS698qj9NNdC+G0w*`lYA{r_o&`%SRf&T9!@z=e0IByV=*pt=Ey^WWHfV+>$%7at)o7JPXl@d zytK5=dzvWfckX0*or!9bwWj>+s^u}UjEm+=%>ON%xP64}cppWd)UTC4{B7H?9Bd&i z4_P+UqCQGHuIKZetq4<5myR=SuMm7O;yL?p?vKAW+syi7d!#%)8}lbxj~w65@$L22 z(Oj**o^ZyF-!*0jyROi?$nTI_T{}3*RTV;dBF3!s+b8cS{m8TPD;Ur%Q;`8g2_Yf{ zGpNcCLas_>5*;BAan4ER|qvLO=`l zih*GTK?T%eq)g-kZk!sTX;l=^!iMynpEQ#IRWsnAssI)WOvtKWQFBxywX{lVDF>>w zgb{U68Fh-u2#w;3$w90E$WVOj{!)Bqux!O5tyQ20fTCDr1Sl{o(hh&P*ZMzxTetG2 z*(`RQop;XO-TZOjdma2QXa2XRxyh*n+$&>WiYHA_2LF~`vpKlz!94e#pY7}Ro}GSw zIR?^hc5Wo(H_4%;G!5aRi27%lsr_WE%bMXK-#k)q zwANdGrqXWpoH{vwra}Jg#}gBc%mu?J_{a9Wqm8z6)CWnz{aTx(I1(FMD+-8RX)JYO zH^ZN%#;5uz)r01BdLHT0MFY;1U*7V4?*5WMV(q17R{`|EBQD~iqbOVEc=Zw$-s21+?5_H6K13mTHU(WBH8IE5Qd#&15c8}F9FWsbOU7M*Nr3@c!t*w7pf9dPD zTj$#$xT=xrWZTDFq@surp%xT?fYE%GO8`5MDFm;$rsw3e^KyFuCt;+AjE|fM%{k`A zr^%6m)i4%On>6Tfd%xT|WuB~a)FlyniUhb)rNJrCLRc^hRT;+^r&b_9gRy#*`!tQp z;Up1D86rU(b8eswj=6b`OUHp{96XkO)%53^O(}sDR;FdyE-=A3WY!yxgFR<|o%;Sy zq%QiAaxidLi|XttLvQnoi%bM@0+9 zxNH_2BP1=i5n3Z#>S`Oep@}%7Q{uXg?iY=~0tmv$p)&3_!@S-sa-}Uh1_f*5MoCPip4o4Se}6(eZ~hrXYql?RxhJ|9mmk) z=@d*T>UeX z@vOf8>;B88{KJV!1}Opx4h2a-Bh!;mAVqeQSxipZpc?}LpacXML}A3Mbg=3cF-`)@ zXlDqmK6W;&i1uu0%!G%aQ3Zxa?`wZ~uMa{CvYl*qwBs|Q9Fy)rb+kO9hr(l-t+vV! z{Oy%?jLUTFYS0ryoUO{QK#fFzfhO(2c?Ga@%k%3rPg%Mx+=CE-;!O1>GKA-*?m<^q zEerPT8{%iQxjHzPj~&xwdId^f`^$+xOUIP`(!ta>g6IP9KADQXKr0k_9+mz0*!9Qp);IP7FtOFdhPLm2H~ zF^wF0Q#(PirDKiNQAESJXl}{!;-1y*k-jSU_^jMMt=%oOuTx{*u9`qIDdF#S?9ZqF zAF2tj>)1ohb4+-Nm^5&8&LU0W5YuyHi^D)2{d@t-fVAU%dB2&k@j;0_HVd=i>AK^7IO>5Zv=;p>2S9Ybc-~klm zrt@~gp;@*Gh)@VMM^`V*8LJzmPu(QBCPo3-ZWD$PTC!!rd@{>$L8k#JFl`LaE&+nB z0Dz_&q#(#M5H;w2knwhZ4GJ7|ZI(rT zs*-lo=oa0sJ9@#^Q@8a`KQzL_rlQU&I*qlTDgIt`*Z8xNiEn>z7auZ3F#5q`B^BoI z>5`HvhZ^1fK`c2D(J^L280SWrOIHa1Kw3`7-!*VVd5M5Y$C!xPp;`2h7cbLMniND) z^m64K5{_uIZR<~-d}dYXeJgMAbewRwZHn7!rj5+ zHLTx}#-D_*4aaFhzR!S$bz-4G$RKF>ib~?? zGbK%EYmJD_a4o(}4!P)Xw}mXKZQ%oG$aqNUvbcam!bvcQ2reN@wcJG?F1LoMbe%`x z!Vsv_Bd!=?zX^u&IpMmCT@r9aUE>~rZRi-H(V#lqUCS&J5ijW%VaX#90c!T-7T`{3Vo>+@e#A3ZgWX&dHuB2L z=vXB=VwMZBSOaT2h_dKHc?|UmxcSTUtZB1lw%l zV|JQeaR+6LOhIx!fqHlxv+gIPfIG`ZLQk>5FJPlLKCE%=Vz6YS! zYdt7Yu8RH~8flR(8YAEWe3CX?M3jRnI)bwcQ@i7Idm%7Y!?EZEN9WR2gZj3P2Ho%$ zK=-L>c%!Sz>@_%;&a<(vU3Qjw53<;tZ5m_HPk`vteFHnarW!FO&URUfU|AR(6)^!Y zU|jn zU;v;%(nSv_TCpM%!~RkLWp(R0ZEq>}(^g`8DYxCM_Q1QDA>U}ldt1B`zCY)31A_fY z>_ct;4?lh~&JdU5xyti6Tr||>GjseSd>nqFmEODbh~zbMQzTuDX!XF7*o~#tcSBy^ z{^RA<$2!?_?Kp#9KPrFl+24%WzdPb@q|Tke7C2B@5o++vH8GH;Khd8H4Lmjfy*?ZKgzi_5=UQxil(yN%6m!#sK} z8Iz{7EJVyRT6EcK7PDyspx}<#Fno;v8e98#4f*s3kR@`p-3zkgY=kt$J^+>sFNVwY zxa}D5m~_$>;wRH>yARQF*yjcw)lM2w+e}dhq5{4W`gBl|Tc6h}UJKQ)Au} zK4_u!Vcy7gaT7XikJoqitohfQc~=_g7~mK(IgPB8k=2>!W6_to#tznE@}d3^b&>=n zoj;wcPniR5W}AjMFasGl6LA%ofhOw=7d^*Q7SIXHgGTFR%zbps-LR&cCvH3Y+p$w%+BMyJly zv|R{>VRTpf{XA*OwQsy8Gt4+%c>db$YB5vwNryZXu!jr~DKxO~^E#9R+-6aTd7vPW zm~^gK%&mOfNMA$Y~E`rJBvjj1{NA8C}wsH zEc!J)j_IYiBDrFsk?1v@cT>mgS?;yG{tEf|g8aZ^qus8v6!<+!-5yYdoS(8DswATq z^-k~w^Bi?S+csokHf@yPTCTICT0`vbpJ8V8_g?(FoZ280?KO6v*;=>x*DpVQjBd1N zcfS8v`;c9SDhF9CON+V)EmyiTGM%%S&Y{gv&VGC5FDI{;_3XdL!HZWe=86vXdWG!6 z40a^Mha+^EJX5muLk7i6A9ZByZLi3#dk*O(t-CAW4AwU)fDiJVR5_s)AgpL7N#TuX z0K(c)AoP(12#SJ?=WZgJ4fGCPJP)Plf9sgWMUYk&Dul2jdVW5*>n1z?rj&nZ}_gD-!;w_ z8YWP?P??$}tN=`+se@tKn!>{ktwBA)7R72(Qv_{T!+5VcU!6p`R=K2Agu4WBf`}sp zbmI|E*X{dNQbU2Fw&3sOem}_jT6$kU?s~}Mk^9BX3V!TNJ`yD;Q z2spJ~khLvJg&)NkWusp*uu1d44WdLF6%iy~F2uG*mn$mpG~MRey|SM(UeunqO+z@f zJnL9xOC=ANERgAxeo*SKmVdddj|9KhHCfFxAha~0F9s@7;nIuPpx?y*Xz-74NL3Gv zkm|#-3x-qPBJUq1AQi>h;pn5a|*^DZAV z4|Rx!gv7-IK)R8Ed`ER4&yJ)Drno93HQvv_$!2-&w?$1oVl0DuccUV+>sVtr` zKJ*JU(h`IQWG&YfsfNJj%w|ZhUk)5E_6qkWh$96I{t-~lQ>K!7``_4RzRG+LL6C^G zpa5+42-JXjdmf1W$!W$)Q6nK*dak44{umH7Zrkl{#y*Fgo|)$a0mSQ5VZ`dgQF%F2 z6A9qso2r?yNbi!fxh?DX*f0ErE=9p(0s3*u0zIjye!0ggT?@3XMV4!bB)YFMlnN;d z#YO#^K1Vc74Hm7%BEX{>g#e_N-R;E@Tp6O!No}=-Vb47*UGSCb(F#Sk!xkHA5zE)p zUtawjXo;s15sir`Littp-Gq?vP%PGwLDLZ%a0cUE8} zA*2JbI4TQbEQwHq#UCDfA47OLs1d9Ib=cqrnfl{_Vu_!}UyqGgM0Oo}=ldAs*1CJU z@e&=NrZwG8*hYKqePoZKI>EK!y#5=W_uu_9gO~pwU7PSA=}5qV040TikQ;ZffCC6& z2r8ffVjvI$$RO!BiIB-ia_i}fr%W4|VV}j(rfLcsVP#PnkCsuuyCTxb*(bkhog$P% z2HDUZUiZ0nt9ZX;BB8}O9mxT!^M&vtxl%Anc+_Iq^X^C{m%nr@H=xVKYK!@eAy$o2 zX!OM!wvse6SSS3}n9Rc;6Ypv_8Q`2B>*K#WtWNL@P3hV(Xos`%h8gjAU!@`StkioLiy7%d|tVKRpT)` z=PzRD5zTx=Hrd&A8+@6gJoZFmOwA_c2*o6xrYT613ipZFLE>r`{$9u`}_Y- zInQs*Kj7ZWh+aAJE(MbR=1Q`xw-Em=dZSOcKUg&7bi>Cn2n}jpi<^g(bvXvm^f#1X zH_S2|Hr)_pv1`DV)T%%AWc1{H{!)!qY@a|+#S_GWYZJ}`lDW5XA=9lKZLFSNuc^dd zKfs_-hw&I_64F9TMn|0pcUImjFNC0F5sO$W^UiPReQ9oI` z8Y1-WAl$z3BM^gXctOYpGyno({T@E0rOP;BlnptC1tL&g2wA8LYFi|-KEKbsR(%DY zkTz5n`gz zpL^{C9$&$C1zx}J?K}u1HSn9%b@*BypR4B+PxPJS8~Ga4AFTM$TIQW2q2U&bVs%M# z!ry+Mu)(6SV}KS94iwug+=f!k63npL@97^N+Zh4}-APMS_W8x7mS~0nv*tw_PK29q zMed4xE?3iHTY@2_sa3cBr1pkWYoR+PQKt*1GUfB>o;oQ`Y>VuG2pgaH5m01^QeIStzPePvWgtZs+G-fx`ytc;gSXr;2nf z`@ncI5d=j&i5PYR?y3Sz7-WJlrwIy!8Tct0bRwaO;yHxJ$Hn(&^&?{1b*Ka%e0w~_ zu?`wESZ6H4*0Q>fsaxG0;0qcmQq5W%Sj%SS=nZ33D_fxsexhb1xd)qM(VkT#JHBR` z$GBY=Y+C}9Ofg!IF+!TFh?5E2+ zfIbx2{66dS2Y0$E(aqpgx)HW@z;%Az(-#^}=be9S^j~19C<35i1_6K* zA;CsN4bZgEmSunx3kqqQnqNBplapRpDW0itri|?BXrVE-IBoY$83QgaHHu{qDMqXl zQJCRa#&@eufYDBL#ZLy=@1AKS@Dm)u5X>c*bm8nY76Jee0AK(B5dYsk0HBmCB23Ki z3fbMo#2F~|cU2rtbI~1aic6ctJX@tTK#5LCpS1d>D z-mcE4`gg}%OnouxC}(y5^}~$B?wy-O!O8P6x#?ePad-C(dBlQO+W9`7&&{z}ot+k- zaqUM@Kk@BejyKkO`ZAzwd>oC+8G}!A-C6c}3h;HS#(ecouf_72-zYuexm!QS)tAld zT2_5}{gnLoO5p3NSW}qt4BL*VW)6O5dNO6jFreePAO?bW4l`oE3jnpRiQT#kC{^Wl zIIS~?@E-2g*$uhPK9QQ%K?K!OE8osF#CG#@UU)ik;B`kwzi1H~Lhk~bO!-@r(l%#6 z7U@xE+xf=P=y|@fi_)5E=T2vdawn_ia8c=L9>oj_*k{m(^NnNdXmB(g3c;%64)$03 zG0R>f2aI;b-c=-G^y~Yne)%vbIFy4w6&m;~1<*DN7Q*GvLbT&eiZ@<38#1392+$Zv4W6f0f9=yrv*Rn{OSfm)XTQGnFkyZS+O- zh_z0p{*iyH75-!Ai}au-5v%Hag#kRo2VvtA9-p&7yv$xfFJM1t4>0yY0-EGp@QEr# zK%sNNUrvg>+N0XFNVqETmGB{sB0K6&O($dsMn)SMyg;mS_6lQLOFcW0?8pd+$naMK z&GBgac*Z_u?ew!gD&zz)Yauuki(!hUw*m!^wUy)!8#gEBK`lO#ruYIjq zKFf@C<>%{{<}G@CX~zI{>rvw-GVK6FVItFB@VEfWfLQgH555B~?RquJ6TOmaSZR3q zq1H_5)$5J#`|=v`iMe}gi1Dk;FuJCaff*89YHG~SbNB5B9IlgT@N`rh+h%bgiPoutL&E zTy{6dNBQmWzJvW*-}|qey&p_eU##cVOzX%x3t0=@Se8s8x3arVQog>GpeY&9u|uJ9 zSIbbeP_-I~LuBD`E9Cv4WN4pjzdDOi#S|uJ<8ELe3<4}hceE!Mj8Je8Hry;P2fIG) z+V#rQRZ`f)p`hkq0$vT*xFCWERR#z^a0rzpqDczYvkp?@%2nQhoBqAashzKFI3YR-S=Hux`^gfw&k&X>IGqT$5ee+p6 zn`EZ+Qa_&Wi5)_5F=#JQ4*$IUQuP*Novn+6OIR$jP*@{0jYze^o#?!# z$Xcug6kHr^Q))m+JA??y<0F`=9<8SYGD}93Cg3Bh;UG46iNoXR3c_pH%3)&d-dFxr z$b8H?1Mvgv;bF^gN6wLt(rnm)UL=V~-dj8A8Ik zg*;wFO$B`=8$;m&ZVd%WNgZ^lIZpGzEZRYr1|lE@b5>~%tcUJ#VH0U>08p+Hv`9l_ zkmNv_%L#0!qv5~~onnw!Xpey^I07;b&_}@7xNy}NkfkfKa)r1uCvVREwjcL2$}^lZ zt_NUC6h<_k;{B!k&hoQ9ETgVw7=inuHAI9dVFJtQkkZd#{0t**{@ZT;sg*xU{duqo z38^r{eOquV0K_wsF7Idc@3&L>)7jr#zgY$T+{60uFKd5iPHr2clS$-467^VBLSt}g z5t>>cnT(QFO3M`(1)>!touR0KlF&$~ZUePI1ra;GWjBO0nl(5ez?7z*=cX@U>gV&FAIO=oyi{GyQ zs}Zd?iLc1LCiL)=zh;rVp7S=hQI%^iRIX5Bu!+<&-lIAs%MNuA4hoaGs2-sxDdZ2`Rl#&WAsZJnFDQ!DgduUB~Z~I6S+=$Pi^-A$uOF(EjR9h88J{D z7LV+Vk|gaPr^mJ_lga&xU+R8c{^z7e8SSdct%akOTn`fRUCnXPS;7HOOqp8qFr1HYz1T~~Zf?^znREYj@?EL*l_(m$*K7Loq%^qp{XwLGbAX5)s zo*7LK_hSBP(D!LBSL&;Fe7zGiXzv8xYcNBJto0`9$A*q)bI6-Bx4Hk7zj=F1-~H9- z{0#ZTPZBCq@@l}!i^|l_kO@VjMa5-RBW92wZGaI&LtsFPw35TAVPnk)Ql_`LUelBn z9lCOGf*Q*M7KuorCwU7tXF7YEOOwYW9PFS3D10vY4e@V=|L?|(ydb;xeapE3Iv|*W zTf6gZd-kAs>c0B0+fa#UxmmjEBrSXd^ume*hTAzO7f^^;Ng^3ds%~v)TNP6|Prd8W zS%m&@kaX3dnI0YW^jH_jC}lj!U_LM^#2$2pD=AaeZ1Is!Qp3cAB)}3HqV-U3Ss&v& zM|A>UzrMA!GJ2{8ZoBk)Lb7QYJOvI3@n@i=9@2nks0#VREwLBGSoOnE(9nK%3hw%TN;AHE5GY%+Eq#xb-{LFsK(XxHI zXSg!LthfmG-x%NWd>m{KnvedvtGz4UT3C`RE;2A%0l^K^QM1R#r-=C~`l>*<8T1j- z$56F{X@KD^AOqM@XG(A8vsJI77SvGRUO^HPbUKI26#Bga43zA+11WjyU}aZ91;s^HK+Aw6WG&>wgo%jYJq5%aJJS5Au3$z&8@X&%E~}m9{(L&Woct$@zkIi?=eK^l9ex=lRdJ{l_~Kiv-WuDivFiA3+;EN4 zrgyapbrcnbs$O{FMDa*b9-}?%_2ehd3BX_)Sav4XCrWbOaFx#X5~fM5*3CtHtp3i? zyCvcVhhKED?(dInI=b+9Vx9h~j&9B4MzEQFe>}bP7SmMdPCTxoGQ^Rq{7l9HV*v?% zwm-gGacze7ty_a*adu;mL_Yo^g)hJGPsVI^TtFQ^h52b93h#8Q^wmzVze_d9ZdWod zP_2z3c>66=9|036zM8qD=YQwUfe!)L(WEkTb&0__LwI57v7$V$ae57e!bp12M%UE> z>Uk96|NN8Ik*`UTiMA8S10=4Ro+cKwv}c5db{e&}ulcYWqJ&qa1HbXkHHDIx`M zlLhZJON#8o8Kz7Pl7jug<%*K&%hG7`WE5IQert|ndp|;n1)1Jc1Jm##U0`kMws|XE z$^!rZyMR2^%L8`@ZTjlf#weYA%z+8EWAnk%gE$UY{?t-fC{XDIt}Z%bR4e*ewE6`S z>i8?=;Tk4xyHk7X1WS9|d9ubNEl^3&w_Z$*Or4A(T*r@?HsRJxo-k+~G-WK3h0yol zVD&|o4;(?4)HK&YN7AHad--@-vuf)teZp~7=G7Z8`t<#~zlI&uHW87(pTGRp_?qiG z-1zHnS0;+q?flIz`qAJ1X7qY~^iX7eO5Cs68@0mw@3JX!EeAUDS-pS8-~25C<BRH&*ES;Eqz-% z%@;{^u&oNRv*^7$-(cWh3wr7@UOg;OROc8gXL zm<5JKA5!37`XlG?jPuvR{@qV<`>yPq&#fRVMP??eefB4`2L`$Om@?%e?6@340Dz~0 z8Xg5o3UDv4i*w_=T&E+$!dxc=c$6$0BAbK)N+~#iqxeshK11ekVg8Y8A zl=f~%%U)Xh=jIu;c@VNj_%hK- zp6${228hm*z0`J8@-!e@W6#ff@#A%Xx3Hwp-!o&|Ffx!z4t$v2Vo$5Sb!79re%s^a zpN`*Fv=+~Xd3CThb)v90`lp`PY_A-tZF^Nulqls|Pv@QH^pV^b$5EYBWVi3o<$#sJ zu$A{+@AN?KpqBeSnVH7luD;=^*)5}d)p6Jdv@I}1Ss&bJs?wUW6YOaJ7cw;;-=Dgc zy#bI2QSMO}24$DCa3b}T>UOj*=r#KGPWR2CK9w-t$Crows;mMoo#b8vRQg#h6yvSo zIo5TRu|hbs5D@e8$o6Jyp@l;}?OcQei5)9>aDkx5ha_Ippg@@n%NB ziBusaYT;91CG8dxB`euV8yACzb-!)nmK=~4iTdy|Y>bxUFzF%*Db^zqmSRO_UNx_C zRp+QWL~<9RC0Y5IkCC2ltX%s-5$x3Cg@!CU!&IDUT8_UsA*Fe_VbCu#Uo@9e)B3q` z14En#8;D)_qZfO-ZcOoMWinV0EvA#z6VWKFFYrf#YLsm@ARyTFL)q521yAva8x9*Go?&>mdxnF*p$icMHVQ~jz>n!Ts+u2N2m z2`CfOq0K~4OddNab;tYcKKKugKI-ZB|LL{shR|9)siNNbl17QR3cVD6io2RwY@`n! z7aOknu&Kd?Y#~>)B>-TMoi5flSJ$+BZ>+60vq#v9v?0!0vAB92!@aX8N+kypI6_C) z?chMO$xP&Wd0lSk0&pUn$&DoHe>|$AJ1Y>0iVP1Vy_iQ)KlZ~o1(S>|} z+8YI|K`2Md=HhvERAUNINx1L(sbw%}KQVN#={jEFTK;U1YhLH5ke@wu_7iAxsK9)- zrS#}j3{;fmXc&9ew>(^$ddd8pXZCyheo1)7XEge)dqS>dJ5T8fO+&-g6(wRL2SSH?2JgAs*So9hTBoS=IbW0= z_9&d;wJJ%lsQ{5rR$EfuHiw)F#Z{!N$5-xyH+E4~n!zGMKlLwt9^M+?vB^4|C23~P zayMRQ!nWHAfCmBut&Ic)6& zKq7R!qBFJ{xPNFcqY{^!Z=CkJDGTKi>Vr?E{`ubyJ`; ziHtbfB9q7fO=g84j?{bJ)w%5Hfxquu^UTf?5~gzf*Jz(Se!u-a@9s}OH_W03HMqHa z3AjU==i~8VbMBmxD-9g=JzX0kw7KEU+BhI!DgrH=UPpLdU27e8vJHy)N*k{NB+IDA zwqTr@7@uC9RP&2pJrQn*p&V$%6&S-CBV_eM-&cvl9bki{($IddKY-K37#6$)t0GX;LBgw#^DFm$U z+b3Oz>$%GXw3xXSIXaVOrq0oeSve|3hyXR3xWS0gJAoqP5kKh+5SB*KUJqH)$@EYl zYzNKo2whRXXX>zF%zEF^(6OgC)l67WX__<%AHu3~gb=U_7tla7Nqgm`zg)|ohF zQlQaR99J1Qv$$K%wM?0A23t~fsPVx+{oC97U(4~WuKz;HpNv7t0S=5))~UKBkCQMI z$!)jGC>fE4X5i{#9gMnnQvWlde_KQs(&B%a{GVyg1}f}q7j#HY&tz;vt2pTA$+Rcw zAAY>|Ug*95_6z>(Pxw=+^>>py`S{XPTvQ@7r3@7%CRRmaEmbQk-L%kGQ1d1sg z`D!j`-(&?N^1Ib0o?@V+$Fn`vsVlW#tcl$NKcg0_VkSMpoCK4!CN%-CVy}H+m-=;@ z`GSOj8R1Mk_2E;R9&tR&zSoM;mATRTfz)+#gIgCuMhw{oJWBlMD}59=0x9=0*&z3- zQ(%J(ptHkN@DX)pjv8OwHV>+5)nMg)wdY67*XceZzUGdVPLwOTVn-CrYouejW7K3E z$M*ykH=IxqFfl~>BfD+>ApIO_sa3b(DO9{;C*+cqs=S~Q2zB`;V|;GI!~llYs-{&3 zvzk1X+{68pAhA-K2&^<9A}b-04=to7f%YOdH>=~R1(B>e)C#8r%t1wXPV0=2bVERA z+L@6MseoXFp_tR9aZ^fmSSmF%-&f@;f)~*%2JLIRu~|$`0(vN46c8gqOW67R^$$T( z&T`Yq=v^4C>`N^$k$At6tH1yJwi1%R`sq+F{dOaNk-DU4_z&y!kI+BfX!BGbl+@F8 z)2+^H5q-uZVT}9p>a%`ydp>wK4qm>;ncyjNl3HY!qe`zwYjuVQw_p;w;1vxD8;X#k zgp`F~Iiv`Qk{h1b+Vm=?i==^MDn}?*LULSdjLKb2bK`K1KHTSl=CI~9XDo&VNzCse z>f&ZeZ|FbB!sG2zl$*|?HMAh?iCJwI(F5!gQM_a6X4rJ3GV*kUivo=_JdTc)XZ1Jh zGhP`4g{1Lgy8ro1c>ZDYJG=k$P9CnXG)Ww+k-W25;IyDJ`wLg zWjCbG;U}Ofz1m3?G^^ZXjPU-;rc2qEoJKo$W4;g%{Zu-YaUkYL z_PICvOk-(?0NB9Dte3gER(x8z96@_6u;htMqy+gW6Uw&s5e3!k^qB8=_LGYyyVDN_ zu$Att-l5?G)|j1pZ)&HRLO#pUCf=6m(QL1ng+YZlGs}${u;8g(Lu&XbX8|v`U~lXM zlVU-UoC@sCV0MaOCqgu#J6=~iJ{PY{ew|9*_)a(19_OjK3bAKUNL0Wx9_GWX8NFFc zX`AkP>O#xo`l6|=p9i5Y0Na5B1!#~CTTv&FzD0-ToaS8uNH4lyd&*ClcsG{0@W7jmE>Vu0it z;~VJ@hu`)&LW&Mf@k8tS-ac>mX=SFQ< z0Z;%jAUcQwWZK44t?JvVTz3zh`Bab3rcOA&HjAA7$N6l}z!g`QZ@uW#4ac`3iIea2 zpW>5+NCF}a?-n}~RFK$YsOhmT!1t2(S<7-EzjorbRK3XUL6a{GwmNEvo1Y=ND?>6# zKnx^c8v4YJ9&`R&vNdT>b&zl?(jptGVAXuy-2(+5yZ*27XtOzn<~8 zkJu{FKq7J-6v&eY)p5jSVTzA6UXqS6Zf0YX)WY6@#$ayOiB{dMb<$Hd#5Z@%CV348j0sqTa{9U6ShV{a@{qT?X^yo|aJCLI z9R+>vcmDa0zxRW0ZLBO@#-{ETh}7R)S)10V-BA(5tSNpZ^etUmo7)Gaic9TcqOX`K z!bVY62c?;Dk}^p^lw5P&=9yyzD0o;<Q@b8o0HD{sA;G!fms9#$ zST6vNt_I7=M@_6j^i}=j;vonE053Q;yww#Pv{&NISW>>N6}2((#&-PBIqPnQCV{J!8rP=E9k)pPwI;Sinm|732r0>&SL}e9k#6e@xt-Y78^i3UTonK}#Z$->OEh^B zVI?7?-?Gtq?LT*k=h(e%kx&NfN#XaF-In--d~9=IaK43DjGs4RX!%lY!?bOr17lxU z-}$?H+qNTNAj0-n1x#8(q>tT^wy~symYulnmT1+u?(d%4-v)IJ9$1^M<_4Ro5<*qAXsh#qX9#gBJ9IZCda7poyhCa}7I8t1m+;;=WrXTD%3#IRdbGfbcDTAi z2c8!l8Wy$HkUBBA`J|^r4QOdckvZIap!3PT;``qi{Cst*mDf3PwQ;R(I=i(V5g=^A zRoE<{DamOD$eJtK(ZD>*nNX~A=+oT?tF?SHi{sv>Qcc5ZgQ9$(Ed}l4CM#Oyz%mE% z1jgpZkAliBbE&+{>I#O)k!6R+C?Qzd!A9+RqJv5DOH}{)-mM{`dQfce^?z}G;cvfh z^ytu3=_t7s!>ilbM@a%3LYgk94{0O=mJNV}yi{sPK!%uGsPr^{8run>#5t#_5cte?Zq}fvo+6ui1O@<+k_H*b9Y2iRx2SH{=X+Mk`z3B^3$A3U{Y9~I|z zuB7JbcpUx;^$*qi1>jVsE2z*FAq0#oSx}Lt%y@LP6;?Yvd!Mt|hV2-u$L3_|Mb+h0QY_RSEu?{vR9U9QJ+HuG_JQ031%uO(pV39uwP)?z z+C&ML&shXf@lZp=Oc9Mz!zoP8mB%bjbynLvnXS-R8b#x{B9cr50umY$00*{Vz>N6P z&F8J(&HeprrQ84I-rGe!3tSrzlch_l?8>PwGBHzt1JC1F!9Blue(%=<`t66h7Z!9~ zO<&8S2q}UN6n3W>c{n9`4bkPTnWl{ln#Un!;4Vi=v5X_pU?JdBFPGNhtjblrH)7JT zJv_B#JlGuY4i+}!HS^}XS_LW=3fOWN9$jt zBY}B-vxH;z*TxKZ(fQ>aAn;;WO>yfvQ72#ZR4TaEbfYGY1i)gQQ*w8ZUyXFLo2TWE zq;}(J^)khj!G+Bgpi6ZG*%d(I{+knXp6rL{*6a}h(sAgv4Mb8rBCV0V9In32Ko}@u z@Y19OYkaG7r8SX1B3yU{Q`Pvzg5?#xT&j1>J()Yi)QjRNy3ng+nDfQ<^m_d)zioZ; zTY2{$jrlM+FVxv3>L^5IjSNTy9Wca8hJp>mgb1;V?UtEb01-86s+RX1qq(c!q#iO+eREBvk9pGN+@%fI!sU>4Idu(4rCNXSD1X@M69bjX^`y&GS$ zBll;o)2HekZg0nX@N}3% zOLxoxOZRR6*T<~4L9XgWT#eT1s9$gqLkDUlh)=CjRYfl>YyrR%;2}P#CN(W-_aa=+ zaXZ!HY<~MhSLT-4C@IWLQjzQhzJ}KiHZHPrhYt7QJpurK{<*0C9_hbBhg<~Hsyx)i z{+pZn(w)Eh*mqJ6R+)jG1T3i+=Pbt|Iq-PKs{AHsm_aS#hd7?mKHnoaPc0@}uv5`t5D_Cx0}HXn1W>efKkFk~M4Lp{hH<^wgLc znuy!^2pI{Iq?V2a7Da+U?C8AWwcShYdv3gtUs?ZFv7(c%WVzw0uq|s8u>ytKAyc`b z`;0cbbj>Oi2`?QH-bx50O}g9Kd=`bAlkPeS>-df2{kCax9#} z4duQO7Qq?jvO68cF;3K+n2Hb(2}**fxj8l86i06N6%VLL7w|#96ui|I?k~g8B)*(_ znG`@=!qjZ!?2p>B*!eN|octG$NA3l0c16h;nlL52^>DhWJAW4S((du?n%9AECrSN8 zcOG*d;nxpyNy(*Z9W|)j1w>ivl*pN;*vIw51E0S9u6ORVPJthC1CIQz^yxv0mXd1h zLlK~Dzz_m4h!EN-)L>;bNeB`^rdH1PdU5fMe(hIZ0DKH8x>)%&yvOV&vDronu+H@Y z6#kjxLx-xUgT-;K=)d;9Z|d_lesY-(V6E+zqYWB1OS!CT8*1|)@3BPL!u=DsPh8&K z6`jsE;4|$ynlnnMR!D3>r3goEgR-jaPW~3U^Zw&M+#lb-Kan;_3$bOp)nXXo6lu9( z0T-$R6xKTf+Iu#@!N-_Nj%q`X2+|92&D*(jQsy-fJ$~6%tvPe>f%tOv!#(2B7i+e0 zD+tDiqi^HKGCGx;>K+}aU8G!kxM$9Kr{~!@zqB>Mp&##XwvL zCZoWoe5m2xY65;>)`*006fG^V|*-N$px37)S&j(#|JImJ}Txwbmt8EK+ItbAZA9XENBq>JSp< zCB-`?bo2O9+-o!MuQ3&S4`;V5`_{v5Y~$$o5H&g|%rfy_i zs|cwQdHpqk7Cwj zWR`7^3BM4Ig5d=E3bDXz1^pqvsk)!WI`^fIlmm}iyu^_Ho_-o+Rhpd5BK+)TOo9{B z1u{OVfD z_f_51UW_*Xvmgj-}GNfQkVC}n_F&@^W_4ZZ*V_zrp5BJl#be;)qY>_-8rAU$mn95^rptQaWV?{*mlP;hSd70U7}UKhAZPwN5a)M)UD=aiVI(({nyu@DYqgZ z9C~j78;9v|xdcGDmW(!fDTXZ4=AgTR9!dAP`nY7{`K&D&N`nBr5rJ>Xb{0;A;*}sc zED;IYpv;1cFKLTXlPaheYBXLU)0HuhiMKj`aXD#IMG*zke8mm!T7%-lKf)iHOg>nE z*=zPMm3YS96j`MJ)D%MiOx_@X2#ng|ohJufUz^*dSMsmovVVNnf;_3y!gciKa33!v z#jBUUpO3z4@%~xaahNnkh$v(!Q?@CPzz_og0000+QXQ?vzS#@8YHRIm^_*fK?d5Gt zN!$Igv^)_?Qg}-9$;1W|LjkktY{>G1QCpoDf`-7^c$aM?&FRjA+?u3cZFhqZ9P(V9 zsu9`!$WvyK48!lUo=Qi5_Qc)wS9E4fKeq1`mb<5rTRI}&@ch!PFAahXR05A5MOq1BCS1&_~I0VFCF)&;u~Bqj^aV~v5*LEDvU^v(MNosAjkCtIex z`>y_^%l86wtK?f^d>&8ZjE&cxK>A!gl-?R$XcR@gfE*4Z#r4V5xvgoc=B`A|8f*hg z+k?4SJN8VMkBSJNE}a344d9cZo9nj^3#Bc6_vQ` zp(5j6;@4=bT4XNVsi%cm&Tl`jv)3q&7#wmeZDJ-uM)hX5Cse2oGSskvn|N~k(cZCG4isT`q*s|u5^>72P#Xg4_GUR}V0cR%0Lpx;UpsS;7rcsE zizp$BT3e5^-H3+9df&zgn*FBGog>&por9z`3>tPW)(8q`ep2&#?-p+pG`AL{B`qAtSznIE_4shUT1|-4qd#aa zEgSfOmhusf3dJRFu~BwrH_T5buB~&vk+}S2f<#``T~;C7Ft3xhB9`pT#pKOeQ85#V~>C^dKo+D z@77ziM(g^tVAy*c9N@qiHyf#lqlHpgp4pTtSRLi#&kCo7`$kt$f+&JCA<4i^t#@)@ zv8s9qO7<67nkEv~`$-Kz5JJcuWs60z72lkinXgu@Mu%uO!ZIkx+02p|Kequ?w@Y)J zv3LY=KbR^$%p@)vI*Qxj&tkv)h4^W086W?FCY^2564f0oAl&JjHHF!q$*-MwPV3tX z<-O=QbH_O>5YaHTl}ZMhX)HkzI`LcdXzm0{FenNYu|u9I7MGuPwoJ1&`t$QW>~kjm zQr&)SX3xaZ$3(6?wv&|#aiK&KH1In~#r#HUIh##F}wX$<0tx*HRwluQzMgUmJXU zT1pY9?A=Li?%iam-ch=O6L*+8L|~x{REkv#ZzKXBgy%X;=z19_pROX!QYn9c(4bNy z5F?4hVTnSLU?PG{Ku^R%5+t-lEDAs>6se&S0vK>IIJ%sNE$o~twZF{!cisEdtb(t# z{P^C{7s_H)cvPA*btT#ptC!*#Mg4PT>HT)AeB?Z3IxyB?w4LXGp->5K;5vlfOWm`P z>z?8rySd!APaN7T-U!PiNyk>HHjImnC1AC{4Jw9M1rrb98X`njc|6?*Y@sb}pvE-- zwg{2PAPP#^&IZ}_s`GFmNT_m^!0w{2y#FruU)556l2g^_FeWIK_XMdK+mG*W4v6a_ z-@=;}W3Fi1&-z|=%>pc)hs6G0klHOiQTCbsH4uig#CN4$1p+(?Zt02Q+1eA_m$772T=0FUG1DWd!cShN1+*_ba@}a2BqFw310zs!HV^z7{r)J7- z)|_hJ4c2BLR14pK{!9G_=KB9T07*c$zt*#?JEdW10bDH?4tWW$BVtvChQ`1wG^{A} zxa6?sZESz$R|bRqBPa}FwFUoqSP+kE&{VsUpBYDpV})}Y_m~`IwH7^k=q)Iv7<+bq9%1Cg%ZVv6=Xn#~61$>!3q^39#USZ3hy7>9=6dc&)6^D>nD@Nj z)oDAo@|^kpw`z&6%4SKI*_A7;^|HFhoe zEKZI3Xsj$+JLaV~{zY#6i#wUoB}2qv1~I{g1SBkoeJaKBKwpfa+4-gV;}f|SXRp2) zo#jM?WTEGT!6UcfiUERJ*OJFl*(0@>Fs!w$gRCYi=qFF1kRBG=Y8M3uA&kI~0AO;t z#b?YroSU2Mizx&SyZMQuy!#(t-&0a2r1v|*n*KV(_tV!h)`3sv2k;^f?BH<@2-SQs)yLv||9UO+ z_3Q1j$7k<`ce_!Dy!fuzXbq+-FNGp z;?3U5@?)?{`Tbn83+TS0boLNe_O8zpkVEpL`DPUsqrr_CKQU zF+||fG^Z~2K{UlJZvQpD`8QWtc+ zV{@y%%S>;qEze&Lj+fkChMMB-#}}Phqs>Vm1{?+`OJ?Y+4IT(SfR+b=kYG?KGyt+8 z!G&zdrOYh#==9$X=MR_s?}D4CLq7W5!0Pe#x9p)d2O{|Xi|`w=0=<3)6-!N{iEw{y zxc%{)#m3_~$Ep&x@Z3aoL?75fDCQt{ZD7g!CpF5fW7eZ*FP!NQ>8A@rt_X732(4eN z_g8gcV*QfY-;4KelydubMy({hPyque%h&5nJ@Q@A>I7lA<2s%&RY@X#&mI_sw`KWw^=AOwnF1b$W*NXQ!li+%EW!W^Jw z0Wi^W>@LqAXn&Eo#YQ#qV9o;Yv~t|L9QDxGb$RUdbKzsF{c)=Z`8PwCof`!uc`hR6 zt8?7htZ*Eih1|U!pX>5Bt9{x^n}~*ugp;`7)LKw4U-vQxpY=ow;{Y+sFAwpx)?$tO zdw=uWbQV8&{Eh6ofOEi8(zbHdy)!J46-BiRSd3|Sr4v+i}x zzQD;BhS*)e#&DUl{_)t2wfUO*xlu)uCP1OUl2`~YMNPs`iTFO3;y(szu46u&iA=$h1gX#5ut``M}{z5L+nIRz8HE-Cu9SsXg27X-P!-yFAt$L zZ{*m{ZC}-s>SE<@Jm>5dja*osR%HGa?dx3KN-($VGw4^O;(Y%(PORJBNNlCB)#U4T z>!b5+pb5YB!p{5T`SPEB7}sY~bCfT|DfO+wgs9j{-Kv7ZQQC>C#^g=ckG6WA_6WVW z*+{Bc8NAy$>dx64SNzskYZC#PElcIqK&8yRNc^w^B!r~w$*aFazIpwPR;SDh+51R! zGG-?`v{5hamNM?`x&!J3eDraEwr2yMUA2sTZ(ki|z{s5Z)t?bO{Id0P`Z)LyzEV`r z_~Vs`nfb&X-!>G3PqmrXJZ$mWcS0Me+;{n@7cil1#?cUW28qSs)`_i2bd4n$p= z*27-=+sjX1e?1;{*U7{-Oo&m*_y|Y8u|MC;5sUyU=?i8eq|N8I)j%RC79c5L=tf#) zGb?`9I2!nkx8j=_yrsFCn^10R+*V@rV$guW4d22<5WX7NIT|=m8=dKJVCBdN7>YKv zG{V0oV6)*ys^Ocuv+&O4egDC~x5BLTe`0&Z1CFi9NB`0K_kQ@-l!zawW`!E-j3!&< z$>?f5I8)R8?){m$-;)B8`uOvz!Jyl`maIb&EcP>1sJTM0gAR|`gKb_zU$VT#+^B@BVm& zm}h*pVsEv@HisJzSmcmn)aPEV_CORQuuRTfd?0ixHbo-Ct%7B$G=LDIR>nmy(gp=& zV%OBl01S=y62WxU!5tM294>yW7vcLGEJZ-Cc=nXUL?W+nLp!2o zPkjkQ@l0bI%MA{nR<=jArrWl%rlsfKo$h7z@h zTCa_QLs~8pW23M-NvSP0?Tx$KFJ(vPBGsScB`WM|!@$Rxrx^yqhW&fcSNgI&AO}Fu zfetzO+_MQmcP9>)FU>cZd+EtTbyyu+!y{1w7S-5NQ{?cD_?aL%iNLC!4}WI)waw*J zU@67QR}3&LMKf!Cn=MZZMVmMpFO>NUril|SN}@zM_HVh(?XWa8nURiFiXxJDj(m;I z-zdN8*I$Ic|3}rw?{L8^$P5*PZQzodynsb)SZ=w;tM$o#tES%?T1r_g3Ids%D}P) z3Rp!X0Hz{1kf=mx5J6KZm4yxu1~4JQE_HnCPR{v=uRveR`gP%ZM?XGDsbCtK?RSP} zp1P)%zL^N>Qu>9e`&$0|T-AEIbV~^5W#-yJsi)mzM%+zm7ubH5|JWU@3e`jf(ybu0 zgJ7M-wd#fdG1I0zuq30>vvu6bAnoe%*@ucfaY~9xkr2^*I|dBZ|!Lfav8vgqN#b(MpbdZ&6qZFQY-Y!lZt z1fU#HVPsb+OIY+mE?no>w{gvtXYd+dL}UY69N-){fyhJv(GR2l@y85s#I(>d^BMYd ze*d1=6MAXC6T}p*_OVyl|F1B`{xa3S9J~W6Q5wZXt||}$1zRrvZ|D2WFWr}QWfM0V z1X)zGCR?%@cttOHBLyIUlpIo7!xb)Cf*tulkD&NdI-)wIf`w!dV~I8C5|d6=no<33 z(=ANJ`vqs=2-L+p{~Y@Zz3|My27+Kh(H0mK)PS2*NJUXPc)_7dO_;k+H)fhuCS~(L-K0evG@v)CGF+ox|UD&VK)mpvPpXUT)D|t?W;pkCW;0Mpjg|W zi$Bk?yTh3qRm>`@Fdz&N5GnvkLI6fe;m(leR#jV&?jYk6EdoKp#oiO@Kk0MIRqfAq zyS(GZLuH(_SfW~R9rM<2d`ex({Rr4{rgTP&A_%euFv+RWPL%{`Oxy&IGlGgvr9kk% zmc*({1Q98s9#8?@O#s6h3j@t=D;c2ZMR*&3( zCK#o9QyE28v@)hLG^wm0>MLD0i-=O?72dOu{ql|BwCsNTswZZUVQ);8{~iBp&%DEP ziAKvY?HmBeL=Z3VqE1!l8YeNvOz}c5`tkbE6i#xh>Pn2O_aQ@GBx(?)@1@uSXR|8s zMckzKxtEPsL_5sbrN-apYkuOet-Y+|KHvK?^vu@%X#M!Z@9%7xgiudpU~Qs{d8^#H z2xMd-Vl>#nmGMLMwk|yJ+lG#KaMFA13b!RCn;14O=Ao~VnH>5$P?J&?70oJ%=qEu1pcx_bS=XIqd|R1MyE_L_`1p05T=ef*2+oq*p<&yDYKZ9yqILh0Uirh63$f z$DY`8T4x~uti6a!?d;`$Pl$ebMqS>Ii8p^SmhxZ!|HkS4c~c>^Yrv?7x?rTB0$TP| z&uLxpt-Zx$Y_>QQ$jRKAx1xUf>_u}p1mkhR9YlWSO%0U$sQXv@R z0FMHRN{lctLkBX7?0|?%DZ4QJijD`y$0>SCd~)T}z8GZ>JgS5Np4uhTDTeEyDn z|H%J7ozuZ_vv&q6cw}-a5x6I-oEWu7p`FOkj8293e(hx|b&;dxH9LDanpXO@vmaLm zImt_xK4|#OrcIb8`Bi^)5hv%0-jjlKeM`f z6@qLHn-vr}Fa z{1B13fscYq@Pv{OPemIZN3_W^2y{6>1;W#Xp`QFrfdA9n6z#7U;SaRov;!mzSs7OKJDOf)CtvdUfTw) zBv^uc^Pqj1G)QpiZVOs~lc4AUkl_&kXbk`_CUJTH-cj zZlgXf5IuN{Ly$zscnIyb3DI!eG(FY!a#-K9@CEx@Exbn~?{0&0_E?ib zuP+JP+8Wtwr>;r9EIHdRG^&R@3YaHj#;J}PX%9VFymeq&{Dn8}YuH=Q>at>Y>yZvc zbxw&NZ@9hRxW+|uyA(;|d3u6@OU1O~FFt&E_rb6N)#SUZv(*KM;V~M7EBM7I?P%k} zpFIBO|9{Q`w|5Nn@zJ>LDxM#@q^lG){5E>Uei_8354^hDN7eiV#3*+4+ZJF$qoVzc z8`12g;!_vdsWboC+xHN9;$ik2W=!OMN+Vz>7=n7irU4?RA2k#yNJY6Q31AK1N`Y^q zD2W-83LN`|cmpR0itnCu)r}$bw0(j+bXSLOW@#UVrGqDoFdzuX0XE?F0Kn99AcARx zk+gA(p_+B~Stm)5P`Z1+`g7!aJ?^ibTJf){T#nMGpV!ofF%c7%fSduARd->oCEc}7 z5GgMyIYkZ2_OATC{a<@+u9t6o z6aX*)00032p(L#uC8I$l#@mm&%=O9p@O^oA1q)qaDbv%vC*`37Akmy5O|S|Uh%zhO zvd{<|k;S2bI|5@UJ}3+Rv}l;Yew>rI)!AE1>-1SAXstjkuUnx+ZX_%b0vF_w@tlv& zI)<0Gqc5;%N|BsIlGT$4c499~CwhBFwbB2XPu8k_rNIU%8OEq7!s&uc8*l)S=BF71 zhtjy>cr@>g?YHLo)b9$ms08{-`kzM0*Lyj*rzP6nfu}hly3zyd;;$PI9|&(aI=YZF z(i<4?@~^AvN=wbM_Q6S-HkSM9-4QXKInD18;21F*X{ncAJ#|Vm7!TOpkoLbAad^pv z?!p6zyaqbN6xFghz^T&55e2wW9aNui`+@`4u+SlD84-*XSEeJnw)I|}$V^-rp&6Uw zHAE+DZjfX%=uu2CUiMl@&B1t)uD)o0zJ6`ke;T`Tvx8xBDCG(u-}VtNpQakXf5ER` z!#{eaeht+kYYf7W8{xpn$1(c8*@%vFPW55&xxi6CF=K83^)WCZG&N=EU0#v)S9Lpv zoT)8}{XE8i>#<@Y{7d-Y@Z2OPzPnA2M-SXyy9Mv#4^a(ootDH1`GLUy#&c=cL{PEm`1=XA=K0Tp&P5s z(f8kY1%BiFQ{MPl&F7{u@@k&Fb@PLp{^gP1U-SB4FIUcOmRO%%k0(Zmw6wS0p6$y2 zd5+<^zy|aNO**0s=X1MXMbmM(}_b5-z``Bm2%Z(_5xv0~x+4K5A{_dmsIKnqFH<%YSPOH{3Wsl{Sf&>q;3AJ5n zB-jMwYOf_N3w2P+a$356M;oRDHTQ+Q&reJ^ZU8!<81V;*>pq!b04VD6TMQ^;!fu69 z@%B~JAH%TfB6-fQ@7mN+ql8;DO%Kq8sBBn9bmHwqk_i?>7_Mun!^WLBSgSh0Xz4n# z8^k*sn2Bf3p1IN7FPmA@K*WIjPy~wSuA$Wu5GI|pNSN)0O{GXNgBkRM7UtthvfCf^ zIT?l#Ai%O!*Q5L6dJ&pA<5|^(OOG;vp$uWn*IceKX>Q)O7f#_RJ<9}Gd#eVfKL!1m zS6QW}T-PNhu3L6z4P~f`G+`o=$jBIsDxYpvui9kR1N(@iBvQhWvZqL*%+;FEnxZi)a`YKne&Xq6O!rO_79jVEjP&p8D&KJ}`XByp8Wi z?O5S@$zD|Sg~l`!X=#zj4tqSm@%dQ%_466g3nTSb-#!s)r76cx> zl9dOf6hv%E1n@jof1dSsrLVhqNy4VZXNrvCJnhG7iR>Nk6@As4|LD5Bow#mZzF=bu zl*$NUAxHt1z#6_-5;*%t>decWLSjHl7#io5ZJ&Z`>OyR#h@etTn?OL6f*Jd5JxLvB zTM*O)N3Xm-xWx8`l|#0cUDQ@R#FNy-ssu4pa8rqSDBoZN0k*bAfRW5M> zR6wOlxzs_LU+8U8Z%XRsrv)9K&(h3?uOk!eye6nV<_1!rMR9xXyR(I+Grlg*m_Cvh zV*^f$+3o>%N`bg$Juy;|i%Am=pe;ouXrh2IA{{g3$;+Bd`$l@6yj<_9;5fy~dF`p% zbbx|VjLQ*=mk9u{WTHp|xeP^J5d$j5FaQ8x24#oLs%?9HxT#7& zdjxddsZQ(+q*7tETNt${Bt>8O2Op<`_g%y)D@tq{XJBgjlqJ$&{V1 zlU#A`K3%4*2~}=OY6u8yq!DVU43K&?zErgC)^C<3!H3A;7mIOaGi-UQHijjPs zT6D=Yvfwh+$KSa7U9WpyzY_p39>2Ap`%hMQ)_ip!2e1V}k5q*!7^}ud9t2eQZJ)6` z4A|Of4cL@Gtx1It(1N25R21@1$RJvnP6}WGD#|e>pCHhz76fRH!1u6rHqy$>{4#7IiZ093+bnk^PN zH8KT&rUnL}cnE_wCdnp1ATfjpLkwz?YO@MaVTCICtHOkhcu|sBkL+Lfbv2fsVB(l^R52#e<`y8Ym^bVi7+9I7SH=hZ`BCFUqx8 ztYS3coPNh#x{L-Id?x3}JUAmUxkRUG(dL2!@=innw9h~8S71JPAYAuDn&AIMLn*k; zny(Jcx)7^roX5nSfywihTC`Nt(J`?i`#_$GC>$l-m!1_*jC73e*r1lD&mL8?qAO3O z@6z}z&;Hce7kMEZ1(jU(>Lw@|hFqKOj;a#tZ^N3HdKj0gpQ|lH^zS;=1V_g-mOhmZ5E4s{a`)Wb;5w?lqS+R zd|`iypt7}uMAQmNKHF5(dE+fnyE@eN(2Ye-))Bix?FVVJ+qF4Pvjtmw&=$w9LxWfe zYyGb#jTpdur`j_^A@b(5w8EKnEJ2YIEm^Zlv+w=%Esm?_2U(|VcmPzFy)>;XI}rRi zTt9c_%idQ`9F}ja$DKpn6W8hG_w0G;u|B!7Y;Nj3C$(P%{?U3`kitb3{NPUAU9XqtE7OzLp7mgH$dGKO!&Tv8FwO^# zpddXAq>)Gwse=*Xf+AC)LZ{y9@Fvrc`_#B|ytO)-J=Qlmzx;H^$6!RHNN$|_^E>>Q z!HFjFX!r(h#^RF$oZqBJ`bb6A3Qru#*Udp;ws^3bIcYnjkv^Opda?e}_?IX9A1ZJP zw-)cE9p5+dWz^dMP$o(!n;aJ*uTc%|JkSC>GuEnq5iu(xG#IQ!3vEXL!_syVxq^>pjcOgQfa<4HVMgWQX3M8 zlVCA)nl&?})rvP9KQC9V$M@#@PP+~}Nu(w|v&A)2d~y+-+tFW#{A@1|+&XU+gLXeB z`d?3EKk0w8|L;PEeML{9DDnb=#8J=A%K_TetDJfSF^Cq}2537vS!*4Qn+o_|G$Wqx zIkm54)~nfnGGD^v8tY&4`yicX`@D~R^J1~1raEH+)aK*S5+lFRaEWXU7vr)YV?iaz z6pY6uO5!fnDHcP+kRw6wU5cgalB}!S#gSwGueR}jbsT=fcYaB=|8@xf)!;rV?Il$b z154t(;iMB}X+NhI=o55T92|NGVOqb>7z4H)yBHc&?%_J^;Ov-Ds5HoAfK=3Zm_QUy zbXW_^t4J;bytz2UUeva!>z95h7ahh|6ea6Z!@ZTG4@;V(tckQwFGd<34iN2CdkxSA zM1#=|1W_&k+N^3w^ncgbQJ!YRW*s>HPdUg(PIGGKgXc>Co_}6!wG_+QSDDgbZiaE) z?tdKt_e?%ddhNP@1|>0G0vaQWGSbLV2@voM*VXzM%}1P{(#*XdG5FzCJYKu8^4EvN zav*>J4Wt>tKjOC+a@)82?VEa!-PeY#2azY9UJMW=Y#rR!wCz}yp}G?9+pkvR`Dp1o zKmVx7-xc~llEv>1^xJ{D0MXBy(*&$fnO~G7Op63*FbyC^Aq5!P2?R-0x~CdNJr{g| zY6}KHCJ4epu&xRZxTNKFb{mS1w%I+_;+qN|pY~6i*^-R}#16eQYZd{QLjY_6y?kyo z($3K_h{a29d>$BV_T%MQm;BP(du+pUm$=2+-CT)SD^3_>MIpp+R|Oe^ScX@G0b+>N za-_#aplzpsrV;Z?lr6}R=s`FvTI7!Bx&7nT=LpPkFIKlceS^rw>HBgid>e@UJHad1 z-1HDA&IJDC`}68$@Hd4pSht9-A!giVu+xn&gSmCw)VJQAJ@Rd9-^A?j%IN2Ma_20e zz`+G{B|I7=UDFmBLT7_U3}zt}H}BK+R%QPN)@nx0L$*Bwme5Eg;I2n`l}(3do@idN z9*tI?-ly_gH=;qqlL3T>1_-bLkwQe%7>StdL|vVU(dIxb2~9u)kS6YUhyEfH6@zf_ z1B)WYkY??SEb0iS*XZ~TfnR_%m_0=PAp4PAj zh;#Nz9^Xo8*{y5mYXOmo1}L1sAP^7%pacj3!0;1c*B<-qOP&Lnu6VWcBkPDFq?iiM z^LaGP(eF!hup{;wim-yEW!Tlm4+D%DgKi@=Xj0Zi_XH&8{G|HZmbVWqhJA9^fIyuzfrrY3Zwrc`F!*6+T`~Ym*}F|T_uzXz$7Ph+i$3?6 z&0j?6ztJuUAw3x@S}v3DQwC&{7|jE$Xo(0LG+DZ5q-F-$_FZl}7=e#H`I!3Gk6=AN z|DCO!e0Sda`ka)7^)WRtO6#tQEE&~+IYO76gTm$Tcd??R9)zN2?KLBBZ;U?eS%D8T z@T`zH7#bwaTUX?j@nT+dn*zdWu2e&&_Vp`)ijvt+#4SqUm`5QQ< zyOS_M8q-nZ-sR4dRjh^n`C<%PJ2a^PfpiO{*gRW87 zX3+?#pKy+EM^!M#w0tufy+`SVM!kQbM^nc8LZR#Z%r&1|yl{dJdn?VC-5)J%h#*@Y zN*xaLV*G)?X2rHwFWX4<#ALul1tTJ3wxg@_#qiHM{U7@ff0s~$agK(fay7b7n<5al z9g=BRg8rT!8jG0_0nD*^rrSS)?M6TX7QncJ{3+?b^-}&-JD=@ib9AZ4L5M0sU8u=BpT;p4H#VqvW2HOp=||Nc6*{ zLQn2dt&iGr%#Q2z7>!;lHsyMlt>%6Y$dAjTM0FS_4UeUvCz>r=9UW>Px5fOE|2LbEB3|nB4r6BSd|2kXLFR&w9$&U)F=W zZ`P1WD}eL#Ix^CBby{;?C8tCW;h;3`VP-jmE<1#1s`yYuP9TtxMX2SNv1(a`SY{kx zMN)aT;+i>qXkcf(R1#VIM17<9a?NhZG)uSuX*s>PTkODz^9^%t`*iQ<8fP)jDt^pc zXI-(N(UGbV3=B*$4z+5VUBx2FAM0O724K z@w8I?0$!7g43)Ta92;YF-2JhvJfcK;_2pUPQ-fJ)7V2}*Dsgeiv~5@y6_LfLYD}+WEva^vAIF{< zR(X3ia3PVAQx|4=t%XY=hGC&VA!gY{0lVp{B$3)fS?bw{R6;0i;_8W_)yOQ2py`P? z^jMY-sTC?qkr%bFY)A%Z7M0R8Q^4S%Rtp!GJzVqG*CHMyg|((A`Nh7L18OA<$AAt4 zI7V zQ!*^Wjv-f7N42}VLNvY6P<4W9UxH%mdH?vC`^olu#4a2<2)YzNd-wjLduD4#%?7%W5my%CRSGj8NsrF-xC2VQVckHT6>^cu zm=PLJBrO>A3F?-SMnne<&@vy|Smq{DEfsUMDcRVyv{xVI$R{57hftH?ikdR6qY-N? z!Kk&ASCgR(OwHZ-fSRGC7UD#W1TfG#c4(}kC`1izrN(4;Mq?rvXKX!_jLH@c&s(>r zHNWY}hkL&7=LLS=ExAqxi*r_soRg&Y*aLQ#JLQ($BffQc;bd?MGN?mjw^-+>bJNpu zf{H3ZnkuBRqJmVWV8Ei4anSK2YgD(a*WeC8h5Z@xx9Bfugp5{)uD)G&*7tSMBZ)*9 z&(pu>y#SY2R_as8D$o(wjbWYL0bB70c!thxk4Ot(sz^8K0G#i7d%b z8XWKl+@;9jK4ZG0S3LOpNkx5lA=j4 zi3a$-z^Wvlr7d;cCYi7pEFUSaJDVk)(-3mPbCDT8h$qFi9ZHD}pGHf~iil!VoX$^B zk@189-;R!2Q~81aDa|J^X{#(65`$I$t}nj+7(4Ty^)CT`5Q3}L(gX%;;ca7xKWgrz znv@u@Q)zhv8$fq_hIiMT?W+?8U0(nBm;U_I@4q9nSL?R&_XB(#IySX*ggnLybVI%X zNlRE_?4p#r=ts-fflGEcO!oK!5N7rJGHjI=78>wqCoyKfVaxKgMU9ere8xqep8L-9 z_-}RfzdK%_{`KU)c$4=_%4=w55>q-ll!^IX#olWAk>o{#kxkb#JTqI*FpJ8_&%UJp zzgYLP{AJ=ks@v!QX0ck@=fO}e+vuV1_Kxw5tUL*FhArFNd>9PRJ3Wl4Y} z@g^U6;NU95;HfXUqT)}j%HpT|f+L`c5Gr*oN|Ml8ut^6w+eKX&dN2k(**WKIUwh+n z=4^D^ruo=+8=1YP&=7*cTrX9v`AhIV^8cdW_Zh)uZ6(kAKc(1!A_ylaz{wPh zL^|EbYiZ?JKGERD@sLJ-N$z3bQVmryp4vxyWSHe`rM>Sy$0%HyZ9s>nSe+anxce+R z=T!Y%J#HnfRY#h+3kc~@)*?KiLT~P$`c&on1Ql*AdJAWA{5QA0ITD!3yE9JJbSjvA6LMI3GDiH zJ$K%+@_f|uMfkjmpWU8pFJsIlHz>W+~78r34G|| zT9pd36f4}aUmOW$d}Z$8pZ-pN`BKluA?RH!m@BHe-E&wZ)esF`P==DA3SslGiyJO9 z&h8&O_D)Vt(0e^AI|A)unzx*FKZ<$yy&zbp5Sd9A)zN{(t&c_s{M=|IuGo<{K#W6=9Mf zj-^eFnC8FE;VIhea^DX2+Ym2mK68RE!KjPwl!h3}0IW@Ia9LmZtk-;gKi3ThhBWr+87h~^|rzgywrr&kFn_c7%x@W}h!vj9{%VtlN`&9~j!)zX#p`NIge^#P1(0UJ5XeSDGS6;@QQN{%aBAe`jvppA z;LYjVGWOA+6m~LO65!3-3-l?2PHu7LrheBuU$;p0Vn6jlf4LejNMz(n480!T#%YG% zBj_bQrm&v;`1!A&d*Er=Zv`-1f^0}A*Z@HQ006`aQ_wz)1*<4)2KNU&9fV@h$u$ew z{oc3T0NdyCdnvqqh;Ih-PrpD8Mmnhlk?Z z6_u4wcCoo>6k(TveU_p8_YG8ewMbVIloW%AP;@qzBWe1bVRVXnx=FVPx|XptK5n~1%sZ+mz7+?nR?FK>rQ-U?x11e0ejIy*~*~Gnkxa;V7zSB-f^jDIf7_Hu2$d8r}+tm88-lT zFgvuZPraS==EG#!>$89gKYa^`Wn+R30yF>s000G;fJmOEj%ZoE^`5L)c*+t0wjGoJ zx7#i-PX?XAvd6({^-!Kt{pKeR6gx*KU)G1WU!U#MhPRkpKEyT|J43zyy=_9yA=}+#4nz? zc#ofZU)tEJK_=E%qfNxB|4U2$)Zt~35yCCLjYjg42N;2KtqZ-qx5sppXJoB>c2R}> zIN18+ZA4Ii$<^5qje=rSYY%OQ!pp_2i)pQ&PWbmm@SR`k>xzyx#0rUs907u`P>imp z!+le(A9`gre-9f!J{_xBIW<>uR*FZZ+Zh+SfzG7b?RFs-*)l?CvNgnp#?UE{i6OWr zwzl?vmdsxxnwI2x9_Ja1MdQ{ne6g#3>*k@$HgcYfA`K-!ze?OtEcNT|^uDi#_oWvY zFWaAY`Xl-uocrsLdhhAD5I~@k6Z?4T%OzV(KzO@@{Pm9pSGZFiPtxST=wZDU82SC0 z?J!a>w)L^EtG%6e)-gMfu=%*n62|X%+gVS~0$B0^N}3vqg4C(s8hdR>xmfIdU&69? z5&Klr)2}$cu_j_i`&ZqKr#22c@?AwS%}D6*n~Gv(fpkRIx*bfzmA0;S*>ho?W3mrN zE=m3|gy75T%UOT=&){#N9(%uAJKE3Zat-<2Ww6|Wx4O=;GGE276EEggBH&#D~p+X zQcNHmTbIfY9FvFj2nw#U5tt@0ashbO9?bL%y?VMd1jrc_KPx=OS_*LoZoK_MB|^-`ro!Xs6E zm^;kcLe7A`nNN|c%ovFY7%8p9WbWwxYQFby{2KvaPSoPgqQ`KJjU zpYJ2dSF(lHcP`Jv79v|}l6inQwt56W42eLc0;1SJS-6f$0f`myZKH6qrs9-pMio>~ zl`9zK)4@1qvM&FAR7D!WA;N#o`V@Rn+o_LLgJ?<7YdXh2tRU;2_P05A-Mck@Q5OTU z>8$t|7uUnmh@4D=1r9Owl3&ljqW$X2(R($tTAL>g*!*6ub$t|7vpSiCNa9lpX|zX{ zK9$=9Md?IGDwd=nP3g!WVC+57-kE5R5Nk0;DG@+|9E2nxSma7onYqdUP8W-&yf7bn zQ;5V_pz)>X)WasNyyn2oYBLRYL4t@$ zN|DwOkiqm9@E3ukwe>Cv5FT+q(?I7Gr4$OR3(;T*goM_HbVo&rr!MfUV z8q^TX$(!coEPW4?V^y3%qaW@30Us-7-@V->CYZVtkLg8_a0*D%xB$Ya2?sp-CY=-9 zU@C^ehH6>^c*8VPO(g&(&G*(rCNz0$i;Q7{P241sbLF5fMRUFx_kD|ZRovR4MbKr; zY!9{?ZVE0YSBloLj^5V zklfZ+x(CmAxiLZ|jiKtJry8sCxSi!e+ z>XH2p>xR$mZk*dtMk9l-CV!qY6Pu_q;6Lr8Pg^GHcmye-$5CrP1Jcf-!E|&+Qm2no zXQ8YfaEqqAuQJ}}_wT<@&M#n%J=dw9ew_L7X;MIg1!6DPi8jQV=9S|a30=pmsZ}>j z2vmbZTtu&+)pBH>wR`K;z8+s3ujAVX-`|sc9MFs22cW4guna`br%_XhKx*Rvs4_;0 z=mx)Q3RvBCN{Pr!Xitx2?L;%^R`V8H(hMziTFk6(zPRdpPu=tVwBIZB@=wpoH&kWn zyG)b}yPl>UiOI6kCuRKHDysyn>My4J z$otql9<7)4Xuc}q=Ag%&9z88PkDmQ&wq;ExU02z&eNMT!)an?e{(GRY_|X1}8eL{B zRzD85-l~EK7ku>S3sq`aiUO)&sVC3#cYJ;St=D&Zra4D(K@N0oj(nc#HIDso;B54o z>9kpYUgtRql0@hQT81c?A_~T;)Tb&_8I+DFcj$kdWF;hs2n3L&A&Mj!1j40RDdFoJ zi~>lBSilG@p%CK+JHum6W?C6G0}dS$rz(*qf2HjlFt6Dk(@D{#@YE*=|vmsMNq@gq0$Y|OK!Nv5D7_$!oV7} zAc~Ndt-L3oev2OuW4fk!ck@x&Wsn!J!i8cim7MZSlo^_Ly1bUJ=w1RubFlQg9XdRu z2-BVQZ>fAl!?T=7MR*ZFc+vP1vvXAb$076@!d&k+v|T){$2jz{8p?M_NrfN`YvaTKEaAs%DYa|!7YttY^y6uU#-kw zmK0+}^As7z_W`t)%q=FJ+tcftHAE|0XCd@P>2HKRSTYrIB{NvY1|F^}(~^-#y}#k$ zKN?YZ{}b9d_z2a;ba)m2Gy)kT&Myyw@^~=44h09j-OsPt{6Xq9OJBnMVMR|>}Zg&NL*X!*EI3uh#Y$%Czd8DKPBlsrDpkWn)C2YU2 zZ(<4MEc;4#9phty8aA{y$%Yaxn<$lV-rl;STJ{M)-Ka}?sWUaP&(f0aQkT&CH>cIu zsG z>?8sOiapCOK!i!bY{)=W_-ZJuA7PSg_Xe6lW2>|gt~65m z_oo)F{*vnh@YDx{pfZTb5DpYv!{a32JWYHrqC9&8`f3AHYj`lg1V8`;088v_&Q{Fh z*TnT};Ck5>HcVVoZNZPPo=EW~x@xO7d{`7p|&dgg@hzT8fx%}u> zU@m2#`*${1j!RBAXG}eLwmyAW16`c#``&$oY8D=&)wuMZAIrZv9{nYuf7I+>W#Big zmYHHCT_xcl0aMTkQpv`E!!G1Jy3andJ(ay<+dJPSpxiM{+vBYsg zB8UN!ViN!{0_gPiqGbrI=f5@!-uLV6k^_M>xYrLD5nmZbeRgx=9@_rwzbC?R-sEs zvk?)`D@YU@G@W1)vWn@@7Lt88u%7>Gy9!p`+cUvK^t`*eIxYUs`S{&jzcYUG)${;P zK(W8rbJCs;6+MAfU{C4;%Es}K?OwLO{epIJf{`n(kNPtjA$<|-(o$&miwgU3JDXys zI_J72BalAGHzV7|3Tx$WXdewmDAm?8n`r*9htU}gv^m3#^+~c}%2A3VL%7eObmN`? zMo*5d7q@c5eg4Q>u*q)zt)K+Z1z2DDwAXW@zcbci)828~8yz$vI!s(WfN$pKNv9@o(QzD}An~m2yk7MT`VBO3b5pZqW9@U= zcVz~tQSfcFL1nYdY9(%8r_5{_PM_|HfgDPgs$~2oc+<5hxuUtM;cg7LC#!FLn;-wx zMe3A)C2;$2<~tW@$FyP+ON2mAAzQ@oBk!N$iF?JP)EFLiowX2CfS&Y*_zDyiz)D2L z!CWViDWT2n2SCV1l<9%FLiO6DOKf?>UPMvivb@cSnxq4^V) z<@t-j#_#i0FZaWjD<)$a#;CMXLo@z>L`Jw~BuRCh->)@BrRSD5s#OLnf7OwtnrvB5|)yDpqPn^OZxKte?j5fM_sEF2%5H;tWL%c3h4gfEv?)wQ^>a5Qtzv#&|gIXJM8}n8_B52Mn{(6fA(~3RF@PKmxQX z5F>@QHHUyg!zhbnBphpTIPc^qhx6=k>xIW3Nca-LQXZt!QKu!mhz`|SF zbS#$;sh!W(#$I{v^!oN@yYre@s>bQbM^|_*plV|f?X@tYP8xC^gL4$rIAR(_Ky{s) zh+sgzT2N5N(O@&n0wx!Iy?UBQutB(F1E;}+`g-!758r)_x6>=VA9M@X$d1IlQkZNf$%f<(oH!SuV3HbzAPt3X-8+ejYa7t(g2ML z0HBJ-7nTm&(x?YJ2Ql{v}EP&kH4 zuXwyi+{y-6NHomYudw*ZcpJt-U+6V;W6$?&I?- ztpF9sq<*H;V4ehGb7vZJ+%)vu@Vt=FAhvN*ZY=EVw$w$Jo0==p01ka_hk#So!?rq|$qM76IN3U5Y($Dg(o)_)`EJb( zxm;-_3HzrGaXb5Yzy9UBqR%_{-jFTwvnwK2uDi6&v*(2waRieLn-qjVpnmU-RKBId45ve?C|CXyC#YB@L@Jf>C>PhJbcC3>@c8O^>-J@4rvNY(#>a zv|R6B>7^&9Q?E`;g<~;J2$36RfQSG900E1UkgQsJg?*}**zSsidW`gHCM=Icb@X;I zjRUJw_H%^H1_dadVa!6>xAKKnX0X+Ms<~{s_v5{obAA8fp8JpSh!t`M$IFmrLEPbD zQuQ>Dh#7+fz!1f1xFixmWQ-ygS`;BGY;~VU!-PFj^v#amfQ~R&(y><7j;chpvbwtx zE+wW#Dcbumg4v2!iAVsXQ;AmC(s^i4l}R4XdtaWIKslR-wB%R2_HHXjkSm@`n0k5p=9Z~ zM;1Yvip9Z}nrT=aeavSkX~u8h3x=z!QaQtwby3C4<&0MS zY~Fjc-qEu)SCh`riAQSlWa~sE-ILVB71lP8U_u&K9(jbh)$!!fXHUMlp{m;%w#whs z?HTh!ua|I#Rw^2h!$&(hMxH4mfGGa$>inl{bg5A_2HPfOOg}SSpX>H4+nA$S%X=v38+X24)ojfopTH zAUDBy-8%s`jlzf;1ZokY1kHmyO1k1&f+kvS&g0a=nz^wVg0-+0tOKm2o`6723^d$O z57+XHfXLWT6J7AiwTkE=p6K-~j^-KX+dHh5JJDC7CNqBH7RC0&txoJkok(NSv^*8O zjVQ|T8(cpNE<<{L$U>Ho3P?1N*bK^(N9NDN`g}8nIxC`zaGXCkz6(FzwcGJ1zVPum z_oE6Qzd160X<>!54_<~QGD^p?O$z3iq#XrH=X*ivvwMdWt5>VN!u|MvHm){8YyPpc6_w1SurENw(K|5k2MYu8b#l8XeHbUKyl6>IY1F;$F9+8L^tmHT0aN!ULtNEP+y#X zr9lAifyLk{q@f&iQ@5?5#H2htG8@TB-&!CBnh)o z`|2F!s67G#U38FAnifVRZ---QOp$x9?L^PVb^1MwcMP6M-)eqWdrj4@*37SWXKv-O zs~y|xw!!(_YcpL$EVxx5xc}NfFfsek+RznJUG&| zXxhob2m|1r9efAx?gP#ZKopJTQW~l*aF*kOD7uTMK&jXE-P6KPHeM05E*k@vU<(+$ zU9Aci6R{oOIvvoBnynXg{wM3{{aT&p^ksK#t)+0Asx(blIj&s8wWIC8O1Y0a>4qfb zi3$~F_uW^_vJ31h{m0nj9)#2|bRtFAji2oI`>2nzU$BAzZPPi{m|^C1Jg5EI(BSB5Q)gX(zl$bq zy)J9z-b}@{fn~8Ibt_s3dm`RLhlGhE$k#LT>Fvf(=G7&mT#hy4(TD(CE(^Se)XH7( zZKL+FU;J3T7yaOP*=MAdVHP!n~&^zn?T*H0eM7S5aH1+qKORBb)i!w z@}SYUZ`g7=v;O6&zw&3hnz>D5Bk`%v<6#iv1JByk#&0**A6f1uPFvX*_emHBOnyt; zTo}+OB_T9`*%e2*(qU*B8f`J{HpeUxmO26j*sQmWVz)##Pj2gOm~R%`gk>cp1|Q2e ziq^GIEv*TMb3wGNexgr0&~*# zlX;*OkU}IWQN_1Yd2i_EXI{3R-wcmFeF|_#K?$}OdE<}J$CvzC6S1?fJ7|DT~+2!5y2Rj)K)kklVCIv>o(njdNV$mY?$V9tF-g2 zYZSd#r1d%P;r{I^Ia*OTI63OVr2xhX24#rdTx%|j+_58~kheu~tY$o(ZHhCgf8KT( zMT|2Oz2CC3W9wbA3U+bs9#v{u@kSz3^MTUN{B)K|f_2 zUFkmn{kDT|;57W~bQTk1j@Alg+AFt70mL&qeLolJ>pp-5wNv&o*Xj&>pl<5zweaMMEX5oUXS&y}s39 zaIxq+YW!x-X3J^@9fwq_z^oYUZI5Rx34=sHg<5r_RwV!d0SFB2uPUcPL78|5rWz_5 z^F!Qnj_O^8XAzcBv%th8FfpAtfySW{UDO{oFTdKJ8h7DCsr}9Q=C0=K=nI`)zxwq8 zTpN`K^OhesZ(J`%8{R^yfuIn8z(Nw1LpI3|oB)-eZ?|&jB|MS7?s)g+1izL0)A(>L zPR-Fb^&%kwhe4VMAS=e;^r}Ubb!)v3@DGp8;(YDBVuZL+S-c=kL$sM6&9kctrq^e0 zWe<5uT~Jqljpo8STDd0~>IzaNL{VWXAj3(rM-{S=2t$KqfCqY`6d1)ANY4CR5CF1p z2UDUOE6=$I+F#KxMz39X%VNil7!GmbOV-F~Ra=i}P|#XUU>Ol8oaXeEo-(}&pF2u# zT+_mYo5@tLgOm%IhNrpY?%Z9Ehd=oE=~bVR6zo*Q3HWl$he=6M3Q-W%-N1%S1d$st zgm^AocH@w?O{FJP|9B+1>BV;oxV#i`6#B_c{pYyk~Jc~t5xXt|T3;#{PotPD5;iP_dGED|V| zE1)1&#ptm13_=8z=nT08HHg_iJ2~Ee5nCC~BhL{rSOfw1Nt6!R;@-S_T)USx;J$u~ zs#)8dqASZ9cJ*o({d&Foicy<*T0pb35c{Pap`B0*IP)BJgN9hA^{kuTL8iD#rZ5>Y zB`snLCP?Mr-_VxMIA|n^1pzTm7^JRX+0PP>n?YyWi{&Tp;{rdC6CmAvUa2WRAte^h zmT9b~J*qA+Sl>ly?D!)VgTY(^Uye@aj00f%Ci9$sedi=-+h&zwpYBQ#Xk+ z$pqYu#stNBL&qK5%nDaQl_CoTojQKl+1E-MnQwKUay!*W<`56_WfH|#?r~Eq%>1nOAkgo>NBU4F= zb$wljM38yZq9%gOVHKw)*1dBikc^=91QYhone!d<4N39yoMh=trONc>P}6l`MQ*Z*)b;?Km}tWTS8A=o2dX~ zw)}T`27mu)>=W`7?EaCN*3Cf2;IlX+*h*> z-}aWwXU}q_FR_dh67H@2;KN(==^lwd>G(s(pKpf4(~ipov&~Ixo8!uADRVH;qol(H!Hyq1v z@?Z6aQpNb0-U)3wrACv{pYYwRSy>2NAb=2|I$C3N ziZ!>>UUeO~CLR@bT*H{dFvqv&{ATxVeLvRMymnL zWQs5-U(CvS6}knFZk5&|kqL={Kp+4B60QIS0Ai3ftr_{NeVP05COtF$HRb~+#Q+u!@> z_SRpU;n_cTS-pzq$8zP|c8pdu%y?x6va6Oh>e`^OL9L$viU|+HKAN}Tvt;nk9$xaV z>1EVmg`k4~N2_&;`zJiaOWuQ<6pCehq?V=uW{zNBB!uE&=wvLU+2FSo<2LO3J-|bY zOfe_>3#8e7KI$)->u)x}F^w8fs$bug2hVD9cY0FP#v&)_DuIfDjmJ2jtRm?kC0NY|d9VYmDc@4zKm=z*nZfy=_TbG!r9zp_IrL z^_H7oi9IInUxYGn^2e=s3ob1D8AvPZ=0Oe z)nVI!=8eyR^&OxNvjt3y2KA^od>TDa)NQ8UGOTuO|I6XI=S$g+)Wcau zYSU~xozV6^6GI%kopJ&*>-|*;^YuUaU#)&Uvp*v)zZ&+!bhiqs(5n z9WFNk>YkH}@2&+^UNgtW%TM?D6pkM{7kOMqo(8M#i2 zApH3FOYFiN&{EwNi;Z(SJv?pT<^PQ94+)L?W@$E>ePCp>@oyziD|{Nv2?M~ znH2~dG_gTzXOTTJi@X-wGL(Ih1O^I_avDu34g;(MGXlKO-=1~u9UJkBBP-O4=qjHw&@d3-8Rs`rb1BE83U z(SGh%d6l15taV&AnCJccJM)Jb&R>Fe*H&6_$VK~Mk5;cYn_Jq?ylV-Ek4g3Wm+Kab zh;m{e)0}gh&CV=zl$;2!t?}xNUrak_4HS=jKG({WQHq;3i#-Lk!JEiMY&XqVBjr}k z7A}Z|3X23WgT2)?v>f}+akTyVZ+Luiuy70cQyzRSf9f_X8a>$LTN}crlN;&gQ@-X1 z+v0fZCD0?!V~u2#M&dQo-1csY&*@P>_DGZmu*oC75LmrmwE7$3|H#Jvk?p8IGyTTd znkGc$XI+-+2e}roV1=-*rdl8sX6zX8bDuniwz#g>;6|O)fM6sjaQRe*wk>pvBrULN z;M)+V_nJmj)OmB?W{#^ez81IqD0VaaDfwZqv%w|^Ms3X7Sv{2yIUE%H$UX|E;n>%_ z&3N*fE#$TPt(Er6Hk{FTM>qr^il>9+KFQMr^6 zBpB*7BpZ$ps;I+}NBzK~b~9(_Fr++ce9L{!bOd=~j@p z_I$FAN%C5E?U6zq`_j=Y5acsnx`udhc6s1YRqm!N^CY`U&llysJdC#Ny*?VvFrMy8faEvk0D zQ6A}W#8)EiP(wAb9@|ja9IYY%?q#0L32U4gU}LzWFY%400W>F`%}%Q~@Qr7#uZlI_x7@W!^gOh0$^g>p^Q;c zwd%?HhB8nx1{p*YCNYG_6EGk}Y<;>j*bnnKnOxr;{kCrW(E8!BIJ$rfRdJCjC->h2 zPHPjC7eEsx9l}z6Ex9;w4r;=_IU<1=CT$H|(!pP-tF)de22;&_`}YStkB0bg$4-z2 zim7;MdV&w&fgP#QpdaN6VHp*w*?e+GRGw%GGq#7 zLMXR%glSijfe&V+oo57DVrMmmT+CN&DFGPmu)4FO03jd^&9;DVwx3@fe}0A^d02T3 zXcGipRHyuwiQotx<%ZJSHiAO5)>UpxNR*OP*1Ks}hPp-L7_k8tr?&8CF-b24Q31`!q+HtK0~?C6|giQZ8lbq z?f_zG-glGn4DU&gaAq%+<`fMg;}On3%1_t%!R8O_8*%sJ*Z=GnZg1$0IeU7V4%@Wj zR=vk2$dF(Q4P0YW8CHmP%N6y+8KB_IVtQ=B(>Y7M+MAm<$F^w^`}tg3Jpw{=hO-R( z2bd;R6&fK!sU1R=0zkmJ(Oc1TrKxeCqq;OAf&gHQxVV*j2NM)@?4n~`bTNBU`-K;i z=#F0#oYnSDDm{5toK>!AX@kbWt^m?#xph+AiqA%co>RPH&)_F&8%?{1@whrJ>#MBFt^M>5H;1cJRi3LyTO3>EgMj#qju6(^ zr6_duku)%>qc|kKsuL<3vs_eWe0I_Eh!}=3Gg4X6)%oztrr{ioT%Uh=nGfMuK<@zG zc~rJ&GchOgy(%JnQoFwQ-+13|?tk+K{vZA+B_fmSSe0VX4oO+`=+n_O3xW53SE)k>eQWYgbQDb)l*UHRi*zLu}&jdN-gG$HoN zcv+QD87KF6*I-r1!&oUsDWK(k^pWsDuFOh9p$EQqBXeLbz2ixWg%895^DUXr8GdmO zZZZbzL%cCtfl9j=r;GvsH61MU@Rpe0BF)4%R2&+SWoTq zV&=lO84vT^WcFDX&$Z4mB9HDl)C1W|=F6m9B%_?+R=7ET{9-*L-$_+}NQJ56$R_4f z!)bW=u=I!~D_T_lPw7ZfWv&anG#$2+CZ>#MDRtl1g|5$)3t5J1PK-S_Kr&29zX5Ns z004ji5RPlKv7e6d{Fc$@j?oUN27+Ixo32_4>_utCR@Z*_Z&*H$2JPAQAW5UBkY2lx zHWs5-(-!TTL_OMHlm7U-{rSuMd_S|FbDnC+IELaKnugGXZop`)T6egop)!dkXkD-s z3R^yo%=%OITS<#oZBc)k0|zFFViI1l#;$@cZrr4K2EU#DjKcbKkay7yy56e+BhWo!cwXI3+TP}YjjTxa-vC)X+rtGed8;@gd0x{};y_+5`I;_fwnp?bk} zp>^(lK9B;Mk{=Y+!G`GV0hVJH>7CQRl@^gj8dZ52PaX#(mQJ0)Jz%uRzZKvHbX)oxu7~`=& zI}@AJ=&x&ldK2FxN~0fhk{hkGARyawqU2n zmF%A7`DXm}rhUIV<<9opS{I0IBEH9BC8To02?RY=`W7{U^$M-E^5dAg0Q_fZNH}voLh2J^ayoo79LgcK^8gG=ts0Rrfpk ze-`?uwssU>bmBXDKjF7N)%DxY-~0s0wF3T)_x`mUHvyGxSpZ3ck_AD48HmkU9sI8#Mnbbg3kgP=PsyU z&iEtLY1DVYl^{R5^6(k`BvC~28Q?s4gU9;f1H2yZVFeb|R#agZ_~Gb3EbI!?;$*M? zOt0LtqkieRiC9m0d|18FTO}MRKDS$RlbNW(Tio^$V!>m30qrV#IsqV?% zjUjUI{S7s?B5xb9i_+4jebML<8v2lROk?ZU_PsV-rdZm9}9q05Bo5k_w z*0$+Osa$?dmo!tv;q?$#?M{Yr9Gdl26J`k(^u&Y->TG>GtloCgUmqzQ|1B{c*Ne&0 zV8?Ux-F)w#-Dw~<-Peyc8u9Xsmd2$=JDC1NFMV*2PX`xOPj-$3kM_=(yy!f-olI<+sbW9Z*^k5&542Bc zWbk&@XT(i#*Sb~MPw7xZmwQ<1vLH&0W6oE)7wzLk>sGWG{)ADH;U~u*6mv zFr@dwPd#OA+EWzcJ3Zz?Jp0q@TR-K?{VH3nONq@eVZWdHNgLLb6!9GR_K|wLfeS)` zilC!;Hto@`K1b!^u+hbiYN6EL!w5k^Y&e8gXzYP5lB?<1ju$gsPY24^5U63mcq34w*to8(4_(v{vzX)h5~hP{ zMS;tUqFzZHW;d83BLkx=t?|L=;v=FO;SxTt-4Fnr1AX755i=G)S9+W;8%%e2hPs`p4q7 z(1?2Xj7ciM#qP;`tMK??zoEXEzh&)17NMACoT3Qlu(t{bSYaS8QJYXHtSkg%-1FqK znUz{xM-lF{6VZ^YKxH12o(cz%52SUjv&?wo7Kfk>!?ul zFX7{x;MT_S+tf~Aq#YHI7{@3CP27Sa$RJS(XYN+99V%%<%K%X#0232tAsQ+SP4rwT z*jW17PpnNG!pzgA4p(*m^UV5xa`=9Up9sG_Y~^vi`Qn1@_I`bnp$U@0``71^b{F?O7AOTdBq$W6eIv7VhCGR zkZ?p3Hd2wmaU5UdYp2b@!$WfW`sn?Ec9AGyp{gmJvcv-KeT=^Bl}lTebf$wmsg>g@ zzLb5sM>8cgeX|U!k%IDVP-Csg$KFUr!tf^NW&5^w)t6ZFg|a_4brPA-(7C@yaxAm zzw;88du`J0YjGH)Z+c zm0l)~t_+&TD1O;B6Y>(%li!hF<7Ap;jnDLYg_zoUin#mYCerjCyrEO}PH3zH9y4rp z=lW9gu+rMRVinWns?2*Q*{*IJlIy2%vy)A$9CLP({aGcHi11=D zBo>LVzzQKHNCVL*hw>y}e5KLESdohCs0VO;YLzM_CF|G#mBzMUfhws$WLXb7o6M>0 zD&&P$x{;6qbn5KL71Lw~mXVz|lF;1-L8}*jO6u!toC;Dg$L`t!dqt^?S|-!oXMFxJ z@1m~(X8}2lhk%xXApr#=q3S%^rADZuf$&Q8EJmAijl}I#d&)^gDv!hsCUM0Vt4{_k zCz#<{Kf;d^5_*nBX>Q8R#?QUy#Q%BG|MA@ke%ZtC{QNif*XQ@wZ~MPu^zOE9cpL>} zV4V80YcA(KsAz7Km!f))5e-{7-~4}oBS#qN5-J`-bVeBET0Sz%5iL5(Gc{G$(UZRN z&Vg*nyc3mY{TLBvG*Y@=5<}%Dv5#zEUg%^?ttU-pPUuAPdk-GcOtNyFv__UhlRg3p zAkB%{l=z^KB7ax&=pcVSDlTHfynIhF1C$wkF51&f;Feprnx8UMeqY(}^im&sQSV5P z-5xyvQo8i;`|bU|Jmls{us1N{ShwC^bgB7_FE>Jgj4mBbD&eHP9k)+!bFFd}5@4f} zp65reU&^M!S`WSnK2Z1;_P5YI+#^4@%~Q=n)@Hl~IrZFd(}v6|V>8@RLy}HHf_v-s zvorm{_EV0(Hs9DIZ5@Z#T}cn(;nnUk>xuRPt05zfx$9l(ZKU;2n8q)3MI++kMF;+f zb|k6=X}#)6dFrBSWI=!wRS8<5JkTCZZ_IxA`dUxUFIygiIk&gN?LiN?E_bC#YwE5$ zXZD;4p3-eI-1obj<9q~j%-m9yyXK2LhN^mH#>bVu-WXl;VU%8EZ+-sXea-Ey@jUZ< zE=t*$swoHl{b$#{Gv7r|FjR?cA4ae)Jy4DOcDm!jQj4(*3DqL-1TEbU4_aWw_F z9COYc;!3dK_I*8KQY_bY5y&{4uTg=YiubbH?q;Dn_I{%z`|7epRj9#wltDAKSlkC? zfm&dWy~gzOdLEX2T?*c)RhNMXS0<_Z8a(6;uxkhm=4UuVN-1J=$rXiRIH*+bwjl;3 zI!O3~`c$3Tcc%t*Oo%<1oiXOV7sN=l4FrfgUwLv1Z!5Ihr7c<|s{re|r zobXszice}-T8ux7j=-7VKDB+g9>_#^JnKqQW`#v%b$_673_3-39@|MDsaabc6U!QV zZ~rvhLi|}qfr!|P`xshyVf!V~i4nxyh(Fz)Aq`d|7;b+$-m^-hIuH6Dz|Fg5EHm_{bc4!aQZJPn&eAzf0*MZU5Mx@%<0{ z7u|YRFh|>QpXV6c{N7*XG0ohKD~vK!cq#U_Iem~3bdYvGYW1#-U$(a$ipNB+U{17E z>)XM(>Aq_2u6?RqWT@$*s-|W@w7~(u(i#DpphD;z9>nk6auGNIEt9)P5uO{%1^R_Q z>*l}N%5NGU#~^k;j7FB~RM~-!m`Jn*w088p3Mz~TyP?%_jcVm(&0B z_2h4?-e*_ZMlgND1H=EK=R^oLa~F>w4}zPHWPn6c!+MW?&U(ebnOxNf=N%2)uUhu4 z*BL$VtADF7yYThV3#(rrKaX8cDb;T;KBssHPWH9lABXAL6%@SdAc{n{H0;5a1bwoI zG;O34!w%973$#fE^x4SHOz}X}g$9i>Xo~4lkseN;&p?OS3~Ux{&oAzbJQAI;{%*!b z<0ru3C1WAII_v6*eF{q>**xU4wTxwB(kN+njYF9%7&Kq@8sl|-p&koLjy-52FKI>=$5UqEIFX5yc=!9<*J~O5=22wroB+1fKN*HUBL&>yX zWCYWZ(2do2Kc-lRu~$>Z@bBJBogJMxRg#P=wlQ)a*9H1bTjDCQh6y5Jr^15Pe4G#V z`KJ+I$YFch#6B=KoDYv@w}azd26O#xRHE%WqMH*wiq^z1x40i@>=vNYPhfn2o8lLD zJti(JoIBuK!4>ghrZ(=!U%k{IA3$0XZtcJgJgsrD15%U7B3#y3RpV_hzzxEB17YCo zuP^`f)+kmn7eoWv0+iPl#Ca4V$PN9Li^U;xp5+bRJktJ-knQ+Y(RfS#^JU|DvnsKz zLDT^d5`A2yh2YLKwQJR5i}ppclZ+AwBn!_||4 zl&M0)olU3yQ^xD|K9${LG;GTKS-8{Ai`a7zv^qG0#wHdN0o2DfZ293x-T6MW7=7P2 z;%|wK;ijaDT4)sPz;~7^+`Dlmku8g<(+nPltpS}uxg==b?77ej5Jn)Cy9sZ>{Mh`w zFw1Dl6p6MwP2`xOK#LeM2~s*xotbiUQ-jFaR>09{z*X@!qP*KsSTG1myY6VOG|;4( zhD#l{6__m{1vyvxc$mEZ1U1_3HdZ~tomtL_?J>8lnZSW}nS#{`Q&R&$keRbXseut9 zA_D-JlmwZg996`_8r|W>#k0-PwnX8e0gVWI(dBmZ^RxfP!@tydvDPUH91t>8LL5$^ zi%3d|vEfQoj6Kv6wUB5Q3Zate9QJ!<2JhMW{k{El(1%$;ouYFzcG%Tot2F&YnOqDD zXJBK-U6n=_f(a}orXl=^w5O?was_&(8~H~XAJI&g@w&@%7ujW<&TDEX!f zp_C5*a7+&T5Go^MU^j|Gi<*6*VA{e2nKX^o#<_VdH9y>eVwv zm1#ff{LY0LEaU{5SELSt!Yegf6im)ERazCiSMyNIHV5gmkR9Rrf~!l#K?+4I95Hol zs{7QzP(@=NX}udFo~Q``SS)C4*l=kNO$QCcv7C)};uWbhbKO^}KVH>$tGQMnd~7^4 zo&&aY0Ee`NB5lB;(5#GByNdU%941M_Lp^GtQH(FOQ7S)Sx9~P#(NeQzoQs9jWcfPI zB$WG<-G6;AZ1rPeosIgRmwg}TIb7$OA1|a4yrb`E_A<12a*+6!(&wcb<0V>{b)DQK zI58LWLeDV^Q1eujHBWIEM%5I3C=QFGkaePyV_F%>NuRQhxC#4h@*JHz=JzZP;4Gql zSZUfbND6Uk7>cp2PadMhOQz?xrOqPxQwity%*;YiUn|2zgaQ=6(Uph+K@o-oLddx0>q1?SU1*br)z$}CTMhOE(s|Nne{Nf@^SH+A{}@>6g+IOQoXzrj9ydLonYzZq zbY&k!*AhY0nEE)o)^fB{j?DU+sd{)YZcTXQ)21$LPBn$qQuSvH@fr04SDv2E-H(@D zohyEo*NBW$z0enQhbhf9wDbo!d?I&`#R=V~4e@#hQ z9GRaJH;rKgb;JauoV#dgcSf-Ss)$x&To{ZPPQav3$x-pRhS|Kh#=|<#_k6b3s;`&Y z@@Kq0BEN9GG%KA0M-)kd49wyTVg->H(E*~P8fZ;jWtvMum^>j97=?u(i5M~n2n;|; zWDsp&V@IctyBA z=grQ-&o?MpSM&q_75o}fXLzEmoEEWoG@*L;+@86TVxiiGiDjm|{@J|y*yk_fOd2Cx zwk=D=JV=x%1o;O`(0<%X%_r6GefzWl|VtCwe1OVesYr z2n>P>=Cd{PggyME|KlI^e;nMXzj>6NoLM^mg8Scu_S392{OWHB_l@8IX7{4KOe$nb zC5m+P97zS*sJFZArDUhv(DhQGiX)C)xl@{o8a>v0RGjn#BkS_v{2|RA$Y@c0rH3@K zg#(L)He!v*UIjTYJ8K80@;3&KXSCkV|Gv8C|2Vrd^SjzzW4?hL8&mp`xP>K%Rb+KH z((1+Fh;LQ@O6J+8YxCvvD*KNy5YD=h6_L3hn&gdoUuP4cIEGnZEA|?@Fy7zG*h8M| zS;L!Q>dv!%_s_Na_%FVu_NRaTKlFp2Yr*H&KQ??NkCeOJcKefIxh7zWfQe?#zIbF^ z=H$Msy6PAAy|-HH$7m0}O9RCH3Yl-Wa%W`}lzb<8&8MrdEsmwGqPd=X^V--r?uF;H zc+a$!`B5B4c}?pt-Fn}DPNDwx)xvC{6F|#amd>_z1QjXuJ=Wa4;a7<*OUBXQl8U5? zotDKRMOr7KTD_LLUQsEF8%o~=fPPh?Z&lkl^Q@0gM9W#1JSI7^Ieq4~_nYVIlIsGu zY1+4}8|KlT@6Ng{C!Z&k&s&mm99779l4&-_^7zu!YSM8szUJ$W$@3~>l5ZxlD_E>%rp1s{${b4xvac3pg+%(Oxa~moA z9nX`zhl5=Fb+$m@BRQR%5_PIHavP5NFER2;_`(#%X6x#6j{UQPoy_RY@O`_pTHfg` zc}4w#AD|;O0B-=Lp6kzf{(RZ_Mr1}G=g&NRe*D%+``4Jc-bYj7JxTY+mW-743 z8dwx+h;d-Zb{jO~5v*w3w;30o-YxQ1j@o0&P`-Vk{;Y4$`_Et8dD&ddLKoN1_9cQ-UwOt1sr{4P7{i7FZ@9Oy) zkKt!LT92uWGA-@sPa3%mB1w@B^7=zFeVcGN*?q1`UXYde-@V~k*p zJN4-+3_wGxi^~r7ImN03nueks&BuX<^4IgYBlC|LA0_6Ps1f;1nmp4rUV--$(oMOX z1XG1klI0;T%UQw6)#>$V`x^BsAAz3mRY7+iWjGit!P4fqdselojF{?q?7@#eee+=Z@(-iz(C!CF!l0piaVd{az-@Y? z>jWFIqVstnW~H*b>X<)&yqoXi8G>6c$R@DiwFR`P4FeONWSzRgTlMxu4q-Ba?V=T> zj=-&c8 _cL&T|M`2&<-^bWvd+Nzv6Wr{U1C7QB>yGC0ni!+6)|N7ivF*0!DHq^{ zj$PI^j_Xu^4b1Nz;kC-|$uul|;CZrz$;xOM<)Bm82Fs44ZjU0%rw81$N9Q^l7ahHy zLte?$jMq-DZ#J>XwEVT&^8tl#()~Rr_%*AsS6kraHqaVv!0kA9dCDM~JEoqi+BK>% z9{%6Q@w66uqL017HG(9eHSAjB*whmzSL*#**4UMtVa^$LgJXlc5<4$Ek0(M%0fijS zJ&=?W1EfPk4TG+Z8+J`;E$H*N$x7tsC2lj}t{9Fr!_D<-XaV6go=N%lh$25g1_^->8Unlsqu^K)It24q^##O~ zNs$ucU(qDcr#MXM`{cBT>C^y{tIXmNe6} zY1cho)j2DkbusA$9Q~L@>9t-ttA`(0xu+ecPFJ5ty9+l|w!AQ~dO8|7WUM370S$HN z8dw4EQcI|~htqRw8-M+0fAhce{_w%w5notaX5CkUuN=SN=zcmjo}^X-p^vvKQb5I~ri%3W{I~t}zazkBOwF4v$HDQ%c5?IkQ6J;a zy?-6tU(eqvb(0TAMA449B5_jbNo z!$ka8d^6(&M!p-8io~UO#*@;loN0GA*?KUyn^41jrVBxBHe^HIv)vnD8Q}H;y9B+s zFidkhqT4*Ob-^#_A(gqrRlcS4I(4ETdhtd-=ViyXN z0$v428%dryBCAjpZZ-5dwhcZ)bYhwKPV{S!f2W!HZMqH&7N7WTAK~C>e{a8!>2Y0L zcZMHqr5b3rhf+X?NEu4Bx&GA+)Imj(;PlibUl8L?%Hh6-#z7FSXhW-#P28R^y%i^{-}BKj>MyVj534-CAmljIRpZYb~{9o zaum728$|ih3xtO#bfG}I;kS$!ASQ!F& zy?yq66YK4l@5qRBOIx|G@`gscfHJvV_4d%6t2GOMm(N73i7l6h5T-)N;U0upkP)ui z69AE-)AZZ4_uoh&Xd zUTr2TTJsn{QzDn4h1IvZox!Cfj8P^5BNzpPlNayS49GL1sRpZwCv|7(TB0Huz>Hs{ z(l@Nv|Ngr=L?2sUh{U2fiVMeDlu02BjJnW}K=B7+BEMNYR$j}NEwf!v39uvYK*bsw z@K}g9FF*DkeF}i!D!tazajP8&BX)LwLhh9 z`H$Qdii&IGaxj1c0erDcUep8Tn={%UI7vpo7^_*e33hJ`&>-+y3MDCBxz8pEk_iCz z?>Sm?w|Ci(v#I^nxjr|jMV3rqPC5aE%Or*^1mTI^(PAa?pnX;?hk20pK3=WGwoPc3 zR=L|sGZhL`fW;jj>B>knV<8%N%(Hyb4S!}?;xB*3;V;4bzwT>R>FtIU+$w|M)8{s| znm%6{+oXsil4fOIS32fe0}I$in4SJD=K8b;D6`w>_tZ08Wk=I8yvl~tVb&PmsYi`= zeY7Si1VKbbKb`z5`6+gdvHn`PM{5zjxF*GJP-&blz;HcUj`8QgCA0{GGXLOie!V%q4)kE?YyMv3KXDZHj0LG+&-(> zI4iVD9wu2~jHZ+aCzdAhR@Ggi0}yF4ExlOW(RGtPM;SQf)b{12Zq3_<*CD?lmOiWh z5hK^>Pq$v0{u-ZU`Z&q1UgG*$_iJB$kogH++C+4MjLk|MDdy|5ka&C9WbxM-cz_;3?1>z;rW^KOYEfG>y7}U8|rv4zrfX{ zoClF%sqe3MS3{$Df4qV+NGo!_Gm_m;CSFe;JDu4_dqD09cMo{XW4m0u*K_veE@$m5 z(Ntm?0wEBD!Ll+N=aB7%_IxT^oX{C>1Brl9d|~e|7vR%^DmKbMR}?{{L=d$ZqF9hh zPy!ATfRe7`P|j7A!NksN1!PHi1oehCmLLT}L7d%Aft{_bsKr%&7<%%xY5%@I+Rp=L z5y{u4)hf-!@)H}dhfM6*o8v>F@4UE7@APhr!ejM|Ak#`6`RICz{ik5Q@o}hI=@Y4B z8J%=;1vIo~>m&PS)>5WLQuQ_cApK^p!acLbDmT*0@yH5J09*6eb`#|~*IIXFK_+<= zqr*)4HRqZDwYVrPIqvg7-tHV$Q3;LLAMkGc3-+nmxQuHVbva6Eu-(E)#ocyvYp7b( zzDs}6I-Oiuw^Cu^-f(v2JX&`Z=u88Gir|7a5DRjKeDXl!zBfm?g#4i6<}^4YKSx#0 z_lv6#Sc=Wle2H{20b+RdO#1h)aiY#te-gs6Nce;T{6=Nn*ND6q+A0@R^)!}KC;f>0 zr;T=Nx{=R({#dGQ&6c2-aS^%8^d!WCt8q>o4RnyE#z3=OGOA8hr5Cf~wO+<2QQ!RJ z``r1?Z}R$|e^I9Xb|1q>O>hW#382&Ayp!pRw|ZOGhzp%Ct}3eo{UR4RSJhRk1ijRf zI`%%*qKXoc3VL?OaMkBQ6iQ;rdC$l4&T#}E7Q^Zol@m~ZE^ z`MSB!TQ4}dj_HBZIoN5iDw%sgb7EzyDCHX!M~z(Aun1ua5MrX@guDJOml{jtTYciF z1}o5u$@}?nzlO|au7nR+;p{H^S6UP^GFndWpA|HIJ-PPa>uWs_Qf5>0v{mBbo=u1Rj4+;OUr4OR{M1;^$X~08`MdiVbX}-0Z4!Ou*Z`Ah zO%STL^8B~Gq8||dptgUx@vctZeJKDXvamK3;WUny*Cz{f;22+zqvv5I#Z{FuAJ}vJ ztNO{l;``SvcO?76NZHq|y=c4!#&{yt@FI7Pa1tb74Te`bnR1{~C>uu=R-}s-ISs~i z)|JP~df1|{cetdiHc6Swu z`t=D1+0TMTU-O7a$`@Ln6vN^r4!O1Bd!sQ0`gEDGPmJn>`r3n;jvIrGL<(t+Y!jD= z8soerjMkfzvk52YaNkZphHeyH^LYXi70n1XnX9S<6Pn5c!8vOZ&5K+~#}11uh0C%r z0~Wy$4vSbc019?2GK^v|q-jTIKK;4&FT2l(Q}IN@!l2rh6&Wyo1VHO<)y;T$Ag$jc_eZ!s}@rXEIyoaNM^FqDX@~-)~*LX_t#NXMm z?XiP6(&{CrQ1n;;w$OT!x3Rv}Ff+7xms`JTN-D&isJBI&07p59nJg{nab(zF;77{R0P3tD z;|ww%;x?i+hFQ};TpWKtr2E}QIY!u8!4RJLTo34w5O!#Y9*{SHgb5{n=EOhU#l;SD z!nGRVIqdD-qN64A!#+IsYQMN`#-ddk+Pn&J8Sm{$pPd%Pfk+k6r691_K@5c5fqHV{ zU%l9TODc({y3kN5#u57zNcS#p2$e==rm z>z^|APnFMhsLQu`Xxae`vO#gnbd@${*;lW(fpTBUNysWZ*xb2Jn(&d!wK5p+43F|? zHo$c==0NR1wz0E$u0hZYATOctHqO7d`Hes5>mM!KBS=+*VNz;t9b7D!FrD)mKd#s`dmrhlcdB2GDY?$J1LRQ- z{i@=1*N@uO_+UdGi0rX+D(bGf30@;t2Tu_-7z$Sk{vcRs^}Sf<6wZG${=vN)MaA~t z4*iGQmGk`B-~Ra0v%Yc5_J_YyT06d#Q-(I~W z=YKnTuVJHGtDE3chhX&}@#D0oOE`#FCX(8W84F;nFNj?ecQMqqM$*~G49ZY86KU=D zO=xmXX&4*v^l*RZ&$n8#s7ele1Xz{QS?;b(Qs1i{yN@dX>vZm|c_j>uF5@t+!{_vg z#-jUZb!$OLVM~+Jz=}J6S+;`ht9SUIgFQX0ZOE@zVWE{nQixFvEdj|sX~qt54mMJm zwclkNg%u?~;(4>s)w5Jt0~yJghY7MkSx{yNREj4s6KDVv;Mr~pob80b!vF##R{(!t z0-^yK?II?8I*FSY+%%5*OgGT+#q(5qHpgDLeN4xmJ`H(SwE^D!eSUl+ac^zE^KXUt zZHeFMKYoI@k7!(?zC-1>fco*Y_QyDxVMex~OXN)uPbK=CLXMAD6t4So`4vGbv6r|` zXp+ckzKDUV%t1^l2&Ua02ORe^bMCMnNgjDp+W?&o{)XN*wQlFAv2beW{FmJpAR^|J}YU_uWJkl#vlM1J^ach5V+!^1sC5PrCcV z{_wy1XFi=T=gbfBW)u4HCTK)Xw2SBR_eN;KyNXcJxwjM{JeSiG9&4nTg0`VuR^8FA z5SRwO-*NA7W%Y7@og1&)2R~xwC*JrB-4bicB51%+D=TCFtS{%4hbV(ImB=9k0Z`yw zzV3xGsk1@uV89TK3X&MzLPk(g#V)8D7_2x15rRv}o$ED_Af_4t0SOIa9Y5yD~UB3tFK22-m)c>QRw zP{ETTu}Q%Y%isY^XLXJDG@7+UTMjJ@Ja~bMq)&6+>5o}>uk-} zJJ}_7Wqon730xaDdZrc%1<#BdSZ={!EF=HKJ{S)3@QV*!T)wO6sRbL^i^vgsOep~3 z0UM=e6m@TBg+Q7(w#GA|;Ve`|tZ__VL7LLal$ZFL)fWFHdQDR#-a+j*U>}l73Xq%@ z`#1f@ib#Zp_obuDQv8MGSVr-w>TmvtSwbiQRnZBVkVUV|yKuScMAd{K6N&9{JxdTX zH9zr&K2l{0bB|PDhzt<)sOIb_YZhy6;*~b{0wJzsimrpt1p^e9 zz$r-UvDf_mcGmjW_NyCRq7~lxbG@|dKpRvgAa)T*9UTx!J%n>07apKaU5l-i36(O{ zP%x@;atF{vYboV$ZAXA`tTprMOCGYK3~R+h_M5-a%+5q{dn73EJ9iK7MmQ^j6#L|tnV zlo0B+g(YWQSp zb-jLTi!4E6?lV!us;IBm5Aqli?dxzv@Gvh!TPk}|~g zE?jERr)H6*p2JO?A7d&;0%W>TigDi*FRRJS19IQk6{moTim^bW*fndiq&?GMP;0)W zQ*(ibM{z5>(US>?l_zm+vB!|OC~%4pg)maVs=Vj)D}UqHP3z>T)goMbk z4B|jlQx=mk##kiNRup1FWsI+yjJ;xTrai7(*1yafy$|$mOBH#@I;;QyHRP!nI)QuA zmjX90UwP82Z?{z~m8d3vB?n9ND9^nf+)@Iq(WVe(@+gY+8dbQG1;@f33|u)3iTn7m zx|AwXPdar@kzq)iTpph>iz4W^gMJH2H%?Zz-}%VktQ$ECz0g~Dzs~y3$KU)`2+d)p z7%}|3=Nl*2KiJcm!_e(EwY(Kv4Kmr16(uPn!MId{jk}7M$%E9BG`9?b_J9K~6I(8` zJq6y8lfh*Lmr<4j;?A(QV?d&eLQ`uO-EGzSN3^&4p5N1b{Jh~U9ri_V_Te{(6r#Rk z&oo}_d&xtY#3rX^0W};cS*!NI{(cruKI&_k z5B^%|&e8kz@Hy|FtshVJ{cJTzt6V&8>^VPL9X&nXO0mm6tttXUVIf_igd1(z&GZf& zJAxF9CQdKa)t)CbM;<()=z33;{+OR;B)3w^=6R`niPQ3R?mimrywhv1Q`1FQ$RX6t zc=NjHAg?+Yg`pfB5rGN?L`nbiHvcLUy;D0W>nopr@%KYH$ODt;n_CR(Hinu65q=E?DU6N7E_&7%L z?6FC`Ey#VkN3dhLd=<;&0WP{Pi$DzmbrfskbGjd}xBE1{oqwP7Z|!4xEoQ3Dtu+NQ zgFz53k_S#x0F($P5Qa4c13Rfp3eoYia4B((?x_=HU+>HkczM-tz52=PbPsE`ErvTP zZv*}G?!I_(qS!4wXkHWtRSOrgfEE3WCm-Leev9XLbuC^i78u3{`q_IO-H-gi!*t%* zvyI#B9HA*(lqi+#91#(euqO2>D#<3mcANnh(P4*MHki!w;c1lBmNYvNa zQ>_YbCxo7RV^Ag-*NJZcUq?2954#S1Jb_l)|$x@&OAz~n81H{6ck9!CA z$Lq)bIOvMLXdM~sQ6D$gO}sCl%G}z+gt#|euD^agk6%yvZF{!I-%r**j~_pxe99k5 zJ8ec!&cHO=!0axvZwI{|QajC22}Q?~AD_{v_3OL8QLB45Wq9^_hNG3)w%y)j68J7y zlSi-%lW9j`UL$xmThZAPl&qFNkM-q=%~Rjrrgo@H9d5#K#ZXC@H*tM_tv?FNRP={0 zy~K#FM)*9N@RENIug^?>DsDgeVfWI+yrnUd{&*0tmWlP{YYMgyyQ&*Z)91X-iJ>pG zIEKh^x9vrDcYHk4Q&jzE6LH?2_P*V9w${gHj_yb6@mbf6=hFR{!?WUi5SW{hK4pfn ztrM5kH}HD|d%V?wFMq_lw&D5yZYgw2gDRVySnYDDu!JQgVOg#*ktW;f3m#Tb?Poi^ zJO;pKWFXhp21hRTC;n;H2MISd<$=Hm6#vX*{z`z|k9!4t8B5n9SWz+v&Zm`1Z+4#` zVX_t`to~ArfB%zn^wBfV*k9i?>j3kIBu{LU%|E00drqFnHy9JC4;x3Hw^>;Bbf)d(m;UehOQN3BxQBwC~z$62uzGG1-_LcY4eE6cf?xuEV6Q!Xd*m(!bxCOAQ^E`C!u zQdZ|j@@2eKJ^SoC2eiar>rq^`+^_iZa#wqYGb$?Yj*kc)kH)=>9NYZA`d8fgc<QhDOuS#`c|f5%5bN~SV+!{EacdE79YY^Itmu9o-tFDZk@Gq|jYTBq7JG8m zwY^68dgWIvE}wU;Elfw=o4m9_#9jm9Y1aks>Mw zu}<~#gWlue%(4ggmN(DzduaQ)Z`=>gBa|UVe{z`Pnz(e0-orN&US9i77Cx!Bp?jzOc@Hcyo| zNLJF*+aM}Kh)Eye=Xrm_#1N(8q(je?a7aI-O(n7DMaFy%3I~)<70Z9M;!*T}b=Be|gl8f3`NOyQqkDvy86P8ksI;onLMzSzkA| z=3W59zJ;^&dl%mwd;jd+`rW>9;K^U7AEpjI-i?mGMg05y*Z(;E|HH5M{#SUI{D1$` zuljfYE%*1X%}zu+^DM00j)OAsgRmms$Me10MG0yhV2+@snMLEbLq*KgJ@ZPNG(`Wt zBU{b+BOxL9ix2O8Z5O|`p=WVMJst=dQI**SqG)%v-?@63{`Nc>^>y`86mqrXK{c&V z+4F?E2oIVD1ZX3?h(4ozMH!#LL}OxghSrhu9TweU*xi~$({MnqmirR%(94tKPHI3@ zx59(`p2Rr~2n%X2=EL=TT^WA5H4Ru@Ed*SCQ_TSoAZZ)28dFpJ7?FY@!)ZwlMbK?a z2EvxW4u?-yA+J=ZG%6X98Z@I!-~x)QD&!g<3IezU1I81jL&Q+*sv4YM$q(%NzvDY| zoS8*v*v*B^p@LA<;Iw~xFck|fc-6e7qs~=cBo=m<3cL^eD9Y;JHr}DP;#Gh<+bE4B zcdxpwZ97zZuB;5DWc*-uBVT3Q*?LoKI!Y{_K-H{^vri60Q_M<#+xYv@hQ5rNib+sg z`=neGp;&>a_yT{I-3*qVp=Fw2p-^lya}x<22cZy&F)tPnNjnoydMh~t1t2Cpq(5aN zfEF+IO!Y)JV-Rho#m(HUfY(8{US66Qf4%RYHLEx>_5y@e0wPD+K#RfPVz$pe?4)|0 z`z*R^v-_(usk9!}v-e?h}59w(OG!#vi8k9vw3_v_lIPy_sP01N)^u_!LzBRuy9JZSc^a` zKt#Px4Ltiem!%`FL)GKJhvwKIX?`MTfke?@RkaCNCYEZ(R^^gt#(Lgy0 zPw}oo00y)yDjq6febrQSiDqPxGRj>!IHh6^U9yJ~X(qV_R&M~ z)@Z=r==}|9<^TD=S@aw15Q_2y>es%{AKv{CU5;jQ4O81pJ`%OtddTr>twQ*SM@=KH zU#A($1>6I#@hz}HYO>KH;dTA@pa1{E%r@1_b--m)t{Rbh-Lbvc>N-324Ij@ktGv*y zVfmG^a-Tb2^*pNu8k{l;6Fjl3FJHDt)l85mLKo9P#Ovt1#k`q!bHOV~-P>^Ibu?BJ zV1iHy$g!D2xlX?gU#K44dXZ1pd+L-RV}?=Z^irMy(|dYr1nmRs0JYRj${JTeV^EeF zMrZ5^u^H? z{(*m9`O%pjJ>pAN>sXoQ1p6}}Hktx0vQ~gGHp7D-T`YCPNx7uLfTL9Ls?hpjdtMbi z_k%Moh74pQjazjXM^UGREox7%O;_*j7c($?b5Fg`f9iwW1@9^-cNvZ16&9gk!wgtd z1gr28yj7WTD1dK!5tAK3C~O`%t*T zD+`8jE=)+CGwdO9lE;B4=mM0&gwip6Y45qc{MhRtl52RM+C)N`%=u&z{Y!>QPI>eD zAj(n2=8o?D_RBffNYJSFY_NI#i*HC#ePqk8 z+&8_SYv*VTM}31GL~W=+$bN_R)0%vVd6Gr6v``FLnocsyGnxg*2CsUyV7j3>Gnp2p zOVNPTMBPu%!T)I^ZQ{bZp8FYj-TE8PJ+S|T*D_9yzGI&K zYRVUX+ z(}%hCM3(3bQ;V(vlQ4+bv|G`1HAdIg=Jf{a*Yj`b>6EirNCRXS@2H={f6E_w`&OsI zecUhQusE9IRg>+4d-vQ_3*;zcYXk&<&9ayw6+lApD|#&lRwWFAHJ`tHzRu5iHZAns zem8rZJ*Ru*{kpuyWlo+x#C_oR2NU+crYo_O-z9!_#zDPWr#=*ythcb&NvabJDjmo*cn^PJK z`hQ}eI$cQdHrHD9=^%Y7%!}= z?ywEPey(B1!r8%sHe{uFz)86l6L8T?o|UXq*n@gJ6e?JS@W?49QnI^0KL2cA(Dzs0 z@x>8dC8nqhfZ|xnZl|EOxI)5u@d*L0ho_9xGN(aBDkCx##lV#7LCtUPB!4_w&ZM?yXU^_9{XXk|_tX6y ztN(mP5`~-5LQ=P>uZ-h4e0$WNdyyR^V7zmz+NezyNP|YUXL0Vwp8t98lz%OqX#2OnRJ;`4E{4km`MRJpu_FBV}{-7#JzMw$}0;XR}QG0tTQS&x-|#>Xd6S$!RP`Pg}uoGTFW2U z+VazVIp^cWxG?;N0VnWG(^TdFQN)3>Q8bK6!K@6EN|`v<$z{F3 zwWt$3^}rE?%-ldd8n}A*RQ}?OxaZ{hqR6B+TpdpY2(QPN%1L`J# z>i*RUV$HSUNDe82U4T2&TgMsC?}D?#4np$AL7v^-C|$;(WF-A~z;nQ|sfFe(?o=_rAT=9|t+2+XxO@ z552-}t-`&&y6kr2k8YC~oV*=xo{hd?ys-^T(k|JO(|+VaB=XjKul$wm0*m@tzy(Kc zZ++mT(5V4Bvl0E^BPi`qP>BH0-m^GDTX>ICe7YV>lnf`tOX*|pA;ztHu7riTt{r{% zW3((>*{ham1k~v<0>qi!5XL zj<|$wg4=^n58sQ=Q77)-4z_Rhi=IMxh}mm>iFNz8*OvRs|M_^~uSBKK>dU*jUVR&d zF|u$~w!7s>KbkS*xmTnKxUTMH%4+o05&76%U;X~Nb*sd7wf6PaE%$Yy1}vM;DZlWO z?<)6B;XbsJt;OKJiCIt9q13u|YZ`?Pe*hzSOnv)?eC*na%I)mrirELNCW?!YIJ`)Q z3_MAQowSDEE|N&9n=_wb9`@J|{jTBmo9&N_{c#IjGjs#AhJDpiot8(v{o?V+FuT6r z!|25O=&@IF++b%o>s9Z-> zl)?(fFSNU6VVX#=f)J zpFMs!Lj4g-nCFh%4tyB@Xy;=KHI0){4LT4VmpcVP2kHNIev|IGa6LbK8Hwl@PWv$n z3lc+?!rGv*)MbnYh)N@`I^V>D-#!JuVEN@~uHP)j+0D)Fy_#ow6QGUhVCNCK*ysbP zdjhfRS=r%I&*Z}{nv3W9z~n7`$=$swFsFY>Xl@KOB*zdQWzrDw2 zcDm~a7ab^9D(AVD&9&Q;4AwSB+IX2a6N_JF{oB%~zi7YM!hf2dfAO^cIxhe1H2r2Kcb zo|1uyL}?Sr8qx~(F=0f7QzsSrjQmqD0Iy9alytCC@Qm3usA=fbpj!GWNdO8FLNJ8o zVqruHOcU2t+?PE0i_R)F61>csH85L?pe5wr5WjVG&) zrnp$Mm<+u*%%FKRhXeq~GNcfsyUl1T0O%{rvJ~kIIy04ui=|td(pAASF)fOUKm;BP z)WRYW)R9q(&aCk_-nDZ0M2!9L1jPmRC#t1G+xq;xn>VLodCorSz^!35Pf*m|j8*jt znr0&qj@;Se%WGO9*J}D|X{c*ymxi%atk{~Iz-K!?K-oP|J`Thh^UNHW9~i;Pi%Q>Y zIrD{7d=>s@xlicI0}O)>i=L1yE|#j2A=bh}MKGVk-9lt6>`m*^$+a8s?1#3p5CIUI z&C%LqHc;+L;1ZS&Y(3~7(y=Y-VpO@3*v7cHW+m3ou5-NW=ga-gyylntH6vBQ3%$%2 z(w5{PY|T(89vAK{>^^e?bx5u2V0{~FXVvLs{-h|57|ZDzl~CKv0;u8}d|spf`88$}IetssNr!j8G5+!Q21xeH2!< zvnh1;acG6|4AoV39co&iHb;1gDL?>$in_CEH#b>@BG_`pW&cY*A|HFR-ApAE2vAzY zfenCy1FVSV3iUA7z4H32H^7O%$$WK0uH7`XC_-u(^3rY$S`3gP4K>V_%9t)mO+5ht zkTod9N(QV@j=Ul@5-x$9G*AFt#R^p-01#ABm34whYt3)tTl!jDebs+$`S0m|CB0Og zPAy7~I5SiWD6ns>4SoE_N&pcG!T9^GOf=^~#Z(MT6*-EkK9+LOFb%f1n`1v*N!@f}EhLT0`puPxdpmiKI5tWdrEn@PBAe(b40Rs|G z1R7eS5K!Fa+mr(By3_0@%Kx>?KQaXT`HxQh@gL3aJ+-3+cr~M`PilKzoG17D5BX_( z9%&wq6BW&}^~gQkI`4I=D&h+=Ud_45o|Fv_P_07JnfN-LQ5FOQJB%~ut(@2e{deaROF=V(m ziwZ%Au@E)75_;)!NPjAmR5){Sun|NWG&mh7d6W=M4C^kC)Uv12Q;FM6RHI)1H@}em zg7>Q2(TDI#fiYqr2qI0iLKmLWUAgCeq33;=j7#;1p_7@CK~nsmy)j6PG^8}LYS?r6 z&N-?PTh5qR#F)$2z>T@-I|t_1 zdzR)^_#=z-{Nns(7>1&@JMMS*5gtp``D}jl=E3{R@A{r|FbOAZXHo8@P;?B*MIDG(!u@bnoIC-mZw^@wSea6O;NXA9)L|6Sd*SE`xG9ph? z3T5WHt9;`7X*W4!^7(1r$U(cWd$U_?j#^954Uned$~fh`>a9V@3nk(Bf@FEym*VFY zxHqGLVi7705Du~wwkaQJC1KY|**2far-```k!=A>Q)Fb>Q^(WQFrO5*0$qbaW=bRf z2MIo$_dv)#%vpAya*q3&NX@yD^s32w`JekoKlSL<6RF{F`0ajPalU=!=Cdz6Q_sVk zv*>wAv;M8kKX>K3(`C6=a>0Q_kMp4rfC4hk0M~?-lH*VT^J+vHF`BN#>LVxhG34v+ z{sJby?_+1Lhq zxJTvvC@FkxJm2T`qjAMTD#gZmVpoc1mBYYMRnFWa&Mv)m?QebYH>2PGXGB&sOo>=w z4>Bw#r*VV}V(hh=^?ZJok(Vt5ikXv6OMpC9irA2lW&~3ni$n6IZ}pNTEL4FiiWhoK z-Dl7~x`}#uYd<2wpD1k*>0PrTIVI_2It9|(AebaI)FL44)@j{V^T?!+N z{l|kIP1!dMKoE6a-}LrZ(z-Z0o;K1OQl>TwzB7Xft{3M9hGcs|f+<_vtYOX#X8$CM zo!@>}I=ua*p(lBZY3Hd!#BJkY;Z1Mm|5nLux>YPt6C?&fJ^}+8YWVW`S-WxY zGUwOGU*M%Nk;tjVedvbw{`K3cXTby~F{CwSLkcRi%C+R|8<08mBT&)`2BH!rATvk+8r5Qr@Q5erqFi?*j!1WDuBSS|l*_z2-S^1m`_r>u+gfuN*bdLfSzpV{ zBKIa|sN)vK`FcqPwp{$WpIX)5H=~k{DtKih1uMpYs}#CISzA{!C?~~lHD6oxr-%D} z`Z+tZjuiNR!}K3S6wtTz@$c~!4djd8r@nS>Qp>wM-?aF;cmBmSeYHb(eB^@FhJYwo z;n2{&eQ}#Dg(7}J%+^6jw1U$F*6MI)7?&i}hFcruWOPr_mpiJd5Dg4X$ElQzS_xVT zq#)>B@R~5Y{lJQfJU#=ogl5AXvjjL`5khe(SkUMfhXPn?VJ+COe}*$&`r{8W|E|e@ zM$f-QK`=(dZRxHVidq7F`lMvfY+wlCOcQFjK%vu5&BUl6<+e-FN2B;hGceZ#iWUuS zDj6=9NAa8c_IDr(dzR%bnBr-ak>i=@xe>^;IaC8X*xq)i3f$9;AgTbXsuvfeY}EJ_ zp(~I=DMv0@&@-(BJ`6Hs`*vJ;5Uy#$*(!*M44DCN>sD|QHS;asy=|=T{RleK?uI~v zurbBp`gSe0`o{8O+u1Ua91>J*ye109lWMHLp>5^0ZlAc-yrMjX=O0F-9c&Y(VNH{5 zK&l*WDpnE#)S>{gJlLZ^hjnJdv_LwP!N}vytTUeTI5}>uneyRA7N!Bgc144I4 zW5mtQH)MdU zHu=P-**|O5St&yozE;!4c(K;^s4-$D1#N5=-+#dXJt^8d4t5Q$bLkrEfS+9C&lB!8r6R#-1XXz?9$qy&)?>jH+%vU_9=oo>8moaXm$6c+Y6v#XgCel&JzSgPi zLVtKz7EYv(Py1SEc9{E@Sob%)DqZy#*a$68c%RFrouj!` zjm*wuxr4b*pG#;gO-{31g~&xm5w8Zq>6(Ch#EZlN+T{X+?~>=bN*EjaxqC_j$hO|S z-A?iAVcjlNtyO#O7u~qBxAgOU-nXEL8ib(hJ1?Evz{Nr}sVW1|r%XldV><)fZoj&{ z33&?K&oGt5#?jEw1QGYDs-#%$&P8`g`I7y$54(FS>5#ha*qBFa>fD$H0K4$RYiQjb z^XvqOqZw|#+ivS)SUUD7{PIx`HF=a%0NC9et_)lZMZ*uB9-h?8uA`~Cxw}1_VVzRc zI7M&h>CyDgpFw^+-BAvkeduM%e&dO+?!VtR**oOn3w*JWLBK{= zHdE|@!HvEcQMKMpz}sCPI!Njqlp8DssiX@Gu4+f5Z{T{rO~SS{H%r^){*@A5)qR`a z>^USyULUcsY>9#{R11yCj9wdnMrrMb0psCsjT82=>So2Gn&Yf$1_jPF`VBw(%gw%5TT>?kxFtBS z8<3_?v@9QVN|KgE2yse#;U)zn7OM@N4026ORhx@^x3cf)2$f@W9R_vw(Lo}$8}U05Jlw@dky&(KZeD(&T_CSY0Cpx`JbPsvu3vbvoxu(b~4|z2Q!yk2~&R zw;@YNxhzu3kCf-NxDZZIya+8hHl0L3*8)wfy~pAj7zh9mU@%Dmp%?{iM`D9;V#x*p zB8;>l6@M5(kOCaBs#$GB5HLMXVdvn3Q{pfShvIRqT?^)m*8&a_1d%yAI{%)I^~s6Q zLo@9c%1SSF7MW#Xux6}W7~tZ?ukLJ5(xEnqV%g$5Wn%$aExT%lne zE-`sro@_*mxU!5^Geq6c&XlQS8nB$0V+BA~j*nA=08nQ^gaPXn3xa>4b>eK(>>-;6XevW=k zI}aj=5M*p50RspqlE|GCO~pbx;Oq16lxy8K8cR}$E0yiQcHgPiqdBFVu+3m%(wG*g7`KDm zwlUl1iT}RVZksloYM=NxT>WCz%Hi%2k|>c15|Ne^B;+i{G5~PYD}?rS8^Nn}bR_|1 zl8~9q03jH06%6ShW?Q>V|JAkpvDEISPn@1&iGf_1xyX=?7obC$s>n#q%8`O$JJBTc zfksP6kgWG7ERFr_adtC;U_WYGP^tv2KnM{?fUOv%nh72fOb%A8cZFM}P1q}m%Fx?D zmEfwShfBa!_uhkO0p;()1QaCyUN1R6S6+rt1W{Ij0klw(1b_(PMmty~b>K>K+OPzb z7qp=WnnnuT*!-$8UatD-N`!i3J=PO%StgvRybep;xB`ZY$jb4;L29NNVmG%B5rhH) z3=7O#nPqPoB+1$7k?U_g|BIIYV&nCHGyK<4Gn<0xEtsyxtB007*I(K}>^G=mn^OyO z0zWUWQZnKRbr((f@KBeWU!&Sa39+#~2#BGEX(bqf<|>JbkDnvoQ@PeiD)^L3%MCZL zUTW=azPA$$Gp3yt(cH;h&n36P?L~o)859!8N-EpHpd%WiPN^=8sq`b*@u1nvDYH3l zFbh-l-l!$hcFy~2eqOizSlk=0Ou{kO)noi*EppkMJ9FiUdNqw$(*wa%TnM0{1P1%9 z%h8g^NO@um>Bq$Gvz;*`+M4M+!hAxmYbn-ef-95%0XtnwM5h>`yP~kY8u1ZqoV=jY zsu0J3Y6g?#JI%@aZQ4`)ehItFsrfc!ikL{p=|p}(QOCr?xxnzw*kqZjxrLNou!kt( z;)w*K1-_NKDla>hL$d~AgjAU*QfhQV(Fkk%1FnR=z;^Fv>Gj5myZM~wyENJ5yt_ zQZ3`utq1k#baT~13@KevBO?>icr~t4=uW5Bai=^=2*eQ4WV$H_2Wy3*pz^GMJkN}p zqdDJkRz7!ZVOVp8K(zTo=f=A3%irGea032+ewp#*p9}G2%EiVmagp&6wQ!+y zsE}gxU~`-lym(W4?^}YVa`qHYX(s?Q?oH0M>2~q@gK=E^jUbR2BM6t_L7O1Ti5QI;b6jyJv57 zs%C2yLQ2(GF)Ju!>yimRW1n$AC>atFD~2$!N!U<3Ye1teEs?1q5;3_Z`Fka1vOmBr zi#^fk5tDnKsw7P8>Cf}MZ{0iod|vi?(bV(hqA5JLZb{=WCJb~tkHB^*nTL1%%NhT? zpA~8&Zd4rA!bk|jzL>Fwy(WcNY1bPmX(|-q^-Vp&_vt*_#v(|2*nsFeK0F+&EL7oQeksML~f z_0KgGu#_lcqPOqw8~Yi5d2RK^jw7C-Uv@j1{rKU=!U?VujK2>b7HvP3%=B&lVJS4>S11~W(t3Y1785Qah)&=y%zi*rD) z2cG!ug$WpOkJXlx$+u1#~hYPim_Y$%(};$AKX@(VV=Ludr-k4llYY@FIFUEkaDW%1AD(KB z%zF2GAAO6`fcc8>ZeRIg=Q}@tt;O=$My1UV^o#|z*|vMH`@8AcckXK5wqe)&=g4%i(on#VgMK-(8R9hI$ZPW?7`eSQjfX&g9t>?)uSeU@sdj@2QPsYGTADWbX3$x7eut_s4HO%%vMIt+xqn z7I+BzTj0IwU8-G-}+hwuEw-^<6%3bSsZa)5X>}9&e3p4F^-hxa$6Oxs!0wvw$#T5HgaNa!tkb4CL)d+(mFIde_>*ib{r?D4FZ=0Z2>y8dS>GAE zcV;40`@Cky8g&2KqyNjQ(3);l?~8o2aK_tTGJlJ%d2prt z;_Pm)GDi0mF8j^Z?|El0C|37Hg+B>4y$() zULfzp`f07)8->T5eZS(KGlh?y$ZnxEF!V2+N4a=#KOVOwKLWkBMS9iK3;vZDUi_7> zuYb%v`2DX)TuD1nW&xgSZZlRYu-Hg5tqkRoNS3XGvXoVQ%&CGC8_NKrT(@sB)MtPMzY<)vtcvTfy zj$*fll$fqhwj>h)KTp<|1m0zRKG4oW*^FwqM-pwL8o(oZ)2p{FHL4%k<(7l-$f(9c zrXSX!Y8W6*)}$~7WHrc#5FHnKiCq~vAr!}k`ki79=BCbVY6r)JTrf-y%;2!ZZZ+Ts*#V?9OmVz9h*^0Pt0|p^NkcXGx-j z4td^WWs75*8jbZh%HUmvim)tnlB+IFdK>TvEU=Na$REPfc}6hT8paA6JJ41J#npmg z>i{#l{sI=etG!|9e)V5OlyRdsO9rHV{0A=M+aFiGDQVJSCZu32NJ_jkLCcb_jaCj9M8^9;s>% zuLA~tgaGbePI?={;cgli1@{=dR%f3GKnDGBbY~;oqzsdrG6-<1EDA!qC<29p0KzpL zq-}<1iH%C7g*o)!{;*fg1~2ABY05irX&jCI>x zw%%+LQ%r~oz#x_yrtMS$q1kM9@leVNNdQA5fMF_OxoUx~&!#eZd!;g@c@f!%8{r_V zVY8j#psd_wQ43mt7DU~g6fVNLP!3)5Qn|YwgF@D@foGeg30L-B%IR0S?+$9r*E{>> z!gu^pqR5pJhPLHZKe4j=o)ckEfYn=K$7pGXdR1F&68&@Oq;czl%7lta($G|#8WDRVCkRf&@)ZpR_Fz@;Y`gpT_p;zSQi?Nu_Q_j zD;b)gFs4gy52XC~%6I3Fznae(`vcvB;EdDIb9?S_kQAY4y3gu9ue7Vfg|YJ1ESsfV zRIGw2iv3s&fBRAG+{X7=d`J7aH=daHA?Les&iwU4KmJfDPDLBq_&Hd5^`M8PjH7Bu!uEL6*(g1l zubK?qQt>$ifJ#9eh$0I%lSBk2kmiOe7=VNnr6LqjW(>4Yi(Gs#cYnANxYz{1Kq5CZ zU=T$*P#rB%Q9vYdP$?Q}3Q@LZRur~rdl`))iUd<;mh7RTh5tf+{%v&pxvIYlWwHKt z_h=_!v=1J8XbRF$6l8%83P}=)yugTYn6!!MBXJTZ$OHF=_m0=#z0|x7Db9XpurWjS zIabOHG=MNyEyr!-NfXDOtiVzrunElcYEVX3Iv`BAUCD^5hM~YCUfXq?IC6o%|KWMp z=j|1KT&{NP{C+#V}Y?1q|DW6aE6QWnC zq#`x$6p<-C9avZKK_j7!42ukZF?rWgg1aw%XPeiFcyupmN#I91!2ry zo@`N+FqPe8D`R7VPUr$*aJmGJzKK7DVyD5@>F%rbj3>QX@* z%o%l-;Lr-|LagD$3sS=`$KY2`jwX=b!X42x4e;|mJxwRAZ_oCdXrSj9_g|aO@R^m% zGLORi{G0#s`3rtM=Xr6<)BXJP^Q%^vJ};?Z2hu2%{_4Z{6cI&_45-8(W1uDc;N3fZ}!=g7Qv$oKsypRaLVrIT~kWI2}~ zrgky~W;H~*40Z4+M8dwop6+>(Y7PR}0SJT?mYB!rVD`lOiJGeeb0?E3FWZa@O7X<# z2p$q3Y*e&}0jdzx0PYEiMh=}xE!0w1UQXYBRSeSR!^CO);y1ac>F8Yi{lY$g5DeB#Z41(vM0)G zcHM>)_r0w7mf1-lk{4~(?{P~iAZ)~o8T1GUb z=}NwAUw%REGV^3{-}C3lk5au_eRa|DfdfSV7#~z|zat#oI6SwHkNY;xk#hcE-mc%@ zYk1eQyVr$&t@-wSZ*h)+v&9pBywQ(2x`y4z^U=P}dR~k7;e5ZJu|3(AV3N+gEZ@j{ zg61{4s2ycheD0V0JXHEST!a8RaLhIznaRbXC=U^8_x&(fuXNe<-UR{{9lk`{rH7g{ zQ!x!dQ7KINT%Fe=2pW|{#&T!fCun zgM1|4bl(>5FZsK7E>zMh3hn}C(oQFGWr`^6Eg93N6es&(JsN(k&AQSS+5Lom`HP+U zXS>#)XWy&+>l3ePgGo6P{IWVo%VF`PxJhbb7)(X4u$DZkkq9gEg|A=v`&?Q_AN7gT zlS=(qfBn+`pKmAYU+2CZwf=Mcb{rhWrep%_qEMNL74-hXGTeBr7^R^`O9CG_RMqo1 zQC6VFeklIquel=m`I{p_B#uSV5)3Nw06C}xfE?tyuAnsXacSj{2C7KO>p8k|GP9Dp zC?Ty@4`V_PENwFt*U^@#6)aP1v(5SpH{mQ!jiG(XuiSFlzfUJ;@Qb^z_}=qe^7!fq zJ|fno={EO&VW{;;Ig5T56Ej0(7E6RW7|UWHMRzvClrt-T5=xYU-}-GE`J$ZHqgU*l zTk)lnOooDdfFH1>jXzTVmkPBBW8@dln_T@iBfhgrYY&i^*n=D}C5y1e%4#r=+%>3%6_D{-Bn zM~F&Rg-s|V4DiLZ05sX!*(Ipl;xq72AYlY0k&y(4B8V(-iiP|e#oC|jbIDk<5(6ww z*mRLZYU3E72uTHFvr!UC07lkdEr~}|UH*WEvzgN|b^zrGU=ZtNIpB?hG6q82P_Q*D zS`A!o4H;1+0g53KEHtsF$f0FrQyjH-Gdu{7*uV5qbSAsVM_419dg_h}-Aw`s0Zqc`^HyUhibxV>(7R8SU} zsOPZ%!A!Wsc$>GWIxLJoG%t3(s>hep|BqaV3bIbIIL}_$?cPM#nAU6`e-fjP>&fkL z_D_xfE24kp-~Aih`fR8{JTQ*iRs(Z}%oEJd#B`XC*pmFMeFp(?8joq=*f(Fx=Z_H@ zNP!+&*THdvstg{^+TDKX)#GgObX@TMmOy7%84ENGD2O`4_IydY%V_B^K{cCPM!j9D zY}UA$c$tw#bQF9}C6P>+ac@K>Lj0wfy=V}oE!U%ztUu8HhFEk0Q*JJ#(HL-Kxr z8Zq^){=>n4KD#?xXB|7BCat!{HFj>>g?N(JQjk}kAAe3y-4tXUP&hGH$X`5AY_tu# z^OpP%-Zu%v~Q@y%wcp63;VDh#-*O@H733{Jt+4S!^zGA#gX!h{tx)@h|GghGfL zcM7scWgE{=U+kXJHtYCxXiz>AbMvXsx}WgZe~kZkd%T^?)`V@wh32P|>+#oDyN9^2 zwBQQ2@vF>yu76_91`1_K>e*|);ds1f8Hc;gx8uIE;>+mo?@8+(eMSZu81MUc^_cBv zjXWY{UhJ(;9Y%lQB}cw5=f!X-U{0-YNWGh_!aJlIO;a#NKAN8ycu?KFwoyHM_FDrl zM<)&1+g|gRuC0BxyRn6u++%Bx-6yU@wJGxkA>B)^p{-5z@WOeXk*12VR%w8icrHMV zL|cxbH_8*ITnPvQMX(EYGGTBRKnY^Fp`m|t^n2S4eStR0`WV{FL*91h-GKff*v;@F zwuvQT;e1Sl-IwuUCOsR=7JETRs!@tUf-fX&Po-_OYb2ZvQiAB&t8$YviCYU{_^KCPw!v&NXt5OQNyjzH@@`O-Ry+x9lZfwbHDpnWS|p zLrJVUMNOJGm{&S= zg~C6$SG)gGmhS1Q_oe`@%C%;+3_<<>S&}X^i0&pfx*_=ilw07(CXWb8c5!KqElZD- z30%NT3v4$U9#6G}$2Mi1ndyFu<#PtBL6_C=4pZY|qS)=;m|YTy#}^c%n>Q5Z5Tw|j zPxC}%9bgT!1(`r3LJ|o?CfOV=yajc-Xq_9*RCq1JYiY&Pu~sIti6U)CIW%R-JkiOk zE4TosqS`{egb1l`yJ&7dN8=G3Ym0(`C^qDn-Fegt4>s!uSG(0;0^PkLd^BR zRoBS}AOpo*QnEbj;LyTNpVit;jnl?G&LE|jPl`dS?z6$3SIR1Bq6!FLgi_{GA$~b| zTPuv3)Kwu(n$%O}`xU=xqrldDRo86>hdNU^>Z){+Z|2t0>Xd+8QcG6zY-c8O_n^r} z*)};ACeCJgU8zJFLWrQR6bw}BMFyxS>~C`J_H;roLc*1jNCAYT(2yD;n5;|4OlnKJ z=6SmYxm1{fMUwB(5Bg0Yc~*%gvIO$eW=R8cXu`V1U;Zbrr9aZjHs^8)wqw^5^#0%{ zdE3j&Rw#mss$2`M8(@uB*ePE9>?+18Bp~Ij^nH$&-oNs$l!lBK8(*n-OTA`#fqk<+ zoGGmlOE`j&4qz6*P1ffc5HiJ7Y@mT+#01JUj`i8DzIvH0T~>Ml>eQ<~3l{WW&HR@m z^|$M@Q515vFxBg?biTaKu6Cop{a=p6g|F7t&lnoM&?}=ggW7&>%1mqEaq*I`j@~!~@e*dl<}kxk-#4k!G392hJZ(vQ00Smbz#&Ve3~=+cYlbPI z0Sqa?Nv2g#T5$#-urixrp%?)aAykGc>qIMPh!7WuNFX3gWVmE>z=hlriW7AkI-Ap; zm;}5+GZ2N<7SrnU-yh$f;U)CzpCKX{!2a{aZN(WX*=^MM|P!i0q>t>c6@&+H9Z?&P4n4lLmyC- z2{55iY^S50T=rzS>M3#ypZ&%KP!Z78NI%jmzEyhS{j_abYlyLBx(v2TS~q39t4LGA zym+PXX@$7rC5fmRF~CL}K?#VLM0bvwd&s>Ljh!CHau!xgF)72Sl7uKhrW|3eW46>+ z`q9~&mFqHi8tDXta4b?DI-_<8N1mt-8WfR$kXISRiLIa!$qFe(J8)DxX!G{{{c5#~ zeYoRENWB~V{$;NJz&BkW&e}qo4HQ-(rIWx@=I=iADm9~>8o@QJm2?A(EEGBJ1b@40 ze_-;e@t20v_>JDjXY0$)(L6u2C-!WASIV)}wW%krF=H85ZPG3+4o3(UQ@piOn&Fy= z;&kR^muQwfIrdyM1}LD zYCYwKsN3ARWoL=k&vF6oP2Ck`5$Nd3gsc2ay%vsEi^j+F_ST+|}gx< zA5I<6|B~y%M-+DK9)WOQmShcxMNZDhXxL7lsyBR1R(9tRWV7=N(PQdg3%b7U?dX+l zP&{pOm!HI~wJ9&?I{VjUXF3^g+B#>h&z>b;m{da%BL{u-M}O;wPI;;aBLLW_2nz)s z5Jt|^oiqIS(p;}FokuVyIA%GAXTSaWJvW)Ne9loi$zDE0!BqY!|+bTNHjNd3RlI(I4qKk zkZH`i@|tHp&ggc6XQ%B6tblSkmA2`=k{F95=?^7N+c!)!<8#lj?s{8c^-(z=(W19V zWe3)R5Ffq9R4>j2Xeqsvi|p?D&A0!5@749a`ZC9Aww=>^U;Mhmug_cmK_4uOD!KJh zG>6-3-n`{}MSqF?RQpwO>`Un(ai9wrQR#zvBvSe)cj0#b;_mqDeV#|fTvH`7Fe2bX zd}FT`#Lz>I&=Zm!VS4z()$Y1{-)H-nGo@Sq<(djP_U!jqturm;t#NgZM)vH0@iM4G zRGPm^jG>}h^Zoa_yf6HeG?jRzMXp#CUG{7#uTb43TTWBgSP0f z%3fzzVBVQ9`cf$?k2)TlEj=H@sLXwd;bTH3Q{7%UPp~4gB~wl$7ufBk`8cTSjn#G6 zaXfST-s@Gdl?q^v-jyAtDq6NljwgN5 zVVYp^37&E03-yh_=1{KtCxqF8XT3A_AD#a4fPs`S;-;UepSG`?-%@>a`thrlUvcXX z=bQhcpZp%JXKwo5BW#V6SsfJEfgmRLngIgL}5?@tFT$s@I54NVL7W zxJz-zK8PICfVgw2WdWy9;hRHVkmv zaT0Q&{T>Rhnwk#_Mn5j!FQfA-adQ8k-RonW&b(6-YY#u(<#Qpw-iZ*`L{=G9{cX3l z8|a2#d-G{oE{g+M1Ys_v5q7lHvPq+xx|Mbl_*Cf8*;cf-@Y0WOGj20@%G%@1hBMD2 zMt#xwFEIu^VA^4EOs6lNeoNVLd0%JGYE;}fwbx;pc)!hc{G5CY+XuJp`15sW`<@;N z^sK<7Cz1aK%Q=@*OzU$-~|G4 zS_IDWlXP3f4e*$OWAxj2Sv~%A{-uX%6*8!{8-v9(?kUu(2RWeX-5N00=LImIb|_?V zP7Ef2QMv`*YIv~Ayi~fRCA#47E`+2{hmE4?tXnQ!y!qNo-}Z~sRx*YQcqN*fT8Gao z;hNao7>j8Fv$=q>gY{XXH^=aMgKTYXU-JDWc~@|j>_18r>c{MY{a%5SQU z(`Aq}55BAoV(ACyPhBbvHaKaw2opq>*#@9)jF*C!zcb7LCqbyn{s->I!1ZuS0IJEP zQ?M)~0ON8BR%+H(?>5l}n;;y+-zh*wxJ;_%u-qbPjUSlH#=yTw78!RqltQ8ixEe;) zzT{S{;E2sACJJmA#PZqBdNFDr8ePKy*@rVtzpXfq3I)jrhhS5Yrf%UVVlL{FA1uTJ zm^t50z3D~5D)VWP0VhE^)_y9AeubimtmRT+k5l3eN2*Y#L)GbtNFmS1117q`}KrYYik&2(yCsGMA-WUv^@o?DkXEb6H*H0pB`SjL) z3krHU(1Pl3+x$W8ZrnD*;vu(r%_9sY+^2=HY#L3uU`WcNgJ8v?sT&^AINFc_3@JX` zk;|?Tf*0T`jOAARX>DWxH=}=I;dkx&k^1;4_44O*PM#iw8W{m7h4W9w`Al$oiFqdn;to+yRPUzzH9+LWG!NEI6TYE$HQceSBMZRzF|&n)xE=v_ctp4 zuo<-V{aj7-ZdQ|y{-%HMr}Z|;vUn};VBkTT+?nYg>xy(D`pmg{cCP1WxlRj(I(uPu zpp`0Qr9-zqAE4(bNiJl%B7$Tbwrb5A)+oEFDu6*stS3q1@#s*AIQn61UC%4e5AoY4 zDPH4!YN8-{BU)dJdsgJ?i8xAuKH35TMce}HenI0E+^n}DM_ZJVt+!sEAoba_$VHvx z4g6w6?uH;uPziN{%>cF`sstODIL!mPDpCTum=I>c7HG4LNc$vWtWXJ60VLJI1tpaL z@#8=+x?2YXWjHLoFnZEUV!{Gx^MTgAblD|ooXS>kzca8NFN!6ikU=fv zgqABKGr4LanB~|y1g@qoQZWL#Xe)`+shNt);zSxFh3`hXcy{s20%Iik2mH*%>7Q+!QnSDL(VWVYHii!`AOfmw%2)EcsjEv1E% zyYEs^75V+RUt49z#uRTTC0|j1VI@Nugox~MECUIV1Puu)QAjwVO~qW(I;NSjuH;Tz zeDU>A&tIc0#NP>+D~&7x?X^I$mZ+Z}Q0Hee$j`~DUloS_v=mMr`k-$ef_iW%%;q-81`{ta9sq+|={L z&ur%`Q^rp3_~<61ikDufa;wEtZ#V#e_ip!3eX=jTJhxlDG*5iU{!}jz446AI?6w0p zf3dwyU>@FCbjpzUEdF169r@#1cP@FYnW5O>b~oOZ3UfjJR=je1e*I17zr8$Q-r)TS z{fz{63&-Yt*)t4FKp{dh0)hL24dBz#p)*qm2dNFftQK(&xMiQsyK3+>!+d|Qv!8!> z!p~oEul0P=o9FDh`7b-4-~eyX9W%vou24=Us&cK_fpI_f6@j#;D`7Ygm|nT6+IF0< zOvj=wu>h=4LGyyx$^FCG@N?zWdIn$lq3Qqcy8G7^)4Q!T&{*NR-j8B4gD7y4G3daN zz^Jk@RG6Sqg!*L~U;+s*Db>2y8>j7EHI|)|-tVXIS{`A4`oFSYC4(RpN%TXEX{D#s z1Z~RZ2fmG&HO^_oYr0V?YJAi-+5rg|g0JwSSlFlVr{u6b*X&2Ie)qIH?E&;})Mhxu zY0w0SM-UH+b?rALBB>)a9)=~z8N#f*zt7tOCxd4VfnZ=TUJlMJ{yAZdBEO>K$2V_o z?ceJ}zM=2sUuT}#3r<<~{hvDY;+}WeTVkU1np$D5!@%csDfhUZ?yK%Ew#O0hD_OLkLSM_;tmOBAPR**&(+8zvxQE%{%+L;Ei~(ILlF*12 z@}N>h2UHLiM32&{rb0?V+<=>ul(z(8rH_UpI=1ot0QAh|cZg5TznQ_&E`P{+@BDQk zVb;mRy-;87n!_HaA7hU+)ujq+IjgK{k&-|G0JKt}$AB(v8P1L$o7>l~uS{~MPFhwb z_-e4*vprGK5mV2Ze0_d>ZTIKD?+4S{f1EGxLtj8!n##Dna5%lp&(a{S0V_riHcLY8+|0+=g8 z?0`DdYt9xdhEnC4U-@iiwOR2*nBbaxagL~(NH=i;A)+Fo4VZ?j>(fB$!-wmn0$rxX za1hm%FCkG{Wn*!kfjEGa_DWTLaXRdEMGy4?|l@e$b&mzo#(jeu=V~wY(JyvDPX@kMG@`&)a8kBc2 zSI>$5;uZU0smb5Tx{8%EXSw?Pqtzc;teyF$dmA&B9Q3RZ?d2T-^@V4 zX?pgq0iQR1`NeumzRs9sl-FjXOP{&Ubmlr6USRHhDIYYYErj|ol_-XYWrAT9PBfRN z^Yg@i`G55--)gq^e;&rxrym`h4Q&MJhBUQCk2FmMt-6)=ntUh*R79dC6vgSOc6RZbmg_ba6X+$=zlMvKf&SNooZ<6SMnz?b(8Ao|OKgVnZvZhgd1Lf0gCt#vzo zGRMn*Az2P*2n?cgL^Div)J-d%5s?QO6^GxY?wa@Ul=w4m-OfT4LWg;~BWKr7FE$<- z;ufnkEf#0OVYkw?JwO$FoY5Rz5r27hzbyRAn>b#=vYLxe0HnGw37`s@KnTSMn))D4 z0g7YW=2=1%5L|a6qS9HpS{DsR0Yxm5PK<@bcht#1I!Y7>W3yfBvlM{F@~Bum&#x`0 zfB2nUcKG1BMy};=r*3 zM{|e%a~aMlkCce%-6?OIdD72m49;l-u5v9A37AgxNZmIrhTK2Tm6y2gTf*WvWP;K zJ6$&ajKsTl@2xREWiH?)dWskb+*f#ZX-O5}2k9RSxcB|fyFSKQ%x}ay3*Fw<{Q1{c zySFkp+RTIF#qWoX)x*@cP*z(4e0B3qnTe+e`7ryj@YJuo&ds@om9mroq40-q&EMLo zft2QWHeoQ!YZ6BMOPG#@zjxf2Q9t9kv+k`(8Bx|_v$fjn((Kvh-QQlz`0||i^Rw6S z)aU2J_x8KL%va7Cck@Vf!I)4Vh_G*MM{&YW=m-(YjzX1!x0Q|zMMEnA_yQggo$gGF zl7F<1)EsKH5*H!QE|$MarK!A;05Q=A_JMha5YPv4kQdq!SVkC3!5T0e@(m}pzzi73 zRTqqa4TLa2%~(v3@Cd;mtY~Cb3L~SyPV!NLK{wrepzza`KuQzEa|U_}x@MxHc-C>@_-+Zmn8Gio z_?6PNrzioAJCA4Uctkc!wPt`lwi%%_CDBL*xWI0m+TRr!O2yI>*N@wA&WD(1q$%`= zklh@k-y62jl$e8P)asEWl!Sl_pgbL$)TPa-R~d46psC#3S{@kJc>9=`T=g34yLr^> z=*QRd5_VO3Lb$G;V21^~{0-!KAk}W0W2L*yQfR{eXp-bY{*UE0i-%3=EaBMJ9!|zp z{j-MOI-cDb1CF#3DcWt7{j)N}cb{*B;~0Gm<7)npH~| zhn8rW8|lMis5wv6`S2u$kuXK$RGRpMC@m>p61>OeiAw(+_m6ZKX%s|FYPZKqqeA$R873J zpQi(OC|TmNQW1~)6LTGIGSL{IVC919jzSgfaTMXu!fp~bKTR|3xt_gTs~+R`ir<@) zMpJE%Vwep+t&=|JFcV47ys)*L})+^a(7Wfue-jGI8PX%T{k!Pak54(lv-tGE`yAZ zI@HF`Svzwv(JPfjx4|G!2<$BD;*}|l4dX(S30NqEOujb@L}$BXvFlh5fRuaxv-|XQR$j<~pptL@fTYMU_SY5)mgHJGXlP4m9D8>s?}fR=>@VVfgOB z^QlaJ!jI?6?&pht|9{dC^8U$`-NaR(Is0vX***$kE#F-gUq5;d@%^#)gZgN0k3dlYmG&!XR%Xs?g5objD#X)uf%B8kZF z#iu9F*x%p&?DcPt7=GCNj+l^QLeO6_^eBnCG;|?2e{sQMZYus@?)5*bI zo$fGmh8^QhmSJ{mnztW0S8%T1<4#@^MC9XTVApb+UDHR#E?6=0@S47^CRPjQ5JIuOW0!3Q_tJN*x$b%OGtcYzeWz&M z>^jpvTLm)vXbN`af5&HIvbtg0-Dzjs@bee=2r?Hl3<;#`(luEh;WoOc|Bw6q|L!-8 z2F~%oFi=GtA+uO`BE0fy=UT~j_*}z;dEaok6Cn|3qbArwk_x3!_8u3`U-SHW|0r($ zmA`Mp_jI|1FKzdaEneaq!cqYFp?%3AD8z4vc*k(2RE*%72huW9uyP_%MqC7UphiR> zi8P@QSpfiq5w4_VD1>D+jo;7beY**daqnL}cm99Glhc{Ee16b%wVV6AYj0^StGDRaHG%k~94MZuEY`eavpxn?gi8UjE^TG+B>) zioqzGVcomEVpB~hHkp=C9PJn`2VWKd`VG}r|7>SixYtVr>ib!nHOliXG zs((8W;iXWCaVfok zaLCXn9IPG8Z$OVkUfjOFTkpte#gSCVWne~8gA?V=q6&!Z62Zcgv>e;&IcYBU-?Oos zDg!_oD7Ck41~)Q63xq)p1QzQ>OhgIVqQ+^S@_4f<%ET74v3TT3&?A(ElA(6&cyh-! zX~sNE#&cc#(J=N$XmpXG$tE7gna|1k)t8Xn z_Pw$``=0XvK|sF0)q@3q9N%}8$b$O-AGVr!Yc=EYp(;EgZ1YyV)eEY?UisStj)B91jA-DR3ef;QD=#l{s;iz#9u zRfEd&D=j6Oz2VuZyPTYa)>z+H8EFiz=D~6hZ-s?Tz-;%PL9dw?w?B{U5B(y4p4bxj z`l;2Q?K|Cb!LM=LzrJpQQ74LyDo6=JEvZXYQXi>1j@Ym_G0Rn0H6m~Xb1&bEcX};k zUCP?Eqemu{&m5>S-o2@;Rb!5b10I{QqMTP`%61idzC7X5m$qdbI<&s`KB9p8;L^`? z>DRIs2Coa!|dL#D?Ll^Q^Bhz<*uUb%D$<_Mx^Xm5A^3DItx3tdITZ?y)wj|LcgaAtz zC{meEnDQM|Wuaf`_m^SDG&fV(-(%e>sd!Vn`#=b0rIb=>+OGp0$yGx=*)*96rbkyA zSRlT&nPK3aKe&6>Ip^yFJDTyQ!;(R-9oxl1v@m=l2B-ALJSrW5Vpmx_|yo3MB z;4lpswY3w9k^V47rGy`}c}8w5-G4QBNO~Iqd*d$TmNe$x*c=pA>5WAfLnNDi6+_(v zIZodazvs4{xm%=FS?k6#Ej|$4G?na??Y0qEap7&)Q-KsG0NMmDK`?rZz1iIw(`epT zEKw5zK)(vn=%8jDsz5Twx9fez8xME;qw^)gi@&D2CTMis+=XMpZXU&u0ATH2b)*?? zXRFx80ANf8OFBxvu$aCb_=W8v=G)u}k@?nT+w11N7~Xxn_Xk+>OKszPaxj)%m;Orl zG=3IWt-RdZcU5;ah8jCSIJoolRPGk7p9SElT6ga6^N5LMml>51$bs0JZP{3FZnfB< z3{04zJTtg@M{I3Bt?=9#+XZmXm>kckGagJmsD6le@m%{^y(f*592g>IwOup92I&|q z>Z4&uH05JcC$s?uV>+r96xA$7#?qjWp=p!=62gI4;0Me|dxAOK@yx6C5uIp`^#E8J z1b{)aAOhCGN+_@bC(L*!%pk0Q4%hGz8q zm|I4j=v+LYS*iHfI=zlPdPwQht=$RhBGMi$Cc=t2LduZDfjGO6@@MB-hpTaP?77+1 zWF|1Qm5E{nif7kr2IDihqfUHTclyJT&b%}+eOEtX@}H7uo(!IR9cs_aHP>ESAE5)- z&{H41{P7;EZ|o6HV5tHIIk#q~Y>%A}0X@U&a%B*^=^coYq-#7c7;;!4gfDg;+1NY7 z1FZ$p?DSvWk6-%!<>q_=o9Ke|w3=)a7fQ?Mz8LNjJDweOkOuR($y+PDo#ChJy5{KJ zQG;4O0nnU9gdCp+`#^XTa@P=fm-&K8hTipN>4uItig|+X6B!%3-yA$Dohf+WpWMck z<`V5a*69iW=#cBYW*o7W9u-yeQTOYrZ-7UI@x0QnrO97e=nMn+l=?Zp4r|lHtq1q% z9(iNm!nEbp$Rt^xeAE4Iht|a9hWV`a)thOS{6vFWwsiR?Wv4u&yhLwnypwh6MQGRf zz=#ymr7bHN{d;YGq9L=Al$QKGnJ8o?H8)Rs47u!bOi3i7@ z_t@LZ;*3F%3tCuCzI#DmD_K#mrO6z(uN}2gQZcc^D~h;ZFMEtwLJHMGO&K5Cy3|Q_ zw@&T7r*Eu0 z3Os0ScKk-ST~?Q#D@WaW{^6NLRsL;?2#VfS#y{C@e zH@f421AXiVACH~ab98#LBZ`I7lnhC#8O-*5`g*m?t@6at%Kkb{=c@K#HQ6jQf2KcO z>-$5h-wh)&6m7j(t(<3fif{s^D5W+<8ixb0=4B9>tN6 zJq8{Sl&q$TW-C!i*O+y0VaxR{4{#f^H+wC2J1NaDU!b`+5HHV&~3Ip}&KFozicgpOd%=T5Hi5?hY4qHH0H|%!asH{ImWF zu31uMN_aY1?S3v+`rz_vOl)|t%ZMnsoZ(n}RV;>&=5U~ai&X=elzR%y-92`xEt%*6 z{qcYNe--gB|MqGA>D)sh`1-CzxxjaMwa56$(l2YS9`m!ZqP?D@l&tw!gSd{XABusUTR0DFPo_NsO4@p%x= zU=cCg)4CWlW>6|!B9z`V4zYCb2cruH?f~I~PzxVqz|oKqg@Guh8#En4h_x|zKIT*L zi|d?SXR_z5kMDgN-iA|f^v<08$7YEOf25wk=GeIsL6{b_0ZI)b zK^f7a0Ks9@MFnP|8W9_9(*0odRT^&=+j<38se z=i6Ph6PLlwj6Ib+{Z;V0KKV-6n%R$M`t$RXwUL&ajN4qfb{9}*u^|t;=W&HP9I+8B z5XTBb=@#D_E2s8arV*JN;lmV^ue&zGLDc%p9u`q62=+viPB#JsHJOB#1N+5J3 z07yHRv7sKc4*W`b&9AQvF+0>&DdPeXWneB%e7ZmjpnQX( zrK%Bz>6k505Uyh-#F(882O6cp5s1d2IG8Y(Ni2nXbRI)heL0`#6-p@=2zXtyQO+cH zV{~gF@CClm6U56LD3|Kz0^aX_MI2`c812)1-DHUkINOISX0J%7bZjS~qULctU+?

6OT)&cR6YzJ`@0LQ;*%@$IFShM(!qM_PD*5XYY+bMw%Z2 zY|Ful71#g|*!D2w)c7}8mtOz)|K5Lnwf|Z_uJtzGkL%~vH8Pn}N9;>woVRPPd0niZ z_H%T(#_eY~_kJ%bR2RA!buwMst+UsSjY z0SnC_Lg|9DDr>uD5wMDffUaD@!anwOiJcRw?cx~W6c_?!Apw`hn?N?nf#`=tDplub zZ}JIE29eNGiw}tn!;NYJk2Qvfk`|nV49&HQLYSJ;n7q~6RQllHAI!-=dl&!m8~!_a zA6NEy9Q(W#*t&z#0sswEq>w?&nSb2X?%sV|)z}5Jo|UicN_uUuu=VxzehrvcBadU4 zf0$ij%NC9Y-~EAWWV$h4dnHJbDMOSAS)ZSD^#&UR1*jk~PU3!>=n*Eor!YG=1Tld;l18PcGDRSALL~M~uG0{N+?$n+$vzm2hp0y8 zsJQqd0t~^bzwz#2Lu~AfosISBm8*+GXjacPkKCX7e4ULsruyigaT84z%n**^4xxw% zXN9ospc8hl^gp2Mhi9B>YMT(4g?)1;jSeuVPm5*h-xVJ>VRD%PW&*-#r0*59xl7xvTH3L zoc4S6UiEqLwuNI=jr5R}h*T^}kT7N_aKHR<)yZ}ID!LgVd=>2+Q1E0p$YBLz`xtJc zX}hJ>bzQA;aq2Opr{Y4eEoeJ;Wqcy}lFrtQYS&5@Pk$2P!v=X-o3R)29T1o7mSAVs zzKQg{7(cv^yw!qP4Wmi|4$+~2TpDe$Mb$w-;V2;Gd_nf6z?vaF>bIP5ofptvoHv|7 z-}xNYgtp1}M6w(_Jc_(IEF#0uwDKjG)3Lub;f4H3UHW1#54%567`w-<^{tH;9AkC% zkC#-?$5^RoIGJm?^zO}YJK}neY&V|@j1~xw1a%B{uY4@(i%BYO#~*Z8h6n~jC@h2| zffjb!QBr~7&Ip(HO#e)9vp*&$d^=SJ0DD+oIm@Zvz}}lyw{9sF+JP6(!)wOym>3tz z)@-;v;P}zY1Dk%KZ$8hrjB#m3X8AHNQ4w7M76=d*J2@MN7Qfm5`kDXpe|Km3-R=60 z?{`|#N^Up8ufa4mjik{XcgWfY2B*M+XN2t{(j=4sBx4Qq74KhPr+m-W+Ze!;?Qx%Z z)oZi)>+65}6snrNwcW7>`ugxT612sO-S+av)b{M{%8hPGN}Fr+T@jXqd~tHJ2UmkDJnh z(7WSe!q7)1SV9^;E0-`n0EMsw6aEe{a0hbYT#$%hAfy!a z!DMyIaJMScM^10S5#~y-fgRKtR+_SaYe9M{8+B~Wh!Jtma20riprE1X3}PV`@Q+v; z83$$zD~cgIXxQP91GL*^0uoYSVT@5AA>HT(ZWe46o@gyX&$Z%a%>ou1vioMPokt%- z53xQ0&~yTDz*;m$oY^(=ay2i%Q!LyJZ%mwxGH5KZ9n|$|;t@-o-nd@BwEwe5oS^mm zWz$dd!?lC0a8qmxozk%;7Q7oCS0BY%c6Y|nL+_IUgfQW(yw?x5n2CVYoaTCXi-@r| z;9Lj|_)^7--};Eewf*TF)ml*yRJ*o7~9b3!#1dydqy`7 z;Q5C`YlBNj8!=$2%#~Bw%x(Mj6^S_0V@QMy68H#l`;%UEToc(VFF}8Mp4e`3?^@1* z0I#3wvB*K75I8X!5M57-f%`@s?AnaRwUu9DP21JQgV)TDQ2jAvw(6RNSFh2}D!>}~ z%h(CGJjuua5N%cfQUWMcgks>w1k$|4Px|>E`2098zxr`)PMaEnCvhU?<88nGp6#x7 zJoiu>UfdsQ1LK1946A4fw)xObOiP6eVoWk**#Pud50sK4Kk9JToghq95X*!enTTbk zh;d3gj-}J~!*;TtXyS2@(m52ULb zpNIHGM+c@%5Mp>uYY;*1&EP_*A6@8F_NPK$WA{l zW&3Q23*Bj);Sy&(uwI}p_sl!=K`}?rg$qAahfgr_SKGPiWgu^qS2Ia#@sQ6^fo_oE zdJ)g3Ddv3sfu0ZIkEoNYGyu_Pf)TaQ6vbldrdd)Pht{_tev!d;?n>4vs1;r^hhFpv za%_YFVZtrJ25K`JtUFYcO*uW$>Zv`f(CE=yWNiNlneqMuJkMAD63XS?w{265 zgKcN%6%^D`W_HY6FN4QP9xY4s7HhpypBGjhQ@+H8)I=EcW{zislf%iv0L8JqT)3{s zOnrXdTxEfjP%vhfIwk~F;-sI##_X+Hb5@BWYyu`tL^Q=to42s)ltPBL>ui)|9?85F z6o|>Jux>;@@0e-F{PqxJocuP&?gxBBK&`EPr(RW2f;tG)e z+`$M|=Bx0@U=2`}7FaPbd`E!Txv9QdDz?40Mow+BQZdVT_qpeunM^}e%(9A?_5nK) zXwMaD*zVOM_B)vqe;E1|-t#1&y?Y^|hPs^JBX3k%%VYZ_NYJm0nzpe$@{%Z3If0=% z)oVY5C#BZmGQDg1*wS5{%Sp6L=zZ-G3?a@66;7}FngT%99JFDhIJ_v@D-9*y#&s%k ze$#&d{kLH8LH_+Er<&hImfLbauFlxR{n6w>KfR{_p#X z)6v^(N}Ak%K0n{hb;a{DcZw2pd;Ny_p;pfGp3{JCOoL+E;e$QU%2!T%J`oxi&>S4C zY1VzB2+accUWKuwO9Hy`)t`k!p4`C%2nKU{&5EL!h!9M04OjsnfyGBuhr6t|Jau*P zMfpr9Sn|f9|SRx##t6cLvLf zGy8S@_{XyJ7r%X<9=yCZlaYDDG0WH92$u~5x50a@${;L+GrmV=ccx{Wnn z!2;yaWot_cL8MNVJwyayBS0CQp=myM^Keo&0lysO7#$nHu*evwc)&P8^VEE>3Zmv% zWBZl^sdY8X?YL*$Ki^Ys-^B-QP*$1_N-IAsipX@CDs}n#7IdaEgz-;%K!onK;COes zlLy@mdL?zTOmqL;{!&c@uQ}W&0TgSta;~G{Xe2yd%eRjtN>-^p$$<@{f)@LlZR-Fl z#Yw`pl~h?7OmdZwX>rMF5bDJMlXmmBmz(o#{n=-{o#o#A`OS&C>*Mji_PqZ7Yk2ex z{iYxq5cbwV@UT6ua9Sa(Lqfo_)C@GvMHWQa!GN}eNHDsuT#^d38>oxi0$0*H)Opz0 zxA87hkZOxCET89j&F5Fk?T(YEEGIA0$e^^LD2bMEp^d4QkkO;YhIK##iGUPJHT({< zpuV=*jqfX}aSIo#q$A!Gsu&EWp^ppz;}C!?l9Dg>eAc&YixM%5etB5fShZCXNPEw>R(J>MQyg0R%3E3>wwULH15iimJ5)yhUM zq@QRny<~}^V<&{y)zV*AUG2@6=e6|gYJz;C?OHyt{rS1yA|bp1 zMUt9VYt#Z@0qPd!lLpdPJhl&t72&b)%-yX+n@j2dzCCUoK_;XN%#SHPj1pi#AkZaZ z5e{;1gfD_Vkbtm|D6nFCLKvQ>KWt5-e8x1XWo=5fa7%&m;8Zb=!;nER!WA@2mRUT& z59twX1r}z6u<$YR(sR|HiD&#W5OXLFn$Wf{Sd&^uRboBmvaTLx>xaRTQi<7S%S#|c}``}^pW1Gym zaY~4$LSbtk)W=iTe8{hzSMFc-yv^@p%z2Hg-Lz!T=}94H`ufCKPtR{n-Zx$M=KkJX zXP<9B@BfS*+`YHsE?S1cIGk&+x$>~$y|99dhPt)d)${FPjh(p;*nXB4O&xa<&y=Ov zl$t0eQCOT))yU1Rrz4-8yw$}QHJ-OydoR*c+Z7ocn-FMa3i7FZ17cm64F+S{p=8L5 zfgoxOFv!V6Euv}ALCg@J=NrUm-kv3VuE4n@DmuI<3SBDN#rAFfU;Nu;uKa3e|M5%v z%#ESy#!JuBF0bip$}JOg2l>D7m z6u!vdHpK@vW+E|@1pE$WPu~JI(4E$txw9j4%`3a-Q($OK&XvwEV{+`eRH!u4=h9GW z-zQx7f~7~*>);f3ds_G^kvxH#5-)uEBQ>?QPF4=CfYT;utTYURl;g&fMXsK`m=0ecSslQ46;eU?*oejUj4wdjJ{;2a*YCKp_%i)@jpi zC>QG4I(@^Tk=+Bb4&1O02pSBN9&yIUkcC(iEZYOXgiYtjjKkaN7c%nq8_Z<<9wb@S zgoJC2`)cjn6&UX6O0${)W!oH+?l?7NQ$(8R^MBFfe~R5&|I28~=l}Ho;k&ky0fC*! zF*XP^%6J_*%+MB%DDKAQfO=xDSa%&G-mL<)7Lx_knwJMSiBVQjvB};|pT1mV@0<-i zXJ$w5r6Ce5Jb@*Z0R)0UKml2@H=5g%tx;mUqYYyt%_Gi1VRZ~pjP?M*Wr?7vc-*j| zptvs}z;Dv~>G*&ssTM-{c1-I+OaF~kE&!@kKV_E_cPA1hqHOP&2F^p}2!1#Bw{Ne{ z7pD^VXru->Lv#j6@POQf#hDRexPdRrMh}-Om7fAe2^?mK}(P>+zaI94kQo0SRc9$HwVUqcORrt@I*si(?5Jy!42Y8*BD zZtjevt$sd?Z;B0atX`S?WQQY!Oa7Ff|D75*?B@Ru#BWP>Kb=31ht~sF>Tw8fAOh{p zVkMVG#gMzrpNKDXtZ^FZuX!zOMy?WjH}sYqHA-@MtLJ+?QRR;UlT0FVD5?!3UdpZr zubBh})Z9|y#YZ{E_Akh2w7Y$2*VL(j1#Yl~5o`;+ZIjYs%rF30~WK(0Pc!bU=zOm&Wu& zZ;$sk{?V)NOm`;Tf?G6WwANTW8sXD9wzrB827*P|T=aW5K1@C}-@zUda|@Y1@692I zfK-!$kz5)+F14qQE>tL0;siOVBjmKSwe%v?y3X78sLAx89+2La_V=&8zqM0F0?z!( zFWY~5|Nm{}-Z_aw1;?Z*A%Ipy8fLn zsYU1mpBY2fCgDL?B^)Wm;INEyTrHqlG=ZD}jzEKTg{TMzps)m3pa+}wS}<{0lDmMM-9yy1=J2IN6&->AqR^_ z+ol+KYRYE`_%Qlt6$gq$ApH{vzf@b*6&JFHjW)LsB`YV{tIFKlXoQe*6GkE z9vV$8-=pm%n2h#(1u)%APnHggxONeiM?2}s*0evbUuJ>MZ4@;U@A_!ur46uV7#Ov8 z4Za;P(Ja~>hdsu4Zuf^@xARvE83p=60Nl9|T*^GK96d(kl<5pRMlC%L-x|GX?t5P8 zqlj<2bM{x}3(4aWckRSAx|i^I>uqJ!EL~gXS^@lOC+>I82{)mz*=QV##9pKYF^d|A z%t%2b^aLqn;*97>VFOBAPV5!)i}YGoX7fllm|89b7c?_^X2*U+RZcZiqILJ)7jZdS zloUo`Kmm$O+SF9EB6$n7VDL{(|55(`#=0_{gR}7uo2dm})pU-GvcVgK|i={+QC zz*Hr9yf-r4-)S^g;OOTUh)nkf7iWlzMXa@rLfOd;t_DMQMY7*`sp0Yci}`}@$xY_k*F{zgacqiEHp@g74i~_U6?M;>13XefRln(kKN;};bZr!Vr znzfp*?$7Rm4pgT>Cm^nK{#>tb;8b4GZW`#NR3Tx}P^bCO^zf4sT}Wngz4>~)|4_Z| z)$X-Y>f9AVO7ak61Wx6ZOfESRT8i^b4AmF_pBX@rX1bz)ucNovb>P&1e>|dj zHWJ=y#%{Y?N6ka>K13QMJu1mwt$-FRq6#ljdS?7%rPscl$EcgzmeaZ*Zlgvq>P@!y zsq~S%*7VrZAh=Rr-M{zjQ#^lXd_aA>3j%=L@Xwv1`=A! z7^Q(1;}%FA#m}~gQtU8+X9TZO~FEnLy@cj zBS~0sX>Riv`dZjW`+sNtT?yy!kA5Dtr|a8$5AWR0=i+N$@m*#fiQUh_x!_vBp^vGH z@$sP4w4beGHs42&&o$Dg*n1W^JM|I#r}=%KuZL>Mck0jX&97uq!d_KUodiY=&NhLd zuV)fYK512Hr#hvorVMqsVjh;M=`dc10y1!V+ML3X0ws~8hBluu9Z@=nDzU&?jsc)J z!6Fuz#dHh4dzDjSsv14d?b(xOKRDv2=yM;pI56UR*#)i)02+2~lynM#Y^IKT+y+oOs{%UdtHGA(SvtyayH9gU79Zyb>t&apde#y4@L*hBme=sRX@P*+%#|XbDWh8oxm!qpWXMv$ zV``DI1XX06c#&dvA9-Qq0Y{i91~7!!D1wR|F#s8)q?0%Ub^xNFkP-w26%4FE#E_~c zkt3_n=ZHa@3I$VBzFwbK<%^S6dP_I)CH-?fe$kb$HpAz3tnX}H+t>GVo#32)KVK)N z{;@$hd7i^PlNiu?BV({93LfKM3*epjiaW7$>Ov`#fn#(mC-Q9 z6{%zbU|bENj8Kn=b<`3LOt7U8qq&?pdHmkhAtD#d*9piBkUqcp!*74u-|1vGg!J$f zKf1BUBZOqQp%Q5uAHy;=G#+8KRu~gVmDUDjgpf4Pq3!i$8C)R@0c(ig%UrdQG)PMF zdh^cB5~t5JN&4oOhbDSaLlnff$z=FMH z2la|(^X#9KZ$Hlu$ud%sY8$qo1^LF5Migola%};=S%D<`XX?JH+wZVP0;UHx4kJYo zwUv7s1!bfPg+m*eYJ@VxQP3^+lYDaZ|N3*K^ID_IP zi-RpyWIZiEI$YuU>%9(vUVIY0`lb1IKeZGzk5F^3;WfIKvGvP8RxH1kdT;Y4?v45+ zQiXzK89Q`vKR_riT(4=}T3ubya8$sCXByaTtvPeDMGZJ{oqXU#KM&*f&if6510hOb zC4dG@r~&#XZY%Jw&aZ$~s>&##VkEMgVnAcs;>dTE^^tNFFFVyph~jJtcddX(2or6+ z@;CrKLQgrfTCpkCm4f6T47~8AB0N3GrCtubJ1%TUX|OP&#mRar_ruWF>JBQd%RWF% zEn{UW?_$f;(HvreTuXx(HQH>9G*=9(T3M1RZFH^ta`wEH z+xq>gOxtKofoHTU*P^V*3P_)N?VQhx*Q#>9$-eRZ7H8#&rsp$|N}h>$cglf+b&9-O7&K;A@<$c4;eGWFZ%nod_^Zsc$bru(SCP_`Hmoz-Y0 z3*P3D4Jx1rd|HV4#sCLOQUKaeEDwq>gF099W_VuRpKN!H9519Hu4lGphC}Dm)M3oG z)91y(M1Q3AFIxG(d#(MqF8Q;zwx|E9*|2%k{;S+w_9{PBqAyk|KZA63_3dlzZ1NRp z(P4=Kr!_A`yFjFlrn0lihqR^6#h$1>|_boRrWDwuTQR;iIJuXx9eX?R6~@ z!MaLrW_38ekd$d@Bm6SIfpe^+x6Y*SvAVBnpqDe7RoC=L1|pFHQ~(6@4#%rH-3BoX zGjZtX4Btc5p!TelN34r!P%C_;RW4Hzj9_8lYan=7k@9Xpr8ZY>h=COcRRZHl_08k+xV*cM;$rXsWT6;peY@-L+Ye8@^W@K44qp5#c{cz;FgVNe*tH*fvP} zZR5Q2E7Ee?xE-YbV9ta7yi;}N4s{q{O`byexx;2Kr-dbN>I73x=rUNA`YD*m!k@#E zw}02?Hf~GqFaP?&zy94;76A#d7w!`lJ%&M$MnEHkCsGGrGd0u|e*fE9yXWR`xK zJ_WR|Zhxqu7cFOuaC9}PDPM-H4Z;J6fJV#)T2n#hinAC%f^Lb=eB`wJ@SjP>_b9Ww z4w0w>B#-dMJvk@gbKX1cXxCR~lr#+-^!-mCy-(`{Eh@s$RBH3lHH4@^|@$;bRkz>qFQrJ+W*DID`UUc>u>dVT-C3MYfFYH zEW6b)95zQ)%Z`l{ZV!VSv@A-u>FO2S>Ci2HA%0_yzg3&SmH=O!`}?Tg=cX|ELfims z>%s&F64F{)tcXu!s$3lo;bE|L8m<{;bdcB0ZNk_RG7&ujDKWzdVoHpbbLa!VH>+FF zhQc$7iTMO0q#2_jAbmRdTw2WmCkm5Zcq_7*Tr}SM74|+~jD{}Z5Jj>@C%7?qZuu+6 z`>IW2%#8ONJPNCOQ+r&D2omVT;D`S0$N18C@|L>stDmh?gh(nDB)TS06}1IP!g;6#-kc7g**#uiHlWAauCbcE1-V5hN7 zG==SuOK1r-ybRqWx&~F8IKl)0z%zsnb{Ii{n*c!@)a}F=4U0h%1c6$@2rbJSE)V(+ zQn5j>0C)v5i81=Nkm%HSXfzfHIjNN{iur?+-0wG&z01;W_N{)QMtnRzy>BCHeBpf* z`Wo!T+`5^66xRP&<}EuJGB-z<(pGJz!k_K-0iN4jQuB^)=@ESfraTr#v0 zt@eTrb1(HwVx5Z>umkLo?$v7>gv8OKG;f9@+ePPC@>s#!wdZ3<2Gqy& zP`7XqH{auRZJ)l`DE!N%zus)a^Yl&PzV%dkJ!gEhwuW5P<^dE?tg8i1_EFsjz+2xSjEj@Bgi%Q z;0`?bZ0Ul>vAW%k$Gf*af;xoVVT`tBG$pYtO7afY8nh33;71SYbLAY_oca9Pqo**% z*g;;j?8Fu|FD(=SXgElls{Ud7*SJ&a!}PZOW&8KyD2zQH4+z-K`&M{7=Szho7-8xL z66)~xE&*9s}K|+~6IchImUw>Ka;9#$iY(qetfuX|06I=wq*V;+;Z~0pN%a=rd)Ow61K7j<7XYHax3x*#UY5By&2lE#tI6;D29+ZV@5)Pm-d$n z!r5}~RHFsqMndIg#G*?zNYbuSoeU=Jvc)lYK1NquwF0d*RS34))g)fydD*^RxUSE; z1!+F7qL;jsL7q1J?m4@c%679DcdBxndVK(WOOMq#PAY3g2o?W7%3xcw51N{=0Uol$Mpg0*JM%29~dwNVR6czN7e<(J>c79e{us^EG>ZytZjh z&x2(3;ODR0r?=_Cw^EOryD!~W#>SlN#dv6C+0^6FC2$iYR9(*Eh?cK}E zwOEiADWV0X0oG~c#Q&L<;(SbIunv}oeGCtDEwu0wf>+gXtMNFSTr^6!l*5Urh>e>r zh(#e06x@mz@S%>+qq=l=T|vodn!k7d2#L>EoOTSaJ_BB=*ZmUrr2D4qf>|q%zU#FI zfL7pAnl?1Xz|lU>2xx^#aZ7-7n}^%maNb7n{XRF`*cy+lMH3Csg+LZiC?j6sC)UL5 zq^(Dg%mIWX)k#ge0lS+peiEgZ>*m9|NxvOnEFb8Rm)w*fL|AwvN-q(HSEIPA1~n@R zpf!j_Y0<=>wfvd8{`D?@_oMy)M*h8c|9YOrVUsiZbyElKr|J_wx!3!3H{TA^w%?L~ zoD2 zw}=K=3pyZC1|j{710x#OGv~SUCVTGJ&%Idxpf5o{gE?e;rF!r5T&0RgicqK+C+{ks zOQa(Soe~99#r3q${oK4<{ptOYu#S<J**tsuf(q9if7Kj0>r&gS$cj?5i=<#90cy5L zg!GP8#iSWW+dfX23G$)e;;d z3o$UPbwUs#LwP)#WP2nSQ%X71?>EbmV@8gz_f?!O{-oSLWi6izWVH1|o3;j@n+9p#Xwiqari9g33rV2{DLUj;%2Dqo1i>M1St{=h`bS_j-*PtFTbtUc^_e zqfg~ze$LTx{Uv4&TiBqQ?jnls+Sc%44uL$WW0RstDJc+3kVL^pc^s?d?n<+h$x#+$ zC{hl!PW7DfJf$bPpoQ=Dq8eY)bK1_lIDc&VeYc5XU@ebN@;jpWMBOUF-stN_7P=x>$piS;(H%!AD-_=texk=jMdG z>2&UlfvG`}k8nse9Fp{)^iOj9W2_Kx%@(z~;bCJai-3eE6f?xR6>m@v3&?PUOm}3Wi*0A-*5=X@3CjLbY){7 zD-aCKgs}6X98I3da%ffqxe1^{NJi$&e6ldn(sgNxRa711Aw!HvH7fW^gUX6tVs^u9 zIdth@%RJy7fu}EXcih@JMJNxV>uVZ&+ocF#ES!q^j{fOLQYv4LaeHvS2mbWj>cTZZ zE{to)UFXi5Y;;<`8tuPoj_)b8n=oEGS=V&^{Z{^C26q4^sp4GcmOi;NNB15~)nzZj zf~>LYyx3#*+&ok>O=_;(Su9~hL=Zi=E}afg8PXRUnWyNRvksc}PP0e1QpY~e4IS0P zV1Hg8pXt6iKYYHY{^**rOtS`iou!L;-=XJOyFTjT?orlopEsh0&pab&&GK}zgj_{O zLC>zen*Gc5{&;SGzPr-4s}Pww-1818c|gaJ>?fjmGOZQT*D)AEx|l%4s7!3wWEF&P zs({FaNO!S>X9G%mlsaLQ077CPU_(Xk^UFB*7rVz@&*8`V=rqTm4}o&NG@ca`UD_?U zf~c3N^R?Io5RfKS`WJcfAKz;K_;OHf%u42293Wi%Aq`2a^co+>FolhC_0gNX$1?y9 zHR+%%PzZTY0pPgkz69T;ycj#Wq|V@rWN`~=%QD{fYQH3a$k(E4b2B1+2Ei2a@YncXC0%6J63CmKd zf#7Q;FhiAlMR|n}CCWlsNI3np(`Yg!aM%Sr zDViI4-f9k{d++h_$}($BxWq3$6IlXo$sb&@xZF^4mr`su`w-4GM!1Dns?UpNCo_=y z>WUKh9U-?m_Ef!bh9KGswBmpu0<6T@B$*Tec!8PJxDlyK_TLEu@vr0hpUD;c{~z#u z4S;HLMJ$T@AdCt3UR?>e^*(zVRg8fOYB62Q?;nnT{x0Yq<)_6MUT)`pOtw;8a**y~ zO}X;%zP5z)Y8xV*Ci8U8kiY#lo9Dr{h3W*r5no9Fc^l?iEq`88tWsd zJFyk!!#up!b0&ClMUd_SFjvxF8oHVKEcXndBf|Dq+J4te)7`e2wLNou{)9vs+g7t;1CfpECy*9CWpGO zohE3bW!&H6snKjYSMo|OB~-u|%VTb%YF^mUY>_q@5aLiMg^-i*a$(sBajJ6nrnPFm zjiMjw?MzXp1(|v9oepkVG?fJ$JHl1$7OIh~RHir9#B)qLS6JV?9ZOrjB@F=e zst>#Od%pbv)Pa|zAz+1yQaFsO>BoYiDkusAidN0TW51Wu#~B3)X_jIU9l|6c5Nr_b zl3!E;LTof0)Kshi8l95%K*pL81VCxn4Nddz24F{7SOZ)j6p{qYsA}kiI-_a;Fj^*1 z2zrv(rD+Zj3ownhf@Sd$q9|~ecMr`>|2ufG5jgA;ZAmG!WvfcUfZ;v|fv6!|XFJeH zGilhUhP+7ZtJ8^oSr#T{_1O__@Uyv(Y$ZB61A(Sq;6Jthba?$PTzrQX#zC|-m zuUWn$c=@E_v0Mo~Rlty#>WPY50jy4bO z-K}f-8S-6jtsZ6uJ=_PeVuglK6HGAZ1x>s3Xm3nH&ykn{UM0{ifua}io_4AJxS`og z2se&>^ytH1dV2j_(_{Nw_oj6xzJHIIJ~J4YJr7q}H+wCs@v*JoL+F{&{th-2(J)RC zDr!&?2xUS8wm8PQwtkbwC)4@%Ep)b#2&?<)*QnuCJ5T80xsny((?e^p2u|Y&b|!h8 zhp)y$|j+Y14XZ2N5hDf3N4=eO?}Qy#GOz5q@@vA+dGGjt?7?(gQaRTs7o^9*`{ zZCJ*B&v=m9xLH4qjK9K#CPpBiJJHPCJvu$k?foR_zwnXeb$`;t5eTKOsm*Kh##^%Z zaFuQW3XxF3c`G-3i)EPLaaqrg+md=stS3KCe~M>ER9cfKRXb|7g^A{2Fz5Z?-qeWT z5BS+QWz|?j{hYtNG|wA(ue1$6YGjM8sBm+3 z>F~<R1t2dqbqmMlo%`fbjyAp)$9>t$6Nwo(yVJLz_fZW{xpe zNjEMRqfK$tof^g=q_Ie)0uZ1=1dLovHTpN#$`~N>6vEh{^FDpUql}U>h<1CqbR5nj zECOs$fsMR$b9w_d41%c>kTHhoul_5IF+ZN}vFcZd*J<~4w`B?-fW+^~Jfp@OLj~!W zWI08GckCSG&QI`;_~%@HeohYCN}ofdV@Y@9I8!dhdoyG!$=9 z&Dwnw+XBhaHwalogNU$Jg$`@lF#^@wbSqM9YpN$hm1!q@6|`M~t7#N92S;qO$ebo> zs>zT0+{d$#0R+f6@Eq|BjK#QRNW0bX!{K*sZ>@8gbq**V#S2ms3pO#-)8oe;t{krS z76G<-XB$`bp{Z0Q`zZ1ZA``Ah$&UBeY2yh#7QQ`>J5q|Ur^g=KSvx;9q~4#ePeZ(~ zo%&7x@H?M>@_D|LIBtXiFd${xtRRF+oMZ@%NsDVC70Rj-<+M}E)|~`{tc^3NU8Y1ZkiaOw??h?O#!eASw_&Gxb*WBq~%V zN>3H7a?Z7Wrg_CK!~6MalcPs-Yo|o|F_+hj2_=eXc%;sS-KMyC<#%n#JLIW)fqk`< zdqV8m7{RG#Q_{LAq;?shFuhS$THoLO^LuyJ^AyF7Wz|?ZiN&#y+<2NGs}{T=5BAzl zHyi>ph5Y&=?*5fEv(6Ga3Xo;SxFH{<`@f4nk1>4fExv+ zu$oo~RjZ$6;p}mzE=qxjD^l_r|BhFV3Cx3B*wBE$R4oO={f7nrqmZGA-4SbCjVd3zYK`Z;^;2$xAO1i8fMLR`vsIZM}SEOdob z>&5w~9SiFIuHU%5ltfWp(O_K{ZjRP`XcZu<2a;&Yc%z%HTUB9CqKI-SVE#%2RL1PX zTp4>-UMhO|#7)~{ch}_)LXrMmOAP?Q8ymOM$xfrTz$#ES0T(*9mZ zV0?|*(v~ocf>^^Dm2cO+e(k;=2lxLs^H+5Z|0T(CAzs8gbFO7qnY@wq%z^6#ZKz8H z>{lsLI}zcjDOI)wpL zYnO zy|&$%Mw5?8CcH#p#^jv)j1@*9yGgK)#E&m|Wmt_5*3YBeW;p+5(^dp1rB44bIW1V{v5EjgcBU z&vQN14%)8jK#B%p5c-vop_b;p;-XZsAywA1O|L&F{qsV9Ab^t4BqXK&8IS+Bcls~( z|M~m7xgQhHdw1t}s*o_AqCh^!vrx9{wZ&21T2?wh(Ig z1picgiH43Mm>@(jQr99RE5=lIBH%g4NE##VFDpJuxy$+cbHtqbiHNBQq+TxNYan81 z3<9XaV%FIap<{CcAE;@G{*JlEytUbIQKV?4#L;`8-a)k@ERhV}&gMN8#X% zkuE`@o(Q^yHFVMiP=)~jz(IxYQhm=GKU|_)@;bQ^r%I&3-gY!`*WFrIipP8V5={z! zJopF2PX^k9Xh;oEgK?uB=>tv+{O^@?7^MT2Tg<*g}#$|a$kq!K;C zJv(er3jxg_jSK3E7v0&9Fx5yy4{^ubr!}?g6#kNbs5C?U9r?O+Use~);fH|XFnni9 z&`chXEn}|`6djFLbzcvV@>~x-Z{s=6PMqi2V@DpnonG2qJwN5_(A$6;PCJgb`dmj_ zGN{8%LagK< zO^6K@q1`}P6J~+-wObkckF_0A%$J+VNdeQgs;?qklio14{T;)x0}soC&?O@>P)gfC z?j;}MOsbu{^8d=J&te&%Ve7)!&A=5L(8ip_2mpi{-~BIU{L`mFa#Ws)3d(7+-DX^e8O!b} zuEQ8(ku#1|FK$88S~dskMM*J`qNL=ps|8pL;`Qj8xdcb&=cLrHWQED&SNN#d^H&;; zOW|qti^)@d3oVGUA_Pd1q{IzWw4T`nC}Vt{>zB;U>HTW*sHd=zq$L+sczo<@zqF06 z@Da(j2rZb%v>u*zdE9qP3dsxQt7ewnH5*)!1V(*ZX+j`G97%8nvJi;~0PJRGGZi(k zJ3N$g*R*L9_J9zufiX%2(=F%~NWty{R9qf(3NcYlh>h;wNnEXN#(;fehv#^Q*;yXb zunsSkH;5(9W3p4;ToT&^ zI|frl#S%MDs}bkqhw$_DQ-t{0ytLA^Gj6Sx)zCg7ZYnXjKTD?hsaH@&8LF2+u4`$T{Yy9lJzQxYvQ9tAKxlt?j{+|EoxZ0X-;-rN< z38!ba@x6_E`S`WM`!Bh>a=}UtBaL)S~rCGW)2LQ8A&EpiAY{K1k;#6fQ78NO{^+lptssiVby2VbL3Nv(wqu)n z!q+vrOo_373?4O(>quM9@btzB+|<`zz#EY#3-d_84-Po03PO?Z(py*=pw&{)Hf zi{#me(W02P04|z)1NPLk#PO@;wnuN*LHs5tOpj%;Y%(zSUTox<6T9|C)oFhue_q!Hf$o*w0gtIb{CR701ltbE&Q7dh1<|g?gSN%~ICuCaBv@88*h7N1t35+Z zMLdMiQHO>GJ%n)J_xq{qvy-7Y&wH8s?Wn0mBJY@jy4w`+u!Ss2LKg&XO^VBlGvfA$ zDyg_0Pyhb(KVGxyJ3ljcVgCKHj#VuCcdy?OA8Yd#$1cq)DrVJG9OndcFkB9gA~k4= z9Hku9-g6LxO{$3-u47OrP>iR1N`+R-AE}Y?p<+qXd7)>R<>R0n|Hbh|f0=gW^QF%* z^=|Eda#Gg1$E_hl)*}g|VUacI1zMT)POta@Z#3gBl@GBPOd)(Ezv(FPp&u`eeQu_! z#@&4dU6WuwbPOCBP2TVXJAgF}1kg6I7fF;|BDLklEE;y+rRZX$?k3n1t*bjp&sDtx z7j_pI>A0LQAf=`EV7?JQ2KQY0QkV2H{-N?wv+8shi>Qn1)SAZ^@_Qb2_R4IZ=iA=h z{Z1}-Zq7(nQY4hPVp&sUVdQerxl~q*HP^fAoH`^oohl`+ zc_MvoR|{+uF>gwE+Txz4(mN7MVt^-^{7KFoOwy zhL`<)NBdWA?w@3rgL$uSNwLixAAXqKk7E$Z_2EfIDvK)Uig=3I;u@ieOW3|?((})) zdZ0!UD^~Rgl^9Vq4=Dm2AyP1MG(!X+XvF|(Ly)C0!WlR~O0Kb6NubVoo)4y1}0LCV+yDHuIXj#HDk zP%WzON!xVMMHhh#pLWeFfF zB1A?LXcg}8cIF4If9BYFgO)YB%hdcZhW4Z5djWA=q+ne!P}8!dqS|ovMNMu**xtuFRiO1U0Ka2ow}!Io+>w$y(kw_i{U)^YQs(zPA_m z^V;Dmx_hnPeH|=|!ZQ6${k*mw+A)KAjMzIi5hgmA+(lvI=(VpO)3`#nl7XI#&Yu-e zu7DE|KmZ~D3tU^}Imu)jO4YPbtS}&#+KLlxcS7LU-5ZBb@z7HS_3(^mi=ZwiA}ppF_V$Z9qUNcS0t-e!NkJ51P+)O|2#qI(mt15v zQYH=LE;X!DdM&f22@lWsuBYDRoKha?>~->w?@4mirQCX_yb6n>1 zzwWhJmsQR6xxYO#%E-c4Q5vdM1l{7Rt--B62A1a=6b_sQdr#{{(#Z58J2;;y>9%A1>>iZ3Re$4)m(dssLy+&l&CT>w# z00f~9{suDu6jeA(HULwFwh(K%_gjg+EP0$kO}@%$bN5Jt1i0*{-!Ta0{pTGKRd2#7 zAtyovEplQeY!DD(+Bt#tfnX+kXtd~h+s*K{pWL_awH^DL=s9+6UY6m9{k-%q^!2|j zj0GdXz;eTyc-#I^kpLVRnFE{ChcGk8k)o*GXol0IIBanF@yS5kf1#E!A%b~PlWpkE zd(YGCR@6ETgaS4#(kUEev*<~TjLM(ues4dH|9{u#{|)2cje9*-8u9(~$Z;lsgg`PT z6%i)AnaNJP&uX@(cT+&IOV#MGubmYRt|s4dp|w&mMJ^%b^NQf^|b~rZJCJBTsPBF2_4(?rX^yBcq z>fXv*Jb}jG9y>$uo$b)xXPi~zAI_ABi?wmnX2e3{0dNG2=c(kyw^ByLp3NV-EbFWC zSXw|!(`;aO2t9DoAPW@5ykSEG-L3Oh`PDQJmm~Q~#n}$VKJCPK-Z=Ene*#xNj-wxW zLrEF;Sm1$RfSzdYeIIr}XbuT;eHD2PzfatBzOmq_+5wL@|K7YC`^^8E;y;cPmX|;K zpY2z$8TBA&RgiEa?ae*LUM?q73!SXn?Jb*rzTxX5bV9GKzIQAi)-f#}rL!5K;0nvI zwrw+gV_!24g5~^C+Do*KoEXoOy3Vql>f8PDAAS76(vrU$%_}n8V4t2AdA6{_kvprs zv8;Ba&92sGJlgnkcir{MA_7n!H~sk-U6=XZdnov^NqBS!K7gP2Tj@I@tzAL^YbP>+i5 zmftwivf!%ROK?(j@PrI+UGvMINVPhg)0%|nfjKMvDF3|;->pXCoud!VoMWdH&)t#Y zP;C%mBH*?~_*bB1Spoq<1o|{4^`;V$7}LE8t+STplKViqoK0y64dM!o0Sz{A9ESw% zFftAb2z;GD7vc(M`*L7N_|X8K!%7q>?Ik&}GEQdDqbByRDGsZZ5D_U4%Z}`ZVn0%pCVy(j3l_5Xi`_#U=&u zK2ql0G8Ubm^(F-HGN{bm)qCRapZ>Tr%N{NF%5KN)c3Af4*uiR?~0<-3exWKbcUddj!aO)8=!(m zfNZ7^$EPP4Auc&K_X)6QwLt&S8h;C?0b6soYj3Z5*jng?if~a84#QZS{j4B8WZGz= zn{uFy*SFbZZsR(_ZeZFL2LPlbSD^}6000Pp5vf!1%XUlt67%@?ZQfwx0*`RQNy*v=J;AGmaVMxO=zZ{R7*=>hqazR*0aY z9$O@pbq5A-+&L-v+2D5JZ*A8WwS!Y~>s7Kdeec==S_6kmTtirqz>zmi%+GQ6% ztil=HQ6GeZaFiAdVLk3Ge>=_Pne`+oVRaUjTUU5Ltm2yY z+PA>Y)4OlPbJ=}P^yo`6!kahn=~nG1%ZMwbhS0XCgk+Yg(Rws`4R0ePM6~Av6FUG_ zxHPF<7vTl8z)l-sB@-^|kaUNvD3PMn(5dX$v=#Sv=&P=gJl5riQE!7I|U z`J50@cccuw| zYMWhLS%n>fU_@g3yfTLhC_q%6zo~O+zbey^nD+ED_*N~u&he#1E9AMBl$nlcj2dzB zp#{SFu1l93MUUWm(9AIBxV_;HTxTy@I!zFW{A#m>{0>udvSh zYiRuket&emtq-?QkbaAo?>WUf1W+wj1ppwlZ|~hjo1q|=vX!D?P#0Q@!o23PtVDk@ zriVWMPPXQn*cB88f+U3+1VSt$AzDQ*;a_*OOEV_)lB;$r1QF>ZY_%#*?>=tN7FINE zf;*EJXG$`W3OQbFriQdZ(^i8C?jY0gyWCh z;>3duj%x3V_zu5sFTD2i`NE|B@usPr7Jpz?D0QQR6{Ii%rE_Qwo;i$WWw61ry6A|3 zGL%wIjKoOK5y18A1Lp;g=2k_VtJZQb+fzg8ZvE2yEcNIj8l+Q$_m->9nvGQ`R3}+t z97siyjvB2Nq9qogLYZ*;pjSy0rn=MtK$w(`46Wmnq=N~QTfNmAAb?_VRx_MVgarF7 z9(WfAM0AZufD#E3(du|OYu-L>XgMsSCWr{>R3)Z~o#LrlyKVX^SJtA>>Qg;s>v2C1 zEI+Deead^gA5)yEx}cAwoAb0fvK+6UrFSZH3w#zLL_hE~Cws0#S5}FV)erm`V~8Yx%B9qfKr%sgN>NT8Mss9t~9Ep5D9P0%(*8bLHYB z!kZIxN`(-i0)j;A)bfy4Py|VY)&NBafk8mSqMb@jF{GR|h>}VR1pyda*bxt{LK!1+ z0Gn~Km(>s>kYCu=j^pAr>vLZLZ~z3x`{#3xK6h8B%d0o==hPy7!4q`ni9pVBg3i=g zaPgTn30urvI&E)P5$BvRK2|_(zjxLOpWk`-5KAjUS2|N(fwsyfxr}KU`$fZ zmsPp{Uz`7%2oNMLDJ3LmxfgbfPj|q@AJxe;9U|0E|9>t9l60czQHXaDzs0k*gZ(8=R8GVA9D~Qm45- z-kPQ^^jh8f9)^TClUfVc}#L6hCvbu@_VkAFQHVXpbfz_a02^pYPNFBvqbjLVg z+xcYmi?6l@T@#=)1F+>v)gMBuE5;}9GFN4VPz*p0wk*HMke4vXo_dbEkRHB-KouCFHTSX; zri{2+Fs~t+Mzk|3n84a<$Aal72 zp&{;RihvoIQMoas`ar-0@=%b4$|(9iC0r(YljmA)dYEP+$T4Y0BvW=&fFZ4@ff&I8 zDOZ!Icgay1w`0K57pR9Z(x&!j9r?5yB3Pqd<1f(I@5)r>g=TioPc@d`B(m|z(21J2s zF7iIjnUdd{?Sz|qYJpq2=I<1Oz3JOB?ZV_bxWY`UHdKJfVXlK|C7XG8rLr&jff99O zQFB0q8PbX?B2|VWBakQXmrl0RMRI1ZfN!Jm0ryyoLMiZ9dNjhGk1Wdss-pbW^pZn~ zOh%a_W+RePxzDmp&f*FcUe^=`XIhYHeF_SRSr~1+Zu!#L3xZInkf1Mc7EB-CoLH(f zam9)h0fCm38uBCP?r-_|q2<$wxdmpr$MfUg#&@A&<0UJR3KvH zP8vzrG=z)_Lrpu=(ckxsWa)3sPgYj+ZT*aQKXLreXY!3|p~jdFQBFYNx*~l5aZ2CN z>GhGdIa*BooBi>T@rbNX`j_dY+kVTc&OIQ^%^9XOu&Y?=5h>c|0gEAZ@jNJHgQgvp z*b{pA`D$9evmePW)Q-2ruAJIBcfK7U;*1uHJLn*E^eWqUZGM z%hi|LZ$*7$c#sMr5eq;;0Jnrap*jXG%*;3)e0!JC?=7@iYEQzg$Wsu-&Q*wN{sT}s zS|BKy%bD#m=`b3h@I0TqcC=o!X^KT7VKoqv*%ZR0%Y+N_lz~c}@MJb%7%WZu=rME$ z`pk7ktpkFqb3A?9gyucY{qdP?CdR%fPBg*c(80_KbszNbT~<5b63bNAj$)A(sdPA{ z6Nasffn`vp*#EC={4VxSz47Mt2gRlqDub(!ywgGnmY%0sTl?(N%%v~E2OfO(=g-{k zYf@q*k&&nw?Z>^*YJhvv*Kl5gUsm8GAA!Ey53-PM9RIX$vb$Iq1q?w7W(fIA2@kn(!TXW^M}AH2RB~DhLke3`@Qe#_EwJKF7#`dcvXHh6b1OUiMG*6R8uBAP~gJg$j?T;Q> z#nBp26cm*~rB7ootiTWq#*t2FfNP;eR0IJCATTHkW;22$1q=cpfR;lzOBVqj6u=m4 zz@(uF_W!lH|DiER>sucDI>Ew2P7 z6XRpW*oYI$$2z-ZK6VEbBQ&pS1vO4nOb$&jx+svAGD)_=PRR$|2%)-XTOTD(UiN6K z9{fzUr>yWw@lY3JbR4lyX|9)3JLHIB4FU#^(bd+%i63F2H;#m<>GC0NJkPr7_Q@ae z7Z3ln@4n|s_8QAAI<(V#xpr(;7PYSWkeq01>@b7#%{gea+sxxHsj+b(gw@K3*uvw} zKT6y(w7{AB+&$t+(nSVK@MikLmy5$+>ds$~BjKAr!6p?re55dfRV5t|CkcV1$F|zA z?Fsm_IsgC^=Yf5a<3wO}Y)+e3^7;p$egx$23O5S|Kz^ZaxcjoF#LSyv3kGF`CP)+n z3_#4xkoK9uXZ+6SO+?y?5d|<{VI>PafQ-NvEQ6p(L@HR98yDuk%vpxJF89|5w)yh7 z1U}kWVJh;U&o+G2tto`kbREE6$n{6Y9R-%1p|JI~AO2omJA&4 z=3bA9#;y06q`lfsyJ(d?;ZXM2)wL2pG26S0j)sC#BSceSLC?1|sW{>)C@!s9n0t2F zagPZd^79#8AqAbm+k^Tf&yh%v6RryA^hBRLeZ^m2dFj69o{n`KhW`2I&y5jvjznP4 z3cDw}O9T~G(~1uXU_>sGB^sGN2#N5ZBqm(Kr6jf<=Ex^Mg1DSQbYrPllnZI#l%N}Q zMj4&+fitTQ-+4Fg*G+8O`yCsai{vyFVvWMW5d|4omtpn7e8U|86oe*oMbD&=v%P$; zUq0M~MYyV6a*{(ezY4Z|3FC!{Z>x5P5F%JreKcn@#i?w8HQ46g#y2|UF~nGCA^1S@ z)E1(q`|vS%Ckp9a4GrZnKzQy*62??YaD#b_8Bs6_bjSdPz$k!hHoz3&cyc1^0qTTi zMZs{Ejf>%Zt0(qXW`P2WREeH05vS8lh1)$dEeEa)LT%R1WwfJ5xP6LjR3U_C^y^61 zsk@os{ngv?+V<-X94Sk{tga-D&>KdCqq#fx-`oBSrDS8+WM*N3og;`xB4|3FB$F&* zgk8@$VfyuUd46^#oi1lWoPaw)te#)*{E3^NJe>5u-1yq{m8+O%;xmFU%Sp#?l#vV~ z74X(gq1)7U7~+RXL9(sVLGy?*l2Cvflo9BbN}X?+W9x=}aP`V^OA^f(Tj;~^D6`_M zU*i1Xy#CZ@Sl|BZwfE-J`4gS5PU@&$Pym?F28vXm2?UUk2uYRs+?W(gp;)t^S4Cho zvWtoNLQyxr-D0&6!;^yOE%BTUOg zy&@N#*Lt7K_IV$I7s}F6eaDMAXB?NuwfR=)U@a&8X6w#nIZjh0AbTy7si1XeXj?ah zE3~Srql!Sv8_%0i9R||%G%_pzHk@H<0)Qoe1qGwM$sh;Qp5-0DfaHp6Y?0NDo|=jM zCv)^PfIzuoNCcEeh{xX#*?Lh$^qOr-SP30!fJM){^*M^-v1f@!HYb<++4}l^C%;%f zzWt?n`?D_9<&h`Kv0aqS?b*m0$V~!xouQr zpa6jU4bGo@!{5wvU+hcgcy*^;jU4bzTj#{)z`_k^DD3JsTB;{hweyJ3$PcY>Bi9Gh z(p-e5Rdxd1Q$XR=0aXvsU@=G`jgBM-9FWe$P{zy>f)wH+3AP}%D~(`Ljc!WC8cz^u z61|D*UPW$FB84dD(lXQb&bT%C<;}zWj$AyKe+qJjUFvR;cAHzRo3z%hw`~^5a_eNL zRNsSd`#9bdZq}th{&(@1rsT4H-TRB|hxI-s^&;PX-MTio7MK)%5nI?xvDH!mBY;t(rEp>$z!w4;m zFNC-%@bdCZawJ1hjF_lZi7gCN6K)R3Q)lmWznQ7pia<$VAOj*oQtvu{dA3yYf7X-eNNbEU+C7-)03o5|aT3qVOHaq7WM$ zNBP?9ulwgKqhMGksngCo!X23D)MQA48zK}6t^@)-bXRK0SUN@b$;d%+0s|(;!U|n* zzij1|H}m;-1yA*l8t?NmZaqb#aFeCL6au8ZtJ27!W^#MTQQ2JpR8It(GlDDKKh?`- zr~+)31G~K_3F1DlR>Cp@W>ldJG`Ql3^@#LPD4Pj(X<`V)vXr)N@15oLAq=j3zV^s!jFwuT z+PZ+(N2fL(eI`(9VOftum7iVrj@c}PuAG*bhKOe`avt~Hy1kC|1tc~Ye@hEx#F=4^h&kHfi{-h&J6wGkNL4;+R%v1K5iu50Quc1ra( zJoxtUIPTwqo}&+_5B>Vx!STNL1^TvFTND69O#-MGQ*y!m>lXLbLu7UM+=>c8U<0w9fJBem225`z|}E zsEt@MW_d#bd?^!~U}2>4Ab|uf$&Ig1#`oA?aZbj zjmRmJZHvx2VjyLwm{`m}I;Y*pZR_=BgM|QbE$I1lwytF}L^@w#wr{?C?bXu_**=Wy zt)fiM8`+cTW&%v=nQQY8?w3EeOwz-oOqpsc^~ijf>-PX&g@Dk6vYZ@!d^kwP}E|DwuoJ~}+pwe<5O?v4HHci-=s`7bZ6g*QJbcQ>+*4wLU{Xp5 zfO?^xaHpK5x@?%jetM2`|b<@kAVACRN$w=+HC2#XPLpUfdLh0q`hsNdqmb(~Or>xlA^ zMjpks$M62oCEmRKo6=RrdaC~FuCYLA>%73uk&WaXQjn4ar)`h*Ijx@i?m!WP3NS8# zj>$pcIpHAC087o4jga3I#H3VltUcxS_~})mw#*E=PxXBvR*BU^9qCNY{JEqbMiZV; zU2OM|(|vBw@S(gLb`?~&A);~;PczH`kth$L(=pPGX6kZ453~RaFoq!v=mb_P3GBlG zBx?g`?2O)^D-wh+$l%!SQwoCq?`k1WJl>r(ZM)ujC9y7S7G5t{(U;;d0;*C$w&+Bl>wd-RkpOt4K(SaS>B(#hp z_Scn^LtGXJ;u;CzM1=OZhc`XYk`5fT$7myK4Bi#5%&4T7scdPvyO#I?ZT91J(0!WS z>zCL{luM!Gt1J(h@-9Fu6LO83SG-+4Et*$Uv3@O}J?LBc$G-B>PkpBLp!Q($khrKQ z4VI{}n#slU#Im9=gT;u90S$$M1^6fm(4i=C>Ir-`wZt3lAut6ECWf$}Rw)tyHEfzC zM|3>7aVYM84YpY&L=!B40YG5Xu7wonhW#j-iq%!6JDMgX5ZICwl0~2ZA_ORcB?3Se z;Us_{yf?EfFh+t6Kx_aR5`qIVA;Qp?=FDy-7&uPLKu{Gl%3DTs*tN}??o%RyT{cJh z1M}q#XpZN60+$5jB?CV6xL`qH1YDa+R?A_^M#oA)EyE!|X$n0A69~iX3aCx97^>Qr zzmkcAGIk)f5K`ZuE{vS{TkM-Ar2@Y`w=z)!x?_#QesHYwISTA{C8i+lvr9@?kp7dc zpW1cZjYgcnbw%^muHj3@Dkl=PUG+dWRw(PCSs(YYPy8;ExPnB~(;ti(mae?}v2QOo zUac8#(2i*=CH5ao$7W|nMmN55S#O}eTcz}^JvT0Ems>1qTcx`X_qclokdN$GYM2Ka z-0h+8bDg4UzmmDLux$_V7L%C}42!L2C_dfAV2hb#2MBn|to+tnXoD*w{3CeeEPR3UUS&Zi(^bf@4_2Hi-FJ~{) z9sOeEN_TC{s;h0!%q?+k51mnL;Tdkk?c;<2$d;MRyB=nWI#3YKIY{q4cbanFAZ6s^ zBfqXF?LjmSu77&r2S*~aiGA~qu^C2W$1h=vZgW0$n9cTea88%{9<* z2Z8Ql|BOKR_;F%tsm$E;-^1^Z!L0)7oC>utqm~Zi4}(KVv^Mm( zZ&5UYkkvRhCTPOvzirUzt&6j;_g|W)Pgw>vr+6jch-Ld)k~*ke*%`VJ<}sA0_MrX9&MCA4S9xP5WO$!$C6$TLe{*Gyha(Eddc{0_5W(7thc1P7FQ%%d|`%xB0?KPmv%LT z?97=uj^lP0B$~4d*KX(ew2tjK2}BqO9-sitU?2fWoH;B~f^tpw=&ygP{_j59z2mXf z=^d__*6YDlox=cdiICT($z4r1%AT$b;;Vc<4Iw7ph?QzJXin!k@c6c|`w0^39_%;J-scQ1ZGc>cNGuUxM)Mwh*!BN8a}Cg;(_ag*M1q)8Y! zH`!axuK@Q{V;@3MG6$=rs?9@>&x7JevAdn>Oh}BG^k@9CzM9@z3yn4&vZ4(RGtDwr zab8o8ufjyC8ru-#c6r9J1gVWE@669OT`!LI?sBa_syR_bZbnQB0i~Z~n)BcGY%hOj z&8mMtk>F4F{v>pjEK^2W$ORSXAT`PWfXdo_X@BYE7_WPbHCB;0hQ<;i%vP1-&B^ZB z3C*nv4WKW#&LNJX;#5Vb5Y4n)z0wgTAYSVxbSx|I3Y*@`s7AP*C;kiRXYtp9X%f#U zDX*6$N`-5Hxu&?@1j>RhS|P|Q77BzOz?RlRyEo*8)3pG0x{_M<!#&-`f}1jot` zywWOkb9L5^07{%BBo;Nr3AGzd@6r82;tcaG8RBgj}R5RNH)DDiIH0AfA zJs%sriC5IA;}&1glhjpD-*}anIbu(=!u`AwQJ!;Ybm%m)U?ui7fksG(cuEB_iegRz z2TTXYQNR%abNZ|gLm;^#MPUFy(3iDXNHKtwi7EyxPhp8YzHumM;qsGr^5Pvp=8{Nj zN_&Qsu=7u!{C@28qL24qn^$>pm}}HA{ySbb-H)1ylk*zZcni*u+}|Gko{!k;{`2u_ zGj08mYY}aio6IEWW(@~Al%X0hteHXas_5e&&irR-|C#WwkwYM?he*b_zXixtECT*h zn*XllKR(6(CiK%qT~tZ$;lMD&Ngu`3kN~-jEwV%fajn}BwY|Cm1zo1e7xp{Mqi(mz z>E;s&P#p;(DIg!?b%UTw81#{+W6>HyR64Vwy`>;zBT6u69BK?UCL1h>l2C zJ%weRrtCGXjwQ6ZrjicH*ZKC+*~ogbKM{V~*yjVE3PEP7zI`=VA80E=0?2yp?8Nmh zAXt3HU!O|n_2;sWj!8L=jhhpLxp2v`OPjBMx`-PZ@fwrw=4)=yfl5GRKmr!A?)i1N z&zHX!|7+{2CPS0!90Vf?RN*@0*lsQqJ7_LcENd(wEj63oq&D{Iwkp(&uUVxqAP8#$ zumE6TOo0HWQbjYVWcqgMN*9v*%p$JUJEVW_fcwLlsL!1j3|G@uOuEx#O?%fTC1Ch! zJMj)n*Es{x3j>Uzq75>_A}Nlfp3r!H=IDFc|&|H`^%;UHxr`_v%s#b@68obMPUU=s5%P(OoM9T&YiVD)T`jA&YrfVz&vD<_AJ_IVInT$+dH(h${T`3~Nn681Wx>>@ zFga)aFz9YV?C5L_+VYn-^_L8|6CW??c5ojdfDKxJ0g0laV&Kp{dg#vDI)O3* zQpXl{XCT|1*$;~qM1UBnx2jgz^4zQy1z~fq6mqYwW&!Imxw|=3?53qKvUfRVgH1?- zq=uOdyAb%8s2u7mu<2n&VtUAgl(0ZaY09N++w@dHC;(Mcil7*+xF&v{^n2P5m@)aX zl(r+*2>S|{2&It8L^A4R9alP@3QbUrjq_SZF%;a@j6fp*UZ4c=^2&}PWA`*F;ssMK zplB>FDizS_8}7=af=sj9;XHw}qI=~iKhc<{U=u}*twsKi%=h|GhTPj0K zlQ@h#@WYDNaXx?yf`3c7r;$pfjq&&WgC4_c5q`esf4v^&EIKAtfHl&KC9h!`G$e*t z88++)Hg3Q5qoYhERQb6-_qS4_c0I>3rTuffzqOT?8ZG>-X-ILHMhNO+7`#3ljFXnO zGvz{G#0Ry-Px+H;52@c!)D%vM-#!6E=~%5;_HgYRPDawNSARL8t?LeL8*OjBsr}4I z(t&QtNY^&-c5WJP?_!DKkj%UT=Ua|nDUW0wRF`*%XsfBnKrp{*tQ2{2@pbQx6d zQwxc6Wkv03XQ4bF6Mp?>Zcn`bc8U8<_h-DytKZua?%AXY2*gH!~8L5IhE6!GaO0YvQ_pt0xU{uDGm{kDO{u0YTRsWs^alm_4p&xvc7D z!xjOggQTO-EP&*@(7j?=%}!Mj($ds6cU=Utlr|5b@dJTw?gmTN?^Um#xbGXfOX6+qZ%(bj)HvD-8-|Dp(`nbcy9g<6d{H0oqn<MIUo8 zgoo8thSd}8EBBHKVW<*HLLyQoCKWI?{ay(<6v>n{1~#Fh5eU>GQxQ|Xs0mD(BN7Nj{VyayBQ{D95zNVPlWAzmSUD>ttq|_AB;g3!0R*=o7oY|;0!uUB+M;T4N#Z9!J$`6y>C2U8y=v# zXd5eAMF)C~z&xbsGh6J(F2P1JOZ2XhZO7H|w!PY9VfB`yeI=^;WBU#(7>q#U8>;S| z#aZC1v44E}u~j$k9Lbu=XEWUagj>zNaHpC9A<~j%nLWK!7L85aX2u-C=yW8_?w*{tF9ik=puc_KB2HaRg z^8SPC3~mktd>QK0<-h)X@!IbO^1)Qu!_nmp8n;#@nuH}qV;J>wS{}O%ZNPinmwljE z412JP5aHs-*g-@RS4dXG>z}NbA@hkr~g$P`9bmzJwof`g?|sic2i*^dyt)V5M3NW0B^nOy95xWlmW~6HcI1b089G zZ=>0JvEcM154cNQNhPhX>o^nqtA-)yB3}N_f7dI~-sj7m_7EzYZ1Hg#5f)l|^KH84 zDBQ+vx^7YQUNfqXJd>efl{6N*5vECZDSzhtFgn2&v~LWunW@-GX(Ys;Cf1QSxa<-; zA#A|JQaTH1x)5F^N1IOp0%wXNHqZf%Q3P0Mt=RR$#T(bX=?f^| zNIp@fEHA(W%~A|pkE}tS$qO?uoVAii^&HoKEO!LYQbthDFH+nK0z$F|@ zUm|h#1#7as+#f$2?yujTU2U#>sXSF(-+h4a0{tKg(5p{`3tSweN#sF-7DOGmdcsSl z6hQFT`a1)mEw7rZ#=V5#xAb#q@E+LBfBDWo5ckws$i$jjkltXy$~A2scE3FD3H6vY z&;;#O_rl{D9T8(u7$FJ9!BJH+yRhFvBdS(l%x$w^+pa>pthIW$ZtzlH^*yPsPw*az zlVlJ>O4W@-k;rqvEgF~P;3Z>)ma3J7Xe)*GlMV)p1!@*w^$CEOg`n3E79mF{Ap=QB zY`IF*zEa?j!Laz|oUwbL>8dl7AN*VS!So{g%DCgCUA$fx!y{=|R@NlsjqXojgJ-cl zh$?FBY@Q9{M4lS+94~nH9N$kx5-q*1l0SaX$CwfQ=J3(z58VLT8(w#&sE!=wKSBGC zjejEjBMnr5wzP?q(ls!sDl5VNdL#e6v;5;+PwWWDw~86bbWkiMMVP7%@Uo8U2(zth zE{JrC0H6}Ym#rw_Z4n}3XV-SZEWg4e`s1toYJ?R59ZTdDto>udNUX2kocBlV z^Yx4E6J_RneZIf7W?bPdg`^gW8bo9Ob@^JfVd7`tF_gFwQCaRo3U@apT&lNv#%jpN zRn)8&_$B3Gb1Ybb3$jND&M2q}tUyQ#%fT|GngdTQ)}?C2NUpRjpfwIpfQq?<5qKnF zFeZ(_THz+#LPyrA8`1=mbqy@Gaswuk zMmeHW_!ML%9UE>`*Vg3jB$&&V*kWjQkz4J}j1$&b-gCbz1rGR`6VB&~pzSJnW#=Vt--pZ1zV|lVm7(#frD`@*ect zUSocjLECU>tqP3OU^mPgp*s6QsB_ljg1MK=YD_iA#Dgs{rO!e24|?WzK< z#QS(`%-E!hiW`}p1-{()x6l4pyF9%ia7t+6)xPw}j3q9HVd*&&M$O@b)Vvm{#yWdQ z#||5ZoS=tXS+pP2VcZ=DVmkq`Q6c}v{(P|iM#n+|z_gK)7UKjs(YERl4XE>tBXE&1 zjzNmJrGuy0+_IRk93{b}sO66iAeuKk-y>RVBO*P{tS5vezXMQ_Pc@U}O5ZY7|TMeK#b-1ky zI+~CTmA1;V(<`--IjVE7JAKuxxe=9yq75ru(nbYSD~G*0U-`|VH`TMymJHJpd7MQ8 zQky|0fgl5sib$)}5<*#;=kv(U*%#x|x%ztTR16F*EmbVCA{>jDG0;bwSrZqe2E9y5 z5lMq$^x*{awzMwc9R7{z>O91WVTqXB7>siXr0`b=HuRV~vJehAkqy|;p>Jf3bWAD? zyL;>Mx6<(<@r| zJzlpz{_XSd*MD*A!KJK9cOKGZZ-zc2LpJabSyn}-{9;%sG#JgHO2bBZ-FtxLeNOQj zfb#Ch@aAiZL1FeO$;r79%|IlTrJXM~`1ZWltZRJ{dB^*j+7DFSo4;}HBU2pZSR8n^ zyH;&J``en=pq$f23@L_l*)yNjtiHo+Q#@~loF=sUjKUcKrwuGDcHH^}6d^E#8b2a+ zxAQ8fDlUXYaEuF>qpq_<#njxYjm~dX5-JTuhxvrXPsivn9-NPJZq(>qgh~ufNI|_E zP87gakR6hp$sQq0D^!`pf%<^2H1>f^Q{@U6AVC$3cID^G#VN5o*#%K8au-mHXjreeuu$lPilDZFj09Prv}X zxy7N)>e%X|dX+WP4l7~N@Kg??H@k?2*k+#v3!sBq;x)jHIScHz?b}``6`*v;G2;lC zm`zk!zEG33;spVsZ4CdQ~=)nboNmgOQL95tFmYyl_Zz>Nn~gME8C=a z)HtEjGp+bfNQQ=c>sKHJIT3C|5dxJ37bRH$Pl@DOU4d&SuG!^OSGPo^1i~r7Fc3PJ zz#K*dka$qF>^QNb3J}0V5CBRBK)@(6$V3KMr%j+Kl!-OKCPiFIM1p1*jnzVkQQP?7 zbSmww(q|6h<9%HDYAL7H9v0`#;@$IJ)buk}nIEjf4&ij>GoEVxQ*tSs^Wri+qe8 zYfucHc5(C83x}9r6L!d>in<&udHSIf=VVgbwzes@Ipq?6h`sc}jy*#p4VcG*YUq0|=-`G+QMM&G#z~zVPo6$I;xLlSR((Z6#be1aF?GTH7LkqV^;BG13par|fHS>~rdBbet-p_sscm*hC4 z$gl?!lVhJPNS8LZs8&I}UD3T-%w9fGn=*UjW{q90>7oEYrvtJsk=FDvF{rDWw{P2z z!CjWKDg#J|Te!}}svB7>QuD>Qa$UKvCT{MBe@tCJ9GpzeIcIVtGs*5<5O&kcuW z#x8uQoKgG`itYV^gGmkOBd=Kz|DVUI#@{02&-yH#DiDlOViiG#fq;;jZ8Np;}-$$@LCc`Fa%8+Y5z>JEY%bU2ghk0!N`pk&CR0!5(BW47)C5H{$ zP*`@?zvK$GRnzwB`MkE%QBL$bt009M%ETSK#p!N1gL-4c(O{0UZUmI23Je%cgi(IY zofJo;VFnm`;bdGmr~*<7rppT_XRFF3V>_P-wN;v4iNpiyE@jLVmYUcW$RUMLJSlNWqrGl>gdnm5^-Xis=& zwv$$K$SbML4@Sms-R*R1$CdI%^GH4nxDl(u&Iy{WZ zSHD@B1p%>0QMke)Prlw~TtO#N+qOHIoTXZ3S#7%MtCczT)in?7tX#nyOP!p_Qv;s1 z(@U1o>UZ1!BiBBAKbfXSz?X^ZZ8FaJ)|~kMbhc-~=Lftqs_5Im@2=iy#m~ZR*aCBq zks2)qnMC;t)D|n zFP}Yrb1q4a=NRxz-X8zF`0n3^i+#EZS&Be>AavWEyX1jBmE>XF3V~}@2u3H)!b%|w zvr;WH9N-Ey)C$G~1Jqo1iBW)=hP*VwWQ47Lsjf%h)^i_$kJx{mqyKe(`#CRSwmwN4 z??CS0GU1GGu4t^G&L*>QIQFG z53m!WK&TJefuh_3<5PCyxnj@C31A%&W;}+)L-lqzxbhb`g*0?&+N0nyXh5EIdK9`5 zc$z;6&t~?Rj)8I+2A$nelr+V^5^gzcg}Vc4fML9HMUDZPy3uo|^*hha2O`XcECm*I zMNQ@VHUGcY-}212s`s`H03421VRLaX1=xrPmBj#^-NuY}BI=d+n-RpCfJhF3u*A}G zUZSVvW%xFng~!>Fg=7*xhp(qSVh0);jY&6B2fNuaEhr66l0cxg7JzoF*b8ipff>4) zT4j_t9oO3Hr=Hm7NF&R1Y)sDiP?Sl#f;nL3ZfQM8!!JTz-d*?gmHR^7?Dr`&=4_tY zJ#HFr>Yo0&rmuv6#wFn#|LKRqdS;4q)G2iuXsr;-#h0$!9s}zG=ey@UP&XTowsS_~ zA46`t?FKIbgqn5|ub#+@)ASaA z%i?F?fB7FStyb@KIG<=PD+?=t#w32VHRo(`-z~~U0?|fv8JR1V>aMCPO5aP99?WaE z*2%Kf-r4=J+*9P?*rqHXYdt2DUT}M1o(-7XEU_&SM+Yu~CWnhHxoueX)EVnec1E~Z z1;$7xZ3_tT1P7MjD0URFicuij(pQtWw~rS^WpEBy&yJ?h<*_wb`#Hj_qXO6h7@nCExIooXpE@yAeK0Q6!}w@yPtuk!+$l1Mk}UJ!Jm?Mh*!mLTZnCsoB*oBh zCp_an@hxAh1}?Bu&L83}RM+!ag`OI@r8hbZ<)b^hq?@Q@*uU^R*U8cf5T3VTmG%Dx z{U5WvoedN~CdNq{P4QyesMm=;1Gtx8h?_bkc)lO4`?K^X?!Sse45t899$)V8UtYc+ zAD?lZaD{X~=#JE(B(#n;$_6_b`Q()`q_&!w^4T|;I!!HQG&B0TjMyfjq1G6kggPL5 zrX9&|W_?!*jg5ss002l3!$%c{l^3vmeUA#4t>{K~6Mm5;PvT}!};nA$$Fv~v6J^{)3vr$K7*R6;DxA~wLHvDWhA zD!fD)H{2bGC3AGW1(k+UD}fM`a%h0tFfBJrx@vG1>@?MbxMPf<=UrO_6=NN1f01%a zYGxdDKK4Bh-T9rz9)G$&zC1nJk*5%2lCY?#)q@)a2nkmWUR@N z^eOS%-6J$`kwym(S2tWLXdnQ zIW_JK5DHMe!ZXkn`UTa%wgLJb3RD4HMxT(RL3WAC;plrC6wZD3{x8(Nv{>pASu2DU zO-K+R#2^BZI0%{{y?iv~0Zx-!5vWLFBM`y46~hq+gC^i0;y{@~lA#u1f(rm3Fcm4n z2V^-BA`v-sNX4-+m^9#_X`q}yLK!laTp9&6EeJM-00|>F2Dr4X6Z@>T-qcd;u~aF( zl(G5K*#xIS3ikqx5DIyNrR7ec4h0pjn|$H3cr9?+{bF9KD@5vpzm zNx#XW`!V*lWuW3?US(IQkjY86wII4c&KqFA{2#yknh=lkLjq!T4Imha2?%ST*o50-t z_AmIdzVLZ{a(&eC;-P^X#0|s5lUhG6LxHeD4#{5?evV9>i5CkFm`{IEprUt)75B2))wg!8J+bZ1l_;7L( z-xCJ#WARJ)f*Jq;0tg^hP`aI|$G*(jR}kJVa%Ui}gw~%&_csPIl62dXWQt){YR=2Y zsl?UH8e|32J8?zA_Gu;@3L}s%R*Hnty;1ja(%b#My{~jd?E29@eup{~)OGcc)@z>5OfkV>mI{}^gEIfte@LaWqA|+49BrDcOF;XxAXt$$M!gW z)5ifDrgXa~w`sk|(L+^UhIZb7X<*CJXo6$)%iW9=Y{v+~#x!grXzI|QkVr~27`y68 zYMDf@QvW=yEE$lw37Jexo^VJI(J>5_}e!Wbgf z-g!Q|e}-0f0Gm3*G>df}*G)6+@+M5cOz}x(X#2MFh0gz}fCuFZnzj1Vc&vFL+ce90 zF4x+Y&$ma@pXZkSPBflQykXQ+ueK; zpu(^qVaUoYt}UhOrLc!S23nDxd%iZHDeS#i6KtG4OrP$|!fTD@q{j}o)G`35%O>{& z7#Cl4?H@TOKf!^=FuD2!-#s-OB12ywoblq8ag-(iF+n7P(b>MMAPs1ZRB5gB&TGpR z-s6|=b$WJg#h}(3+lIR6c#dU~HfofpRZ|=@pnO-Ki|}OT!9+;5Ej{?k_;bZzo$5Jc zca>c)7L2{&6}O@bS5CC2o_{F6aXr8N6J-au?D4#2wl8aGX~Kdsa-5=?W=p6E6>a=> z2LHzFI9r^5yQbfEab@usN$u{dTUXY7CU)7sz_u_HajU>vyAO}r`c7QWpC00dQ~>VmHP1(cQ#27 zC8}IZjw)$lOs}G?ZTD4Y3AGcK0JMAUs*yD+{Mr8RETNanidEPn zg4$6CR=HvW0eQH4e&>^#ns$Rl;Vr9qX)HVr$T-%jTVk)PjUqA<3OKC};F^n?X{P4g zS;Gt#FYDY}vI<}TUCEj0c2h$hNJ$VdAV`uC+d)z!F5z3g>oZTaNvhT{IZi-ffQW)- zIAskRK!D&$`)uq3EElB7-{-IxHsrULj7r(-+ zvg1=Sf^AVn^qp$u)P4^1)T`?KUS{v{X!8zkK@9JGBI-N@+}82CBTZR#GnjMS=%L*VItJqu0^hgsd3)U zat`4k_t`j~DMeGwRznDf5(Wrad(HLu)4UzCGQCD+grks*l_CYmY8Iy;8A=$|2x}m% z$g)Ul3`k=jVo;~~n(cc>JKWy2AEo2WVjQA9g;#ECZGoSOc!!JN+S=N=-cR$bXlwVO z=Yk)BVl)s?!3GonM#F+KfEdkMsR9fvlylyFHM7nko#}dMb9xPcev3d~cAMiW%a4K{ z{;i)4mc{?Oo>vr|7rtSg-QvRxJ_qg5?RCJ|3m1jNu|K^Rqdq3wh!UtY6ahaLPiPfx*2_+>+ zKt$9GR}~5CQtKS$neanxKJm5f?i5BjK=Bk*n&_g$$EvV+Y;Ys??O&?1_L+3t$^g}R z;7oU!>(Y=z!WonT8ewOLZE9($qU*|*y&63%SBgolRKZNX$buv7Ek4>j0d4$`GG`Jm ze;lEl*unC3SXvcpE4}*W)Xrby@i0x4g^6w`|PsK%F9j5n#-4{*(Tj z-2UnHBg}&s1}Wq;+Eyt@^l<0J{n!(97#^IV@~VbM#o?aqyB=dI8aKGm`Q>xpALaz6Xs6IU@<2-4KxMJ z@{XI3v4UJI>nz|b#nTcjw~ zSHJsX9{b}|u4=jZ`|-U$|FL%O`e}Za{)PuV2K69u08xsOX}YlRTQ(k9SP2BjNW6wq z&Y_P5sUlH*$~%tQlnMZVO1uxAt5lYzp37~nJ3FoF0HD#<$_1clX}~d1@F-mGU6b~r zP%_14s|K~+PX0@nE2yHL$dAW_HQAoZ`=xtK31xSzIa|}sOH=Q8Bz-WGap}_;;&j`s zfpgQ2O|)|dXK^b5Opz;U%>-}#yIbQ=I-gqPUq9P_ytsee`rRI44MiGfh+vh(hFkM; z2$d@s5Rv_yQ)A66XBsalii1ahXuhzm2rqcqzo2$h}#qQ zM$7C^{&@40@Ywvis8%Nk!VoB)Dt^AH=cGB2PS!Xm!b(xinQiXeBR*R?e9qM2xrZgK zcUeBJ*`GWA`;<@Y{M=+iz*th5gs;`HSu_^$Z)_|Eqc_k_=5X5G-&6kAt9VFD^&rDG zLR8}CF8=z)gX0JGoanV(M%TnlNa*3;zy_xOrp^AV=CUoHd^J!j20ys6!b0?^z4~cw z?~OK|3@Yj87|AtO13=y*`_r#fC&}g7tI0IHk*qGP&n<_?iiRP2qog1({-$^_ke-O7 za2o7P9^kye25)0ANY-jMfsD9o>`~Z{Vn@3YHi~!%Jh{L4XmigcM8TZu+FJ|?piBui zx$aul5IpBUcwy#$)`(BUDDK__PB2}TgczjJwxSQCXx@2qZboMDiF$#VEWnW>0LVf| z;Ph%W0LC=CF0q=(ioC&b$#i1ZF0aspwh%oC0MLuv8=L3Dw`sph!C1Be>Fxm+&>jG% zRg|_W^(x#WHA08Yx_~JS#<7fv?C0$Fjh%sB<1fUXR`uI*6>d6F0*W9V&IYM{wDArO z0RG1;NNhTFIQ6qJ(&e>p3myuGjhE@BMFJ|4L<5CeEn+lVc%8c3!teoZmy2QaZeNlC zAm9a96}nnsgCYsoTua>#;)b9s%jX7ZLuIb|M3V_@5*EbXeBZb6OAXS4zxSl{=8YYi zDPiCnx*!RcoxBq*Pz%w*LQ-g)z*IP`Ht}2GLVB<`>MHc@9U25mO1D8lHWibMFcCJ& z288GCTZSf8hN~;hFD{-V7!SGG;nT4n+4}V*$!!-32+hgxw^~4y`n9z6#1Fthe_hB4 zqdIIG(}5{^q=C?d*=RHTp6)-m@UU~-&I^EtLgH@USt<==$l16;cCk$+x)O=A+Y10o zqCyH$SfFm$A2cex7&? zeZ=-c0dN%XMocS8wyryY(j%lfw}Z1Q%eV4#}PH z2-QL{2oL}PA%Km5k!c=Tw87j;W5xG`I&Zfn!7;pB{d@#&X|EuxG62XHKrSE@WhdnO znbDE1ya_bzCdIiTol&R7Go+m$3&enjTf(;KJ%8f%MDL_A#f(;Ry5X=7i5#J)Z3rW7 zMW9t%x=tZZI`(@IWoTdZes~ys-f_u20VLgRfimO7u|6%|6MaqNu{a;0lcLRmg1jd4 z@ziGb`zEkI(Q~Pe*fp+v!yRRL-6C~A6%L?xy3Xz1Jy06Ne+4glp#7k8c_`WrNu4eJ zFrzlcF}+dQ&IUS0dzshp#2CP>Q!M(RlXs%``m;NFL)x%MbR;amCPbY`3qlAGgKz_Y zhE>8nq`T?;+nVd};X64X*UKCFAI;(a37&cRxC0xv(F&b`X$8}$cF~Kv3;B~p{6)jR zRP$E?!Z0G)VL~{Fn0-qIGBiFZ1oI!-C+@KzDWSCYZT>Gi?{lvo%q~rm$z|oO*6;6h z6*sfoVsO`7^^E7c>NXSg&1s7)tJcd9;f)s`!KEFee;pAU%G4N6&FbJSe#EE!UDb+< zjxX4uBl^rSgh8OlEKb2gPhlv0hhPel5|1TJ=YQ{4#?q`C&mHmxap{yPNyPM^$+p%) zbq%+dPfui#F$?G3TQ$5c__*?)bMLloh%fL1Kp}76E|kvFib)@h8;ZWuzQA6L%Ak14 z;70v{lz?xDuw>GBRq8L-#9BmwaSCZpq_Z>^j?!9M*AZDXx=bwyY;{?+Qt2(mYPVPq zOg96XLMR;rUz9~#P*?tGz4sk0vDpi(6s-Z#%YEVQ>o?=tuI(rmQt%axw_s+B0C!sL zw2Myh*0uV{m(SfpGI`{vU%VQX(NIan{c;W3u0-nzYZ`k$>(2cgT>bUukHsIh`SLnJ zLJ0*h6(*D+Q_^4&53}0hhsMk1O1z`>`vkRa0i24df<$F(X&KYvx?e zJUD%9l@)eip}TK=_d?V3Hg`ui)X=?FDVW9ru?RBt6irD`qf3bB z2w18hN$@TChBf%g_e1}js^mZ3?a%ks&z3*OUG=x-KcAoA?bm&X+5Tkt7wl>R)`UZy z>xwxnoE}sOQV&QhWDUhSRe)mYwvhFRi7CR4NW2LcDJYkKQ6MO=CQ=n|WW!15)pnRZ zy1VieHWuOu6}4&UFzySO*f56R5g+xFB>)TSH}MOpu}{Ru8`sfz);9hU-R zNrJP0tOmw8qQ|Wj+G!bz0Ni>=01FCGfecat4dG(jEfHtCcnt~=!}LcZ!QzyGvo=e=p}OW_W#7;U&!BN%gtt&$xr z_13@Nb>FugeAj1L0kY6c5o}?t3bJezD~ypqg^4mIwqpTZS*J4OE@)|)vK3|=Y~mX0 zc)hmNf7io1SeF0T2WO5)>M5&$zQqr^PNi#H7}TY$X!#j$PnMb@N_^H?p|{J<4b1vtlIES7a+|?aJ-~apux97wpIisGNfQI6s0j zx3BZkPX(IjGuTHH(3@1C=%Q2{CkC%~TUTy*aZh1|z$h$y61FT#meHf~njn@n=vi&c z(ql?tLRgo#YGVwYr4#b<&E{~0@mrYbpsJeQ@>|r4!MQBFw#j?sA@{gWQ)REzEH~)+ zxYNAGG|qaq3)@ta@fzmp)l`R&StZMG2rM_+X|P-noAfwF2ZyT9+nv=Own03K3*KU| z3;mREL0q#`Lu@vdI}HSx58^#_XNnRb$U>v!N(e8Yk~b7Da4}^daM+^p$W=f$l0n9|CyAnjI`XL(F+gU++PlKQFsNqbf zQO8;p)nGAEY|=>Tu_F_z{(wV8E}j>r8tp3*bADSt79Yp`rSmD-P1oYVqInPA4Qoth z%LuKX>3X*JZ#?(!W~;fLQT0deZ~o*+`EmURWTn=v_*bz?e3bg^=Y78Szr2$i+xv=5Di3$%!0>CIORp`Rv6FpJ^0M!RaD=36o0fJT+ z5D?UHz;Sp6rLX`7As5tYsEW*oM?4sxt&=x2eTdGbr3ONwgezj|n28i+qQ{L*OZhc&6-Jv;a+L`n#Wf zCrw&%kqIc& zSv5UY3P1q}srBaM42RS}M$-Si@xNMwf7R#ywRUfCxHshmT0+QqDL9yEsHGM)RvKl6 z2IiC|DmoLGh*>VHs@9XcyKYaNXs1D)6j3HRpsudjC**2$!*!U4Qvz>OMwTbueC5bA&jfVnb7b+kcS=>k z7sfqnVrg8h^Q--+(d}-aFboWh7{=pTln5<)sq$G3Zz8iQLWUiz2)b3wKs`qig(bk6 z_AQ7QN{|c`Kp-NsTY>(r8;V57-0iUohm&`Vf5J9S6b_tB9io)##Z9xdxc5|M>6OUh zh}7bmQ?9Cc8P;{K$2~hVd+x#H)QwU07s!Jy;u5Xw)0=)l4Cp z(EiJ^A;KWF8y z3HW1^Nw7;Cphc(@~?8LWT^K_Xqlt5Vs`h=XCMY&bG$3kR|%I-xvJW8@DY#(h@tK5UgQPRYtCZ4d^kfTFz99_a4 zdeIY=a6R7>@x7oseNk(_b2Y&L8mPe=Y4_x4-2mXh6yEGG;qgLdGbzEC^b=~{c6jbq+;zShevHp&Fsa82wkO#! zPR!jT4Kwn`@#oiWE$Qi>{`O`4?Kk5HGB;Gq5h5goUvy&d=uv5y z#k=)<_MoqiL;kdYvtzBX#DxSSwNBs2`|(%mJxwX(*oYV$lZnJ-{H-I7cC;7;TlhZB62Z zT!s%m5zP7cJ!S;1k@M_TS+Jzf6^j=;Uuv_Nn}sI~;xL#22f?C(#63<2AVF2gfelMU zu%9YByo&9&I-9+7Ocx}7tK-}oo%^OElQrnlF8wM#pt!m{pdTULZSjPc z^;>&gYU_ZdOI@qM0aFCMS8cyiMqp*LJDk~X}3L~GKum)_PT<`xfYU*muO z{UT2AD}22XwY(x&&N--doRWfQ5isJA{G)J-5R8di@XaEwp5V_S)2+Ylig*jne})UR zDm;M4f!``ayMH}6y@>ScFoT9>)wAE4AoA+&qj}MB7M0fkJYmA zx;HRhvFTjtup_|_C{lOc-K&>Xw(^J-R{#wX6hl>*S35bZ8T7MlSY} zzZfio9)n|U27p0{kFQ+HWjAX_U$Uk(vb+pBKAv)a(B?5^b7Qj>2{b;UcZ+y)3=M20^LdC-i8y6KPibE5S7H6mbObzm{e zC^q^v!N(H20k{6Iq4#q*1eURi=P?cv=E*R66CCAUxmQR~eiBJ0Hj8??|7lGa#xuT{ zO-k}IWU4~Tz4`h5*_=;uU1g|Rd8<^;%SPpBkX&R#a@xivLjC6LKlJRff2GZn0s`x{ z>tte(BTc8%1hof47x&5aN8Zls?_U1pkp3q6f1|x`S{P%s&mc8@30Fo^6(E5Jfs}lA zANvk(!Nv<#ZFFCxn~_UN7sQh-_4uK82xsQ6APQ`au+(P2J{Zi&4s#p_0M$e;W;uDG zrtT45Ww6GDXO=s7lRGoBosPjUY!C?vvZRBYRj=qB{@m-e{bX~Tm}6~3XoMYziaHXc zM((Rorbq9l`?^~uXKWVNgGc33iR&U*Qe=|4a&A|grmw5z$??3W3d$a_;uf@W2ReeX zdeu9ps<_X^;TqG*BMlbjMMJP%5E(&~teRznB>SpRGZBEfDy@`<@*^HFn`(bA>I9(c zt8e%673Zb?l`@zNFfc>~t3U^dxQN$;6|xc>kIu3_5Je~+-Wu6;!~p4y>(p{5gwudS*pT-RrR#sOO8#fOTr4|T%itFAcj4iUCcf)?>ryw z`{7{cq@kZpU|v2kpPYPo8?l>ok}Y%Z=NdcNj{GskRO{^>0zP0o8?|Te=FIt59ld!jW6O=B}N4t^e%1{3j}Zj3`7w{|NLq$ln?S5XgUO_BYDk zS|UaY6M&jrX?>hJ^a)byl;%|`QZn#V4;J< zP5-IxpMmC*QtMT==ZW%jWwn$+cue-8%JUztAN4D|54-<;WM)i9tuu-7OUEFJ z1QD@1Q&bS-FRwet&ZR__#Ii{UXxnp$K ztXLzV z#Q_018ATn=6i6f`SEL0ZQ|C6Ep%!Q;;#O=~x|6q$+Sh)1l`6l;V9anBkKAq(uen*1 z^U}fuV%tYdangr^S|zEL<7QhtlqogO@`?!C#3glqp;nFN(w+EH-tsjVeijx`@9_zWgA1-91(4Gd-rjGQONO=udHX@J0n zEQ54icii;svrHXPUV`dLI*|av4?M^B5O}#bb*&-Qc@I>=#;$|dp+dNXwp|cgPE8SI z{!{+WgL&6|0<}rn)v2~{9=;(b(pB0lvT(8pg0{Vn{nb05`Uz!JbbtD%JuYv5!a3xlrFG+KowlZUBbrji@_EVw54VLAET{J^Q%vN12l5> zsH5j`{`s${+ixA+KGAR2x6f~D|LG%t`p@!Tyyy>M@>7letp012l}oLGS#y z(TMY6*;E%w^o6;qAaT&Q{h>b8+3zOzD(QYLB#@so4L^OZ$|X`Dr_OyAGvf-h%k77T zm^pi2tG4Vh-iRD(Pj9(VNhy=pE;pi9sYv_Vzx(-gf6COW>_$Ge3Oz*)HwG()1oN35 zLbgoEwru|$ihpqQfBkiJ(LdC<8SkW?A(Ao>V2n{1g(5RT%}^+YBr5jA zH`NE{h9=0Nk)RAJS19Uq*27ha!+~TCFc4-bi?XQVP9iW=vShj=62P5hAEY@`Hp_-E zvO~)>ux!d~=)yLyQNiMzTBOVu3AbLmwtJbaUlow000y? z1{BC?p65GK64Qh?a#+z`f77;qLJ< zoDMobC@xSg-rLwB?t8-4K_-Dq6n+Y<-uu-s9T6x8WzWB(CqFW+4PFYuIakzWLED-WzdO za#JbX%ZCZ3{Cif{4wm^A{Kqfq7|8+6kV%kr*w-?H^sx_1X?2QX8#L)^;D(|8=raDf zMC;A(@Uzb|7C^3_r}{f)eF(^;`+-w(A2)q+}}kWT7ctXAGtVQy!NP9f1QIrVJh><7Z^XNeHb%9QYBbGhv717 z2FO8DEfmknT+@z|h5T9CRpzy z2q6$GL;>-T9wDKd328O6J=1Yh`*2c;{5@kzH;jY_0DxlzVvt@#xn(Q5G-VE0i}8rO zAfFb?7&|^+V*gWfZC?Je9}(jtIBvHCsz0xNyM}YA(xUm(YZH%(Mt3KB21&dL7@!xl z1Q4Vv=(um9j-ytA1Wt&Fve9EIr+-Y_ji2;FIFoDK?K`30{7wfyU|jg|er??D|8oC} z-dKkpx74kbm6dNcpa(X4LDj!dz+Q!Mt15ktZ+@P~J@FOC9yWP0uHSib+sEXT_F5VhF5bLsIYXAOGzrVDWW8}?DBzk=R-0|I?Zk`i%Y;X&D5*CB^^Ds>@ZS-*LJFC+5$G`Kt$8I*a^?lmH zXucb3`GlkA^XqrN-(KZFwXz?0BS#$$bUKN{xl0{o{1c-$wcYa>-;u+9&Zu9B{b%|J zQ3k@_XQ;QszP;G(@KPM6-#_Q^alNFLn%8#jTZF3RW}wY7(OC z{_BqaFRcE3eT{2d*x$m~)3=i6p8^nX|Fd}eHEG}hJf#A37)9WMNf6(6j^`2KuoPBp zj{LK0MtP#gw1(OGuA>hl4g{U-2f~m3O&$e+KWYE{_wQw&pFer4Pu}k1&MB3!Y0`WYKhB=`pN(|$JXjaD?%^I?YmI!sT+NLI-XV3B~ zT&(2cEMK>>!N^O2tBEpD5aCcb`zVXsR2{hwlW^~n!glqB*DDa3=Rf84zYVaQel+YdX7D!sU6wDf}3z1tjWiNn8HGVtLhhs zO(|d!C_KtcC~n}V(s0c)utJ)$U1FAok4D|$ZSCe-$m=t9-Wwa<1-@f8xSO8{OSHG6K|KrhrpM!+KObDH- zK%q94(BDgBsQ9jzGnSPdz4Yc5c#-!O*L!!*o+sy$o38b4RlDWRa-;tA%l|yn%k8mY zHe~^hYUQBdQc#B7H8DBP*(OnFwKd2r)W8t*+lN)Xm<&3T4jT$1F~lV-$C>Jo9)vNtO$@z44z$Sbw!@U{;A5(4ttM3(IPUIS^hZ1QI z2eVakP=p8(1yUF*cI}iZC@3CqVJ%n%4FcD}RBQ$6`V;~p2f_|s6mdb|zz8sE+1oK@ z0e}r$?&X%mU@OTQ8qm?kJRJo2YO^td7&ofoTLB(fpRa04(pfuNT<51yPuc+%k}U4 zT*>c@Pd)qV+rAF;?5fM_J%6b7%n%$k_k6vlvtO12kT?9{D;!K}=Psysc<4tq_t?M^U^ z5*I#0NIdrlP1W z*KI_gzf%Jx#E?qhA5@pPC{tPI!7In6m2$BCxYDKx-vQM`_Zkl?6@zt)w(Qi6@Q!}9 z!}=-^WsSB+pXZyb*BRP5YN>jv&!M zYR^)MdsiEVb|FIY)E2x2)(#{T{UbUa=BNOd2w3At1{rclj0*IG^iUZqr4WQXnFMNq zj#fi!Y%}69`{(!CfdA|NcA7LfxmAm=mk`0iWI>v+hz-rCwT1ozCm z7ZautD1ZXJVLkEZt67!`MQ;?`rXKtKoRk#oq{!mA6Mgqm) zMYyyS>mxZPZ|{7a5PkFPtNu}yLQsVnyX`=xEfA|misMSdI!c*epgpvv@CtjNG0Zw{ z;E&t#Qh7uAm`(>n3|?>^3Vnwoywd)7a{2IC-wX-qk)eWwT_ij7CAKa2Rq!bxjugvV zIj-)<9}uF44>7$Wf*an)W6c2WV}{qf|Ngi9RJ`cccM-;#^!ZEY@{)Olq%2fwDnjOm zMF{tLovm`EXwTXpqp%z83VH6XX__{P)P4gI=N%kmgLH^&lqXEcm8i%KFRTytIP0Bj zY|~5Q3>@SM$$?98ZBX}GAzZD+u7xu+6UGOAs>Hj|$bnq8w${e7qD`hKXxW72AP*R% zxNK3toxH%BxkM4GH{74adWmJzyEUUZ5A(=)0-dH7iNO*7uTA-v5yfI*EsQ|)I-+BX zJx1t<;a{5b%VN)!FN)$+8HtuPJ7Vghllobn!<~uS{y->!&k;@0+TBb88^nSWJkA{a zv9$W?j}Pm=|BC)Gc6)#A-`#u8e(oXh<59n6afhFBm!qnml){BBy-?W3fr)`L3=$&% z(4tDp61GIDK9&)6DJ^y6IV|+uP&_^ z1|R{#F}82$Y~22~8efNXo9vdxh{QmlaDzwXuE5Rov)Gchi_~b}LkoiM182;>W?X8- zF=dYiHs!E2LiY*Y;@H${&OP}G##>-K^siRv?#5jfp=8j(RXULhV9-xDwKqit2 zykROH3+G`V8LV0>l={pdsU=EqMucw3#cq~fRp`fAZMOmsu@NqVWn>01h^zZv>Y_#L zW^$M2EA^g#GJ;#Py4^?Tes^5^9elwEcQOmf3WpQ3R>&N*#_@VB>n(XP1rK+9p2!$XOxh4ofQ?w__Zzk&=8z~Kqr-z?7UcYkaNKLXZYcz3Cfn$DN zU!LRkCdf!0h}s*GYA`MdSUsze;qAm^y%*E~b9FQk$U~AKXcguOfKI|T?UbV&gL(Iv zq`Iz)x6aqR0kCiIZM5w4h)99X02#)ZA`vQkbT+Gl2@_?$%YO0H+$%<2PW$0ki-RDkc$l zbI^8pk2v&s&z^3!Lolp>!j$s1GNE%!U1`<6Ic4*L$fxw!P6~11lx~vMmgz~5=uv7D z5+&VmHVpG49Z<8aVdUfYaTG{==MIh}2Ju~|JjXOpNgaev^?jzN$BF#F7NIt>aynQy zPy=ouKyGnqeK*9X(}u1Z1KUM1*m_YtzP2m!H4?`YMmVyng+#rzW&L%z|}Rbum%DLKWQ}6*YoW<&-#7 zB}F+Wr-^QxOf9hsV8XUTGFxysjlB;PHpG^diUeh?u^hw&JfHvK z^(9mB-Z@SY_QuKN!>eyLPzngW3UhyT@_Q`&g{B5?{X8XnJD|yZ;lCmCFZ%J}LW2mIsa7*6RKmr`=Ypw`%n09;X*wp1yw)!Ej z7nUGIb7R5Jd2G#LPjJmJDv9(1FaNmx+Pw8``@de9)8gXkAOwbE} z3lKTTmW5+X9KNAiAl|4xIc&F`L+C2Bpso-_wSf*Ki;99VfJ99oKtQINf&~b{R#976 z7#K4;o;$p~D?6zGx!#H)d48jIxak5ujy3V4@X^} zPxMuA1Di24A~M(NY#KNK5c(%13xDsEPj(kR#@R>YO52;n1I+-V1Vu=qMI-1Km}Cc) zNGj0mnw(xJbD&iBhzFD~8nFO3wBvqyybXD%vVCYqYg|wFIhEskkArgbY4vckKi=b$ z4p_Du>M1`ji-&rmBS=AU^L=Q3buVG$@`;;cf3N}Pil0yNd36=wQBuQ^(B>cr0z?+F zDP6SU+*kqrsw|B@7#UgGaqC4#aCXW5-GAH z0vzS5&c3%eHztXQY43lL&eo{vM|}S;UR_Sf+exoWERM!-Rq7=XPRU)HCKwI@^-Nu* zwvtBy8p#H5&6sjqF0-F|LED|DUhl_g_jqN>$8-;CHO4>yLbF}7`pW_CkTc8&%^vV8 z0MW)IHUT69X*?;EfAaa-{kTR~gQdbB9j`w*%6krVl2y>-)XZ*KyZ`#K>w}MPbBA?& zaefe$w63l7kUxKb|AX#-+iVzwnFnu0^hDwmJs;h55c~3@v!75}Fi$$aq8vig?bWb^ zD7q!&PY_WWzl0|uVS#9Ff1dtSJreC_E-#oDNRGTbANU5$&D$9~mXeL$&cO?J?}M*9 z(pI-hTa_y=N-QjASZEkTfzTPeQk#f>#Uw>p#C^?Cw{AGj(jy@{aBxx;+;kbo1iqlZ zfm}LHRyl-a%K{)N^AM{i1+$tHa8#f8!NZj#ni*OK zI_nea_%LvRffJ~Pn+7wsA&OuO$OqXfX^+;a@ zc1f4fOpPYFs87w|i4DX75^7*2OSdf1J5kP(v=-1PqQw*fST?)8ElQ-pETF*6!YwVi zS?^aRQ+6tn+vr8Kn8Wa79L?Q)aH7Gi?8#|Ydqm}L>7w($8${C zSVMWNN93`VEh=n10u%%V1TYs=s8JUXWdmSu(Kuq{hy)c-U_t6$*dds0MgfyI7+QmN z%0Orhe}1mRWMz>y%aUIE_1*kkNd+323d1pH0@*Hg?pk0a3YHfD(Gc)d|-;{7Goxo*84t>wM60A$9Z#*A0 zFL(EZ-9Qgf$;W!Gv($0JZMHeIGgjDUK=P;D>0yc#J`&Y>tby85AMDJ^85ws@Y1dE~ zQ_<}{kH33AHfMb%JsWjbTQ)plN>W%=n3Jf;qfKn4({rbswfpKRI#ijl5?ZC(O=*Zm zCk{k2VomRdF)5Ul8a9PZ4nWk_nz0zV!rEX80ehJphY{6A40+0DsyU8(m^g3&%1W7< z)rs4rrjekOMledR>PZq9d9%JTRiYp-4aL85e|XdE1b0dK4Ek)jLl>u|)|ffUaP=@7 zPl~cB1OlKy0E>|v@rVtvN{keQuyX1Wj!~LuK*)+W$b8kFug4RxtNP0a{PiD~|Ms6A z{`$wInS9 zKJg?lWT(6_B$y&XkRY_@@pD95l+MdQNS=)^^&odT!|0s$nsFRPB%$i5qIs`|qEHoBv7PQ8IBc1+?P zf86g6&iu$TFgIV@20GV(mXu^O{SN9J+;k@v)cmC9cUh@I+D4Z%ZJC_-ukA6k^%IVN5{ z`_jIfJq<2->vIDqP$2?!1ZdCJPVj)U$H7T~DbRq|#)Sv_$H_Z`LOi!lJRjENJ;|CJc zUG^$dy`G?uLyVQmq!=cD^z5HS{ZYmg;ss zqs^|h)S_u%nEH;>?FoPqO<@mg69HNlm0~`cUIaWKS!o-?>4Y=G%5T@xnXhgi^<8st zG0a_FKr%#1aiFD7&V4wg3kDGq;(F(6pQ#}PEWrd;T%p`$)ps6#!`9m&zreW{s}zhR zDV{WzOBOx*CSRvZb^h4cb(^=3^zvEcdZ5BkE)ZpKNEs|xLjz?iRi*Nlf?a4DSJ!S& zjh-h_uUG|~Dc9nmFg7>acD{1i(8_QE&`1T{$YtzcifLA=0f-(Gk#Ja?D3fH5s9MO* zhPVFlub$pRIF=_sBe(@Tf)1<*5w%{-G-VKj^ybo%I(&!V#>6fzsI4G>8Uvr8l5m7w zCAf*NX*=+0?wj-GXWLf=ty>F0ld?I#tK<4M-)jnfTt~JXQt&cZp^N0At{M{>_fZdx z?-z#B(^l!obLP-d-+!Izwat3eiVdNf@Rmr0q-k)UoDMCMh;|&}APJrkh@frmnsJdz zl6HXb+#ZB(Y9n+GG!^L7le48J{Tv%wW;?s?wfCga*%Tvgxpz_2n3nXW+3 zj#_pV=`#&7I;>1mtdVle)k^o~pfLnl6~LW31R?ZEp>UfMZb1fuG6foGDwt=Ui(AF} zC1^kgRyq2edr3M=;FT)k;D|5JC(id%OZA=qHL@PfE;!W#gNlmb=i-q93o{sDNlcu{ zaV)3RN7*%k-6};W0ssIM=misvL-*m`T^W!rLT+M)O{k;L#-OVk@d{{}EL@jCNzLW~ zOKNj-J$44{l&S|S)8p{|ay2thK zb(#r+pb+$r6+M}vj*BXR-05r+gqA_6Cde&^+=INkZz{tjXx1`ep`o;CW&cDb~D z)>~8w>cYG{Ei|bT006QfxCbH-LV>2UAww7XvOTkW^3*;>)(BTU?*7^EdjlPTKG0Rk zAri*~raj`SpwR8YK8Q}N!zC()JV6~-gltd=3QF@~w;6t2q;dal+8Bm)35BK^F6uy4 zfJvYQ)hw;LQifp@<=7VetjDrqf@?5pRNVzZvSWs}_Tvg_(G@%RwvgLxmCoIx#BloCp0VPy#AR{KvMn7P>J z0Bdy`Bw+$1p>jo)+L({LJ|+q!&;R&5o5^H()%T?h2j|XM6IaVTn>s=!5k!=oZb{3u z)T5DOqgND`a$UuXtyzE`3I@k~ch6Bfb?sFJF*K_ehoyK>g;kz;a=w`oZ-)>1o+Q)k z+gs+1OuH{O1zei}<`;O&i~<=Yun_|g&@i{?v9JV;VjtJnM<@!@rG!Hd{uTNT+6?Mh z)YDmSIH#*m;~RK|%(ylUl2{&NX!wQV#A}rTdFz=Ja1R7DAaC)3mRVEa4elA8_9l_2 zY1e@b`eQSdg*pEWc)}P|EY37VF6rn4&ab%d7KH%|d*WJNr4Nnu9!Lh-8szbRCDqS? zTkl>-{W9u*0a%Ase>6T2{vX&*lUp9v;Cp`MzTaLIr9az0j;)nn!&lZCC87eh=&$X6 zVzOJb*>ZHHy&R^cGP=fu2Q^ZWHUoR^Z7-1uFKWi}R=fLzhK$`exBEWU?x5Gwppcn` z=NF5n{_0-+fJY-li|3_?C!G1c!`oON&t$A8T=9JQvm<}5n!d)mm<_ubXR`Ipc})Ch zJ;?t125z+3vb=u$p%TAm#n*5wR9cH{q_woocIKa~@1`a-Oor3OePRu!p7G5)si{+d zI6mSCx+Anlg4@vV=yz*JO}KYUUj`fjB0N(Ev1|p{h;BpsV=q^pLof_vuv4fF00dBg zQgRs&;tO&S!Dz?JoUqA!Zpyxi`@8*hqBptA zzn)|I*`)s?QGb{7M~*Q;l=)1?9V-JpsKuF!i;u&5-n2`L=gZhSDo=_I=!hdftqkK` z7x2@$c+ym)1+D`+YX7!6`wrk9i;qos3CYJn&u1ep*{Z}h#fwlnc)6TuCiaNJt^ z&+{GT)<>vIVU-9{+hr=Srrt)dZ|Hk-rBEH-IahB&DZ}P`(g=y890U+L=)~~I8d20!vG)z;? z`pj*Y{Cw%uXqElq_%(MvvD2-O`<3@O`q<{L+xpm;yD)IKCwvS>u{e}>QCOre-x?TdDWvnP)1|5mTU8;?b^6}F21T6Ak@dC60w zZ@D{cs9V|)nb3Y(VR0-|if^ja#aU~1sj|-i z1u}x!NFqWh4wxf$|26$jA%!M!5nDw|L_&e^SDd;on%1IdS4~&s%#bLJ>O1J4M7 zcFV#7tmB3Zp#vU^KbLcbJd;Ec6y13)^?V6syXQ9UWBBb zhTKL&c2F8}9Y0zwbR^)7*9@*7q>5WnB*Jc#@BLmVTs3em8WswSNEub>)1U@sn-V0H z_A4<PWqUd%>=HcF+ZoYzO2qxpPo zxYjamTqG$bO`muq#7X5y32QSWA0TEJ8*pIXi;Ti2_oXSD&&~}+) zX)=zuD0-DT&H~1IIT|gTwfW|9uiR&PFR@9~f?H!}vz9oNW;g9 z84STij0y#Xgav_24D&DvR15%$1R0Al#Cui;L!5kxHMf`BHp@%o#D zov>x)>MQ)Rbvqk}SGM?6Ly)eB-O@O@ikaW`BC1qb1r&sE8au`d z8|;(`NMZ&sH(uWk-u3g({}r3+`ilqip*M!$ga6C>MfdlaYuZri-*|GJohRq<&Z&B0 z8A=VtBHg{VZ;$I`&m#>f6O4k0G3$5#Ms>hU?W>|yNgG{BC>8UXGq7njw=x951Skqj z1prq>Sx6wI_}Vf!!svKoCu96Lc_#(jOWqX977VAI;pF3a{OR<4pEKN3)x%Ki)yBKj zK}}^^+jrl!22@IA{R^;v%GMfW)Q(!oj-;w%x-a?zt{8BvW7bNf{gTUlRn9i=E8#+wqCbC0V(|MZI%gg3^fuj4vW5)`^OJp71KSWDa+ff(kfrv^j4HvjF`Wq^RmkwVbCuNWblw+FxhqPdNXm zC@?d}>49sI(*wdY$6*&R27lm?zwIe2}uO07uVpl~qOskTg)07NdiW4GBqVD z6r@E4Xh1tSw4;;ikBPNZg}W(3T+`HBy{(YdrOcOmFd9ipmd4doG7HaCc z!(p-$E)9lYbN(8$RfB+bmuk<*i388AIEP(F`2s+&wrKpPItPO?UBUD8o^WJ zbS!u=kTJj}m9$k%a{vioy2uVB1ZY;`%JCU%-u$MSQ46BtUsS>P(fnvfhXhiw0O~7L zB{~#@kpbO5GB3z26Q#*l>|eH>NO&v$xKtP6PQeCE1pon1f@NrH!cdWzEnDP@K-Jn! z!{{l{AcEIAGi}s+l-?09|C;FQvHh2N>NY~7zja;zq&8254Yo}<$>~1}8yD$n{$Y8e z$D$Gj04PN&MHn~$0KgJ%&6Jb!Ng=!?;pl^^KwX-=aOS!FG4=d@`r3XG$r9D-2L@~n zZ7LVwP>;FoUE^zjH(fhP%IY*3zJYqy{L1_D2254k5&`jz0)}y;l#E>9>2_R{e3NczY?`+=uvuykf5yJVuVFyMPjgD^QgdK+j8%K6(BY+c#qAG_Vej48l>Y=ujwi1N#LY7 zp*jSgy%YUmJFhZG3XRg78+Gp4VnX8E(f-(>za(KPMj*v)%Rr4beh7%tUgUX zSBE^>7wqqxIjYJi4Z}jDR*sZj7}Z2!(V*CYi=e=UoDDkCM(!boT5E3BRPN2ILQ1FQ z)UGsGQpfT*+V>Yc1C8NnYP^jb5*iFjVDqLufVS}pW(g_@@tTVF_$|y}_@Bw@y~TuI zeb_ti`)=<0ZDDT|Ze5BWGU0jspm?4KP)i$*DOFm1Ur zPI!sr4H$(6F}ZEXB!C71MLycFO$%r*gL{m+1>3#w2~DsK3m4glfNS%4HN*tG*Tq(v z5oS6<+3rxuT3N(V3h5&;lz5PG0cEb5Sw#2-A1_1ZncR+ zqUa+2z})E0BXl&=+FfVo0d>CXwMkOK`B-8o(f}@WeQAB@3+f6yQv*MC{{TIoU*G=Z zoZ1@6Vt|mLhQN`%a`N-C;ukal zbGd)bSY{iYdg6@DS~7fTUe-pKE^g>X78J#Cm|e;y`XmQ3%l)z>Q33_RgI6dLC+-Kr zH3u1>Vfqa2%A&=TY`byJ^N^skQH2waLthbvj!b}9fClI`ZL_|2m>$9k9*C2qBo?7W zWI)(1G-C^NOpzQ9!-3A{xCzmj4r!TQ@{%;Q+o$*}M zbE-3#8ynYeohEUQtzFsMHOSk+hwOAtd0&w>*^<2f%;VqA_z$P~uoA<_Qlz?-^pd5Q zjvh^J{3z1{7P?EhJ?7&#{9=Wc7V27SFOcE8Sx<8Av-y`!O0bL`){Cnjb9Mxr(H|8f z%tBEz+bo(Z;j^xNJ3qP|^>K~Q9Up=zlmbx1t@Qi)V-Gk+LI7Q_{?Hd1jf21fYI>sA z40Lk=O=jU1+h%Rb9XXka+DHZf2moa}DQGB>fC~W2J7E$|Lla&B016?3H@C2M)jw3v zHseg+520(msABk6+KT?2tQlp7*J8dS33@$+q@uZSLzyt!(AQ zjO?3*PwNf7+D!N58w$_JZu*Z0-UpZKHVru|GwTQcsDJ(Gm&JQI`7*ubv8c7MuRpCE z-+bnxs(fYzo!}&zJ>N^Npyk(PDmv(Rs7Nw*MeS%0yx*O9@Qj~P<(Hh_aN$G<@SpEm zw{|zYGtgE+eKKjzPX#J>aTDzWDJxdN2~Bsh7nU_C7Tca$o4UE~HNUAdCo7WS$GIkY z%vSu(+t=rBbM}~C*xGj#;Im7Mi9KFU>XMhgal@s{zh_a_Cm&k;PA|R{`@P;>K?y~c z6Yeb!_)<#)It1Z^=@ERZQ;4|1UoHP}UH-JJR7ZsMm>Fl|2tGx?TRhyD78|l}-yDvW z)02*YL=P;#B*y2L&#$-DjXa9YxoOKlD1_5kC8kFl-nUpwT=_Zmt};+2Ko)7MZ%pJx z5kUq>!k{e3p^FkD1eznofq{(Ag#NrGjMCHVRhJjo$TzgJnx@z!v4xaIj zGcF`TKxT_l!6AeFaT?OuXIdhT$D3v*R428WE=>i2SgF7?Q4&R(8E5`oB?U^^?0?LU$K(#m~Z7nv#T)LJTR#;cfAlCmU{ zwi69|#l+wjUusOFOp1kjQO_ECL+8Di;+wrsMp90ds3F&NXv_wf0h5(p0f^q5>pSUH zK+;ewK8nU3+9yyv`fND9F?Bm1OLf!{k#LC@y@4AQ@_s7WN<{1Ed%?D4J9~plZ6}1< zTst5ORQqGxD|v*(SyMZ&!6RUtkpW`H%M^pE67=>V94^;&)G_bY8@0#n1~j{AfPo3A zLqOpcIMbYYkf{kouEmmDk%DNIYD56h)B-3M6h%eUrYHv$j!~$h3)V(?S6D++4LIDJ z8^&1E8g8JWAY!MYP?s3mt18s*naqTA3qdI==4ht7xmeEGO(7S>IWcFi?$MgP|6nLe zlV%aqIrJZ~ltz4UDZya7$$*hF{x(A^6H*x>VoG2<-9DM2H?RAT`9H(^FSp!p{`es{ z8V%37(R%NkYGbC z?-OB6jYv^O1`%e7IbIV&#Wm8P0>~hM08)et27nF2w9dF3l~IaQQZp$c%e9v=c|3Mt z?xKrG6}6+W*ILioV&C0HahQ0qZ5f7f#PN4;W0{BSU%;Xlj;WT)WPmcDsEC$#!N#d4 zK^r_{uk0!!K>{HR4W8ZI)17ar6RJaPEH|rn(^mSI`*MuGIq>1?!oI51_xJ6AgRJ$^ z3P_eV#Sp96&grHec_X7JNv z+&yw_V@_9=KQ-RmjZF+3FZg+8*H?Pzm*>0S{1tuJ9^`Q5EqU#7kPETXFHQF3nY?=R z!fC5ngOLj@5?mtuqAsfH4g-h)Q?x?r_sIy^iyE(L>B8)pSVU`wI0~PLoc4)4DYw8U zXvNYP-N|$7BuN@|W$i3BS+?_mI&@$R#NgEdH3bsg0QSiteScLNINX8I4O$i77SABw9BtC?Oc5 z%C2Qu>Or{!BPDLqNWa=IS;RPT<>_=C#4jrJb1IPfkA(1SunqmSpO|c(XLS&Emo?FW zt581VM6VDyRGVBJp*k1=#8HJvp#UJYr;0qdQDMz28m&sW#v{8n{JwnFpl^BKuRXt> zyFO0NTW8+s_tECszPff{srj^AQ7I3ll!tkwYZH?)LV|%Q0ZjlBNpBQFE~cBg{b7jq zA~HIijLf)^w|H#Ul-k}*jVapsWL2U0fI&Vt@)#6_iNbyyca7(sa4L8pbB+pP`{P)& z^A4R3WIz^G>0&|1cAlQDLOM)kCx(DEHdi)za&kV?6AY;c#<0M$kkKFF;E!2Ew@T62 zmw)|y>X%=b*X!wzUl^MAI9kHGqUZg`vlUQ?<{%cj{x%G!u`#qO&%L!$LY%^oU?MVs zT$GbJ62@aZ_~PML@BXB4Cv&9ex-izvarrBDzyI=)oU1>7yZhRv?AM;_M3*))OK&5l zfH-T`tVBne@`hbCD=-_zrXEjoI+nrIyZXyX;4$mz_EY6}#efsZsB2eVxoCl_ z&=-$}O_PceGI0>v)~a|+_FWT0F?JEIo#}i$-&VO%01-j&e~lK$Wt=ihqT@*E)*5P! zq_*^niHPi|0@v2V)bmsl!o5S0ouFCtoylRQWYpfcz4Vt?bX|;K ze?c;SL~esrTxetA&!&n~<9E9CvG|r|mG5{NBF*f&O4}jY@=*Ao;6>U6a|b4ge%aCC zna_c~z|K)QEa`O@WMpW(v!!_8-W?X6G+40Uw;E|LATxGlHU}UqBon^f!qojaBD$5F z;-{SsCp6nWFLlV)sBjf5lZb=>r0G1UKilF+w&Qj6I4GB!4;!F}ZmdMN2&NIiVjVsd zG34Y>J|jdy$}^kXbcp$GM4E%CVnmGK;811)1xKOI!FW}^!{->$G@e$03<7yoGjVY zY~g_&^}`Q-TWRbD^dgK>jm6WEVq~x+NK6s{1JJ;x$U!8g5uu6+WWz1eMVY015|eI>~aXEig|T@Qg>b0_Ze|g0(z9My^Lx4)iJfa00q{gzX-0J91*nqa-2$ zRtj7xqbB#i)7$JC;Wfi-i6RH}4`p;nu=ReBlSWA@1mPkW^r_^BE`8zJ^Nu3IfjD3& z7)9W;7uVX$Wrvy)i5#Qy&SC6Ln@Vo}9nP150AfI3maoI?6G5pSc$JkH3{i+f1Lh_o7fHc|G%O9Sfh-)t!xU0<)yhEDs{<*8 zC)w=`N(6KVdUep$w6+;$0Vak#S(qjCZUE%4xLxEPE}O`F!2R>63ln5aNP*eoG z04RunM0bdePVF_`U1(HWB#IG4h=S3+qOpxJZV|U`y|aOvWz5lx*;cNrVjL;Ncr-Zh z-~Bkty(=8C3W@pTuB-$kZ`<|pSlZo8-;8q);wbhPsOw~-@hf>mg3~b{^Z32H&m#2TG~(YX2S~- zw*bQ9l5Mmsgf3xWkjNpDS%T~W)4>)hIiB6>i%)59fx^(&?)#2_pQ+yWr8*#2rHFtI zUa~`cW}U6x2A{ORu*mL9svDV7?nHI0j!>8`AcgsBt&??DGH3a^P?gho<^BDq|8+Ee zI<=4{+^ZmsLq<*nkhZ*at?1ppK0w{tskhBm@CU-O`ibrhhaf)WP|r>oznuHygHLlj zUbQt_Z4bnS{!4TIZ_Venul;)@?=!ib^QyxhAVrA{u+~~)9}RVDSLO#SfCLz05d;(m-moj5rRI%;$w z5=$jIBQq?4Pu^6E?CIi5{T)n;RR zu7-5}hNfQm1c8+(w1!ZjFp5aQs;U8*6fsQ)d|ZPfu4RnYGe<&k?I*9%3HEtjb5I-6+1V!fkyXXycEmEsVR)BiOco> z*FE|V@eiNj%fmJBg3KQ@+IVS{FPqd(S%Qwhg z{EfZw(e}3|j`^PZRJXqRoL}0z)mOw9A6`TSxZ3mdzFzJ;O=ORS2InEWWd8#7&yYYR zYVef35HKkfa9n74^^W7L4Qt5KjdmP{aLh1-PvvWUJM5V&hjb6+@S0FI(niUb@mPA_O4Co3woA%bZ8fvn-c}+Bj$h*pX6K&;l^75`EX&0zv$q z^Lyq4bA%`)gy=DnsW&sFUFGM#^tC=Y8v2)=oUYXO{@^o2a6-tT>l9hYq z7NdZ}!<>}hX5vBI{sPz6e* zXjjejfRyPY0Sz=#ly&{1-erBOePR=JOAVR`;-6;pH^DTs1|6;%lrR9Qhj^N~K!#h6 zxVqU`7r07Y{(PRy5*YL?c6u+i!Gw8RQFrt#MD$X>ki9ZxT%Gy;dFzW5jpDn6LY~#$ zeC}0$UjMrNMebqh`Tcp@-y#AjpgJ4fnBCQG1lm3b@R!TUriM2aDzzD!z=&vwXZ^L& zuJGUpnG|;JDVrr?zQ@!_j~1dvYqL2j!vHeG;Z@{ia=9r`Z)k3=H?dK_?AIpOAgR}9 z`%c7Yd_fZnFo~p)Hif`%=Fjjm!y0cLH~p|{Rk?+>@oCJ6vrCnN5NZJLT^q%5*p@C_ z>~7iWv5xRW4w&3{rI*jb5JfFX1~<~2v}GR1KO+1ie1T7!e{F1Jz)draX~76%+9)fa z(@fA#_a|T?qQ*gcH5#5+>}Tt+Q17IDgxB&qxusiVLo8(NyuO*g$i08)y}#(Of0Q$O z+qAOmU*ct4o2nC`p-6wNrlcR1Mc?VZBh_U$&ksVH{UJz^Q)S9(# z${p6~kCN4YfX1rF+>A2c%~${8RN3UbFze;}y4#Bur2tlehp&ZKQS6jpsJF|Xzl!I~s#jm-%o+2El$;VW7cXUAfg4V# z)|#(fhQwgNguWP>$VMU)SF|vmG7a&J*>R=C3Xx@5Q}!ZI!L~GD_HjYwVi9}rv{Z*4 z)A4bXYT{RAnG-cwR*ey@K@lM3398SA>UMS*{L&xu*~M)6XA9)V^&fs;ef_xkckjzT zzE7g*;XuxyhJ(-&CDBqu3_q^qW<+qLF@8t=`fYM5{H5EU2Iznia@STQJCKbbgP`!; zl0WwCXXIj6P&5_Ym-(41koUj17=JstJkwB?;mslW+!FU1n}@U?)AjP>mAXgaU2keq zoGqb4F)j!T!`Yom1Y>SS%4=87uMWO6_B5b?MGcCWXZ|kmrIr9#4aSV^fivhmV4JeZ z*zr*u|NXA0JmILi)1<55(g3|ipdPex&?ai1*pn9;8>(oO7a8T1tdEMI?u{JmmOXoV z$zUC=NC;zbrmp)FS38%P{lu_y?&**T002~%QJECwBHd0_V<==)7Xgca?iwj3a;Asa zr>CGUtK2Qb3V~rVB^&G`>Fo8a*oO$BStVmppnd(ZL$(H!;OenWp}qj2cwbZoR~N->7T~VnObuo zk}6cIfS?%f+BR;!#oDQf#De?b94sTeA`F6}ju&9xA$)OtQgi?P@z*+)2R5K!kTRL( zh;+|Eg9xZ4?ro}2*>V3F@aSE}me&8V{!jma<-@J8_CMQfvJlp7OT-s3yWO(i1A(>2 zV%hFXSy#uqi~!4-X#K52lqNdO%dJFhjy{wmnLTB`Wk>-EX+HrfsIF~n2?;rV2_!(i4{MS8Au zkDK$tDFZkfiZBy}lofhYdv2X$Mhr*Iy%n=K4iZOKL|f+7Xo=D`Lngmz|Mx5Y=jZG+ z-7qo;84+A8E@_+_N=gEpMoh{HECVfE-;iJFk|T0NDnJ5bD1cWw_Jz3{j%ggYZ9<-% zHbbaHbpa6>WK7D`^txNuFdaHdq!JiF8ID1}veqI@UrWhz!(7 znE_%Hz+sF`RRkTm?~bkR9wl33TEH=)!r0D09YQK3#8_B^;A5Ddd;F($&r~9w`Ccf= ztw8-O+!z{mzeC@9$0C&@xG%I?_FIqb{VWA?ON?axsm|RAZe8a>rk%r9`m=`r`y=#^ z)%-_1_I-2cicw(dUJo`@ZJ%EKxqUnHYty??_uwzMjUM}jtiMF`mqtu36pxkry-6$k zgGwP9s_l5lb^gL{ln#?-MqyjfPE$;|P?9=-s56=DQ+}RsD zO%gU8%Qhi{gZaB7QU*1nTB%vpzyc>m&HIjDXLm^z!AD?P4J8d3zzk$TC%&w9DDpkk z4+>OETlzZ3r{vQ0Lh|D2Ek&Fa@iNdF&eKrdZl%A~)4Kx7%0-k-ur)DkPw%}zE;sPi zSCM^+XDuE0j@rm@3Mb@brW+7)og0^s6&n0tm%8ml@%((GDt*QF5J>Y;M#$(T07S?& zhgC$3>c{thxw-tY=6_+(>W}r!_YOT2M$BB9d&SZ37oqhJl z_HD22o5|VaSnhkwe%xWCdbpO0rVtLF*tW%6T2yS9kS0FI#aheD2F%DF_nS3)bUnVt zk6R0^ma>i;AHS8opa06=slY1g=ykB3LK~4%b2@hpwv!RX#c`pwSsJ|G#pj0lbO&v9NvFGqIDRM{tDWZT}=#-WN*w4$w$IiDhE&t^+7R7W0)B;c6D z5l~h|W))ioQczq-IhZl2sz9Ddz{rSLDcB561GwuK{ylVG))21G>hlYEYt~X7&9aY3 zg*`n|CvZVWnp9nNmc{XN$<49qaB51opgwK@!8n%5({AYBKW}{VJwHD8x77bV=|AR` z-!uC?yT8icdhng_^RaB|@AvJG^7IvSKq@L=Lsy`6B?*a(TLo%VD{|he-hZk4Uk+FF zm7VWy9*?t|p3kP<)@!v(mS!x3ka|_JRA#QiRN|H*J+TYU>pNrviUody8qi5eh&|v8 zQ3ClGrP76Kf+NoV^nUz79!G5e|4AKiKs4gofZL%xi`|lH<&t(cz0+6YJP+AZk;U|_ z{b;Rq`A&9+;p(=Fy4ZykN-(@qyRAJh?>_K;aK4yY^v?kxfm#(p#_jM|!SF8e6#VqGg(A z;g^~&70fV+Gn!>KJA0oe!%$Eg>@6Qd$^dNv4ZCjV{YHM+p(+b72&5p(G8OAkHQh#1 zuZnfF$7Ss$(BF>u2<3DA6#9DQ``xsGGg>tR>=5RnnKE-o4Ap_P&g&+#@m6U%rs2e5 z;aI6)CthyH%e(YcW4SaFkkMGV2?m@h+Ds+H$iP&g(^R+o0)A55U{q3LoJIg)RJde8 zRQ|2OCNF78s+sT(xZxV?HLbOh{YAUFiw}GM3AL9Oai4sC2N?m&rGlM;vd3{jA-Tj5 z1H8aQE8fMs%BUmGfEF?ovPk$JkMN(X#C+jxi{fzIlo1)Fdu6QRZWrRf=i@M1j7pqh zV;efPCL1U$4a1#esv0Odl2{>)UyAnRLtPXfulJ~_T{3TF_GBP3N&2c1`v#fK#*uhmhDH6!c81K#|HwYOhwd zH)yg+0W)m6axCPSh8{K^4x2nTmOQz}wa0JV`PKF3udDP2Z~T!qcHi?1`%rxQN88RS zM-LKRDGev3>Pyp9xb#7H+yq!81{W??);LtfMpjq6^`YFl=w;HJDx?re_ZYv(FKLXZ zR#u8*vN7CvPHp-%qjcr!MZiKU1k=|bGG}2|D$z7;2;eJW$4{JB>hLdSNSR{sd;&}o z2nitK8Dt0J66%#>*Osl?`@O8IgV2GAS+p~5AzKa1u9oj-d&2cV({T=c_vVQ4Q?Vfo zSTPAJ7N9^7NEQ=A_Djhzd-EA1xy7in>-kq=av#fyQy5;xi_8awquM94udZXFpQHWg zjY=KY>3$&~0#Fh{fI$WT042r%g-8Ot_WOJ_p|ax$Yf}h-6Bi*diO85CJtYR(AJ>1g zZ*53^p3d7Nhxh)7wUEDd?|NgW2VJtYt7wq<>qVq z8tNye#U8k(_TLLrN;o3hIRm~%BetkiFpP*VfF;2-!_hTh^JGS}JduV#fsqz088n$u zV|9R3&YqXa_c2>rkw@M`OoF1lp+-$T@SA<05MdDRv_tfCic6{_uU_N+K@@!=xyjTh z8p1_bUC5c%z6D&E!6o%Kh&@#gp>&w|fZ3$Ny)J`B@2ruzN;eLdMVv0j%hJyGQ})fo z0XL~)0ssI24pl3szBybgG%b5%JsIpJj9a-KdzO-%C?&3QT8TFOMA~a4gbrmZ;uv|Z zIv%=WVPb+H2eAVDFy{!?X;5t~I|uuOYzwmuu-QGNH^b!FoeHy4K)JX|f$r4Mdx z&Ff$?dTZ;EO3MVCL#*MHmZocR5RmzHIl zR*BIG1DwS_RMri2fVf*&(l+>_w*X5ap(2n@;kG!yqnsEC^fBlYms5q<`r-x=p>u8n z1xYSNTC(AjIt?($!rREO5e+--Y8+Cei@uTBA`&abj|~-&nhP zo;pEjF5slqlZ%Le^&TL*(!>YX3B*ED2#?S zY?yPS&;(^6wZM5K_FHQ@93nt~mvTZxKJ?{I{A00u_y3qrQy>0?zBiBQwcn=W?{Vp8 z(i!^lcP!9c=+y-f({KI0yK3R{XiY%$PGEZXPqt20oK-2Pr{#0equa`F4BpsSwZDwd zEAT>o@JM*ZzBqL}z3|I*7%2QBo;t)9mA}UTh5iGCe<}Fqt^b^XpIi0MM6tBLj9*bvkf})P&e9^Uncnn7$PUwl;4i{>MuATD|P1D+Wxv1<&8x&4c(a-gVTpH=xH1&mopw9yP9fQS z99bvyX2|7ws52(>599c~a^+oo%3sg3wXN{}eR9k;(toxx?*TCts3)qnxyOu!^%;iw znpFph=}biD5zoDcd8jvpyAZkqP$p!aj%dy~*!#4!w`zOFg=@tTdbk6ARpa%btGT}B z<5fl7`&{%@&wn)l1sE6id1sLF*Wa6e{hQx?oZCKDpV?Hvn|202W}i$y7V!ZJmL2XW zD3^K!?7#DqmDs&LbD@{L}-tuy>ood5zbDWi;n5ju5Y z#5YI(NoK3fBcs+HY}E(Ln(FbUbz(Y&1jJX$?pOwR~QC2T@t@g|6O)oThy z6il}`HKT+caWb`8f;SbPq~I}T_Q}3(6WTG(&*&e1eEPyuub{{niF%=9%u4ynUn~9i z<-x%H56<|Ls@#a6|%3PUUoik$h7G4k;`uW#nL`+lRUG@gJeaD8t7qTgPFMqp|rM@ zWp>W^hBCBL7@pdn9J6LJV6^z;`S`(6%!TJk@*$(ghJg|fn=WLua7tvOr4G?*W6fK3 zvSVpdu22sA>`W6sJv$H$CCJU~bzJM}7j^-Ad6!8RQAQKHw1y>^!KN_g4C@*FVKW7_ z-!J|NZ`2xJ#wFWU%9jl=`eXPoXEB0WxYQ;l^w9qC{K1}=WlG$xaywb<*%B4rf}6L) z?d)^@W#ZIm;WMqWq7VcJ1mEhIt?838K3Sr{GWU9-|xE=Aq8f|IE&x zb8Nr%y>9%*i(jWRO%vDSmSdtjfe-L6_Fw4p{medm=~w$z98LDuJ-E&KjE4GD-GQ%x zR;GGfhk63zosP@YZ=q{{1tpCVj|Id+g`l*tTcVbl#{M=S?4bF(@AUl- z*`or`e+DV?h|@XMT_tztOD7cY=se%gn88Dh!lr!V`(pmt-vJJPC)|DzIbaKWm_s+*T z#ly*2WR$%3uq0~irQ6Rn`O*cM@Gru(^aVD`$d zp=;!4R);E!%}k07E`o@t6r(agwdP0z%d;)Y2M9La%kwQM?pZ`#yVPoBlq#T*O4`Sp zS02RAo|XtG0Hy?AMDihaT;Fmx{7dZ@IrCo@xt&Y2gUFs58bI(?<_anTCZ$k81%XhJ zazKzA-m=n9FhuY;VDIigQIek16*9RCJ%VGx!UYT zJa}Fw{jK))J8q1H6MEFL1Yv`Mp2d}sxYh_i0RR;G;;XJH&lixso@f)mi)~QUKRi1h z?>S4=Xn_MaWzc&>GH$%9(j)-T6{XJ95Y`Jzjx;*WkkY?VQs1u6nC&wC*41}FH_FKm zaJ&_7XYxw*h#1weK9Ha;E~KG1jQD)xFJ|88=dNPr#NR8eELq7LeX} z?I^DjE&40Jvfn<8t@@hIQS$h3&Oxu2f3|x(4)fuld++wx`owg*(A>LRrA z;E1dgI1FfOvE@hfRKIK0OHB}LsqvA)KS{q+KA2D?L|^*SrbeI4DGT7j7DN!D4yp!P zDg+X3i?i^3!e*+HGVkSZC($&Cun44TUf0Rrt7U-L zOw$x}0U|ZHus6VDFydHfuNj3H9Tj2IATV~05(-;nu{uv8kijFvbC7=Jc|4i9t?&K$ zJp1Z%;cI$;UL{}q#y^Jg7DGw&Mq@wBv$pglsws)Gu4lfv)8GcC#$?`lAAu}aXm&a> zfQAZVsSRrli~B{p-aS|2X4XeAp+k1X>2W6@Knzs{Z!5~cmCzX6HOZN%(?2e|F!yD1 zH~t&y$#|-b?G`h!B9IA9+!pc&PpjT>>?QzBrWqEDYV4Qa%uE0DPJaZIi&e^;4~{hh z=bQ=gyn7KzcN3ox@42=Vl#YvP1 zQH|R`_`-mS$%J|Ue1Q)a+b-!=t0nZ@!}V~In{^GrYCq;Mvp5tpLO|PSRvk$Kk^|4} zR1Y6>0fqn|#3T;X0}vF1YXNz}4s50oHwIqXd(&6Dlk1MngukwpowO}5s6C*B+aqMn z6hUBYAGPql9-C{y03ZMWAb8lz``Q^8Nfu4RsKrobC<1lH^ial{tVt_|a^!TyJKP{= zMni^O7nsJ;dltcpoig^zZJ@uKb^p}!`dK^+#$yov(-D`~nqSK$Sn8C%Im{mPcdj;| z)b>KGu-*60x)rPTjGNN@Atzd&o4MRD`}_Ln_77X@@pZi9s|c?Veex~IJM0hdQgz_G(E+khFu*APF#rdKsoE z^6|BTEBk~%Q)IoNTm>RAahcqc_9R3Cg`t)8K6f1|nq=mws9wA4(UAah3*A^1`ej+r z47}8Gw4+_D6bN9#7^-XtvlCR2OVr?HBdHnwVr#S{jYu^w<>+nBYJBCVk5%aZ{F~R8 zhLcY=ujnJE;@wY=&&!3m?ZBIo5mwDoA`DYKAp}#Ws6vT)YN-uyRKbCO)hCp;$L^OO zt%Dz5{{GMZSeyCApPwI^SNw>2=mBxXzvuH`-L&MqbIlXS7%MhcY3%_C1t^$gnPxv> z>9Ifme0z1j^OoiibrO4w(ed_-g+Cj!Kgxd|e>DC&W`j3AzkA+&VqYiTdj)d`%Zki_ zkU?nDPE|^!y>6u?3XpAVGdp^V?38_FJmo_sKmmBPt@pGV8(U*{@Mh~0Oydh*ftIa% zRn=ef!!JZdFYsx0`$k zcg9q5;NeIqiAFRG2IyqC^G7BwWbg4Iu~lClXfCjmJmuVjWG}M5`Q5Hdr*sigOA=3b zOq@L!x0klB6K-wwhJweID)sTq4ejajK@)U|WkkUtz>N`e=^^z9m(BST7^2~=FxPJS zhxlMPXF<#2_LSBz-n)kfM7pm&j$B*%2fzGp%_pC|bhriSqRj>YBV-bAqzlppwhY1u zQh_4CfkRgDS==+ZAMsmkE9eown|hb@+vT}x2Ka9H>x-d)E+|n^K*I$HB1M~kI^Xnk3JLWqvstAZ;>!cJ9k}n_b2lU-bdz7d1wauH%Y!(#S|kWdK;%=xkif zup!&?VgyxVxVe9CW6-Ydcn|`PPQ-)gHVK=o0y#I)O;yutI5I+~>JF$*<~x)2@w8|8 z<#p`euisc%n&!&u$6g^ocDnE1;Re!Rb7Cfje%1@#)}vVvj&c9-<+n~(kK2&+5q*?R zfkprbfPA;MgRe?77fVYm4%iPUL01|i?;ZTYZ2t#;^(H%?=la2!^}3aMTOVk>o)@Q` zudWmRPxaGQYPw-2yFWYn3ommxs=515$3EOp!1*it{`j zbcTkC`XkL0bEjh8o|?}`D_(Q;T^q)E1Kd6*@5Yb&+qsKzeSNY$s}8C5E;`_(A(5^& zX=@FA&B37^+`&;xiR=m`=`mjbx3nsm*%K(yBU*CPtUlvE_n)r!ywtVJ8dQu1(Mc9s zniI^tz;=GVWS}}NzFqwp|9OL6Q#*O%HokW7c?g~n4;G#ZmJUxmke8ixwSZ=2qd=oJ zngxvIhP)tLA$?3T5b&S=jOLARJi2FhP{5a2hS%kF*qU?3abAdOOY_2t zXVW`&XD`z2c_j(<;VZ){NiggPp?{+#lCU+ ztD|-OiuME-o)x-k$I)-NPNPZz6A_pp2*KOcrcnr$rPO0!H#M>XQ^*QeNGb*(I)jd~ zPG3DD&knoSzFB68bfiLnnde39`6+U0y=YA|*42VaT;E)-hixDjAr7+?^dbtR#0ooy zR7^{K+K#fmOBz&|ni-fO(K$d_$26plEaW=x%X=RD@l))%=8fjva1tL_;I^k>mO2!B z7J&%B2oHl8@yq>R=D#WuT0lFa7(o;e z-gU895k*P$p`sQAnL!4#sBmO8S_+_W1W0VSDFy%vd0%LK?fG5hSYy68rk9bU0n`Yn#)hw`u*mQUTjTPdPcfUp6AIfyX9-r(?aV5b?(0kYVP01+ z)grhRQ&!g|lc!Yma|_KQYf@x@2D0Fqive6-qbuO?I@fuv`t8q_IVeC#(M~Q+`*mMJsPlp^ng?dm zm=w4GpbJ^7a6~rtCy~kd#5{Y9evQ(q{+}$<%UQNkbihpZ zy=|4u%JZ`wEu6Ra$9B&0?%7cDnElYU1|q$Jxsp3zWYZ9W_gX9qr&8h|##Gg@JFyBD zQPoDgrRzl!_1xJ!@N7 zs~P|(O9ep;>JQ4t3!&JQqM$930y~`S-xqbCfCrcn8}elVz}@P?&xl6()-v+X?UR|m z)T`O^*$GB-om1JLv>A6k@#uzh>4s%#R60#uBW<$U0qd~=EFz|m3Pe>^*V^RfC-fM; z?)lF6ciR6^b3%B%?WsP}{LA3CbDDSi%yGHjhos%qMp8~HhGC)PObrh~igtw{AUo=NWTqsl3=>d>g}EU{4lb$+OAXPaGo(XX?8_r2R((^d<-FFr zW3+=R8!^Mo@IIUOH!Y>3D+JbRm$Aq_&U~22EOzRps=EquhuZ`{@0pl7A5>>VE-~)UAbCr=}6kA!!W4LRvl+ z3;?r#y(rdEA>vj!E7$p9k_ zZo|fvewU6s@|zs=6)t=kn{uG4u^wONP{bIY@|HisGaR@^_$Xj#E=!xc+_18; zDgw3bpMwX0tt$m!l&Y~9h}tqSWsAAVjo~Du+1_c2?fTBXSN!;+8c~s`>e+ZS)L^PJ zK3Dxin^$o?&#ImEXW1`;F=ub*-k%sZne)Zo!>uOCE2(&LceTm zUoDPS%*8-8`fyT>wQHt(uGJb#dIqg)sLjW$l$p69F965X-~tytBV05bnXm(q@&baO zWr$T22^}pQ#x3MkMOH%{6h?n*G2`la<5^nDghW7v!ZbyK29hz_4H_E5?93V}%dxL+ zLRks`>gw;itb+B^Lun3?aarZB$4{$<6ZBqU_J9Ih*1A9VCw=_0AN4nU@9%Q;9%~ndi%3*?hWERIS?+m*TBO)NB!t| ze97lAw5H1Yz*v%u7CN5NMz}8M96RUV(0davu0GTxmxe~qb9Cl7(neg>EoDUOgyDD} zVTgi~;s3t?5dbvpoXZUzZvhpU+~mx}VK;ST!d}WOXYXs0db66!-XuLtgOy=UW-^=z zdtI-FdOoAx(LkqQw=OQx$4UW@Uo-5J$HUk|L*u(qy<{Y_s8K5!%Q*lwM4*PtVjV<4 zcn}=y+*rH;p?{(Q&<2E{Sye6K^KodU>J})iYA>v(eXnoKjJ=xkHFpg$O$~-7)C66$ zLD7XFYamE`fYA|DrMB3a4rc7%r=+P>13-*$QV%rFJCF2e;<^BosNw}zzQ9*>j|MMC zO||O_FiwmkfgVf7eN*#TGh{;w7wF48`H?s4eZx(4%)tb*F(w-hntO#XjrRm!nJ-<4^1_I-bC5=#*kZV{bXy`F#k{E%J91Sau2EYa(tG|dV-H#;P2fvTE zeJl^$rwxoSiXmMVV8%#Ys)2+W@i5Ua%s}G+D@qUz4w09U6IhO-%)@WF;uxD;bu!B;DXGOiGx|7N;E~BzzU2ID4-0nLRyJw3(ukFW6vBuO5 zL#`C0xkeDB;tTi(NENX`da(ZQEPWU66S>aI3s%- z;F4T+J1!WL3lUU@L9ojTU>OVrwg#h);AER`WpVAJHBa8H%7WDPrru30*x@Eh^Nuzt zzCjpOg2Fb-Up3>l(iV0_>GyiYhhf_?x)N}9wUUIQB{d{4l4tnT6(mQ-LM7}iA7lN` zp3G_EI$}x+vmzdFeHiTgdX+MV*;cE2*E%H)#BImmY+vdj>J*5Tr5AI z3CN~Fk{cnZBo!`or|0(xlhqEiSAClZw<>gMnCVm*t2oA_bS9yyiO4w76sl0THZfwd zIIj+X%YxFge3oIW97tn9RU(6-aX>K})SjY&F_tw%jOvVpy@`XQ{#NDs`-ZbpoAS0O ziUdZ4Txh$mlg;)6cmz0%o0TaZ4d=TXq1P8B-5;`}C`b&YKFqw_^tw<(TnI>WiiSEs z2U%7)gwzO?df>LrsTQ4fCjf5!LZJlKc7$0GPv!R~H%Pp5d;kGGGjSOHL zI8z={`-A2Pkr^54>n+^&bfG@c zNs(Cz&mM?1sxkqZ(LApkKL78-q#pi6$bh6fC`+(mK(`mtYp5>+Qe8>Kt&KsM@bc(A`MQjJPa-+gt z*$;b{@@{Z-NPxw5vQl0M^^9f+%vnB3PK$t2n5x9YZ2~8y35_hi4mx1t3(LWEkbY04 z?nRkM&1>HpaNuVsa}7swI`fF!Sx0t|GOy*Nrcb2l=XF!pvT-JWw*$HL^3;VnvDYJi zNvCSILDirZR2W0-CZs76Rd>NKSSu)$ge|8;l%i!!LiYa$pD@B0)?gJO!?m*$NaQ}~ zA*+uxr_Op$C3AArF=UDvl6I%LX&WS`j7IDZ^mFuM^Y8SHJm*|s30)RgSYz!_1fAj4 zy>3^&3!RCF-srI91%AT3zU&A6@Uh04E-oL-knfgDP|CqM9d9==Kt}|{g>+w(Z z^w6XyI*OOa`#OA{bys)%v(F>Bz4m@r=`MRRt>m9H{GD0N$+4tRz-wB?6OuBbhg=iN zUXdEs$l@WJh>?gGiPvT;6PrSSMKuZ~j0-jl?Vap70=EqOXEq2@#^zR=++q)VM5kKS z`GNOZd@oHWq?WGx_!+0znQ7ZMsGDSQl8OnYC;^fvj*O113OQe2#vUO=62Ah>8TfK_ z-9JtJpNk?Y6AkZM>2oY)zP3v^$;RRYQt*R)fsTpPEyiR8x(t?7mNJjf5{)DFgLyFI zdFyV_%`LSBHN8pz1%SW=E1N@gT+12}uP-2{(7C*($qJ%sL&vKE$cljl9qdFjk$4Z; zR%-8}9#f?r;s8HDz`v2mo+&}w@0V*aHAp*s{GMI!>)%S+_P5Su5`ziQhgXV=;(^Gx zu6{nJRu{Cy$tWLA_MikB)_8>EcK`f4e|^ho9WWe(MJePkLnBF*@k%vQ%E+{svPq+? z;7NO0J@Us-eK^lgU)bHqb)=4xWZKU6ukZKc)BB^q8^NS@?e(w*$%F(L#{eWAXB!h` zK7){)klh;!6toQy>ZkKZGq3;69_;T2T%?DpV=fua>-#20QaIKJdH>v&_+`(Tp0=%_ z-2gnoBp~DtJmFx73IwGldZ~m@&Xo0|)@<#py7GpdEXEnpQ_B0CNEA44p}_0+ zB^-vjAOIT5gheWLKtkC#gn|+Us#1hVa7%QDDG~aI6;UoLvY+4U`l=S!?3{Rl{vHa@ z9#9oO8@#+LrSfXLAbvQxrqDJ1Gt}K@m+L%&+FF!u6ft7b1HdXni5P17NPt+-SlUir zT&P7aNZ!F`;hy-Br`(UP3+vjK6rVwcj z`NpCtXNRN0$&^D`@4sGe6*?15oRQ<=PQYqM8mgmOO?H9_Ixuo9T($fNMi~%M6T@je zRxLkTB!dqI?myM~f^WWSFD-Kajn3v=C$RJWEro-bWd!$W*U{9mc2<6V#BPh3=Z2}3 zUu4$DSVZ&9ILPjMwT(jY8oWn2Kw)3J`nfEYTq8dd78px`K$WJ`QL~P-C9X=soBzbI zh+!F`(5eM|RIp$naD)!PA%h?>(is!q!gaF%G8;S72^BYsWhpP{Kg&3E)t^O<`X=9N zb>nPLs@NH{_&5fABXVJxP{ez@;GYV|J)^Ve~xgvJ2B5Y%_AA%R?>jTMAaTm`BTnfWGJjTqC&4Q65|Qu2_9 zRBa0*%K@^e4;+LrZ8ua)h>D;43H`qMEY}M1nmhU@556Y&g`M)!hry=jImTV2YNQ*u zQ638$je_Z&Nt=F%ZnB=#lp+ac0Co3`5n7hgI!g686U4Ms?ascIcL&5-YMU z+UDyxbLOwv`hnVSi0cy_1%0&rfsk| z3?Yve>l)u&cw^;7;i;ITjJlIP^7gJQwy9-N`557`j~#rQ`*7r5pDWX@)S8+Ih_v$R z)0cVveO{l;uMO!$0|+P7&ovI``l&9xam^T?xNpm85LwNmeH(D4WTj6o^_$&`kw>kl zR`0AuqilALI1z~uauHv~kbox2zyu32ssBRAAq@}Wgja_X(Xm#UF^RmmVvg@NSRGUr zy(18m=d_&>R;=1fPEv)*9Tc!vy_gl$mMAUK0535)!^7mhLERs({?mK>Klhp( z&x38(loh}bWSzJGagX|KD~)en)_Gy+ofp5==YKp7zB+tm?e&CL=f1qV4@IvMEnSrR zu02yzB%~z-Sq}*uY|Bk_LHjJ3#-R{Tn4oFw;Lb>OO~`N%PIN;xBr%v=yOUrhy&@q4h2YKWR zqRh{n3E2NTef{#6sI;EQG8`3}FBe zBmn}40#h2x61b0(Ci&DvlS2uMu4mfr?(u^^t=>PRaj%K+XE}z(skUQJ3E`jc0XM4Y9&vi0tg<768-eKm#_Q$M zD5IjpFh{r#=ye!UTEasDcx~P`haKjFmyRVM!!RSbcR&q~9#2je%3DFZ!Y%FEQ_$`J z*W;ka(A-IJ>~++zXgp@e?Zd?rS9orODD4b#)`&{(E5?ZSWA(&E9r1=1njca((5iE< zdh^Qa@y`b$u@S?BNRG((#yGpPh&F%%6Ah^$n$vIqkL`8SVFlnd>U1FJ!Np6B3;=+E zGUEu?D(xuq#<6yn`VA=-{~X!|e1$c=aWY9xD-%K>flwfPx{)gzv8ZqPQA2aU24QJB z02r`>m)ArscH4`yf`&NK;vqg0xh+^IF=n%BI(IlaKGH;MoHyr?aGd}0JgV20ob;Pe zy9H&mx>d)yRm?nQxVw(wTNwXcHNU?fsv;)gwnCQRp>SG+^O?4qUpwY8*1_CE78DqC zCm^ia?{-{ZX@tUNjkiIL3aO8Lv}JF2KNaW}yaAYmPI`=*cwqVDVj)X|;Yk`&y6?UN zRCk?~8D*B4YK}u`>s6TTu+o!(T~_+BbgkAWv&jSda|=4G7Z}*a-;5fax?AwU&|>4Z z;Cw)V*f#od$CKk!6E)PiTqk0E{Cw%Ppu3G_b+AI*G^J1DAaAEW9y2wRMse31K$#6% zqKSAtDIdLdAxAgUeWDe(2E=gU7w$O7WBpLGm@tf6?v0|RY7g~B-&k1wYxq}g^}PR zf;`xY{$wrh$m%svr!J(ur_ORl1awWst;hwmHl7?FV0pB@8Ew&e_TO!IG<7tzy=xIE z^(b7}IufRF&t@oMD}5{DLZrbxqHB`4~)1A&dG5rFQY~d+x7hM$%p#U+{li~@4PeH7#o#)JG$A5WI=8UeXTw2 zCc6fiESFZkni)_b=SOt^&` zH~n)9d9Azdu3jBlHoL%Ta1};HVK4-URPK>VEVPIM_H`tpeIFXsdet>?qMRDYMG3%h zEnXwCs!C}k3w=UA;;9~UgSC;)O&L#mpgNe!Dz4CV9Eo$vsH-U$?fduZfmtXKvsjoUoa)>Chma$e26!^Y8z0>>mSHgn7^m zEOflReRD_X+%SSCANS{JYUIb?e0z!B=-E9Vi$0>yd=)oDcK-L<|E=<)>Q9n?8}qj# zA_JXL-RuqpXhDn-Q35N6D=4XUD_g_T&n)dC)My0|Fk@9vrjXQnx698T=2_Yri=;sZ zAW$Gc#5fj4Ju{q;2xjc{aX(+Q^R(O)ug*%7+ss?3%y9Bdb=_5*BWw_qL^^?-*1%AL z9IM?x$pBzx2cj8EK;tt(=XU-=^FNanZ&XULQKLQN=B1pwcQfd5WTYCaMI4d9HC8bO z00=-%q93#*c5|&zZa#&m8r(8#RD+c%P=UyN$*O?zN9jYfZ6m~ZnY=18w+tim#6d(O zBvE?t#4=a}0Axc~opff=9CSFb95QFIhU?UEup=+0+4BQeg*;b3);B&rCg6xeEtEI} znrY@P=J&KUlqf?~Ok|O2Oi`cm0-2|Me&w%+PnX+!n?SUY3|TTT8I@u~5F^0l27+}S z)3y7!Pu=x-GMer8-*yB#=I!ldD`&}rQ^!ZMdErhS4IG`}as7S{>ym~3R1OFsimIru z=Vf#glfxa!wyAeRqMTXI#yy|?o8EUUlC)R>z@fIu&*IAncaO<2Z%?)?QdYU$E-Jh7 zpL?GB)0tc6S1)j7EPw%geyu#E{njr9L5JcIdfq{d!?GZ7ElQ9*vqM>1NyqqANg~99~v(ynhk_UW- z+gSp&44uq-CZ}pXX;^I(b=mAV_<|GFZ!1&XhCe?u-?RQseFE=T0uw*d9L9ND?OEgn z@2|Kof#P3&2|m)R&qB-0qxEykXJZk3G}y=)DMTmax8e~a{>N4yiFqShxhAlxWM=ne z8s@6wKXSvy;?)v}3C>_Cltcks40E|bcf&0O=43np!3}Crz#u^Q&^(2LSD&em{XZWo zeJp9~d%^ilz#2+NzlPE`1Z|6M2oycYt68n6hzV-}sNU$2ZFv)lW&otiHx%pp@34C6 zps2-n+yDqKbtQlgCGY?+#7mEku`_HJ-|-U{sB2(R1Jp$o5PN)0^)*R|+K!n`iPfBg zm!~!VPacC|Faf8PUJKlL1?J~=>4sg<*VT22M;=Ob9gaLQW?{Z>G0J)Dh2@|^cp!tY zW$%ieyNsd(MMCp{HdI2VdNxt5`Fw`2wsmJ_VGm__P$VeZ)_|8NI3~E@i-ngc-g9*N0SsUxOJQ7F@kLq!18dd zh5ESKD5RKag-*ocK(fNAF&wW<&jnF2BMVAha6F1sL!~;ss6zZP(t0an6sEY9KGYHQ z{^wV|{(RKkq2Fl>p zAhOk-YD-@|`m*}1;_!vPdB^LY7`4I$eUMcDW93zUHgPV8&h8RLgc7}?(3RsnuTd8l zJtkA*eC*u)eGgmVCPrz3>NRYT1dY;wHIxw=X2P8< zvYzV<{91sM3@2-VLjCR&IBo2P$-WRJE=p-XP>xbRZjJ9;NM}qlG2O!&lajI#9(X(z z_88$9*SGTc%O~f`jDkb}0RWOPtkjQ43CE-?qEBx0)Y$WCFOj?7JJkRoEv;qkbq+iY zy;?yWB|BUj97t58<87qy(0(dl?1Hl0HA>bA&Dp*z`avDyLzSq1F9F5 z$ysYS$bRgz;oF0I0E zc^pS?^)(NObjK@zE&y5He_tbN9xyLdey!HK-J_u-&?0oRB#wk4K^C}!Yt<`*4QKlr zZTf(i%r)VMtZ#SOV;G%YRfR-wuvuR{q=l*Y(~3Vp6R|K8ZAU7^I_lH-*-p!*2~e!b zN}kxKU|T@g-Qd1^ zGms=iMF0#TqI^k7aVY_TreZjtC}PV}LTQYaY60?6h>A>9p#xdg0SL-c^vwSAzxV5- z-ri)bZpR;fxu3oLm47z>(d}n`Wl6C1kv;g?)CSH%?S8NF@xj*Juw7zV%CEY)h5`)= zg#e0h1gFo5W}kYgFE5@$b@zceOWpN3*Q?KbyZyPt;W}P>YgItw+Ix!^e#_n`un)_P zGyr128xm6kQ}Uul4Cq*t41{!Ls3u+DBeXt!FBqlWc})Lx+`P*BI3DTO3i&0*K2cW? z9WWMdmJ=6fz3J`GU5Z@2J=-ZM!{{&F$>%Tr$i{#9%6^70hH24nzibn2@$Hq@>*DKsaE~ zK|63#WHk?D0Hk-Yybw((c34+DN3SbUv7_-G`cU_Ys6}QHD7R)X1rm>OQm5R@ro#~& z&=*Ev=lO@E{+>kgSjo8cpZlf9Zhk{=fBw4z=Y$-3&&ZNC+hhX-9sot9uqjQF6LQ>M zPLAw0K;#iIL6qQ>u%-OxioLZ~$mgV!j9OAl^bxgN` z{dIhPes8u%Db~hIbIH0xqzBkx7W1~|-%Qr0JBpY*7*9PZ%D_}C@W4JJG)sr?_g^`c z0h>W>v__^#l?b9k1VG}#uoDL`3ZdXdyf9UQ%n|BPxJ@xJm!b}qjV%wXNOfq6mKiU z&Bqv@9(|e&j~?!HppCY#1ENw*-6Lm0hG;G|YQMH$@|Z5~1f7T0CBJ3+p$lzn5I3?P zWzzHJt1@&yx)6@%XmF^tO1z9SjJt8VNLZ2t(y)-#C!(}LC)&$;oAK3mbm!riD0E7v zjU!p;&t0$N)XA?){SC5t>vg|lzG8=H^_@hM)0ye29ylbUgaDGIDYG8aU2M<~X@$!p zObF~aor14b;&}}*Ai80gAt%$(!5n{jKmLY)6uX6SY|KxmVqwSBhs1Ep$+@``eY^I& zMA4O5ZWL$Q@I!{!R$-w6bFBBK_8nCea9BQZXn+9-quG&CnWG^JG66!9x?n_9O;GLt z7Q}^a5n|oJlyce^5W;2Y)X$_#(!X4> za?_zu+SFcCUGv6c<#u$jchFqbPOWQ+v;8+RedeE87>Xsd!j;$xE}Y8X$G5Pj)tTFS zdC@G33Jz_9c2nNKVYPXo*rJhp$M7RWKr*#H&u3SGS|%iG@+#I+Z!W*n zJkzB|xKmlR*nw_fNtOVx&SdqtIf)NdkVi7e1|&Y&>Lbq^(sZK?LzZFVDtQ|AL)+e_ zVQG}ZHD=nk8H*yQ=;!XEdi({s{y%?w?%#ho{^RwH|9tMgH~n6HsC|tt=bAnfmD!NT zg6^*?2#0<)1Xg6tsBEPg)3Jd8DvBdGa%gZ+S{Ns-2!ICzE|kR7IaNSfoMgbRD?tHH z;e-$(5Dp{C!LBr}xwaXzv7K~J9kq>ME;;0Q$J~3Rs`F!M1g;zjQgA{ns2_30g%%?; z0$lrEuaZanC`j#c5DCPAPy|v6gh0d$h3)-VZ_dYNoN(^bW4L5$G3Bw7G-e|XU!Qh! z?e+E01O51YcGlPNzSG~J|AZ?DoIwWu_u@(trNlqr6;F9EfQ0}l5W^^*QN<~1u(>jVYSOyXRg(|=!^C5ohx;1 zdnzW+>+*Y?c-&d!MZHifY*-~V9ynxGR9rigOsPf*XGW6GqTMNq<-jyry2=Hp6*`AK z?mPaEj9>J&gd|ptvx(33<U~!0;MWur>%NKwv;C67Z0%HL%7a&v}2H??Z^~UPzIJo+vDRZR0$NqCToPKuHNy zKt3}S$;7D%gjB|QK)GSv+pDZL?zL2{V8R@&g=-UAxUeJ>6GSFK6TQs#B#Ydj)cxwg z$xfP2Kz-msYhJ(j_D8puSKbT+p)$&lAP{zq$k@ZlfQ3g#Mn)>CQAUP&UGBbG-Lx4r zGq&D61{qMi?n&;lN$}yB%g0Z@=kEOx-;>@4wmwp-DL1ysHcci{g^*dwL@_m{hVyVd zzOkPQ5mQD-rzPnSu~k79qRMDJ&<>iN4n zv&>E;el<{*F1Ffa+$yby2s8~7i6H}tR#tJnnMI`;6J2)I5nP*D@m5sC;pD_$M(nJixMiFUKLsiAb4BqWcyJ&_W4+Yjq*ZqO zR(+PNsyQ(`_K?X|0(9Emp5AUgMpnKxsds!!`7@9x{!VzgKhs3cX)tsez&LiQZK)Gd zpOulj&1_&fN6_MDzy=Cd5{A$r&Tj~}I)hDzxfl}D8`?oj!>^!C81BiaN9WTg?VQJ| zm!}@9OCd1FaKXyjRac8UtJgz4kbix5wZ6WdTvt>GI4@4r?N( z#x|ZMsU{$~7zvXg(jeF_aFk!|1;GFS`U?PInPFPt=6XIa>jUFVwkDrhDGYP<_|ok= zQV9T_1vI@TNOILcrAjPBDgZe0apfAisEZ;8na^fRYe2E(T$?)(o%f0Q6W(8xoS4H=LIjEF((k_gm+ zjntaPpZ~g+`?re0xskvJB0v2vwfUR3jjz{!_b2}pANr4f>}+kf43bc`AsI}808KIxK$KO$fPgVCWpiN2fJ`Vs3IpkDKdW4O^Zp%^Kd@Ka zND8B%v0|C^P=%4`m*ywFh&(|d7ND6((qaV_lmfCHLs}WJ6alV`QmJofF}hT2PS0Go zHN-+&*U~i++lVBQ>tUU{8Kt={LIXhT!{Wps z6$;V__=2EAld51(8u~bkrAXK-Y#LuB{<63)3w?DCdDb#EzC5~LzkmAmf8)IW)$r?2 z(!ejL%Y1x`&K{%s6!m0rL+hr^d-v;&tu|_tPT>}Gip!NarE*~Ve3I4-7*PkB zR-LG4F{bR1fPL!wyq2X4S7-aaTHr4OUGR7FzVerJPb+=f+GX6p!PT$TRFD$FYS+`# z9!eMH7&@j8Yiq3Ix1m){rA%GGJz z9yKN{rq7KUJd+VIY6_M2u`#YO(HyJ6V$5-Mp{|Ne^_99hUb*PY;2mV(9R~Gh zMt24Kz9*ARrnnwPllV@tJDYdrS|7UW|LZ^hkM;YqP+=5~u!fi&iZeMO8anZ4ut2j# z%(CGFI}em^O16k|jzO^@?XZu7w| zxxlt$V?q(#yu?x(7CLFR(DkvQxK`$u;W21@%6gSr6}w7Dfs;r+^wujP1Fj9VxxO&# za%f6i04(8*=pViBH(L`Apt{i%aN<#ALa>r9h)k|_jyl&74B#XF zURQ{Ig!rxajUss7o%90yHY?oDZ~Q7kO$2_oErP9tpxOj?!qZbJtqq&1eS-5mBG&bQ zl>5a1jV4Woq@jxGDWMTN2-xcFblS+bdeiDN5m8KGBIp(OBG?E91ki>@0YHA}^YeNa zEh5O|vs+xe?bFxC|9FezwSW1&hP5)nv7g3Mzn}l**SGexsFGqq9TPdDvWAgmsVtn! znKq`%ibyVU5rbSzM_7ryoMKM8(*{KZ*)R^hiZnxM{xLAsznHmxiqalwHeQ}HIRE)q z{KC)M)93k{zu?}rIocvAgQM?{DNp4TPQjM6whl9nP{LpsC=dXXoZ{%D7k>5&U+>-z z{de5TK@JYolJw;6@{W&vf8Wib*GoF>XqMdgqnED^=8NvWz#C*k)tD1rNQott#UY~q z+O04sfCqG=2wFR>Uck|f#rK=aj{8xA698f9uuN;I}-S31mbS z)vW#(fBg>fc`;Wii5P8ngScES;-2kMcFQ#pd z{v>)H@~Re>R(hS5-)LmRm_G*p8>Gsf(?AlRvez|ZU0?X1xR2qji`$BsE-^qwVIZNq z^q4RCiH+Nl!CR;u0mgcY;X0BL8|rg}$*FOX@F7Cb08Cv5z@lD$p&WuCo92s^jyzEK zqlRb_8gBTJ9IYD$OYm&t`aW)>aeIwdi}L|>62=Hc?k2XGyl5!SlD$*`&k@E;`1gL| zTQ|nnoh|fNjNRQ5b#=%skv7^BFg6ULpij!s{!VcV^I5ynnh*oP5kk8`zKuF7k!ZSd z_-3#p$8Z&EWkHqN=ri51x?}xFMF0Q+L}0=qJ`qk2M0QhF5%kqV*%aYXrv`MNuOZrY zpwcB=gUv&^lUjY+z%j?_b8$gY$1I)_9-?0GdHdY&WBf9B!;>aiYwn}1c`UB|fEAQn z(h4KiJ~FrR2I7b7)fv4W-fGnCUlLoP8q?QsmL?EQvIDuMXC{Ich%jkE6F?Fm7}5f8 zNF{9v46`ACfMrp{scpN_j|ix710^+Er9mO08V7xXBviUJ=)@XrH1cEcFti1FacQi^HJo zB%%{^UCnjOkB{ESd-@EJkSptjHMhj8z-?@@N4)>!IkSq9?OrQzm)DM(fN0ey7g5)z zx?{6VbVnvK+y+LCIqqSRti|r2C^>5i1fi8AJ0V*@B`xu|i~Kn|Pr?PU%h}UpUk|5e ziso==fVJ5FiiwtX;Au3QQswww7rh9zmO{i$#e`0ho$2I12IYY*tYkUIvlgBuytS<( zy+`SGl~t69r|E7!%At&s_uYsJU6V6N zzPMuM=Lfuhb)8#hRL{=UI#J;bN)RkL1VjDz?w z^bGbqvT434%CQ_;GlL5p5h|)3UL>F%keBmB91tNgImOW6itQAX1Yo5{RX^}iSACSb z$kbq-yUsxK9UR?y5bK+ABX8PJ*?gL*DKr9)#Ls1*iEpe%q84n@$%k3WAN|Mag<{M$oWzOOg8 zxjgz|GP*U`4kq?U1$wLNnYRn;*}2#LCEW$u4c+CTY8oui*ic*1Z49U&us}^HA^@~t zyh=j2#@@w8j@qV`2{P6MP_d<27}g+ys?tc1%QSWgfuW+8PRI7h*ZJmMx(+e%zFV&< zRDpZfO^Me80hp%jRiU1aB+VNIg7ZJ01>86|Mky4|2}n&yC^RV}1uk2xmhkN_jy;%; zEIw!Y>ZY~R!uqDHIUeWDUMc#q;~m?BM5UqlR|?Wc;_prW5c&6^e+d0O;U5rxZ~lAZ z(25I^P>e7EsWGTTIax!t2;h}5b`>W%U@#fbZV#tZ88`s00KtX8G~Z`9)mi_i%Wt#i z`Pkg&9RQfAyvcPguK-L@`JUh0`=-Y*^SanGwq1m2QRSI?bz`AA9flzke_h*-Gz>{6 zXKgwz{;~UB-qwJk3D}Yuq-{Y0(ZrcI7Weo3p0NzdT9`PN!VmhdUTApZIW3<2v((7U zzzcYg*NLDOBFGp41YV2)EVOO`26#XO3Q$mhLdXDAuo#6w7mW}KGIZvb`wJoSXo$;k zflM2P?%~LErGyGeW{|X^r$|99**!Co!|D=^klvZ|ta_BG-!j`jRA0gfx@i+c;eNXE!!BKsWBNMuX{O@XcC zXdGlzQ-!3Nkzrp>$1dQGjwwo!FvaM}F_dX^mh-IzFdJR;E_QkAkCGyI4f8-IsO8y9 zZjoH=*~MwM9X8~p?dg~nXn`l6FNk$jDS#j%w{g`VAzTX315IhUpitd z28k{mc)RfImKq4V*aL{(tmJ4|@aiR!&bNcT;w9$^N1&T6tM#}!+y5+>zc%!b9)^if z`?)`VKt5WB+lv0k-G(^HEAH%iii5sU6%!|br8$paDI034nc^Hn9yqEcEb0+EKn-t&pdm5Hje4hak0{%fFF`CPrZWmL z(P*Hgs=$X?ObnOD!&cAsXTO@ZsBW!+!#xp?5v!NG&m5UoSzcqazS3{o$Wy-mME~HW z`fAc2Z|o!3yZ(`4{jjpL!+gG}hC58WnqZa7$vvwonJT0#@w4@T^Ih{RgzZ2oW{O9Y zU@&mODQ51=jFJZ8inT7xDvPfi;_ycs4#dV6LF}P6suJGj03_{*N=gubvoP?MP!U^e zGLR-;JvGUN7TK#F+uq%FAPI_Sw@U)}p&(Z(z)FxKlyb4N8no6d%@h(CmYc=~Hjxz`&=;t=$ z-_*K%y}dHA;2qq)bN3(a<4sp=nxyhvpfj1?BfhR^W`3Il{0y9_j2VxJ*d`#O=d^pI zTMP$OL7MY)r}d7ErREjJ%CNVi>ao5d>1Xdc*8F@q=*v|@@8|Gxq_6534U|nmaDb{J zIpYBfLnQ{2VgiXQsyfYH{JwwRm!Hkshn)@pbSu5TB>ipgrMCZk?tS_0W^I4*KmIVY z&~jsG*i_x`LVNn|*7<2MzcAO4Szsgqbjo00C>v0KfQV%(ApjT=Kw|j)$F*#V?ZRU( z{<@jJVZ1)7&lg-R6jFi0cvM6Ea?0p6Y9=u;*5)$fct%!L@HVTZ(F(o*JUT#3M+hzZ zMY&QI@#490Pr6i$$Uc#X_?FYmGf?r|)B;I4PZ#uQZRT7PFbxN^Hf;x)BF=p=l`&8vsUOb2h|pgQ^e?*jZ}-e! zOb7nc;1W0Z^cXymLpBZ8)6l)&&~aZ)Q_4T7b3)Fi`IFYgc?rYN8MNmH7P@m%(XO_B zYR2(D{`&mnFTiIWma0aY(|Qn5FAoP3W6eghr?(ls2lXCMFEdb_suV6dQEY09_sE08U25pd_~E!m`PcPbRP=E%E0S7q+B z+qbA7zeZFf33!X-`LuZPes%6<>G_Lay8is}mUO!=XMcG7S3h+M2cCD~H{5sY5rxve zDJe5wVXg4(IbdWZ>+a0u%k!#B454wOaieV%N}}2gVr4h`%RPLbz$QfOy5;d?H$R8# zJrVQq=XLqHZJtx|>(ojrIy4|dlvSS#^RX$a@^9T)i)WpcAwh8mlN%PW$WREAhCGe9IE zqC$}Z5olU02!fX8L?KoxZY_#PIUq@W=4GV+&hKu1zjom5`Q7E?hlBgBuiyXn&%ZSH zZ~HI#_zwFQ5cQD3QHazLVQ&mwM!*~zc|jr(geVMxoEOXM9^ClE-@f17?n`HWGTB`G zwld}TxnI})pT-WytMg07#_5%&GsutOifcb{ai@JDR|lK$nU29*Wgl$p@#qymrOPdN z)HN{L^o|i6w0F!M5=VZ2HtwjeNgkRa%Rwkl=l~*eT>O{s8>qfjU0uW1&Pvn`+%ZSv zs?w%Dw&9?E0!;Zf_nrm4jEz@C2MY)!2fi|>@~>rn-roN{bRzqB0;c87I~xr|_i8H( zZlmjr#VjJj+)W`${H2Zt24KE%wye+Ix^GYQ#3s3B>$YZOrUl3vqgZ!e4rZSlIX&hN z&zg{@G7{JOZdHP{-o_+Q{)!%&Rolqg zFEbwo(!mY+XLW)c=`DjuExIVA)bqsdrDJo`Dhk=?=LtqXqMu`o}IrJGeri zq`}$B>tmdT$rQ&1U4{h6hhFw-QhKOMlmnq5(J>vMG-S+R23U1v+GJySdO}4Y@c``K z9`fv}PY9;0xGZD|iVS4awGmtO-DV1LxMDFO;O3_pOy6+zKd@ipVbw=3Z+q!?Ki*5% z0EkYot1cd3x}$CmQ36Yv=HVF^FIq+h;jsAB#$ygQZ)NvXNGngY0_tcqfV_WAq9JP2P>aeD4hk+>X*m z-P)p~K1~T##tdP_IF&$Rj!qmE_<$xDSb=A1mG087bC?)OKFBFVxG!_X%nX4oSml>% z{mibje*6Ah=u-AlEYMJgX+Wm~X+RW4VvvS~1R#OH;k598awW+j4RVvn3vn-;#p@kj zId+(0n_*$OCSNQK=|BZ3TLtZ;THXi%#;~XY5F{bDW(6(#;WF$@vOs0q00bCRT`9Uz z2Z|1ZF^DKa!vaSzW_+hu--A{VTi}paaeH(L?kM0DE>74GNjq9io`Mv)FipA;8VK%Y z@ag09q1mMCjzwF%H{JW7pQo%A*+S~=mT5Sl^n*R@($1Ua!XV=Z2Q~z4NND`7Tjq?(Ap<6nvwNHdv zdhmDC-|o|3j@|kd>w$`MrxqqnpVUpl^~)dr3(KolE{A)Cy}v+VvM6Mv6F}? z44d*~s62vgRs^DvM%Y4_GMo{HK>%81hIEVu136M48%=U_hOwrMa%yN1I?H-LB+vg* zK5y1j=2?$A4EHnVVkK4i&PuDmu{dl`1zLt#Ts&yNZZl+NQo@eV4Fbry3SnZk)lt)Q zSZ%8=fl#ys3_P7lF3_Tw6tHFYbCfLcI{9$W>vdk=4PWEqyZL{+b1mP#bkCc7*YWt8 z9)T0XfDdMYA_3GO0mxtgfPe}VPyhe`1R@AnFmMDSMqrGJ5>b#?M>+O0{M<09v08g_haHFaXRX7&6kS_(5lLcOB`m-xN0lYh)m(6)wgu3W{K()k*;X~Ih-Jst z^ZDWZ!_61GC9UjftF7I~eZ2dp($e7a0HS;gK~q3T)P0U zpgJ={c0g=2LJd8oN7Fw^l{P!}x&6$sBCAPUHi$-9ikn9dc~5V?{ho!oKo{h-zxBQU z7Mq___}}yA!@Hk;aiDPTBY)oHA+ci<&q8*frVPC)w*4Yned?herAtJf( z`_`*h!q5AG&;P;QI`m&}FXY~B*v=HjEqygE zSTZOPyD|l^NNzL*ETu}`raUSpD6N3gWK8$V%$w?3SPO`S1 zB}lAw^rc_Yo_$B_3G%^@%SNpLtr%Seqjk6{^*$%_Ro%DaYld`dT@Zpw61dZBgeqjK zQ+JCKpj1!9D%(G5i=8O8T3lb2|B!i`iivTCl@MtX*&!GTvT0zb^#UcuZE_0497@no zfri=xb;N;6&D5QdLa%~)97t6V25+nbdI=ox1xVwzY!g$b4;#t2S+%85KA)}SRuN+{ zBbw#oi#ZxAAANqFa9rNM#Xo6(V5xH70{-Nm4R-H4ak_ivmA>gLkd7HQxzAGF#arv? zq_TR0)CIUF%fe;9Fxh=a4^ba&q0T2p; zH~>g2Mxfvd2mmXAqJ?5%;jT-W#3*%DqNW_nd+C=xN)TRYzU;t9H+o<(0UZIG1bt)y z3dE_YlXSK2MbYf+l=K+sh?~-fX0*)~h?K5y9Q#Q7!{U43nyI%<`o2!@zs5hM*iUBN z3`jO_BZtUigT~`h4Z%hoCzva znM#8#Wf{JkUWhM3LxbN75aE5Wv*u8>!bFHoe7^P0KY*5UR1%N zh{}PW!kUH@cu`8r0&v>y8Jm|4feCiTvSKHToW)FBm(z?9LeYWJwD8-R$k+4E10VJ$UI_laeV zHkIYth@O4skg)1w=7&QF!6|QtQf@v!&W>?W`Oa$maH_TuohuV(DgEq=0XP#K>li zCDft-PzZA?=mfMV<5I<=kSVP>=Vk6y>b7&*Fbxt}*(F*=1Eon4tRS`M<`F^Km@5OX zV>`R{}ekya#agV%r( zKuM_*>}gU0qw`lczwUpyo^m>O>RPV}5O|fCsTtJr>sQ0CJkrM>qki|FJ#yyRqMY+i zUsm^e{^{$c7#%M>{Gs!DbjQ7odwk{n^M{j;cFM0U8xsjdfC#yc(6*+DTo&BNZd6## ze5&wBDGG!2$~zxhZNuKSW$>5(WOsJQ%2{qjIEaeQ_%d@{XV zy=0w<^-lcyI$th4|Jr>FtkyKIg_koB7 zpn_w7>7ViF$=F^p`eD&z#8mj&=e0;&?;X+aKH@^4ZxxegF?_48UfJi ze-Q2d9uI%}{wsg>(?^^Se){6jAOHUL=Jv@x2Y0IA*m(XxKCc(NM=uO6lTOjf^yL&F^l~nc-+SKzj&;*Fux%h zyxKR_C(L$^&zpPH_I4#Jc@VKtGGQ7J>Q=n*)X#VuZRx#eBM!M_rwToDUFM)Y#D<@( znNf`_{luf@{w+P#L#*)@xOm}!yY^#UfuPzSI&phe_!37tHwHG#iC{IjV~8H{z!3u- zuWsK%zO>R9Qje@CS`$}D8r7TlO#JnLVK|VK!)t>1!#U{T7WhU>B)@}Kb|Ur;p+Z4* z81sDgXmjd!*4u7x?IX>ic%o;WELFc~^^nkl7^&!OY>)tr6Jp3cx>NuqL(Xyo_WF2i zZIHWhv7elt4A8{Eb+*4%+qi~4779`5#8Yi8Z2&(&z`yVLas0-;!I{hFelN85zx>0E zbvT}l2$0q!0L(L@Ol}*Cxo=bxV1>w|odZe01R8OuWL38bREM(R5wv0e^gKU0Da`{S zL+Usk1h%3JS7ViDfK2bRMNji>1 zSP3orl|2vK$)VnUeBt)fm3}4H79b-Pu8N!gOy+D3;XEKa{dVRpUV1`Aesf!WgZzsQz3zLAPS&KmxM@z zAV3#n1qp4kEi_F==`2<1b_|SC0hmn64!UDB7pwsl_GBOdBBV~p1b}i=NLZ&W{7ZGv zLE89ltd05%E3~n@(QSsO;!u?6gC=m(oeQlH{>HNn)rD_%nD+gHU%H+VU3z3Vj-mA? z?jNmjoNvo>q2STLA&827+9qG%at(hnsjLPGZMaetW4T#LdHi~G7?9h|cfGuhaw!k3Qm7f3p5R-eg0r6CS$uQCSwco^;nZMZ z$Y<1LAkj0TEd#>PE%%s%bF@X*-DP(nH3(SBw*DyH=DmuyWIskj0Rxp|bci@b_w z%1Dl`Ui7anJ%gw%lSLB~7D9Y3#CVC(HM@&7Wf8FO6e(n!W)#nfMGcTGAy;A%5C~`@ zY^n|{&CD0V%Cge&VO|NZd`=})r0(+6hdLdrL+j9lQenh^T%cm9JmtW4mzxV%@((g# z!5H^t3ENUisH7|KJC~a;Z@gb_K_hSwpV-NODI_835weuYV67)#3>L6r7^6_&)romn zfadGnY7C}Ss(|c>#u1>7+S6QR%G6Cu7D|B}&uY``pd}OJRqtTK4FpcT`fT-87xF_B zqXQej)(9~kjX`5LZZo?tN$XZmaq9uGDMd;tWpLRQ4`W%6J`P4%p;djQuS@sR&G`1- zi+8tuoRbp9W%&l6aKRjiW6=(DRMFnt`hqAV0}OR_tpT$J7&Gp+6dO_w1d6nXhyXQ< z))1ns+gzSgIc``Z9&k}OhO(##)$t%)duR}@iXwyom3xCr6hTDW3iji-a5*``0%ExJ zbU`-69GbZfo3>}=mgSS|~LhU$_o;iTBex6h`zbW9#7K*8SZUyBNpS7Cp1+?Q1x1+g>vM<@L+=;~oD+o7x8*1{9wLDAB3~ z!4L>qNF@=dK?REzhyXGG5JUhlf(joYi*|IK2#QIBjg^mV>+W&2>i4eqC>q3ePauf?fBh!Y;#|+c2&p%ncaE*`u$@f!72T- zP$KZnyz@8RFLBo{m-qu1W%-|Y4rh?XP4r747FM6jR``xO)|jR0Jn{L=oty02;~5VQ{2&%g zLwI6h@+LkPzDYvMg)jNPBRE)lmV7K$?))9%04}w$+#p=67Z{yX3qvPsDE>FyAZiA!&16x2<;Wg0KOLWl+YbXYj5BD zANUQvD!|LZK%L-(UG703e*mgWl|ghgIs#ZBi$RUy__Ip9kCGJ1!T~@4J(flXKtH3T zJov~X4-%`AcsE~a!v9yR%}QO8p49}v#x)g`%G(IlK(Xp`x%JZ!g(Gp8&v4^la%E=h z4kZ>2`g^eOi^X!TyH(cO^t;&0M?1H6*ZCmdS>kBajLX9__-h;5mXa8z3M@5h;s~a9 za{M>cO)Yrm0oseRAv0``G;>Ib44`#;aIW}2IE zZT)r0*+xuy+-ttQ|CPbVTEMH3)Z0^(0d%k5?E1M>doMe%LHL2PGmPu-aS=$MfWrRS zKfn23>fpb~x&CR+&x1cTcw^;L@{-?WY`{N9qn0MC-hf3PDwkiDN#D0(o zK%~No*mg)l6;KE4gg-2K^-1?)WZWZI1;^LN&R?>u)LV1qKa`=rW>uS|hFjalu5&q7 zv?CNu*H?*MW2#3X^sB-P!16<{=9dg|z_{fzS2WqqLA-=Fvv`RxOzA3y5{n8oI^#IHE))tS?uXL&L(@2(+b zrO7$_D9gU@kK-QaGvJGBN;whyk!{?iqP- z!cZL+11;2v=pmyA3q%Qwg#p%c(StQ?+N~|qXE$5G&BbCQD~K{HjcEb3#@VZ~D@^2# zHLk3u5m6*z>~;;g6LwX}593CcxwjHgWGUeEuLgsLv`4!{^?ZkIc3^m3odfyDr?dte z^31^2V{VP-4k*pQ&_*{i;MZClJ`yi~QRm~Cr%;Q&iV@EC*C06JCsJ3=&$qR;*Gk!q<>qJm z+TVRFzXtI1w+?E3#NlMLie&~8H7|mn=QEG0;sWQAb2W~C02q;kH3h4fN_5~AgFDb? zdadYZ|0{j_pY3+_op^tGIpRHJ)jZdO^mskH+-h1^X^qG18|*Kx4NSn0AMVO7O?y<#-MA-xf=!6l1R20{VzNbe%QV4iZk5o+sw z#d`yM9PKnTb$kBc_VL0r5pzvRCsL%anF^$IC`yJBxDb^ji6I3v%JX!IY@-F1E-F}% zf+jf1n7`B2Rhw$Xi9efpBkeDK>TkT&%2fM$X3reH^$TOW@~DDAtGnQ$T1Kw?=Ii3O z^UG+NzYX-j`h}gm+FAWVpqd%nt(cyit)qQEMnk_pv88JW%!J{%ZYAgcCNVdHAX5~-gp5Gnn@3`{~#$Ro@yPK%dVZea0 z!b|Z7#cb0ej8a6PTQCj4v0I%3^)Kbn1v-X(1~_*$%gkOI6q*rajxskM9qAjLjs^0< zh+TYEXaPR_)^2SGU1OtmcUp+Ja-8o+F_PD9OH+$Y6eW%Wq^yRn3loq9+;WYN@HwLc z?U>F-PJir2FJ|mYUUv4~SH3?|{HOz6ZeeDaDbl;pY+4@BNz}HPWej>qLfFTC4jHKK z%6dijG7@bMN~I}&3^yqiphdGf^bicw6Gn|9_QQGzdJ$VxlJ-UvhHCkgNV+B?#FnaF zx5MbRwn^H=Gq5KKh=aMJApMv)VI)Ye=?Q@-BPI#i0u;m`py5!0`Kwe`Q>0#I{ytmd zWmdo7-5>kc7MH8OFL-(A_K4G~QfG(u?Z77S|FAul?Apig< z5(E{Z6VUph7xeV|UH#o|KK!z}GA2$jB%w)o2n21RPUv5@$49aseMW~ip@NLvc2L8- ze(>exBd41AEJ${QvXF;Gp^&kMvPCY$0G`1tMGdyG-|hTbnecWM_8XIb*+Dg+L}Z@b zF(iqC7#Iol)SyTa7GQxI01`CX0WGuVRsot!Q3hauA-PMXLKQR-0Z=otRxQT}$uOz! zGO_kq&WO9##4pJGLxTTM-KYj}DTQMVxytmgBmmzvz2KDbe6$K=37_0Sy%Ss;(u7l2 zAIF2hlIit`@8Ek(d(86C!R{O;!K9GbFC{`mLbs9$fuq9c-mJZW!-OS&jjN1iW3fqFdj8j(|}@8?6^itmka zC$CjH&F4;S-z%ZNO z>;R*#>aj8iI1EoiMR%DoWu)5zJP92WNlCQYGn^<`3)s;DQ;Z#pKa9pt_k8W*t=Eq} zjok>{goz|)E@OH~3R*k++fu~0#Q{QHJ3A4zBc`6C1 zkzuAzL!}@yaF=WZ164pAke9r`j`ZZK#v86o5ydQ7HD<3Mb43m(Ne@UcZUmLU!&sQa z6hUa1Fw_IRu@nqrsM$|;lV@mNT92xHh(bgpK*ZElcX-CC0oB|{PG_$I)iK1lPb+ih zvhx?@OS1ZnhSk_sVQ6ZC^W+dZYHLg<3431XrfZ(7IZ3l0}+nPtioRHtpGH~9l(q)4EkZG_+2vn$&9Ek!VmD4c|?1+OJ(OZ&0C2Cp# zKru*z7E%L-p)5EEfyDjxHm6n-S{2yX#43t|Ft9)c0j5X{Fh(3eg^Q&H_BH@ZBZVPA z8L+TYv?zs(PeG<=2ULesYe^UqrX@mJS(M`J5qm!6?%Zp=P(?h~I-ir1;=ls?Oj#o< zp?~?Ecs$EN8IlAzrj=0)a4iH`WR;LVkIe=JD1ZP0ku@rMliUfdw^B=Kr1T?kI%~`K zGrTJ*{n{CCj%rgUnzr`w3inQ*vob<`v=kq9582RI?Q=9nz67D0Sl$|;RLiNiKF!OD zVE3NyXW7r2zPY~$#yKrdu&h6o==?2jTE>^n=E|WHSfsO%S*qKo@FD~&1BkJsGM$-S z2H_Niinh}_L>?5o+R&^ktgaFjuut+{;Il@C%&d$YeEu}ER zLTE+MR+bgzzQwXvYO{P}Z@J%}8s6NGPv_tGHLi#IyW?RFp~cY#2mzH)NmO9Uy<2d} zmE3w~T8;ujyM{2H_8PIS;XD|V?y;OTr|kwHha)PvREq(J4(c)~-Ab$fCH`%n|6K8> z%xQZp-Kod!hxKR1c#l1MSTqrC;z9=JVZiZi?KhIZjT9DKn5*2d2q^e#L1v&xh=1|%f2LhN?hxx;BTf^WkWuf&T+y} zEIezzHKN#8#E$kRevo^!-*?0jtelNisMC1veA03mHh0Qt8s&X=;i*x`o>ebErw82zp3LA2 zt5QK^4yNlg)}7aoMmeZ?-OHz&mQvD~&F;_ ztLCEAczjiig2sr496%Yx$r!MfgGcK)uS_r_YJVaS*ANn8V}E6hKi9xJ@rxI$9jL_i ziRhx)0VH`@hLVW|0nXsBhod)CpWEjTkg zdt$#kBIQhzi?r4|-O0t>Nz6%0H^^WFg7Q!YbD!A(Wgq}4bx;J1j67r%R&MCT9jn9(B>(^b5Xe#cr~i!iU-j4iDSrRR6uG$aQHCisrtF|H z%*s*{h7T*#fdYsDGp`zFuqEb3jmS~9XcvfCFw(>?fhHSbT#iZT4U6O?^y+BNbEd1# zs2pE04Yw;mW9oItJAQPd*6+SPzNIUzL(hjpuX1Xguwe@!od$H=CeIZer;Kb`8?*


6hTOy3>!(mV)o=*fVX@ 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%0Af1Eo6yy2 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

DNUpN(!^ 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

O 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 z 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

O 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¨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%0AH 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 z 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