From 652614502c52fd6cca818464f3ca9d42a1e8bcb5 Mon Sep 17 00:00:00 2001 From: "junqing.ma" Date: Fri, 17 Aug 2018 17:23:21 +0800 Subject: [PATCH] Revert "add SDL2_image support" This reverts commit a2ea33614cc9f7e389d6a3653810f13fdd945044. Change-Id: I08e9bf8ed9a79079a019e53e7d56bd3c83cbf627 --- extension/SDL2_image-2.0.3/Android.mk | 89 - extension/SDL2_image-2.0.3/CHANGES.txt | 158 - extension/SDL2_image-2.0.3/COPYING.txt | 20 - extension/SDL2_image-2.0.3/IMG.c | 241 - extension/SDL2_image-2.0.3/IMG_ImageIO.m | 792 - extension/SDL2_image-2.0.3/IMG_UIImage.m | 440 - extension/SDL2_image-2.0.3/IMG_WIC.c | 266 - extension/SDL2_image-2.0.3/IMG_bmp.c | 934 -- extension/SDL2_image-2.0.3/IMG_gif.c | 635 - extension/SDL2_image-2.0.3/IMG_jpg.c | 589 - extension/SDL2_image-2.0.3/IMG_lbm.c | 506 - extension/SDL2_image-2.0.3/IMG_pcx.c | 274 - extension/SDL2_image-2.0.3/IMG_png.c | 671 - extension/SDL2_image-2.0.3/IMG_pnm.c | 253 - extension/SDL2_image-2.0.3/IMG_svg.c | 157 - extension/SDL2_image-2.0.3/IMG_tga.c | 335 - extension/SDL2_image-2.0.3/IMG_tif.c | 241 - extension/SDL2_image-2.0.3/IMG_webp.c | 276 - extension/SDL2_image-2.0.3/IMG_xcf.c | 892 -- extension/SDL2_image-2.0.3/IMG_xpm.c | 1190 -- extension/SDL2_image-2.0.3/IMG_xv.c | 162 - extension/SDL2_image-2.0.3/IMG_xxx.c | 85 - extension/SDL2_image-2.0.3/Makefile.am | 82 - extension/SDL2_image-2.0.3/Makefile.in | 1040 -- extension/SDL2_image-2.0.3/README.txt | 40 - extension/SDL2_image-2.0.3/SDL2_image.pc.in | 12 - extension/SDL2_image-2.0.3/SDL2_image.spec | 69 - extension/SDL2_image-2.0.3/SDL2_image.spec.in | 69 - extension/SDL2_image-2.0.3/SDL_image.h | 161 - extension/SDL2_image-2.0.3/VisualC/SDL_image.sln | 36 - .../SDL2_image-2.0.3/VisualC/SDL_image.vcxproj | 523 - .../VisualC/SDL_image.vcxproj.filters | 140 - extension/SDL2_image-2.0.3/VisualC/Version.rc | 105 - extension/SDL2_image-2.0.3/VisualC/clean.sh | 3 - .../VisualC/external/include/jconfig.h | 60 - .../VisualC/external/include/jerror.h | 304 - .../VisualC/external/include/jmorecfg.h | 446 - .../VisualC/external/include/jpeglib.h | 1180 -- .../VisualC/external/include/png.h | 3276 ---- .../VisualC/external/include/pngconf.h | 622 - .../VisualC/external/include/pnglibconf.h | 218 - .../VisualC/external/include/tiff.h | 681 - .../VisualC/external/include/tiffconf.h | 128 - .../VisualC/external/include/tiffio.h | 560 - .../VisualC/external/include/tiffvers.h | 9 - .../VisualC/external/include/webp/decode.h | 493 - .../VisualC/external/include/webp/encode.h | 542 - .../VisualC/external/include/webp/types.h | 52 - .../VisualC/external/include/zconf.h | 534 - .../VisualC/external/include/zlib.h | 1912 --- .../VisualC/external/lib/x64/LICENSE.jpeg.txt | 66 - .../VisualC/external/lib/x64/LICENSE.png.txt | 136 - .../VisualC/external/lib/x64/LICENSE.tiff.txt | 25 - .../VisualC/external/lib/x64/LICENSE.webp.txt | 34 - .../VisualC/external/lib/x64/LICENSE.zlib.txt | 35 - .../VisualC/external/lib/x64/libjpeg-9.dll | Bin 308575 -> 0 bytes .../VisualC/external/lib/x64/libpng16-16.dll | Bin 278046 -> 0 bytes .../VisualC/external/lib/x64/libtiff-5.dll | Bin 545291 -> 0 bytes .../VisualC/external/lib/x64/libwebp-7.dll | Bin 560279 -> 0 bytes .../VisualC/external/lib/x64/zlib1.dll | Bin 138240 -> 0 bytes .../VisualC/external/lib/x86/LICENSE.jpeg.txt | 66 - .../VisualC/external/lib/x86/LICENSE.png.txt | 136 - .../VisualC/external/lib/x86/LICENSE.tiff.txt | 25 - .../VisualC/external/lib/x86/LICENSE.webp.txt | 34 - .../VisualC/external/lib/x86/LICENSE.zlib.txt | 35 - .../VisualC/external/lib/x86/libjpeg-9.dll | Bin 273623 -> 0 bytes .../VisualC/external/lib/x86/libpng16-16.dll | Bin 257608 -> 0 bytes .../VisualC/external/lib/x86/libtiff-5.dll | Bin 524978 -> 0 bytes .../VisualC/external/lib/x86/libwebp-7.dll | Bin 416256 -> 0 bytes .../VisualC/external/lib/x86/zlib1.dll | Bin 128000 -> 0 bytes extension/SDL2_image-2.0.3/VisualC/resource.h | 15 - .../VisualC/showimage/showimage.vcxproj | 242 - .../VisualC/showimage/showimage.vcxproj.filters | 6 - extension/SDL2_image-2.0.3/VisualCE/SDL_image.dsp | 164 - extension/SDL2_image-2.0.3/VisualCE/SDL_image.dsw | 41 - extension/SDL2_image-2.0.3/VisualCE/SDL_image.sln | 30 - .../SDL2_image-2.0.3/VisualCE/SDL_image.vcproj | 343 - extension/SDL2_image-2.0.3/VisualCE/Version.rc | 106 - extension/SDL2_image-2.0.3/VisualCE/clean.sh | 5 - extension/SDL2_image-2.0.3/VisualCE/resource.h | 15 - .../VisualCE/showimage/showimage.dsp | 106 - .../VisualCE/showimage/showimage.sln | 20 - .../VisualCE/showimage/showimage.vcproj | 68 - .../Xcode-iOS/SDL_image.xcodeproj/project.pbxproj | 620 - .../webp.framework/Headers/webp/decode.h | 493 - .../webp.framework/Headers/webp/encode.h | 542 - .../Frameworks/webp.framework/Headers/webp/types.h | 52 - .../Resources/English.lproj/InfoPlist.strings | Bin 492 -> 0 bytes .../Frameworks/webp.framework/Resources/Info.plist | 24 - .../webp.framework/Resources/LICENSE.webp.txt | 34 - .../Versions/A/Headers/webp/decode.h | 493 - .../Versions/A/Headers/webp/encode.h | 542 - .../webp.framework/Versions/A/Headers/webp/types.h | 52 - .../A/Resources/English.lproj/InfoPlist.strings | Bin 492 -> 0 bytes .../webp.framework/Versions/A/Resources/Info.plist | 24 - .../Versions/A/Resources/LICENSE.webp.txt | 34 - .../Frameworks/webp.framework/Versions/A/webp | Bin 1354828 -> 0 bytes .../Versions/Current/Headers/webp/decode.h | 493 - .../Versions/Current/Headers/webp/encode.h | 542 - .../Versions/Current/Headers/webp/types.h | 52 - .../Resources/English.lproj/InfoPlist.strings | Bin 492 -> 0 bytes .../Versions/Current/Resources/Info.plist | 24 - .../Versions/Current/Resources/LICENSE.webp.txt | 34 - .../webp.framework/Versions/Current/webp | Bin 1354828 -> 0 bytes .../Xcode/Frameworks/webp.framework/webp | Bin 1354828 -> 0 bytes .../SDL2_image-2.0.3/Xcode/Info-Framework.plist | 22 - .../Xcode/SDL_image.xcodeproj/project.pbxproj | 751 - extension/SDL2_image-2.0.3/Xcode/package | 272 - .../Xcode/pkg-support/SDL_image.info | 15 - .../Xcode/pkg-support/mkpackage.sh | 27 - .../Xcode/pkg-support/resources/ReadMe.txt | 26 - .../Xcode/pkg-support/resources/Welcome.txt | 3 - .../showimage/English.lproj/InfoPlist.strings | Bin 532 -> 0 bytes .../showimage/Info-showimage__Upgraded_.plist | 24 - .../SDL2_image-2.0.3/Xcode/showimage/SDLMain.h | 16 - .../SDL2_image-2.0.3/Xcode/showimage/SDLMain.m | 383 - .../showimage/showimage.xcodeproj/project.pbxproj | 340 - extension/SDL2_image-2.0.3/acinclude/libtool.m4 | 7373 --------- extension/SDL2_image-2.0.3/acinclude/ltoptions.m4 | 370 - extension/SDL2_image-2.0.3/acinclude/ltsugar.m4 | 125 - extension/SDL2_image-2.0.3/acinclude/ltversion.m4 | 25 - .../SDL2_image-2.0.3/acinclude/lt~obsolete.m4 | 93 - extension/SDL2_image-2.0.3/acinclude/pkg.m4 | 157 - extension/SDL2_image-2.0.3/acinclude/sdl2.m4 | 202 - extension/SDL2_image-2.0.3/aclocal.m4 | 1256 -- extension/SDL2_image-2.0.3/autogen.sh | 8 - extension/SDL2_image-2.0.3/compile | 347 - extension/SDL2_image-2.0.3/config.guess | 1476 -- extension/SDL2_image-2.0.3/config.sub | 1868 --- extension/SDL2_image-2.0.3/configure | 15717 ------------------- extension/SDL2_image-2.0.3/configure.in | 389 - extension/SDL2_image-2.0.3/debian/changelog | 339 - extension/SDL2_image-2.0.3/debian/compat | 1 - extension/SDL2_image-2.0.3/debian/control | 47 - extension/SDL2_image-2.0.3/debian/copyright | 47 - extension/SDL2_image-2.0.3/debian/docs | 1 - .../SDL2_image-2.0.3/debian/examples/Makefile | 14 - .../debian/libsdl2-image-dev.examples | 2 - .../debian/libsdl2-image-dev.install | 4 - .../SDL2_image-2.0.3/debian/libsdl2-image.install | 1 - .../debian/libsdl2-image.lintian-overrides | 1 - extension/SDL2_image-2.0.3/debian/rules | 18 - extension/SDL2_image-2.0.3/debian/source/format | 1 - .../debian/source/lintian-overrides | 1 - extension/SDL2_image-2.0.3/debian/watch | 2 - extension/SDL2_image-2.0.3/depcomp | 584 - extension/SDL2_image-2.0.3/gcc-fat.sh | 103 - extension/SDL2_image-2.0.3/install-sh | 507 - extension/SDL2_image-2.0.3/ltmain.sh | 8407 ---------- extension/SDL2_image-2.0.3/miniz.h | 4933 ------ extension/SDL2_image-2.0.3/missing | 215 - extension/SDL2_image-2.0.3/nanosvg.h | 3033 ---- extension/SDL2_image-2.0.3/nanosvgrast.h | 1450 -- .../SDL2_image-2.0.3/packaging/SDL2_image.spec | 83 - extension/SDL2_image-2.0.3/showimage.c | 193 - extension/SDL2_image-2.0.3/version.rc | 38 - packaging/SDL2.spec | 54 +- 157 files changed, 2 insertions(+), 79673 deletions(-) delete mode 100755 extension/SDL2_image-2.0.3/Android.mk delete mode 100755 extension/SDL2_image-2.0.3/CHANGES.txt delete mode 100755 extension/SDL2_image-2.0.3/COPYING.txt delete mode 100755 extension/SDL2_image-2.0.3/IMG.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_ImageIO.m delete mode 100755 extension/SDL2_image-2.0.3/IMG_UIImage.m delete mode 100755 extension/SDL2_image-2.0.3/IMG_WIC.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_bmp.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_gif.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_jpg.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_lbm.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_pcx.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_png.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_pnm.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_svg.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_tga.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_tif.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_webp.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_xcf.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_xpm.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_xv.c delete mode 100755 extension/SDL2_image-2.0.3/IMG_xxx.c delete mode 100755 extension/SDL2_image-2.0.3/Makefile.am delete mode 100755 extension/SDL2_image-2.0.3/Makefile.in delete mode 100755 extension/SDL2_image-2.0.3/README.txt delete mode 100755 extension/SDL2_image-2.0.3/SDL2_image.pc.in delete mode 100755 extension/SDL2_image-2.0.3/SDL2_image.spec delete mode 100755 extension/SDL2_image-2.0.3/SDL2_image.spec.in delete mode 100755 extension/SDL2_image-2.0.3/SDL_image.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/SDL_image.sln delete mode 100755 extension/SDL2_image-2.0.3/VisualC/SDL_image.vcxproj delete mode 100755 extension/SDL2_image-2.0.3/VisualC/SDL_image.vcxproj.filters delete mode 100755 extension/SDL2_image-2.0.3/VisualC/Version.rc delete mode 100755 extension/SDL2_image-2.0.3/VisualC/clean.sh delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/jconfig.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/jerror.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/jmorecfg.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/jpeglib.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/png.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/pngconf.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/pnglibconf.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/tiff.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/tiffconf.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/tiffio.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/tiffvers.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/webp/decode.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/webp/encode.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/webp/types.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/zconf.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/include/zlib.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.jpeg.txt delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.png.txt delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.tiff.txt delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.webp.txt delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.zlib.txt delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x64/libjpeg-9.dll delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x64/libpng16-16.dll delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x64/libtiff-5.dll delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x64/libwebp-7.dll delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x64/zlib1.dll delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.jpeg.txt delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.png.txt delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.tiff.txt delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.webp.txt delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.zlib.txt delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x86/libjpeg-9.dll delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x86/libpng16-16.dll delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x86/libtiff-5.dll delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x86/libwebp-7.dll delete mode 100755 extension/SDL2_image-2.0.3/VisualC/external/lib/x86/zlib1.dll delete mode 100755 extension/SDL2_image-2.0.3/VisualC/resource.h delete mode 100755 extension/SDL2_image-2.0.3/VisualC/showimage/showimage.vcxproj delete mode 100755 extension/SDL2_image-2.0.3/VisualC/showimage/showimage.vcxproj.filters delete mode 100755 extension/SDL2_image-2.0.3/VisualCE/SDL_image.dsp delete mode 100755 extension/SDL2_image-2.0.3/VisualCE/SDL_image.dsw delete mode 100755 extension/SDL2_image-2.0.3/VisualCE/SDL_image.sln delete mode 100755 extension/SDL2_image-2.0.3/VisualCE/SDL_image.vcproj delete mode 100755 extension/SDL2_image-2.0.3/VisualCE/Version.rc delete mode 100755 extension/SDL2_image-2.0.3/VisualCE/clean.sh delete mode 100755 extension/SDL2_image-2.0.3/VisualCE/resource.h delete mode 100755 extension/SDL2_image-2.0.3/VisualCE/showimage/showimage.dsp delete mode 100755 extension/SDL2_image-2.0.3/VisualCE/showimage/showimage.sln delete mode 100755 extension/SDL2_image-2.0.3/VisualCE/showimage/showimage.vcproj delete mode 100755 extension/SDL2_image-2.0.3/Xcode-iOS/SDL_image.xcodeproj/project.pbxproj delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Headers/webp/decode.h delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Headers/webp/encode.h delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Headers/webp/types.h delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Resources/English.lproj/InfoPlist.strings delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Resources/Info.plist delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Resources/LICENSE.webp.txt delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/decode.h delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/encode.h delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/types.h delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Resources/English.lproj/InfoPlist.strings delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Resources/Info.plist delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Resources/LICENSE.webp.txt delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/webp delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Headers/webp/decode.h delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Headers/webp/encode.h delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Headers/webp/types.h delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Resources/Info.plist delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Resources/LICENSE.webp.txt delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/webp delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/webp delete mode 100755 extension/SDL2_image-2.0.3/Xcode/Info-Framework.plist delete mode 100755 extension/SDL2_image-2.0.3/Xcode/SDL_image.xcodeproj/project.pbxproj delete mode 100755 extension/SDL2_image-2.0.3/Xcode/package delete mode 100755 extension/SDL2_image-2.0.3/Xcode/pkg-support/SDL_image.info delete mode 100755 extension/SDL2_image-2.0.3/Xcode/pkg-support/mkpackage.sh delete mode 100755 extension/SDL2_image-2.0.3/Xcode/pkg-support/resources/ReadMe.txt delete mode 100755 extension/SDL2_image-2.0.3/Xcode/pkg-support/resources/Welcome.txt delete mode 100755 extension/SDL2_image-2.0.3/Xcode/showimage/English.lproj/InfoPlist.strings delete mode 100755 extension/SDL2_image-2.0.3/Xcode/showimage/Info-showimage__Upgraded_.plist delete mode 100755 extension/SDL2_image-2.0.3/Xcode/showimage/SDLMain.h delete mode 100755 extension/SDL2_image-2.0.3/Xcode/showimage/SDLMain.m delete mode 100755 extension/SDL2_image-2.0.3/Xcode/showimage/showimage.xcodeproj/project.pbxproj delete mode 100755 extension/SDL2_image-2.0.3/acinclude/libtool.m4 delete mode 100755 extension/SDL2_image-2.0.3/acinclude/ltoptions.m4 delete mode 100755 extension/SDL2_image-2.0.3/acinclude/ltsugar.m4 delete mode 100755 extension/SDL2_image-2.0.3/acinclude/ltversion.m4 delete mode 100755 extension/SDL2_image-2.0.3/acinclude/lt~obsolete.m4 delete mode 100755 extension/SDL2_image-2.0.3/acinclude/pkg.m4 delete mode 100755 extension/SDL2_image-2.0.3/acinclude/sdl2.m4 delete mode 100755 extension/SDL2_image-2.0.3/aclocal.m4 delete mode 100755 extension/SDL2_image-2.0.3/autogen.sh delete mode 100755 extension/SDL2_image-2.0.3/compile delete mode 100755 extension/SDL2_image-2.0.3/config.guess delete mode 100755 extension/SDL2_image-2.0.3/config.sub delete mode 100755 extension/SDL2_image-2.0.3/configure delete mode 100755 extension/SDL2_image-2.0.3/configure.in delete mode 100755 extension/SDL2_image-2.0.3/debian/changelog delete mode 100755 extension/SDL2_image-2.0.3/debian/compat delete mode 100755 extension/SDL2_image-2.0.3/debian/control delete mode 100755 extension/SDL2_image-2.0.3/debian/copyright delete mode 100755 extension/SDL2_image-2.0.3/debian/docs delete mode 100755 extension/SDL2_image-2.0.3/debian/examples/Makefile delete mode 100755 extension/SDL2_image-2.0.3/debian/libsdl2-image-dev.examples delete mode 100755 extension/SDL2_image-2.0.3/debian/libsdl2-image-dev.install delete mode 100755 extension/SDL2_image-2.0.3/debian/libsdl2-image.install delete mode 100755 extension/SDL2_image-2.0.3/debian/libsdl2-image.lintian-overrides delete mode 100755 extension/SDL2_image-2.0.3/debian/rules delete mode 100755 extension/SDL2_image-2.0.3/debian/source/format delete mode 100755 extension/SDL2_image-2.0.3/debian/source/lintian-overrides delete mode 100755 extension/SDL2_image-2.0.3/debian/watch delete mode 100755 extension/SDL2_image-2.0.3/depcomp delete mode 100755 extension/SDL2_image-2.0.3/gcc-fat.sh delete mode 100755 extension/SDL2_image-2.0.3/install-sh delete mode 100755 extension/SDL2_image-2.0.3/ltmain.sh delete mode 100755 extension/SDL2_image-2.0.3/miniz.h delete mode 100755 extension/SDL2_image-2.0.3/missing delete mode 100755 extension/SDL2_image-2.0.3/nanosvg.h delete mode 100755 extension/SDL2_image-2.0.3/nanosvgrast.h delete mode 100755 extension/SDL2_image-2.0.3/packaging/SDL2_image.spec delete mode 100755 extension/SDL2_image-2.0.3/showimage.c delete mode 100755 extension/SDL2_image-2.0.3/version.rc diff --git a/extension/SDL2_image-2.0.3/Android.mk b/extension/SDL2_image-2.0.3/Android.mk deleted file mode 100755 index 34ca6d8..0000000 --- a/extension/SDL2_image-2.0.3/Android.mk +++ /dev/null @@ -1,89 +0,0 @@ -MY_LOCAL_PATH := $(call my-dir) - - -# Enable this if you want to support loading JPEG images -# The library path should be a relative path to this directory. -SUPPORT_JPG ?= true -JPG_LIBRARY_PATH := external/jpeg-9b - -# Enable this if you want to support loading PNG images -# The library path should be a relative path to this directory. -SUPPORT_PNG ?= true -PNG_LIBRARY_PATH := external/libpng-1.6.32 - -# Enable this if you want to support loading WebP images -# The library path should be a relative path to this directory. -SUPPORT_WEBP ?= true -WEBP_LIBRARY_PATH := external/libwebp-0.6.0 - - -# Build the library -ifeq ($(SUPPORT_JPG),true) - include $(MY_LOCAL_PATH)/$(JPG_LIBRARY_PATH)/Android.mk -endif - -# Build the library -ifeq ($(SUPPORT_PNG),true) - include $(MY_LOCAL_PATH)/$(PNG_LIBRARY_PATH)/Android.mk -endif - -# Build the library -ifeq ($(SUPPORT_WEBP),true) - include $(MY_LOCAL_PATH)/$(WEBP_LIBRARY_PATH)/Android.mk -endif - - -# Restore local path -LOCAL_PATH := $(MY_LOCAL_PATH) - -include $(CLEAR_VARS) - -LOCAL_MODULE := SDL2_image - -LOCAL_SRC_FILES := \ - IMG.c \ - IMG_bmp.c \ - IMG_gif.c \ - IMG_jpg.c \ - IMG_lbm.c \ - IMG_pcx.c \ - IMG_png.c \ - IMG_pnm.c \ - IMG_svg.c \ - IMG_tga.c \ - IMG_tif.c \ - IMG_webp.c \ - IMG_WIC.c \ - IMG_xcf.c \ - IMG_xpm.c.arm \ - IMG_xv.c \ - IMG_xxx.c - -LOCAL_CFLAGS := -DLOAD_BMP -DLOAD_GIF -DLOAD_LBM -DLOAD_PCX -DLOAD_PNM \ - -DLOAD_SVG -DLOAD_TGA -DLOAD_XCF -DLOAD_XPM -DLOAD_XV -LOCAL_LDLIBS := -LOCAL_STATIC_LIBRARIES := -LOCAL_SHARED_LIBRARIES := SDL2 - -ifeq ($(SUPPORT_JPG),true) - LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(JPG_LIBRARY_PATH) - LOCAL_CFLAGS += -DLOAD_JPG - LOCAL_STATIC_LIBRARIES += jpeg -endif - -ifeq ($(SUPPORT_PNG),true) - LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(PNG_LIBRARY_PATH) - LOCAL_CFLAGS += -DLOAD_PNG - LOCAL_STATIC_LIBRARIES += png - LOCAL_LDLIBS += -lz -endif - -ifeq ($(SUPPORT_WEBP),true) - LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(WEBP_LIBRARY_PATH)/src - LOCAL_CFLAGS += -DLOAD_WEBP - LOCAL_STATIC_LIBRARIES += webp -endif - -LOCAL_EXPORT_C_INCLUDES += $(LOCAL_PATH) - -include $(BUILD_SHARED_LIBRARY) diff --git a/extension/SDL2_image-2.0.3/CHANGES.txt b/extension/SDL2_image-2.0.3/CHANGES.txt deleted file mode 100755 index 46ef435..0000000 --- a/extension/SDL2_image-2.0.3/CHANGES.txt +++ /dev/null @@ -1,158 +0,0 @@ -2.0.3: -Ryan Gordon - Sun Jan 28 21:28:16 PST 2018 - * Fixed a number of security issues: - TALOS-2017-0488 - TALOS-2017-0489 - TALOS-2017-0490 - TALOS-2017-0491 - TALOS-2017-0497 - TALOS-2017-0498 - TALOS-2017-0499 -Sam Lantinga - Sun Jan 28 21:24:10 PST 2018 - * Added a dependency on SDL 2.0.8 - -2.0.2: -Sam Lantinga - Sat Oct 21 23:42:28 PDT 2017 - * Added simple SVG image support based on Nano SVG -Sam Lantinga - Sat Oct 21 22:14:34 PDT 2017 - * Updated external libraries jpeg-9b, libpng-1.6.32, libwebp-0.6.0, tiff-4.0.8 and zlib-1.2.11 -Yves Younan - Fri, Oct 6, 2017 3:38:38 PM - * Fixed security vulnerability in XCF image loader -Alexey - Tue Sep 12 00:41:53 PDT 2017 - * Added optional support for loading images using Windows Imaging Component -Fabian Greffrath - Tue Sep 12 00:15:56 PDT 2017 - * Added libpng save support for much smaller 8-bit images -Alexey - Mon Sep 11 23:50:31 PDT 2017 - * Added JPG save support when built with jpeglib - IMG_SaveJPG() and IMG_SaveJPG_RW() - -2.0.1: -Jeffrey Carpenter - Sat Nov 29 12:06:05 2014 - * Fixed image colorspace issue on iOS and Mac OS X -Sam Lantinga - Sun Jun 15 17:33:46 2014 - * Fixed support for transparency in XPM files -Davide Coppola - Thu Apr 17 17:30:12 2014 - * Fixed building JPEG support on Android -David Ludwig - Tue Apr 01 19:40:35 2014 - * Added support for building for Windows RT and Windows Phone -Timur - Wed Dec 11 21:24:36 2013 - * Fixed memory leak in webp image loading -Patrice Mandin - Thu Nov 07 19:15:28 2013 - * Fixed loading BMP files with large BITMAPINFOHEADER structures -Sam Lantinga - Fri Oct 11 21:54:20 2013 - * Fixed building with libpng 1.4 - -2.0.0: -Sam Lantinga - Sun Jun 2 22:25:31 PDT 2013 - * Added PNG save support based on miniz.c by Rich Geldreich - IMG_SavePNG(), IMG_SavePNG_RW() -Sam Lantinga - Sat Jun 1 19:11:26 PDT 2013 - * Updated for SDL 2.0 release -Sam Lantinga - Sat Mar 23 13:36:51 PDT 2013 - * Fixed bug setting colorkey for indexed PNG images -Torsten Stremlau - Sun Mar 10 10:19:25 PDT 2013 - * Added support for alpha and lossless WEBP images - -1.2.12: -mscott - 2012-02-06 19:40:23 PST - * Fixed image corruption when using ImageIO framework -Sylvain - Thu Nov 22 13:09:59 PST 2012 - * Added extended XPM color table (disabled by default in IMG_xpm.c) -Sam Lantinga - Thu Jan 19 23:18:09 EST 2012 - * Fixed regression in 1.2.11 loading 8-bit PNG images with libpng - -1.2.11: -Sam Lantinga - Sat Jan 14 17:54:38 EST 2012 - * Fixed loading 8-bit PNG images on Mac OS X -Sam Lantinga - Sat Dec 31 09:35:40 EST 2011 - * SDL_image is now under the zlib license -Michael Bonfils - Mon Nov 28 21:46:00 EST 2011 - * Added WEBP image support -Thomas Klausner - Wed Jan 19 19:31:25 PST 2011 - * Fixed compiling with libpng 1.4 -Sam Lantinga - Mon Jan 10 12:09:57 2011 -0800 - * Added Android.mk to build on the Android platform -Sam Lantinga - Mon May 10 22:42:53 PDT 2010 - * Fixed loading HAM6 images with stencil mask -Mark Tucker - Fri, 27 Nov 2009 12:38:21 -0500 - * Fixed bug loading 15 and 16 bit BMP images - -1.2.10: -Sam Lantinga - Sat Nov 14 11:22:14 PST 2009 - * Fixed bug loading multiple images - -1.2.9: -Sam Lantinga - Tue Nov 10 00:29:20 PST 2009 - * Fixed alpha premultiplication on Mac OS X and iPhone OS -Sam Lantinga - Sun Nov 8 07:52:11 PST 2009 - * Fixed checking for IMG_Init() return value in image loaders - -1.2.8: -Sam Lantinga - Sun Oct 4 13:12:54 PDT 2009 - * Added support for uncompressed PCX files -Mason Wheeler - 2009-06-10 06:29:45 PDT - * Added IMG_Init()/IMG_Quit() to prevent constantly loading and unloading DLLs -Couriersud - Mon, 12 Jan 2009 17:21:13 -0800 - * Added support for ICO and CUR image files -Eric Wing - Fri, 2 Jan 2009 02:01:16 -0800 - * Added ImageIO loading infrastructure for Mac OS X - * Added UIImage loading infrastructure for iPhone / iPod Touch - -1.2.7: -Sam Lantinga - Sun Nov 2 15:08:27 PST 2008 - * Fixed buffer overflow in BMP loading code, discovered by j00ru//vx -Sam Lantinga - Fri Dec 28 08:34:54 PST 2007 - * Fixed buffer overflow in GIF loading code, discovered by Michael Skladnikiewicz - -1.2.6: -Sam lantinga - Wed Jul 18 00:30:32 PDT 2007 - * Improved detection of libjpeg, libpng, and libtiff at configure time - * PNG and TIFF images are correctly identified even if dynamic libraries - to load them aren't available. - * Fixed loading of TIFF images using libtiff 3.6 -Sam Lantinga - Thu Jul 5 07:52:35 2007 - * Fixed static linking with libjpeg -Michael Koch - Tue Feb 13 10:09:17 2007 - * Fixed crash in IMG_ReadXPMFromArray() - -1.2.5: -Maurizio Monge - Sun May 14 13:57:32 PDT 2006 - * Fixed loading BMP palettes at unusual offsets -Sam Lantinga - Thu May 11 21:51:19 PDT 2006 - * Added support for dynamically loading libjpeg, libpng, and libtiff. -Sam Lantinga - Sun Apr 30 01:48:40 PDT 2006 - * Added gcc-fat.sh for generating Universal binaries on Mac OS X - * Updated libtool support to version 1.5.22 -Sam Lantinga - Sat Feb 4 15:17:44 PST 2006 - * Added support for XV thumbnail images -Gautier Portet - Fri, 19 Mar 2004 17:35:12 +0100 - * Added support for 32-bit BMP files with alpha - -1.2.4: -Pierre G. Richard - Fri, 30 Jul 2004 11:13:11 +0000 (UTC) - * Added support for RLE encoded BMP files -Marc Le Douarain - Fri, 26 Dec 2003 18:23:42 +0100 - * Added EHB and HAM mode support to the ILBM loader -Sam Lantinga - Wed Nov 19 00:23:44 PST 2003 - * Updated libtool support for new mingw32 DLL build process -Holger Schemel - Mon, 04 Aug 2003 21:50:52 +0200 - * Fixed crash loading certain PCX images -Kyle Davenport - Sat, 19 Apr 2003 17:13:31 -0500 - * Added .la files to the development RPM, fixing RPM build on RedHat 8 - -1.2.3: -Ryan C. Gordon - Sat, 8 Feb 2003 09:36:33 -0500 - * Fixed memory leak with non-seekable SDL_RWops -Marc Le Douarain - Sun, 22 Dec 2002 22:59:51 +0100 - * Added 24-bit support to the ILBM format loader -Sam Lantinga - Sun Oct 20 20:55:46 PDT 2002 - * Added shared library support for MacOS X -Pete Shinners - Thu Jun 20 10:05:54 PDT 2002 - * The JPEG loader can now load EXIF format JPEG images -Dag-Erling Smorgrav - Thu May 2 19:09:48 PDT 2002 - * The XCF loader now ignores invisible layers and channels - -1.2.2: -Sam Lantinga - Sat Apr 13 07:49:47 PDT 2002 - * Updated autogen.sh for new versions of automake - * Specify the SDL API calling convention (C by default) diff --git a/extension/SDL2_image-2.0.3/COPYING.txt b/extension/SDL2_image-2.0.3/COPYING.txt deleted file mode 100755 index 727e90e..0000000 --- a/extension/SDL2_image-2.0.3/COPYING.txt +++ /dev/null @@ -1,20 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ diff --git a/extension/SDL2_image-2.0.3/IMG.c b/extension/SDL2_image-2.0.3/IMG.c deleted file mode 100755 index 2c3eb86..0000000 --- a/extension/SDL2_image-2.0.3/IMG.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* A simple library to load images of various formats as SDL surfaces */ - -#include "SDL_image.h" - -#define ARRAYSIZE(a) (sizeof(a) / sizeof((a)[0])) - -/* Table of image detection and loading functions */ -static struct { - const char *type; - int (SDLCALL *is)(SDL_RWops *src); - SDL_Surface *(SDLCALL *load)(SDL_RWops *src); -} supported[] = { - /* keep magicless formats first */ - { "TGA", NULL, IMG_LoadTGA_RW }, - { "CUR", IMG_isCUR, IMG_LoadCUR_RW }, - { "ICO", IMG_isICO, IMG_LoadICO_RW }, - { "BMP", IMG_isBMP, IMG_LoadBMP_RW }, - { "GIF", IMG_isGIF, IMG_LoadGIF_RW }, - { "JPG", IMG_isJPG, IMG_LoadJPG_RW }, - { "LBM", IMG_isLBM, IMG_LoadLBM_RW }, - { "PCX", IMG_isPCX, IMG_LoadPCX_RW }, - { "PNG", IMG_isPNG, IMG_LoadPNG_RW }, - { "PNM", IMG_isPNM, IMG_LoadPNM_RW }, /* P[BGP]M share code */ - { "SVG", IMG_isSVG, IMG_LoadSVG_RW }, - { "TIF", IMG_isTIF, IMG_LoadTIF_RW }, - { "XCF", IMG_isXCF, IMG_LoadXCF_RW }, - { "XPM", IMG_isXPM, IMG_LoadXPM_RW }, - { "XV", IMG_isXV, IMG_LoadXV_RW }, - { "WEBP", IMG_isWEBP, IMG_LoadWEBP_RW }, -}; - -const SDL_version *IMG_Linked_Version(void) -{ - static SDL_version linked_version; - SDL_IMAGE_VERSION(&linked_version); - return(&linked_version); -} - -extern int IMG_InitJPG(void); -extern void IMG_QuitJPG(void); -extern int IMG_InitPNG(void); -extern void IMG_QuitPNG(void); -extern int IMG_InitTIF(void); -extern void IMG_QuitTIF(void); - -extern int IMG_InitWEBP(void); -extern void IMG_QuitWEBP(void); - -static int initialized = 0; - -int IMG_Init(int flags) -{ - int result = 0; - - /* Passing 0 returns the currently initialized loaders */ - if (!flags) { - return initialized; - } - - if (flags & IMG_INIT_JPG) { - if ((initialized & IMG_INIT_JPG) || IMG_InitJPG() == 0) { - result |= IMG_INIT_JPG; - } - } - if (flags & IMG_INIT_PNG) { - if ((initialized & IMG_INIT_PNG) || IMG_InitPNG() == 0) { - result |= IMG_INIT_PNG; - } - } - if (flags & IMG_INIT_TIF) { - if ((initialized & IMG_INIT_TIF) || IMG_InitTIF() == 0) { - result |= IMG_INIT_TIF; - } - } - if (flags & IMG_INIT_WEBP) { - if ((initialized & IMG_INIT_WEBP) || IMG_InitWEBP() == 0) { - result |= IMG_INIT_WEBP; - } - } - initialized |= result; - - return result; -} - -void IMG_Quit() -{ - if (initialized & IMG_INIT_JPG) { - IMG_QuitJPG(); - } - if (initialized & IMG_INIT_PNG) { - IMG_QuitPNG(); - } - if (initialized & IMG_INIT_TIF) { - IMG_QuitTIF(); - } - if (initialized & IMG_INIT_WEBP) { - IMG_QuitWEBP(); - } - initialized = 0; -} - -#if !defined(__APPLE__) || defined(SDL_IMAGE_USE_COMMON_BACKEND) -/* Load an image from a file */ -SDL_Surface *IMG_Load(const char *file) -{ - SDL_RWops *src = SDL_RWFromFile(file, "rb"); - const char *ext = SDL_strrchr(file, '.'); - if(ext) { - ext++; - } - if(!src) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - return IMG_LoadTyped_RW(src, 1, ext); -} -#endif - -/* Load an image from an SDL datasource (for compatibility) */ -SDL_Surface *IMG_Load_RW(SDL_RWops *src, int freesrc) -{ - return IMG_LoadTyped_RW(src, freesrc, NULL); -} - -/* Portable case-insensitive string compare function */ -static int IMG_string_equals(const char *str1, const char *str2) -{ - while ( *str1 && *str2 ) { - if ( SDL_toupper((unsigned char)*str1) != - SDL_toupper((unsigned char)*str2) ) - break; - ++str1; - ++str2; - } - return (!*str1 && !*str2); -} - -/* Load an image from an SDL datasource, optionally specifying the type */ -SDL_Surface *IMG_LoadTyped_RW(SDL_RWops *src, int freesrc, const char *type) -{ - int i; - SDL_Surface *image; - - /* Make sure there is something to do.. */ - if ( src == NULL ) { - IMG_SetError("Passed a NULL data source"); - return(NULL); - } - - /* See whether or not this data source can handle seeking */ - if ( SDL_RWseek(src, 0, RW_SEEK_CUR) < 0 ) { - IMG_SetError("Can't seek in this data source"); - if(freesrc) - SDL_RWclose(src); - return(NULL); - } - - /* Detect the type of image being loaded */ - image = NULL; - for ( i=0; i < ARRAYSIZE(supported); ++i ) { - if(supported[i].is) { - if(!supported[i].is(src)) - continue; - } else { - /* magicless format */ - if(!type - || !IMG_string_equals(type, supported[i].type)) - continue; - } -#ifdef DEBUG_IMGLIB - fprintf(stderr, "IMGLIB: Loading image as %s\n", - supported[i].type); -#endif - image = supported[i].load(src); - if(freesrc) - SDL_RWclose(src); - return image; - } - - if ( freesrc ) { - SDL_RWclose(src); - } - IMG_SetError("Unsupported image format"); - return NULL; -} - -#if SDL_VERSION_ATLEAST(2,0,0) -SDL_Texture *IMG_LoadTexture(SDL_Renderer *renderer, const char *file) -{ - SDL_Texture *texture = NULL; - SDL_Surface *surface = IMG_Load(file); - if (surface) { - texture = SDL_CreateTextureFromSurface(renderer, surface); - SDL_FreeSurface(surface); - } - return texture; -} - -SDL_Texture *IMG_LoadTexture_RW(SDL_Renderer *renderer, SDL_RWops *src, int freesrc) -{ - SDL_Texture *texture = NULL; - SDL_Surface *surface = IMG_Load_RW(src, freesrc); - if (surface) { - texture = SDL_CreateTextureFromSurface(renderer, surface); - SDL_FreeSurface(surface); - } - return texture; -} - -SDL_Texture *IMG_LoadTextureTyped_RW(SDL_Renderer *renderer, SDL_RWops *src, int freesrc, const char *type) -{ - SDL_Texture *texture = NULL; - SDL_Surface *surface = IMG_LoadTyped_RW(src, freesrc, type); - if (surface) { - texture = SDL_CreateTextureFromSurface(renderer, surface); - SDL_FreeSurface(surface); - } - return texture; -} -#endif /* SDL 2.0 */ diff --git a/extension/SDL2_image-2.0.3/IMG_ImageIO.m b/extension/SDL2_image-2.0.3/IMG_ImageIO.m deleted file mode 100755 index f5b6833..0000000 --- a/extension/SDL2_image-2.0.3/IMG_ImageIO.m +++ /dev/null @@ -1,792 +0,0 @@ -/* - * IMG_ImageIO.c - * SDL_image - * - * Created by Eric Wing on 1/1/09. - * Copyright 2009 __MyCompanyName__. All rights reserved. - * - */ - -#if defined(__APPLE__) && !defined(SDL_IMAGE_USE_COMMON_BACKEND) - -#include "SDL_image.h" - -// Used because CGDataProviderCreate became deprecated in 10.5 -#include -#include -#include - -#if (TARGET_OS_IPHONE == 1) || (TARGET_IPHONE_SIMULATOR == 1) -#ifdef ALLOW_UIIMAGE_FALLBACK -#define USE_UIIMAGE_BACKEND() ([UIImage instancesRespondToSelector:@selector(initWithCGImage:scale:orientation:)] == NO) -#else -#define USE_UIIMAGE_BACKEND() (Internal_checkImageIOisAvailable()) -#endif -#import // for UTCoreTypes.h -#import -#import -#else -// For ImageIO framework and also LaunchServices framework (for UTIs) -#include -#endif - -/************************************************************** - ***** Begin Callback functions for block reading ************* - **************************************************************/ - -// This callback reads some bytes from an SDL_rwops and copies it -// to a Quartz buffer (supplied by Apple framework). -static size_t MyProviderGetBytesCallback(void* rwops_userdata, void* quartz_buffer, size_t the_count) -{ - return (size_t)SDL_RWread((struct SDL_RWops *)rwops_userdata, quartz_buffer, 1, the_count); -} - -// This callback is triggered when the data provider is released -// so you can clean up any resources. -static void MyProviderReleaseInfoCallback(void* rwops_userdata) -{ - // What should I put here? - // I think the user and SDL_RWops controls closing, so I don't do anything. -} - -static void MyProviderRewindCallback(void* rwops_userdata) -{ - SDL_RWseek((struct SDL_RWops *)rwops_userdata, 0, RW_SEEK_SET); -} - -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 // CGDataProviderCreateSequential was introduced in 10.5; CGDataProviderCreate is deprecated -off_t MyProviderSkipForwardBytesCallback(void* rwops_userdata, off_t the_count) -{ - off_t start_position = SDL_RWtell((struct SDL_RWops *)rwops_userdata); - SDL_RWseek((struct SDL_RWops *)rwops_userdata, the_count, RW_SEEK_CUR); - off_t end_position = SDL_RWtell((struct SDL_RWops *)rwops_userdata); - return (end_position - start_position); -} -#else // CGDataProviderCreate was deprecated in 10.5 -static void MyProviderSkipBytesCallback(void* rwops_userdata, size_t the_count) -{ - SDL_RWseek((struct SDL_RWops *)rwops_userdata, the_count, RW_SEEK_CUR); -} -#endif - -/************************************************************** - ***** End Callback functions for block reading *************** - **************************************************************/ - -// This creates a CGImageSourceRef which is a handle to an image that can be used to examine information -// about the image or load the actual image data. -static CGImageSourceRef CreateCGImageSourceFromRWops(SDL_RWops* rw_ops, CFDictionaryRef hints_and_options) -{ - CGImageSourceRef source_ref; - - // Similar to SDL_RWops, Apple has their own callbacks for dealing with data streams. - -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 // CGDataProviderCreateSequential was introduced in 10.5; CGDataProviderCreate is deprecated - CGDataProviderSequentialCallbacks provider_callbacks = - { - 0, - MyProviderGetBytesCallback, - MyProviderSkipForwardBytesCallback, - MyProviderRewindCallback, - MyProviderReleaseInfoCallback - }; - - CGDataProviderRef data_provider = CGDataProviderCreateSequential(rw_ops, &provider_callbacks); - - -#else // CGDataProviderCreate was deprecated in 10.5 - - CGDataProviderCallbacks provider_callbacks = - { - MyProviderGetBytesCallback, - MyProviderSkipBytesCallback, - MyProviderRewindCallback, - MyProviderReleaseInfoCallback - }; - - CGDataProviderRef data_provider = CGDataProviderCreate(rw_ops, &provider_callbacks); -#endif - // Get the CGImageSourceRef. - // The dictionary can be NULL or contain hints to help ImageIO figure out the image type. - source_ref = CGImageSourceCreateWithDataProvider(data_provider, hints_and_options); - CGDataProviderRelease(data_provider); - return source_ref; -} - -/* Create a CGImageSourceRef from a file. */ -/* Remember to CFRelease the created source when done. */ -static CGImageSourceRef CreateCGImageSourceFromFile(const char* the_path) -{ - CFURLRef the_url = NULL; - CGImageSourceRef source_ref = NULL; - CFStringRef cf_string = NULL; - - /* Create a CFString from a C string */ - cf_string = CFStringCreateWithCString(NULL, the_path, kCFStringEncodingUTF8); - if (!cf_string) { - return NULL; - } - - /* Create a CFURL from a CFString */ - the_url = CFURLCreateWithFileSystemPath(NULL, cf_string, kCFURLPOSIXPathStyle, false); - - /* Don't need the CFString any more (error or not) */ - CFRelease(cf_string); - - if(!the_url) - { - return NULL; - } - - - source_ref = CGImageSourceCreateWithURL(the_url, NULL); - /* Don't need the URL any more (error or not) */ - CFRelease(the_url); - - return source_ref; -} - -static CGImageRef CreateCGImageFromCGImageSource(CGImageSourceRef image_source) -{ - CGImageRef image_ref = NULL; - - if(NULL == image_source) - { - return NULL; - } - - // Get the first item in the image source (some image formats may - // contain multiple items). - image_ref = CGImageSourceCreateImageAtIndex(image_source, 0, NULL); - if(NULL == image_ref) - { - IMG_SetError("CGImageSourceCreateImageAtIndex() failed"); - } - return image_ref; -} - -static CFDictionaryRef CreateHintDictionary(CFStringRef uti_string_hint) -{ - CFDictionaryRef hint_dictionary = NULL; - - if(uti_string_hint != NULL) - { - // Do a bunch of work to setup a CFDictionary containing the jpeg compression properties. - CFStringRef the_keys[1]; - CFStringRef the_values[1]; - - the_keys[0] = kCGImageSourceTypeIdentifierHint; - the_values[0] = uti_string_hint; - - // kCFTypeDictionaryKeyCallBacks or kCFCopyStringDictionaryKeyCallBacks? - hint_dictionary = CFDictionaryCreate(NULL, (const void**)&the_keys, (const void**)&the_values, 1, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - } - return hint_dictionary; -} - -// Once we have our image, we need to get it into an SDL_Surface -static SDL_Surface* Create_SDL_Surface_From_CGImage_RGB(CGImageRef image_ref) -{ - /* This code is adapted from Apple's Documentation found here: - * http://developer.apple.com/documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/index.html - * Listing 9-4††Using a Quartz image as a texture source. - * Unfortunately, this guide doesn't show what to do about - * non-RGBA image formats so I'm making the rest up. - * All this code should be scrutinized. - */ - - size_t w = CGImageGetWidth(image_ref); - size_t h = CGImageGetHeight(image_ref); - CGRect rect = {{0, 0}, {w, h}}; - - CGImageAlphaInfo alpha = CGImageGetAlphaInfo(image_ref); - //size_t bits_per_pixel = CGImageGetBitsPerPixel(image_ref); - size_t bits_per_component = 8; - - SDL_Surface* surface; - Uint32 Amask; - Uint32 Rmask; - Uint32 Gmask; - Uint32 Bmask; - - CGContextRef bitmap_context; - CGBitmapInfo bitmap_info; - CGColorSpaceRef color_space = CGColorSpaceCreateDeviceRGB(); - - if (alpha == kCGImageAlphaNone || - alpha == kCGImageAlphaNoneSkipFirst || - alpha == kCGImageAlphaNoneSkipLast) { - bitmap_info = kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder32Host; /* XRGB */ - Amask = 0x00000000; - } else { - /* kCGImageAlphaFirst isn't supported */ - //bitmap_info = kCGImageAlphaFirst | kCGBitmapByteOrder32Host; /* ARGB */ - bitmap_info = kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host; /* ARGB */ - Amask = 0xFF000000; - } - - Rmask = 0x00FF0000; - Gmask = 0x0000FF00; - Bmask = 0x000000FF; - - surface = SDL_CreateRGBSurface(SDL_SWSURFACE, (int)w, (int)h, 32, Rmask, Gmask, Bmask, Amask); - if (surface) - { - // Sets up a context to be drawn to with surface->pixels as the area to be drawn to - bitmap_context = CGBitmapContextCreate( - surface->pixels, - surface->w, - surface->h, - bits_per_component, - surface->pitch, - color_space, - bitmap_info - ); - - // Draws the image into the context's image_data - CGContextDrawImage(bitmap_context, rect, image_ref); - - CGContextRelease(bitmap_context); - - // FIXME: Reverse the premultiplied alpha - if ((bitmap_info & kCGBitmapAlphaInfoMask) == kCGImageAlphaPremultipliedFirst) { - int i, j; - Uint8 *p = (Uint8 *)surface->pixels; - for (i = surface->h * surface->pitch/4; i--; ) { -#if __LITTLE_ENDIAN__ - Uint8 A = p[3]; - if (A) { - for (j = 0; j < 3; ++j) { - p[j] = (p[j] * 255) / A; - } - } -#else - Uint8 A = p[0]; - if (A) { - for (j = 1; j < 4; ++j) { - p[j] = (p[j] * 255) / A; - } - } -#endif /* ENDIAN */ - p += 4; - } - } - } - - if (color_space) - { - CGColorSpaceRelease(color_space); - } - - return surface; -} -static SDL_Surface* Create_SDL_Surface_From_CGImage_Index(CGImageRef image_ref) -{ - size_t w = CGImageGetWidth(image_ref); - size_t h = CGImageGetHeight(image_ref); - size_t bits_per_pixel = CGImageGetBitsPerPixel(image_ref); - size_t bytes_per_row = CGImageGetBytesPerRow(image_ref); - - SDL_Surface* surface; - SDL_Palette* palette; - CGColorSpaceRef color_space = CGImageGetColorSpace(image_ref); - CGColorSpaceRef base_color_space = CGColorSpaceGetBaseColorSpace(color_space); - size_t num_components = CGColorSpaceGetNumberOfComponents(base_color_space); - size_t num_entries = CGColorSpaceGetColorTableCount(color_space); - uint8_t *entry, entries[num_components * num_entries]; - - /* What do we do if it's not RGB? */ - if (num_components != 3) { - SDL_SetError("Unknown colorspace components %lu", num_components); - return NULL; - } - if (bits_per_pixel != 8) { - SDL_SetError("Unknown bits_per_pixel %lu", bits_per_pixel); - return NULL; - } - - CGColorSpaceGetColorTable(color_space, entries); - surface = SDL_CreateRGBSurface(SDL_SWSURFACE, (int)w, (int)h, bits_per_pixel, 0, 0, 0, 0); - if (surface) { - uint8_t* pixels = (uint8_t*)surface->pixels; - CGDataProviderRef provider = CGImageGetDataProvider(image_ref); - NSData* data = (id)CGDataProviderCopyData(provider); - [data autorelease]; - const uint8_t* bytes = [data bytes]; - size_t i; - - palette = surface->format->palette; - for (i = 0, entry = entries; i < num_entries; ++i) { - palette->colors[i].r = entry[0]; - palette->colors[i].g = entry[1]; - palette->colors[i].b = entry[2]; - entry += num_components; - } - - for (i = 0; i < h; ++i) { - SDL_memcpy(pixels, bytes, w); - pixels += surface->pitch; - bytes += bytes_per_row; - } - } - return surface; -} -static SDL_Surface* Create_SDL_Surface_From_CGImage(CGImageRef image_ref) -{ - CGColorSpaceRef color_space = CGImageGetColorSpace(image_ref); - if (CGColorSpaceGetModel(color_space) == kCGColorSpaceModelIndexed) { - return Create_SDL_Surface_From_CGImage_Index(image_ref); - } else { - return Create_SDL_Surface_From_CGImage_RGB(image_ref); - } -} - - -#pragma mark - -#pragma mark IMG_Init stubs -#if !defined(ALLOW_UIIMAGE_FALLBACK) && ((TARGET_OS_IPHONE == 1) || (TARGET_IPHONE_SIMULATOR == 1)) -static int Internal_checkImageIOisAvailable() { - // just check if we are running on ios 4 or more, else throw exception - if ([UIImage instancesRespondToSelector:@selector(initWithCGImage:scale:orientation:)]) - return 0; - [NSException raise:@"UIImage fallback not enabled at compile time" - format:@"ImageIO is not available on your platform, please recompile SDL_Image with ALLOW_UIIMAGE_FALLBACK."]; - return -1; -} -#endif - -int IMG_InitJPG() -{ - return 0; -} - -void IMG_QuitJPG() -{ -} - -int IMG_InitPNG() -{ - return 0; -} - -void IMG_QuitPNG() -{ -} - -int IMG_InitTIF() -{ - return 0; -} - -void IMG_QuitTIF() -{ -} - -#pragma mark - -#pragma mark Get type of image -static int Internal_isType_UIImage (SDL_RWops *rw_ops, CFStringRef uti_string_to_test) -{ - int is_type = 0; - -#if defined(ALLOW_UIIMAGE_FALLBACK) && ((TARGET_OS_IPHONE == 1) || (TARGET_IPHONE_SIMULATOR == 1)) - Sint64 start = SDL_RWtell(rw_ops); - if ((0 == CFStringCompare(uti_string_to_test, kUTTypeICO, 0)) || - (0 == CFStringCompare(uti_string_to_test, CFSTR("com.microsoft.cur"), 0))) { - - // The Win32 ICO file header (14 bytes) - Uint16 bfReserved; - Uint16 bfType; - Uint16 bfCount; - int type = (0 == CFStringCompare(uti_string_to_test, kUTTypeICO, 0)) ? 1 : 2; - - bfReserved = SDL_ReadLE16(rw_ops); - bfType = SDL_ReadLE16(rw_ops); - bfCount = SDL_ReadLE16(rw_ops); - if ((bfReserved == 0) && (bfType == type) && (bfCount != 0)) - is_type = 1; - } else if (0 == CFStringCompare(uti_string_to_test, kUTTypeBMP, 0)) { - char magic[2]; - - if ( SDL_RWread(rw_ops, magic, sizeof(magic), 1) ) { - if ( strncmp(magic, "BM", 2) == 0 ) { - is_type = 1; - } - } - } else if (0 == CFStringCompare(uti_string_to_test, kUTTypeGIF, 0)) { - char magic[6]; - - if ( SDL_RWread(rw_ops, magic, sizeof(magic), 1) ) { - if ( (strncmp(magic, "GIF", 3) == 0) && - ((memcmp(magic + 3, "87a", 3) == 0) || - (memcmp(magic + 3, "89a", 3) == 0)) ) { - is_type = 1; - } - } - } else if (0 == CFStringCompare(uti_string_to_test, kUTTypeJPEG, 0)) { - int in_scan = 0; - Uint8 magic[4]; - - // This detection code is by Steaphan Greene - // Blame me, not Sam, if this doesn't work right. */ - // And don't forget to report the problem to the the sdl list too! */ - - if ( SDL_RWread(rw_ops, magic, 2, 1) ) { - if ( (magic[0] == 0xFF) && (magic[1] == 0xD8) ) { - is_type = 1; - while (is_type == 1) { - if(SDL_RWread(rw_ops, magic, 1, 2) != 2) { - is_type = 0; - } else if( (magic[0] != 0xFF) && (in_scan == 0) ) { - is_type = 0; - } else if( (magic[0] != 0xFF) || (magic[1] == 0xFF) ) { - /* Extra padding in JPEG (legal) */ - /* or this is data and we are scanning */ - SDL_RWseek(rw_ops, -1, SEEK_CUR); - } else if(magic[1] == 0xD9) { - /* Got to end of good JPEG */ - break; - } else if( (in_scan == 1) && (magic[1] == 0x00) ) { - /* This is an encoded 0xFF within the data */ - } else if( (magic[1] >= 0xD0) && (magic[1] < 0xD9) ) { - /* These have nothing else */ - } else if(SDL_RWread(rw_ops, magic+2, 1, 2) != 2) { - is_type = 0; - } else { - /* Yes, it's big-endian */ - Uint32 start; - Uint32 size; - Uint32 end; - start = SDL_RWtell(rw_ops); - size = (magic[2] << 8) + magic[3]; - end = SDL_RWseek(rw_ops, size-2, SEEK_CUR); - if ( end != start + size - 2 ) is_type = 0; - if ( magic[1] == 0xDA ) { - /* Now comes the actual JPEG meat */ -#ifdef FAST_IS_JPEG - /* Ok, I'm convinced. It is a JPEG. */ - break; -#else - /* I'm not convinced. Prove it! */ - in_scan = 1; -#endif - } - } - } - } - } - } else if (0 == CFStringCompare(uti_string_to_test, kUTTypePNG, 0)) { - Uint8 magic[4]; - - if ( SDL_RWread(rw_ops, magic, 1, sizeof(magic)) == sizeof(magic) ) { - if ( magic[0] == 0x89 && - magic[1] == 'P' && - magic[2] == 'N' && - magic[3] == 'G' ) { - is_type = 1; - } - } - } else if (0 == CFStringCompare(uti_string_to_test, CFSTR("com.truevision.tga-image"), 0)) { - //TODO: fill me! - } else if (0 == CFStringCompare(uti_string_to_test, kUTTypeTIFF, 0)) { - Uint8 magic[4]; - - if ( SDL_RWread(rw_ops, magic, 1, sizeof(magic)) == sizeof(magic) ) { - if ( (magic[0] == 'I' && - magic[1] == 'I' && - magic[2] == 0x2a && - magic[3] == 0x00) || - (magic[0] == 'M' && - magic[1] == 'M' && - magic[2] == 0x00 && - magic[3] == 0x2a) ) { - is_type = 1; - } - } - } - - // reset the file pointer - SDL_RWseek(rw_ops, start, SEEK_SET); - -#endif /* #if defined(ALLOW_UIIMAGE_FALLBACK) && ((TARGET_OS_IPHONE == 1) || (TARGET_IPHONE_SIMULATOR == 1)) */ - return is_type; -} - -static int Internal_isType_ImageIO (SDL_RWops *rw_ops, CFStringRef uti_string_to_test) -{ - int is_type = 0; - - Sint64 start = SDL_RWtell(rw_ops); - CFDictionaryRef hint_dictionary = CreateHintDictionary(uti_string_to_test); - CGImageSourceRef image_source = CreateCGImageSourceFromRWops(rw_ops, hint_dictionary); - - if (hint_dictionary != NULL) { - CFRelease(hint_dictionary); - } - - if (NULL == image_source) { - // reset the file pointer - SDL_RWseek(rw_ops, start, SEEK_SET); - return 0; - } - - // This will get the UTI of the container, not the image itself. - // Under most cases, this won't be a problem. - // But if a person passes an icon file which contains a bmp, - // the format will be of the icon file. - // But I think the main SDL_image codebase has this same problem so I'm not going to worry about it. - CFStringRef uti_type = CGImageSourceGetType(image_source); - // CFShow(uti_type); - - // Unsure if we really want conformance or equality - is_type = (int)UTTypeConformsTo(uti_string_to_test, uti_type); - - CFRelease(image_source); - - // reset the file pointer - SDL_RWseek(rw_ops, start, SEEK_SET); - return is_type; -} - -static int Internal_isType (SDL_RWops *rw_ops, CFStringRef uti_string_to_test) -{ - if (rw_ops == NULL) - return 0; - -#if (TARGET_OS_IPHONE == 1) || (TARGET_IPHONE_SIMULATOR == 1) - if (USE_UIIMAGE_BACKEND()) - return Internal_isType_UIImage(rw_ops, uti_string_to_test); - else -#endif - return Internal_isType_ImageIO(rw_ops, uti_string_to_test); -} - -#ifdef BMP_USES_IMAGEIO - -int IMG_isCUR(SDL_RWops *src) -{ - /* FIXME: Is this a supported type? */ - return Internal_isType(src, CFSTR("com.microsoft.cur")); -} - -int IMG_isICO(SDL_RWops *src) -{ - return Internal_isType(src, kUTTypeICO); -} - -int IMG_isBMP(SDL_RWops *src) -{ - return Internal_isType(src, kUTTypeBMP); -} - -#endif /* BMP_USES_IMAGEIO */ - -int IMG_isGIF(SDL_RWops *src) -{ - return Internal_isType(src, kUTTypeGIF); -} - -// Note: JPEG 2000 is kUTTypeJPEG2000 -int IMG_isJPG(SDL_RWops *src) -{ - return Internal_isType(src, kUTTypeJPEG); -} - -int IMG_isPNG(SDL_RWops *src) -{ - return Internal_isType(src, kUTTypePNG); -} - -// This isn't a public API function. Apple seems to be able to identify tga's. -int IMG_isTGA(SDL_RWops *src) -{ - return Internal_isType(src, CFSTR("com.truevision.tga-image")); -} - -int IMG_isTIF(SDL_RWops *src) -{ - return Internal_isType(src, kUTTypeTIFF); -} - -#pragma mark - -#pragma mark Load image engine -static SDL_Surface *LoadImageFromRWops_UIImage (SDL_RWops* rw_ops, CFStringRef uti_string_hint) -{ - SDL_Surface *sdl_surface = NULL; - -#if defined(ALLOW_UIIMAGE_FALLBACK) && ((TARGET_OS_IPHONE == 1) || (TARGET_IPHONE_SIMULATOR == 1)) - NSAutoreleasePool* autorelease_pool = [[NSAutoreleasePool alloc] init]; - UIImage *ui_image; - int bytes_read = 0; - // I don't know what a good size is. - // Max recommended texture size is 1024x1024 on iPhone so maybe base it on that? - const int block_size = 1024*4; - char temp_buffer[block_size]; - - NSMutableData* ns_data = [[NSMutableData alloc] initWithCapacity:1024*1024*4]; - do { - bytes_read = SDL_RWread(rw_ops, temp_buffer, 1, block_size); - [ns_data appendBytes:temp_buffer length:bytes_read]; - } while (bytes_read > 0); - - ui_image = [[UIImage alloc] initWithData:ns_data]; - if (ui_image != nil) - sdl_surface = Create_SDL_Surface_From_CGImage([ui_image CGImage]); - [ui_image release]; - [ns_data release]; - [autorelease_pool drain]; - -#endif /* #if defined(ALLOW_UIIMAGE_FALLBACK) && ((TARGET_OS_IPHONE == 1) || (TARGET_IPHONE_SIMULATOR == 1)) */ - return sdl_surface; -} - -static SDL_Surface *LoadImageFromRWops_ImageIO (SDL_RWops *rw_ops, CFStringRef uti_string_hint) -{ - CFDictionaryRef hint_dictionary = CreateHintDictionary(uti_string_hint); - CGImageSourceRef image_source = CreateCGImageSourceFromRWops(rw_ops, hint_dictionary); - - if (hint_dictionary != NULL) - CFRelease(hint_dictionary); - - if (NULL == image_source) - return NULL; - - CGImageRef image_ref = CreateCGImageFromCGImageSource(image_source); - CFRelease(image_source); - - if (NULL == image_ref) - return NULL; - SDL_Surface *sdl_surface = Create_SDL_Surface_From_CGImage(image_ref); - CFRelease(image_ref); - - return sdl_surface; -} - -static SDL_Surface *LoadImageFromRWops (SDL_RWops *rw_ops, CFStringRef uti_string_hint) -{ -#if (TARGET_OS_IPHONE == 1) || (TARGET_IPHONE_SIMULATOR == 1) - if (USE_UIIMAGE_BACKEND()) - return LoadImageFromRWops_UIImage(rw_ops, uti_string_hint); - else -#endif - return LoadImageFromRWops_ImageIO(rw_ops, uti_string_hint); -} - -static SDL_Surface* LoadImageFromFile_UIImage (const char *file) -{ - SDL_Surface *sdl_surface = NULL; - -#if defined(ALLOW_UIIMAGE_FALLBACK) && ((TARGET_OS_IPHONE == 1) || (TARGET_IPHONE_SIMULATOR == 1)) - NSAutoreleasePool* autorelease_pool = [[NSAutoreleasePool alloc] init]; - NSString *ns_string = [[NSString alloc] initWithUTF8String:file]; - UIImage *ui_image = [[UIImage alloc] initWithContentsOfFile:ns_string]; - if (ui_image != nil) - sdl_surface = Create_SDL_Surface_From_CGImage([ui_image CGImage]); - [ui_image release]; - [ns_string release]; - [autorelease_pool drain]; - -#endif /* #if defined(ALLOW_UIIMAGE_FALLBACK) && ((TARGET_OS_IPHONE == 1) || (TARGET_IPHONE_SIMULATOR == 1)) */ - return sdl_surface; -} - -static SDL_Surface* LoadImageFromFile_ImageIO (const char *file) -{ - CGImageSourceRef image_source = NULL; - - image_source = CreateCGImageSourceFromFile(file); - - if(NULL == image_source) - return NULL; - - CGImageRef image_ref = CreateCGImageFromCGImageSource(image_source); - CFRelease(image_source); - - if (NULL == image_ref) - return NULL; - SDL_Surface *sdl_surface = Create_SDL_Surface_From_CGImage(image_ref); - CFRelease(image_ref); - return sdl_surface; -} - -static SDL_Surface* LoadImageFromFile (const char *file) -{ -#if (TARGET_OS_IPHONE == 1) || (TARGET_IPHONE_SIMULATOR == 1) - if (USE_UIIMAGE_BACKEND()) - return LoadImageFromFile_UIImage(file); - else -#endif - return LoadImageFromFile_ImageIO(file); -} - -#ifdef BMP_USES_IMAGEIO - -SDL_Surface* IMG_LoadCUR_RW (SDL_RWops *src) -{ - /* FIXME: Is this a supported type? */ - return LoadImageFromRWops(src, CFSTR("com.microsoft.cur")); -} - -SDL_Surface* IMG_LoadICO_RW (SDL_RWops *src) -{ - return LoadImageFromRWops(src, kUTTypeICO); -} - -SDL_Surface* IMG_LoadBMP_RW (SDL_RWops *src) -{ - return LoadImageFromRWops(src, kUTTypeBMP); -} - -#endif /* BMP_USES_IMAGEIO */ - -SDL_Surface* IMG_LoadGIF_RW (SDL_RWops *src) -{ - return LoadImageFromRWops (src, kUTTypeGIF); -} - -SDL_Surface* IMG_LoadJPG_RW (SDL_RWops *src) -{ - return LoadImageFromRWops (src, kUTTypeJPEG); -} - -SDL_Surface* IMG_LoadPNG_RW (SDL_RWops *src) -{ - return LoadImageFromRWops (src, kUTTypePNG); -} - -SDL_Surface* IMG_LoadTGA_RW (SDL_RWops *src) -{ - return LoadImageFromRWops(src, CFSTR("com.truevision.tga-image")); -} - -SDL_Surface* IMG_LoadTIF_RW (SDL_RWops *src) -{ - return LoadImageFromRWops(src, kUTTypeTIFF); -} - -// Since UIImage doesn't really support streams well, we should optimize for the file case. -// Apple provides both stream and file loading functions in ImageIO. -// Potentially, Apple can optimize for either case. -SDL_Surface* IMG_Load (const char *file) -{ - SDL_Surface* sdl_surface = NULL; - - sdl_surface = LoadImageFromFile(file); - if(NULL == sdl_surface) - { - // Either the file doesn't exist or ImageIO doesn't understand the format. - // For the latter case, fallback to the native SDL_image handlers. - SDL_RWops *src = SDL_RWFromFile(file, "rb"); - char *ext = strrchr(file, '.'); - if (ext) { - ext++; - } - if (!src) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - sdl_surface = IMG_LoadTyped_RW(src, 1, ext); - } - return sdl_surface; -} - -#endif /* defined(__APPLE__) && !defined(SDL_IMAGE_USE_COMMON_BACKEND) */ diff --git a/extension/SDL2_image-2.0.3/IMG_UIImage.m b/extension/SDL2_image-2.0.3/IMG_UIImage.m deleted file mode 100755 index b3028e9..0000000 --- a/extension/SDL2_image-2.0.3/IMG_UIImage.m +++ /dev/null @@ -1,440 +0,0 @@ -/* - * IMG_ImageIO.c - * SDL_image - * - * Created by Eric Wing on 1/2/09. - * Copyright 2009 __MyCompanyName__. All rights reserved. - * - */ -#include "SDL_image.h" -#import -#import // for UTCoreTypes.h - -// Once we have our image, we need to get it into an SDL_Surface -// (Copied straight from the ImageIO backend.) -static SDL_Surface* Create_SDL_Surface_From_CGImage(CGImageRef image_ref) -{ - /* This code is adapted from Apple's Documentation found here: - * http://developer.apple.com/documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/index.html - * Listing 9-4††Using a Quartz image as a texture source. - * Unfortunately, this guide doesn't show what to do about - * non-RGBA image formats so I'm making the rest up. - * All this code should be scrutinized. - */ - - size_t w = CGImageGetWidth(image_ref); - size_t h = CGImageGetHeight(image_ref); - CGRect rect = {{0, 0}, {w, h}}; - - CGImageAlphaInfo alpha = CGImageGetAlphaInfo(image_ref); - //size_t bits_per_pixel = CGImageGetBitsPerPixel(image_ref); - size_t bits_per_component = 8; - - SDL_Surface* surface; - Uint32 Amask; - Uint32 Rmask; - Uint32 Gmask; - Uint32 Bmask; - - CGContextRef bitmap_context; - CGBitmapInfo bitmap_info; - CGColorSpaceRef color_space = CGColorSpaceCreateDeviceRGB(); - - if (alpha == kCGImageAlphaNone || - alpha == kCGImageAlphaNoneSkipFirst || - alpha == kCGImageAlphaNoneSkipLast) { - bitmap_info = kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder32Host; /* XRGB */ - Amask = 0x00000000; - } else { - /* kCGImageAlphaFirst isn't supported */ - //bitmap_info = kCGImageAlphaFirst | kCGBitmapByteOrder32Host; /* ARGB */ - bitmap_info = kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host; /* ARGB */ - Amask = 0xFF000000; - } - - Rmask = 0x00FF0000; - Gmask = 0x0000FF00; - Bmask = 0x000000FF; - - surface = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, 32, Rmask, Gmask, Bmask, Amask); - if (surface) - { - // Sets up a context to be drawn to with surface->pixels as the area to be drawn to - bitmap_context = CGBitmapContextCreate( - surface->pixels, - surface->w, - surface->h, - bits_per_component, - surface->pitch, - color_space, - bitmap_info - ); - - // Draws the image into the context's image_data - CGContextDrawImage(bitmap_context, rect, image_ref); - - CGContextRelease(bitmap_context); - - // FIXME: Reverse the premultiplied alpha - if ((bitmap_info & kCGBitmapAlphaInfoMask) == kCGImageAlphaPremultipliedFirst) { - int i, j; - Uint8 *p = (Uint8 *)surface->pixels; - for (i = surface->h * surface->pitch/4; i--; ) { -#if __LITTLE_ENDIAN__ - Uint8 A = p[3]; - if (A) { - for (j = 0; j < 3; ++j) { - p[j] = (p[j] * 255) / A; - } - } -#else - Uint8 A = p[0]; - if (A) { - for (j = 1; j < 4; ++j) { - p[j] = (p[j] * 255) / A; - } - } -#endif /* ENDIAN */ - p += 4; - } - } - } - - if (color_space) - { - CGColorSpaceRelease(color_space); - } - - return surface; -} - -static SDL_Surface* LoadImageFromRWops(SDL_RWops* rw_ops, CFStringRef uti_string_hint) -{ - NSAutoreleasePool* autorelease_pool = [[NSAutoreleasePool alloc] init]; - SDL_Surface* sdl_surface; - UIImage* ui_image; - - int bytes_read = 0; - // I don't know what a good size is. - // Max recommended texture size is 1024x1024 on iPhone so maybe base it on that? - const int block_size = 1024*4; - char temp_buffer[block_size]; - - NSMutableData* ns_data = [[NSMutableData alloc] initWithCapacity:1024*1024*4]; - - - do - { - bytes_read = SDL_RWread(rw_ops, temp_buffer, 1, block_size); - [ns_data appendBytes:temp_buffer length:bytes_read]; - } while(bytes_read > 0); - - ui_image = [[UIImage alloc] initWithData:ns_data]; - - sdl_surface = Create_SDL_Surface_From_CGImage([ui_image CGImage]); - - [ui_image release]; - [ns_data release]; - - [autorelease_pool drain]; - - return sdl_surface; -} - -static SDL_Surface* LoadImageFromFile(const char *file) -{ - NSAutoreleasePool* autorelease_pool = [[NSAutoreleasePool alloc] init]; - SDL_Surface* sdl_surface = NULL; - UIImage* ui_image; - NSString* ns_string; - - ns_string = [[NSString alloc] initWithUTF8String:file]; - ui_image = [[UIImage alloc] initWithContentsOfFile:ns_string]; - if(ui_image != NULL) - { - sdl_surface = Create_SDL_Surface_From_CGImage([ui_image CGImage]); - } - - [ui_image release]; - [ns_string release]; - - [autorelease_pool drain]; - - return sdl_surface; -} - - -/* Since UIImage doesn't really support streams well, we should optimize for the file case. */ -SDL_Surface *IMG_Load(const char *file) -{ - SDL_Surface* sdl_surface = NULL; - - sdl_surface = LoadImageFromFile(file); - if(NULL == sdl_surface) - { - // Either the file doesn't exist or ImageIO doesn't understand the format. - // For the latter case, fallback to the native SDL_image handlers. - - SDL_RWops *src = SDL_RWFromFile(file, "rb"); - char *ext = strrchr(file, '.'); - if(ext) { - ext++; - } - if(!src) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - sdl_surface = IMG_LoadTyped_RW(src, 1, ext); - } - return sdl_surface; -} - - -int IMG_InitJPG() -{ - return 0; -} - -void IMG_QuitJPG() -{ -} - -int IMG_InitPNG() -{ - return 0; -} - -void IMG_QuitPNG() -{ -} - -int IMG_InitTIF() -{ - return 0; -} - -void IMG_QuitTIF() -{ -} - -/* Copied straight from other files so I don't have to alter them. */ -static int IMG_isICOCUR(SDL_RWops *src, int type) -{ - int start; - int is_ICOCUR; - - /* The Win32 ICO file header (14 bytes) */ - Uint16 bfReserved; - Uint16 bfType; - Uint16 bfCount; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_ICOCUR = 0; - bfReserved = SDL_ReadLE16(src); - bfType = SDL_ReadLE16(src); - bfCount = SDL_ReadLE16(src); - if ((bfReserved == 0) && (bfType == type) && (bfCount != 0)) - is_ICOCUR = 1; - SDL_RWseek(src, start, SEEK_SET); - - return (is_ICOCUR); -} - -int IMG_isICO(SDL_RWops *src) -{ - return IMG_isICOCUR(src, 1); -} - -int IMG_isCUR(SDL_RWops *src) -{ - return IMG_isICOCUR(src, 2); -} - -int IMG_isBMP(SDL_RWops *src) -{ - int start; - int is_BMP; - char magic[2]; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_BMP = 0; - if ( SDL_RWread(src, magic, sizeof(magic), 1) ) { - if ( strncmp(magic, "BM", 2) == 0 ) { - is_BMP = 1; - } - } - SDL_RWseek(src, start, SEEK_SET); - return(is_BMP); -} - -int IMG_isGIF(SDL_RWops *src) -{ - int start; - int is_GIF; - char magic[6]; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_GIF = 0; - if ( SDL_RWread(src, magic, sizeof(magic), 1) ) { - if ( (strncmp(magic, "GIF", 3) == 0) && - ((memcmp(magic + 3, "87a", 3) == 0) || - (memcmp(magic + 3, "89a", 3) == 0)) ) { - is_GIF = 1; - } - } - SDL_RWseek(src, start, SEEK_SET); - return(is_GIF); -} - -int IMG_isJPG(SDL_RWops *src) -{ - int start; - int is_JPG; - int in_scan; - Uint8 magic[4]; - - /* This detection code is by Steaphan Greene */ - /* Blame me, not Sam, if this doesn't work right. */ - /* And don't forget to report the problem to the the sdl list too! */ - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_JPG = 0; - in_scan = 0; - if ( SDL_RWread(src, magic, 2, 1) ) { - if ( (magic[0] == 0xFF) && (magic[1] == 0xD8) ) { - is_JPG = 1; - while (is_JPG == 1) { - if(SDL_RWread(src, magic, 1, 2) != 2) { - is_JPG = 0; - } else if( (magic[0] != 0xFF) && (in_scan == 0) ) { - is_JPG = 0; - } else if( (magic[0] != 0xFF) || (magic[1] == 0xFF) ) { - /* Extra padding in JPEG (legal) */ - /* or this is data and we are scanning */ - SDL_RWseek(src, -1, SEEK_CUR); - } else if(magic[1] == 0xD9) { - /* Got to end of good JPEG */ - break; - } else if( (in_scan == 1) && (magic[1] == 0x00) ) { - /* This is an encoded 0xFF within the data */ - } else if( (magic[1] >= 0xD0) && (magic[1] < 0xD9) ) { - /* These have nothing else */ - } else if(SDL_RWread(src, magic+2, 1, 2) != 2) { - is_JPG = 0; - } else { - /* Yes, it's big-endian */ - Uint32 start; - Uint32 size; - Uint32 end; - start = SDL_RWtell(src); - size = (magic[2] << 8) + magic[3]; - end = SDL_RWseek(src, size-2, SEEK_CUR); - if ( end != start + size - 2 ) is_JPG = 0; - if ( magic[1] == 0xDA ) { - /* Now comes the actual JPEG meat */ -#ifdef FAST_IS_JPEG - /* Ok, I'm convinced. It is a JPEG. */ - break; -#else - /* I'm not convinced. Prove it! */ - in_scan = 1; -#endif - } - } - } - } - } - SDL_RWseek(src, start, SEEK_SET); - return(is_JPG); -} - -int IMG_isPNG(SDL_RWops *src) -{ - int start; - int is_PNG; - Uint8 magic[4]; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_PNG = 0; - if ( SDL_RWread(src, magic, 1, sizeof(magic)) == sizeof(magic) ) { - if ( magic[0] == 0x89 && - magic[1] == 'P' && - magic[2] == 'N' && - magic[3] == 'G' ) { - is_PNG = 1; - } - } - SDL_RWseek(src, start, SEEK_SET); - return(is_PNG); -} - -int IMG_isTIF(SDL_RWops* src) -{ - int start; - int is_TIF; - Uint8 magic[4]; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_TIF = 0; - if ( SDL_RWread(src, magic, 1, sizeof(magic)) == sizeof(magic) ) { - if ( (magic[0] == 'I' && - magic[1] == 'I' && - magic[2] == 0x2a && - magic[3] == 0x00) || - (magic[0] == 'M' && - magic[1] == 'M' && - magic[2] == 0x00 && - magic[3] == 0x2a) ) { - is_TIF = 1; - } - } - SDL_RWseek(src, start, SEEK_SET); - return(is_TIF); -} - -SDL_Surface* IMG_LoadCUR_RW(SDL_RWops *src) -{ - /* FIXME: Is this a supported type? */ - return LoadImageFromRWops(src, CFSTR("com.microsoft.cur")); -} -SDL_Surface* IMG_LoadICO_RW(SDL_RWops *src) -{ - return LoadImageFromRWops(src, kUTTypeICO); -} -SDL_Surface* IMG_LoadBMP_RW(SDL_RWops *src) -{ - return LoadImageFromRWops(src, kUTTypeBMP); -} -SDL_Surface* IMG_LoadGIF_RW(SDL_RWops *src) -{ - return LoadImageFromRWops(src, kUTTypeGIF); -} -SDL_Surface* IMG_LoadJPG_RW(SDL_RWops *src) -{ - return LoadImageFromRWops(src, kUTTypeJPEG); -} -SDL_Surface* IMG_LoadPNG_RW(SDL_RWops *src) -{ - return LoadImageFromRWops(src, kUTTypePNG); -} -SDL_Surface* IMG_LoadTGA_RW(SDL_RWops *src) -{ - return LoadImageFromRWops(src, CFSTR("com.truevision.tga-image")); -} -SDL_Surface* IMG_LoadTIF_RW(SDL_RWops *src) -{ - return LoadImageFromRWops(src, kUTTypeTIFF); -} - diff --git a/extension/SDL2_image-2.0.3/IMG_WIC.c b/extension/SDL2_image-2.0.3/IMG_WIC.c deleted file mode 100755 index da58bbc..0000000 --- a/extension/SDL2_image-2.0.3/IMG_WIC.c +++ /dev/null @@ -1,266 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#if defined(SDL_IMAGE_USE_WIC_BACKEND) - -#include "SDL_image.h" -#include - -extern "C" { - -#define SAFE_RELEASE(X) if ((X)) { (X)->Release(); } -#define DONE_IF_FAILED(X) if (FAILED((X))) { goto done; } - -IWICImagingFactory2* wicFactory = NULL; - -int WIC_Init() -{ - if (wicFactory == NULL) { - HRESULT hr = CoCreateInstance(CLSID_WICImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&wicFactory)); - if (FAILED(hr)) { - return -1; - } - } - - return 0; -} - -void WIC_Quit() -{ - SAFE_RELEASE(wicFactory); -} - -int IMG_InitPNG() -{ - return WIC_Init(); -} - -void IMG_QuitPNG() -{ - WIC_Quit(); -} - -int IMG_InitJPG() -{ - return WIC_Init(); -} - -void IMG_QuitJPG() -{ - WIC_Quit(); -} - -int IMG_InitTIF() -{ - return WIC_Init(); -} - -void IMG_QuitTIF() -{ - WIC_Quit(); -} - -int IMG_isPNG(SDL_RWops *src) -{ - Sint64 start; - int is_PNG; - Uint8 magic[4]; - - if ( !src ) { - return 0; - } - - start = SDL_RWtell(src); - is_PNG = 0; - if ( SDL_RWread(src, magic, 1, sizeof(magic)) == sizeof(magic) ) { - if ( magic[0] == 0x89 && - magic[1] == 'P' && - magic[2] == 'N' && - magic[3] == 'G' ) { - is_PNG = 1; - } - } - SDL_RWseek(src, start, RW_SEEK_SET); - return(is_PNG); -} - -int IMG_isJPG(SDL_RWops *src) -{ - Sint64 start; - int is_JPG; - int in_scan; - Uint8 magic[4]; - - /* This detection code is by Steaphan Greene */ - /* Blame me, not Sam, if this doesn't work right. */ - /* And don't forget to report the problem to the the sdl list too! */ - - if (!src) - return 0; - start = SDL_RWtell(src); - is_JPG = 0; - in_scan = 0; - if (SDL_RWread(src, magic, 2, 1)) { - if ((magic[0] == 0xFF) && (magic[1] == 0xD8)) { - is_JPG = 1; - while (is_JPG == 1) { - if (SDL_RWread(src, magic, 1, 2) != 2) { - is_JPG = 0; - } - else if ((magic[0] != 0xFF) && (in_scan == 0)) { - is_JPG = 0; - } - else if ((magic[0] != 0xFF) || (magic[1] == 0xFF)) { - /* Extra padding in JPEG (legal) */ - /* or this is data and we are scanning */ - SDL_RWseek(src, -1, RW_SEEK_CUR); - } - else if (magic[1] == 0xD9) { - /* Got to end of good JPEG */ - break; - } - else if ((in_scan == 1) && (magic[1] == 0x00)) { - /* This is an encoded 0xFF within the data */ - } - else if ((magic[1] >= 0xD0) && (magic[1] < 0xD9)) { - /* These have nothing else */ - } - else if (SDL_RWread(src, magic + 2, 1, 2) != 2) { - is_JPG = 0; - } - else { - /* Yes, it's big-endian */ - Sint64 innerStart; - Uint32 size; - Sint64 end; - innerStart = SDL_RWtell(src); - size = (magic[2] << 8) + magic[3]; - end = SDL_RWseek(src, size - 2, RW_SEEK_CUR); - if (end != innerStart + size - 2) is_JPG = 0; - if (magic[1] == 0xDA) { - /* Now comes the actual JPEG meat */ -#ifdef FAST_IS_JPEG - /* Ok, I'm convinced. It is a JPEG. */ - break; -#else - /* I'm not convinced. Prove it! */ - in_scan = 1; -#endif - } - } - } - } - } - SDL_RWseek(src, start, RW_SEEK_SET); - return(is_JPG); -} - -int IMG_isTIF(SDL_RWops* src) -{ - Sint64 start; - int is_TIF; - Uint8 magic[4]; - - if (!src) - return 0; - start = SDL_RWtell(src); - is_TIF = 0; - if (SDL_RWread(src, magic, 1, sizeof(magic)) == sizeof(magic)) { - if ((magic[0] == 'I' && - magic[1] == 'I' && - magic[2] == 0x2a && - magic[3] == 0x00) || - (magic[0] == 'M' && - magic[1] == 'M' && - magic[2] == 0x00 && - magic[3] == 0x2a)) { - is_TIF = 1; - } - } - SDL_RWseek(src, start, RW_SEEK_SET); - return(is_TIF); -} - -SDL_Surface* WIC_LoadImage(SDL_RWops *src) -{ - SDL_Surface* surface = NULL; - - IWICStream* stream = NULL; - IWICBitmapDecoder* bitmapDecoder = NULL; - IWICBitmapFrameDecode* bitmapFrame = NULL; - IWICFormatConverter* formatConverter = NULL; - - Sint64 fileSize = SDL_RWsize(src); - Uint8* memoryBuffer = (Uint8*)SDL_malloc(fileSize); - if (!memoryBuffer) { - SDL_OutOfMemory(); - return NULL; - } - - SDL_RWread(src, memoryBuffer, 1, fileSize); - - DONE_IF_FAILED(wicFactory->CreateStream(&stream)); - DONE_IF_FAILED(stream->InitializeFromMemory(memoryBuffer, fileSize)); - DONE_IF_FAILED(wicFactory->CreateDecoderFromStream(stream, NULL, WICDecodeMetadataCacheOnDemand, &bitmapDecoder)); - DONE_IF_FAILED(bitmapDecoder->GetFrame(0, &bitmapFrame)); - DONE_IF_FAILED(wicFactory->CreateFormatConverter(&formatConverter)); - DONE_IF_FAILED(formatConverter->Initialize(bitmapFrame, GUID_WICPixelFormat32bppPRGBA, WICBitmapDitherTypeNone, NULL, 0.0, WICBitmapPaletteTypeCustom)); - - UINT width, height; - DONE_IF_FAILED(bitmapFrame->GetSize(&width, &height)); - - Uint32 Amask = 0xFF000000; - Uint32 Rmask = 0x00FF0000; - Uint32 Gmask = 0x0000FF00; - Uint32 Bmask = 0x000000FF; - - surface = SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, 32, Rmask, Gmask, Bmask, Amask); - - formatConverter->CopyPixels(NULL, width * 4, width * height * 4, (BYTE*)surface->pixels); - -done: - SAFE_RELEASE(formatConverter); - SAFE_RELEASE(bitmapFrame); - SAFE_RELEASE(bitmapDecoder); - SAFE_RELEASE(stream); - - SDL_free(memoryBuffer); - - return surface; -} - -SDL_Surface *IMG_LoadPNG_RW(SDL_RWops *src) -{ - return WIC_LoadImage(src); -} - -SDL_Surface *IMG_LoadJPG_RW(SDL_RWops *src) -{ - return WIC_LoadImage(src); -} - -SDL_Surface *IMG_LoadTIF_RW(SDL_RWops *src) -{ - return WIC_LoadImage(src); -} - -#endif /* SDL_IMAGE_USE_WIC_BACKEND */ - diff --git a/extension/SDL2_image-2.0.3/IMG_bmp.c b/extension/SDL2_image-2.0.3/IMG_bmp.c deleted file mode 100755 index b10b6f6..0000000 --- a/extension/SDL2_image-2.0.3/IMG_bmp.c +++ /dev/null @@ -1,934 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#if (!defined(__APPLE__) || defined(SDL_IMAGE_USE_COMMON_BACKEND)) || !defined(BMP_USES_IMAGEIO) - -/* This is a BMP image file loading framework - * - * ICO/CUR file support is here as well since it uses similar internal - * representation - * - * A good test suite of BMP images is available at: - * http://entropymine.com/jason/bmpsuite/bmpsuite/html/bmpsuite.html - */ - -#include "SDL_image.h" - -#ifdef LOAD_BMP - -/* See if an image is contained in a data source */ -int IMG_isBMP(SDL_RWops *src) -{ - Sint64 start; - int is_BMP; - char magic[2]; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_BMP = 0; - if ( SDL_RWread(src, magic, sizeof(magic), 1) ) { - if ( SDL_strncmp(magic, "BM", 2) == 0 ) { - is_BMP = 1; - } - } - SDL_RWseek(src, start, RW_SEEK_SET); - return(is_BMP); -} - -static int IMG_isICOCUR(SDL_RWops *src, int type) -{ - Sint64 start; - int is_ICOCUR; - - /* The Win32 ICO file header (14 bytes) */ - Uint16 bfReserved; - Uint16 bfType; - Uint16 bfCount; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_ICOCUR = 0; - bfReserved = SDL_ReadLE16(src); - bfType = SDL_ReadLE16(src); - bfCount = SDL_ReadLE16(src); - if ((bfReserved == 0) && (bfType == type) && (bfCount != 0)) - is_ICOCUR = 1; - SDL_RWseek(src, start, RW_SEEK_SET); - - return (is_ICOCUR); -} - -int IMG_isICO(SDL_RWops *src) -{ - return IMG_isICOCUR(src, 1); -} - -int IMG_isCUR(SDL_RWops *src) -{ - return IMG_isICOCUR(src, 2); -} - -#include "SDL_error.h" -#include "SDL_video.h" -#include "SDL_endian.h" - -/* Compression encodings for BMP files */ -#ifndef BI_RGB -#define BI_RGB 0 -#define BI_RLE8 1 -#define BI_RLE4 2 -#define BI_BITFIELDS 3 -#endif - -static int readRlePixels(SDL_Surface * surface, SDL_RWops * src, int isRle8) -{ - /* - | Sets the surface pixels from src. A bmp image is upside down. - */ - int pitch = surface->pitch; - int height = surface->h; - Uint8 *start = (Uint8 *)surface->pixels; - Uint8 *end = start + (height*pitch); - Uint8 *bits = end-pitch, *spot; - int ofs = 0; - Uint8 ch; - Uint8 needsPad; - -#define COPY_PIXEL(x) spot = &bits[ofs++]; if(spot >= start && spot < end) *spot = (x) - - for (;;) { - if ( !SDL_RWread(src, &ch, 1, 1) ) return 1; - /* - | encoded mode starts with a run length, and then a byte - | with two colour indexes to alternate between for the run - */ - if ( ch ) { - Uint8 pixel; - if ( !SDL_RWread(src, &pixel, 1, 1) ) return 1; - if ( isRle8 ) { /* 256-color bitmap, compressed */ - do { - COPY_PIXEL(pixel); - } while (--ch); - } else { /* 16-color bitmap, compressed */ - Uint8 pixel0 = pixel >> 4; - Uint8 pixel1 = pixel & 0x0F; - for (;;) { - COPY_PIXEL(pixel0); /* even count, high nibble */ - if (!--ch) break; - COPY_PIXEL(pixel1); /* odd count, low nibble */ - if (!--ch) break; - } - } - } else { - /* - | A leading zero is an escape; it may signal the end of the bitmap, - | a cursor move, or some absolute data. - | zero tag may be absolute mode or an escape - */ - if ( !SDL_RWread(src, &ch, 1, 1) ) return 1; - switch (ch) { - case 0: /* end of line */ - ofs = 0; - bits -= pitch; /* go to previous */ - break; - case 1: /* end of bitmap */ - return 0; /* success! */ - case 2: /* delta */ - if ( !SDL_RWread(src, &ch, 1, 1) ) return 1; - ofs += ch; - if ( !SDL_RWread(src, &ch, 1, 1) ) return 1; - bits -= (ch * pitch); - break; - default: /* no compression */ - if (isRle8) { - needsPad = ( ch & 1 ); - do { - Uint8 pixel; - if ( !SDL_RWread(src, &pixel, 1, 1) ) return 1; - COPY_PIXEL(pixel); - } while (--ch); - } else { - needsPad = ( ((ch+1)>>1) & 1 ); /* (ch+1)>>1: bytes size */ - for (;;) { - Uint8 pixel; - if ( !SDL_RWread(src, &pixel, 1, 1) ) return 1; - COPY_PIXEL(pixel >> 4); - if (!--ch) break; - COPY_PIXEL(pixel & 0x0F); - if (!--ch) break; - } - } - /* pad at even boundary */ - if ( needsPad && !SDL_RWread(src, &ch, 1, 1) ) return 1; - break; - } - } - } -} - -static void CorrectAlphaChannel(SDL_Surface *surface) -{ - /* Check to see if there is any alpha channel data */ - SDL_bool hasAlpha = SDL_FALSE; -#if SDL_BYTEORDER == SDL_BIG_ENDIAN - int alphaChannelOffset = 0; -#else - int alphaChannelOffset = 3; -#endif - Uint8 *alpha = ((Uint8*)surface->pixels) + alphaChannelOffset; - Uint8 *end = alpha + surface->h * surface->pitch; - - while (alpha < end) { - if (*alpha != 0) { - hasAlpha = SDL_TRUE; - break; - } - alpha += 4; - } - - if (!hasAlpha) { - alpha = ((Uint8*)surface->pixels) + alphaChannelOffset; - while (alpha < end) { - *alpha = SDL_ALPHA_OPAQUE; - alpha += 4; - } - } -} - -static SDL_Surface *LoadBMP_RW (SDL_RWops *src, int freesrc) -{ - SDL_bool was_error; - Sint64 fp_offset; - int bmpPitch; - int i, pad; - SDL_Surface *surface; - Uint32 Rmask = 0; - Uint32 Gmask = 0; - Uint32 Bmask = 0; - Uint32 Amask = 0; - SDL_Palette *palette; - Uint8 *bits; - Uint8 *top, *end; - SDL_bool topDown; - int ExpandBMP; - SDL_bool haveRGBMasks = SDL_FALSE; - SDL_bool haveAlphaMask = SDL_FALSE; - SDL_bool correctAlpha = SDL_FALSE; - - /* The Win32 BMP file header (14 bytes) */ - char magic[2]; - Uint32 bfSize; - Uint16 bfReserved1; - Uint16 bfReserved2; - Uint32 bfOffBits; - - /* The Win32 BITMAPINFOHEADER struct (40 bytes) */ - Uint32 biSize; - Sint32 biWidth = 0; - Sint32 biHeight = 0; - Uint16 biPlanes; - Uint16 biBitCount = 0; - Uint32 biCompression = BI_RGB; - Uint32 biSizeImage; - Sint32 biXPelsPerMeter; - Sint32 biYPelsPerMeter; - Uint32 biClrUsed; - Uint32 biClrImportant; - - /* Make sure we are passed a valid data source */ - surface = NULL; - was_error = SDL_FALSE; - if ( src == NULL ) { - was_error = SDL_TRUE; - goto done; - } - - /* Read in the BMP file header */ - fp_offset = SDL_RWtell(src); - SDL_ClearError(); - if ( SDL_RWread(src, magic, 1, 2) != 2 ) { - SDL_Error(SDL_EFREAD); - was_error = SDL_TRUE; - goto done; - } - if ( SDL_strncmp(magic, "BM", 2) != 0 ) { - IMG_SetError("File is not a Windows BMP file"); - was_error = SDL_TRUE; - goto done; - } - bfSize = SDL_ReadLE32(src); - bfReserved1 = SDL_ReadLE16(src); - bfReserved2 = SDL_ReadLE16(src); - bfOffBits = SDL_ReadLE32(src); - - /* Read the Win32 BITMAPINFOHEADER */ - biSize = SDL_ReadLE32(src); - if ( biSize == 12 ) { /* really old BITMAPCOREHEADER */ - biWidth = (Uint32)SDL_ReadLE16(src); - biHeight = (Uint32)SDL_ReadLE16(src); - biPlanes = SDL_ReadLE16(src); - biBitCount = SDL_ReadLE16(src); - biCompression = BI_RGB; - biSizeImage = 0; - biXPelsPerMeter = 0; - biYPelsPerMeter = 0; - biClrUsed = 0; - biClrImportant = 0; - } else if (biSize >= 40) { /* some version of BITMAPINFOHEADER */ - Uint32 headerSize; - biWidth = SDL_ReadLE32(src); - biHeight = SDL_ReadLE32(src); - biPlanes = SDL_ReadLE16(src); - biBitCount = SDL_ReadLE16(src); - biCompression = SDL_ReadLE32(src); - biSizeImage = SDL_ReadLE32(src); - biXPelsPerMeter = SDL_ReadLE32(src); - biYPelsPerMeter = SDL_ReadLE32(src); - biClrUsed = SDL_ReadLE32(src); - biClrImportant = SDL_ReadLE32(src); - - /* 64 == BITMAPCOREHEADER2, an incompatible OS/2 2.x extension. Skip this stuff for now. */ - if (biSize != 64) { - /* This is complicated. If compression is BI_BITFIELDS, then - we have 3 DWORDS that specify the RGB masks. This is either - stored here in an BITMAPV2INFOHEADER (which only differs in - that it adds these RGB masks) and biSize >= 52, or we've got - these masks stored in the exact same place, but strictly - speaking, this is the bmiColors field in BITMAPINFO immediately - following the legacy v1 info header, just past biSize. */ - if (biCompression == BI_BITFIELDS) { - haveRGBMasks = SDL_TRUE; - Rmask = SDL_ReadLE32(src); - Gmask = SDL_ReadLE32(src); - Bmask = SDL_ReadLE32(src); - - /* ...v3 adds an alpha mask. */ - if (biSize >= 56) { /* BITMAPV3INFOHEADER; adds alpha mask */ - haveAlphaMask = SDL_TRUE; - Amask = SDL_ReadLE32(src); - } - } else { - /* the mask fields are ignored for v2+ headers if not BI_BITFIELD. */ - if (biSize >= 52) { /* BITMAPV2INFOHEADER; adds RGB masks */ - /*Rmask = */ SDL_ReadLE32(src); - /*Gmask = */ SDL_ReadLE32(src); - /*Bmask = */ SDL_ReadLE32(src); - } - if (biSize >= 56) { /* BITMAPV3INFOHEADER; adds alpha mask */ - /*Amask = */ SDL_ReadLE32(src); - } - } - - /* Insert other fields here; Wikipedia and MSDN say we're up to - v5 of this header, but we ignore those for now (they add gamma, - color spaces, etc). Ignoring the weird OS/2 2.x format, we - currently parse up to v3 correctly (hopefully!). */ - } - - /* skip any header bytes we didn't handle... */ - headerSize = (Uint32) (SDL_RWtell(src) - (fp_offset + 14)); - if (biSize > headerSize) { - SDL_RWseek(src, (biSize - headerSize), RW_SEEK_CUR); - } - } - if (biHeight < 0) { - topDown = SDL_TRUE; - biHeight = -biHeight; - } else { - topDown = SDL_FALSE; - } - - /* Check for read error */ - if (SDL_strcmp(SDL_GetError(), "") != 0) { - was_error = SDL_TRUE; - goto done; - } - - /* Expand 1 and 4 bit bitmaps to 8 bits per pixel */ - switch (biBitCount) { - case 1: - case 4: - ExpandBMP = biBitCount; - biBitCount = 8; - break; - default: - ExpandBMP = 0; - break; - } - - /* RLE4 and RLE8 BMP compression is supported */ - switch (biCompression) { - case BI_RGB: - /* If there are no masks, use the defaults */ - SDL_assert(!haveRGBMasks); - SDL_assert(!haveAlphaMask); - /* Default values for the BMP format */ - switch (biBitCount) { - case 15: - case 16: - Rmask = 0x7C00; - Gmask = 0x03E0; - Bmask = 0x001F; - break; - case 24: -#if SDL_BYTEORDER == SDL_BIG_ENDIAN - Rmask = 0x000000FF; - Gmask = 0x0000FF00; - Bmask = 0x00FF0000; -#else - Rmask = 0x00FF0000; - Gmask = 0x0000FF00; - Bmask = 0x000000FF; -#endif - break; - case 32: - /* We don't know if this has alpha channel or not */ - correctAlpha = SDL_TRUE; - Amask = 0xFF000000; - Rmask = 0x00FF0000; - Gmask = 0x0000FF00; - Bmask = 0x000000FF; - break; - default: - break; - } - break; - - case BI_BITFIELDS: - break; /* we handled this in the info header. */ - - default: - break; - } - - /* Create a compatible surface, note that the colors are RGB ordered */ - surface = SDL_CreateRGBSurface(SDL_SWSURFACE, - biWidth, biHeight, biBitCount, Rmask, Gmask, Bmask, Amask); - if ( surface == NULL ) { - was_error = SDL_TRUE; - goto done; - } - - /* Load the palette, if any */ - palette = (surface->format)->palette; - if ( palette ) { - if ( SDL_RWseek(src, fp_offset+14+biSize, RW_SEEK_SET) < 0 ) { - SDL_Error(SDL_EFSEEK); - was_error = SDL_TRUE; - goto done; - } - - /* - | guich: always use 1<colors[i].b, 1, 1); - SDL_RWread(src, &palette->colors[i].g, 1, 1); - SDL_RWread(src, &palette->colors[i].r, 1, 1); - palette->colors[i].a = SDL_ALPHA_OPAQUE; - } - } else { - for ( i = 0; i < (int)biClrUsed; ++i ) { - SDL_RWread(src, &palette->colors[i].b, 1, 1); - SDL_RWread(src, &palette->colors[i].g, 1, 1); - SDL_RWread(src, &palette->colors[i].r, 1, 1); - SDL_RWread(src, &palette->colors[i].a, 1, 1); - - /* According to Microsoft documentation, the fourth element - is reserved and must be zero, so we shouldn't treat it as - alpha. - */ - palette->colors[i].a = SDL_ALPHA_OPAQUE; - } - } - palette->ncolors = biClrUsed; - } - - /* Read the surface pixels. Note that the bmp image is upside down */ - if ( SDL_RWseek(src, fp_offset+bfOffBits, RW_SEEK_SET) < 0 ) { - SDL_Error(SDL_EFSEEK); - was_error = SDL_TRUE; - goto done; - } - if ((biCompression == BI_RLE4) || (biCompression == BI_RLE8)) { - was_error = (SDL_bool)readRlePixels(surface, src, biCompression == BI_RLE8); - if (was_error) IMG_SetError("Error reading from BMP"); - goto done; - } - top = (Uint8 *)surface->pixels; - end = (Uint8 *)surface->pixels+(surface->h*surface->pitch); - switch (ExpandBMP) { - case 1: - bmpPitch = (biWidth + 7) >> 3; - pad = (((bmpPitch)%4) ? (4-((bmpPitch)%4)) : 0); - break; - case 4: - bmpPitch = (biWidth + 1) >> 1; - pad = (((bmpPitch)%4) ? (4-((bmpPitch)%4)) : 0); - break; - default: - pad = ((surface->pitch%4) ? - (4-(surface->pitch%4)) : 0); - break; - } - if ( topDown ) { - bits = top; - } else { - bits = end - surface->pitch; - } - while ( bits >= top && bits < end ) { - switch (ExpandBMP) { - case 1: - case 4: { - Uint8 pixel = 0; - int shift = (8-ExpandBMP); - for ( i=0; iw; ++i ) { - if ( i%(8/ExpandBMP) == 0 ) { - if ( !SDL_RWread(src, &pixel, 1, 1) ) { - IMG_SetError("Error reading from BMP"); - was_error = SDL_TRUE; - goto done; - } - } - *(bits+i) = (pixel>>shift); - pixel <<= ExpandBMP; - } } - break; - - default: - if ( SDL_RWread(src, bits, 1, surface->pitch) != surface->pitch ) { - SDL_Error(SDL_EFREAD); - was_error = SDL_TRUE; - goto done; - } -#if SDL_BYTEORDER == SDL_BIG_ENDIAN - /* Byte-swap the pixels if needed. Note that the 24bpp - case has already been taken care of above. */ - switch(biBitCount) { - case 15: - case 16: { - Uint16 *pix = (Uint16 *)bits; - for(i = 0; i < surface->w; i++) - pix[i] = SDL_Swap16(pix[i]); - break; - } - - case 32: { - Uint32 *pix = (Uint32 *)bits; - for(i = 0; i < surface->w; i++) - pix[i] = SDL_Swap32(pix[i]); - break; - } - } -#endif - break; - } - /* Skip padding bytes, ugh */ - if ( pad ) { - Uint8 padbyte; - for ( i=0; ipitch; - } else { - bits -= surface->pitch; - } - } - if (correctAlpha) { - CorrectAlphaChannel(surface); - } -done: - if ( was_error ) { - if ( src ) { - SDL_RWseek(src, fp_offset, RW_SEEK_SET); - } - if ( surface ) { - SDL_FreeSurface(surface); - } - surface = NULL; - } - if ( freesrc && src ) { - SDL_RWclose(src); - } - return(surface); -} - -static Uint8 -SDL_Read8(SDL_RWops * src) -{ - Uint8 value; - - SDL_RWread(src, &value, 1, 1); - return (value); -} - -static SDL_Surface * -LoadICOCUR_RW(SDL_RWops * src, int type, int freesrc) -{ - SDL_bool was_error; - Sint64 fp_offset; - int bmpPitch; - int i, pad; - SDL_Surface *surface; - Uint32 Rmask; - Uint32 Gmask; - Uint32 Bmask; - Uint8 *bits; - int ExpandBMP; - int maxCol = 0; - int icoOfs = 0; - Uint32 palette[256]; - - /* The Win32 ICO file header (14 bytes) */ - Uint16 bfReserved; - Uint16 bfType; - Uint16 bfCount; - - /* The Win32 BITMAPINFOHEADER struct (40 bytes) */ - Uint32 biSize; - Sint32 biWidth; - Sint32 biHeight; - Uint16 biPlanes; - Uint16 biBitCount; - Uint32 biCompression; - Uint32 biSizeImage; - Sint32 biXPelsPerMeter; - Sint32 biYPelsPerMeter; - Uint32 biClrUsed; - Uint32 biClrImportant; - - /* Make sure we are passed a valid data source */ - surface = NULL; - was_error = SDL_FALSE; - if (src == NULL) { - was_error = SDL_TRUE; - goto done; - } - - /* Read in the ICO file header */ - fp_offset = SDL_RWtell(src); - SDL_ClearError(); - - bfReserved = SDL_ReadLE16(src); - bfType = SDL_ReadLE16(src); - bfCount = SDL_ReadLE16(src); - if ((bfReserved != 0) || (bfType != type) || (bfCount == 0)) { - IMG_SetError("File is not a Windows %s file", type == 1 ? "ICO" : "CUR"); - was_error = SDL_TRUE; - goto done; - } - - /* Read the Win32 Icon Directory */ - for (i = 0; i < bfCount; i++) { - /* Icon Directory Entries */ - int bWidth = SDL_Read8(src); /* Uint8, but 0 = 256 ! */ - int bHeight = SDL_Read8(src); /* Uint8, but 0 = 256 ! */ - int bColorCount = SDL_Read8(src); /* Uint8, but 0 = 256 ! */ - Uint8 bReserved = SDL_Read8(src); - Uint16 wPlanes = SDL_ReadLE16(src); - Uint16 wBitCount = SDL_ReadLE16(src); - Uint32 dwBytesInRes = SDL_ReadLE32(src); - Uint32 dwImageOffset = SDL_ReadLE32(src); - - if (!bWidth) - bWidth = 256; - if (!bHeight) - bHeight = 256; - if (!bColorCount) - bColorCount = 256; - - //printf("%dx%d@%d - %08x\n", bWidth, bHeight, bColorCount, dwImageOffset); - if (bColorCount > maxCol) { - maxCol = bColorCount; - icoOfs = dwImageOffset; - //printf("marked\n"); - } - } - - /* Advance to the DIB Data */ - if (SDL_RWseek(src, icoOfs, RW_SEEK_SET) < 0) { - SDL_Error(SDL_EFSEEK); - was_error = SDL_TRUE; - goto done; - } - - /* Read the Win32 BITMAPINFOHEADER */ - biSize = SDL_ReadLE32(src); - if (biSize == 40) { - biWidth = SDL_ReadLE32(src); - biHeight = SDL_ReadLE32(src); - biPlanes = SDL_ReadLE16(src); - biBitCount = SDL_ReadLE16(src); - biCompression = SDL_ReadLE32(src); - biSizeImage = SDL_ReadLE32(src); - biXPelsPerMeter = SDL_ReadLE32(src); - biYPelsPerMeter = SDL_ReadLE32(src); - biClrUsed = SDL_ReadLE32(src); - biClrImportant = SDL_ReadLE32(src); - } else { - IMG_SetError("Unsupported ICO bitmap format"); - was_error = SDL_TRUE; - goto done; - } - - /* Check for read error */ - if (SDL_strcmp(SDL_GetError(), "") != 0) { - was_error = SDL_TRUE; - goto done; - } - - /* We don't support any BMP compression right now */ - switch (biCompression) { - case BI_RGB: - /* Default values for the BMP format */ - switch (biBitCount) { - case 1: - case 4: - ExpandBMP = biBitCount; - biBitCount = 8; - break; - case 8: - ExpandBMP = 8; - break; - case 32: - Rmask = 0x00FF0000; - Gmask = 0x0000FF00; - Bmask = 0x000000FF; - ExpandBMP = 0; - break; - default: - IMG_SetError("ICO file with unsupported bit count"); - was_error = SDL_TRUE; - goto done; - } - break; - default: - IMG_SetError("Compressed ICO files not supported"); - was_error = SDL_TRUE; - goto done; - } - - /* sanity check image size, so we don't overflow integers, etc. */ - if ((biWidth < 0) || (biWidth > 0xFFFFFF) || - (biHeight < 0) || (biHeight > 0xFFFFFF)) { - IMG_SetError("Unsupported or invalid ICO dimensions"); - was_error = SDL_TRUE; - goto done; - } - - /* Create a RGBA surface */ - biHeight = biHeight >> 1; - //printf("%d x %d\n", biWidth, biHeight); - surface = - SDL_CreateRGBSurface(0, biWidth, biHeight, 32, 0x00FF0000, - 0x0000FF00, 0x000000FF, 0xFF000000); - if (surface == NULL) { - was_error = SDL_TRUE; - goto done; - } - - /* Load the palette, if any */ - //printf("bc %d bused %d\n", biBitCount, biClrUsed); - if (biBitCount <= 8) { - if (biClrUsed == 0) { - biClrUsed = 1 << biBitCount; - } - if (biClrUsed > SDL_arraysize(palette)) { - IMG_SetError("Unsupported or incorrect biClrUsed field"); - was_error = SDL_TRUE; - goto done; - } - for (i = 0; i < (int) biClrUsed; ++i) { - SDL_RWread(src, &palette[i], 4, 1); - } - } - - /* Read the surface pixels. Note that the bmp image is upside down */ - bits = (Uint8 *) surface->pixels + (surface->h * surface->pitch); - switch (ExpandBMP) { - case 1: - bmpPitch = (biWidth + 7) >> 3; - pad = (((bmpPitch) % 4) ? (4 - ((bmpPitch) % 4)) : 0); - break; - case 4: - bmpPitch = (biWidth + 1) >> 1; - pad = (((bmpPitch) % 4) ? (4 - ((bmpPitch) % 4)) : 0); - break; - case 8: - bmpPitch = biWidth; - pad = (((bmpPitch) % 4) ? (4 - ((bmpPitch) % 4)) : 0); - break; - default: - bmpPitch = biWidth * 4; - pad = 0; - break; - } - while (bits > (Uint8 *) surface->pixels) { - bits -= surface->pitch; - switch (ExpandBMP) { - case 1: - case 4: - case 8: - { - Uint8 pixel = 0; - int shift = (8 - ExpandBMP); - for (i = 0; i < surface->w; ++i) { - if (i % (8 / ExpandBMP) == 0) { - if (!SDL_RWread(src, &pixel, 1, 1)) { - IMG_SetError("Error reading from ICO"); - was_error = SDL_TRUE; - goto done; - } - } - *((Uint32 *) bits + i) = (palette[pixel >> shift]); - pixel <<= ExpandBMP; - } - } - break; - - default: - if (SDL_RWread(src, bits, 1, surface->pitch) - != surface->pitch) { - SDL_Error(SDL_EFREAD); - was_error = SDL_TRUE; - goto done; - } - break; - } - /* Skip padding bytes, ugh */ - if (pad) { - Uint8 padbyte; - for (i = 0; i < pad; ++i) { - SDL_RWread(src, &padbyte, 1, 1); - } - } - } - /* Read the mask pixels. Note that the bmp image is upside down */ - bits = (Uint8 *) surface->pixels + (surface->h * surface->pitch); - ExpandBMP = 1; - bmpPitch = (biWidth + 7) >> 3; - pad = (((bmpPitch) % 4) ? (4 - ((bmpPitch) % 4)) : 0); - while (bits > (Uint8 *) surface->pixels) { - Uint8 pixel = 0; - int shift = (8 - ExpandBMP); - - bits -= surface->pitch; - for (i = 0; i < surface->w; ++i) { - if (i % (8 / ExpandBMP) == 0) { - if (!SDL_RWread(src, &pixel, 1, 1)) { - IMG_SetError("Error reading from ICO"); - was_error = SDL_TRUE; - goto done; - } - } - *((Uint32 *) bits + i) |= ((pixel >> shift) ? 0 : 0xFF000000); - pixel <<= ExpandBMP; - } - /* Skip padding bytes, ugh */ - if (pad) { - Uint8 padbyte; - for (i = 0; i < pad; ++i) { - SDL_RWread(src, &padbyte, 1, 1); - } - } - } - done: - if (was_error) { - if (src) { - SDL_RWseek(src, fp_offset, RW_SEEK_SET); - } - if (surface) { - SDL_FreeSurface(surface); - } - surface = NULL; - } - if (freesrc && src) { - SDL_RWclose(src); - } - return (surface); -} - -/* Load a BMP type image from an SDL datasource */ -SDL_Surface *IMG_LoadBMP_RW(SDL_RWops *src) -{ - return(LoadBMP_RW(src, 0)); -} - -/* Load a ICO type image from an SDL datasource */ -SDL_Surface *IMG_LoadICO_RW(SDL_RWops *src) -{ - return(LoadICOCUR_RW(src, 1, 0)); -} - -/* Load a CUR type image from an SDL datasource */ -SDL_Surface *IMG_LoadCUR_RW(SDL_RWops *src) -{ - return(LoadICOCUR_RW(src, 2, 0)); -} - -#else - -/* See if an image is contained in a data source */ -int IMG_isBMP(SDL_RWops *src) -{ - return(0); -} - -int IMG_isICO(SDL_RWops *src) -{ - return(0); -} - -int IMG_isCUR(SDL_RWops *src) -{ - return(0); -} - -/* Load a BMP type image from an SDL datasource */ -SDL_Surface *IMG_LoadBMP_RW(SDL_RWops *src) -{ - return(NULL); -} - -/* Load a BMP type image from an SDL datasource */ -SDL_Surface *IMG_LoadCUR_RW(SDL_RWops *src) -{ - return(NULL); -} - -/* Load a BMP type image from an SDL datasource */ -SDL_Surface *IMG_LoadICO_RW(SDL_RWops *src) -{ - return(NULL); -} - -#endif /* LOAD_BMP */ - -#endif /* !defined(__APPLE__) || defined(SDL_IMAGE_USE_COMMON_BACKEND) */ diff --git a/extension/SDL2_image-2.0.3/IMG_gif.c b/extension/SDL2_image-2.0.3/IMG_gif.c deleted file mode 100755 index 0fd88f2..0000000 --- a/extension/SDL2_image-2.0.3/IMG_gif.c +++ /dev/null @@ -1,635 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#if !defined(__APPLE__) || defined(SDL_IMAGE_USE_COMMON_BACKEND) - -/* This is a GIF image file loading framework */ - -#include "SDL_image.h" - -#ifdef LOAD_GIF - -/* See if an image is contained in a data source */ -int IMG_isGIF(SDL_RWops *src) -{ - Sint64 start; - int is_GIF; - char magic[6]; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_GIF = 0; - if ( SDL_RWread(src, magic, sizeof(magic), 1) ) { - if ( (SDL_strncmp(magic, "GIF", 3) == 0) && - ((SDL_memcmp(magic + 3, "87a", 3) == 0) || - (SDL_memcmp(magic + 3, "89a", 3) == 0)) ) { - is_GIF = 1; - } - } - SDL_RWseek(src, start, RW_SEEK_SET); - return(is_GIF); -} - -/* Code from here to end of file has been adapted from XPaint: */ -/* +-------------------------------------------------------------------+ */ -/* | Copyright 1990, 1991, 1993 David Koblas. | */ -/* | Copyright 1996 Torsten Martinsen. | */ -/* | Permission to use, copy, modify, and distribute this software | */ -/* | and its documentation for any purpose and without fee is hereby | */ -/* | granted, provided that the above copyright notice appear in all | */ -/* | copies and that both that copyright notice and this permission | */ -/* | notice appear in supporting documentation. This software is | */ -/* | provided "as is" without express or implied warranty. | */ -/* +-------------------------------------------------------------------+ */ - -/* Adapted for use in SDL by Sam Lantinga -- 7/20/98 */ -#define USED_BY_SDL - -#include -#include - -#ifdef USED_BY_SDL -/* Changes to work with SDL: - - Include SDL header file - Use SDL_Surface rather than xpaint Image structure - Define SDL versions of RWSetMsg(), ImageNewCmap() and ImageSetCmap() -*/ -#include "SDL.h" - -#define Image SDL_Surface -#define RWSetMsg IMG_SetError -#define ImageNewCmap(w, h, s) SDL_CreateRGBSurface(SDL_SWSURFACE,w,h,8,0,0,0,0) -#define ImageSetCmap(s, i, R, G, B) do { \ - s->format->palette->colors[i].r = R; \ - s->format->palette->colors[i].g = G; \ - s->format->palette->colors[i].b = B; \ - } while (0) -/* * * * * */ - -#else - -/* Original XPaint sources */ - -#include "image.h" -#include "rwTable.h" - -#define SDL_RWops FILE -#define SDL_RWclose fclose - -#endif /* USED_BY_SDL */ - - -#define MAXCOLORMAPSIZE 256 - -#define TRUE 1 -#define FALSE 0 - -#define CM_RED 0 -#define CM_GREEN 1 -#define CM_BLUE 2 - -#define MAX_LWZ_BITS 12 - -#define INTERLACE 0x40 -#define LOCALCOLORMAP 0x80 -#define BitSet(byte, bit) (((byte) & (bit)) == (bit)) - -#define ReadOK(file,buffer,len) SDL_RWread(file, buffer, len, 1) - -#define LM_to_uint(a,b) (((b)<<8)|(a)) - -static struct { - unsigned int Width; - unsigned int Height; - unsigned char ColorMap[3][MAXCOLORMAPSIZE]; - unsigned int BitPixel; - unsigned int ColorResolution; - unsigned int Background; - unsigned int AspectRatio; - int GrayScale; -} GifScreen; - -static struct { - int transparent; - int delayTime; - int inputFlag; - int disposal; -} Gif89; - -static int ReadColorMap(SDL_RWops * src, int number, - unsigned char buffer[3][MAXCOLORMAPSIZE], int *flag); -static int DoExtension(SDL_RWops * src, int label); -static int GetDataBlock(SDL_RWops * src, unsigned char *buf); -static int GetCode(SDL_RWops * src, int code_size, int flag); -static int LWZReadByte(SDL_RWops * src, int flag, int input_code_size); -static Image *ReadImage(SDL_RWops * src, int len, int height, int, - unsigned char cmap[3][MAXCOLORMAPSIZE], - int gray, int interlace, int ignore); - -Image * -IMG_LoadGIF_RW(SDL_RWops *src) -{ - Sint64 start; - unsigned char buf[16]; - unsigned char c; - unsigned char localColorMap[3][MAXCOLORMAPSIZE]; - int grayScale; - int useGlobalColormap; - int bitPixel; - int imageCount = 0; - char version[4]; - int imageNumber = 1; - Image *image = NULL; - - if ( src == NULL ) { - return NULL; - } - start = SDL_RWtell(src); - - if (!ReadOK(src, buf, 6)) { - RWSetMsg("error reading magic number"); - goto done; - } - if (SDL_strncmp((char *) buf, "GIF", 3) != 0) { - RWSetMsg("not a GIF file"); - goto done; - } - SDL_memcpy(version, (char *) buf + 3, 3); - version[3] = '\0'; - - if ((SDL_strcmp(version, "87a") != 0) && (SDL_strcmp(version, "89a") != 0)) { - RWSetMsg("bad version number, not '87a' or '89a'"); - goto done; - } - Gif89.transparent = -1; - Gif89.delayTime = -1; - Gif89.inputFlag = -1; - Gif89.disposal = 0; - - if (!ReadOK(src, buf, 7)) { - RWSetMsg("failed to read screen descriptor"); - goto done; - } - GifScreen.Width = LM_to_uint(buf[0], buf[1]); - GifScreen.Height = LM_to_uint(buf[2], buf[3]); - GifScreen.BitPixel = 2 << (buf[4] & 0x07); - GifScreen.ColorResolution = (((buf[4] & 0x70) >> 3) + 1); - GifScreen.Background = buf[5]; - GifScreen.AspectRatio = buf[6]; - - if (BitSet(buf[4], LOCALCOLORMAP)) { /* Global Colormap */ - if (ReadColorMap(src, GifScreen.BitPixel, GifScreen.ColorMap, - &GifScreen.GrayScale)) { - RWSetMsg("error reading global colormap"); - goto done; - } - } - do { - if (!ReadOK(src, &c, 1)) { - RWSetMsg("EOF / read error on image data"); - goto done; - } - if (c == ';') { /* GIF terminator */ - if (imageCount < imageNumber) { - RWSetMsg("only %d image%s found in file", - imageCount, imageCount > 1 ? "s" : ""); - goto done; - } - } - if (c == '!') { /* Extension */ - if (!ReadOK(src, &c, 1)) { - RWSetMsg("EOF / read error on extention function code"); - goto done; - } - DoExtension(src, c); - continue; - } - if (c != ',') { /* Not a valid start character */ - continue; - } - ++imageCount; - - if (!ReadOK(src, buf, 9)) { - RWSetMsg("couldn't read left/top/width/height"); - goto done; - } - useGlobalColormap = !BitSet(buf[8], LOCALCOLORMAP); - - bitPixel = 1 << ((buf[8] & 0x07) + 1); - - if (!useGlobalColormap) { - if (ReadColorMap(src, bitPixel, localColorMap, &grayScale)) { - RWSetMsg("error reading local colormap"); - goto done; - } - image = ReadImage(src, LM_to_uint(buf[4], buf[5]), - LM_to_uint(buf[6], buf[7]), - bitPixel, localColorMap, grayScale, - BitSet(buf[8], INTERLACE), - imageCount != imageNumber); - } else { - image = ReadImage(src, LM_to_uint(buf[4], buf[5]), - LM_to_uint(buf[6], buf[7]), - GifScreen.BitPixel, GifScreen.ColorMap, - GifScreen.GrayScale, BitSet(buf[8], INTERLACE), - imageCount != imageNumber); - } - } while (image == NULL); - -#ifdef USED_BY_SDL - if ( Gif89.transparent >= 0 ) { - SDL_SetColorKey(image, SDL_TRUE, Gif89.transparent); - } -#endif - -done: - if ( image == NULL ) { - SDL_RWseek(src, start, RW_SEEK_SET); - } - return image; -} - -static int -ReadColorMap(SDL_RWops *src, int number, - unsigned char buffer[3][MAXCOLORMAPSIZE], int *gray) -{ - int i; - unsigned char rgb[3]; - int flag; - - flag = TRUE; - - for (i = 0; i < number; ++i) { - if (!ReadOK(src, rgb, sizeof(rgb))) { - RWSetMsg("bad colormap"); - return 1; - } - buffer[CM_RED][i] = rgb[0]; - buffer[CM_GREEN][i] = rgb[1]; - buffer[CM_BLUE][i] = rgb[2]; - flag &= (rgb[0] == rgb[1] && rgb[1] == rgb[2]); - } - -#if 0 - if (flag) - *gray = (number == 2) ? PBM_TYPE : PGM_TYPE; - else - *gray = PPM_TYPE; -#else - *gray = 0; -#endif - - return FALSE; -} - -static int -DoExtension(SDL_RWops *src, int label) -{ - static unsigned char buf[256]; - char *str; - - switch (label) { - case 0x01: /* Plain Text Extension */ - str = "Plain Text Extension"; - break; - case 0xff: /* Application Extension */ - str = "Application Extension"; - break; - case 0xfe: /* Comment Extension */ - str = "Comment Extension"; - while (GetDataBlock(src, (unsigned char *) buf) != 0) - ; - return FALSE; - case 0xf9: /* Graphic Control Extension */ - str = "Graphic Control Extension"; - (void) GetDataBlock(src, (unsigned char *) buf); - Gif89.disposal = (buf[0] >> 2) & 0x7; - Gif89.inputFlag = (buf[0] >> 1) & 0x1; - Gif89.delayTime = LM_to_uint(buf[1], buf[2]); - if ((buf[0] & 0x1) != 0) - Gif89.transparent = buf[3]; - - while (GetDataBlock(src, (unsigned char *) buf) != 0) - ; - return FALSE; - default: - str = (char *)buf; - SDL_snprintf(str, 256, "UNKNOWN (0x%02x)", label); - break; - } - - while (GetDataBlock(src, (unsigned char *) buf) != 0) - ; - - return FALSE; -} - -static int ZeroDataBlock = FALSE; - -static int -GetDataBlock(SDL_RWops *src, unsigned char *buf) -{ - unsigned char count; - - if (!ReadOK(src, &count, 1)) { - /* pm_message("error in getting DataBlock size" ); */ - return -1; - } - ZeroDataBlock = count == 0; - - if ((count != 0) && (!ReadOK(src, buf, count))) { - /* pm_message("error in reading DataBlock" ); */ - return -1; - } - return count; -} - -static int -GetCode(SDL_RWops *src, int code_size, int flag) -{ - static unsigned char buf[280]; - static int curbit, lastbit, done, last_byte; - int i, j, ret; - unsigned char count; - - if (flag) { - curbit = 0; - lastbit = 0; - done = FALSE; - return 0; - } - if ((curbit + code_size) >= lastbit) { - if (done) { - if (curbit >= lastbit) - RWSetMsg("ran off the end of my bits"); - return -1; - } - buf[0] = buf[last_byte - 2]; - buf[1] = buf[last_byte - 1]; - - if ((count = GetDataBlock(src, &buf[2])) == 0) - done = TRUE; - - last_byte = 2 + count; - curbit = (curbit - lastbit) + 16; - lastbit = (2 + count) * 8; - } - ret = 0; - for (i = curbit, j = 0; j < code_size; ++i, ++j) - ret |= ((buf[i / 8] & (1 << (i % 8))) != 0) << j; - - curbit += code_size; - - return ret; -} - -static int -LWZReadByte(SDL_RWops *src, int flag, int input_code_size) -{ - static int fresh = FALSE; - int code, incode; - static int code_size, set_code_size; - static int max_code, max_code_size; - static int firstcode, oldcode; - static int clear_code, end_code; - static int table[2][(1 << MAX_LWZ_BITS)]; - static int stack[(1 << (MAX_LWZ_BITS)) * 2], *sp; - register int i; - - /* Fixed buffer overflow found by Michael Skladnikiewicz */ - if (input_code_size > MAX_LWZ_BITS) - return -1; - - if (flag) { - set_code_size = input_code_size; - code_size = set_code_size + 1; - clear_code = 1 << set_code_size; - end_code = clear_code + 1; - max_code_size = 2 * clear_code; - max_code = clear_code + 2; - - GetCode(src, 0, TRUE); - - fresh = TRUE; - - for (i = 0; i < clear_code; ++i) { - table[0][i] = 0; - table[1][i] = i; - } - table[1][0] = 0; - for (; i < (1 << MAX_LWZ_BITS); ++i) - table[0][i] = 0; - - sp = stack; - - return 0; - } else if (fresh) { - fresh = FALSE; - do { - firstcode = oldcode = GetCode(src, code_size, FALSE); - } while (firstcode == clear_code); - return firstcode; - } - if (sp > stack) - return *--sp; - - while ((code = GetCode(src, code_size, FALSE)) >= 0) { - if (code == clear_code) { - for (i = 0; i < clear_code; ++i) { - table[0][i] = 0; - table[1][i] = i; - } - for (; i < (1 << MAX_LWZ_BITS); ++i) - table[0][i] = table[1][i] = 0; - code_size = set_code_size + 1; - max_code_size = 2 * clear_code; - max_code = clear_code + 2; - sp = stack; - firstcode = oldcode = GetCode(src, code_size, FALSE); - return firstcode; - } else if (code == end_code) { - int count; - unsigned char buf[260]; - - if (ZeroDataBlock) - return -2; - - while ((count = GetDataBlock(src, buf)) > 0) - ; - - if (count != 0) { - /* - * pm_message("missing EOD in data stream (common occurence)"); - */ - } - return -2; - } - incode = code; - - if (code >= max_code) { - *sp++ = firstcode; - code = oldcode; - } - while (code >= clear_code) { - /* Guard against buffer overruns */ - if (code < 0 || code >= (1 << MAX_LWZ_BITS)) { - RWSetMsg("invalid LWZ data"); - return -3; - } - *sp++ = table[1][code]; - if (code == table[0][code]) { - RWSetMsg("circular table entry BIG ERROR"); - return -3; - } - code = table[0][code]; - } - - /* Guard against buffer overruns */ - if (code < 0 || code >= (1 << MAX_LWZ_BITS)) { - RWSetMsg("invalid LWZ data"); - return -4; - } - *sp++ = firstcode = table[1][code]; - - if ((code = max_code) < (1 << MAX_LWZ_BITS)) { - table[0][code] = oldcode; - table[1][code] = firstcode; - ++max_code; - if ((max_code >= max_code_size) && - (max_code_size < (1 << MAX_LWZ_BITS))) { - max_code_size *= 2; - ++code_size; - } - } - oldcode = incode; - - if (sp > stack) - return *--sp; - } - return code; -} - -static Image * -ReadImage(SDL_RWops * src, int len, int height, int cmapSize, - unsigned char cmap[3][MAXCOLORMAPSIZE], - int gray, int interlace, int ignore) -{ - Image *image; - unsigned char c; - int i, v; - int xpos = 0, ypos = 0, pass = 0; - - /* - ** Initialize the compression routines - */ - if (!ReadOK(src, &c, 1)) { - RWSetMsg("EOF / read error on image data"); - return NULL; - } - if (LWZReadByte(src, TRUE, c) < 0) { - RWSetMsg("error reading image"); - return NULL; - } - /* - ** If this is an "uninteresting picture" ignore it. - */ - if (ignore) { - while (LWZReadByte(src, FALSE, c) >= 0) - ; - return NULL; - } - image = ImageNewCmap(len, height, cmapSize); - - for (i = 0; i < cmapSize; i++) - ImageSetCmap(image, i, cmap[CM_RED][i], - cmap[CM_GREEN][i], cmap[CM_BLUE][i]); - - while ((v = LWZReadByte(src, FALSE, c)) >= 0) { -#ifdef USED_BY_SDL - ((Uint8 *)image->pixels)[xpos + ypos * image->pitch] = v; -#else - image->data[xpos + ypos * len] = v; -#endif - ++xpos; - if (xpos == len) { - xpos = 0; - if (interlace) { - switch (pass) { - case 0: - case 1: - ypos += 8; - break; - case 2: - ypos += 4; - break; - case 3: - ypos += 2; - break; - } - - if (ypos >= height) { - ++pass; - switch (pass) { - case 1: - ypos = 4; - break; - case 2: - ypos = 2; - break; - case 3: - ypos = 1; - break; - default: - goto fini; - } - } - } else { - ++ypos; - } - } - if (ypos >= height) - break; - } - - fini: - - return image; -} - -#else - -/* See if an image is contained in a data source */ -int IMG_isGIF(SDL_RWops *src) -{ - return(0); -} - -/* Load a GIF type image from an SDL datasource */ -SDL_Surface *IMG_LoadGIF_RW(SDL_RWops *src) -{ - return(NULL); -} - -#endif /* LOAD_GIF */ - -#endif /* !defined(__APPLE__) || defined(SDL_IMAGE_USE_COMMON_BACKEND) */ diff --git a/extension/SDL2_image-2.0.3/IMG_jpg.c b/extension/SDL2_image-2.0.3/IMG_jpg.c deleted file mode 100755 index 5b934ac..0000000 --- a/extension/SDL2_image-2.0.3/IMG_jpg.c +++ /dev/null @@ -1,589 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* This is a JPEG image file loading framework */ - -#include -#include - -#include "SDL_image.h" - -#if !(defined(__APPLE__) || defined(SDL_IMAGE_USE_WIC_BACKEND)) || defined(SDL_IMAGE_USE_COMMON_BACKEND) - -#ifdef LOAD_JPG - -#define USE_JPEGLIB - -#include - -#ifdef JPEG_TRUE /* MinGW version of jpeg-8.x renamed TRUE to JPEG_TRUE etc. */ - typedef JPEG_boolean boolean; - #define TRUE JPEG_TRUE - #define FALSE JPEG_FALSE -#endif - -/* Define this for fast loading and not as good image quality */ -/*#define FAST_JPEG*/ - -/* Define this for quicker (but less perfect) JPEG identification */ -#define FAST_IS_JPEG - -static struct { - int loaded; - void *handle; - void (*jpeg_calc_output_dimensions) (j_decompress_ptr cinfo); - void (*jpeg_CreateDecompress) (j_decompress_ptr cinfo, int version, size_t structsize); - void (*jpeg_destroy_decompress) (j_decompress_ptr cinfo); - boolean (*jpeg_finish_decompress) (j_decompress_ptr cinfo); - int (*jpeg_read_header) (j_decompress_ptr cinfo, boolean require_image); - JDIMENSION (*jpeg_read_scanlines) (j_decompress_ptr cinfo, JSAMPARRAY scanlines, JDIMENSION max_lines); - boolean (*jpeg_resync_to_restart) (j_decompress_ptr cinfo, int desired); - boolean (*jpeg_start_decompress) (j_decompress_ptr cinfo); - void (*jpeg_CreateCompress) (j_compress_ptr cinfo, int version, size_t structsize); - void (*jpeg_start_compress) (j_compress_ptr cinfo, boolean write_all_tables); - void (*jpeg_set_quality) (j_compress_ptr cinfo, int quality, boolean force_baseline); - void (*jpeg_set_defaults) (j_compress_ptr cinfo); - JDIMENSION (*jpeg_write_scanlines) (j_compress_ptr cinfo, JSAMPARRAY scanlines, JDIMENSION num_lines); - void (*jpeg_finish_compress) (j_compress_ptr cinfo); - void (*jpeg_destroy_compress) (j_compress_ptr cinfo); - struct jpeg_error_mgr * (*jpeg_std_error) (struct jpeg_error_mgr * err); -} lib; - -#ifdef LOAD_JPG_DYNAMIC -#define FUNCTION_LOADER(FUNC, SIG) \ - lib.FUNC = (SIG) SDL_LoadFunction(lib.handle, #FUNC); \ - if (lib.FUNC == NULL) { SDL_UnloadObject(lib.handle); return -1; } -#else -#define FUNCTION_LOADER(FUNC, SIG) \ - lib.FUNC = FUNC; -#endif - -int IMG_InitJPG() -{ - if ( lib.loaded == 0 ) { -#ifdef LOAD_JPG_DYNAMIC - lib.handle = SDL_LoadObject(LOAD_JPG_DYNAMIC); - if ( lib.handle == NULL ) { - return -1; - } -#endif - FUNCTION_LOADER(jpeg_calc_output_dimensions, void (*) (j_decompress_ptr cinfo)) - FUNCTION_LOADER(jpeg_CreateDecompress, void (*) (j_decompress_ptr cinfo, int version, size_t structsize)) - FUNCTION_LOADER(jpeg_destroy_decompress, void (*) (j_decompress_ptr cinfo)) - FUNCTION_LOADER(jpeg_finish_decompress, boolean (*) (j_decompress_ptr cinfo)) - FUNCTION_LOADER(jpeg_read_header, int (*) (j_decompress_ptr cinfo, boolean require_image)) - FUNCTION_LOADER(jpeg_read_scanlines, JDIMENSION (*) (j_decompress_ptr cinfo, JSAMPARRAY scanlines, JDIMENSION max_lines)) - FUNCTION_LOADER(jpeg_resync_to_restart, boolean (*) (j_decompress_ptr cinfo, int desired)) - FUNCTION_LOADER(jpeg_start_decompress, boolean (*) (j_decompress_ptr cinfo)) - FUNCTION_LOADER(jpeg_CreateCompress, void (*) (j_compress_ptr cinfo, int version, size_t structsize)) - FUNCTION_LOADER(jpeg_start_compress, void (*) (j_compress_ptr cinfo, boolean write_all_tables)) - FUNCTION_LOADER(jpeg_set_quality, void (*) (j_compress_ptr cinfo, int quality, boolean force_baseline)) - FUNCTION_LOADER(jpeg_set_defaults, void (*) (j_compress_ptr cinfo)) - FUNCTION_LOADER(jpeg_write_scanlines, JDIMENSION (*) (j_compress_ptr cinfo, JSAMPARRAY scanlines, JDIMENSION num_lines)) - FUNCTION_LOADER(jpeg_finish_compress, void (*) (j_compress_ptr cinfo)) - FUNCTION_LOADER(jpeg_destroy_compress, void (*) (j_compress_ptr cinfo)) - FUNCTION_LOADER(jpeg_std_error, struct jpeg_error_mgr * (*) (struct jpeg_error_mgr * err)) - } - ++lib.loaded; - - return 0; -} -void IMG_QuitJPG() -{ - if ( lib.loaded == 0 ) { - return; - } - if ( lib.loaded == 1 ) { -#ifdef LOAD_JPG_DYNAMIC - SDL_UnloadObject(lib.handle); -#endif - } - --lib.loaded; -} - -/* See if an image is contained in a data source */ -int IMG_isJPG(SDL_RWops *src) -{ - Sint64 start; - int is_JPG; - int in_scan; - Uint8 magic[4]; - - /* This detection code is by Steaphan Greene */ - /* Blame me, not Sam, if this doesn't work right. */ - /* And don't forget to report the problem to the the sdl list too! */ - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_JPG = 0; - in_scan = 0; - if ( SDL_RWread(src, magic, 2, 1) ) { - if ( (magic[0] == 0xFF) && (magic[1] == 0xD8) ) { - is_JPG = 1; - while (is_JPG == 1) { - if(SDL_RWread(src, magic, 1, 2) != 2) { - is_JPG = 0; - } else if( (magic[0] != 0xFF) && (in_scan == 0) ) { - is_JPG = 0; - } else if( (magic[0] != 0xFF) || (magic[1] == 0xFF) ) { - /* Extra padding in JPEG (legal) */ - /* or this is data and we are scanning */ - SDL_RWseek(src, -1, RW_SEEK_CUR); - } else if(magic[1] == 0xD9) { - /* Got to end of good JPEG */ - break; - } else if( (in_scan == 1) && (magic[1] == 0x00) ) { - /* This is an encoded 0xFF within the data */ - } else if( (magic[1] >= 0xD0) && (magic[1] < 0xD9) ) { - /* These have nothing else */ - } else if(SDL_RWread(src, magic+2, 1, 2) != 2) { - is_JPG = 0; - } else { - /* Yes, it's big-endian */ - Sint64 innerStart; - Uint32 size; - Sint64 end; - innerStart = SDL_RWtell(src); - size = (magic[2] << 8) + magic[3]; - end = SDL_RWseek(src, size-2, RW_SEEK_CUR); - if ( end != innerStart + size - 2 ) is_JPG = 0; - if ( magic[1] == 0xDA ) { - /* Now comes the actual JPEG meat */ -#ifdef FAST_IS_JPEG - /* Ok, I'm convinced. It is a JPEG. */ - break; -#else - /* I'm not convinced. Prove it! */ - in_scan = 1; -#endif - } - } - } - } - } - SDL_RWseek(src, start, RW_SEEK_SET); - return(is_JPG); -} - -#define INPUT_BUFFER_SIZE 4096 -typedef struct { - struct jpeg_source_mgr pub; - - SDL_RWops *ctx; - Uint8 buffer[INPUT_BUFFER_SIZE]; -} my_source_mgr; - -/* - * Initialize source --- called by jpeg_read_header - * before any data is actually read. - */ -static void init_source (j_decompress_ptr cinfo) -{ - /* We don't actually need to do anything */ - return; -} - -/* - * Fill the input buffer --- called whenever buffer is emptied. - */ -static boolean fill_input_buffer (j_decompress_ptr cinfo) -{ - my_source_mgr * src = (my_source_mgr *) cinfo->src; - int nbytes; - - nbytes = (int)SDL_RWread(src->ctx, src->buffer, 1, INPUT_BUFFER_SIZE); - if (nbytes <= 0) { - /* Insert a fake EOI marker */ - src->buffer[0] = (Uint8) 0xFF; - src->buffer[1] = (Uint8) JPEG_EOI; - nbytes = 2; - } - src->pub.next_input_byte = src->buffer; - src->pub.bytes_in_buffer = nbytes; - - return TRUE; -} - - -/* - * Skip data --- used to skip over a potentially large amount of - * uninteresting data (such as an APPn marker). - * - * Writers of suspendable-input applications must note that skip_input_data - * is not granted the right to give a suspension return. If the skip extends - * beyond the data currently in the buffer, the buffer can be marked empty so - * that the next read will cause a fill_input_buffer call that can suspend. - * Arranging for additional bytes to be discarded before reloading the input - * buffer is the application writer's problem. - */ -static void skip_input_data (j_decompress_ptr cinfo, long num_bytes) -{ - my_source_mgr * src = (my_source_mgr *) cinfo->src; - - /* Just a dumb implementation for now. Could use fseek() except - * it doesn't work on pipes. Not clear that being smart is worth - * any trouble anyway --- large skips are infrequent. - */ - if (num_bytes > 0) { - while (num_bytes > (long) src->pub.bytes_in_buffer) { - num_bytes -= (long) src->pub.bytes_in_buffer; - (void) src->pub.fill_input_buffer(cinfo); - /* note we assume that fill_input_buffer will never - * return FALSE, so suspension need not be handled. - */ - } - src->pub.next_input_byte += (size_t) num_bytes; - src->pub.bytes_in_buffer -= (size_t) num_bytes; - } -} - -/* - * Terminate source --- called by jpeg_finish_decompress - * after all data has been read. - */ -static void term_source (j_decompress_ptr cinfo) -{ - /* We don't actually need to do anything */ - return; -} - -/* - * Prepare for input from a stdio stream. - * The caller must have already opened the stream, and is responsible - * for closing it after finishing decompression. - */ -static void jpeg_SDL_RW_src (j_decompress_ptr cinfo, SDL_RWops *ctx) -{ - my_source_mgr *src; - - /* The source object and input buffer are made permanent so that a series - * of JPEG images can be read from the same file by calling jpeg_stdio_src - * only before the first one. (If we discarded the buffer at the end of - * one image, we'd likely lose the start of the next one.) - * This makes it unsafe to use this manager and a different source - * manager serially with the same JPEG object. Caveat programmer. - */ - if (cinfo->src == NULL) { /* first time for this JPEG object? */ - cinfo->src = (struct jpeg_source_mgr *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, - sizeof(my_source_mgr)); - src = (my_source_mgr *) cinfo->src; - } - - src = (my_source_mgr *) cinfo->src; - src->pub.init_source = init_source; - src->pub.fill_input_buffer = fill_input_buffer; - src->pub.skip_input_data = skip_input_data; - src->pub.resync_to_restart = lib.jpeg_resync_to_restart; /* use default method */ - src->pub.term_source = term_source; - src->ctx = ctx; - src->pub.bytes_in_buffer = 0; /* forces fill_input_buffer on first read */ - src->pub.next_input_byte = NULL; /* until buffer loaded */ -} - -struct my_error_mgr { - struct jpeg_error_mgr errmgr; - jmp_buf escape; -}; - -static void my_error_exit(j_common_ptr cinfo) -{ - struct my_error_mgr *err = (struct my_error_mgr *)cinfo->err; - longjmp(err->escape, 1); -} - -static void output_no_message(j_common_ptr cinfo) -{ - /* do nothing */ -} - -/* Load a JPEG type image from an SDL datasource */ -SDL_Surface *IMG_LoadJPG_RW(SDL_RWops *src) -{ - Sint64 start; - struct jpeg_decompress_struct cinfo; - JSAMPROW rowptr[1]; - SDL_Surface *volatile surface = NULL; - struct my_error_mgr jerr; - - if ( !src ) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - start = SDL_RWtell(src); - - if ( (IMG_Init(IMG_INIT_JPG) & IMG_INIT_JPG) == 0 ) { - return NULL; - } - - /* Create a decompression structure and load the JPEG header */ - cinfo.err = lib.jpeg_std_error(&jerr.errmgr); - jerr.errmgr.error_exit = my_error_exit; - jerr.errmgr.output_message = output_no_message; - if(setjmp(jerr.escape)) { - /* If we get here, libjpeg found an error */ - lib.jpeg_destroy_decompress(&cinfo); - if ( surface != NULL ) { - SDL_FreeSurface(surface); - } - SDL_RWseek(src, start, RW_SEEK_SET); - IMG_SetError("JPEG loading error"); - return NULL; - } - - lib.jpeg_create_decompress(&cinfo); - jpeg_SDL_RW_src(&cinfo, src); - lib.jpeg_read_header(&cinfo, TRUE); - - if(cinfo.num_components == 4) { - /* Set 32-bit Raw output */ - cinfo.out_color_space = JCS_CMYK; - cinfo.quantize_colors = FALSE; - lib.jpeg_calc_output_dimensions(&cinfo); - - /* Allocate an output surface to hold the image */ - surface = SDL_CreateRGBSurface(SDL_SWSURFACE, - cinfo.output_width, cinfo.output_height, 32, -#if SDL_BYTEORDER == SDL_LIL_ENDIAN - 0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000); -#else - 0x0000FF00, 0x00FF0000, 0xFF000000, 0x000000FF); -#endif - } else { - /* Set 24-bit RGB output */ - cinfo.out_color_space = JCS_RGB; - cinfo.quantize_colors = FALSE; -#ifdef FAST_JPEG - cinfo.scale_num = 1; - cinfo.scale_denom = 1; - cinfo.dct_method = JDCT_FASTEST; - cinfo.do_fancy_upsampling = FALSE; -#endif - lib.jpeg_calc_output_dimensions(&cinfo); - - /* Allocate an output surface to hold the image */ - surface = SDL_CreateRGBSurface(SDL_SWSURFACE, - cinfo.output_width, cinfo.output_height, 24, -#if SDL_BYTEORDER == SDL_LIL_ENDIAN - 0x0000FF, 0x00FF00, 0xFF0000, -#else - 0xFF0000, 0x00FF00, 0x0000FF, -#endif - 0); - } - - if ( surface == NULL ) { - lib.jpeg_destroy_decompress(&cinfo); - SDL_RWseek(src, start, RW_SEEK_SET); - IMG_SetError("Out of memory"); - return NULL; - } - - /* Decompress the image */ - lib.jpeg_start_decompress(&cinfo); - while ( cinfo.output_scanline < cinfo.output_height ) { - rowptr[0] = (JSAMPROW)(Uint8 *)surface->pixels + - cinfo.output_scanline * surface->pitch; - lib.jpeg_read_scanlines(&cinfo, rowptr, (JDIMENSION) 1); - } - lib.jpeg_finish_decompress(&cinfo); - lib.jpeg_destroy_decompress(&cinfo); - - return(surface); -} - -#define OUTPUT_BUFFER_SIZE 4096 -typedef struct { - struct jpeg_destination_mgr pub; - - SDL_RWops *ctx; - Uint8 buffer[OUTPUT_BUFFER_SIZE]; -} my_destination_mgr; - -static void init_destination(j_compress_ptr cinfo) -{ - /* We don't actually need to do anything */ - return; -} - -static boolean empty_output_buffer(j_compress_ptr cinfo) -{ - my_destination_mgr * dest = (my_destination_mgr *)cinfo->dest; - - /* In typical applications, it should write out the *entire* buffer */ - SDL_RWwrite(dest->ctx, dest->buffer, 1, OUTPUT_BUFFER_SIZE); - dest->pub.next_output_byte = dest->buffer; - dest->pub.free_in_buffer = OUTPUT_BUFFER_SIZE; - - return TRUE; -} - -static void term_destination(j_compress_ptr cinfo) -{ - my_destination_mgr * dest = (my_destination_mgr *)cinfo->dest; - - /* In most applications, this must flush any data remaining in the buffer */ - SDL_RWwrite(dest->ctx, dest->buffer, 1, OUTPUT_BUFFER_SIZE - dest->pub.free_in_buffer); -} - -static void jpeg_SDL_RW_dest(j_compress_ptr cinfo, SDL_RWops *ctx) -{ - my_destination_mgr *dest; - - if (cinfo->dest == NULL) { - cinfo->dest = (struct jpeg_destination_mgr *) - (*cinfo->mem->alloc_small) ((j_common_ptr)cinfo, JPOOL_PERMANENT, - sizeof(my_destination_mgr)); - dest = (my_destination_mgr *)cinfo->dest; - } - - dest = (my_destination_mgr *)cinfo->dest; - dest->pub.init_destination = init_destination; - dest->pub.empty_output_buffer = empty_output_buffer; - dest->pub.term_destination = term_destination; - dest->ctx = ctx; - dest->pub.next_output_byte = dest->buffer; - dest->pub.free_in_buffer = OUTPUT_BUFFER_SIZE; -} - -static int IMG_SaveJPG_RW_jpeglib(SDL_Surface *surface, SDL_RWops *dst, int freedst, int quality) -{ -#if SDL_BYTEORDER == SDL_LIL_ENDIAN - static const Uint32 jpg_format = SDL_PIXELFORMAT_RGB24; -#else - static const Uint32 jpg_format = SDL_PIXELFORMAT_BGR24; -#endif - struct jpeg_compress_struct cinfo; - struct my_error_mgr jerr; - JSAMPROW row_pointer[1]; - SDL_Surface* jpeg_surface = surface; - int result = -1; - - if (!dst) { - SDL_SetError("Passed NULL dst"); - goto done; - } - - if (!IMG_Init(IMG_INIT_JPG)) { - goto done; - } - - /* Convert surface to format we can save */ - if (surface->format->format != jpg_format) { - jpeg_surface = SDL_ConvertSurfaceFormat(surface, jpg_format, 0); - if (!jpeg_surface) { - goto done; - } - } - - /* Create a decompression structure and load the JPEG header */ - cinfo.err = lib.jpeg_std_error(&jerr.errmgr); - jerr.errmgr.error_exit = my_error_exit; - jerr.errmgr.output_message = output_no_message; - - lib.jpeg_create_compress(&cinfo); - jpeg_SDL_RW_dest(&cinfo, dst); - - cinfo.image_width = jpeg_surface->w; - cinfo.image_height = jpeg_surface->h; - cinfo.in_color_space = JCS_RGB; - cinfo.input_components = 3; - - lib.jpeg_set_defaults(&cinfo); - lib.jpeg_set_quality(&cinfo, quality, TRUE); - lib.jpeg_start_compress(&cinfo, TRUE); - - while (cinfo.next_scanline < cinfo.image_height) { - int offset = cinfo.next_scanline * jpeg_surface->pitch; - row_pointer[0] = ((Uint8*)jpeg_surface->pixels) + offset; - lib.jpeg_write_scanlines(&cinfo, row_pointer, 1); - } - - lib.jpeg_finish_compress(&cinfo); - lib.jpeg_destroy_compress(&cinfo); - - if (jpeg_surface != surface) { - SDL_FreeSurface(jpeg_surface); - } - - result = 0; - -done: - if (freedst) { - SDL_RWclose(dst); - } - return result; -} - -#else - -int IMG_InitJPG() -{ - IMG_SetError("JPEG images are not supported"); - return(-1); -} - -void IMG_QuitJPG() -{ -} - -/* See if an image is contained in a data source */ -int IMG_isJPG(SDL_RWops *src) -{ - return(0); -} - -/* Load a JPEG type image from an SDL datasource */ -SDL_Surface *IMG_LoadJPG_RW(SDL_RWops *src) -{ - return(NULL); -} - -#endif /* LOAD_JPG */ - -#endif /* !defined(__APPLE__) || defined(SDL_IMAGE_USE_COMMON_BACKEND) */ - -/* We'll always have JPG save support */ -#define SAVE_JPG - -#ifdef SAVE_JPG - -int IMG_SaveJPG(SDL_Surface *surface, const char *file, int quality) -{ - SDL_RWops *dst = SDL_RWFromFile(file, "wb"); - if (dst) { - return IMG_SaveJPG_RW(surface, dst, 1, quality); - } else { - return -1; - } -} - -int IMG_SaveJPG_RW(SDL_Surface *surface, SDL_RWops *dst, int freedst, int quality) -{ -#ifdef USE_JPEGLIB - return IMG_SaveJPG_RW_jpeglib(surface, dst, freedst, quality); -#else - return IMG_SetError("SDL_image not built with jpeglib, saving not supported"); -#endif -} - -#endif /* SAVE_JPG */ diff --git a/extension/SDL2_image-2.0.3/IMG_lbm.c b/extension/SDL2_image-2.0.3/IMG_lbm.c deleted file mode 100755 index 9d59abb..0000000 --- a/extension/SDL2_image-2.0.3/IMG_lbm.c +++ /dev/null @@ -1,506 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* This is a ILBM image file loading framework - Load IFF pictures, PBM & ILBM packing methods, with or without stencil - Written by Daniel Morais ( Daniel AT Morais DOT com ) in September 2001. - 24 bits ILBM files support added by Marc Le Douarain (http://www.multimania.com/mavati) - in December 2002. - EHB and HAM (specific Amiga graphic chip modes) support added by Marc Le Douarain - (http://www.multimania.com/mavati) in December 2003. - Stencil and colorkey fixes by David Raulo (david.raulo AT free DOT fr) in February 2004. - Buffer overflow fix in RLE decompression by David Raulo in January 2008. -*/ - -#include "SDL_endian.h" -#include "SDL_image.h" - -#ifdef LOAD_LBM - - -#define MAXCOLORS 256 - -/* Structure for an IFF picture ( BMHD = Bitmap Header ) */ - -typedef struct -{ - Uint16 w, h; /* width & height of the bitmap in pixels */ - Sint16 x, y; /* screen coordinates of the bitmap */ - Uint8 planes; /* number of planes of the bitmap */ - Uint8 mask; /* mask type ( 0 => no mask ) */ - Uint8 tcomp; /* compression type */ - Uint8 pad1; /* dummy value, for padding */ - Uint16 tcolor; /* transparent color */ - Uint8 xAspect, /* pixel aspect ratio */ - yAspect; - Sint16 Lpage; /* width of the screen in pixels */ - Sint16 Hpage; /* height of the screen in pixels */ -} BMHD; - -int IMG_isLBM( SDL_RWops *src ) -{ - Sint64 start; - int is_LBM; - Uint8 magic[4+4+4]; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_LBM = 0; - if ( SDL_RWread( src, magic, sizeof(magic), 1 ) ) - { - if ( !SDL_memcmp( magic, "FORM", 4 ) && - ( !SDL_memcmp( magic + 8, "PBM ", 4 ) || - !SDL_memcmp( magic + 8, "ILBM", 4 ) ) ) - { - is_LBM = 1; - } - } - SDL_RWseek(src, start, RW_SEEK_SET); - return( is_LBM ); -} - -SDL_Surface *IMG_LoadLBM_RW( SDL_RWops *src ) -{ - Sint64 start; - SDL_Surface *Image; - Uint8 id[4], pbm, colormap[MAXCOLORS*3], *MiniBuf, *ptr, count, color, msk; - Uint32 size, bytesloaded, nbcolors; - Uint32 i, j, bytesperline, nbplanes, stencil, plane, h; - Uint32 remainingbytes; - Uint32 width; - BMHD bmhd; - char *error; - Uint8 flagHAM,flagEHB; - - Image = NULL; - error = NULL; - MiniBuf = NULL; - - if ( !src ) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - start = SDL_RWtell(src); - - if ( !SDL_RWread( src, id, 4, 1 ) ) - { - error="error reading IFF chunk"; - goto done; - } - - /* Should be the size of the file minus 4+4 ( 'FORM'+size ) */ - if ( !SDL_RWread( src, &size, 4, 1 ) ) - { - error="error reading IFF chunk size"; - goto done; - } - - /* As size is not used here, no need to swap it */ - - if ( SDL_memcmp( id, "FORM", 4 ) != 0 ) - { - error="not a IFF file"; - goto done; - } - - if ( !SDL_RWread( src, id, 4, 1 ) ) - { - error="error reading IFF chunk"; - goto done; - } - - pbm = 0; - - /* File format : PBM=Packed Bitmap, ILBM=Interleaved Bitmap */ - if ( !SDL_memcmp( id, "PBM ", 4 ) ) pbm = 1; - else if ( SDL_memcmp( id, "ILBM", 4 ) ) - { - error="not a IFF picture"; - goto done; - } - - nbcolors = 0; - - SDL_memset( &bmhd, 0, sizeof( BMHD ) ); - flagHAM = 0; - flagEHB = 0; - - while ( SDL_memcmp( id, "BODY", 4 ) != 0 ) - { - if ( !SDL_RWread( src, id, 4, 1 ) ) - { - error="error reading IFF chunk"; - goto done; - } - - if ( !SDL_RWread( src, &size, 4, 1 ) ) - { - error="error reading IFF chunk size"; - goto done; - } - - bytesloaded = 0; - - size = SDL_SwapBE32( size ); - - if ( !SDL_memcmp( id, "BMHD", 4 ) ) /* Bitmap header */ - { - if ( !SDL_RWread( src, &bmhd, sizeof( BMHD ), 1 ) ) - { - error="error reading BMHD chunk"; - goto done; - } - - bytesloaded = sizeof( BMHD ); - - bmhd.w = SDL_SwapBE16( bmhd.w ); - bmhd.h = SDL_SwapBE16( bmhd.h ); - bmhd.x = SDL_SwapBE16( bmhd.x ); - bmhd.y = SDL_SwapBE16( bmhd.y ); - bmhd.tcolor = SDL_SwapBE16( bmhd.tcolor ); - bmhd.Lpage = SDL_SwapBE16( bmhd.Lpage ); - bmhd.Hpage = SDL_SwapBE16( bmhd.Hpage ); - } - - if ( !SDL_memcmp( id, "CMAP", 4 ) ) /* palette ( Color Map ) */ - { - if (size > sizeof (colormap)) { - error="colormap size is too large"; - goto done; - } - - if ( !SDL_RWread( src, &colormap, size, 1 ) ) - { - error="error reading CMAP chunk"; - goto done; - } - - bytesloaded = size; - nbcolors = size / 3; - } - - if ( !SDL_memcmp( id, "CAMG", 4 ) ) /* Amiga ViewMode */ - { - Uint32 viewmodes; - if ( !SDL_RWread( src, &viewmodes, sizeof(viewmodes), 1 ) ) - { - error="error reading CAMG chunk"; - goto done; - } - - bytesloaded = size; - viewmodes = SDL_SwapBE32( viewmodes ); - if ( viewmodes & 0x0800 ) - flagHAM = 1; - if ( viewmodes & 0x0080 ) - flagEHB = 1; - } - - if ( SDL_memcmp( id, "BODY", 4 ) ) - { - if ( size & 1 ) ++size; /* padding ! */ - size -= bytesloaded; - /* skip the remaining bytes of this chunk */ - if ( size ) SDL_RWseek( src, size, RW_SEEK_CUR ); - } - } - - /* compute some usefull values, based on the bitmap header */ - - width = ( bmhd.w + 15 ) & 0xFFFFFFF0; /* Width in pixels modulo 16 */ - - bytesperline = ( ( bmhd.w + 15 ) / 16 ) * 2; - - nbplanes = bmhd.planes; - - if ( pbm ) /* File format : 'Packed Bitmap' */ - { - bytesperline *= 8; - nbplanes = 1; - } - - if ((nbplanes != 1) && (nbplanes != 4) && (nbplanes != 8) && (nbplanes != 24)) - { - error="unsupported number of color planes"; - goto done; - } - - stencil = (bmhd.mask & 1); /* There is a mask ( 'stencil' ) */ - - /* Allocate memory for a temporary buffer ( used for - decompression/deinterleaving ) */ - - MiniBuf = (Uint8 *)SDL_malloc( bytesperline * (nbplanes + stencil) ); - if ( MiniBuf == NULL ) - { - error="not enough memory for temporary buffer"; - goto done; - } - - if ( ( Image = SDL_CreateRGBSurface( SDL_SWSURFACE, width, bmhd.h, (nbplanes==24 || flagHAM==1)?24:8, 0, 0, 0, 0 ) ) == NULL ) - goto done; - - if ( bmhd.mask & 2 ) /* There is a transparent color */ - SDL_SetColorKey( Image, SDL_TRUE, bmhd.tcolor ); - - /* Update palette informations */ - - /* There is no palette in 24 bits ILBM file */ - if ( nbcolors>0 && flagHAM==0 ) - { - /* FIXME: Should this include the stencil? See comment below */ - int nbrcolorsfinal = 1 << (nbplanes + stencil); - ptr = &colormap[0]; - - for ( i=0; iformat->palette->colors[i].r = *ptr++; - Image->format->palette->colors[i].g = *ptr++; - Image->format->palette->colors[i].b = *ptr++; - } - - /* Amiga EHB mode (Extra-Half-Bright) */ - /* 6 bitplanes mode with a 32 colors palette */ - /* The 32 last colors are the same but divided by 2 */ - /* Some Amiga pictures save 64 colors with 32 last wrong colors, */ - /* they shouldn't !, and here we overwrite these 32 bad colors. */ - if ( (nbcolors==32 || flagEHB ) && (1<format->palette->colors[i].r = (*ptr++)/2; - Image->format->palette->colors[i].g = (*ptr++)/2; - Image->format->palette->colors[i].b = (*ptr++)/2; - } - } - - /* If nbcolors < 2^nbplanes, repeat the colormap */ - /* This happens when pictures have a stencil mask */ - if ( nbrcolorsfinal > (1<format->palette->colors[i].r = Image->format->palette->colors[i%nbcolors].r; - Image->format->palette->colors[i].g = Image->format->palette->colors[i%nbcolors].g; - Image->format->palette->colors[i].b = Image->format->palette->colors[i%nbcolors].b; - } - if ( !pbm ) - Image->format->palette->ncolors = nbrcolorsfinal; - } - - /* Get the bitmap */ - - for ( h=0; h < bmhd.h; h++ ) - { - /* uncompress the datas of each planes */ - - for ( plane=0; plane < (nbplanes+stencil); plane++ ) - { - ptr = MiniBuf + ( plane * bytesperline ); - - remainingbytes = bytesperline; - - if ( bmhd.tcomp == 1 ) /* Datas are compressed */ - { - do - { - if ( !SDL_RWread( src, &count, 1, 1 ) ) - { - error="error reading BODY chunk"; - goto done; - } - - if ( count & 0x80 ) - { - count ^= 0xFF; - count += 2; /* now it */ - - if ( ( count > remainingbytes ) || !SDL_RWread( src, &color, 1, 1 ) ) - { - error="error reading BODY chunk"; - goto done; - } - SDL_memset( ptr, color, count ); - } - else - { - ++count; - - if ( ( count > remainingbytes ) || !SDL_RWread( src, ptr, count, 1 ) ) - { - error="error reading BODY chunk"; - goto done; - } - } - - ptr += count; - remainingbytes -= count; - - } while ( remainingbytes > 0 ); - } - else - { - if ( !SDL_RWread( src, ptr, bytesperline, 1 ) ) - { - error="error reading BODY chunk"; - goto done; - } - } - } - - /* One line has been read, store it ! */ - - ptr = (Uint8 *)Image->pixels; - if ( nbplanes==24 || flagHAM==1 ) - ptr += h * width * 3; - else - ptr += h * width; - - if ( pbm ) /* File format : 'Packed Bitmap' */ - { - SDL_memcpy( ptr, MiniBuf, width ); - } - else /* We have to un-interlace the bits ! */ - { - if ( nbplanes!=24 && flagHAM==0 ) - { - size = ( width + 7 ) / 8; - - for ( i=0; i < size; i++ ) - { - SDL_memset( ptr, 0, 8 ); - - for ( plane=0; plane < (nbplanes + stencil); plane++ ) - { - color = *( MiniBuf + i + ( plane * bytesperline ) ); - msk = 0x80; - - for ( j=0; j<8; j++ ) - { - if ( ( plane + j ) <= 7 ) ptr[j] |= (Uint8)( color & msk ) >> ( 7 - plane - j ); - else ptr[j] |= (Uint8)( color & msk ) << ( plane + j - 7 ); - - msk >>= 1; - } - } - ptr += 8; - } - } - else - { - Uint32 finalcolor = 0; - size = ( width + 7 ) / 8; - /* 24 bitplanes ILBM : R0...R7,G0...G7,B0...B7 */ - /* or HAM (6 bitplanes) or HAM8 (8 bitplanes) modes */ - for ( i=0; i>(nbplanes-2) ) - { - case 0: /* take direct color from palette */ - finalcolor = colormap[ pixelcolor*3 ] + (colormap[ pixelcolor*3+1 ]<<8) + (colormap[ pixelcolor*3+2 ]<<16); - break; - case 1: /* modify only blue component */ - finalcolor = finalcolor&0x00FFFF; - finalcolor = finalcolor | (pixelcolor<<(16+(10-nbplanes))); - break; - case 2: /* modify only red component */ - finalcolor = finalcolor&0xFFFF00; - finalcolor = finalcolor | pixelcolor<<(10-nbplanes); - break; - case 3: /* modify only green component */ - finalcolor = finalcolor&0xFF00FF; - finalcolor = finalcolor | (pixelcolor<<(8+(10-nbplanes))); - break; - } - } - else - { - finalcolor = pixelcolor; - } -#if SDL_BYTEORDER == SDL_LIL_ENDIAN - *ptr++ = (Uint8)(finalcolor>>16); - *ptr++ = (Uint8)(finalcolor>>8); - *ptr++ = (Uint8)(finalcolor); -#else - *ptr++ = (Uint8)(finalcolor); - *ptr++ = (Uint8)(finalcolor>>8); - *ptr++ = (Uint8)(finalcolor>>16); -#endif - maskBit = maskBit>>1; - } - } - } - } - } - -done: - - if ( MiniBuf ) SDL_free( MiniBuf ); - - if ( error ) - { - SDL_RWseek(src, start, RW_SEEK_SET); - if ( Image ) { - SDL_FreeSurface( Image ); - Image = NULL; - } - IMG_SetError( "%s", error ); - } - - return( Image ); -} - -#else /* LOAD_LBM */ - -/* See if an image is contained in a data source */ -int IMG_isLBM(SDL_RWops *src) -{ - return(0); -} - -/* Load an IFF type image from an SDL datasource */ -SDL_Surface *IMG_LoadLBM_RW(SDL_RWops *src) -{ - return(NULL); -} - -#endif /* LOAD_LBM */ diff --git a/extension/SDL2_image-2.0.3/IMG_pcx.c b/extension/SDL2_image-2.0.3/IMG_pcx.c deleted file mode 100755 index b2f91df..0000000 --- a/extension/SDL2_image-2.0.3/IMG_pcx.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* - * PCX file reader: - * Supports: - * 1..4 bits/pixel in multiplanar format (1 bit/plane/pixel) - * 8 bits/pixel in single-planar format (8 bits/plane/pixel) - * 24 bits/pixel in 3-plane format (8 bits/plane/pixel) - * - * (The <8bpp formats are expanded to 8bpp surfaces) - * - * Doesn't support: - * single-planar packed-pixel formats other than 8bpp - * 4-plane 32bpp format with a fourth "intensity" plane - */ - -#include "SDL_endian.h" - -#include "SDL_image.h" - -#ifdef LOAD_PCX - -struct PCXheader { - Uint8 Manufacturer; - Uint8 Version; - Uint8 Encoding; - Uint8 BitsPerPixel; - Sint16 Xmin, Ymin, Xmax, Ymax; - Sint16 HDpi, VDpi; - Uint8 Colormap[48]; - Uint8 Reserved; - Uint8 NPlanes; - Sint16 BytesPerLine; - Sint16 PaletteInfo; - Sint16 HscreenSize; - Sint16 VscreenSize; - Uint8 Filler[54]; -}; - -/* See if an image is contained in a data source */ -int IMG_isPCX(SDL_RWops *src) -{ - Sint64 start; - int is_PCX; - const int ZSoft_Manufacturer = 10; - const int PC_Paintbrush_Version = 5; - const int PCX_Uncompressed_Encoding = 0; - const int PCX_RunLength_Encoding = 1; - struct PCXheader pcxh; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_PCX = 0; - if ( SDL_RWread(src, &pcxh, sizeof(pcxh), 1) == 1 ) { - if ( (pcxh.Manufacturer == ZSoft_Manufacturer) && - (pcxh.Version == PC_Paintbrush_Version) && - (pcxh.Encoding == PCX_RunLength_Encoding || - pcxh.Encoding == PCX_Uncompressed_Encoding) ) { - is_PCX = 1; - } - } - SDL_RWseek(src, start, RW_SEEK_SET); - return(is_PCX); -} - -/* Load a PCX type image from an SDL datasource */ -SDL_Surface *IMG_LoadPCX_RW(SDL_RWops *src) -{ - Sint64 start; - struct PCXheader pcxh; - Uint32 Rmask; - Uint32 Gmask; - Uint32 Bmask; - Uint32 Amask; - SDL_Surface *surface = NULL; - int width, height; - int y, bpl; - Uint8 *row, *buf = NULL; - char *error = NULL; - int bits, src_bits; - - if ( !src ) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - start = SDL_RWtell(src); - - if ( ! SDL_RWread(src, &pcxh, sizeof(pcxh), 1) ) { - error = "file truncated"; - goto done; - } - pcxh.Xmin = SDL_SwapLE16(pcxh.Xmin); - pcxh.Ymin = SDL_SwapLE16(pcxh.Ymin); - pcxh.Xmax = SDL_SwapLE16(pcxh.Xmax); - pcxh.Ymax = SDL_SwapLE16(pcxh.Ymax); - pcxh.BytesPerLine = SDL_SwapLE16(pcxh.BytesPerLine); - - /* Create the surface of the appropriate type */ - width = (pcxh.Xmax - pcxh.Xmin) + 1; - height = (pcxh.Ymax - pcxh.Ymin) + 1; - Rmask = Gmask = Bmask = Amask = 0; - src_bits = pcxh.BitsPerPixel * pcxh.NPlanes; - if((pcxh.BitsPerPixel == 1 && pcxh.NPlanes >= 1 && pcxh.NPlanes <= 4) - || (pcxh.BitsPerPixel == 8 && pcxh.NPlanes == 1)) { - bits = 8; - } else if(pcxh.BitsPerPixel == 8 && pcxh.NPlanes == 3) { - bits = 24; -#if SDL_BYTEORDER == SDL_LIL_ENDIAN - Rmask = 0x000000FF; - Gmask = 0x0000FF00; - Bmask = 0x00FF0000; -#else - Rmask = 0xFF0000; - Gmask = 0x00FF00; - Bmask = 0x0000FF; -#endif - } else { - error = "unsupported PCX format"; - goto done; - } - surface = SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, - bits, Rmask, Gmask, Bmask, Amask); - if ( surface == NULL ) - goto done; - - bpl = pcxh.NPlanes * pcxh.BytesPerLine; - if (bpl > surface->pitch) { - error = "bytes per line is too large (corrupt?)"; - } - buf = (Uint8 *)SDL_calloc(SDL_max(bpl, surface->pitch), 1); - row = (Uint8 *)surface->pixels; - for ( y=0; yh; ++y ) { - /* decode a scan line to a temporary buffer first */ - int i, count = 0; - Uint8 ch; - Uint8 *dst = (src_bits == 8) ? row : buf; - if ( pcxh.Encoding == 0 ) { - if(!SDL_RWread(src, dst, bpl, 1)) { - error = "file truncated"; - goto done; - } - } else { - for(i = 0; i < bpl; i++) { - if(!count) { - if(!SDL_RWread(src, &ch, 1, 1)) { - error = "file truncated"; - goto done; - } - if( (ch & 0xc0) == 0xc0) { - count = ch & 0x3f; - if(!SDL_RWread(src, &ch, 1, 1)) { - error = "file truncated"; - goto done; - } - } else - count = 1; - } - dst[i] = ch; - count--; - } - } - - if(src_bits <= 4) { - /* expand planes to 1 byte/pixel */ - Uint8 *innerSrc = buf; - int plane; - for(plane = 0; plane < pcxh.NPlanes; plane++) { - int j, k, x = 0; - for(j = 0; j < pcxh.BytesPerLine; j++) { - Uint8 byte = *innerSrc++; - for(k = 7; k >= 0; k--) { - unsigned bit = (byte >> k) & 1; - /* skip padding bits */ - if (j * 8 + k >= width) - continue; - row[x++] |= bit << plane; - } - } - } - } else if(src_bits == 24) { - /* de-interlace planes */ - Uint8 *innerSrc = buf; - int plane; - for(plane = 0; plane < pcxh.NPlanes; plane++) { - int x; - dst = row + plane; - for(x = 0; x < width; x++) { - *dst = *innerSrc++; - dst += pcxh.NPlanes; - } - } - } - - row += surface->pitch; - } - - if(bits == 8) { - SDL_Color *colors = surface->format->palette->colors; - int nc = 1 << src_bits; - int i; - - surface->format->palette->ncolors = nc; - if(src_bits == 8) { - Uint8 ch; - /* look for a 256-colour palette */ - do { - if ( !SDL_RWread(src, &ch, 1, 1)) { - error = "file truncated"; - goto done; - } - } while ( ch != 12 ); - - for(i = 0; i < 256; i++) { - SDL_RWread(src, &colors[i].r, 1, 1); - SDL_RWread(src, &colors[i].g, 1, 1); - SDL_RWread(src, &colors[i].b, 1, 1); - } - } else { - for(i = 0; i < nc; i++) { - colors[i].r = pcxh.Colormap[i * 3]; - colors[i].g = pcxh.Colormap[i * 3 + 1]; - colors[i].b = pcxh.Colormap[i * 3 + 2]; - } - } - } - -done: - SDL_free(buf); - if ( error ) { - SDL_RWseek(src, start, RW_SEEK_SET); - if ( surface ) { - SDL_FreeSurface(surface); - surface = NULL; - } - IMG_SetError("%s", error); - } - return(surface); -} - -#else - -/* See if an image is contained in a data source */ -int IMG_isPCX(SDL_RWops *src) -{ - return(0); -} - -/* Load a PCX type image from an SDL datasource */ -SDL_Surface *IMG_LoadPCX_RW(SDL_RWops *src) -{ - return(NULL); -} - -#endif /* LOAD_PCX */ diff --git a/extension/SDL2_image-2.0.3/IMG_png.c b/extension/SDL2_image-2.0.3/IMG_png.c deleted file mode 100755 index bdd0eda..0000000 --- a/extension/SDL2_image-2.0.3/IMG_png.c +++ /dev/null @@ -1,671 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* This is a PNG image file loading framework */ - -#include "SDL_image.h" - -#if !(defined(__APPLE__) || defined(SDL_IMAGE_USE_WIC_BACKEND)) || defined(SDL_IMAGE_USE_COMMON_BACKEND) - -#ifdef LOAD_PNG - -#define USE_LIBPNG - -/*============================================================================= - File: SDL_png.c - Purpose: A PNG loader and saver for the SDL library - Revision: - Created by: Philippe Lavoie (2 November 1998) - lavoie@zeus.genie.uottawa.ca - Modified by: - - Copyright notice: - Copyright (C) 1998 Philippe Lavoie - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free - Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - Comments: The load and save routine are basically the ones you can find - in the example.c file from the libpng distribution. - - Changes: - 5/17/99 - Modified to use the new SDL data sources - Sam Lantinga - -=============================================================================*/ - -#include "SDL_endian.h" - -#ifdef macintosh -#define MACOS -#endif -#include - -/* Check for the older version of libpng */ -#if (PNG_LIBPNG_VER_MAJOR == 1) -#if (PNG_LIBPNG_VER_MINOR < 5) -#define LIBPNG_VERSION_12 -typedef png_bytep png_const_bytep; -#endif -#if (PNG_LIBPNG_VER_MINOR < 6) -typedef png_structp png_const_structrp; -typedef png_infop png_const_inforp; -typedef png_structp png_structrp; -typedef png_infop png_inforp; -typedef const png_color * png_const_colorp; -#endif -#endif - -static struct { - int loaded; - void *handle; - png_infop (*png_create_info_struct) (png_const_structrp png_ptr); - png_structp (*png_create_read_struct) (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn); - void (*png_destroy_read_struct) (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr); - png_uint_32 (*png_get_IHDR) (png_const_structrp png_ptr, png_const_inforp info_ptr, png_uint_32 *width, png_uint_32 *height, int *bit_depth, int *color_type, int *interlace_method, int *compression_method, int *filter_method); - png_voidp (*png_get_io_ptr) (png_const_structrp png_ptr); - png_byte (*png_get_channels) (png_const_structrp png_ptr, png_const_inforp info_ptr); - png_uint_32 (*png_get_PLTE) (png_const_structrp png_ptr, png_inforp info_ptr, png_colorp *palette, int *num_palette); - png_uint_32 (*png_get_tRNS) (png_const_structrp png_ptr, png_inforp info_ptr, png_bytep *trans, int *num_trans, png_color_16p *trans_values); - png_uint_32 (*png_get_valid) (png_const_structrp png_ptr, png_const_inforp info_ptr, png_uint_32 flag); - void (*png_read_image) (png_structrp png_ptr, png_bytepp image); - void (*png_read_info) (png_structrp png_ptr, png_inforp info_ptr); - void (*png_read_update_info) (png_structrp png_ptr, png_inforp info_ptr); - void (*png_set_expand) (png_structrp png_ptr); - void (*png_set_gray_to_rgb) (png_structrp png_ptr); - void (*png_set_packing) (png_structrp png_ptr); - void (*png_set_read_fn) (png_structrp png_ptr, png_voidp io_ptr, png_rw_ptr read_data_fn); - void (*png_set_strip_16) (png_structrp png_ptr); - int (*png_set_interlace_handling) (png_structrp png_ptr); - int (*png_sig_cmp) (png_const_bytep sig, png_size_t start, png_size_t num_to_check); -#ifndef LIBPNG_VERSION_12 - jmp_buf* (*png_set_longjmp_fn) (png_structrp, png_longjmp_ptr, size_t); -#endif - png_structp (*png_create_write_struct) (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn); - void (*png_destroy_write_struct) (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr); - void (*png_set_write_fn) (png_structrp png_ptr, png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn); - void (*png_set_IHDR) (png_const_structrp png_ptr, png_inforp info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, int interlace_type, int compression_type, int filter_type); - void (*png_write_info) (png_structrp png_ptr, png_const_inforp info_ptr); - void (*png_set_rows) (png_const_structrp png_ptr, png_inforp info_ptr, png_bytepp row_pointers); - void (*png_write_png) (png_structrp png_ptr, png_inforp info_ptr, int transforms, png_voidp params); - void (*png_set_PLTE) (png_structrp png_ptr, png_inforp info_ptr, png_const_colorp palette, int num_palette); -} lib; - -#ifdef LOAD_PNG_DYNAMIC -#define FUNCTION_LOADER(FUNC, SIG) \ - lib.FUNC = (SIG) SDL_LoadFunction(lib.handle, #FUNC); \ - if (lib.FUNC == NULL) { SDL_UnloadObject(lib.handle); return -1; } -#else -#define FUNCTION_LOADER(FUNC, SIG) \ - lib.FUNC = FUNC; -#endif - -int IMG_InitPNG() -{ - if ( lib.loaded == 0 ) { -#ifdef LOAD_PNG_DYNAMIC - lib.handle = SDL_LoadObject(LOAD_PNG_DYNAMIC); - if ( lib.handle == NULL ) { - return -1; - } -#endif - FUNCTION_LOADER(png_create_info_struct, png_infop (*) (png_const_structrp png_ptr)) - FUNCTION_LOADER(png_create_read_struct, png_structp (*) (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn)) - FUNCTION_LOADER(png_destroy_read_struct, void (*) (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)) - FUNCTION_LOADER(png_get_IHDR, png_uint_32 (*) (png_const_structrp png_ptr, png_const_inforp info_ptr, png_uint_32 *width, png_uint_32 *height, int *bit_depth, int *color_type, int *interlace_method, int *compression_method, int *filter_method)) - FUNCTION_LOADER(png_get_io_ptr, png_voidp (*) (png_const_structrp png_ptr)) - FUNCTION_LOADER(png_get_channels, png_byte (*) (png_const_structrp png_ptr, png_const_inforp info_ptr)) - FUNCTION_LOADER(png_get_PLTE, png_uint_32 (*) (png_const_structrp png_ptr, png_inforp info_ptr, png_colorp *palette, int *num_palette)) - FUNCTION_LOADER(png_get_tRNS, png_uint_32 (*) (png_const_structrp png_ptr, png_inforp info_ptr, png_bytep *trans, int *num_trans, png_color_16p *trans_values)) - FUNCTION_LOADER(png_get_valid, png_uint_32 (*) (png_const_structrp png_ptr, png_const_inforp info_ptr, png_uint_32 flag)) - FUNCTION_LOADER(png_read_image, void (*) (png_structrp png_ptr, png_bytepp image)) - FUNCTION_LOADER(png_read_info, void (*) (png_structrp png_ptr, png_inforp info_ptr)) - FUNCTION_LOADER(png_read_update_info, void (*) (png_structrp png_ptr, png_inforp info_ptr)) - FUNCTION_LOADER(png_set_expand, void (*) (png_structrp png_ptr)) - FUNCTION_LOADER(png_set_gray_to_rgb, void (*) (png_structrp png_ptr)) - FUNCTION_LOADER(png_set_packing, void (*) (png_structrp png_ptr)) - FUNCTION_LOADER(png_set_read_fn, void (*) (png_structrp png_ptr, png_voidp io_ptr, png_rw_ptr read_data_fn)) - FUNCTION_LOADER(png_set_strip_16, void (*) (png_structrp png_ptr)) - FUNCTION_LOADER(png_set_interlace_handling, int (*) (png_structrp png_ptr)) - FUNCTION_LOADER(png_sig_cmp, int (*) (png_const_bytep sig, png_size_t start, png_size_t num_to_check)) -#ifndef LIBPNG_VERSION_12 - FUNCTION_LOADER(png_set_longjmp_fn, jmp_buf* (*) (png_structrp, png_longjmp_ptr, size_t)) -#endif - FUNCTION_LOADER(png_create_write_struct, png_structp (*) (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn)) - FUNCTION_LOADER(png_destroy_write_struct, void (*) (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)) - FUNCTION_LOADER(png_set_write_fn, void (*) (png_structrp png_ptr, png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)) - FUNCTION_LOADER(png_set_IHDR, void (*) (png_const_structrp png_ptr, png_inforp info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, int interlace_type, int compression_type, int filter_type)) - FUNCTION_LOADER(png_write_info, void (*) (png_structrp png_ptr, png_const_inforp info_ptr)) - FUNCTION_LOADER(png_set_rows, void (*) (png_const_structrp png_ptr, png_inforp info_ptr, png_bytepp row_pointers)) - FUNCTION_LOADER(png_write_png, void (*) (png_structrp png_ptr, png_inforp info_ptr, int transforms, png_voidp params)) - FUNCTION_LOADER(png_set_PLTE, void (*) (png_structrp png_ptr, png_inforp info_ptr, png_const_colorp palette, int num_palette)) - } - ++lib.loaded; - - return 0; -} -void IMG_QuitPNG() -{ - if ( lib.loaded == 0 ) { - return; - } - if ( lib.loaded == 1 ) { -#ifdef LOAD_PNG_DYNAMIC - SDL_UnloadObject(lib.handle); -#endif - } - --lib.loaded; -} - -/* See if an image is contained in a data source */ -int IMG_isPNG(SDL_RWops *src) -{ - Sint64 start; - int is_PNG; - Uint8 magic[4]; - - if ( !src ) { - return 0; - } - - start = SDL_RWtell(src); - is_PNG = 0; - if ( SDL_RWread(src, magic, 1, sizeof(magic)) == sizeof(magic) ) { - if ( magic[0] == 0x89 && - magic[1] == 'P' && - magic[2] == 'N' && - magic[3] == 'G' ) { - is_PNG = 1; - } - } - SDL_RWseek(src, start, RW_SEEK_SET); - return(is_PNG); -} - -/* Load a PNG type image from an SDL datasource */ -static void png_read_data(png_structp ctx, png_bytep area, png_size_t size) -{ - SDL_RWops *src; - - src = (SDL_RWops *)lib.png_get_io_ptr(ctx); - SDL_RWread(src, area, size, 1); -} -SDL_Surface *IMG_LoadPNG_RW(SDL_RWops *src) -{ - Sint64 start; - const char *error; - SDL_Surface *volatile surface; - png_structp png_ptr; - png_infop info_ptr; - png_uint_32 width, height; - int bit_depth, color_type, interlace_type, num_channels; - Uint32 Rmask; - Uint32 Gmask; - Uint32 Bmask; - Uint32 Amask; - SDL_Palette *palette; - png_bytep *volatile row_pointers; - int row, i; - int ckey = -1; - png_color_16 *transv; - - if ( !src ) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - start = SDL_RWtell(src); - - if ( (IMG_Init(IMG_INIT_PNG) & IMG_INIT_PNG) == 0 ) { - return NULL; - } - - /* Initialize the data we will clean up when we're done */ - error = NULL; - png_ptr = NULL; info_ptr = NULL; row_pointers = NULL; surface = NULL; - - /* Create the PNG loading context structure */ - png_ptr = lib.png_create_read_struct(PNG_LIBPNG_VER_STRING, - NULL,NULL,NULL); - if (png_ptr == NULL){ - error = "Couldn't allocate memory for PNG file or incompatible PNG dll"; - goto done; - } - - /* Allocate/initialize the memory for image information. REQUIRED. */ - info_ptr = lib.png_create_info_struct(png_ptr); - if (info_ptr == NULL) { - error = "Couldn't create image information for PNG file"; - goto done; - } - - /* Set error handling if you are using setjmp/longjmp method (this is - * the normal method of doing things with libpng). REQUIRED unless you - * set up your own error handlers in png_create_read_struct() earlier. - */ -#ifndef LIBPNG_VERSION_12 - if ( setjmp(*lib.png_set_longjmp_fn(png_ptr, longjmp, sizeof (jmp_buf))) ) -#else - if ( setjmp(png_ptr->jmpbuf) ) -#endif - { - error = "Error reading the PNG file."; - goto done; - } - - /* Set up the input control */ - lib.png_set_read_fn(png_ptr, src, png_read_data); - - /* Read PNG header info */ - lib.png_read_info(png_ptr, info_ptr); - lib.png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, - &color_type, &interlace_type, NULL, NULL); - - /* tell libpng to strip 16 bit/color files down to 8 bits/color */ - lib.png_set_strip_16(png_ptr); - - /* tell libpng to de-interlace (if the image is interlaced) */ - lib.png_set_interlace_handling(png_ptr); - - /* Extract multiple pixels with bit depths of 1, 2, and 4 from a single - * byte into separate bytes (useful for paletted and grayscale images). - */ - lib.png_set_packing(png_ptr); - - /* scale greyscale values to the range 0..255 */ - if (color_type == PNG_COLOR_TYPE_GRAY) - lib.png_set_expand(png_ptr); - - /* For images with a single "transparent colour", set colour key; - if more than one index has transparency, or if partially transparent - entries exist, use full alpha channel */ - if (lib.png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) { - int num_trans; - Uint8 *trans; - lib.png_get_tRNS(png_ptr, info_ptr, &trans, &num_trans, &transv); - if (color_type == PNG_COLOR_TYPE_PALETTE) { - /* Check if all tRNS entries are opaque except one */ - int j, t = -1; - for (j = 0; j < num_trans; j++) { - if (trans[j] == 0) { - if (t >= 0) { - break; - } - t = j; - } else if (trans[j] != 255) { - break; - } - } - if (j == num_trans) { - /* exactly one transparent index */ - ckey = t; - } else { - /* more than one transparent index, or translucency */ - lib.png_set_expand(png_ptr); - } - } else { - ckey = 0; /* actual value will be set later */ - } - } - - if ( color_type == PNG_COLOR_TYPE_GRAY_ALPHA ) - lib.png_set_gray_to_rgb(png_ptr); - - lib.png_read_update_info(png_ptr, info_ptr); - - lib.png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, - &color_type, &interlace_type, NULL, NULL); - - /* Allocate the SDL surface to hold the image */ - Rmask = Gmask = Bmask = Amask = 0 ; - num_channels = lib.png_get_channels(png_ptr, info_ptr); - if ( num_channels >= 3 ) { -#if SDL_BYTEORDER == SDL_LIL_ENDIAN - Rmask = 0x000000FF; - Gmask = 0x0000FF00; - Bmask = 0x00FF0000; - Amask = (num_channels == 4) ? 0xFF000000 : 0; -#else - int s = (num_channels == 4) ? 0 : 8; - Rmask = 0xFF000000 >> s; - Gmask = 0x00FF0000 >> s; - Bmask = 0x0000FF00 >> s; - Amask = 0x000000FF >> s; -#endif - } - surface = SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, - bit_depth*num_channels, Rmask,Gmask,Bmask,Amask); - if ( surface == NULL ) { - error = SDL_GetError(); - goto done; - } - - if (ckey != -1) { - if (color_type != PNG_COLOR_TYPE_PALETTE) { - /* FIXME: Should these be truncated or shifted down? */ - ckey = SDL_MapRGB(surface->format, - (Uint8)transv->red, - (Uint8)transv->green, - (Uint8)transv->blue); - } - SDL_SetColorKey(surface, SDL_TRUE, ckey); - } - - /* Create the array of pointers to image data */ - row_pointers = (png_bytep*) SDL_malloc(sizeof(png_bytep)*height); - if (!row_pointers) { - error = "Out of memory"; - goto done; - } - for (row = 0; row < (int)height; row++) { - row_pointers[row] = (png_bytep) - (Uint8 *)surface->pixels + row*surface->pitch; - } - - /* Read the entire image in one go */ - lib.png_read_image(png_ptr, row_pointers); - - /* and we're done! (png_read_end() can be omitted if no processing of - * post-IDAT text/time/etc. is desired) - * In some cases it can't read PNG's created by some popular programs (ACDSEE), - * we do not want to process comments, so we omit png_read_end - - lib.png_read_end(png_ptr, info_ptr); - */ - - /* Load the palette, if any */ - palette = surface->format->palette; - if ( palette ) { - int png_num_palette; - png_colorp png_palette; - lib.png_get_PLTE(png_ptr, info_ptr, &png_palette, &png_num_palette); - if (color_type == PNG_COLOR_TYPE_GRAY) { - palette->ncolors = 256; - for (i = 0; i < 256; i++) { - palette->colors[i].r = (Uint8)i; - palette->colors[i].g = (Uint8)i; - palette->colors[i].b = (Uint8)i; - } - } else if (png_num_palette > 0 ) { - palette->ncolors = png_num_palette; - for ( i=0; icolors[i].b = png_palette[i].blue; - palette->colors[i].g = png_palette[i].green; - palette->colors[i].r = png_palette[i].red; - } - } - } - -done: /* Clean up and return */ - if ( png_ptr ) { - lib.png_destroy_read_struct(&png_ptr, - info_ptr ? &info_ptr : (png_infopp)0, - (png_infopp)0); - } - if ( row_pointers ) { - SDL_free(row_pointers); - } - if ( error ) { - SDL_RWseek(src, start, RW_SEEK_SET); - if ( surface ) { - SDL_FreeSurface(surface); - surface = NULL; - } - IMG_SetError("%s", error); - } - return(surface); -} - -#else - -int IMG_InitPNG() -{ - IMG_SetError("PNG images are not supported"); - return(-1); -} - -void IMG_QuitPNG() -{ -} - -/* See if an image is contained in a data source */ -int IMG_isPNG(SDL_RWops *src) -{ - return(0); -} - -/* Load a PNG type image from an SDL datasource */ -SDL_Surface *IMG_LoadPNG_RW(SDL_RWops *src) -{ - return(NULL); -} - -#endif /* LOAD_PNG */ - -#endif /* !defined(__APPLE__) || defined(SDL_IMAGE_USE_COMMON_BACKEND) */ - -/* We'll always have PNG save support */ -#define SAVE_PNG - -#ifdef SAVE_PNG - -int IMG_SavePNG(SDL_Surface *surface, const char *file) -{ - SDL_RWops *dst = SDL_RWFromFile(file, "wb"); - if (dst) { - return IMG_SavePNG_RW(surface, dst, 1); - } else { - return -1; - } -} - -#if SDL_BYTEORDER == SDL_LIL_ENDIAN -static const Uint32 png_format = SDL_PIXELFORMAT_ABGR8888; -#else -static const Uint32 png_format = SDL_PIXELFORMAT_RGBA8888; -#endif - -#ifdef USE_LIBPNG - -static void png_write_data(png_structp png_ptr, png_bytep src, png_size_t size) -{ - SDL_RWops *dst = (SDL_RWops *)lib.png_get_io_ptr(png_ptr); - SDL_RWwrite(dst, src, size, 1); -} - -static void png_flush_data(png_structp png_ptr) -{ -} - -static int IMG_SavePNG_RW_libpng(SDL_Surface *surface, SDL_RWops *dst, int freedst) -{ - if (dst) { - png_structp png_ptr; - png_infop info_ptr; - png_colorp color_ptr = NULL; - SDL_Surface *source = surface; - SDL_Palette *palette; - int png_color_type = PNG_COLOR_TYPE_RGB_ALPHA; - - png_ptr = lib.png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); - if (png_ptr == NULL) { - SDL_SetError("Couldn't allocate memory for PNG file or incompatible PNG dll"); - return -1; - } - - info_ptr = lib.png_create_info_struct(png_ptr); - if (info_ptr == NULL) { - lib.png_destroy_write_struct(&png_ptr, NULL); - SDL_SetError("Couldn't create image information for PNG file"); - return -1; - } - -#ifndef LIBPNG_VERSION_12 - if (setjmp(*lib.png_set_longjmp_fn(png_ptr, longjmp, sizeof (jmp_buf)))) -#else - if (setjmp(png_ptr->jmpbuf)) -#endif - { - lib.png_destroy_write_struct(&png_ptr, &info_ptr); - SDL_SetError("Error writing the PNG file."); - return -1; - } - - palette = surface->format->palette; - if (palette) { - const int ncolors = palette->ncolors; - int i; - - color_ptr = SDL_malloc(sizeof(png_colorp) * ncolors); - if (color_ptr == NULL) - { - lib.png_destroy_write_struct(&png_ptr, &info_ptr); - SDL_SetError("Couldn't create palette for PNG file"); - return -1; - } - for (i = 0; i < ncolors; i++) { - color_ptr[i].red = palette->colors[i].r; - color_ptr[i].green = palette->colors[i].g; - color_ptr[i].blue = palette->colors[i].b; - } - lib.png_set_PLTE(png_ptr, info_ptr, color_ptr, ncolors); - png_color_type = PNG_COLOR_TYPE_PALETTE; - } - else if (surface->format->format != png_format) { - source = SDL_ConvertSurfaceFormat(surface, png_format, 0); - } - - lib.png_set_write_fn(png_ptr, dst, png_write_data, png_flush_data); - - lib.png_set_IHDR(png_ptr, info_ptr, surface->w, surface->h, - 8, png_color_type, PNG_INTERLACE_NONE, - PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); - - if (source) { - png_bytep *row_pointers; - int row; - - row_pointers = (png_bytep *) SDL_malloc(sizeof(png_bytep) * source->h); - if (!row_pointers) { - lib.png_destroy_write_struct(&png_ptr, &info_ptr); - SDL_SetError("Out of memory"); - return -1; - } - for (row = 0; row < (int)source->h; row++) { - row_pointers[row] = (png_bytep) (Uint8 *) source->pixels + row * source->pitch; - } - - lib.png_set_rows(png_ptr, info_ptr, row_pointers); - lib.png_write_png(png_ptr, info_ptr, PNG_TRANSFORM_IDENTITY, NULL); - - SDL_free(row_pointers); - if (source != surface) { - SDL_FreeSurface(source); - } - } - lib.png_destroy_write_struct(&png_ptr, &info_ptr); - if (color_ptr) { - SDL_free(color_ptr); - } - if (freedst) { - SDL_RWclose(dst); - } - } else { - SDL_SetError("Passed NULL dst"); - return -1; - } - return 0; -} - -#endif /* USE_LIBPNG */ - -/* Replace C runtime functions with SDL C runtime functions for building on Windows */ -#define MINIZ_NO_STDIO -#define MINIZ_NO_TIME -#define MINIZ_SDL_MALLOC -#define MZ_ASSERT(x) SDL_assert(x) -#undef memset -#define memset SDL_memset -#define strlen SDL_strlen - -#include "miniz.h" - -static int IMG_SavePNG_RW_miniz(SDL_Surface *surface, SDL_RWops *dst, int freedst) -{ - int result = -1; - - if (dst) { - size_t size = 0; - void *png = NULL; - - if (surface->format->format == png_format) { - png = tdefl_write_image_to_png_file_in_memory(surface->pixels, surface->w, surface->h, surface->format->BytesPerPixel, surface->pitch, &size); - } else { - SDL_Surface *cvt = SDL_ConvertSurfaceFormat(surface, png_format, 0); - if (cvt) { - png = tdefl_write_image_to_png_file_in_memory(cvt->pixels, cvt->w, cvt->h, cvt->format->BytesPerPixel, cvt->pitch, &size); - SDL_FreeSurface(cvt); - } - } - if (png) { - if (SDL_RWwrite(dst, png, size, 1)) { - result = 0; - } - SDL_free(png); - } else { - SDL_SetError("Failed to convert and save image"); - } - if (freedst) { - SDL_RWclose(dst); - } - } else { - SDL_SetError("Passed NULL dst"); - } - return result; -} - -int IMG_SavePNG_RW(SDL_Surface *surface, SDL_RWops *dst, int freedst) -{ - static int (*rw_func)(SDL_Surface *surface, SDL_RWops *dst, int freedst); - - if (!rw_func) - { -#ifdef USE_LIBPNG - if (IMG_Init(IMG_INIT_PNG)) { - rw_func = IMG_SavePNG_RW_libpng; - } else -#endif - rw_func = IMG_SavePNG_RW_miniz; - } - - return rw_func(surface, dst, freedst); -} - -#endif /* SAVE_PNG */ diff --git a/extension/SDL2_image-2.0.3/IMG_pnm.c b/extension/SDL2_image-2.0.3/IMG_pnm.c deleted file mode 100755 index 0450d9e..0000000 --- a/extension/SDL2_image-2.0.3/IMG_pnm.c +++ /dev/null @@ -1,253 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* - * PNM (portable anymap) image loader: - * - * Supports: PBM, PGM and PPM, ASCII and binary formats - * (PBM and PGM are loaded as 8bpp surfaces) - * Does not support: maximum component value > 255 - */ - -#include "SDL_image.h" - -#ifdef LOAD_PNM - -/* See if an image is contained in a data source */ -int IMG_isPNM(SDL_RWops *src) -{ - Sint64 start; - int is_PNM; - char magic[2]; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_PNM = 0; - if ( SDL_RWread(src, magic, sizeof(magic), 1) ) { - /* - * PNM magic signatures: - * P1 PBM, ascii format - * P2 PGM, ascii format - * P3 PPM, ascii format - * P4 PBM, binary format - * P5 PGM, binary format - * P6 PPM, binary format - * P7 PAM, a general wrapper for PNM data - */ - if ( magic[0] == 'P' && magic[1] >= '1' && magic[1] <= '6' ) { - is_PNM = 1; - } - } - SDL_RWseek(src, start, RW_SEEK_SET); - return(is_PNM); -} - -/* read a non-negative integer from the source. return -1 upon error */ -static int ReadNumber(SDL_RWops *src) -{ - int number; - unsigned char ch; - - /* Initialize return value */ - number = 0; - - /* Skip leading whitespace */ - do { - if ( ! SDL_RWread(src, &ch, 1, 1) ) { - return(0); - } - /* Eat comments as whitespace */ - if ( ch == '#' ) { /* Comment is '#' to end of line */ - do { - if ( ! SDL_RWread(src, &ch, 1, 1) ) { - return -1; - } - } while ( (ch != '\r') && (ch != '\n') ); - } - } while ( SDL_isspace(ch) ); - - /* Add up the number */ - do { - number *= 10; - number += ch-'0'; - - if ( !SDL_RWread(src, &ch, 1, 1) ) { - return -1; - } - } while ( SDL_isdigit(ch) ); - - return(number); -} - -SDL_Surface *IMG_LoadPNM_RW(SDL_RWops *src) -{ - Sint64 start; - SDL_Surface *surface = NULL; - int width, height; - int maxval, y, bpl; - Uint8 *row; - Uint8 *buf = NULL; - char *error = NULL; - Uint8 magic[2]; - int ascii; - enum { PBM, PGM, PPM, PAM } kind; - -#define ERROR(s) do { error = (s); goto done; } while(0) - - if ( !src ) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - start = SDL_RWtell(src); - - SDL_RWread(src, magic, 2, 1); - kind = magic[1] - '1'; - ascii = 1; - if(kind >= 3) { - ascii = 0; - kind -= 3; - } - - width = ReadNumber(src); - height = ReadNumber(src); - if(width <= 0 || height <= 0) - ERROR("Unable to read image width and height"); - - if(kind != PBM) { - maxval = ReadNumber(src); - if(maxval <= 0 || maxval > 255) - ERROR("unsupported PNM format"); - } else - maxval = 255; /* never scale PBMs */ - - /* binary PNM allows just a single character of whitespace after - the last parameter, and we've already consumed it */ - - if(kind == PPM) { - /* 24-bit surface in R,G,B byte order */ - surface = SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, 24, -#if SDL_BYTEORDER == SDL_LIL_ENDIAN - 0x000000ff, 0x0000ff00, 0x00ff0000, -#else - 0x00ff0000, 0x0000ff00, 0x000000ff, -#endif - 0); - } else { - /* load PBM/PGM as 8-bit indexed images */ - surface = SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, 8, - 0, 0, 0, 0); - } - if ( surface == NULL ) - ERROR("Out of memory"); - bpl = width * surface->format->BytesPerPixel; - if(kind == PGM) { - SDL_Color *c = surface->format->palette->colors; - int i; - for(i = 0; i < 256; i++) - c[i].r = c[i].g = c[i].b = i; - surface->format->palette->ncolors = 256; - } else if(kind == PBM) { - /* for some reason PBM has 1=black, 0=white */ - SDL_Color *c = surface->format->palette->colors; - c[0].r = c[0].g = c[0].b = 255; - c[1].r = c[1].g = c[1].b = 0; - surface->format->palette->ncolors = 2; - bpl = (width + 7) >> 3; - buf = (Uint8 *)SDL_malloc(bpl); - if(buf == NULL) - ERROR("Out of memory"); - } - - /* Read the image into the surface */ - row = (Uint8 *)surface->pixels; - for(y = 0; y < height; y++) { - if(ascii) { - int i; - if(kind == PBM) { - for(i = 0; i < width; i++) { - Uint8 ch; - do { - if(!SDL_RWread(src, &ch, - 1, 1)) - ERROR("file truncated"); - ch -= '0'; - } while(ch > 1); - row[i] = ch; - } - } else { - for(i = 0; i < bpl; i++) { - int c; - c = ReadNumber(src); - if(c < 0) - ERROR("file truncated"); - row[i] = c; - } - } - } else { - Uint8 *dst = (kind == PBM) ? buf : row; - if(!SDL_RWread(src, dst, bpl, 1)) - ERROR("file truncated"); - if(kind == PBM) { - /* expand bitmap to 8bpp */ - int i; - for(i = 0; i < width; i++) { - int bit = 7 - (i & 7); - row[i] = (buf[i >> 3] >> bit) & 1; - } - } - } - if(maxval < 255) { - /* scale up to full dynamic range (slow) */ - int i; - for(i = 0; i < bpl; i++) - row[i] = row[i] * 255 / maxval; - } - row += surface->pitch; - } -done: - SDL_free(buf); - if(error) { - SDL_RWseek(src, start, RW_SEEK_SET); - if ( surface ) { - SDL_FreeSurface(surface); - surface = NULL; - } - IMG_SetError("%s", error); - } - return(surface); -} - -#else - -/* See if an image is contained in a data source */ -int IMG_isPNM(SDL_RWops *src) -{ - return(0); -} - -/* Load a PNM type image from an SDL datasource */ -SDL_Surface *IMG_LoadPNM_RW(SDL_RWops *src) -{ - return(NULL); -} - -#endif /* LOAD_PNM */ diff --git a/extension/SDL2_image-2.0.3/IMG_svg.c b/extension/SDL2_image-2.0.3/IMG_svg.c deleted file mode 100755 index aa99841..0000000 --- a/extension/SDL2_image-2.0.3/IMG_svg.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* This is an SVG image file loading framework, based on Nano SVG: - * https://github.com/memononen/nanosvg - */ - -#include "SDL_image.h" - -#ifdef LOAD_SVG - -/* Replace C runtime functions with SDL C runtime functions for building on Windows */ -#define acosf SDL_acosf -#define atan2f SDL_atan2f -#define cosf SDL_cosf -#define ceilf SDL_ceilf -#define fabs SDL_fabs -#define fabsf SDL_fabsf -#define floorf SDL_floorf -#define fmodf SDL_fmodf -#define free SDL_free -#define malloc SDL_malloc -#undef memcpy -#define memcpy SDL_memcpy -#undef memset -#define memset SDL_memset -#define pow SDL_pow -#define qsort SDL_qsort -#define realloc SDL_realloc -#define sinf SDL_sinf -#define sqrt SDL_sqrt -#define sqrtf SDL_sqrtf -#define sscanf SDL_sscanf -#define strchr SDL_strchr -#define strcmp SDL_strcmp -#define strncmp SDL_strncmp -#undef strncpy -#define strncpy SDL_strlcpy -#define strlen SDL_strlen -#define strstr SDL_strstr -#define strtol SDL_strtol -#define strtoll SDL_strtoll -#define tanf SDL_tanf -#ifndef FLT_MAX -#define FLT_MAX 3.402823466e+38F -#endif -#undef HAVE_STDIO_H - -#define NANOSVG_IMPLEMENTATION -#include "nanosvg.h" -#define NANOSVGRAST_IMPLEMENTATION -#include "nanosvgrast.h" - -/* See if an image is contained in a data source */ -int IMG_isSVG(SDL_RWops *src) -{ - Sint64 start; - int is_SVG; - char magic[4096]; - size_t magic_len; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_SVG = 0; - magic_len = SDL_RWread(src, magic, 1, sizeof(magic) - 1); - magic[magic_len] = '\0'; - if ( SDL_strstr(magic, "width * scale), - (int)(image->height * scale), - 32, - 0x000000FF, - 0x0000FF00, - 0x00FF0000, - 0xFF000000); - if ( !surface ) { - nsvgDeleteRasterizer( rasterizer ); - nsvgDelete( image ); - return NULL; - } - - nsvgRasterize(rasterizer, image, 0.0f, 0.0f, scale, (unsigned char *)surface->pixels, surface->w, surface->h, surface->pitch); - nsvgDeleteRasterizer( rasterizer ); - nsvgDelete( image ); - - return surface; -} - -#else - -/* See if an image is contained in a data source */ -int IMG_isSVG(SDL_RWops *src) -{ - return(0); -} - -/* Load a SVG type image from an SDL datasource */ -SDL_Surface *IMG_LoadSVG_RW(SDL_RWops *src) -{ - return(NULL); -} - -#endif /* LOAD_SVG */ diff --git a/extension/SDL2_image-2.0.3/IMG_tga.c b/extension/SDL2_image-2.0.3/IMG_tga.c deleted file mode 100755 index 169f03a..0000000 --- a/extension/SDL2_image-2.0.3/IMG_tga.c +++ /dev/null @@ -1,335 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#if !defined(__APPLE__) || defined(SDL_IMAGE_USE_COMMON_BACKEND) - -/* This is a Targa image file loading framework */ - -#include "SDL_endian.h" - -#include "SDL_image.h" - -#ifdef LOAD_TGA - -/* - * A TGA loader for the SDL library - * Supports: Reading 8, 15, 16, 24 and 32bpp images, with alpha or colourkey, - * uncompressed or RLE encoded. - * - * 2000-06-10 Mattias Engdegård : initial version - * 2000-06-26 Mattias Engdegård : read greyscale TGAs - * 2000-08-09 Mattias Engdegård : alpha inversion removed - */ - -struct TGAheader { - Uint8 infolen; /* length of info field */ - Uint8 has_cmap; /* 1 if image has colormap, 0 otherwise */ - Uint8 type; - - Uint8 cmap_start[2]; /* index of first colormap entry */ - Uint8 cmap_len[2]; /* number of entries in colormap */ - Uint8 cmap_bits; /* bits per colormap entry */ - - Uint8 yorigin[2]; /* image origin (ignored here) */ - Uint8 xorigin[2]; - Uint8 width[2]; /* image size */ - Uint8 height[2]; - Uint8 pixel_bits; /* bits/pixel */ - Uint8 flags; -}; - -enum tga_type { - TGA_TYPE_INDEXED = 1, - TGA_TYPE_RGB = 2, - TGA_TYPE_BW = 3, - TGA_TYPE_RLE_INDEXED = 9, - TGA_TYPE_RLE_RGB = 10, - TGA_TYPE_RLE_BW = 11 -}; - -#define TGA_INTERLEAVE_MASK 0xc0 -#define TGA_INTERLEAVE_NONE 0x00 -#define TGA_INTERLEAVE_2WAY 0x40 -#define TGA_INTERLEAVE_4WAY 0x80 - -#define TGA_ORIGIN_MASK 0x30 -#define TGA_ORIGIN_LEFT 0x00 -#define TGA_ORIGIN_RIGHT 0x10 -#define TGA_ORIGIN_LOWER 0x00 -#define TGA_ORIGIN_UPPER 0x20 - -/* read/write unaligned little-endian 16-bit ints */ -#define LE16(p) ((p)[0] + ((p)[1] << 8)) -#define SETLE16(p, v) ((p)[0] = (v), (p)[1] = (v) >> 8) - -/* Load a TGA type image from an SDL datasource */ -SDL_Surface *IMG_LoadTGA_RW(SDL_RWops *src) -{ - Sint64 start; - const char *error = NULL; - struct TGAheader hdr; - int rle = 0; - int alpha = 0; - int indexed = 0; - int grey = 0; - int ckey = -1; - int ncols, w, h; - SDL_Surface *img = NULL; - Uint32 rmask, gmask, bmask, amask; - Uint8 *dst; - int i; - int bpp; - int lstep; - Uint32 pixel; - int count, rep; - - if ( !src ) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - start = SDL_RWtell(src); - - if (!SDL_RWread(src, &hdr, sizeof(hdr), 1)) { - error = "Error reading TGA data"; - goto error; - } - ncols = LE16(hdr.cmap_len); - switch(hdr.type) { - case TGA_TYPE_RLE_INDEXED: - rle = 1; - /* fallthrough */ - case TGA_TYPE_INDEXED: - if (!hdr.has_cmap || hdr.pixel_bits != 8 || ncols > 256) - goto unsupported; - indexed = 1; - break; - - case TGA_TYPE_RLE_RGB: - rle = 1; - /* fallthrough */ - case TGA_TYPE_RGB: - indexed = 0; - break; - - case TGA_TYPE_RLE_BW: - rle = 1; - /* fallthrough */ - case TGA_TYPE_BW: - if (hdr.pixel_bits != 8) - goto unsupported; - /* Treat greyscale as 8bpp indexed images */ - indexed = grey = 1; - break; - - default: - goto unsupported; - } - - bpp = (hdr.pixel_bits + 7) >> 3; - rmask = gmask = bmask = amask = 0; - switch(hdr.pixel_bits) { - case 8: - if (!indexed) { - goto unsupported; - } - break; - - case 15: - case 16: - /* 15 and 16bpp both seem to use 5 bits/plane. The extra alpha bit - is ignored for now. */ - rmask = 0x7c00; - gmask = 0x03e0; - bmask = 0x001f; - break; - - case 32: - alpha = 1; - /* fallthrough */ - case 24: -#if SDL_BYTEORDER == SDL_BIG_ENDIAN - { - int s = alpha ? 0 : 8; - amask = 0x000000ff >> s; - rmask = 0x0000ff00 >> s; - gmask = 0x00ff0000 >> s; - bmask = 0xff000000 >> s; - } -#else - amask = alpha ? 0xff000000 : 0; - rmask = 0x00ff0000; - gmask = 0x0000ff00; - bmask = 0x000000ff; -#endif - break; - - default: - goto unsupported; - } - - if ((hdr.flags & TGA_INTERLEAVE_MASK) != TGA_INTERLEAVE_NONE - || hdr.flags & TGA_ORIGIN_RIGHT) { - goto unsupported; - } - - SDL_RWseek(src, hdr.infolen, RW_SEEK_CUR); /* skip info field */ - - w = LE16(hdr.width); - h = LE16(hdr.height); - img = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, - bpp * 8, - rmask, gmask, bmask, amask); - if (img == NULL) { - error = "Out of memory"; - goto error; - } - - if (hdr.has_cmap) { - int palsiz = ncols * ((hdr.cmap_bits + 7) >> 3); - if (indexed && !grey) { - Uint8 *pal = (Uint8 *)SDL_malloc(palsiz), *p = pal; - SDL_Color *colors = img->format->palette->colors; - img->format->palette->ncolors = ncols; - SDL_RWread(src, pal, palsiz, 1); - for(i = 0; i < ncols; i++) { - switch(hdr.cmap_bits) { - case 15: - case 16: - { - Uint16 c = p[0] + (p[1] << 8); - p += 2; - colors[i].r = (c >> 7) & 0xf8; - colors[i].g = (c >> 2) & 0xf8; - colors[i].b = c << 3; - } - break; - case 24: - case 32: - colors[i].b = *p++; - colors[i].g = *p++; - colors[i].r = *p++; - if (hdr.cmap_bits == 32 && *p++ < 128) - ckey = i; - break; - } - } - SDL_free(pal); - if (ckey >= 0) - SDL_SetColorKey(img, SDL_TRUE, ckey); - } else { - /* skip unneeded colormap */ - SDL_RWseek(src, palsiz, RW_SEEK_CUR); - } - } - - if (grey) { - SDL_Color *colors = img->format->palette->colors; - for(i = 0; i < 256; i++) - colors[i].r = colors[i].g = colors[i].b = i; - img->format->palette->ncolors = 256; - } - - if (hdr.flags & TGA_ORIGIN_UPPER) { - lstep = img->pitch; - dst = (Uint8 *)img->pixels; - } else { - lstep = -img->pitch; - dst = (Uint8 *)img->pixels + (h - 1) * img->pitch; - } - - /* The RLE decoding code is slightly convoluted since we can't rely on - spans not to wrap across scan lines */ - count = rep = 0; - for(i = 0; i < h; i++) { - if (rle) { - int x = 0; - for(;;) { - Uint8 c; - - if (count) { - int n = count; - if (n > w - x) - n = w - x; - SDL_RWread(src, dst + x * bpp, n * bpp, 1); - count -= n; - x += n; - if (x == w) - break; - } else if (rep) { - int n = rep; - if (n > w - x) - n = w - x; - rep -= n; - while (n--) { - SDL_memcpy(dst + x * bpp, &pixel, bpp); - x++; - } - if (x == w) - break; - } - - SDL_RWread(src, &c, 1, 1); - if (c & 0x80) { - SDL_RWread(src, &pixel, bpp, 1); - rep = (c & 0x7f) + 1; - } else { - count = c + 1; - } - } - } else { - SDL_RWread(src, dst, w * bpp, 1); - } -#if SDL_BYTEORDER == SDL_BIG_ENDIAN - if (bpp == 2) { - /* swap byte order */ - int x; - Uint16 *p = (Uint16 *)dst; - for(x = 0; x < w; x++) - p[x] = SDL_Swap16(p[x]); - } -#endif - dst += lstep; - } - return img; - -unsupported: - error = "Unsupported TGA format"; - -error: - SDL_RWseek(src, start, RW_SEEK_SET); - if ( img ) { - SDL_FreeSurface(img); - } - IMG_SetError("%s", error); - return NULL; -} - -#else - -/* dummy TGA load routine */ -SDL_Surface *IMG_LoadTGA_RW(SDL_RWops *src) -{ - return(NULL); -} - -#endif /* LOAD_TGA */ - -#endif /* !defined(__APPLE__) || defined(SDL_IMAGE_USE_COMMON_BACKEND) */ diff --git a/extension/SDL2_image-2.0.3/IMG_tif.c b/extension/SDL2_image-2.0.3/IMG_tif.c deleted file mode 100755 index 5acc670..0000000 --- a/extension/SDL2_image-2.0.3/IMG_tif.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#if !(defined(__APPLE__) || defined(SDL_IMAGE_USE_WIC_BACKEND)) || defined(SDL_IMAGE_USE_COMMON_BACKEND) - -/* This is a TIFF image file loading framework */ - -#include "SDL_image.h" - -#ifdef LOAD_TIF - -#include - -static struct { - int loaded; - void *handle; - TIFF* (*TIFFClientOpen)(const char*, const char*, thandle_t, TIFFReadWriteProc, TIFFReadWriteProc, TIFFSeekProc, TIFFCloseProc, TIFFSizeProc, TIFFMapFileProc, TIFFUnmapFileProc); - void (*TIFFClose)(TIFF*); - int (*TIFFGetField)(TIFF*, ttag_t, ...); - int (*TIFFReadRGBAImageOriented)(TIFF*, uint32, uint32, uint32*, int, int); - TIFFErrorHandler (*TIFFSetErrorHandler)(TIFFErrorHandler); -} lib; - -#ifdef LOAD_TIF_DYNAMIC -#define FUNCTION_LOADER(FUNC, SIG) \ - lib.FUNC = (SIG) SDL_LoadFunction(lib.handle, #FUNC); \ - if (lib.FUNC == NULL) { SDL_UnloadObject(lib.handle); return -1; } -#else -#define FUNCTION_LOADER(FUNC, SIG) \ - lib.FUNC = FUNC; -#endif - -int IMG_InitTIF() -{ - if ( lib.loaded == 0 ) { -#ifdef LOAD_TIF_DYNAMIC - lib.handle = SDL_LoadObject(LOAD_TIF_DYNAMIC); - if ( lib.handle == NULL ) { - return -1; - } -#endif - FUNCTION_LOADER(TIFFClientOpen, TIFF * (*)(const char*, const char*, thandle_t, TIFFReadWriteProc, TIFFReadWriteProc, TIFFSeekProc, TIFFCloseProc, TIFFSizeProc, TIFFMapFileProc, TIFFUnmapFileProc)) - FUNCTION_LOADER(TIFFClose, void (*)(TIFF*)) - FUNCTION_LOADER(TIFFGetField, int (*)(TIFF*, ttag_t, ...)) - FUNCTION_LOADER(TIFFReadRGBAImageOriented, int (*)(TIFF*, uint32, uint32, uint32*, int, int)) - FUNCTION_LOADER(TIFFSetErrorHandler, TIFFErrorHandler (*)(TIFFErrorHandler)) - } - ++lib.loaded; - - return 0; -} -void IMG_QuitTIF() -{ - if ( lib.loaded == 0 ) { - return; - } - if ( lib.loaded == 1 ) { -#ifdef LOAD_TIF_DYNAMIC - SDL_UnloadObject(lib.handle); -#endif - } - --lib.loaded; -} - -/* - * These are the thunking routine to use the SDL_RWops* routines from - * libtiff's internals. -*/ - -static tsize_t tiff_read(thandle_t fd, tdata_t buf, tsize_t size) -{ - return (tsize_t)SDL_RWread((SDL_RWops*)fd, buf, 1, size); -} - -static toff_t tiff_seek(thandle_t fd, toff_t offset, int origin) -{ - return SDL_RWseek((SDL_RWops*)fd, offset, origin); -} - -static tsize_t tiff_write(thandle_t fd, tdata_t buf, tsize_t size) -{ - return (tsize_t)SDL_RWwrite((SDL_RWops*)fd, buf, 1, size); -} - -static int tiff_close(thandle_t fd) -{ - /* - * We don't want libtiff closing our SDL_RWops*, but if it's not given - * a routine to try, and if the image isn't a TIFF, it'll segfault. - */ - return 0; -} - -static int tiff_map(thandle_t fd, tdata_t* pbase, toff_t* psize) -{ - return (0); -} - -static void tiff_unmap(thandle_t fd, tdata_t base, toff_t size) -{ - return; -} - -static toff_t tiff_size(thandle_t fd) -{ - Sint64 save_pos; - toff_t size; - - save_pos = SDL_RWtell((SDL_RWops*)fd); - SDL_RWseek((SDL_RWops*)fd, 0, RW_SEEK_END); - size = SDL_RWtell((SDL_RWops*)fd); - SDL_RWseek((SDL_RWops*)fd, save_pos, RW_SEEK_SET); - return size; -} - -int IMG_isTIF(SDL_RWops* src) -{ - Sint64 start; - int is_TIF; - Uint8 magic[4]; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_TIF = 0; - if ( SDL_RWread(src, magic, 1, sizeof(magic)) == sizeof(magic) ) { - if ( (magic[0] == 'I' && - magic[1] == 'I' && - magic[2] == 0x2a && - magic[3] == 0x00) || - (magic[0] == 'M' && - magic[1] == 'M' && - magic[2] == 0x00 && - magic[3] == 0x2a) ) { - is_TIF = 1; - } - } - SDL_RWseek(src, start, RW_SEEK_SET); - return(is_TIF); -} - -SDL_Surface* IMG_LoadTIF_RW(SDL_RWops* src) -{ - Sint64 start; - TIFF* tiff = NULL; - SDL_Surface* surface = NULL; - Uint32 img_width, img_height; - Uint32 Rmask, Gmask, Bmask, Amask; - - if ( !src ) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - start = SDL_RWtell(src); - - if ( (IMG_Init(IMG_INIT_TIF) & IMG_INIT_TIF) == 0 ) { - return NULL; - } - - /* turn off memory mapped access with the m flag */ - tiff = lib.TIFFClientOpen("SDL_image", "rm", (thandle_t)src, - tiff_read, tiff_write, tiff_seek, tiff_close, tiff_size, tiff_map, tiff_unmap); - if(!tiff) - goto error; - - /* Retrieve the dimensions of the image from the TIFF tags */ - lib.TIFFGetField(tiff, TIFFTAG_IMAGEWIDTH, &img_width); - lib.TIFFGetField(tiff, TIFFTAG_IMAGELENGTH, &img_height); - - Rmask = 0x000000FF; - Gmask = 0x0000FF00; - Bmask = 0x00FF0000; - Amask = 0xFF000000; - surface = SDL_CreateRGBSurface(SDL_SWSURFACE, img_width, img_height, 32, - Rmask, Gmask, Bmask, Amask); - if(!surface) - goto error; - - if(!lib.TIFFReadRGBAImageOriented(tiff, img_width, img_height, (uint32 *)surface->pixels, ORIENTATION_TOPLEFT, 0)) - goto error; - - lib.TIFFClose(tiff); - - return surface; - -error: - SDL_RWseek(src, start, RW_SEEK_SET); - if (surface) { - SDL_FreeSurface(surface); - } - if (tiff) { - lib.TIFFClose(tiff); - } - return NULL; -} - -#else - -int IMG_InitTIF() -{ - IMG_SetError("TIFF images are not supported"); - return(-1); -} - -void IMG_QuitTIF() -{ -} - -/* See if an image is contained in a data source */ -int IMG_isTIF(SDL_RWops *src) -{ - return(0); -} - -/* Load a TIFF type image from an SDL datasource */ -SDL_Surface *IMG_LoadTIF_RW(SDL_RWops *src) -{ - return(NULL); -} - -#endif /* LOAD_TIF */ - -#endif /* !defined(__APPLE__) || defined(SDL_IMAGE_USE_COMMON_BACKEND) */ diff --git a/extension/SDL2_image-2.0.3/IMG_webp.c b/extension/SDL2_image-2.0.3/IMG_webp.c deleted file mode 100755 index 15ceb73..0000000 --- a/extension/SDL2_image-2.0.3/IMG_webp.c +++ /dev/null @@ -1,276 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* This is a WEBP image file loading framework */ - -#include "SDL_image.h" - -#ifdef LOAD_WEBP - -/*============================================================================= - File: SDL_webp.c - Purpose: A WEBP loader for the SDL library - Revision: - Created by: Michael Bonfils (Murlock) (26 November 2011) - murlock42@gmail.com - -=============================================================================*/ - -#include "SDL_endian.h" - -#ifdef macintosh -#define MACOS -#endif -#include - -static struct { - int loaded; - void *handle; - VP8StatusCode (*WebPGetFeaturesInternal) (const uint8_t *data, size_t data_size, WebPBitstreamFeatures* features, int decoder_abi_version); - uint8_t* (*WebPDecodeRGBInto) (const uint8_t* data, size_t data_size, uint8_t* output_buffer, size_t output_buffer_size, int output_stride); - uint8_t* (*WebPDecodeRGBAInto) (const uint8_t* data, size_t data_size, uint8_t* output_buffer, size_t output_buffer_size, int output_stride); -} lib; - -#ifdef LOAD_WEBP_DYNAMIC -#define FUNCTION_LOADER(FUNC, SIG) \ - lib.FUNC = (SIG) SDL_LoadFunction(lib.handle, #FUNC); \ - if (lib.FUNC == NULL) { SDL_UnloadObject(lib.handle); return -1; } -#else -#define FUNCTION_LOADER(FUNC, SIG) \ - lib.FUNC = FUNC; -#endif - -int IMG_InitWEBP() -{ - if ( lib.loaded == 0 ) { -#ifdef LOAD_WEBP_DYNAMIC - lib.handle = SDL_LoadObject(LOAD_WEBP_DYNAMIC); - if ( lib.handle == NULL ) { - return -1; - } -#endif - FUNCTION_LOADER(WebPGetFeaturesInternal, VP8StatusCode (*) (const uint8_t *data, size_t data_size, WebPBitstreamFeatures* features, int decoder_abi_version)) - FUNCTION_LOADER(WebPDecodeRGBInto, uint8_t * (*) (const uint8_t* data, size_t data_size, uint8_t* output_buffer, size_t output_buffer_size, int output_stride)) - FUNCTION_LOADER(WebPDecodeRGBAInto, uint8_t * (*) (const uint8_t* data, size_t data_size, uint8_t* output_buffer, size_t output_buffer_size, int output_stride)) - } - ++lib.loaded; - - return 0; -} -void IMG_QuitWEBP() -{ - if ( lib.loaded == 0 ) { - return; - } - if ( lib.loaded == 1 ) { -#ifdef LOAD_WEBP_DYNAMIC - SDL_UnloadObject(lib.handle); -#endif - } - --lib.loaded; -} - -static int webp_getinfo( SDL_RWops *src, int *datasize ) { - Sint64 start; - int is_WEBP; - Uint8 magic[20]; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_WEBP = 0; - if ( SDL_RWread(src, magic, 1, sizeof(magic)) == sizeof(magic) ) { - if ( magic[ 0] == 'R' && - magic[ 1] == 'I' && - magic[ 2] == 'F' && - magic[ 3] == 'F' && - magic[ 8] == 'W' && - magic[ 9] == 'E' && - magic[10] == 'B' && - magic[11] == 'P' && - magic[12] == 'V' && - magic[13] == 'P' && - magic[14] == '8' && -#if WEBP_DECODER_ABI_VERSION < 0x0003 /* old versions don't support WEBPVP8X and WEBPVP8L */ - magic[15] == ' ') { -#else - (magic[15] == ' ' || magic[15] == 'X' || magic[15] == 'L')) { -#endif - is_WEBP = 1; - if ( datasize ) { - *datasize = (int)(SDL_RWseek(src, 0, RW_SEEK_END) - start); - } - } - } - SDL_RWseek(src, start, RW_SEEK_SET); - return(is_WEBP); -} - -/* See if an image is contained in a data source */ -int IMG_isWEBP(SDL_RWops *src) -{ - return webp_getinfo( src, NULL ); -} - -SDL_Surface *IMG_LoadWEBP_RW(SDL_RWops *src) -{ - Sint64 start; - const char *error = NULL; - SDL_Surface *volatile surface = NULL; - Uint32 Rmask; - Uint32 Gmask; - Uint32 Bmask; - Uint32 Amask; - WebPBitstreamFeatures features; - int raw_data_size; - uint8_t *raw_data = NULL; - int r; - uint8_t *ret; - - if ( !src ) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - - start = SDL_RWtell(src); - - if ( (IMG_Init(IMG_INIT_WEBP) & IMG_INIT_WEBP) == 0 ) { - goto error; - } - - raw_data_size = -1; - if ( !webp_getinfo( src, &raw_data_size ) ) { - error = "Invalid WEBP"; - goto error; - } - - raw_data = (uint8_t*) SDL_malloc( raw_data_size ); - if ( raw_data == NULL ) { - error = "Failed to allocate enough buffer for WEBP"; - goto error; - } - - r = (int)SDL_RWread(src, raw_data, 1, raw_data_size ); - if ( r != raw_data_size ) { - error = "Failed to read WEBP"; - goto error; - } - -#if 0 - // extract size of picture, not interesting since we don't know about alpha channel - int width = -1, height = -1; - if ( !WebPGetInfo( raw_data, raw_data_size, &width, &height ) ) { - printf("WebPGetInfo has failed\n" ); - return NULL; - } -#endif - - if ( lib.WebPGetFeaturesInternal( raw_data, raw_data_size, &features, WEBP_DECODER_ABI_VERSION ) != VP8_STATUS_OK ) { - error = "WebPGetFeatures has failed"; - goto error; - } - - /* Check if it's ok !*/ -#if SDL_BYTEORDER == SDL_LIL_ENDIAN - Rmask = 0x000000FF; - Gmask = 0x0000FF00; - Bmask = 0x00FF0000; - Amask = (features.has_alpha) ? 0xFF000000 : 0; -#else - { - int s = (features.has_alpha) ? 0 : 8; - Rmask = 0xFF000000 >> s; - Gmask = 0x00FF0000 >> s; - Bmask = 0x0000FF00 >> s; - Amask = 0x000000FF >> s; - } -#endif - - surface = SDL_CreateRGBSurface(SDL_SWSURFACE, - features.width, features.height, - features.has_alpha?32:24, Rmask,Gmask,Bmask,Amask); - - if ( surface == NULL ) { - error = "Failed to allocate SDL_Surface"; - goto error; - } - - if ( features.has_alpha ) { - ret = lib.WebPDecodeRGBAInto( raw_data, raw_data_size, (uint8_t *)surface->pixels, surface->pitch * surface->h, surface->pitch ); - } else { - ret = lib.WebPDecodeRGBInto( raw_data, raw_data_size, (uint8_t *)surface->pixels, surface->pitch * surface->h, surface->pitch ); - } - - if ( !ret ) { - error = "Failed to decode WEBP"; - goto error; - } - - if ( raw_data ) { - SDL_free( raw_data ); - } - - return surface; - - -error: - - if ( raw_data ) { - SDL_free( raw_data ); - } - - if ( surface ) { - SDL_FreeSurface( surface ); - } - - if ( error ) { - IMG_SetError( "%s", error ); - } - - SDL_RWseek(src, start, RW_SEEK_SET); - return(NULL); -} - -#else - -int IMG_InitWEBP() -{ - IMG_SetError("WEBP images are not supported"); - return(-1); -} - -void IMG_QuitWEBP() -{ -} - -/* See if an image is contained in a data source */ -int IMG_isWEBP(SDL_RWops *src) -{ - return(0); -} - -/* Load a WEBP type image from an SDL datasource */ -SDL_Surface *IMG_LoadWEBP_RW(SDL_RWops *src) -{ - return(NULL); -} - -#endif /* LOAD_WEBP */ diff --git a/extension/SDL2_image-2.0.3/IMG_xcf.c b/extension/SDL2_image-2.0.3/IMG_xcf.c deleted file mode 100755 index 3c7ed02..0000000 --- a/extension/SDL2_image-2.0.3/IMG_xcf.c +++ /dev/null @@ -1,892 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* This is a XCF image file loading framework */ - -#include "SDL_endian.h" -#include "SDL_image.h" - -#ifdef LOAD_XCF - -#if DEBUG -static char prop_names [][30] = { - "end", - "colormap", - "active_layer", - "active_channel", - "selection", - "floating_selection", - "opacity", - "mode", - "visible", - "linked", - "preserve_transparency", - "apply_mask", - "edit_mask", - "show_mask", - "show_masked", - "offsets", - "color", - "compression", - "guides", - "resolution", - "tattoo", - "parasites", - "unit", - "paths", - "user_unit" -}; -#endif - - -typedef enum -{ - PROP_END = 0, - PROP_COLORMAP = 1, - PROP_ACTIVE_LAYER = 2, - PROP_ACTIVE_CHANNEL = 3, - PROP_SELECTION = 4, - PROP_FLOATING_SELECTION = 5, - PROP_OPACITY = 6, - PROP_MODE = 7, - PROP_VISIBLE = 8, - PROP_LINKED = 9, - PROP_PRESERVE_TRANSPARENCY = 10, - PROP_APPLY_MASK = 11, - PROP_EDIT_MASK = 12, - PROP_SHOW_MASK = 13, - PROP_SHOW_MASKED = 14, - PROP_OFFSETS = 15, - PROP_COLOR = 16, - PROP_COMPRESSION = 17, - PROP_GUIDES = 18, - PROP_RESOLUTION = 19, - PROP_TATTOO = 20, - PROP_PARASITES = 21, - PROP_UNIT = 22, - PROP_PATHS = 23, - PROP_USER_UNIT = 24 -} xcf_prop_type; - -typedef enum { - COMPR_NONE = 0, - COMPR_RLE = 1, - COMPR_ZLIB = 2, - COMPR_FRACTAL = 3 -} xcf_compr_type; - -typedef enum { - IMAGE_RGB = 0, - IMAGE_GREYSCALE = 1, - IMAGE_INDEXED = 2 -} xcf_image_type; - -typedef struct { - Uint32 id; - Uint32 length; - union { - struct { - Uint32 num; - char * cmap; - } colormap; // 1 - struct { - Uint32 drawable_offset; - } floating_selection; // 5 - Sint32 opacity; - Sint32 mode; - int visible; - int linked; - int preserve_transparency; - int apply_mask; - int show_mask; - struct { - Sint32 x; - Sint32 y; - } offset; - unsigned char color [3]; - Uint8 compression; - struct { - Sint32 x; - Sint32 y; - } resolution; - struct { - char * name; - Uint32 flags; - Uint32 size; - char * data; - } parasite; - } data; -} xcf_prop; - -typedef struct { - char sign [14]; - Uint32 width; - Uint32 height; - Sint32 image_type; - xcf_prop * properties; - - Uint32 * layer_file_offsets; - Uint32 * channel_file_offsets; - - xcf_compr_type compr; - Uint32 cm_num; - unsigned char * cm_map; -} xcf_header; - -typedef struct { - Uint32 width; - Uint32 height; - Sint32 layer_type; - char * name; - xcf_prop * properties; - - Uint32 hierarchy_file_offset; - Uint32 layer_mask_offset; - - Uint32 offset_x; - Uint32 offset_y; - int visible; -} xcf_layer; - -typedef struct { - Uint32 width; - Uint32 height; - char * name; - xcf_prop * properties; - - Uint32 hierarchy_file_offset; - - Uint32 color; - Uint32 opacity; - int selection; - int visible; -} xcf_channel; - -typedef struct { - Uint32 width; - Uint32 height; - Uint32 bpp; - - Uint32 * level_file_offsets; -} xcf_hierarchy; - -typedef struct { - Uint32 width; - Uint32 height; - - Uint32 * tile_file_offsets; -} xcf_level; - -typedef unsigned char * xcf_tile; - -typedef unsigned char * (* load_tile_type) (SDL_RWops *, Uint32, int, int, int); - - -/* See if an image is contained in a data source */ -int IMG_isXCF(SDL_RWops *src) -{ - Sint64 start; - int is_XCF; - char magic[14]; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_XCF = 0; - if ( SDL_RWread(src, magic, sizeof(magic), 1) ) { - if (SDL_strncmp(magic, "gimp xcf ", 9) == 0) { - is_XCF = 1; - } - } - SDL_RWseek(src, start, RW_SEEK_SET); - return(is_XCF); -} - -static char * read_string (SDL_RWops * src) { - Uint32 tmp; - char * data; - - tmp = SDL_ReadBE32 (src); - if (tmp > 0) { - data = (char *) SDL_malloc (sizeof (char) * tmp); - SDL_RWread (src, data, tmp, 1); - } - else { - data = NULL; - } - - return data; -} - - -static Uint32 Swap32 (Uint32 v) { - return - ((v & 0x000000FF) << 16) - | ((v & 0x0000FF00)) - | ((v & 0x00FF0000) >> 16) - | ((v & 0xFF000000)); -} - -static void xcf_read_property (SDL_RWops * src, xcf_prop * prop) { - Uint32 len; - prop->id = SDL_ReadBE32 (src); - prop->length = SDL_ReadBE32 (src); - -#if DEBUG - printf ("%.8X: %s: %d\n", SDL_RWtell (src), prop->id < 25 ? prop_names [prop->id] : "unknown", prop->length); -#endif - - switch (prop->id) { - case PROP_COLORMAP: - prop->data.colormap.num = SDL_ReadBE32 (src); - prop->data.colormap.cmap = (char *) SDL_malloc (sizeof (char) * prop->data.colormap.num * 3); - SDL_RWread (src, prop->data.colormap.cmap, prop->data.colormap.num*3, 1); - break; - - case PROP_OFFSETS: - prop->data.offset.x = SDL_ReadBE32 (src); - prop->data.offset.y = SDL_ReadBE32 (src); - break; - case PROP_OPACITY: - prop->data.opacity = SDL_ReadBE32 (src); - break; - case PROP_COMPRESSION: - case PROP_COLOR: - if (prop->length > sizeof(prop->data)) { - len = sizeof(prop->data); - } else { - len = prop->length; - } - SDL_RWread(src, &prop->data, len, 1); - break; - case PROP_VISIBLE: - prop->data.visible = SDL_ReadBE32 (src); - break; - default: - // SDL_RWread (src, &prop->data, prop->length, 1); - SDL_RWseek (src, prop->length, RW_SEEK_CUR); - } -} - -static void free_xcf_header (xcf_header * h) { - if (h->cm_num) - SDL_free (h->cm_map); - if (h->layer_file_offsets) - SDL_free (h->layer_file_offsets); - SDL_free (h); -} - -static xcf_header * read_xcf_header (SDL_RWops * src) { - xcf_header * h; - xcf_prop prop; - - h = (xcf_header *) SDL_malloc (sizeof (xcf_header)); - if (!h) { - return NULL; - } - SDL_RWread (src, h->sign, 14, 1); - h->width = SDL_ReadBE32 (src); - h->height = SDL_ReadBE32 (src); - h->image_type = SDL_ReadBE32 (src); - - h->properties = NULL; - h->layer_file_offsets = NULL; - h->compr = COMPR_NONE; - h->cm_num = 0; - h->cm_map = NULL; - - // Just read, don't save - do { - xcf_read_property (src, &prop); - if (prop.id == PROP_COMPRESSION) - h->compr = (xcf_compr_type)prop.data.compression; - else if (prop.id == PROP_COLORMAP) { - // unused var: int i; - Uint32 cm_num; - unsigned char *cm_map; - - cm_num = prop.data.colormap.num; - cm_map = (unsigned char *) SDL_realloc(h->cm_map, sizeof (unsigned char) * 3 * cm_num); - if (cm_map) { - h->cm_num = cm_num; - h->cm_map = cm_map; - SDL_memcpy (h->cm_map, prop.data.colormap.cmap, 3*sizeof (char)*h->cm_num); - } - SDL_free (prop.data.colormap.cmap); - - if (!cm_map) { - free_xcf_header(h); - return NULL; - } - } - } while (prop.id != PROP_END); - - return h; -} - -static void free_xcf_layer (xcf_layer * l) { - SDL_free (l->name); - SDL_free (l); -} - -static xcf_layer * read_xcf_layer (SDL_RWops * src) { - xcf_layer * l; - xcf_prop prop; - - l = (xcf_layer *) SDL_malloc (sizeof (xcf_layer)); - l->width = SDL_ReadBE32 (src); - l->height = SDL_ReadBE32 (src); - l->layer_type = SDL_ReadBE32 (src); - - l->name = read_string (src); - - do { - xcf_read_property (src, &prop); - if (prop.id == PROP_OFFSETS) { - l->offset_x = prop.data.offset.x; - l->offset_y = prop.data.offset.y; - } else if (prop.id == PROP_VISIBLE) { - l->visible = prop.data.visible ? 1 : 0; - } - } while (prop.id != PROP_END); - - l->hierarchy_file_offset = SDL_ReadBE32 (src); - l->layer_mask_offset = SDL_ReadBE32 (src); - - return l; -} - -static void free_xcf_channel (xcf_channel * c) { - SDL_free (c->name); - SDL_free (c); -} - -static xcf_channel * read_xcf_channel (SDL_RWops * src) { - xcf_channel * l; - xcf_prop prop; - - l = (xcf_channel *) SDL_malloc (sizeof (xcf_channel)); - l->width = SDL_ReadBE32 (src); - l->height = SDL_ReadBE32 (src); - - l->name = read_string (src); - - l->selection = 0; - do { - xcf_read_property (src, &prop); - switch (prop.id) { - case PROP_OPACITY: - l->opacity = prop.data.opacity << 24; - break; - case PROP_COLOR: - l->color = ((Uint32) prop.data.color[0] << 16) - | ((Uint32) prop.data.color[1] << 8) - | ((Uint32) prop.data.color[2]); - break; - case PROP_SELECTION: - l->selection = 1; - break; - case PROP_VISIBLE: - l->visible = prop.data.visible ? 1 : 0; - break; - default: - ; - } - } while (prop.id != PROP_END); - - l->hierarchy_file_offset = SDL_ReadBE32 (src); - - return l; -} - -static void free_xcf_hierarchy (xcf_hierarchy * h) { - SDL_free (h->level_file_offsets); - SDL_free (h); -} - -static xcf_hierarchy * read_xcf_hierarchy (SDL_RWops * src) { - xcf_hierarchy * h; - int i; - - h = (xcf_hierarchy *) SDL_malloc (sizeof (xcf_hierarchy)); - h->width = SDL_ReadBE32 (src); - h->height = SDL_ReadBE32 (src); - h->bpp = SDL_ReadBE32 (src); - - h->level_file_offsets = NULL; - i = 0; - do { - h->level_file_offsets = (Uint32 *) SDL_realloc (h->level_file_offsets, sizeof (Uint32) * (i+1)); - h->level_file_offsets [i] = SDL_ReadBE32 (src); - } while (h->level_file_offsets [i++]); - - return h; -} - -static void free_xcf_level (xcf_level * l) { - SDL_free (l->tile_file_offsets); - SDL_free (l); -} - -static xcf_level * read_xcf_level (SDL_RWops * src) { - xcf_level * l; - int i; - - l = (xcf_level *) SDL_malloc (sizeof (xcf_level)); - l->width = SDL_ReadBE32 (src); - l->height = SDL_ReadBE32 (src); - - l->tile_file_offsets = NULL; - i = 0; - do { - l->tile_file_offsets = (Uint32 *) SDL_realloc (l->tile_file_offsets, sizeof (Uint32) * (i+1)); - l->tile_file_offsets [i] = SDL_ReadBE32 (src); - } while (l->tile_file_offsets [i++]); - - return l; -} - -static void free_xcf_tile (unsigned char * t) { - SDL_free (t); -} - -static unsigned char * load_xcf_tile_none (SDL_RWops * src, Uint32 len, int bpp, int x, int y) { - unsigned char * load; - - load = (unsigned char *) SDL_malloc (len); // expect this is okay - SDL_RWread (src, load, len, 1); - - return load; -} - -static unsigned char * load_xcf_tile_rle (SDL_RWops * src, Uint32 len, int bpp, int x, int y) { - unsigned char * load, * t, * data, * d; - Uint32 reallen; - int i, size, count, j, length; - unsigned char val; - - if (len == 0) { /* probably bogus data. */ - return NULL; - } - - t = load = (unsigned char *) SDL_malloc (len); - reallen = SDL_RWread (src, t, 1, len); - - data = (unsigned char *) SDL_calloc (1, x*y*bpp); - for (i = 0; i < bpp; i++) { - d = data + i; - size = x*y; - count = 0; - - while (size > 0) { - val = *t++; - - length = val; - if (length >= 128) { - length = 255 - (length - 1); - if (length == 128) { - length = (*t << 8) + t[1]; - t += 2; - } - - if (((size_t) (t - load) + length) >= len) { - break; /* bogus data */ - } else if (length > size) { - break; /* bogus data */ - } - - count += length; - size -= length; - - while (length-- > 0) { - *d = *t++; - d += bpp; - } - } else { - length += 1; - if (length == 128) { - length = (*t << 8) + t[1]; - t += 2; - } - - if (((size_t) (t - load)) >= len) { - break; /* bogus data */ - } else if (length > size) { - break; /* bogus data */ - } - - count += length; - size -= length; - - val = *t++; - - for (j = 0; j < length; j++) { - *d = val; - d += bpp; - } - } - } - - if (size > 0) { - break; /* just drop out, untouched data initialized to zero. */ - } - - } - - SDL_free (load); - return (data); -} - -static Uint32 rgb2grey (Uint32 a) { - Uint8 l; - l = (Uint8)(0.2990 * ((a & 0x00FF0000) >> 16) - + 0.5870 * ((a & 0x0000FF00) >> 8) - + 0.1140 * ((a & 0x000000FF))); - - return (l << 16) | (l << 8) | l; -} - -static void create_channel_surface (SDL_Surface * surf, xcf_image_type itype, Uint32 color, Uint32 opacity) { - Uint32 c = 0; - - switch (itype) { - case IMAGE_RGB: - case IMAGE_INDEXED: - c = opacity | color; - break; - case IMAGE_GREYSCALE: - c = opacity | rgb2grey (color); - break; - } - SDL_FillRect (surf, NULL, c); -} - -static int -do_layer_surface(SDL_Surface * surface, SDL_RWops * src, xcf_header * head, xcf_layer * layer, load_tile_type load_tile) -{ - xcf_hierarchy *hierarchy; - xcf_level *level; - unsigned char *tile; - Uint8 *p8; - Uint16 *p16; - Uint32 *p; - int i, j; - Uint32 x, y, tx, ty, ox, oy; - Uint32 *row; - - SDL_RWseek(src, layer->hierarchy_file_offset, RW_SEEK_SET); - hierarchy = read_xcf_hierarchy(src); - - if (hierarchy->bpp > 4) { /* unsupported. */ - SDL_Log("Unknown Gimp image bpp (%u)\n", (unsigned int) hierarchy->bpp); - free_xcf_hierarchy(hierarchy); - return 1; - } - - if ((hierarchy->width > 20000) || (hierarchy->height > 20000)) { /* arbitrary limit to avoid integer overflow. */ - SDL_Log("Gimp image too large (%ux%u)\n", (unsigned int) hierarchy->width, (unsigned int) hierarchy->height); - free_xcf_hierarchy(hierarchy); - return 1; - } - - level = NULL; - for (i = 0; hierarchy->level_file_offsets[i]; i++) { - SDL_RWseek(src, hierarchy->level_file_offsets[i], RW_SEEK_SET); - level = read_xcf_level(src); - - ty = tx = 0; - for (j = 0; level->tile_file_offsets[j]; j++) { - SDL_RWseek(src, level->tile_file_offsets[j], RW_SEEK_SET); - ox = tx + 64 > level->width ? level->width % 64 : 64; - oy = ty + 64 > level->height ? level->height % 64 : 64; - - if (level->tile_file_offsets[j + 1]) { - tile = load_tile(src, level->tile_file_offsets[j + 1] - level->tile_file_offsets[j], hierarchy->bpp, ox, oy); - } else { - tile = load_tile(src, ox * oy * 6, hierarchy->bpp, ox, oy); - } - - if (!tile) { - if (hierarchy) { - free_xcf_hierarchy(hierarchy); - } - if (level) { - free_xcf_level(level); - } - return 1; - } - - p8 = tile; - p16 = (Uint16 *) p8; - p = (Uint32 *) p8; - for (y = ty; y < ty + oy; y++) { - row = (Uint32 *) ((Uint8 *) surface->pixels + y * surface->pitch + tx * 4); - switch (hierarchy->bpp) { - case 4: - for (x = tx; x < tx + ox; x++) - *row++ = Swap32(*p++); - break; - case 3: - for (x = tx; x < tx + ox; x++) { - *row = 0xFF000000; - *row |= ((Uint32)*p8++ << 16); - *row |= ((Uint32)*p8++ << 8); - *row |= ((Uint32)*p8++ << 0); - row++; - } - break; - case 2: - /* Indexed / Greyscale + Alpha */ - switch (head->image_type) { - case IMAGE_INDEXED: - for (x = tx; x < tx + ox; x++) { - *row = ((Uint32)(head->cm_map[*p8 * 3]) << 16); - *row |= ((Uint32)(head->cm_map[*p8 * 3 + 1]) << 8); - *row |= ((Uint32)(head->cm_map[*p8++ * 3 + 2]) << 0); - *row |= ((Uint32)*p8++ << 24); - row++; - } - break; - case IMAGE_GREYSCALE: - for (x = tx; x < tx + ox; x++) { - *row = ((Uint32)*p8 << 16); - *row |= ((Uint32)*p8 << 8); - *row |= ((Uint32)*p8++ << 0); - *row |= ((Uint32)*p8++ << 24); - row++; - } - break; - default: - SDL_Log("Unknown Gimp image type (%d)\n", head->image_type); - if (hierarchy) { - free_xcf_hierarchy(hierarchy); - } - if (level) - free_xcf_level(level); - return 1; - } - break; - case 1: - /* Indexed / Greyscale */ - switch (head->image_type) { - case IMAGE_INDEXED: - for (x = tx; x < tx + ox; x++) { - *row++ = 0xFF000000 - | ((Uint32)(head->cm_map[*p8 * 3]) << 16) - | ((Uint32)(head->cm_map[*p8 * 3 + 1]) << 8) - | ((Uint32)(head->cm_map[*p8 * 3 + 2]) << 0); - p8++; - } - break; - case IMAGE_GREYSCALE: - for (x = tx; x < tx + ox; x++) { - *row++ = 0xFF000000 - | (((Uint32)(*p8)) << 16) - | (((Uint32)(*p8)) << 8) - | (((Uint32)(*p8)) << 0); - ++p8; - } - break; - default: - SDL_Log("Unknown Gimp image type (%d)\n", head->image_type); - if (tile) - free_xcf_tile(tile); - if (level) - free_xcf_level(level); - if (hierarchy) - free_xcf_hierarchy(hierarchy); - return 1; - } - break; - } - } - free_xcf_tile(tile); - - tx += 64; - if (tx >= level->width) { - tx = 0; - ty += 64; - } - if (ty >= level->height) { - break; - } - } - free_xcf_level(level); - } - - free_xcf_hierarchy(hierarchy); - - return 0; -} - -SDL_Surface *IMG_LoadXCF_RW(SDL_RWops *src) -{ - Sint64 start; - const char *error = NULL; - SDL_Surface *surface, *lays; - xcf_header * head; - xcf_layer * layer; - xcf_channel ** channel; - int chnls, i, offsets; - Sint64 offset, fp; - - unsigned char * (* load_tile) (SDL_RWops *, Uint32, int, int, int); - - if (!src) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - start = SDL_RWtell(src); - - /* Initialize the data we will clean up when we're done */ - surface = NULL; - - head = read_xcf_header(src); - if (!head) { - return NULL; - } - - switch (head->compr) { - case COMPR_NONE: - load_tile = load_xcf_tile_none; - break; - case COMPR_RLE: - load_tile = load_xcf_tile_rle; - break; - default: - SDL_Log("Unsupported Compression.\n"); - free_xcf_header (head); - return NULL; - } - - /* Create the surface of the appropriate type */ - surface = SDL_CreateRGBSurface(SDL_SWSURFACE, head->width, head->height, 32, - 0x00FF0000,0x0000FF00,0x000000FF,0xFF000000); - - if ( surface == NULL ) { - error = "Out of memory"; - goto done; - } - - offsets = 0; - - while ((offset = SDL_ReadBE32 (src))) { - head->layer_file_offsets = (Uint32 *) SDL_realloc (head->layer_file_offsets, sizeof (Uint32) * (offsets+1)); - head->layer_file_offsets [offsets] = (Uint32)offset; - offsets++; - } - fp = SDL_RWtell (src); - - lays = SDL_CreateRGBSurface(SDL_SWSURFACE, head->width, head->height, 32, - 0x00FF0000,0x0000FF00,0x000000FF,0xFF000000); - - if ( lays == NULL ) { - error = "Out of memory"; - goto done; - } - - // Blit layers backwards, because Gimp saves them highest first - for (i = offsets; i > 0; i--) { - SDL_Rect rs, rd; - SDL_RWseek (src, head->layer_file_offsets [i-1], RW_SEEK_SET); - - layer = read_xcf_layer (src); - do_layer_surface (lays, src, head, layer, load_tile); - rs.x = 0; - rs.y = 0; - rs.w = layer->width; - rs.h = layer->height; - rd.x = layer->offset_x; - rd.y = layer->offset_y; - rd.w = layer->width; - rd.h = layer->height; - - if (layer->visible) - SDL_BlitSurface (lays, &rs, surface, &rd); - free_xcf_layer (layer); - } - - SDL_FreeSurface (lays); - - SDL_RWseek (src, fp, RW_SEEK_SET); - - // read channels - channel = NULL; - chnls = 0; - while ((offset = SDL_ReadBE32 (src))) { - channel = (xcf_channel **) SDL_realloc (channel, sizeof (xcf_channel *) * (chnls+1)); - fp = SDL_RWtell (src); - SDL_RWseek (src, offset, RW_SEEK_SET); - channel [chnls++] = (read_xcf_channel (src)); - SDL_RWseek (src, fp, RW_SEEK_SET); - } - - if (chnls) { - SDL_Surface * chs; - - chs = SDL_CreateRGBSurface(SDL_SWSURFACE, head->width, head->height, 32, - 0x00FF0000,0x0000FF00,0x000000FF,0xFF000000); - - if (chs == NULL) { - error = "Out of memory"; - goto done; - } - for (i = 0; i < chnls; i++) { - // printf ("CNLBLT %i\n", i); - if (!channel [i]->selection && channel [i]->visible) { - create_channel_surface (chs, (xcf_image_type)head->image_type, channel [i]->color, channel [i]->opacity); - SDL_BlitSurface (chs, NULL, surface, NULL); - } - free_xcf_channel (channel [i]); - } - - SDL_FreeSurface (chs); - } - -done: - free_xcf_header (head); - if ( error ) { - SDL_RWseek(src, start, RW_SEEK_SET); - if ( surface ) { - SDL_FreeSurface(surface); - surface = NULL; - } - IMG_SetError("%s", error); - } - - return(surface); -} - -#else - -/* See if an image is contained in a data source */ -int IMG_isXCF(SDL_RWops *src) -{ - return(0); -} - -/* Load a XCF type image from an SDL datasource */ -SDL_Surface *IMG_LoadXCF_RW(SDL_RWops *src) -{ - return(NULL); -} - -#endif /* LOAD_XCF */ diff --git a/extension/SDL2_image-2.0.3/IMG_xpm.c b/extension/SDL2_image-2.0.3/IMG_xpm.c deleted file mode 100755 index bfba7c0..0000000 --- a/extension/SDL2_image-2.0.3/IMG_xpm.c +++ /dev/null @@ -1,1190 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* - * XPM (X PixMap) image loader: - * - * Supports the XPMv3 format, EXCEPT: - * - hotspot coordinates are ignored - * - only colour ('c') colour symbols are used - * - rgb.txt is not used (for portability), so only RGB colours - * are recognized (#rrggbb etc) - only a few basic colour names are - * handled - * - * The result is an 8bpp indexed surface if possible, otherwise 32bpp. - * The colourkey is correctly set if transparency is used. - * - * Besides the standard API, also provides - * - * SDL_Surface *IMG_ReadXPMFromArray(char **xpm) - * - * that reads the image data from an XPM file included in the C source. - * - * TODO: include rgb.txt here. The full table (from solaris 2.6) only - * requires about 13K in binary form. - */ - -#include "SDL_image.h" - -#ifdef LOAD_XPM - -/* See if an image is contained in a data source */ -int IMG_isXPM(SDL_RWops *src) -{ - Sint64 start; - int is_XPM; - char magic[9]; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_XPM = 0; - if ( SDL_RWread(src, magic, sizeof(magic), 1) ) { - if ( SDL_memcmp(magic, "/* XPM */", sizeof(magic)) == 0 ) { - is_XPM = 1; - } - } - SDL_RWseek(src, start, RW_SEEK_SET); - return(is_XPM); -} - -/* Hash table to look up colors from pixel strings */ -#define STARTING_HASH_SIZE 256 - -struct hash_entry { - char *key; - Uint32 color; - struct hash_entry *next; -}; - -struct color_hash { - struct hash_entry **table; - struct hash_entry *entries; /* array of all entries */ - struct hash_entry *next_free; - int size; - int maxnum; -}; - -static int hash_key(const char *key, int cpp, int size) -{ - int hash; - - hash = 0; - while ( cpp-- > 0 ) { - hash = hash * 33 + *key++; - } - return hash & (size - 1); -} - -static struct color_hash *create_colorhash(int maxnum) -{ - int bytes, s; - struct color_hash *hash; - - /* we know how many entries we need, so we can allocate - everything here */ - hash = (struct color_hash *)SDL_malloc(sizeof *hash); - if (!hash) - return NULL; - - /* use power-of-2 sized hash table for decoding speed */ - for (s = STARTING_HASH_SIZE; s < maxnum; s <<= 1) - ; - hash->size = s; - hash->maxnum = maxnum; - bytes = hash->size * sizeof(struct hash_entry **); - hash->entries = NULL; /* in case malloc fails */ - hash->table = (struct hash_entry **)SDL_malloc(bytes); - if (!hash->table) { - SDL_free(hash); - return NULL; - } - SDL_memset(hash->table, 0, bytes); - hash->entries = (struct hash_entry *)SDL_malloc(maxnum * sizeof(struct hash_entry)); - if (!hash->entries) { - SDL_free(hash->table); - SDL_free(hash); - return NULL; - } - hash->next_free = hash->entries; - return hash; -} - -static int add_colorhash(struct color_hash *hash, - char *key, int cpp, Uint32 color) -{ - int index = hash_key(key, cpp, hash->size); - struct hash_entry *e = hash->next_free++; - e->color = color; - e->key = key; - e->next = hash->table[index]; - hash->table[index] = e; - return 1; -} - -/* fast lookup that works if cpp == 1 */ -#define QUICK_COLORHASH(hash, key) ((hash)->table[*(Uint8 *)(key)]->color) - -static Uint32 get_colorhash(struct color_hash *hash, const char *key, int cpp) -{ - struct hash_entry *entry = hash->table[hash_key(key, cpp, hash->size)]; - while (entry) { - if (SDL_memcmp(key, entry->key, cpp) == 0) - return entry->color; - entry = entry->next; - } - return 0; /* garbage in - garbage out */ -} - -static void free_colorhash(struct color_hash *hash) -{ - if (hash) { - if (hash->table) - SDL_free(hash->table); - if (hash->entries) - SDL_free(hash->entries); - SDL_free(hash); - } -} - -/* - * convert colour spec to RGB (in 0xrrggbb format). - * return 1 if successful. - */ -static int color_to_rgb(char *spec, int speclen, Uint32 *rgb) -{ - /* poor man's rgb.txt */ - static struct { char *name; Uint32 rgb; } known[] = { - { "none", 0xFFFFFFFF }, - { "black", 0x000000 }, - { "white", 0xFFFFFF }, - { "red", 0xFF0000 }, - { "green", 0x00FF00 }, - { "blue", 0x0000FF }, -/* This table increases the size of the library by 40K, so it's disabled by default */ -#ifdef EXTENDED_XPM_COLORS - { "aliceblue", 0xf0f8ff }, - { "antiquewhite", 0xfaebd7 }, - { "antiquewhite1", 0xffefdb }, - { "antiquewhite2", 0xeedfcc }, - { "antiquewhite3", 0xcdc0b0 }, - { "antiquewhite4", 0x8b8378 }, - { "aqua", 0x00ffff }, - { "aquamarine", 0x7fffd4 }, - { "aquamarine1", 0x7fffd4 }, - { "aquamarine2", 0x76eec6 }, - { "aquamarine3", 0x66cdaa }, - { "aquamarine4", 0x458b74 }, - { "azure", 0xf0ffff }, - { "azure1", 0xf0ffff }, - { "azure2", 0xe0eeee }, - { "azure3", 0xc1cdcd }, - { "azure4", 0x838b8b }, - { "beige", 0xf5f5dc }, - { "bisque", 0xffe4c4 }, - { "bisque1", 0xffe4c4 }, - { "bisque2", 0xeed5b7 }, - { "bisque3", 0xcdb79e }, - { "bisque4", 0x8b7d6b }, - { "black", 0x000000 }, - { "blanchedalmond", 0xffebcd }, - { "blue", 0x0000ff }, - { "blue1", 0x0000ff }, - { "blue2", 0x0000ee }, - { "blue3", 0x0000cd }, - { "blue4", 0x00008B }, - { "blueviolet", 0x8a2be2 }, - { "brown", 0xA52A2A }, - { "brown1", 0xFF4040 }, - { "brown2", 0xEE3B3B }, - { "brown3", 0xCD3333 }, - { "brown4", 0x8B2323 }, - { "burlywood", 0xDEB887 }, - { "burlywood1", 0xFFD39B }, - { "burlywood2", 0xEEC591 }, - { "burlywood3", 0xCDAA7D }, - { "burlywood4", 0x8B7355 }, - { "cadetblue", 0x5F9EA0 }, - { "cadetblue", 0x5f9ea0 }, - { "cadetblue1", 0x98f5ff }, - { "cadetblue2", 0x8ee5ee }, - { "cadetblue3", 0x7ac5cd }, - { "cadetblue4", 0x53868b }, - { "chartreuse", 0x7FFF00 }, - { "chartreuse1", 0x7FFF00 }, - { "chartreuse2", 0x76EE00 }, - { "chartreuse3", 0x66CD00 }, - { "chartreuse4", 0x458B00 }, - { "chocolate", 0xD2691E }, - { "chocolate1", 0xFF7F24 }, - { "chocolate2", 0xEE7621 }, - { "chocolate3", 0xCD661D }, - { "chocolate4", 0x8B4513 }, - { "coral", 0xFF7F50 }, - { "coral1", 0xFF7256 }, - { "coral2", 0xEE6A50 }, - { "coral3", 0xCD5B45 }, - { "coral4", 0x8B3E2F }, - { "cornflowerblue", 0x6495ed }, - { "cornsilk", 0xFFF8DC }, - { "cornsilk1", 0xFFF8DC }, - { "cornsilk2", 0xEEE8CD }, - { "cornsilk3", 0xCDC8B1 }, - { "cornsilk4", 0x8B8878 }, - { "crimson", 0xDC143C }, - { "cyan", 0x00FFFF }, - { "cyan1", 0x00FFFF }, - { "cyan2", 0x00EEEE }, - { "cyan3", 0x00CDCD }, - { "cyan4", 0x008B8B }, - { "darkblue", 0x00008b }, - { "darkcyan", 0x008b8b }, - { "darkgoldenrod", 0xb8860b }, - { "darkgoldenrod1", 0xffb90f }, - { "darkgoldenrod2", 0xeead0e }, - { "darkgoldenrod3", 0xcd950c }, - { "darkgoldenrod4", 0x8b6508 }, - { "darkgray", 0xa9a9a9 }, - { "darkgreen", 0x006400 }, - { "darkgrey", 0xa9a9a9 }, - { "darkkhaki", 0xbdb76b }, - { "darkmagenta", 0x8b008b }, - { "darkolivegreen", 0x556b2f }, - { "darkolivegreen1", 0xcaff70 }, - { "darkolivegreen2", 0xbcee68 }, - { "darkolivegreen3", 0xa2cd5a }, - { "darkolivegreen4", 0x6e8b3d }, - { "darkorange", 0xff8c00 }, - { "darkorange1", 0xff7f00 }, - { "darkorange2", 0xee7600 }, - { "darkorange3", 0xcd6600 }, - { "darkorange4", 0x8b4500 }, - { "darkorchid", 0x9932cc }, - { "darkorchid1", 0xbf3eff }, - { "darkorchid2", 0xb23aee }, - { "darkorchid3", 0x9a32cd }, - { "darkorchid4", 0x68228b }, - { "darkred", 0x8b0000 }, - { "darksalmon", 0xe9967a }, - { "darkseagreen", 0x8fbc8f }, - { "darkseagreen1", 0xc1ffc1 }, - { "darkseagreen2", 0xb4eeb4 }, - { "darkseagreen3", 0x9bcd9b }, - { "darkseagreen4", 0x698b69 }, - { "darkslateblue", 0x483d8b }, - { "darkslategray", 0x2f4f4f }, - { "darkslategray1", 0x97ffff }, - { "darkslategray2", 0x8deeee }, - { "darkslategray3", 0x79cdcd }, - { "darkslategray4", 0x528b8b }, - { "darkslategrey", 0x2f4f4f }, - { "darkturquoise", 0x00ced1 }, - { "darkviolet", 0x9400D3 }, - { "darkviolet", 0x9400d3 }, - { "deeppink", 0xff1493 }, - { "deeppink1", 0xff1493 }, - { "deeppink2", 0xee1289 }, - { "deeppink3", 0xcd1076 }, - { "deeppink4", 0x8b0a50 }, - { "deepskyblue", 0x00bfff }, - { "deepskyblue1", 0x00bfff }, - { "deepskyblue2", 0x00b2ee }, - { "deepskyblue3", 0x009acd }, - { "deepskyblue4", 0x00688b }, - { "dimgray", 0x696969 }, - { "dimgrey", 0x696969 }, - { "dodgerblue", 0x1e90ff }, - { "dodgerblue1", 0x1e90ff }, - { "dodgerblue2", 0x1c86ee }, - { "dodgerblue3", 0x1874cd }, - { "dodgerblue4", 0x104e8b }, - { "firebrick", 0xB22222 }, - { "firebrick1", 0xFF3030 }, - { "firebrick2", 0xEE2C2C }, - { "firebrick3", 0xCD2626 }, - { "firebrick4", 0x8B1A1A }, - { "floralwhite", 0xfffaf0 }, - { "forestgreen", 0x228b22 }, - { "fractal", 0x808080 }, - { "fuchsia", 0xFF00FF }, - { "gainsboro", 0xDCDCDC }, - { "ghostwhite", 0xf8f8ff }, - { "gold", 0xFFD700 }, - { "gold1", 0xFFD700 }, - { "gold2", 0xEEC900 }, - { "gold3", 0xCDAD00 }, - { "gold4", 0x8B7500 }, - { "goldenrod", 0xDAA520 }, - { "goldenrod1", 0xFFC125 }, - { "goldenrod2", 0xEEB422 }, - { "goldenrod3", 0xCD9B1D }, - { "goldenrod4", 0x8B6914 }, - { "gray", 0x7E7E7E }, - { "gray", 0xBEBEBE }, - { "gray0", 0x000000 }, - { "gray1", 0x030303 }, - { "gray10", 0x1A1A1A }, - { "gray100", 0xFFFFFF }, - { "gray11", 0x1C1C1C }, - { "gray12", 0x1F1F1F }, - { "gray13", 0x212121 }, - { "gray14", 0x242424 }, - { "gray15", 0x262626 }, - { "gray16", 0x292929 }, - { "gray17", 0x2B2B2B }, - { "gray18", 0x2E2E2E }, - { "gray19", 0x303030 }, - { "gray2", 0x050505 }, - { "gray20", 0x333333 }, - { "gray21", 0x363636 }, - { "gray22", 0x383838 }, - { "gray23", 0x3B3B3B }, - { "gray24", 0x3D3D3D }, - { "gray25", 0x404040 }, - { "gray26", 0x424242 }, - { "gray27", 0x454545 }, - { "gray28", 0x474747 }, - { "gray29", 0x4A4A4A }, - { "gray3", 0x080808 }, - { "gray30", 0x4D4D4D }, - { "gray31", 0x4F4F4F }, - { "gray32", 0x525252 }, - { "gray33", 0x545454 }, - { "gray34", 0x575757 }, - { "gray35", 0x595959 }, - { "gray36", 0x5C5C5C }, - { "gray37", 0x5E5E5E }, - { "gray38", 0x616161 }, - { "gray39", 0x636363 }, - { "gray4", 0x0A0A0A }, - { "gray40", 0x666666 }, - { "gray41", 0x696969 }, - { "gray42", 0x6B6B6B }, - { "gray43", 0x6E6E6E }, - { "gray44", 0x707070 }, - { "gray45", 0x737373 }, - { "gray46", 0x757575 }, - { "gray47", 0x787878 }, - { "gray48", 0x7A7A7A }, - { "gray49", 0x7D7D7D }, - { "gray5", 0x0D0D0D }, - { "gray50", 0x7F7F7F }, - { "gray51", 0x828282 }, - { "gray52", 0x858585 }, - { "gray53", 0x878787 }, - { "gray54", 0x8A8A8A }, - { "gray55", 0x8C8C8C }, - { "gray56", 0x8F8F8F }, - { "gray57", 0x919191 }, - { "gray58", 0x949494 }, - { "gray59", 0x969696 }, - { "gray6", 0x0F0F0F }, - { "gray60", 0x999999 }, - { "gray61", 0x9C9C9C }, - { "gray62", 0x9E9E9E }, - { "gray63", 0xA1A1A1 }, - { "gray64", 0xA3A3A3 }, - { "gray65", 0xA6A6A6 }, - { "gray66", 0xA8A8A8 }, - { "gray67", 0xABABAB }, - { "gray68", 0xADADAD }, - { "gray69", 0xB0B0B0 }, - { "gray7", 0x121212 }, - { "gray70", 0xB3B3B3 }, - { "gray71", 0xB5B5B5 }, - { "gray72", 0xB8B8B8 }, - { "gray73", 0xBABABA }, - { "gray74", 0xBDBDBD }, - { "gray75", 0xBFBFBF }, - { "gray76", 0xC2C2C2 }, - { "gray77", 0xC4C4C4 }, - { "gray78", 0xC7C7C7 }, - { "gray79", 0xC9C9C9 }, - { "gray8", 0x141414 }, - { "gray80", 0xCCCCCC }, - { "gray81", 0xCFCFCF }, - { "gray82", 0xD1D1D1 }, - { "gray83", 0xD4D4D4 }, - { "gray84", 0xD6D6D6 }, - { "gray85", 0xD9D9D9 }, - { "gray86", 0xDBDBDB }, - { "gray87", 0xDEDEDE }, - { "gray88", 0xE0E0E0 }, - { "gray89", 0xE3E3E3 }, - { "gray9", 0x171717 }, - { "gray90", 0xE5E5E5 }, - { "gray91", 0xE8E8E8 }, - { "gray92", 0xEBEBEB }, - { "gray93", 0xEDEDED }, - { "gray94", 0xF0F0F0 }, - { "gray95", 0xF2F2F2 }, - { "gray96", 0xF5F5F5 }, - { "gray97", 0xF7F7F7 }, - { "gray98", 0xFAFAFA }, - { "gray99", 0xFCFCFC }, - { "green", 0x008000 }, - { "green", 0x00FF00 }, - { "green1", 0x00FF00 }, - { "green2", 0x00EE00 }, - { "green3", 0x00CD00 }, - { "green4", 0x008B00 }, - { "greenyellow", 0xadff2f }, - { "grey", 0xBEBEBE }, - { "grey0", 0x000000 }, - { "grey1", 0x030303 }, - { "grey10", 0x1A1A1A }, - { "grey100", 0xFFFFFF }, - { "grey11", 0x1C1C1C }, - { "grey12", 0x1F1F1F }, - { "grey13", 0x212121 }, - { "grey14", 0x242424 }, - { "grey15", 0x262626 }, - { "grey16", 0x292929 }, - { "grey17", 0x2B2B2B }, - { "grey18", 0x2E2E2E }, - { "grey19", 0x303030 }, - { "grey2", 0x050505 }, - { "grey20", 0x333333 }, - { "grey21", 0x363636 }, - { "grey22", 0x383838 }, - { "grey23", 0x3B3B3B }, - { "grey24", 0x3D3D3D }, - { "grey25", 0x404040 }, - { "grey26", 0x424242 }, - { "grey27", 0x454545 }, - { "grey28", 0x474747 }, - { "grey29", 0x4A4A4A }, - { "grey3", 0x080808 }, - { "grey30", 0x4D4D4D }, - { "grey31", 0x4F4F4F }, - { "grey32", 0x525252 }, - { "grey33", 0x545454 }, - { "grey34", 0x575757 }, - { "grey35", 0x595959 }, - { "grey36", 0x5C5C5C }, - { "grey37", 0x5E5E5E }, - { "grey38", 0x616161 }, - { "grey39", 0x636363 }, - { "grey4", 0x0A0A0A }, - { "grey40", 0x666666 }, - { "grey41", 0x696969 }, - { "grey42", 0x6B6B6B }, - { "grey43", 0x6E6E6E }, - { "grey44", 0x707070 }, - { "grey45", 0x737373 }, - { "grey46", 0x757575 }, - { "grey47", 0x787878 }, - { "grey48", 0x7A7A7A }, - { "grey49", 0x7D7D7D }, - { "grey5", 0x0D0D0D }, - { "grey50", 0x7F7F7F }, - { "grey51", 0x828282 }, - { "grey52", 0x858585 }, - { "grey53", 0x878787 }, - { "grey54", 0x8A8A8A }, - { "grey55", 0x8C8C8C }, - { "grey56", 0x8F8F8F }, - { "grey57", 0x919191 }, - { "grey58", 0x949494 }, - { "grey59", 0x969696 }, - { "grey6", 0x0F0F0F }, - { "grey60", 0x999999 }, - { "grey61", 0x9C9C9C }, - { "grey62", 0x9E9E9E }, - { "grey63", 0xA1A1A1 }, - { "grey64", 0xA3A3A3 }, - { "grey65", 0xA6A6A6 }, - { "grey66", 0xA8A8A8 }, - { "grey67", 0xABABAB }, - { "grey68", 0xADADAD }, - { "grey69", 0xB0B0B0 }, - { "grey7", 0x121212 }, - { "grey70", 0xB3B3B3 }, - { "grey71", 0xB5B5B5 }, - { "grey72", 0xB8B8B8 }, - { "grey73", 0xBABABA }, - { "grey74", 0xBDBDBD }, - { "grey75", 0xBFBFBF }, - { "grey76", 0xC2C2C2 }, - { "grey77", 0xC4C4C4 }, - { "grey78", 0xC7C7C7 }, - { "grey79", 0xC9C9C9 }, - { "grey8", 0x141414 }, - { "grey80", 0xCCCCCC }, - { "grey81", 0xCFCFCF }, - { "grey82", 0xD1D1D1 }, - { "grey83", 0xD4D4D4 }, - { "grey84", 0xD6D6D6 }, - { "grey85", 0xD9D9D9 }, - { "grey86", 0xDBDBDB }, - { "grey87", 0xDEDEDE }, - { "grey88", 0xE0E0E0 }, - { "grey89", 0xE3E3E3 }, - { "grey9", 0x171717 }, - { "grey90", 0xE5E5E5 }, - { "grey91", 0xE8E8E8 }, - { "grey92", 0xEBEBEB }, - { "grey93", 0xEDEDED }, - { "grey94", 0xF0F0F0 }, - { "grey95", 0xF2F2F2 }, - { "grey96", 0xF5F5F5 }, - { "grey97", 0xF7F7F7 }, - { "grey98", 0xFAFAFA }, - { "grey99", 0xFCFCFC }, - { "honeydew", 0xF0FFF0 }, - { "honeydew1", 0xF0FFF0 }, - { "honeydew2", 0xE0EEE0 }, - { "honeydew3", 0xC1CDC1 }, - { "honeydew4", 0x838B83 }, - { "hotpink", 0xff69b4 }, - { "hotpink1", 0xff6eb4 }, - { "hotpink2", 0xee6aa7 }, - { "hotpink3", 0xcd6090 }, - { "hotpink4", 0x8b3a62 }, - { "indianred", 0xcd5c5c }, - { "indianred1", 0xff6a6a }, - { "indianred2", 0xee6363 }, - { "indianred3", 0xcd5555 }, - { "indianred4", 0x8b3a3a }, - { "indigo", 0x4B0082 }, - { "ivory", 0xFFFFF0 }, - { "ivory1", 0xFFFFF0 }, - { "ivory2", 0xEEEEE0 }, - { "ivory3", 0xCDCDC1 }, - { "ivory4", 0x8B8B83 }, - { "khaki", 0xF0E68C }, - { "khaki1", 0xFFF68F }, - { "khaki2", 0xEEE685 }, - { "khaki3", 0xCDC673 }, - { "khaki4", 0x8B864E }, - { "lavender", 0xE6E6FA }, - { "lavenderblush", 0xfff0f5 }, - { "lavenderblush1", 0xfff0f5 }, - { "lavenderblush2", 0xeee0e5 }, - { "lavenderblush3", 0xcdc1c5 }, - { "lavenderblush4", 0x8b8386 }, - { "lawngreen", 0x7cfc00 }, - { "lemonchiffon", 0xfffacd }, - { "lemonchiffon1", 0xfffacd }, - { "lemonchiffon2", 0xeee9bf }, - { "lemonchiffon3", 0xcdc9a5 }, - { "lemonchiffon4", 0x8b8970 }, - { "lightblue", 0xadd8e6 }, - { "lightblue1", 0xbfefff }, - { "lightblue2", 0xb2dfee }, - { "lightblue3", 0x9ac0cd }, - { "lightblue4", 0x68838b }, - { "lightcoral", 0xf08080 }, - { "lightcyan", 0xe0ffff }, - { "lightcyan1", 0xe0ffff }, - { "lightcyan2", 0xd1eeee }, - { "lightcyan3", 0xb4cdcd }, - { "lightcyan4", 0x7a8b8b }, - { "lightgoldenrod", 0xeedd82 }, - { "lightgoldenrod1", 0xffec8b }, - { "lightgoldenrod2", 0xeedc82 }, - { "lightgoldenrod3", 0xcdbe70 }, - { "lightgoldenrod4", 0x8b814c }, - { "lightgoldenrodyellow", 0xfafad2 }, - { "lightgray", 0xd3d3d3 }, - { "lightgreen", 0x90ee90 }, - { "lightgrey", 0xd3d3d3 }, - { "lightpink", 0xffb6c1 }, - { "lightpink1", 0xffaeb9 }, - { "lightpink2", 0xeea2ad }, - { "lightpink3", 0xcd8c95 }, - { "lightpink4", 0x8b5f65 }, - { "lightsalmon", 0xffa07a }, - { "lightsalmon1", 0xffa07a }, - { "lightsalmon2", 0xee9572 }, - { "lightsalmon3", 0xcd8162 }, - { "lightsalmon4", 0x8b5742 }, - { "lightseagreen", 0x20b2aa }, - { "lightskyblue", 0x87cefa }, - { "lightskyblue1", 0xb0e2ff }, - { "lightskyblue2", 0xa4d3ee }, - { "lightskyblue3", 0x8db6cd }, - { "lightskyblue4", 0x607b8b }, - { "lightslateblue", 0x8470ff }, - { "lightslategray", 0x778899 }, - { "lightslategrey", 0x778899 }, - { "lightsteelblue", 0xb0c4de }, - { "lightsteelblue1", 0xcae1ff }, - { "lightsteelblue2", 0xbcd2ee }, - { "lightsteelblue3", 0xa2b5cd }, - { "lightsteelblue4", 0x6e7b8b }, - { "lightyellow", 0xffffe0 }, - { "lightyellow1", 0xffffe0 }, - { "lightyellow2", 0xeeeed1 }, - { "lightyellow3", 0xcdcdb4 }, - { "lightyellow4", 0x8b8b7a }, - { "lime", 0x00FF00 }, - { "limegreen", 0x32cd32 }, - { "linen", 0xFAF0E6 }, - { "magenta", 0xFF00FF }, - { "magenta1", 0xFF00FF }, - { "magenta2", 0xEE00EE }, - { "magenta3", 0xCD00CD }, - { "magenta4", 0x8B008B }, - { "maroon", 0x800000 }, - { "maroon", 0xB03060 }, - { "maroon1", 0xFF34B3 }, - { "maroon2", 0xEE30A7 }, - { "maroon3", 0xCD2990 }, - { "maroon4", 0x8B1C62 }, - { "mediumaquamarine", 0x66cdaa }, - { "mediumblue", 0x0000cd }, - { "mediumforestgreen", 0x32814b }, - { "mediumgoldenrod", 0xd1c166 }, - { "mediumorchid", 0xba55d3 }, - { "mediumorchid1", 0xe066ff }, - { "mediumorchid2", 0xd15fee }, - { "mediumorchid3", 0xb452cd }, - { "mediumorchid4", 0x7a378b }, - { "mediumpurple", 0x9370db }, - { "mediumpurple1", 0xab82ff }, - { "mediumpurple2", 0x9f79ee }, - { "mediumpurple3", 0x8968cd }, - { "mediumpurple4", 0x5d478b }, - { "mediumseagreen", 0x3cb371 }, - { "mediumslateblue", 0x7b68ee }, - { "mediumspringgreen", 0x00fa9a }, - { "mediumturquoise", 0x48d1cc }, - { "mediumvioletred", 0xc71585 }, - { "midnightblue", 0x191970 }, - { "mintcream", 0xf5fffa }, - { "mistyrose", 0xffe4e1 }, - { "mistyrose1", 0xffe4e1 }, - { "mistyrose2", 0xeed5d2 }, - { "mistyrose3", 0xcdb7b5 }, - { "mistyrose4", 0x8b7d7b }, - { "moccasin", 0xFFE4B5 }, - { "navajowhite", 0xffdead }, - { "navajowhite1", 0xffdead }, - { "navajowhite2", 0xeecfa1 }, - { "navajowhite3", 0xcdb38b }, - { "navajowhite4", 0x8b795e }, - { "navy", 0x000080 }, - { "navyblue", 0x000080 }, - { "none", 0x0000FF }, - { "oldlace", 0xfdf5e6 }, - { "olive", 0x808000 }, - { "olivedrab", 0x6b8e23 }, - { "olivedrab1", 0xc0ff3e }, - { "olivedrab2", 0xb3ee3a }, - { "olivedrab3", 0x9acd32 }, - { "olivedrab4", 0x698b22 }, - { "opaque", 0x000000 }, - { "orange", 0xFFA500 }, - { "orange1", 0xFFA500 }, - { "orange2", 0xEE9A00 }, - { "orange3", 0xCD8500 }, - { "orange4", 0x8B5A00 }, - { "orangered", 0xff4500 }, - { "orangered1", 0xff4500 }, - { "orangered2", 0xee4000 }, - { "orangered3", 0xcd3700 }, - { "orangered4", 0x8b2500 }, - { "orchid", 0xDA70D6 }, - { "orchid1", 0xFF83FA }, - { "orchid2", 0xEE7AE9 }, - { "orchid3", 0xCD69C9 }, - { "orchid4", 0x8B4789 }, - { "palegoldenrod", 0xeee8aa }, - { "palegreen", 0x98fb98 }, - { "palegreen1", 0x9aff9a }, - { "palegreen2", 0x90ee90 }, - { "palegreen3", 0x7ccd7c }, - { "palegreen4", 0x548b54 }, - { "paleturquoise", 0xafeeee }, - { "paleturquoise1", 0xbbffff }, - { "paleturquoise2", 0xaeeeee }, - { "paleturquoise3", 0x96cdcd }, - { "paleturquoise4", 0x668b8b }, - { "palevioletred", 0xdb7093 }, - { "palevioletred1", 0xff82ab }, - { "palevioletred2", 0xee799f }, - { "palevioletred3", 0xcd6889 }, - { "palevioletred4", 0x8b475d }, - { "papayawhip", 0xffefd5 }, - { "peachpuff", 0xffdab9 }, - { "peachpuff1", 0xffdab9 }, - { "peachpuff2", 0xeecbad }, - { "peachpuff3", 0xcdaf95 }, - { "peachpuff4", 0x8b7765 }, - { "peru", 0xCD853F }, - { "pink", 0xFFC0CB }, - { "pink1", 0xFFB5C5 }, - { "pink2", 0xEEA9B8 }, - { "pink3", 0xCD919E }, - { "pink4", 0x8B636C }, - { "plum", 0xDDA0DD }, - { "plum1", 0xFFBBFF }, - { "plum2", 0xEEAEEE }, - { "plum3", 0xCD96CD }, - { "plum4", 0x8B668B }, - { "powderblue", 0xb0e0e6 }, - { "purple", 0x800080 }, - { "purple", 0xA020F0 }, - { "purple1", 0x9B30FF }, - { "purple2", 0x912CEE }, - { "purple3", 0x7D26CD }, - { "purple4", 0x551A8B }, - { "red", 0xFF0000 }, - { "red1", 0xFF0000 }, - { "red2", 0xEE0000 }, - { "red3", 0xCD0000 }, - { "red4", 0x8B0000 }, - { "rosybrown", 0xbc8f8f }, - { "rosybrown1", 0xffc1c1 }, - { "rosybrown2", 0xeeb4b4 }, - { "rosybrown3", 0xcd9b9b }, - { "rosybrown4", 0x8b6969 }, - { "royalblue", 0x4169e1 }, - { "royalblue1", 0x4876ff }, - { "royalblue2", 0x436eee }, - { "royalblue3", 0x3a5fcd }, - { "royalblue4", 0x27408b }, - { "saddlebrown", 0x8b4513 }, - { "salmon", 0xFA8072 }, - { "salmon1", 0xFF8C69 }, - { "salmon2", 0xEE8262 }, - { "salmon3", 0xCD7054 }, - { "salmon4", 0x8B4C39 }, - { "sandybrown", 0xf4a460 }, - { "seagreen", 0x2e8b57 }, - { "seagreen1", 0x54ff9f }, - { "seagreen2", 0x4eee94 }, - { "seagreen3", 0x43cd80 }, - { "seagreen4", 0x2e8b57 }, - { "seashell", 0xFFF5EE }, - { "seashell1", 0xFFF5EE }, - { "seashell2", 0xEEE5DE }, - { "seashell3", 0xCDC5BF }, - { "seashell4", 0x8B8682 }, - { "sienna", 0xA0522D }, - { "sienna1", 0xFF8247 }, - { "sienna2", 0xEE7942 }, - { "sienna3", 0xCD6839 }, - { "sienna4", 0x8B4726 }, - { "silver", 0xC0C0C0 }, - { "skyblue", 0x87ceeb }, - { "skyblue1", 0x87ceff }, - { "skyblue2", 0x7ec0ee }, - { "skyblue3", 0x6ca6cd }, - { "skyblue4", 0x4a708b }, - { "slateblue", 0x6a5acd }, - { "slateblue1", 0x836fff }, - { "slateblue2", 0x7a67ee }, - { "slateblue3", 0x6959cd }, - { "slateblue4", 0x473c8b }, - { "slategray", 0x708090 }, - { "slategray1", 0xc6e2ff }, - { "slategray2", 0xb9d3ee }, - { "slategray3", 0x9fb6cd }, - { "slategray4", 0x6c7b8b }, - { "slategrey", 0x708090 }, - { "snow", 0xFFFAFA }, - { "snow1", 0xFFFAFA }, - { "snow2", 0xEEE9E9 }, - { "snow3", 0xCDC9C9 }, - { "snow4", 0x8B8989 }, - { "springgreen", 0x00ff7f }, - { "springgreen1", 0x00ff7f }, - { "springgreen2", 0x00ee76 }, - { "springgreen3", 0x00cd66 }, - { "springgreen4", 0x008b45 }, - { "steelblue", 0x4682b4 }, - { "steelblue1", 0x63b8ff }, - { "steelblue2", 0x5cacee }, - { "steelblue3", 0x4f94cd }, - { "steelblue4", 0x36648b }, - { "tan", 0xD2B48C }, - { "tan1", 0xFFA54F }, - { "tan2", 0xEE9A49 }, - { "tan3", 0xCD853F }, - { "tan4", 0x8B5A2B }, - { "teal", 0x008080 }, - { "thistle", 0xD8BFD8 }, - { "thistle1", 0xFFE1FF }, - { "thistle2", 0xEED2EE }, - { "thistle3", 0xCDB5CD }, - { "thistle4", 0x8B7B8B }, - { "tomato", 0xFF6347 }, - { "tomato1", 0xFF6347 }, - { "tomato2", 0xEE5C42 }, - { "tomato3", 0xCD4F39 }, - { "tomato4", 0x8B3626 }, - { "transparent", 0x0000FF }, - { "turquoise", 0x40E0D0 }, - { "turquoise1", 0x00F5FF }, - { "turquoise2", 0x00E5EE }, - { "turquoise3", 0x00C5CD }, - { "turquoise4", 0x00868B }, - { "violet", 0xEE82EE }, - { "violetred", 0xd02090 }, - { "violetred1", 0xff3e96 }, - { "violetred2", 0xee3a8c }, - { "violetred3", 0xcd3278 }, - { "violetred4", 0x8b2252 }, - { "wheat", 0xF5DEB3 }, - { "wheat1", 0xFFE7BA }, - { "wheat2", 0xEED8AE }, - { "wheat3", 0xCDBA96 }, - { "wheat4", 0x8B7E66 }, - { "white", 0xFFFFFF }, - { "whitesmoke", 0xf5f5f5 }, - { "yellow", 0xFFFF00 }, - { "yellow1", 0xFFFF00 }, - { "yellow2", 0xEEEE00 }, - { "yellow3", 0xCDCD00 }, - { "yellow4", 0x8B8B00 }, - { "yellowgreen", 0x9acd32 }, -#endif /* EXTENDED_XPM_COLORS */ - {"none", 0xFFFFFF} - }; - - if (spec[0] == '#') { - char buf[7]; - switch(speclen) { - case 4: - buf[0] = buf[1] = spec[1]; - buf[2] = buf[3] = spec[2]; - buf[4] = buf[5] = spec[3]; - break; - case 7: - SDL_memcpy(buf, spec + 1, 6); - break; - case 13: - buf[0] = spec[1]; - buf[1] = spec[2]; - buf[2] = spec[5]; - buf[3] = spec[6]; - buf[4] = spec[9]; - buf[5] = spec[10]; - break; - } - buf[6] = '\0'; - *rgb = (Uint32)SDL_strtol(buf, NULL, 16); - return 1; - } else { - int i; - for (i = 0; i < SDL_arraysize(known); i++) { - if (SDL_strncasecmp(known[i].name, spec, speclen) == 0) { - *rgb = known[i].rgb; - return 1; - } - } - return 0; - } -} - -#ifndef MAX -#define MAX(a, b) ((a) > (b) ? (a) : (b)) -#endif - -static char *linebuf; -static int buflen; -static char *error; - -/* - * Read next line from the source. - * If len > 0, it's assumed to be at least len chars (for efficiency). - * Return NULL and set error upon EOF or parse error. - */ -static char *get_next_line(char ***lines, SDL_RWops *src, int len) -{ - char *linebufnew; - - if (lines) { - return *(*lines)++; - } else { - char c; - int n; - do { - if (SDL_RWread(src, &c, 1, 1) <= 0) { - error = "Premature end of data"; - return NULL; - } - } while (c != '"'); - if (len) { - len += 4; /* "\",\n\0" */ - if (len > buflen){ - buflen = len; - linebufnew = (char *)SDL_realloc(linebuf, buflen); - if (!linebufnew) { - SDL_free(linebuf); - error = "Out of memory"; - return NULL; - } - linebuf = linebufnew; - } - if (SDL_RWread(src, linebuf, len - 1, 1) <= 0) { - error = "Premature end of data"; - return NULL; - } - n = len - 2; - } else { - n = 0; - do { - if (n >= buflen - 1) { - if (buflen == 0) - buflen = 16; - buflen *= 2; - linebufnew = (char *)SDL_realloc(linebuf, buflen); - if (!linebufnew) { - SDL_free(linebuf); - error = "Out of memory"; - return NULL; - } - linebuf = linebufnew; - } - if (SDL_RWread(src, linebuf + n, 1, 1) <= 0) { - error = "Premature end of data"; - return NULL; - } - } while (linebuf[n++] != '"'); - n--; - } - linebuf[n] = '\0'; - return linebuf; - } -} - -#define SKIPSPACE(p) \ -do { \ - while (SDL_isspace((unsigned char)*(p))) \ - ++(p); \ -} while (0) - -#define SKIPNONSPACE(p) \ -do { \ - while (!SDL_isspace((unsigned char)*(p)) && *p) \ - ++(p); \ -} while (0) - -/* read XPM from either array or RWops */ -static SDL_Surface *load_xpm(char **xpm, SDL_RWops *src) -{ - Sint64 start = 0; - SDL_Surface *image = NULL; - int index; - int x, y; - int w, h, ncolors, cpp; - int indexed; - Uint8 *dst; - struct color_hash *colors = NULL; - SDL_Color *im_colors = NULL; - char *keystrings = NULL, *nextkey; - char *line; - char ***xpmlines = NULL; - int pixels_len; - - error = NULL; - linebuf = NULL; - buflen = 0; - - if (src) - start = SDL_RWtell(src); - - if (xpm) - xpmlines = &xpm; - - line = get_next_line(xpmlines, src, 0); - if (!line) - goto done; - /* - * The header string of an XPMv3 image has the format - * - * [ ] - * - * where the hotspot coords are intended for mouse cursors. - * Right now we don't use the hotspots but it should be handled - * one day. - */ - if (SDL_sscanf(line, "%d %d %d %d", &w, &h, &ncolors, &cpp) != 4 - || w <= 0 || h <= 0 || ncolors <= 0 || cpp <= 0) { - error = "Invalid format description"; - goto done; - } - - keystrings = (char *)SDL_malloc(ncolors * cpp); - if (!keystrings) { - error = "Out of memory"; - goto done; - } - nextkey = keystrings; - - /* Create the new surface */ - if (ncolors <= 256) { - indexed = 1; - image = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, 8, - 0, 0, 0, 0); - im_colors = image->format->palette->colors; - image->format->palette->ncolors = ncolors; - } else { - indexed = 0; - image = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, 32, - 0xff0000, 0x00ff00, 0x0000ff, 0); - } - if (!image) { - /* Hmm, some SDL error (out of memory?) */ - goto done; - } - - /* Read the colors */ - colors = create_colorhash(ncolors); - if (!colors) { - error = "Out of memory"; - goto done; - } - for (index = 0; index < ncolors; ++index ) { - char *p; - line = get_next_line(xpmlines, src, 0); - if (!line) - goto done; - - p = line + cpp + 1; - - /* parse a colour definition */ - for (;;) { - char nametype; - char *colname; - Uint32 rgb, pixel; - - SKIPSPACE(p); - if (!*p) { - error = "colour parse error"; - goto done; - } - nametype = *p; - SKIPNONSPACE(p); - SKIPSPACE(p); - colname = p; - SKIPNONSPACE(p); - if (nametype == 's') - continue; /* skip symbolic colour names */ - - if (!color_to_rgb(colname, (int)(p - colname), &rgb)) - continue; - - SDL_memcpy(nextkey, line, cpp); - if (indexed) { - SDL_Color *c = im_colors + index; - c->r = (Uint8)(rgb >> 16); - c->g = (Uint8)(rgb >> 8); - c->b = (Uint8)(rgb); - pixel = index; - } else - pixel = rgb; - add_colorhash(colors, nextkey, cpp, pixel); - nextkey += cpp; - if (rgb == 0xffffffff) - SDL_SetColorKey(image, SDL_TRUE, pixel); - break; - } - } - - /* Read the pixels */ - pixels_len = w * cpp; - dst = (Uint8 *)image->pixels; - for (y = 0; y < h; y++) { - line = get_next_line(xpmlines, src, pixels_len); - if (!line) - goto done; - - if (indexed) { - /* optimization for some common cases */ - if (cpp == 1) - for (x = 0; x < w; x++) - dst[x] = (Uint8)QUICK_COLORHASH(colors, - line + x); - else - for (x = 0; x < w; x++) - dst[x] = (Uint8)get_colorhash(colors, - line + x * cpp, - cpp); - } else { - for (x = 0; x < w; x++) - ((Uint32*)dst)[x] = get_colorhash(colors, - line + x * cpp, - cpp); - } - dst += image->pitch; - } - -done: - if (error) { - if ( src ) - SDL_RWseek(src, start, RW_SEEK_SET); - if ( image ) { - SDL_FreeSurface(image); - image = NULL; - } - IMG_SetError("%s", error); - } - if (keystrings) - SDL_free(keystrings); - free_colorhash(colors); - if (linebuf) - SDL_free(linebuf); - return(image); -} - -/* Load a XPM type image from an RWops datasource */ -SDL_Surface *IMG_LoadXPM_RW(SDL_RWops *src) -{ - if ( !src ) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - return load_xpm(NULL, src); -} - -SDL_Surface *IMG_ReadXPMFromArray(char **xpm) -{ - if (!xpm) { - IMG_SetError("array is NULL"); - return NULL; - } - return load_xpm(xpm, NULL); -} - -#else /* not LOAD_XPM */ - -/* See if an image is contained in a data source */ -int IMG_isXPM(SDL_RWops *src) -{ - return(0); -} - - -/* Load a XPM type image from an SDL datasource */ -SDL_Surface *IMG_LoadXPM_RW(SDL_RWops *src) -{ - return(NULL); -} - -SDL_Surface *IMG_ReadXPMFromArray(char **xpm) -{ - return NULL; -} -#endif /* not LOAD_XPM */ diff --git a/extension/SDL2_image-2.0.3/IMG_xv.c b/extension/SDL2_image-2.0.3/IMG_xv.c deleted file mode 100755 index b85dab1..0000000 --- a/extension/SDL2_image-2.0.3/IMG_xv.c +++ /dev/null @@ -1,162 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* This is a XV thumbnail image file loading framework */ - -#include "SDL_image.h" - -#ifdef LOAD_XV - -static int get_line(SDL_RWops *src, char *line, int size) -{ - while ( size > 0 ) { - if ( SDL_RWread(src, line, 1, 1) <= 0 ) { - return -1; - } - if ( *line == '\r' ) { - continue; - } - if ( *line == '\n' ) { - *line = '\0'; - return 0; - } - ++line; - --size; - } - /* Out of space for the line */ - return -1; -} - -static int get_header(SDL_RWops *src, int *w, int *h) -{ - char line[1024]; - - *w = 0; - *h = 0; - - /* Check the header magic */ - if ( (get_line(src, line, sizeof(line)) < 0) || - (SDL_memcmp(line, "P7 332", 6) != 0) ) { - return -1; - } - - /* Read the header */ - while ( get_line(src, line, sizeof(line)) == 0 ) { - if ( SDL_memcmp(line, "#BUILTIN:", 9) == 0 ) { - /* Builtin image, no data */ - break; - } - if ( SDL_memcmp(line, "#END_OF_COMMENTS", 16) == 0 ) { - if ( get_line(src, line, sizeof(line)) == 0 ) { - SDL_sscanf(line, "%d %d", w, h); - if ( *w >= 0 && *h >= 0 ) { - return 0; - } - } - break; - } - } - /* No image data */ - return -1; -} - -/* See if an image is contained in a data source */ -int IMG_isXV(SDL_RWops *src) -{ - Sint64 start; - int is_XV; - int w, h; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_XV = 0; - if ( get_header(src, &w, &h) == 0 ) { - is_XV = 1; - } - SDL_RWseek(src, start, RW_SEEK_SET); - return(is_XV); -} - -/* Load a XV thumbnail image from an SDL datasource */ -SDL_Surface *IMG_LoadXV_RW(SDL_RWops *src) -{ - Sint64 start; - const char *error = NULL; - SDL_Surface *surface = NULL; - int w, h; - Uint8 *pixels; - - if ( !src ) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - start = SDL_RWtell(src); - - /* Read the header */ - if ( get_header(src, &w, &h) < 0 ) { - error = "Unsupported image format"; - goto done; - } - - /* Create the 3-3-2 indexed palette surface */ - surface = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, 8, 0xe0, 0x1c, 0x03, 0); - if ( surface == NULL ) { - error = "Out of memory"; - goto done; - } - - /* Load the image data */ - for ( pixels = (Uint8 *)surface->pixels; h > 0; --h ) { - if ( SDL_RWread(src, pixels, w, 1) <= 0 ) { - error = "Couldn't read image data"; - goto done; - } - pixels += surface->pitch; - } - -done: - if ( error ) { - SDL_RWseek(src, start, RW_SEEK_SET); - if ( surface ) { - SDL_FreeSurface(surface); - surface = NULL; - } - IMG_SetError("%s", error); - } - return surface; -} - -#else - -/* See if an image is contained in a data source */ -int IMG_isXV(SDL_RWops *src) -{ - return(0); -} - -/* Load a XXX type image from an SDL datasource */ -SDL_Surface *IMG_LoadXV_RW(SDL_RWops *src) -{ - return(NULL); -} - -#endif /* LOAD_XV */ diff --git a/extension/SDL2_image-2.0.3/IMG_xxx.c b/extension/SDL2_image-2.0.3/IMG_xxx.c deleted file mode 100755 index 6696c53..0000000 --- a/extension/SDL2_image-2.0.3/IMG_xxx.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* This is a generic "format not supported" image framework */ - -#include "SDL_image.h" - -#ifdef LOAD_XXX - -/* See if an image is contained in a data source */ -int IMG_isXXX(SDL_RWops *src) -{ - int start; - int is_XXX; - - if ( !src ) - return 0; - start = SDL_RWtell(src); - is_XXX = 0; - - /* Detect the image here */ - - SDL_RWseek(src, start, RW_SEEK_SET); - return(is_XXX); -} - -/* Load a XXX type image from an SDL datasource */ -SDL_Surface *IMG_LoadXXX_RW(SDL_RWops *src) -{ - int start; - const char *error = NULL; - SDL_Surface *surface = NULL; - - if ( !src ) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - start = SDL_RWtell(src); - - /* Load the image here */ - - if ( error ) { - SDL_RWseek(src, start, RW_SEEK_SET); - if ( surface ) { - SDL_FreeSurface(surface); - surface = NULL; - } - IMG_SetError("%s", error); - } - return surface; -} - -#else - -/* See if an image is contained in a data source */ -int IMG_isXXX(SDL_RWops *src) -{ - return(0); -} - -/* Load a XXX type image from an SDL datasource */ -SDL_Surface *IMG_LoadXXX_RW(SDL_RWops *src) -{ - return(NULL); -} - -#endif /* LOAD_XXX */ diff --git a/extension/SDL2_image-2.0.3/Makefile.am b/extension/SDL2_image-2.0.3/Makefile.am deleted file mode 100755 index b285f17..0000000 --- a/extension/SDL2_image-2.0.3/Makefile.am +++ /dev/null @@ -1,82 +0,0 @@ -# Makefile.am for the SDL sample image loading library and viewer - -lib_LTLIBRARIES = libSDL2_image.la - -libSDL2_imageincludedir = $(includedir)/SDL2 -libSDL2_imageinclude_HEADERS = \ - SDL_image.h - -if USE_IMAGEIO -IMAGEIO_SOURCE = IMG_ImageIO.m -endif - -libSDL2_image_la_SOURCES = \ - IMG.c \ - IMG_bmp.c \ - IMG_gif.c \ - IMG_jpg.c \ - IMG_lbm.c \ - IMG_pcx.c \ - IMG_png.c \ - IMG_pnm.c \ - IMG_svg.c \ - IMG_tga.c \ - IMG_tif.c \ - IMG_xcf.c \ - IMG_xpm.c \ - IMG_xv.c \ - IMG_webp.c \ - IMG_WIC.c \ - $(IMAGEIO_SOURCE) \ - miniz.h \ - nanosvg.h \ - nanosvgrast.h - -EXTRA_DIST = \ - Android.mk \ - debian \ - external \ - version.rc \ - VisualC \ - VisualCE \ - Xcode \ - Xcode-iOS \ - IMG_xxx.c \ - $(srcdir)/*.m \ - SDL2_image.spec \ - gcc-fat.sh \ - autogen.sh \ - $(srcdir)/*.txt - -if USE_VERSION_RC -libSDL2_image_la_LDFLAGS = \ - -no-undefined \ - -release $(LT_RELEASE) \ - -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -Wl,version.o -libSDL2_image_la_LIBADD = $(IMG_LIBS) -libSDL2_image_la_DEPENDENCIES = version.o -else -libSDL2_image_la_LDFLAGS = \ - -no-undefined \ - -release $(LT_RELEASE) \ - -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -libSDL2_image_la_LIBADD = $(IMG_LIBS) -endif - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = SDL2_image.pc - -%.o : %.rc - $(WINDRES) $< $@ - -noinst_PROGRAMS = showimage - -showimage_LDADD = libSDL2_image.la - -# Rule to build tar-gzipped distribution package -$(PACKAGE)-$(VERSION).tar.gz: distcheck - -# Rule to build RPM distribution package -rpm: $(PACKAGE)-$(VERSION).tar.gz - rpmbuild -ta $(PACKAGE)-$(VERSION).tar.gz - diff --git a/extension/SDL2_image-2.0.3/Makefile.in b/extension/SDL2_image-2.0.3/Makefile.in deleted file mode 100755 index d2c4247..0000000 --- a/extension/SDL2_image-2.0.3/Makefile.in +++ /dev/null @@ -1,1040 +0,0 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 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@ - -# Makefile.am for the SDL sample image loading library and viewer - - - - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -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@ -@USE_VERSION_RC_FALSE@libSDL2_image_la_DEPENDENCIES = \ -@USE_VERSION_RC_FALSE@ $(am__DEPENDENCIES_1) -noinst_PROGRAMS = showimage$(EXEEXT) -subdir = . -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/configure $(am__configure_deps) \ - $(srcdir)/SDL2_image.spec.in $(srcdir)/SDL2_image.pc.in \ - depcomp $(libSDL2_imageinclude_HEADERS) compile config.guess \ - config.sub install-sh missing ltmain.sh -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude/libtool.m4 \ - $(top_srcdir)/acinclude/ltoptions.m4 \ - $(top_srcdir)/acinclude/ltsugar.m4 \ - $(top_srcdir)/acinclude/ltversion.m4 \ - $(top_srcdir)/acinclude/lt~obsolete.m4 \ - $(top_srcdir)/acinclude/pkg.m4 $(top_srcdir)/acinclude/sdl2.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = SDL2_image.spec SDL2_image.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)$(libSDL2_imageincludedir)" -LTLIBRARIES = $(lib_LTLIBRARIES) -am__DEPENDENCIES_1 = -am__libSDL2_image_la_SOURCES_DIST = IMG.c IMG_bmp.c IMG_gif.c \ - IMG_jpg.c IMG_lbm.c IMG_pcx.c IMG_png.c IMG_pnm.c IMG_svg.c \ - IMG_tga.c IMG_tif.c IMG_xcf.c IMG_xpm.c IMG_xv.c IMG_webp.c \ - IMG_WIC.c IMG_ImageIO.m miniz.h nanosvg.h nanosvgrast.h -@USE_IMAGEIO_TRUE@am__objects_1 = IMG_ImageIO.lo -am_libSDL2_image_la_OBJECTS = IMG.lo IMG_bmp.lo IMG_gif.lo IMG_jpg.lo \ - IMG_lbm.lo IMG_pcx.lo IMG_png.lo IMG_pnm.lo IMG_svg.lo \ - IMG_tga.lo IMG_tif.lo IMG_xcf.lo IMG_xpm.lo IMG_xv.lo \ - IMG_webp.lo IMG_WIC.lo $(am__objects_1) -libSDL2_image_la_OBJECTS = $(am_libSDL2_image_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 = -libSDL2_image_la_LINK = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(OBJCLD) $(AM_OBJCFLAGS) \ - $(OBJCFLAGS) $(libSDL2_image_la_LDFLAGS) $(LDFLAGS) -o $@ -PROGRAMS = $(noinst_PROGRAMS) -showimage_SOURCES = showimage.c -showimage_OBJECTS = showimage.$(OBJEXT) -showimage_DEPENDENCIES = libSDL2_image.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@ -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 = -OBJCCOMPILE = $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS) -LTOBJCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_OBJCFLAGS) $(OBJCFLAGS) -AM_V_OBJC = $(am__v_OBJC_@AM_V@) -am__v_OBJC_ = $(am__v_OBJC_@AM_DEFAULT_V@) -am__v_OBJC_0 = @echo " OBJC " $@; -am__v_OBJC_1 = -OBJCLD = $(OBJC) -OBJCLINK = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(OBJCLD) $(AM_OBJCFLAGS) $(OBJCFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_OBJCLD = $(am__v_OBJCLD_@AM_V@) -am__v_OBJCLD_ = $(am__v_OBJCLD_@AM_DEFAULT_V@) -am__v_OBJCLD_0 = @echo " OBJCLD " $@; -am__v_OBJCLD_1 = -SOURCES = $(libSDL2_image_la_SOURCES) showimage.c -DIST_SOURCES = $(am__libSDL2_image_la_SOURCES_DIST) showimage.c -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 = $(libSDL2_imageinclude_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 -CSCOPE = cscope -AM_RECURSIVE_TARGETS = cscope -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) -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_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BINARY_AGE = @BINARY_AGE@ -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@ -GREP = @GREP@ -IMG_LIBS = @IMG_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTERFACE_AGE = @INTERFACE_AGE@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ -LIBPNG_LIBS = @LIBPNG_LIBS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBWEBP_CFLAGS = @LIBWEBP_CFLAGS@ -LIBWEBP_LIBS = @LIBWEBP_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAJOR_VERSION = @MAJOR_VERSION@ -MAKEINFO = @MAKEINFO@ -MICRO_VERSION = @MICRO_VERSION@ -MINOR_VERSION = @MINOR_VERSION@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJC = @OBJC@ -OBJCDEPMODE = @OBJCDEPMODE@ -OBJCFLAGS = @OBJCFLAGS@ -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@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -SDL2_CONFIG = @SDL2_CONFIG@ -SDL_CFLAGS = @SDL_CFLAGS@ -SDL_LIBS = @SDL_LIBS@ -SDL_VERSION = @SDL_VERSION@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -WINDRES = @WINDRES@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_ct_OBJC = @ac_ct_OBJC@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -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@ -lt_ECHO = @lt_ECHO@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -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 = libSDL2_image.la -libSDL2_imageincludedir = $(includedir)/SDL2 -libSDL2_imageinclude_HEADERS = \ - SDL_image.h - -@USE_IMAGEIO_TRUE@IMAGEIO_SOURCE = IMG_ImageIO.m -libSDL2_image_la_SOURCES = \ - IMG.c \ - IMG_bmp.c \ - IMG_gif.c \ - IMG_jpg.c \ - IMG_lbm.c \ - IMG_pcx.c \ - IMG_png.c \ - IMG_pnm.c \ - IMG_svg.c \ - IMG_tga.c \ - IMG_tif.c \ - IMG_xcf.c \ - IMG_xpm.c \ - IMG_xv.c \ - IMG_webp.c \ - IMG_WIC.c \ - $(IMAGEIO_SOURCE) \ - miniz.h \ - nanosvg.h \ - nanosvgrast.h - -EXTRA_DIST = \ - Android.mk \ - debian \ - external \ - version.rc \ - VisualC \ - VisualCE \ - Xcode \ - Xcode-iOS \ - IMG_xxx.c \ - $(srcdir)/*.m \ - SDL2_image.spec \ - gcc-fat.sh \ - autogen.sh \ - $(srcdir)/*.txt - -@USE_VERSION_RC_FALSE@libSDL2_image_la_LDFLAGS = \ -@USE_VERSION_RC_FALSE@ -no-undefined \ -@USE_VERSION_RC_FALSE@ -release $(LT_RELEASE) \ -@USE_VERSION_RC_FALSE@ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) - -@USE_VERSION_RC_TRUE@libSDL2_image_la_LDFLAGS = \ -@USE_VERSION_RC_TRUE@ -no-undefined \ -@USE_VERSION_RC_TRUE@ -release $(LT_RELEASE) \ -@USE_VERSION_RC_TRUE@ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -Wl,version.o - -@USE_VERSION_RC_FALSE@libSDL2_image_la_LIBADD = $(IMG_LIBS) -@USE_VERSION_RC_TRUE@libSDL2_image_la_LIBADD = $(IMG_LIBS) -@USE_VERSION_RC_TRUE@libSDL2_image_la_DEPENDENCIES = version.o -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = SDL2_image.pc -showimage_LDADD = libSDL2_image.la -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .m .o .obj -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 -.PRECIOUS: 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): -SDL2_image.spec: $(top_builddir)/config.status $(srcdir)/SDL2_image.spec.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -SDL2_image.pc: $(top_builddir)/config.status $(srcdir)/SDL2_image.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ - -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}; \ - } - -libSDL2_image.la: $(libSDL2_image_la_OBJECTS) $(libSDL2_image_la_DEPENDENCIES) $(EXTRA_libSDL2_image_la_DEPENDENCIES) - $(AM_V_OBJCLD)$(libSDL2_image_la_LINK) -rpath $(libdir) $(libSDL2_image_la_OBJECTS) $(libSDL2_image_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 - -showimage$(EXEEXT): $(showimage_OBJECTS) $(showimage_DEPENDENCIES) $(EXTRA_showimage_DEPENDENCIES) - @rm -f showimage$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(showimage_OBJECTS) $(showimage_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_ImageIO.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_WIC.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_bmp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_gif.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_jpg.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_lbm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_pcx.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_png.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_pnm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_svg.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_tga.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_tif.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_webp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_xcf.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_xpm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IMG_xv.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/showimage.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.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)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.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)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.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 $@ $< - -.m.o: -@am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(OBJCCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ $(AM_V_OBJC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepOBJC_FALSE@ $(AM_V_OBJC@am__nodep@)$(OBJCCOMPILE) -c -o $@ $< - -.m.obj: -@am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(OBJCCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ $(AM_V_OBJC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepOBJC_FALSE@ $(AM_V_OBJC@am__nodep@)$(OBJCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.m.lo: -@am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(LTOBJCCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ $(AM_V_OBJC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepOBJC_FALSE@ $(AM_V_OBJC@am__nodep@)$(LTOBJCCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool config.lt -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-libSDL2_imageincludeHEADERS: $(libSDL2_imageinclude_HEADERS) - @$(NORMAL_INSTALL) - @list='$(libSDL2_imageinclude_HEADERS)'; test -n "$(libSDL2_imageincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(libSDL2_imageincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libSDL2_imageincludedir)" || 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)$(libSDL2_imageincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(libSDL2_imageincludedir)" || exit $$?; \ - done - -uninstall-libSDL2_imageincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libSDL2_imageinclude_HEADERS)'; test -n "$(libSDL2_imageincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(libSDL2_imageincludedir)'; $(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" -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-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 - -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 - -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) | GZIP=$(GZIP_ENV) gzip -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 shar distribution archives 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 distribution archives compressed with" \ - "legacy program 'compress' is deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -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*) \ - GZIP=$(GZIP_ENV) gzip -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*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir) - chmod u+w $(distdir) - mkdir $(distdir)/_build $(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 \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(AM_DISTCHECK_CONFIGURE_FLAGS) \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(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-am -all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libSDL2_imageincludedir)"; 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 \ - clean-noinstPROGRAMS mostlyclean-am - -distclean: distclean-am - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-libtool distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-libSDL2_imageincludeHEADERS \ - 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 -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -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-libSDL2_imageincludeHEADERS uninstall-pkgconfigDATA - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--refresh check check-am clean \ - clean-cscope clean-generic clean-libLTLIBRARIES clean-libtool \ - clean-noinstPROGRAMS 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-compile \ - distclean-generic 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-libLTLIBRARIES \ - install-libSDL2_imageincludeHEADERS 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-libSDL2_imageincludeHEADERS \ - uninstall-pkgconfigDATA - - -%.o : %.rc - $(WINDRES) $< $@ - -# Rule to build tar-gzipped distribution package -$(PACKAGE)-$(VERSION).tar.gz: distcheck - -# Rule to build RPM distribution package -rpm: $(PACKAGE)-$(VERSION).tar.gz - rpmbuild -ta $(PACKAGE)-$(VERSION).tar.gz - -# 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/extension/SDL2_image-2.0.3/README.txt b/extension/SDL2_image-2.0.3/README.txt deleted file mode 100755 index 4b1b57a..0000000 --- a/extension/SDL2_image-2.0.3/README.txt +++ /dev/null @@ -1,40 +0,0 @@ - -SDL_image 2.0 - -The latest version of this library is available from: -http://www.libsdl.org/projects/SDL_image/ - -This is a simple library to load images of various formats as SDL surfaces. -This library supports BMP, PNM (PPM/PGM/PBM), XPM, LBM, PCX, GIF, JPEG, PNG, -TGA, TIFF, and simple SVG formats. - -API: -#include "SDL_image.h" - - SDL_Surface *IMG_Load(const char *file); -or - SDL_Surface *IMG_Load_RW(SDL_RWops *src, int freesrc); -or - SDL_Surface *IMG_LoadTyped_RW(SDL_RWops *src, int freesrc, char *type); - -where type is a string specifying the format (i.e. "PNG" or "pcx"). -Note that IMG_Load_RW cannot load TGA images. - -To create a surface from an XPM image included in C source, use: - - SDL_Surface *IMG_ReadXPMFromArray(char **xpm); - -An example program 'showimage' is included, with source in showimage.c - -JPEG support requires the JPEG library: http://www.ijg.org/ -PNG support requires the PNG library: http://www.libpng.org/pub/png/libpng.html - and the Zlib library: http://www.gzip.org/zlib/ -TIFF support requires the TIFF library: ftp://ftp.sgi.com/graphics/tiff/ - -If you have these libraries installed in non-standard places, you can -try adding those paths to the configure script, e.g. -sh ./configure CPPFLAGS="-I/somewhere/include" LDFLAGS="-L/somewhere/lib" -If this works, you may need to add /somewhere/lib to your LD_LIBRARY_PATH -so shared library loading works correctly. - -This library is under the zlib License, see the file "COPYING.txt" for details. diff --git a/extension/SDL2_image-2.0.3/SDL2_image.pc.in b/extension/SDL2_image-2.0.3/SDL2_image.pc.in deleted file mode 100755 index 1b841eb..0000000 --- a/extension/SDL2_image-2.0.3/SDL2_image.pc.in +++ /dev/null @@ -1,12 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: @PACKAGE@ -Description: image loading library for Simple DirectMedia Layer -Version: @VERSION@ -Requires: sdl2 >= @SDL_VERSION@ -Libs: -L${libdir} -lSDL2_image -Cflags: -I${includedir}/SDL2 - diff --git a/extension/SDL2_image-2.0.3/SDL2_image.spec b/extension/SDL2_image-2.0.3/SDL2_image.spec deleted file mode 100755 index 161fafd..0000000 --- a/extension/SDL2_image-2.0.3/SDL2_image.spec +++ /dev/null @@ -1,69 +0,0 @@ -%define name SDL2_image -%define version 2.0.3 -%define release 1 - -Summary: Simple DirectMedia Layer - Sample Image Loading Library -Name: %{name} -Version: %{version} -Release: %{release} -Source0: %{name}-%{version}.tar.gz -License: LGPL -Group: System Environment/Libraries -BuildRoot: /var/tmp/%{name}-buildroot -Prefix: %{_prefix} -Packager: Hakan Tandogan -#BuildRequires: SDL2-devel -#BuildRequires: libjpeg-devel -#BuildRequires: libpng-devel -#BuildRequires: libtiff-devel - -%description -This is a simple library to load images of various formats as SDL surfaces. -This library supports BMP, PPM, PCX, GIF, JPEG, PNG, and TIFF formats. - -%package devel -Summary: Libraries, includes and more to develop SDL applications. -Group: Development/Libraries -Requires: %{name} -Requires: SDL2-devel - -%description devel -This is a simple library to load images of various formats as SDL surfaces. -This library supports BMP, PPM, PCX, GIF, JPEG, PNG, and TIFF formats. - -%prep -rm -rf ${RPM_BUILD_ROOT} - -%setup - -%build -CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix} -make - -%install -rm -rf $RPM_BUILD_ROOT -make install prefix=$RPM_BUILD_ROOT/%{prefix} - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root) -%doc README.txt CHANGES.txt COPYING.txt -%{prefix}/lib/lib*.so.* - -%files devel -%defattr(-,root,root) -%{prefix}/lib/lib*.a -%{prefix}/lib/lib*.la -%{prefix}/lib/lib*.so -%{prefix}/include/*/ -%{prefix}/lib/pkgconfig/*.pc - -%changelog -* Wed Jan 19 2000 Sam Lantinga -- converted to get package information from configure -* Tue Jan 18 2000 Hakan Tandogan -- initial spec file - - diff --git a/extension/SDL2_image-2.0.3/SDL2_image.spec.in b/extension/SDL2_image-2.0.3/SDL2_image.spec.in deleted file mode 100755 index cfa6762..0000000 --- a/extension/SDL2_image-2.0.3/SDL2_image.spec.in +++ /dev/null @@ -1,69 +0,0 @@ -%define name @PACKAGE@ -%define version @VERSION@ -%define release 1 - -Summary: Simple DirectMedia Layer - Sample Image Loading Library -Name: %{name} -Version: %{version} -Release: %{release} -Source0: %{name}-%{version}.tar.gz -License: LGPL -Group: System Environment/Libraries -BuildRoot: /var/tmp/%{name}-buildroot -Prefix: %{_prefix} -Packager: Hakan Tandogan -#BuildRequires: SDL2-devel -#BuildRequires: libjpeg-devel -#BuildRequires: libpng-devel -#BuildRequires: libtiff-devel - -%description -This is a simple library to load images of various formats as SDL surfaces. -This library supports BMP, PPM, PCX, GIF, JPEG, PNG, and TIFF formats. - -%package devel -Summary: Libraries, includes and more to develop SDL applications. -Group: Development/Libraries -Requires: %{name} -Requires: SDL2-devel - -%description devel -This is a simple library to load images of various formats as SDL surfaces. -This library supports BMP, PPM, PCX, GIF, JPEG, PNG, and TIFF formats. - -%prep -rm -rf ${RPM_BUILD_ROOT} - -%setup - -%build -CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix} -make - -%install -rm -rf $RPM_BUILD_ROOT -make install prefix=$RPM_BUILD_ROOT/%{prefix} - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root) -%doc README.txt CHANGES.txt COPYING.txt -%{prefix}/lib/lib*.so.* - -%files devel -%defattr(-,root,root) -%{prefix}/lib/lib*.a -%{prefix}/lib/lib*.la -%{prefix}/lib/lib*.so -%{prefix}/include/*/ -%{prefix}/lib/pkgconfig/*.pc - -%changelog -* Wed Jan 19 2000 Sam Lantinga -- converted to get package information from configure -* Tue Jan 18 2000 Hakan Tandogan -- initial spec file - - diff --git a/extension/SDL2_image-2.0.3/SDL_image.h b/extension/SDL2_image-2.0.3/SDL_image.h deleted file mode 100755 index f3148a7..0000000 --- a/extension/SDL2_image-2.0.3/SDL_image.h +++ /dev/null @@ -1,161 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* A simple library to load images of various formats as SDL surfaces */ - -#ifndef SDL_IMAGE_H_ -#define SDL_IMAGE_H_ - -#include "SDL.h" -#include "SDL_version.h" -#include "begin_code.h" - -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL -*/ -#define SDL_IMAGE_MAJOR_VERSION 2 -#define SDL_IMAGE_MINOR_VERSION 0 -#define SDL_IMAGE_PATCHLEVEL 3 - -/* This macro can be used to fill a version structure with the compile-time - * version of the SDL_image library. - */ -#define SDL_IMAGE_VERSION(X) \ -{ \ - (X)->major = SDL_IMAGE_MAJOR_VERSION; \ - (X)->minor = SDL_IMAGE_MINOR_VERSION; \ - (X)->patch = SDL_IMAGE_PATCHLEVEL; \ -} - -/** - * This is the version number macro for the current SDL_image version. - */ -#define SDL_IMAGE_COMPILEDVERSION \ - SDL_VERSIONNUM(SDL_IMAGE_MAJOR_VERSION, SDL_IMAGE_MINOR_VERSION, SDL_IMAGE_PATCHLEVEL) - -/** - * This macro will evaluate to true if compiled with SDL_image at least X.Y.Z. - */ -#define SDL_IMAGE_VERSION_ATLEAST(X, Y, Z) \ - (SDL_IMAGE_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z)) - -/* This function gets the version of the dynamically linked SDL_image library. - it should NOT be used to fill a version structure, instead you should - use the SDL_IMAGE_VERSION() macro. - */ -extern DECLSPEC const SDL_version * SDLCALL IMG_Linked_Version(void); - -typedef enum -{ - IMG_INIT_JPG = 0x00000001, - IMG_INIT_PNG = 0x00000002, - IMG_INIT_TIF = 0x00000004, - IMG_INIT_WEBP = 0x00000008 -} IMG_InitFlags; - -/* Loads dynamic libraries and prepares them for use. Flags should be - one or more flags from IMG_InitFlags OR'd together. - It returns the flags successfully initialized, or 0 on failure. - */ -extern DECLSPEC int SDLCALL IMG_Init(int flags); - -/* Unloads libraries loaded with IMG_Init */ -extern DECLSPEC void SDLCALL IMG_Quit(void); - -/* Load an image from an SDL data source. - The 'type' may be one of: "BMP", "GIF", "PNG", etc. - - If the image format supports a transparent pixel, SDL will set the - colorkey for the surface. You can enable RLE acceleration on the - surface afterwards by calling: - SDL_SetColorKey(image, SDL_RLEACCEL, image->format->colorkey); - */ -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadTyped_RW(SDL_RWops *src, int freesrc, const char *type); -/* Convenience functions */ -extern DECLSPEC SDL_Surface * SDLCALL IMG_Load(const char *file); -extern DECLSPEC SDL_Surface * SDLCALL IMG_Load_RW(SDL_RWops *src, int freesrc); - -#if SDL_VERSION_ATLEAST(2,0,0) -/* Load an image directly into a render texture. - */ -extern DECLSPEC SDL_Texture * SDLCALL IMG_LoadTexture(SDL_Renderer *renderer, const char *file); -extern DECLSPEC SDL_Texture * SDLCALL IMG_LoadTexture_RW(SDL_Renderer *renderer, SDL_RWops *src, int freesrc); -extern DECLSPEC SDL_Texture * SDLCALL IMG_LoadTextureTyped_RW(SDL_Renderer *renderer, SDL_RWops *src, int freesrc, const char *type); -#endif /* SDL 2.0 */ - -/* Functions to detect a file type, given a seekable source */ -extern DECLSPEC int SDLCALL IMG_isICO(SDL_RWops *src); -extern DECLSPEC int SDLCALL IMG_isCUR(SDL_RWops *src); -extern DECLSPEC int SDLCALL IMG_isBMP(SDL_RWops *src); -extern DECLSPEC int SDLCALL IMG_isGIF(SDL_RWops *src); -extern DECLSPEC int SDLCALL IMG_isJPG(SDL_RWops *src); -extern DECLSPEC int SDLCALL IMG_isLBM(SDL_RWops *src); -extern DECLSPEC int SDLCALL IMG_isPCX(SDL_RWops *src); -extern DECLSPEC int SDLCALL IMG_isPNG(SDL_RWops *src); -extern DECLSPEC int SDLCALL IMG_isPNM(SDL_RWops *src); -extern DECLSPEC int SDLCALL IMG_isSVG(SDL_RWops *src); -extern DECLSPEC int SDLCALL IMG_isTIF(SDL_RWops *src); -extern DECLSPEC int SDLCALL IMG_isXCF(SDL_RWops *src); -extern DECLSPEC int SDLCALL IMG_isXPM(SDL_RWops *src); -extern DECLSPEC int SDLCALL IMG_isXV(SDL_RWops *src); -extern DECLSPEC int SDLCALL IMG_isWEBP(SDL_RWops *src); - -/* Individual loading functions */ -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadICO_RW(SDL_RWops *src); -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadCUR_RW(SDL_RWops *src); -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadBMP_RW(SDL_RWops *src); -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadGIF_RW(SDL_RWops *src); -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadJPG_RW(SDL_RWops *src); -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadLBM_RW(SDL_RWops *src); -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadPCX_RW(SDL_RWops *src); -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadPNG_RW(SDL_RWops *src); -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadPNM_RW(SDL_RWops *src); -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadSVG_RW(SDL_RWops *src); -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadTGA_RW(SDL_RWops *src); -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadTIF_RW(SDL_RWops *src); -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadXCF_RW(SDL_RWops *src); -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadXPM_RW(SDL_RWops *src); -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadXV_RW(SDL_RWops *src); -extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadWEBP_RW(SDL_RWops *src); - -extern DECLSPEC SDL_Surface * SDLCALL IMG_ReadXPMFromArray(char **xpm); - -/* Individual saving functions */ -extern DECLSPEC int SDLCALL IMG_SavePNG(SDL_Surface *surface, const char *file); -extern DECLSPEC int SDLCALL IMG_SavePNG_RW(SDL_Surface *surface, SDL_RWops *dst, int freedst); -extern DECLSPEC int SDLCALL IMG_SaveJPG(SDL_Surface *surface, const char *file, int quality); -extern DECLSPEC int SDLCALL IMG_SaveJPG_RW(SDL_Surface *surface, SDL_RWops *dst, int freedst, int quality); - -/* We'll use SDL for reporting errors */ -#define IMG_SetError SDL_SetError -#define IMG_GetError SDL_GetError - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_IMAGE_H_ */ diff --git a/extension/SDL2_image-2.0.3/VisualC/SDL_image.sln b/extension/SDL2_image-2.0.3/VisualC/SDL_image.sln deleted file mode 100755 index 0c7849d..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/SDL_image.sln +++ /dev/null @@ -1,36 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2_image", "SDL_image.vcxproj", "{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "showimage", "showimage\showimage.vcxproj", "{FEE80C5D-762E-4E57-9BCB-928749E8203F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|Win32.ActiveCfg = Debug|Win32 - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|Win32.Build.0 = Debug|Win32 - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|x64.ActiveCfg = Debug|x64 - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|x64.Build.0 = Debug|x64 - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Release|Win32.ActiveCfg = Release|Win32 - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Release|Win32.Build.0 = Release|Win32 - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Release|x64.ActiveCfg = Release|x64 - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Release|x64.Build.0 = Release|x64 - {FEE80C5D-762E-4E57-9BCB-928749E8203F}.Debug|Win32.ActiveCfg = Debug|Win32 - {FEE80C5D-762E-4E57-9BCB-928749E8203F}.Debug|Win32.Build.0 = Debug|Win32 - {FEE80C5D-762E-4E57-9BCB-928749E8203F}.Debug|x64.ActiveCfg = Debug|x64 - {FEE80C5D-762E-4E57-9BCB-928749E8203F}.Debug|x64.Build.0 = Debug|x64 - {FEE80C5D-762E-4E57-9BCB-928749E8203F}.Release|Win32.ActiveCfg = Release|Win32 - {FEE80C5D-762E-4E57-9BCB-928749E8203F}.Release|Win32.Build.0 = Release|Win32 - {FEE80C5D-762E-4E57-9BCB-928749E8203F}.Release|x64.ActiveCfg = Release|x64 - {FEE80C5D-762E-4E57-9BCB-928749E8203F}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/extension/SDL2_image-2.0.3/VisualC/SDL_image.vcxproj b/extension/SDL2_image-2.0.3/VisualC/SDL_image.vcxproj deleted file mode 100755 index 94ba41e..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/SDL_image.vcxproj +++ /dev/null @@ -1,523 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - SDL2_image - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696} - SDL2_image - - - - DynamicLibrary - - - DynamicLibrary - - - DynamicLibrary - - - DynamicLibrary - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)\$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)\$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)\$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)\$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\Debug/SDL2_image.tlb - - - - - Disabled - external\include;%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_WINDOWS;LOAD_BMP;LOAD_GIF;LOAD_JPG;LOAD_JPG_DYNAMIC="libjpeg-9.dll";LOAD_LBM;LOAD_PCX;LOAD_PNG;LOAD_PNG_DYNAMIC="libpng16-16.dll";LOAD_PNM;LOAD_SVG;LOAD_SVG;LOAD_TGA;LOAD_TIF;LOAD_TIF_DYNAMIC="libtiff-5.dll";LOAD_WEBP;LOAD_WEBP_DYNAMIC="libwebp-7.dll";LOAD_XPM;LOAD_XV;PNG_USE_DLL;ZLIB_DLL;%(PreprocessorDefinitions) - MultiThreadedDLL - Level3 - OldStyle - StreamingSIMDExtensions - - - _DEBUG;%(PreprocessorDefinitions) - - - SDL2.lib;%(AdditionalDependencies) - true - Windows - - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\Debug/SDL2_image.tlb - - - - - external\include;%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_WINDOWS;LOAD_BMP;LOAD_GIF;LOAD_JPG;LOAD_JPG_DYNAMIC="libjpeg-9.dll";LOAD_LBM;LOAD_PCX;LOAD_PNG;LOAD_PNG_DYNAMIC="libpng16-16.dll";LOAD_PNM;LOAD_SVG;LOAD_TGA;LOAD_TIF;LOAD_TIF_DYNAMIC="libtiff-5.dll";LOAD_WEBP;LOAD_WEBP_DYNAMIC="libwebp-7.dll";LOAD_XPM;LOAD_XV;PNG_USE_DLL;ZLIB_DLL;%(PreprocessorDefinitions) - MultiThreadedDLL - Level3 - Disabled - OldStyle - StreamingSIMDExtensions - - - _DEBUG;%(PreprocessorDefinitions) - - - SDL2.lib;%(AdditionalDependencies) - true - Windows - - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\Release/SDL2_image.tlb - - - - - external\include;%(AdditionalIncludeDirectories) - NDEBUG;WIN32;_WINDOWS;LOAD_BMP;LOAD_GIF;LOAD_JPG;LOAD_JPG_DYNAMIC="libjpeg-9.dll";LOAD_LBM;LOAD_PCX;LOAD_PNG;LOAD_PNG_DYNAMIC="libpng16-16.dll";LOAD_PNM;LOAD_SVG;LOAD_TGA;LOAD_TIF;LOAD_TIF_DYNAMIC="libtiff-5.dll";LOAD_WEBP;LOAD_WEBP_DYNAMIC="libwebp-7.dll";LOAD_XPM;LOAD_XV;PNG_USE_DLL;ZLIB_DLL;%(PreprocessorDefinitions) - MultiThreadedDLL - Level3 - StreamingSIMDExtensions - - - NDEBUG;%(PreprocessorDefinitions) - - - SDL2.lib;%(AdditionalDependencies) - Windows - - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\Release/SDL2_image.tlb - - - - - external\include;%(AdditionalIncludeDirectories) - NDEBUG;WIN32;_WINDOWS;LOAD_BMP;LOAD_GIF;LOAD_JPG;LOAD_JPG_DYNAMIC="libjpeg-9.dll";LOAD_LBM;LOAD_PCX;LOAD_PNG;LOAD_PNG_DYNAMIC="libpng16-16.dll";LOAD_PNM;LOAD_SVG;LOAD_TGA;LOAD_TIF;LOAD_TIF_DYNAMIC="libtiff-5.dll";LOAD_WEBP;LOAD_WEBP_DYNAMIC="libwebp-7.dll";LOAD_XPM;LOAD_XV;PNG_USE_DLL;ZLIB_DLL;%(PreprocessorDefinitions) - MultiThreadedDLL - Level3 - StreamingSIMDExtensions - - - NDEBUG;%(PreprocessorDefinitions) - - - Windows - SDL2.lib;%(AdditionalDependencies) - - - - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - - - - - - Document - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - Document - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - Document - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - Document - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - Document - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - Document - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - Document - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - Document - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - Document - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - Document - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\ - Copying %(Filename)%(Extension) - $(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension) - - - - - - \ No newline at end of file diff --git a/extension/SDL2_image-2.0.3/VisualC/SDL_image.vcxproj.filters b/extension/SDL2_image-2.0.3/VisualC/SDL_image.vcxproj.filters deleted file mode 100755 index f097cc8..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/SDL_image.vcxproj.filters +++ /dev/null @@ -1,140 +0,0 @@ - - - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - - Sources - - - - - {5637eea3-915c-4451-8db1-ea75e89d664a} - - - {0255e6e4-e99b-4247-832b-195b30522bb1} - - - {60daf3c1-64a6-411e-9f2f-83897f7deeb7} - - - {fb6a5d77-4b7c-48da-a3b7-71eada47ca5a} - - - - - Public Headers - - - - - Sources - - - - - x64 - - - x64 - - - x64 - - - x64 - - - x64 - - - x64 - - - x64 - - - x64 - - - x64 - - - x64 - - - x86 - - - x86 - - - x86 - - - x86 - - - x86 - - - x86 - - - x86 - - - x86 - - - x86 - - - x86 - - - \ No newline at end of file diff --git a/extension/SDL2_image-2.0.3/VisualC/Version.rc b/extension/SDL2_image-2.0.3/VisualC/Version.rc deleted file mode 100755 index d404df8..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/Version.rc +++ /dev/null @@ -1,105 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "winresrc.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifndef _MAC -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,0,3,0 - PRODUCTVERSION 2,0,3,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", "\0" - VALUE "FileDescription", "SDL_image\0" - VALUE "FileVersion", "2, 0, 3, 0\0" - VALUE "InternalName", "SDL_image\0" - VALUE "LegalCopyright", "Copyright © 2018 Sam Lantinga\0" - VALUE "OriginalFilename", "SDL_image.dll\0" - VALUE "ProductName", "Simple DirectMedia Layer\0" - VALUE "ProductVersion", "2, 0, 3, 0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - -#endif // !_MAC - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/extension/SDL2_image-2.0.3/VisualC/clean.sh b/extension/SDL2_image-2.0.3/VisualC/clean.sh deleted file mode 100755 index f084be5..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/clean.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -find . -type f \( -name '*.user' -o -name '*.sdf' -o -name '*.ncb' -o -name '*.suo' \) -print -delete -rm -rvf Win32 */Win32 x64 */x64 diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/jconfig.h b/extension/SDL2_image-2.0.3/VisualC/external/include/jconfig.h deleted file mode 100755 index 2d05a3b..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/jconfig.h +++ /dev/null @@ -1,60 +0,0 @@ -/* jconfig.h. Generated from jconfig.cfg by configure. */ -/* jconfig.cfg --- source file edited by configure script */ -/* see jconfig.txt for explanations */ - -#define HAVE_PROTOTYPES 1 -#define HAVE_UNSIGNED_CHAR 1 -#define HAVE_UNSIGNED_SHORT 1 -/* #undef void */ -/* #undef const */ -/* #undef CHAR_IS_UNSIGNED */ -#define HAVE_STDDEF_H 1 -#define HAVE_STDLIB_H 1 -#define HAVE_LOCALE_H 1 -/* #undef NEED_BSD_STRINGS */ -/* #undef NEED_SYS_TYPES_H */ -/* #undef NEED_FAR_POINTERS */ -/* #undef NEED_SHORT_EXTERNAL_NAMES */ -/* Define this if you get warnings about undefined structures. */ -/* #undef INCOMPLETE_TYPES_BROKEN */ - -/* Define "boolean" as unsigned char, not enum, on Windows systems. */ -#ifdef _WIN32 -#ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ -typedef unsigned char boolean; -#endif -#ifndef FALSE /* in case these macros already exist */ -#define FALSE 0 /* values of boolean */ -#endif -#ifndef TRUE -#define TRUE 1 -#endif -#define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ -#endif - -#ifdef JPEG_INTERNALS - -/* #undef RIGHT_SHIFT_IS_UNSIGNED */ -#define INLINE __inline__ -/* These are for configuring the JPEG memory manager. */ -/* #undef DEFAULT_MAX_MEM */ -/* #undef NO_MKTEMP */ - -#endif /* JPEG_INTERNALS */ - -#ifdef JPEG_CJPEG_DJPEG - -#define BMP_SUPPORTED /* BMP image file format */ -#define GIF_SUPPORTED /* GIF image file format */ -#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ -/* #undef RLE_SUPPORTED */ -#define TARGA_SUPPORTED /* Targa image file format */ - -/* #undef TWO_FILE_COMMANDLINE */ -/* #undef NEED_SIGNAL_CATCHER */ -/* #undef DONT_USE_B_MODE */ - -/* Define this if you want percent-done progress reports from cjpeg/djpeg. */ -/* #undef PROGRESS_REPORT */ - -#endif /* JPEG_CJPEG_DJPEG */ diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/jerror.h b/extension/SDL2_image-2.0.3/VisualC/external/include/jerror.h deleted file mode 100755 index a4b661f..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/jerror.h +++ /dev/null @@ -1,304 +0,0 @@ -/* - * jerror.h - * - * Copyright (C) 1994-1997, Thomas G. Lane. - * Modified 1997-2012 by Guido Vollbeding. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file defines the error and message codes for the JPEG library. - * Edit this file to add new codes, or to translate the message strings to - * some other language. - * A set of error-reporting macros are defined too. Some applications using - * the JPEG library may wish to include this file to get the error codes - * and/or the macros. - */ - -/* - * To define the enum list of message codes, include this file without - * defining macro JMESSAGE. To create a message string table, include it - * again with a suitable JMESSAGE definition (see jerror.c for an example). - */ -#ifndef JMESSAGE -#ifndef JERROR_H -/* First time through, define the enum list */ -#define JMAKE_ENUM_LIST -#else -/* Repeated inclusions of this file are no-ops unless JMESSAGE is defined */ -#define JMESSAGE(code,string) -#endif /* JERROR_H */ -#endif /* JMESSAGE */ - -#ifdef JMAKE_ENUM_LIST - -typedef enum { - -#define JMESSAGE(code,string) code , - -#endif /* JMAKE_ENUM_LIST */ - -JMESSAGE(JMSG_NOMESSAGE, "Bogus message code %d") /* Must be first entry! */ - -/* For maintenance convenience, list is alphabetical by message code name */ -JMESSAGE(JERR_BAD_ALIGN_TYPE, "ALIGN_TYPE is wrong, please fix") -JMESSAGE(JERR_BAD_ALLOC_CHUNK, "MAX_ALLOC_CHUNK is wrong, please fix") -JMESSAGE(JERR_BAD_BUFFER_MODE, "Bogus buffer control mode") -JMESSAGE(JERR_BAD_COMPONENT_ID, "Invalid component ID %d in SOS") -JMESSAGE(JERR_BAD_CROP_SPEC, "Invalid crop request") -JMESSAGE(JERR_BAD_DCT_COEF, "DCT coefficient out of range") -JMESSAGE(JERR_BAD_DCTSIZE, "DCT scaled block size %dx%d not supported") -JMESSAGE(JERR_BAD_DROP_SAMPLING, - "Component index %d: mismatching sampling ratio %d:%d, %d:%d, %c") -JMESSAGE(JERR_BAD_HUFF_TABLE, "Bogus Huffman table definition") -JMESSAGE(JERR_BAD_IN_COLORSPACE, "Bogus input colorspace") -JMESSAGE(JERR_BAD_J_COLORSPACE, "Bogus JPEG colorspace") -JMESSAGE(JERR_BAD_LENGTH, "Bogus marker length") -JMESSAGE(JERR_BAD_LIB_VERSION, - "Wrong JPEG library version: library is %d, caller expects %d") -JMESSAGE(JERR_BAD_MCU_SIZE, "Sampling factors too large for interleaved scan") -JMESSAGE(JERR_BAD_POOL_ID, "Invalid memory pool code %d") -JMESSAGE(JERR_BAD_PRECISION, "Unsupported JPEG data precision %d") -JMESSAGE(JERR_BAD_PROGRESSION, - "Invalid progressive parameters Ss=%d Se=%d Ah=%d Al=%d") -JMESSAGE(JERR_BAD_PROG_SCRIPT, - "Invalid progressive parameters at scan script entry %d") -JMESSAGE(JERR_BAD_SAMPLING, "Bogus sampling factors") -JMESSAGE(JERR_BAD_SCAN_SCRIPT, "Invalid scan script at entry %d") -JMESSAGE(JERR_BAD_STATE, "Improper call to JPEG library in state %d") -JMESSAGE(JERR_BAD_STRUCT_SIZE, - "JPEG parameter struct mismatch: library thinks size is %u, caller expects %u") -JMESSAGE(JERR_BAD_VIRTUAL_ACCESS, "Bogus virtual array access") -JMESSAGE(JERR_BUFFER_SIZE, "Buffer passed to JPEG library is too small") -JMESSAGE(JERR_CANT_SUSPEND, "Suspension not allowed here") -JMESSAGE(JERR_CCIR601_NOTIMPL, "CCIR601 sampling not implemented yet") -JMESSAGE(JERR_COMPONENT_COUNT, "Too many color components: %d, max %d") -JMESSAGE(JERR_CONVERSION_NOTIMPL, "Unsupported color conversion request") -JMESSAGE(JERR_DAC_INDEX, "Bogus DAC index %d") -JMESSAGE(JERR_DAC_VALUE, "Bogus DAC value 0x%x") -JMESSAGE(JERR_DHT_INDEX, "Bogus DHT index %d") -JMESSAGE(JERR_DQT_INDEX, "Bogus DQT index %d") -JMESSAGE(JERR_EMPTY_IMAGE, "Empty JPEG image (DNL not supported)") -JMESSAGE(JERR_EMS_READ, "Read from EMS failed") -JMESSAGE(JERR_EMS_WRITE, "Write to EMS failed") -JMESSAGE(JERR_EOI_EXPECTED, "Didn't expect more than one scan") -JMESSAGE(JERR_FILE_READ, "Input file read error") -JMESSAGE(JERR_FILE_WRITE, "Output file write error --- out of disk space?") -JMESSAGE(JERR_FRACT_SAMPLE_NOTIMPL, "Fractional sampling not implemented yet") -JMESSAGE(JERR_HUFF_CLEN_OVERFLOW, "Huffman code size table overflow") -JMESSAGE(JERR_HUFF_MISSING_CODE, "Missing Huffman code table entry") -JMESSAGE(JERR_IMAGE_TOO_BIG, "Maximum supported image dimension is %u pixels") -JMESSAGE(JERR_INPUT_EMPTY, "Empty input file") -JMESSAGE(JERR_INPUT_EOF, "Premature end of input file") -JMESSAGE(JERR_MISMATCHED_QUANT_TABLE, - "Cannot transcode due to multiple use of quantization table %d") -JMESSAGE(JERR_MISSING_DATA, "Scan script does not transmit all data") -JMESSAGE(JERR_MODE_CHANGE, "Invalid color quantization mode change") -JMESSAGE(JERR_NOTIMPL, "Not implemented yet") -JMESSAGE(JERR_NOT_COMPILED, "Requested feature was omitted at compile time") -JMESSAGE(JERR_NO_ARITH_TABLE, "Arithmetic table 0x%02x was not defined") -JMESSAGE(JERR_NO_BACKING_STORE, "Backing store not supported") -JMESSAGE(JERR_NO_HUFF_TABLE, "Huffman table 0x%02x was not defined") -JMESSAGE(JERR_NO_IMAGE, "JPEG datastream contains no image") -JMESSAGE(JERR_NO_QUANT_TABLE, "Quantization table 0x%02x was not defined") -JMESSAGE(JERR_NO_SOI, "Not a JPEG file: starts with 0x%02x 0x%02x") -JMESSAGE(JERR_OUT_OF_MEMORY, "Insufficient memory (case %d)") -JMESSAGE(JERR_QUANT_COMPONENTS, - "Cannot quantize more than %d color components") -JMESSAGE(JERR_QUANT_FEW_COLORS, "Cannot quantize to fewer than %d colors") -JMESSAGE(JERR_QUANT_MANY_COLORS, "Cannot quantize to more than %d colors") -JMESSAGE(JERR_SOF_BEFORE, "Invalid JPEG file structure: %s before SOF") -JMESSAGE(JERR_SOF_DUPLICATE, "Invalid JPEG file structure: two SOF markers") -JMESSAGE(JERR_SOF_NO_SOS, "Invalid JPEG file structure: missing SOS marker") -JMESSAGE(JERR_SOF_UNSUPPORTED, "Unsupported JPEG process: SOF type 0x%02x") -JMESSAGE(JERR_SOI_DUPLICATE, "Invalid JPEG file structure: two SOI markers") -JMESSAGE(JERR_TFILE_CREATE, "Failed to create temporary file %s") -JMESSAGE(JERR_TFILE_READ, "Read failed on temporary file") -JMESSAGE(JERR_TFILE_SEEK, "Seek failed on temporary file") -JMESSAGE(JERR_TFILE_WRITE, - "Write failed on temporary file --- out of disk space?") -JMESSAGE(JERR_TOO_LITTLE_DATA, "Application transferred too few scanlines") -JMESSAGE(JERR_UNKNOWN_MARKER, "Unsupported marker type 0x%02x") -JMESSAGE(JERR_VIRTUAL_BUG, "Virtual array controller messed up") -JMESSAGE(JERR_WIDTH_OVERFLOW, "Image too wide for this implementation") -JMESSAGE(JERR_XMS_READ, "Read from XMS failed") -JMESSAGE(JERR_XMS_WRITE, "Write to XMS failed") -JMESSAGE(JMSG_COPYRIGHT, JCOPYRIGHT) -JMESSAGE(JMSG_VERSION, JVERSION) -JMESSAGE(JTRC_16BIT_TABLES, - "Caution: quantization tables are too coarse for baseline JPEG") -JMESSAGE(JTRC_ADOBE, - "Adobe APP14 marker: version %d, flags 0x%04x 0x%04x, transform %d") -JMESSAGE(JTRC_APP0, "Unknown APP0 marker (not JFIF), length %u") -JMESSAGE(JTRC_APP14, "Unknown APP14 marker (not Adobe), length %u") -JMESSAGE(JTRC_DAC, "Define Arithmetic Table 0x%02x: 0x%02x") -JMESSAGE(JTRC_DHT, "Define Huffman Table 0x%02x") -JMESSAGE(JTRC_DQT, "Define Quantization Table %d precision %d") -JMESSAGE(JTRC_DRI, "Define Restart Interval %u") -JMESSAGE(JTRC_EMS_CLOSE, "Freed EMS handle %u") -JMESSAGE(JTRC_EMS_OPEN, "Obtained EMS handle %u") -JMESSAGE(JTRC_EOI, "End Of Image") -JMESSAGE(JTRC_HUFFBITS, " %3d %3d %3d %3d %3d %3d %3d %3d") -JMESSAGE(JTRC_JFIF, "JFIF APP0 marker: version %d.%02d, density %dx%d %d") -JMESSAGE(JTRC_JFIF_BADTHUMBNAILSIZE, - "Warning: thumbnail image size does not match data length %u") -JMESSAGE(JTRC_JFIF_EXTENSION, - "JFIF extension marker: type 0x%02x, length %u") -JMESSAGE(JTRC_JFIF_THUMBNAIL, " with %d x %d thumbnail image") -JMESSAGE(JTRC_MISC_MARKER, "Miscellaneous marker 0x%02x, length %u") -JMESSAGE(JTRC_PARMLESS_MARKER, "Unexpected marker 0x%02x") -JMESSAGE(JTRC_QUANTVALS, " %4u %4u %4u %4u %4u %4u %4u %4u") -JMESSAGE(JTRC_QUANT_3_NCOLORS, "Quantizing to %d = %d*%d*%d colors") -JMESSAGE(JTRC_QUANT_NCOLORS, "Quantizing to %d colors") -JMESSAGE(JTRC_QUANT_SELECTED, "Selected %d colors for quantization") -JMESSAGE(JTRC_RECOVERY_ACTION, "At marker 0x%02x, recovery action %d") -JMESSAGE(JTRC_RST, "RST%d") -JMESSAGE(JTRC_SMOOTH_NOTIMPL, - "Smoothing not supported with nonstandard sampling ratios") -JMESSAGE(JTRC_SOF, "Start Of Frame 0x%02x: width=%u, height=%u, components=%d") -JMESSAGE(JTRC_SOF_COMPONENT, " Component %d: %dhx%dv q=%d") -JMESSAGE(JTRC_SOI, "Start of Image") -JMESSAGE(JTRC_SOS, "Start Of Scan: %d components") -JMESSAGE(JTRC_SOS_COMPONENT, " Component %d: dc=%d ac=%d") -JMESSAGE(JTRC_SOS_PARAMS, " Ss=%d, Se=%d, Ah=%d, Al=%d") -JMESSAGE(JTRC_TFILE_CLOSE, "Closed temporary file %s") -JMESSAGE(JTRC_TFILE_OPEN, "Opened temporary file %s") -JMESSAGE(JTRC_THUMB_JPEG, - "JFIF extension marker: JPEG-compressed thumbnail image, length %u") -JMESSAGE(JTRC_THUMB_PALETTE, - "JFIF extension marker: palette thumbnail image, length %u") -JMESSAGE(JTRC_THUMB_RGB, - "JFIF extension marker: RGB thumbnail image, length %u") -JMESSAGE(JTRC_UNKNOWN_IDS, - "Unrecognized component IDs %d %d %d, assuming YCbCr") -JMESSAGE(JTRC_XMS_CLOSE, "Freed XMS handle %u") -JMESSAGE(JTRC_XMS_OPEN, "Obtained XMS handle %u") -JMESSAGE(JWRN_ADOBE_XFORM, "Unknown Adobe color transform code %d") -JMESSAGE(JWRN_ARITH_BAD_CODE, "Corrupt JPEG data: bad arithmetic code") -JMESSAGE(JWRN_BOGUS_PROGRESSION, - "Inconsistent progression sequence for component %d coefficient %d") -JMESSAGE(JWRN_EXTRANEOUS_DATA, - "Corrupt JPEG data: %u extraneous bytes before marker 0x%02x") -JMESSAGE(JWRN_HIT_MARKER, "Corrupt JPEG data: premature end of data segment") -JMESSAGE(JWRN_HUFF_BAD_CODE, "Corrupt JPEG data: bad Huffman code") -JMESSAGE(JWRN_JFIF_MAJOR, "Warning: unknown JFIF revision number %d.%02d") -JMESSAGE(JWRN_JPEG_EOF, "Premature end of JPEG file") -JMESSAGE(JWRN_MUST_RESYNC, - "Corrupt JPEG data: found marker 0x%02x instead of RST%d") -JMESSAGE(JWRN_NOT_SEQUENTIAL, "Invalid SOS parameters for sequential JPEG") -JMESSAGE(JWRN_TOO_MUCH_DATA, "Application transferred too many scanlines") - -#ifdef JMAKE_ENUM_LIST - - JMSG_LASTMSGCODE -} J_MESSAGE_CODE; - -#undef JMAKE_ENUM_LIST -#endif /* JMAKE_ENUM_LIST */ - -/* Zap JMESSAGE macro so that future re-inclusions do nothing by default */ -#undef JMESSAGE - - -#ifndef JERROR_H -#define JERROR_H - -/* Macros to simplify using the error and trace message stuff */ -/* The first parameter is either type of cinfo pointer */ - -/* Fatal errors (print message and exit) */ -#define ERREXIT(cinfo,code) \ - ((cinfo)->err->msg_code = (code), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXIT1(cinfo,code,p1) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXIT2(cinfo,code,p1,p2) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXIT3(cinfo,code,p1,p2,p3) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (cinfo)->err->msg_parm.i[2] = (p3), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXIT4(cinfo,code,p1,p2,p3,p4) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (cinfo)->err->msg_parm.i[2] = (p3), \ - (cinfo)->err->msg_parm.i[3] = (p4), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXIT6(cinfo,code,p1,p2,p3,p4,p5,p6) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (cinfo)->err->msg_parm.i[2] = (p3), \ - (cinfo)->err->msg_parm.i[3] = (p4), \ - (cinfo)->err->msg_parm.i[4] = (p5), \ - (cinfo)->err->msg_parm.i[5] = (p6), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXITS(cinfo,code,str) \ - ((cinfo)->err->msg_code = (code), \ - strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) - -#define MAKESTMT(stuff) do { stuff } while (0) - -/* Nonfatal errors (we can keep going, but the data is probably corrupt) */ -#define WARNMS(cinfo,code) \ - ((cinfo)->err->msg_code = (code), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) -#define WARNMS1(cinfo,code,p1) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) -#define WARNMS2(cinfo,code,p1,p2) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) - -/* Informational/debugging messages */ -#define TRACEMS(cinfo,lvl,code) \ - ((cinfo)->err->msg_code = (code), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) -#define TRACEMS1(cinfo,lvl,code,p1) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) -#define TRACEMS2(cinfo,lvl,code,p1,p2) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) -#define TRACEMS3(cinfo,lvl,code,p1,p2,p3) \ - MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ - _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); \ - (cinfo)->err->msg_code = (code); \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) -#define TRACEMS4(cinfo,lvl,code,p1,p2,p3,p4) \ - MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ - _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ - (cinfo)->err->msg_code = (code); \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) -#define TRACEMS5(cinfo,lvl,code,p1,p2,p3,p4,p5) \ - MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ - _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ - _mp[4] = (p5); \ - (cinfo)->err->msg_code = (code); \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) -#define TRACEMS8(cinfo,lvl,code,p1,p2,p3,p4,p5,p6,p7,p8) \ - MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ - _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ - _mp[4] = (p5); _mp[5] = (p6); _mp[6] = (p7); _mp[7] = (p8); \ - (cinfo)->err->msg_code = (code); \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) -#define TRACEMSS(cinfo,lvl,code,str) \ - ((cinfo)->err->msg_code = (code), \ - strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) - -#endif /* JERROR_H */ diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/jmorecfg.h b/extension/SDL2_image-2.0.3/VisualC/external/include/jmorecfg.h deleted file mode 100755 index 679d68b..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/jmorecfg.h +++ /dev/null @@ -1,446 +0,0 @@ -/* - * jmorecfg.h - * - * Copyright (C) 1991-1997, Thomas G. Lane. - * Modified 1997-2013 by Guido Vollbeding. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains additional configuration options that customize the - * JPEG software for special applications or support machine-dependent - * optimizations. Most users will not need to touch this file. - */ - - -/* - * Define BITS_IN_JSAMPLE as either - * 8 for 8-bit sample values (the usual setting) - * 9 for 9-bit sample values - * 10 for 10-bit sample values - * 11 for 11-bit sample values - * 12 for 12-bit sample values - * Only 8, 9, 10, 11, and 12 bits sample data precision are supported for - * full-feature DCT processing. Further depths up to 16-bit may be added - * later for the lossless modes of operation. - * Run-time selection and conversion of data precision will be added later - * and are currently not supported, sorry. - * Exception: The transcoding part (jpegtran) supports all settings in a - * single instance, since it operates on the level of DCT coefficients and - * not sample values. The DCT coefficients are of the same type (16 bits) - * in all cases (see below). - */ - -#define BITS_IN_JSAMPLE 8 /* use 8, 9, 10, 11, or 12 */ - - -/* - * Maximum number of components (color channels) allowed in JPEG image. - * To meet the letter of the JPEG spec, set this to 255. However, darn - * few applications need more than 4 channels (maybe 5 for CMYK + alpha - * mask). We recommend 10 as a reasonable compromise; use 4 if you are - * really short on memory. (Each allowed component costs a hundred or so - * bytes of storage, whether actually used in an image or not.) - */ - -#define MAX_COMPONENTS 10 /* maximum number of image components */ - - -/* - * Basic data types. - * You may need to change these if you have a machine with unusual data - * type sizes; for example, "char" not 8 bits, "short" not 16 bits, - * or "long" not 32 bits. We don't care whether "int" is 16 or 32 bits, - * but it had better be at least 16. - */ - -/* Representation of a single sample (pixel element value). - * We frequently allocate large arrays of these, so it's important to keep - * them small. But if you have memory to burn and access to char or short - * arrays is very slow on your hardware, you might want to change these. - */ - -#if BITS_IN_JSAMPLE == 8 -/* JSAMPLE should be the smallest type that will hold the values 0..255. - * You can use a signed char by having GETJSAMPLE mask it with 0xFF. - */ - -#ifdef HAVE_UNSIGNED_CHAR - -typedef unsigned char JSAMPLE; -#define GETJSAMPLE(value) ((int) (value)) - -#else /* not HAVE_UNSIGNED_CHAR */ - -typedef char JSAMPLE; -#ifdef CHAR_IS_UNSIGNED -#define GETJSAMPLE(value) ((int) (value)) -#else -#define GETJSAMPLE(value) ((int) (value) & 0xFF) -#endif /* CHAR_IS_UNSIGNED */ - -#endif /* HAVE_UNSIGNED_CHAR */ - -#define MAXJSAMPLE 255 -#define CENTERJSAMPLE 128 - -#endif /* BITS_IN_JSAMPLE == 8 */ - - -#if BITS_IN_JSAMPLE == 9 -/* JSAMPLE should be the smallest type that will hold the values 0..511. - * On nearly all machines "short" will do nicely. - */ - -typedef short JSAMPLE; -#define GETJSAMPLE(value) ((int) (value)) - -#define MAXJSAMPLE 511 -#define CENTERJSAMPLE 256 - -#endif /* BITS_IN_JSAMPLE == 9 */ - - -#if BITS_IN_JSAMPLE == 10 -/* JSAMPLE should be the smallest type that will hold the values 0..1023. - * On nearly all machines "short" will do nicely. - */ - -typedef short JSAMPLE; -#define GETJSAMPLE(value) ((int) (value)) - -#define MAXJSAMPLE 1023 -#define CENTERJSAMPLE 512 - -#endif /* BITS_IN_JSAMPLE == 10 */ - - -#if BITS_IN_JSAMPLE == 11 -/* JSAMPLE should be the smallest type that will hold the values 0..2047. - * On nearly all machines "short" will do nicely. - */ - -typedef short JSAMPLE; -#define GETJSAMPLE(value) ((int) (value)) - -#define MAXJSAMPLE 2047 -#define CENTERJSAMPLE 1024 - -#endif /* BITS_IN_JSAMPLE == 11 */ - - -#if BITS_IN_JSAMPLE == 12 -/* JSAMPLE should be the smallest type that will hold the values 0..4095. - * On nearly all machines "short" will do nicely. - */ - -typedef short JSAMPLE; -#define GETJSAMPLE(value) ((int) (value)) - -#define MAXJSAMPLE 4095 -#define CENTERJSAMPLE 2048 - -#endif /* BITS_IN_JSAMPLE == 12 */ - - -/* Representation of a DCT frequency coefficient. - * This should be a signed value of at least 16 bits; "short" is usually OK. - * Again, we allocate large arrays of these, but you can change to int - * if you have memory to burn and "short" is really slow. - */ - -typedef short JCOEF; - - -/* Compressed datastreams are represented as arrays of JOCTET. - * These must be EXACTLY 8 bits wide, at least once they are written to - * external storage. Note that when using the stdio data source/destination - * managers, this is also the data type passed to fread/fwrite. - */ - -#ifdef HAVE_UNSIGNED_CHAR - -typedef unsigned char JOCTET; -#define GETJOCTET(value) (value) - -#else /* not HAVE_UNSIGNED_CHAR */ - -typedef char JOCTET; -#ifdef CHAR_IS_UNSIGNED -#define GETJOCTET(value) (value) -#else -#define GETJOCTET(value) ((value) & 0xFF) -#endif /* CHAR_IS_UNSIGNED */ - -#endif /* HAVE_UNSIGNED_CHAR */ - - -/* These typedefs are used for various table entries and so forth. - * They must be at least as wide as specified; but making them too big - * won't cost a huge amount of memory, so we don't provide special - * extraction code like we did for JSAMPLE. (In other words, these - * typedefs live at a different point on the speed/space tradeoff curve.) - */ - -/* UINT8 must hold at least the values 0..255. */ - -#ifdef HAVE_UNSIGNED_CHAR -typedef unsigned char UINT8; -#else /* not HAVE_UNSIGNED_CHAR */ -#ifdef CHAR_IS_UNSIGNED -typedef char UINT8; -#else /* not CHAR_IS_UNSIGNED */ -typedef short UINT8; -#endif /* CHAR_IS_UNSIGNED */ -#endif /* HAVE_UNSIGNED_CHAR */ - -/* UINT16 must hold at least the values 0..65535. */ - -#ifdef HAVE_UNSIGNED_SHORT -typedef unsigned short UINT16; -#else /* not HAVE_UNSIGNED_SHORT */ -typedef unsigned int UINT16; -#endif /* HAVE_UNSIGNED_SHORT */ - -/* INT16 must hold at least the values -32768..32767. */ - -#ifndef XMD_H /* X11/xmd.h correctly defines INT16 */ -typedef short INT16; -#endif - -/* INT32 must hold at least signed 32-bit values. */ - -#ifndef XMD_H /* X11/xmd.h correctly defines INT32 */ -#ifndef _BASETSD_H_ /* Microsoft defines it in basetsd.h */ -#ifndef _BASETSD_H /* MinGW is slightly different */ -#ifndef QGLOBAL_H /* Qt defines it in qglobal.h */ -typedef long INT32; -#endif -#endif -#endif -#endif - -/* Datatype used for image dimensions. The JPEG standard only supports - * images up to 64K*64K due to 16-bit fields in SOF markers. Therefore - * "unsigned int" is sufficient on all machines. However, if you need to - * handle larger images and you don't mind deviating from the spec, you - * can change this datatype. - */ - -typedef unsigned int JDIMENSION; - -#define JPEG_MAX_DIMENSION 65500L /* a tad under 64K to prevent overflows */ - - -/* These macros are used in all function definitions and extern declarations. - * You could modify them if you need to change function linkage conventions; - * in particular, you'll need to do that to make the library a Windows DLL. - * Another application is to make all functions global for use with debuggers - * or code profilers that require it. - */ - -/* a function called through method pointers: */ -#define METHODDEF(type) static type -/* a function used only in its module: */ -#define LOCAL(type) static type -/* a function referenced thru EXTERNs: */ -#define GLOBAL(type) type -/* a reference to a GLOBAL function: */ -#define EXTERN(type) extern type - - -/* This macro is used to declare a "method", that is, a function pointer. - * We want to supply prototype parameters if the compiler can cope. - * Note that the arglist parameter must be parenthesized! - * Again, you can customize this if you need special linkage keywords. - */ - -#ifdef HAVE_PROTOTYPES -#define JMETHOD(type,methodname,arglist) type (*methodname) arglist -#else -#define JMETHOD(type,methodname,arglist) type (*methodname) () -#endif - - -/* The noreturn type identifier is used to declare functions - * which cannot return. - * Compilers can thus create more optimized code and perform - * better checks for warnings and errors. - * Static analyzer tools can make improved inferences about - * execution paths and are prevented from giving false alerts. - * - * Unfortunately, the proposed specifications of corresponding - * extensions in the Dec 2011 ISO C standard revision (C11), - * GCC, MSVC, etc. are not viable. - * Thus we introduce a user defined type to declare noreturn - * functions at least for clarity. A proper compiler would - * have a suitable noreturn type to match in place of void. - */ - -#ifndef HAVE_NORETURN_T -typedef void noreturn_t; -#endif - - -/* Here is the pseudo-keyword for declaring pointers that must be "far" - * on 80x86 machines. Most of the specialized coding for 80x86 is handled - * by just saying "FAR *" where such a pointer is needed. In a few places - * explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol. - */ - -#ifndef FAR -#ifdef NEED_FAR_POINTERS -#define FAR far -#else -#define FAR -#endif -#endif - - -/* - * On a few systems, type boolean and/or its values FALSE, TRUE may appear - * in standard header files. Or you may have conflicts with application- - * specific header files that you want to include together with these files. - * Defining HAVE_BOOLEAN before including jpeglib.h should make it work. - */ - -#ifndef HAVE_BOOLEAN -#if defined FALSE || defined TRUE || defined QGLOBAL_H -/* Qt3 defines FALSE and TRUE as "const" variables in qglobal.h */ -typedef int boolean; -#ifndef FALSE /* in case these macros already exist */ -#define FALSE 0 /* values of boolean */ -#endif -#ifndef TRUE -#define TRUE 1 -#endif -#else -typedef enum { FALSE = 0, TRUE = 1 } boolean; -#endif -#endif - - -/* - * The remaining options affect code selection within the JPEG library, - * but they don't need to be visible to most applications using the library. - * To minimize application namespace pollution, the symbols won't be - * defined unless JPEG_INTERNALS or JPEG_INTERNAL_OPTIONS has been defined. - */ - -#ifdef JPEG_INTERNALS -#define JPEG_INTERNAL_OPTIONS -#endif - -#ifdef JPEG_INTERNAL_OPTIONS - - -/* - * These defines indicate whether to include various optional functions. - * Undefining some of these symbols will produce a smaller but less capable - * library. Note that you can leave certain source files out of the - * compilation/linking process if you've #undef'd the corresponding symbols. - * (You may HAVE to do that if your compiler doesn't like null source files.) - */ - -/* Capability options common to encoder and decoder: */ - -#define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */ -#define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */ -#define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */ - -/* Encoder capability options: */ - -#define C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ -#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ -#define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ -#define DCT_SCALING_SUPPORTED /* Input rescaling via DCT? (Requires DCT_ISLOW)*/ -#define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */ -/* Note: if you selected more than 8-bit data precision, it is dangerous to - * turn off ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only - * good for 8-bit precision, so arithmetic coding is recommended for higher - * precision. The Huffman encoder normally uses entropy optimization to - * compute usable tables for higher precision. Otherwise, you'll have to - * supply different default Huffman tables. - * The exact same statements apply for progressive JPEG: the default tables - * don't work for progressive mode. (This may get fixed, however.) - */ -#define INPUT_SMOOTHING_SUPPORTED /* Input image smoothing option? */ - -/* Decoder capability options: */ - -#define D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ -#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ -#define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ -#define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? (Requires DCT_ISLOW)*/ -#define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */ -#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */ -#undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */ -#define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */ -#define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */ -#define QUANT_2PASS_SUPPORTED /* 2-pass color quantization? */ - -/* more capability options later, no doubt */ - - -/* - * Ordering of RGB data in scanlines passed to or from the application. - * If your application wants to deal with data in the order B,G,R, just - * change these macros. You can also deal with formats such as R,G,B,X - * (one extra byte per pixel) by changing RGB_PIXELSIZE. Note that changing - * the offsets will also change the order in which colormap data is organized. - * RESTRICTIONS: - * 1. The sample applications cjpeg,djpeg do NOT support modified RGB formats. - * 2. The color quantizer modules will not behave desirably if RGB_PIXELSIZE - * is not 3 (they don't understand about dummy color components!). So you - * can't use color quantization if you change that value. - */ - -#define RGB_RED 0 /* Offset of Red in an RGB scanline element */ -#define RGB_GREEN 1 /* Offset of Green */ -#define RGB_BLUE 2 /* Offset of Blue */ -#define RGB_PIXELSIZE 3 /* JSAMPLEs per RGB scanline element */ - - -/* Definitions for speed-related optimizations. */ - - -/* If your compiler supports inline functions, define INLINE - * as the inline keyword; otherwise define it as empty. - */ - -#ifndef INLINE -#ifdef __GNUC__ /* for instance, GNU C knows about inline */ -#define INLINE __inline__ -#endif -#ifndef INLINE -#define INLINE /* default is to define it as empty */ -#endif -#endif - - -/* On some machines (notably 68000 series) "int" is 32 bits, but multiplying - * two 16-bit shorts is faster than multiplying two ints. Define MULTIPLIER - * as short on such a machine. MULTIPLIER must be at least 16 bits wide. - */ - -#ifndef MULTIPLIER -#define MULTIPLIER int /* type for fastest integer multiply */ -#endif - - -/* FAST_FLOAT should be either float or double, whichever is done faster - * by your compiler. (Note that this type is only used in the floating point - * DCT routines, so it only matters if you've defined DCT_FLOAT_SUPPORTED.) - * Typically, float is faster in ANSI C compilers, while double is faster in - * pre-ANSI compilers (because they insist on converting to double anyway). - * The code below therefore chooses float if we have ANSI-style prototypes. - */ - -#ifndef FAST_FLOAT -#ifdef HAVE_PROTOTYPES -#define FAST_FLOAT float -#else -#define FAST_FLOAT double -#endif -#endif - -#endif /* JPEG_INTERNAL_OPTIONS */ diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/jpeglib.h b/extension/SDL2_image-2.0.3/VisualC/external/include/jpeglib.h deleted file mode 100755 index 939b50b..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/jpeglib.h +++ /dev/null @@ -1,1180 +0,0 @@ -/* - * jpeglib.h - * - * Copyright (C) 1991-1998, Thomas G. Lane. - * Modified 2002-2015 by Guido Vollbeding. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file defines the application interface for the JPEG library. - * Most applications using the library need only include this file, - * and perhaps jerror.h if they want to know the exact error codes. - */ - -#ifndef JPEGLIB_H -#define JPEGLIB_H - -/* - * First we include the configuration files that record how this - * installation of the JPEG library is set up. jconfig.h can be - * generated automatically for many systems. jmorecfg.h contains - * manual configuration options that most people need not worry about. - */ - -#ifndef JCONFIG_INCLUDED /* in case jinclude.h already did */ -#include "jconfig.h" /* widely used configuration options */ -#endif -#include "jmorecfg.h" /* seldom changed options */ - - -#ifdef __cplusplus -#ifndef DONT_USE_EXTERN_C -extern "C" { -#endif -#endif - -/* Version IDs for the JPEG library. - * Might be useful for tests like "#if JPEG_LIB_VERSION >= 90". - */ - -#define JPEG_LIB_VERSION 90 /* Compatibility version 9.0 */ -#define JPEG_LIB_VERSION_MAJOR 9 -#define JPEG_LIB_VERSION_MINOR 2 - - -/* Various constants determining the sizes of things. - * All of these are specified by the JPEG standard, - * so don't change them if you want to be compatible. - */ - -#define DCTSIZE 8 /* The basic DCT block is 8x8 coefficients */ -#define DCTSIZE2 64 /* DCTSIZE squared; # of elements in a block */ -#define NUM_QUANT_TBLS 4 /* Quantization tables are numbered 0..3 */ -#define NUM_HUFF_TBLS 4 /* Huffman tables are numbered 0..3 */ -#define NUM_ARITH_TBLS 16 /* Arith-coding tables are numbered 0..15 */ -#define MAX_COMPS_IN_SCAN 4 /* JPEG limit on # of components in one scan */ -#define MAX_SAMP_FACTOR 4 /* JPEG limit on sampling factors */ -/* Unfortunately, some bozo at Adobe saw no reason to be bound by the standard; - * the PostScript DCT filter can emit files with many more than 10 blocks/MCU. - * If you happen to run across such a file, you can up D_MAX_BLOCKS_IN_MCU - * to handle it. We even let you do this from the jconfig.h file. However, - * we strongly discourage changing C_MAX_BLOCKS_IN_MCU; just because Adobe - * sometimes emits noncompliant files doesn't mean you should too. - */ -#define C_MAX_BLOCKS_IN_MCU 10 /* compressor's limit on blocks per MCU */ -#ifndef D_MAX_BLOCKS_IN_MCU -#define D_MAX_BLOCKS_IN_MCU 10 /* decompressor's limit on blocks per MCU */ -#endif - - -/* Data structures for images (arrays of samples and of DCT coefficients). - * On 80x86 machines, the image arrays are too big for near pointers, - * but the pointer arrays can fit in near memory. - */ - -typedef JSAMPLE FAR *JSAMPROW; /* ptr to one image row of pixel samples. */ -typedef JSAMPROW *JSAMPARRAY; /* ptr to some rows (a 2-D sample array) */ -typedef JSAMPARRAY *JSAMPIMAGE; /* a 3-D sample array: top index is color */ - -typedef JCOEF JBLOCK[DCTSIZE2]; /* one block of coefficients */ -typedef JBLOCK FAR *JBLOCKROW; /* pointer to one row of coefficient blocks */ -typedef JBLOCKROW *JBLOCKARRAY; /* a 2-D array of coefficient blocks */ -typedef JBLOCKARRAY *JBLOCKIMAGE; /* a 3-D array of coefficient blocks */ - -typedef JCOEF FAR *JCOEFPTR; /* useful in a couple of places */ - - -/* Types for JPEG compression parameters and working tables. */ - - -/* DCT coefficient quantization tables. */ - -typedef struct { - /* This array gives the coefficient quantizers in natural array order - * (not the zigzag order in which they are stored in a JPEG DQT marker). - * CAUTION: IJG versions prior to v6a kept this array in zigzag order. - */ - UINT16 quantval[DCTSIZE2]; /* quantization step for each coefficient */ - /* This field is used only during compression. It's initialized FALSE when - * the table is created, and set TRUE when it's been output to the file. - * You could suppress output of a table by setting this to TRUE. - * (See jpeg_suppress_tables for an example.) - */ - boolean sent_table; /* TRUE when table has been output */ -} JQUANT_TBL; - - -/* Huffman coding tables. */ - -typedef struct { - /* These two fields directly represent the contents of a JPEG DHT marker */ - UINT8 bits[17]; /* bits[k] = # of symbols with codes of */ - /* length k bits; bits[0] is unused */ - UINT8 huffval[256]; /* The symbols, in order of incr code length */ - /* This field is used only during compression. It's initialized FALSE when - * the table is created, and set TRUE when it's been output to the file. - * You could suppress output of a table by setting this to TRUE. - * (See jpeg_suppress_tables for an example.) - */ - boolean sent_table; /* TRUE when table has been output */ -} JHUFF_TBL; - - -/* Basic info about one component (color channel). */ - -typedef struct { - /* These values are fixed over the whole image. */ - /* For compression, they must be supplied by parameter setup; */ - /* for decompression, they are read from the SOF marker. */ - int component_id; /* identifier for this component (0..255) */ - int component_index; /* its index in SOF or cinfo->comp_info[] */ - int h_samp_factor; /* horizontal sampling factor (1..4) */ - int v_samp_factor; /* vertical sampling factor (1..4) */ - int quant_tbl_no; /* quantization table selector (0..3) */ - /* These values may vary between scans. */ - /* For compression, they must be supplied by parameter setup; */ - /* for decompression, they are read from the SOS marker. */ - /* The decompressor output side may not use these variables. */ - int dc_tbl_no; /* DC entropy table selector (0..3) */ - int ac_tbl_no; /* AC entropy table selector (0..3) */ - - /* Remaining fields should be treated as private by applications. */ - - /* These values are computed during compression or decompression startup: */ - /* Component's size in DCT blocks. - * Any dummy blocks added to complete an MCU are not counted; therefore - * these values do not depend on whether a scan is interleaved or not. - */ - JDIMENSION width_in_blocks; - JDIMENSION height_in_blocks; - /* Size of a DCT block in samples, - * reflecting any scaling we choose to apply during the DCT step. - * Values from 1 to 16 are supported. - * Note that different components may receive different DCT scalings. - */ - int DCT_h_scaled_size; - int DCT_v_scaled_size; - /* The downsampled dimensions are the component's actual, unpadded number - * of samples at the main buffer (preprocessing/compression interface); - * DCT scaling is included, so - * downsampled_width = - * ceil(image_width * Hi/Hmax * DCT_h_scaled_size/block_size) - * and similarly for height. - */ - JDIMENSION downsampled_width; /* actual width in samples */ - JDIMENSION downsampled_height; /* actual height in samples */ - /* For decompression, in cases where some of the components will be - * ignored (eg grayscale output from YCbCr image), we can skip most - * computations for the unused components. - * For compression, some of the components will need further quantization - * scale by factor of 2 after DCT (eg BG_YCC output from normal RGB input). - * The field is first set TRUE for decompression, FALSE for compression - * in initial_setup, and then adapted in color conversion setup. - */ - boolean component_needed; - - /* These values are computed before starting a scan of the component. */ - /* The decompressor output side may not use these variables. */ - int MCU_width; /* number of blocks per MCU, horizontally */ - int MCU_height; /* number of blocks per MCU, vertically */ - int MCU_blocks; /* MCU_width * MCU_height */ - int MCU_sample_width; /* MCU width in samples: MCU_width * DCT_h_scaled_size */ - int last_col_width; /* # of non-dummy blocks across in last MCU */ - int last_row_height; /* # of non-dummy blocks down in last MCU */ - - /* Saved quantization table for component; NULL if none yet saved. - * See jdinput.c comments about the need for this information. - * This field is currently used only for decompression. - */ - JQUANT_TBL * quant_table; - - /* Private per-component storage for DCT or IDCT subsystem. */ - void * dct_table; -} jpeg_component_info; - - -/* The script for encoding a multiple-scan file is an array of these: */ - -typedef struct { - int comps_in_scan; /* number of components encoded in this scan */ - int component_index[MAX_COMPS_IN_SCAN]; /* their SOF/comp_info[] indexes */ - int Ss, Se; /* progressive JPEG spectral selection parms */ - int Ah, Al; /* progressive JPEG successive approx. parms */ -} jpeg_scan_info; - -/* The decompressor can save APPn and COM markers in a list of these: */ - -typedef struct jpeg_marker_struct FAR * jpeg_saved_marker_ptr; - -struct jpeg_marker_struct { - jpeg_saved_marker_ptr next; /* next in list, or NULL */ - UINT8 marker; /* marker code: JPEG_COM, or JPEG_APP0+n */ - unsigned int original_length; /* # bytes of data in the file */ - unsigned int data_length; /* # bytes of data saved at data[] */ - JOCTET FAR * data; /* the data contained in the marker */ - /* the marker length word is not counted in data_length or original_length */ -}; - -/* Known color spaces. */ - -typedef enum { - JCS_UNKNOWN, /* error/unspecified */ - JCS_GRAYSCALE, /* monochrome */ - JCS_RGB, /* red/green/blue, standard RGB (sRGB) */ - JCS_YCbCr, /* Y/Cb/Cr (also known as YUV), standard YCC */ - JCS_CMYK, /* C/M/Y/K */ - JCS_YCCK, /* Y/Cb/Cr/K */ - JCS_BG_RGB, /* big gamut red/green/blue, bg-sRGB */ - JCS_BG_YCC /* big gamut Y/Cb/Cr, bg-sYCC */ -} J_COLOR_SPACE; - -/* Supported color transforms. */ - -typedef enum { - JCT_NONE = 0, - JCT_SUBTRACT_GREEN = 1 -} J_COLOR_TRANSFORM; - -/* DCT/IDCT algorithm options. */ - -typedef enum { - JDCT_ISLOW, /* slow but accurate integer algorithm */ - JDCT_IFAST, /* faster, less accurate integer method */ - JDCT_FLOAT /* floating-point: accurate, fast on fast HW */ -} J_DCT_METHOD; - -#ifndef JDCT_DEFAULT /* may be overridden in jconfig.h */ -#define JDCT_DEFAULT JDCT_ISLOW -#endif -#ifndef JDCT_FASTEST /* may be overridden in jconfig.h */ -#define JDCT_FASTEST JDCT_IFAST -#endif - -/* Dithering options for decompression. */ - -typedef enum { - JDITHER_NONE, /* no dithering */ - JDITHER_ORDERED, /* simple ordered dither */ - JDITHER_FS /* Floyd-Steinberg error diffusion dither */ -} J_DITHER_MODE; - - -/* Common fields between JPEG compression and decompression master structs. */ - -#define jpeg_common_fields \ - struct jpeg_error_mgr * err; /* Error handler module */\ - struct jpeg_memory_mgr * mem; /* Memory manager module */\ - struct jpeg_progress_mgr * progress; /* Progress monitor, or NULL if none */\ - void * client_data; /* Available for use by application */\ - boolean is_decompressor; /* So common code can tell which is which */\ - int global_state /* For checking call sequence validity */ - -/* Routines that are to be used by both halves of the library are declared - * to receive a pointer to this structure. There are no actual instances of - * jpeg_common_struct, only of jpeg_compress_struct and jpeg_decompress_struct. - */ -struct jpeg_common_struct { - jpeg_common_fields; /* Fields common to both master struct types */ - /* Additional fields follow in an actual jpeg_compress_struct or - * jpeg_decompress_struct. All three structs must agree on these - * initial fields! (This would be a lot cleaner in C++.) - */ -}; - -typedef struct jpeg_common_struct * j_common_ptr; -typedef struct jpeg_compress_struct * j_compress_ptr; -typedef struct jpeg_decompress_struct * j_decompress_ptr; - - -/* Master record for a compression instance */ - -struct jpeg_compress_struct { - jpeg_common_fields; /* Fields shared with jpeg_decompress_struct */ - - /* Destination for compressed data */ - struct jpeg_destination_mgr * dest; - - /* Description of source image --- these fields must be filled in by - * outer application before starting compression. in_color_space must - * be correct before you can even call jpeg_set_defaults(). - */ - - JDIMENSION image_width; /* input image width */ - JDIMENSION image_height; /* input image height */ - int input_components; /* # of color components in input image */ - J_COLOR_SPACE in_color_space; /* colorspace of input image */ - - double input_gamma; /* image gamma of input image */ - - /* Compression parameters --- these fields must be set before calling - * jpeg_start_compress(). We recommend calling jpeg_set_defaults() to - * initialize everything to reasonable defaults, then changing anything - * the application specifically wants to change. That way you won't get - * burnt when new parameters are added. Also note that there are several - * helper routines to simplify changing parameters. - */ - - unsigned int scale_num, scale_denom; /* fraction by which to scale image */ - - JDIMENSION jpeg_width; /* scaled JPEG image width */ - JDIMENSION jpeg_height; /* scaled JPEG image height */ - /* Dimensions of actual JPEG image that will be written to file, - * derived from input dimensions by scaling factors above. - * These fields are computed by jpeg_start_compress(). - * You can also use jpeg_calc_jpeg_dimensions() to determine these values - * in advance of calling jpeg_start_compress(). - */ - - int data_precision; /* bits of precision in image data */ - - int num_components; /* # of color components in JPEG image */ - J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ - - jpeg_component_info * comp_info; - /* comp_info[i] describes component that appears i'th in SOF */ - - JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS]; - int q_scale_factor[NUM_QUANT_TBLS]; - /* ptrs to coefficient quantization tables, or NULL if not defined, - * and corresponding scale factors (percentage, initialized 100). - */ - - JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; - JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; - /* ptrs to Huffman coding tables, or NULL if not defined */ - - UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ - UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ - UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ - - int num_scans; /* # of entries in scan_info array */ - const jpeg_scan_info * scan_info; /* script for multi-scan file, or NULL */ - /* The default value of scan_info is NULL, which causes a single-scan - * sequential JPEG file to be emitted. To create a multi-scan file, - * set num_scans and scan_info to point to an array of scan definitions. - */ - - boolean raw_data_in; /* TRUE=caller supplies downsampled data */ - boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ - boolean optimize_coding; /* TRUE=optimize entropy encoding parms */ - boolean CCIR601_sampling; /* TRUE=first samples are cosited */ - boolean do_fancy_downsampling; /* TRUE=apply fancy downsampling */ - int smoothing_factor; /* 1..100, or 0 for no input smoothing */ - J_DCT_METHOD dct_method; /* DCT algorithm selector */ - - /* The restart interval can be specified in absolute MCUs by setting - * restart_interval, or in MCU rows by setting restart_in_rows - * (in which case the correct restart_interval will be figured - * for each scan). - */ - unsigned int restart_interval; /* MCUs per restart, or 0 for no restart */ - int restart_in_rows; /* if > 0, MCU rows per restart interval */ - - /* Parameters controlling emission of special markers. */ - - boolean write_JFIF_header; /* should a JFIF marker be written? */ - UINT8 JFIF_major_version; /* What to write for the JFIF version number */ - UINT8 JFIF_minor_version; - /* These three values are not used by the JPEG code, merely copied */ - /* into the JFIF APP0 marker. density_unit can be 0 for unknown, */ - /* 1 for dots/inch, or 2 for dots/cm. Note that the pixel aspect */ - /* ratio is defined by X_density/Y_density even when density_unit=0. */ - UINT8 density_unit; /* JFIF code for pixel size units */ - UINT16 X_density; /* Horizontal pixel density */ - UINT16 Y_density; /* Vertical pixel density */ - boolean write_Adobe_marker; /* should an Adobe marker be written? */ - - J_COLOR_TRANSFORM color_transform; - /* Color transform identifier, writes LSE marker if nonzero */ - - /* State variable: index of next scanline to be written to - * jpeg_write_scanlines(). Application may use this to control its - * processing loop, e.g., "while (next_scanline < image_height)". - */ - - JDIMENSION next_scanline; /* 0 .. image_height-1 */ - - /* Remaining fields are known throughout compressor, but generally - * should not be touched by a surrounding application. - */ - - /* - * These fields are computed during compression startup - */ - boolean progressive_mode; /* TRUE if scan script uses progressive mode */ - int max_h_samp_factor; /* largest h_samp_factor */ - int max_v_samp_factor; /* largest v_samp_factor */ - - int min_DCT_h_scaled_size; /* smallest DCT_h_scaled_size of any component */ - int min_DCT_v_scaled_size; /* smallest DCT_v_scaled_size of any component */ - - JDIMENSION total_iMCU_rows; /* # of iMCU rows to be input to coef ctlr */ - /* The coefficient controller receives data in units of MCU rows as defined - * for fully interleaved scans (whether the JPEG file is interleaved or not). - * There are v_samp_factor * DCTSIZE sample rows of each component in an - * "iMCU" (interleaved MCU) row. - */ - - /* - * These fields are valid during any one scan. - * They describe the components and MCUs actually appearing in the scan. - */ - int comps_in_scan; /* # of JPEG components in this scan */ - jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]; - /* *cur_comp_info[i] describes component that appears i'th in SOS */ - - JDIMENSION MCUs_per_row; /* # of MCUs across the image */ - JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ - - int blocks_in_MCU; /* # of DCT blocks per MCU */ - int MCU_membership[C_MAX_BLOCKS_IN_MCU]; - /* MCU_membership[i] is index in cur_comp_info of component owning */ - /* i'th block in an MCU */ - - int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ - - int block_size; /* the basic DCT block size: 1..16 */ - const int * natural_order; /* natural-order position array */ - int lim_Se; /* min( Se, DCTSIZE2-1 ) */ - - /* - * Links to compression subobjects (methods and private variables of modules) - */ - struct jpeg_comp_master * master; - struct jpeg_c_main_controller * main; - struct jpeg_c_prep_controller * prep; - struct jpeg_c_coef_controller * coef; - struct jpeg_marker_writer * marker; - struct jpeg_color_converter * cconvert; - struct jpeg_downsampler * downsample; - struct jpeg_forward_dct * fdct; - struct jpeg_entropy_encoder * entropy; - jpeg_scan_info * script_space; /* workspace for jpeg_simple_progression */ - int script_space_size; -}; - - -/* Master record for a decompression instance */ - -struct jpeg_decompress_struct { - jpeg_common_fields; /* Fields shared with jpeg_compress_struct */ - - /* Source of compressed data */ - struct jpeg_source_mgr * src; - - /* Basic description of image --- filled in by jpeg_read_header(). */ - /* Application may inspect these values to decide how to process image. */ - - JDIMENSION image_width; /* nominal image width (from SOF marker) */ - JDIMENSION image_height; /* nominal image height */ - int num_components; /* # of color components in JPEG image */ - J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ - - /* Decompression processing parameters --- these fields must be set before - * calling jpeg_start_decompress(). Note that jpeg_read_header() initializes - * them to default values. - */ - - J_COLOR_SPACE out_color_space; /* colorspace for output */ - - unsigned int scale_num, scale_denom; /* fraction by which to scale image */ - - double output_gamma; /* image gamma wanted in output */ - - boolean buffered_image; /* TRUE=multiple output passes */ - boolean raw_data_out; /* TRUE=downsampled data wanted */ - - J_DCT_METHOD dct_method; /* IDCT algorithm selector */ - boolean do_fancy_upsampling; /* TRUE=apply fancy upsampling */ - boolean do_block_smoothing; /* TRUE=apply interblock smoothing */ - - boolean quantize_colors; /* TRUE=colormapped output wanted */ - /* the following are ignored if not quantize_colors: */ - J_DITHER_MODE dither_mode; /* type of color dithering to use */ - boolean two_pass_quantize; /* TRUE=use two-pass color quantization */ - int desired_number_of_colors; /* max # colors to use in created colormap */ - /* these are significant only in buffered-image mode: */ - boolean enable_1pass_quant; /* enable future use of 1-pass quantizer */ - boolean enable_external_quant;/* enable future use of external colormap */ - boolean enable_2pass_quant; /* enable future use of 2-pass quantizer */ - - /* Description of actual output image that will be returned to application. - * These fields are computed by jpeg_start_decompress(). - * You can also use jpeg_calc_output_dimensions() to determine these values - * in advance of calling jpeg_start_decompress(). - */ - - JDIMENSION output_width; /* scaled image width */ - JDIMENSION output_height; /* scaled image height */ - int out_color_components; /* # of color components in out_color_space */ - int output_components; /* # of color components returned */ - /* output_components is 1 (a colormap index) when quantizing colors; - * otherwise it equals out_color_components. - */ - int rec_outbuf_height; /* min recommended height of scanline buffer */ - /* If the buffer passed to jpeg_read_scanlines() is less than this many rows - * high, space and time will be wasted due to unnecessary data copying. - * Usually rec_outbuf_height will be 1 or 2, at most 4. - */ - - /* When quantizing colors, the output colormap is described by these fields. - * The application can supply a colormap by setting colormap non-NULL before - * calling jpeg_start_decompress; otherwise a colormap is created during - * jpeg_start_decompress or jpeg_start_output. - * The map has out_color_components rows and actual_number_of_colors columns. - */ - int actual_number_of_colors; /* number of entries in use */ - JSAMPARRAY colormap; /* The color map as a 2-D pixel array */ - - /* State variables: these variables indicate the progress of decompression. - * The application may examine these but must not modify them. - */ - - /* Row index of next scanline to be read from jpeg_read_scanlines(). - * Application may use this to control its processing loop, e.g., - * "while (output_scanline < output_height)". - */ - JDIMENSION output_scanline; /* 0 .. output_height-1 */ - - /* Current input scan number and number of iMCU rows completed in scan. - * These indicate the progress of the decompressor input side. - */ - int input_scan_number; /* Number of SOS markers seen so far */ - JDIMENSION input_iMCU_row; /* Number of iMCU rows completed */ - - /* The "output scan number" is the notional scan being displayed by the - * output side. The decompressor will not allow output scan/row number - * to get ahead of input scan/row, but it can fall arbitrarily far behind. - */ - int output_scan_number; /* Nominal scan number being displayed */ - JDIMENSION output_iMCU_row; /* Number of iMCU rows read */ - - /* Current progression status. coef_bits[c][i] indicates the precision - * with which component c's DCT coefficient i (in zigzag order) is known. - * It is -1 when no data has yet been received, otherwise it is the point - * transform (shift) value for the most recent scan of the coefficient - * (thus, 0 at completion of the progression). - * This pointer is NULL when reading a non-progressive file. - */ - int (*coef_bits)[DCTSIZE2]; /* -1 or current Al value for each coef */ - - /* Internal JPEG parameters --- the application usually need not look at - * these fields. Note that the decompressor output side may not use - * any parameters that can change between scans. - */ - - /* Quantization and Huffman tables are carried forward across input - * datastreams when processing abbreviated JPEG datastreams. - */ - - JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS]; - /* ptrs to coefficient quantization tables, or NULL if not defined */ - - JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; - JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; - /* ptrs to Huffman coding tables, or NULL if not defined */ - - /* These parameters are never carried across datastreams, since they - * are given in SOF/SOS markers or defined to be reset by SOI. - */ - - int data_precision; /* bits of precision in image data */ - - jpeg_component_info * comp_info; - /* comp_info[i] describes component that appears i'th in SOF */ - - boolean is_baseline; /* TRUE if Baseline SOF0 encountered */ - boolean progressive_mode; /* TRUE if SOFn specifies progressive mode */ - boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ - - UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ - UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ - UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ - - unsigned int restart_interval; /* MCUs per restart interval, or 0 for no restart */ - - /* These fields record data obtained from optional markers recognized by - * the JPEG library. - */ - boolean saw_JFIF_marker; /* TRUE iff a JFIF APP0 marker was found */ - /* Data copied from JFIF marker; only valid if saw_JFIF_marker is TRUE: */ - UINT8 JFIF_major_version; /* JFIF version number */ - UINT8 JFIF_minor_version; - UINT8 density_unit; /* JFIF code for pixel size units */ - UINT16 X_density; /* Horizontal pixel density */ - UINT16 Y_density; /* Vertical pixel density */ - boolean saw_Adobe_marker; /* TRUE iff an Adobe APP14 marker was found */ - UINT8 Adobe_transform; /* Color transform code from Adobe marker */ - - J_COLOR_TRANSFORM color_transform; - /* Color transform identifier derived from LSE marker, otherwise zero */ - - boolean CCIR601_sampling; /* TRUE=first samples are cosited */ - - /* Aside from the specific data retained from APPn markers known to the - * library, the uninterpreted contents of any or all APPn and COM markers - * can be saved in a list for examination by the application. - */ - jpeg_saved_marker_ptr marker_list; /* Head of list of saved markers */ - - /* Remaining fields are known throughout decompressor, but generally - * should not be touched by a surrounding application. - */ - - /* - * These fields are computed during decompression startup - */ - int max_h_samp_factor; /* largest h_samp_factor */ - int max_v_samp_factor; /* largest v_samp_factor */ - - int min_DCT_h_scaled_size; /* smallest DCT_h_scaled_size of any component */ - int min_DCT_v_scaled_size; /* smallest DCT_v_scaled_size of any component */ - - JDIMENSION total_iMCU_rows; /* # of iMCU rows in image */ - /* The coefficient controller's input and output progress is measured in - * units of "iMCU" (interleaved MCU) rows. These are the same as MCU rows - * in fully interleaved JPEG scans, but are used whether the scan is - * interleaved or not. We define an iMCU row as v_samp_factor DCT block - * rows of each component. Therefore, the IDCT output contains - * v_samp_factor*DCT_v_scaled_size sample rows of a component per iMCU row. - */ - - JSAMPLE * sample_range_limit; /* table for fast range-limiting */ - - /* - * These fields are valid during any one scan. - * They describe the components and MCUs actually appearing in the scan. - * Note that the decompressor output side must not use these fields. - */ - int comps_in_scan; /* # of JPEG components in this scan */ - jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]; - /* *cur_comp_info[i] describes component that appears i'th in SOS */ - - JDIMENSION MCUs_per_row; /* # of MCUs across the image */ - JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ - - int blocks_in_MCU; /* # of DCT blocks per MCU */ - int MCU_membership[D_MAX_BLOCKS_IN_MCU]; - /* MCU_membership[i] is index in cur_comp_info of component owning */ - /* i'th block in an MCU */ - - int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ - - /* These fields are derived from Se of first SOS marker. - */ - int block_size; /* the basic DCT block size: 1..16 */ - const int * natural_order; /* natural-order position array for entropy decode */ - int lim_Se; /* min( Se, DCTSIZE2-1 ) for entropy decode */ - - /* This field is shared between entropy decoder and marker parser. - * It is either zero or the code of a JPEG marker that has been - * read from the data source, but has not yet been processed. - */ - int unread_marker; - - /* - * Links to decompression subobjects (methods, private variables of modules) - */ - struct jpeg_decomp_master * master; - struct jpeg_d_main_controller * main; - struct jpeg_d_coef_controller * coef; - struct jpeg_d_post_controller * post; - struct jpeg_input_controller * inputctl; - struct jpeg_marker_reader * marker; - struct jpeg_entropy_decoder * entropy; - struct jpeg_inverse_dct * idct; - struct jpeg_upsampler * upsample; - struct jpeg_color_deconverter * cconvert; - struct jpeg_color_quantizer * cquantize; -}; - - -/* "Object" declarations for JPEG modules that may be supplied or called - * directly by the surrounding application. - * As with all objects in the JPEG library, these structs only define the - * publicly visible methods and state variables of a module. Additional - * private fields may exist after the public ones. - */ - - -/* Error handler object */ - -struct jpeg_error_mgr { - /* Error exit handler: does not return to caller */ - JMETHOD(noreturn_t, error_exit, (j_common_ptr cinfo)); - /* Conditionally emit a trace or warning message */ - JMETHOD(void, emit_message, (j_common_ptr cinfo, int msg_level)); - /* Routine that actually outputs a trace or error message */ - JMETHOD(void, output_message, (j_common_ptr cinfo)); - /* Format a message string for the most recent JPEG error or message */ - JMETHOD(void, format_message, (j_common_ptr cinfo, char * buffer)); -#define JMSG_LENGTH_MAX 200 /* recommended size of format_message buffer */ - /* Reset error state variables at start of a new image */ - JMETHOD(void, reset_error_mgr, (j_common_ptr cinfo)); - - /* The message ID code and any parameters are saved here. - * A message can have one string parameter or up to 8 int parameters. - */ - int msg_code; -#define JMSG_STR_PARM_MAX 80 - union { - int i[8]; - char s[JMSG_STR_PARM_MAX]; - } msg_parm; - - /* Standard state variables for error facility */ - - int trace_level; /* max msg_level that will be displayed */ - - /* For recoverable corrupt-data errors, we emit a warning message, - * but keep going unless emit_message chooses to abort. emit_message - * should count warnings in num_warnings. The surrounding application - * can check for bad data by seeing if num_warnings is nonzero at the - * end of processing. - */ - long num_warnings; /* number of corrupt-data warnings */ - - /* These fields point to the table(s) of error message strings. - * An application can change the table pointer to switch to a different - * message list (typically, to change the language in which errors are - * reported). Some applications may wish to add additional error codes - * that will be handled by the JPEG library error mechanism; the second - * table pointer is used for this purpose. - * - * First table includes all errors generated by JPEG library itself. - * Error code 0 is reserved for a "no such error string" message. - */ - const char * const * jpeg_message_table; /* Library errors */ - int last_jpeg_message; /* Table contains strings 0..last_jpeg_message */ - /* Second table can be added by application (see cjpeg/djpeg for example). - * It contains strings numbered first_addon_message..last_addon_message. - */ - const char * const * addon_message_table; /* Non-library errors */ - int first_addon_message; /* code for first string in addon table */ - int last_addon_message; /* code for last string in addon table */ -}; - - -/* Progress monitor object */ - -struct jpeg_progress_mgr { - JMETHOD(void, progress_monitor, (j_common_ptr cinfo)); - - long pass_counter; /* work units completed in this pass */ - long pass_limit; /* total number of work units in this pass */ - int completed_passes; /* passes completed so far */ - int total_passes; /* total number of passes expected */ -}; - - -/* Data destination object for compression */ - -struct jpeg_destination_mgr { - JOCTET * next_output_byte; /* => next byte to write in buffer */ - size_t free_in_buffer; /* # of byte spaces remaining in buffer */ - - JMETHOD(void, init_destination, (j_compress_ptr cinfo)); - JMETHOD(boolean, empty_output_buffer, (j_compress_ptr cinfo)); - JMETHOD(void, term_destination, (j_compress_ptr cinfo)); -}; - - -/* Data source object for decompression */ - -struct jpeg_source_mgr { - const JOCTET * next_input_byte; /* => next byte to read from buffer */ - size_t bytes_in_buffer; /* # of bytes remaining in buffer */ - - JMETHOD(void, init_source, (j_decompress_ptr cinfo)); - JMETHOD(boolean, fill_input_buffer, (j_decompress_ptr cinfo)); - JMETHOD(void, skip_input_data, (j_decompress_ptr cinfo, long num_bytes)); - JMETHOD(boolean, resync_to_restart, (j_decompress_ptr cinfo, int desired)); - JMETHOD(void, term_source, (j_decompress_ptr cinfo)); -}; - - -/* Memory manager object. - * Allocates "small" objects (a few K total), "large" objects (tens of K), - * and "really big" objects (virtual arrays with backing store if needed). - * The memory manager does not allow individual objects to be freed; rather, - * each created object is assigned to a pool, and whole pools can be freed - * at once. This is faster and more convenient than remembering exactly what - * to free, especially where malloc()/free() are not too speedy. - * NB: alloc routines never return NULL. They exit to error_exit if not - * successful. - */ - -#define JPOOL_PERMANENT 0 /* lasts until master record is destroyed */ -#define JPOOL_IMAGE 1 /* lasts until done with image/datastream */ -#define JPOOL_NUMPOOLS 2 - -typedef struct jvirt_sarray_control * jvirt_sarray_ptr; -typedef struct jvirt_barray_control * jvirt_barray_ptr; - - -struct jpeg_memory_mgr { - /* Method pointers */ - JMETHOD(void *, alloc_small, (j_common_ptr cinfo, int pool_id, - size_t sizeofobject)); - JMETHOD(void FAR *, alloc_large, (j_common_ptr cinfo, int pool_id, - size_t sizeofobject)); - JMETHOD(JSAMPARRAY, alloc_sarray, (j_common_ptr cinfo, int pool_id, - JDIMENSION samplesperrow, - JDIMENSION numrows)); - JMETHOD(JBLOCKARRAY, alloc_barray, (j_common_ptr cinfo, int pool_id, - JDIMENSION blocksperrow, - JDIMENSION numrows)); - JMETHOD(jvirt_sarray_ptr, request_virt_sarray, (j_common_ptr cinfo, - int pool_id, - boolean pre_zero, - JDIMENSION samplesperrow, - JDIMENSION numrows, - JDIMENSION maxaccess)); - JMETHOD(jvirt_barray_ptr, request_virt_barray, (j_common_ptr cinfo, - int pool_id, - boolean pre_zero, - JDIMENSION blocksperrow, - JDIMENSION numrows, - JDIMENSION maxaccess)); - JMETHOD(void, realize_virt_arrays, (j_common_ptr cinfo)); - JMETHOD(JSAMPARRAY, access_virt_sarray, (j_common_ptr cinfo, - jvirt_sarray_ptr ptr, - JDIMENSION start_row, - JDIMENSION num_rows, - boolean writable)); - JMETHOD(JBLOCKARRAY, access_virt_barray, (j_common_ptr cinfo, - jvirt_barray_ptr ptr, - JDIMENSION start_row, - JDIMENSION num_rows, - boolean writable)); - JMETHOD(void, free_pool, (j_common_ptr cinfo, int pool_id)); - JMETHOD(void, self_destruct, (j_common_ptr cinfo)); - - /* Limit on memory allocation for this JPEG object. (Note that this is - * merely advisory, not a guaranteed maximum; it only affects the space - * used for virtual-array buffers.) May be changed by outer application - * after creating the JPEG object. - */ - long max_memory_to_use; - - /* Maximum allocation request accepted by alloc_large. */ - long max_alloc_chunk; -}; - - -/* Routine signature for application-supplied marker processing methods. - * Need not pass marker code since it is stored in cinfo->unread_marker. - */ -typedef JMETHOD(boolean, jpeg_marker_parser_method, (j_decompress_ptr cinfo)); - - -/* Declarations for routines called by application. - * The JPP macro hides prototype parameters from compilers that can't cope. - * Note JPP requires double parentheses. - */ - -#ifdef HAVE_PROTOTYPES -#define JPP(arglist) arglist -#else -#define JPP(arglist) () -#endif - - -/* Short forms of external names for systems with brain-damaged linkers. - * We shorten external names to be unique in the first six letters, which - * is good enough for all known systems. - * (If your compiler itself needs names to be unique in less than 15 - * characters, you are out of luck. Get a better compiler.) - */ - -#ifdef NEED_SHORT_EXTERNAL_NAMES -#define jpeg_std_error jStdError -#define jpeg_CreateCompress jCreaCompress -#define jpeg_CreateDecompress jCreaDecompress -#define jpeg_destroy_compress jDestCompress -#define jpeg_destroy_decompress jDestDecompress -#define jpeg_stdio_dest jStdDest -#define jpeg_stdio_src jStdSrc -#define jpeg_mem_dest jMemDest -#define jpeg_mem_src jMemSrc -#define jpeg_set_defaults jSetDefaults -#define jpeg_set_colorspace jSetColorspace -#define jpeg_default_colorspace jDefColorspace -#define jpeg_set_quality jSetQuality -#define jpeg_set_linear_quality jSetLQuality -#define jpeg_default_qtables jDefQTables -#define jpeg_add_quant_table jAddQuantTable -#define jpeg_quality_scaling jQualityScaling -#define jpeg_simple_progression jSimProgress -#define jpeg_suppress_tables jSuppressTables -#define jpeg_alloc_quant_table jAlcQTable -#define jpeg_alloc_huff_table jAlcHTable -#define jpeg_start_compress jStrtCompress -#define jpeg_write_scanlines jWrtScanlines -#define jpeg_finish_compress jFinCompress -#define jpeg_calc_jpeg_dimensions jCjpegDimensions -#define jpeg_write_raw_data jWrtRawData -#define jpeg_write_marker jWrtMarker -#define jpeg_write_m_header jWrtMHeader -#define jpeg_write_m_byte jWrtMByte -#define jpeg_write_tables jWrtTables -#define jpeg_read_header jReadHeader -#define jpeg_start_decompress jStrtDecompress -#define jpeg_read_scanlines jReadScanlines -#define jpeg_finish_decompress jFinDecompress -#define jpeg_read_raw_data jReadRawData -#define jpeg_has_multiple_scans jHasMultScn -#define jpeg_start_output jStrtOutput -#define jpeg_finish_output jFinOutput -#define jpeg_input_complete jInComplete -#define jpeg_new_colormap jNewCMap -#define jpeg_consume_input jConsumeInput -#define jpeg_core_output_dimensions jCoreDimensions -#define jpeg_calc_output_dimensions jCalcDimensions -#define jpeg_save_markers jSaveMarkers -#define jpeg_set_marker_processor jSetMarker -#define jpeg_read_coefficients jReadCoefs -#define jpeg_write_coefficients jWrtCoefs -#define jpeg_copy_critical_parameters jCopyCrit -#define jpeg_abort_compress jAbrtCompress -#define jpeg_abort_decompress jAbrtDecompress -#define jpeg_abort jAbort -#define jpeg_destroy jDestroy -#define jpeg_resync_to_restart jResyncRestart -#endif /* NEED_SHORT_EXTERNAL_NAMES */ - - -/* Default error-management setup */ -EXTERN(struct jpeg_error_mgr *) jpeg_std_error - JPP((struct jpeg_error_mgr * err)); - -/* Initialization of JPEG compression objects. - * jpeg_create_compress() and jpeg_create_decompress() are the exported - * names that applications should call. These expand to calls on - * jpeg_CreateCompress and jpeg_CreateDecompress with additional information - * passed for version mismatch checking. - * NB: you must set up the error-manager BEFORE calling jpeg_create_xxx. - */ -#define jpeg_create_compress(cinfo) \ - jpeg_CreateCompress((cinfo), JPEG_LIB_VERSION, \ - (size_t) sizeof(struct jpeg_compress_struct)) -#define jpeg_create_decompress(cinfo) \ - jpeg_CreateDecompress((cinfo), JPEG_LIB_VERSION, \ - (size_t) sizeof(struct jpeg_decompress_struct)) -EXTERN(void) jpeg_CreateCompress JPP((j_compress_ptr cinfo, - int version, size_t structsize)); -EXTERN(void) jpeg_CreateDecompress JPP((j_decompress_ptr cinfo, - int version, size_t structsize)); -/* Destruction of JPEG compression objects */ -EXTERN(void) jpeg_destroy_compress JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_destroy_decompress JPP((j_decompress_ptr cinfo)); - -/* Standard data source and destination managers: stdio streams. */ -/* Caller is responsible for opening the file before and closing after. */ -EXTERN(void) jpeg_stdio_dest JPP((j_compress_ptr cinfo, FILE * outfile)); -EXTERN(void) jpeg_stdio_src JPP((j_decompress_ptr cinfo, FILE * infile)); - -/* Data source and destination managers: memory buffers. */ -EXTERN(void) jpeg_mem_dest JPP((j_compress_ptr cinfo, - unsigned char ** outbuffer, - unsigned long * outsize)); -EXTERN(void) jpeg_mem_src JPP((j_decompress_ptr cinfo, - const unsigned char * inbuffer, - unsigned long insize)); - -/* Default parameter setup for compression */ -EXTERN(void) jpeg_set_defaults JPP((j_compress_ptr cinfo)); -/* Compression parameter setup aids */ -EXTERN(void) jpeg_set_colorspace JPP((j_compress_ptr cinfo, - J_COLOR_SPACE colorspace)); -EXTERN(void) jpeg_default_colorspace JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_set_quality JPP((j_compress_ptr cinfo, int quality, - boolean force_baseline)); -EXTERN(void) jpeg_set_linear_quality JPP((j_compress_ptr cinfo, - int scale_factor, - boolean force_baseline)); -EXTERN(void) jpeg_default_qtables JPP((j_compress_ptr cinfo, - boolean force_baseline)); -EXTERN(void) jpeg_add_quant_table JPP((j_compress_ptr cinfo, int which_tbl, - const unsigned int *basic_table, - int scale_factor, - boolean force_baseline)); -EXTERN(int) jpeg_quality_scaling JPP((int quality)); -EXTERN(void) jpeg_simple_progression JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_suppress_tables JPP((j_compress_ptr cinfo, - boolean suppress)); -EXTERN(JQUANT_TBL *) jpeg_alloc_quant_table JPP((j_common_ptr cinfo)); -EXTERN(JHUFF_TBL *) jpeg_alloc_huff_table JPP((j_common_ptr cinfo)); - -/* Main entry points for compression */ -EXTERN(void) jpeg_start_compress JPP((j_compress_ptr cinfo, - boolean write_all_tables)); -EXTERN(JDIMENSION) jpeg_write_scanlines JPP((j_compress_ptr cinfo, - JSAMPARRAY scanlines, - JDIMENSION num_lines)); -EXTERN(void) jpeg_finish_compress JPP((j_compress_ptr cinfo)); - -/* Precalculate JPEG dimensions for current compression parameters. */ -EXTERN(void) jpeg_calc_jpeg_dimensions JPP((j_compress_ptr cinfo)); - -/* Replaces jpeg_write_scanlines when writing raw downsampled data. */ -EXTERN(JDIMENSION) jpeg_write_raw_data JPP((j_compress_ptr cinfo, - JSAMPIMAGE data, - JDIMENSION num_lines)); - -/* Write a special marker. See libjpeg.txt concerning safe usage. */ -EXTERN(void) jpeg_write_marker - JPP((j_compress_ptr cinfo, int marker, - const JOCTET * dataptr, unsigned int datalen)); -/* Same, but piecemeal. */ -EXTERN(void) jpeg_write_m_header - JPP((j_compress_ptr cinfo, int marker, unsigned int datalen)); -EXTERN(void) jpeg_write_m_byte - JPP((j_compress_ptr cinfo, int val)); - -/* Alternate compression function: just write an abbreviated table file */ -EXTERN(void) jpeg_write_tables JPP((j_compress_ptr cinfo)); - -/* Decompression startup: read start of JPEG datastream to see what's there */ -EXTERN(int) jpeg_read_header JPP((j_decompress_ptr cinfo, - boolean require_image)); -/* Return value is one of: */ -#define JPEG_SUSPENDED 0 /* Suspended due to lack of input data */ -#define JPEG_HEADER_OK 1 /* Found valid image datastream */ -#define JPEG_HEADER_TABLES_ONLY 2 /* Found valid table-specs-only datastream */ -/* If you pass require_image = TRUE (normal case), you need not check for - * a TABLES_ONLY return code; an abbreviated file will cause an error exit. - * JPEG_SUSPENDED is only possible if you use a data source module that can - * give a suspension return (the stdio source module doesn't). - */ - -/* Main entry points for decompression */ -EXTERN(boolean) jpeg_start_decompress JPP((j_decompress_ptr cinfo)); -EXTERN(JDIMENSION) jpeg_read_scanlines JPP((j_decompress_ptr cinfo, - JSAMPARRAY scanlines, - JDIMENSION max_lines)); -EXTERN(boolean) jpeg_finish_decompress JPP((j_decompress_ptr cinfo)); - -/* Replaces jpeg_read_scanlines when reading raw downsampled data. */ -EXTERN(JDIMENSION) jpeg_read_raw_data JPP((j_decompress_ptr cinfo, - JSAMPIMAGE data, - JDIMENSION max_lines)); - -/* Additional entry points for buffered-image mode. */ -EXTERN(boolean) jpeg_has_multiple_scans JPP((j_decompress_ptr cinfo)); -EXTERN(boolean) jpeg_start_output JPP((j_decompress_ptr cinfo, - int scan_number)); -EXTERN(boolean) jpeg_finish_output JPP((j_decompress_ptr cinfo)); -EXTERN(boolean) jpeg_input_complete JPP((j_decompress_ptr cinfo)); -EXTERN(void) jpeg_new_colormap JPP((j_decompress_ptr cinfo)); -EXTERN(int) jpeg_consume_input JPP((j_decompress_ptr cinfo)); -/* Return value is one of: */ -/* #define JPEG_SUSPENDED 0 Suspended due to lack of input data */ -#define JPEG_REACHED_SOS 1 /* Reached start of new scan */ -#define JPEG_REACHED_EOI 2 /* Reached end of image */ -#define JPEG_ROW_COMPLETED 3 /* Completed one iMCU row */ -#define JPEG_SCAN_COMPLETED 4 /* Completed last iMCU row of a scan */ - -/* Precalculate output dimensions for current decompression parameters. */ -EXTERN(void) jpeg_core_output_dimensions JPP((j_decompress_ptr cinfo)); -EXTERN(void) jpeg_calc_output_dimensions JPP((j_decompress_ptr cinfo)); - -/* Control saving of COM and APPn markers into marker_list. */ -EXTERN(void) jpeg_save_markers - JPP((j_decompress_ptr cinfo, int marker_code, - unsigned int length_limit)); - -/* Install a special processing method for COM or APPn markers. */ -EXTERN(void) jpeg_set_marker_processor - JPP((j_decompress_ptr cinfo, int marker_code, - jpeg_marker_parser_method routine)); - -/* Read or write raw DCT coefficients --- useful for lossless transcoding. */ -EXTERN(jvirt_barray_ptr *) jpeg_read_coefficients JPP((j_decompress_ptr cinfo)); -EXTERN(void) jpeg_write_coefficients JPP((j_compress_ptr cinfo, - jvirt_barray_ptr * coef_arrays)); -EXTERN(void) jpeg_copy_critical_parameters JPP((j_decompress_ptr srcinfo, - j_compress_ptr dstinfo)); - -/* If you choose to abort compression or decompression before completing - * jpeg_finish_(de)compress, then you need to clean up to release memory, - * temporary files, etc. You can just call jpeg_destroy_(de)compress - * if you're done with the JPEG object, but if you want to clean it up and - * reuse it, call this: - */ -EXTERN(void) jpeg_abort_compress JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_abort_decompress JPP((j_decompress_ptr cinfo)); - -/* Generic versions of jpeg_abort and jpeg_destroy that work on either - * flavor of JPEG object. These may be more convenient in some places. - */ -EXTERN(void) jpeg_abort JPP((j_common_ptr cinfo)); -EXTERN(void) jpeg_destroy JPP((j_common_ptr cinfo)); - -/* Default restart-marker-resync procedure for use by data source modules */ -EXTERN(boolean) jpeg_resync_to_restart JPP((j_decompress_ptr cinfo, - int desired)); - - -/* These marker codes are exported since applications and data source modules - * are likely to want to use them. - */ - -#define JPEG_RST0 0xD0 /* RST0 marker code */ -#define JPEG_EOI 0xD9 /* EOI marker code */ -#define JPEG_APP0 0xE0 /* APP0 marker code */ -#define JPEG_COM 0xFE /* COM marker code */ - - -/* If we have a brain-damaged compiler that emits warnings (or worse, errors) - * for structure definitions that are never filled in, keep it quiet by - * supplying dummy definitions for the various substructures. - */ - -#ifdef INCOMPLETE_TYPES_BROKEN -#ifndef JPEG_INTERNALS /* will be defined in jpegint.h */ -struct jvirt_sarray_control { long dummy; }; -struct jvirt_barray_control { long dummy; }; -struct jpeg_comp_master { long dummy; }; -struct jpeg_c_main_controller { long dummy; }; -struct jpeg_c_prep_controller { long dummy; }; -struct jpeg_c_coef_controller { long dummy; }; -struct jpeg_marker_writer { long dummy; }; -struct jpeg_color_converter { long dummy; }; -struct jpeg_downsampler { long dummy; }; -struct jpeg_forward_dct { long dummy; }; -struct jpeg_entropy_encoder { long dummy; }; -struct jpeg_decomp_master { long dummy; }; -struct jpeg_d_main_controller { long dummy; }; -struct jpeg_d_coef_controller { long dummy; }; -struct jpeg_d_post_controller { long dummy; }; -struct jpeg_input_controller { long dummy; }; -struct jpeg_marker_reader { long dummy; }; -struct jpeg_entropy_decoder { long dummy; }; -struct jpeg_inverse_dct { long dummy; }; -struct jpeg_upsampler { long dummy; }; -struct jpeg_color_deconverter { long dummy; }; -struct jpeg_color_quantizer { long dummy; }; -#endif /* JPEG_INTERNALS */ -#endif /* INCOMPLETE_TYPES_BROKEN */ - - -/* - * The JPEG library modules define JPEG_INTERNALS before including this file. - * The internal structure declarations are read only when that is true. - * Applications using the library should not include jpegint.h, but may wish - * to include jerror.h. - */ - -#ifdef JPEG_INTERNALS -#include "jpegint.h" /* fetch private declarations */ -#include "jerror.h" /* fetch error codes too */ -#endif - -#ifdef __cplusplus -#ifndef DONT_USE_EXTERN_C -} -#endif -#endif - -#endif /* JPEGLIB_H */ diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/png.h b/extension/SDL2_image-2.0.3/VisualC/external/include/png.h deleted file mode 100755 index 51ac8ab..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/png.h +++ /dev/null @@ -1,3276 +0,0 @@ - -/* png.h - header file for PNG reference library - * - * libpng version 1.6.32, August 24, 2017 - * - * Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) - * - * This code is released under the libpng license (See LICENSE, below) - * - * Authors and maintainers: - * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat - * libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.6.32, August 24, 2017: - * Glenn Randers-Pehrson. - * See also "Contributing Authors", below. - */ - -/* - * COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: - * - * If you modify libpng you may insert additional notices immediately following - * this sentence. - * - * This code is released under the libpng license. - * - * libpng versions 1.0.7, July 1, 2000 through 1.6.32, August 24, 2017 are - * Copyright (c) 2000-2002, 2004, 2006-2017 Glenn Randers-Pehrson, are - * derived from libpng-1.0.6, and are distributed according to the same - * disclaimer and license as libpng-1.0.6 with the following individuals - * added to the list of Contributing Authors: - * - * Simon-Pierre Cadieux - * Eric S. Raymond - * Mans Rullgard - * Cosmin Truta - * Gilles Vollant - * James Yu - * Mandar Sahastrabuddhe - * Google Inc. - * Vadim Barkov - * - * and with the following additions to the disclaimer: - * - * There is no warranty against interference with your enjoyment of the - * library or against infringement. There is no warranty that our - * efforts or the library will fulfill any of your particular purposes - * or needs. This library is provided with all faults, and the entire - * risk of satisfactory quality, performance, accuracy, and effort is with - * the user. - * - * Some files in the "contrib" directory and some configure-generated - * files that are distributed with libpng have other copyright owners and - * are released under other open source licenses. - * - * libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are - * Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from - * libpng-0.96, and are distributed according to the same disclaimer and - * license as libpng-0.96, with the following individuals added to the list - * of Contributing Authors: - * - * Tom Lane - * Glenn Randers-Pehrson - * Willem van Schaik - * - * libpng versions 0.89, June 1996, through 0.96, May 1997, are - * Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, - * and are distributed according to the same disclaimer and license as - * libpng-0.88, with the following individuals added to the list of - * Contributing Authors: - * - * John Bowler - * Kevin Bracey - * Sam Bushell - * Magnus Holmgren - * Greg Roelofs - * Tom Tanner - * - * Some files in the "scripts" directory have other copyright owners - * but are released under this license. - * - * libpng versions 0.5, May 1995, through 0.88, January 1996, are - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * For the purposes of this copyright and license, "Contributing Authors" - * is defined as the following set of individuals: - * - * Andreas Dilger - * Dave Martindale - * Guy Eric Schalnat - * Paul Schmidt - * Tim Wegner - * - * The PNG Reference Library is supplied "AS IS". The Contributing Authors - * and Group 42, Inc. disclaim all warranties, expressed or implied, - * including, without limitation, the warranties of merchantability and of - * fitness for any purpose. The Contributing Authors and Group 42, Inc. - * assume no liability for direct, indirect, incidental, special, exemplary, - * or consequential damages, which may result from the use of the PNG - * Reference Library, even if advised of the possibility of such damage. - * - * Permission is hereby granted to use, copy, modify, and distribute this - * source code, or portions hereof, for any purpose, without fee, subject - * to the following restrictions: - * - * 1. The origin of this source code must not be misrepresented. - * - * 2. Altered versions must be plainly marked as such and must not - * be misrepresented as being the original source. - * - * 3. This Copyright notice may not be removed or altered from any - * source or altered source distribution. - * - * The Contributing Authors and Group 42, Inc. specifically permit, without - * fee, and encourage the use of this source code as a component to - * supporting the PNG file format in commercial products. If you use this - * source code in a product, acknowledgment is not required but would be - * appreciated. - * - * END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE. - * - * TRADEMARK: - * - * The name "libpng" has not been registered by the Copyright owner - * as a trademark in any jurisdiction. However, because libpng has - * been distributed and maintained world-wide, continually since 1995, - * the Copyright owner claims "common-law trademark protection" in any - * jurisdiction where common-law trademark is recognized. - * - * OSI CERTIFICATION: - * - * Libpng is OSI Certified Open Source Software. OSI Certified Open Source is - * a certification mark of the Open Source Initiative. OSI has not addressed - * the additional disclaimers inserted at version 1.0.7. - * - * EXPORT CONTROL: - * - * The Copyright owner believes that the Export Control Classification - * Number (ECCN) for libpng is EAR99, which means not subject to export - * controls or International Traffic in Arms Regulations (ITAR) because - * it is open source, publicly available software, that does not contain - * any encryption software. See the EAR, paragraphs 734.3(b)(3) and - * 734.7(b). - */ - -/* - * A "png_get_copyright" function is available, for convenient use in "about" - * boxes and the like: - * - * printf("%s", png_get_copyright(NULL)); - * - * Also, the PNG logo (in PNG format, of course) is supplied in the - * files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). - */ - -/* - * The contributing authors would like to thank all those who helped - * with testing, bug fixes, and patience. This wouldn't have been - * possible without all of you. - * - * Thanks to Frank J. T. Wojcik for helping with the documentation. - */ - -/* Note about libpng version numbers: - * - * Due to various miscommunications, unforeseen code incompatibilities - * and occasional factors outside the authors' control, version numbering - * on the library has not always been consistent and straightforward. - * The following table summarizes matters since version 0.89c, which was - * the first widely used release: - * - * source png.h png.h shared-lib - * version string int version - * ------- ------ ----- ---------- - * 0.89c "1.0 beta 3" 0.89 89 1.0.89 - * 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90] - * 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95] - * 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96] - * 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97] - * 0.97c 0.97 97 2.0.97 - * 0.98 0.98 98 2.0.98 - * 0.99 0.99 98 2.0.99 - * 0.99a-m 0.99 99 2.0.99 - * 1.00 1.00 100 2.1.0 [100 should be 10000] - * 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000] - * 1.0.1 png.h string is 10001 2.1.0 - * 1.0.1a-e identical to the 10002 from here on, the shared library - * 1.0.2 source version) 10002 is 2.V where V is the source code - * 1.0.2a-b 10003 version, except as noted. - * 1.0.3 10003 - * 1.0.3a-d 10004 - * 1.0.4 10004 - * 1.0.4a-f 10005 - * 1.0.5 (+ 2 patches) 10005 - * 1.0.5a-d 10006 - * 1.0.5e-r 10100 (not source compatible) - * 1.0.5s-v 10006 (not binary compatible) - * 1.0.6 (+ 3 patches) 10006 (still binary incompatible) - * 1.0.6d-f 10007 (still binary incompatible) - * 1.0.6g 10007 - * 1.0.6h 10007 10.6h (testing xy.z so-numbering) - * 1.0.6i 10007 10.6i - * 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0) - * 1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible) - * 1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible) - * 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible) - * 1.0.7 1 10007 (still compatible) - * ... - * 1.0.19 10 10019 10.so.0.19[.0] - * ... - * 1.2.57 13 10257 12.so.0.57[.0] - * ... - * 1.5.28 15 10527 15.so.15.28[.0] - * ... - * 1.6.32 16 10632 16.so.16.32[.0] - * - * Henceforth the source version will match the shared-library major - * and minor numbers; the shared-library major version number will be - * used for changes in backward compatibility, as it is intended. The - * PNG_LIBPNG_VER macro, which is not used within libpng but is available - * for applications, is an unsigned integer of the form xyyzz corresponding - * to the source version x.y.z (leading zeros in y and z). Beta versions - * were given the previous public release number plus a letter, until - * version 1.0.6j; from then on they were given the upcoming public - * release number plus "betaNN" or "rcNN". - * - * Binary incompatibility exists only when applications make direct access - * to the info_ptr or png_ptr members through png.h, and the compiled - * application is loaded with a different version of the library. - * - * DLLNUM will change each time there are forward or backward changes - * in binary compatibility (e.g., when a new feature is added). - * - * See libpng.txt or libpng.3 for more information. The PNG specification - * is available as a W3C Recommendation and as an ISO Specification, - * - * - * If you just need to read a PNG file and don't want to read the documentation - * skip to the end of this file and read the section entitled 'simplified API'. - */ - -/* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.6.32" -#define PNG_HEADER_VERSION_STRING " libpng version 1.6.32 - August 24, 2017\n" - -#define PNG_LIBPNG_VER_SONUM 16 -#define PNG_LIBPNG_VER_DLLNUM 16 - -/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ -#define PNG_LIBPNG_VER_MAJOR 1 -#define PNG_LIBPNG_VER_MINOR 6 -#define PNG_LIBPNG_VER_RELEASE 32 - -/* This should match the numeric part of the final component of - * PNG_LIBPNG_VER_STRING, omitting any leading zero: - */ - -#define PNG_LIBPNG_VER_BUILD 0 - -/* Release Status */ -#define PNG_LIBPNG_BUILD_ALPHA 1 -#define PNG_LIBPNG_BUILD_BETA 2 -#define PNG_LIBPNG_BUILD_RC 3 -#define PNG_LIBPNG_BUILD_STABLE 4 -#define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7 - -/* Release-Specific Flags */ -#define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with - PNG_LIBPNG_BUILD_STABLE only */ -#define PNG_LIBPNG_BUILD_PRIVATE 16 /* Cannot be OR'ed with - PNG_LIBPNG_BUILD_SPECIAL */ -#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with - PNG_LIBPNG_BUILD_PRIVATE */ - -#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE - -/* Careful here. At one time, Guy wanted to use 082, but that would be octal. - * We must not include leading zeros. - * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only - * version 1.0.0 was mis-numbered 100 instead of 10000). From - * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release - */ -#define PNG_LIBPNG_VER 10632 /* 1.6.32 */ - -/* Library configuration: these options cannot be changed after - * the library has been built. - */ -#ifndef PNGLCONF_H -/* If pnglibconf.h is missing, you can - * copy scripts/pnglibconf.h.prebuilt to pnglibconf.h - */ -# include "pnglibconf.h" -#endif - -#ifndef PNG_VERSION_INFO_ONLY -/* Machine specific configuration. */ -# include "pngconf.h" -#endif - -/* - * Added at libpng-1.2.8 - * - * Ref MSDN: Private as priority over Special - * VS_FF_PRIVATEBUILD File *was not* built using standard release - * procedures. If this value is given, the StringFileInfo block must - * contain a PrivateBuild string. - * - * VS_FF_SPECIALBUILD File *was* built by the original company using - * standard release procedures but is a variation of the standard - * file of the same version number. If this value is given, the - * StringFileInfo block must contain a SpecialBuild string. - */ - -#ifdef PNG_USER_PRIVATEBUILD /* From pnglibconf.h */ -# define PNG_LIBPNG_BUILD_TYPE \ - (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE) -#else -# ifdef PNG_LIBPNG_SPECIALBUILD -# define PNG_LIBPNG_BUILD_TYPE \ - (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL) -# else -# define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE) -# endif -#endif - -#ifndef PNG_VERSION_INFO_ONLY - -/* Inhibit C++ name-mangling for libpng functions but not for system calls. */ -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Version information for C files, stored in png.c. This had better match - * the version above. - */ -#define png_libpng_ver png_get_header_ver(NULL) - -/* This file is arranged in several sections: - * - * 1. [omitted] - * 2. Any configuration options that can be specified by for the application - * code when it is built. (Build time configuration is in pnglibconf.h) - * 3. Type definitions (base types are defined in pngconf.h), structure - * definitions. - * 4. Exported library functions. - * 5. Simplified API. - * 6. Implementation options. - * - * The library source code has additional files (principally pngpriv.h) that - * allow configuration of the library. - */ - -/* Section 1: [omitted] */ - -/* Section 2: run time configuration - * See pnglibconf.h for build time configuration - * - * Run time configuration allows the application to choose between - * implementations of certain arithmetic APIs. The default is set - * at build time and recorded in pnglibconf.h, but it is safe to - * override these (and only these) settings. Note that this won't - * change what the library does, only application code, and the - * settings can (and probably should) be made on a per-file basis - * by setting the #defines before including png.h - * - * Use macros to read integers from PNG data or use the exported - * functions? - * PNG_USE_READ_MACROS: use the macros (see below) Note that - * the macros evaluate their argument multiple times. - * PNG_NO_USE_READ_MACROS: call the relevant library function. - * - * Use the alternative algorithm for compositing alpha samples that - * does not use division? - * PNG_READ_COMPOSITE_NODIV_SUPPORTED: use the 'no division' - * algorithm. - * PNG_NO_READ_COMPOSITE_NODIV: use the 'division' algorithm. - * - * How to handle benign errors if PNG_ALLOW_BENIGN_ERRORS is - * false? - * PNG_ALLOW_BENIGN_ERRORS: map calls to the benign error - * APIs to png_warning. - * Otherwise the calls are mapped to png_error. - */ - -/* Section 3: type definitions, including structures and compile time - * constants. - * See pngconf.h for base types that vary by machine/system - */ - -/* This triggers a compiler error in png.c, if png.c and png.h - * do not agree upon the version number. - */ -typedef char* png_libpng_version_1_6_32; - -/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. - * - * png_struct is the cache of information used while reading or writing a single - * PNG file. One of these is always required, although the simplified API - * (below) hides the creation and destruction of it. - */ -typedef struct png_struct_def png_struct; -typedef const png_struct * png_const_structp; -typedef png_struct * png_structp; -typedef png_struct * * png_structpp; - -/* png_info contains information read from or to be written to a PNG file. One - * or more of these must exist while reading or creating a PNG file. The - * information is not used by libpng during read but is used to control what - * gets written when a PNG file is created. "png_get_" function calls read - * information during read and "png_set_" functions calls write information - * when creating a PNG. - * been moved into a separate header file that is not accessible to - * applications. Read libpng-manual.txt or libpng.3 for more info. - */ -typedef struct png_info_def png_info; -typedef png_info * png_infop; -typedef const png_info * png_const_infop; -typedef png_info * * png_infopp; - -/* Types with names ending 'p' are pointer types. The corresponding types with - * names ending 'rp' are identical pointer types except that the pointer is - * marked 'restrict', which means that it is the only pointer to the object - * passed to the function. Applications should not use the 'restrict' types; - * it is always valid to pass 'p' to a pointer with a function argument of the - * corresponding 'rp' type. Different compilers have different rules with - * regard to type matching in the presence of 'restrict'. For backward - * compatibility libpng callbacks never have 'restrict' in their parameters and, - * consequentially, writing portable application code is extremely difficult if - * an attempt is made to use 'restrict'. - */ -typedef png_struct * PNG_RESTRICT png_structrp; -typedef const png_struct * PNG_RESTRICT png_const_structrp; -typedef png_info * PNG_RESTRICT png_inforp; -typedef const png_info * PNG_RESTRICT png_const_inforp; - -/* Three color definitions. The order of the red, green, and blue, (and the - * exact size) is not important, although the size of the fields need to - * be png_byte or png_uint_16 (as defined below). - */ -typedef struct png_color_struct -{ - png_byte red; - png_byte green; - png_byte blue; -} png_color; -typedef png_color * png_colorp; -typedef const png_color * png_const_colorp; -typedef png_color * * png_colorpp; - -typedef struct png_color_16_struct -{ - png_byte index; /* used for palette files */ - png_uint_16 red; /* for use in red green blue files */ - png_uint_16 green; - png_uint_16 blue; - png_uint_16 gray; /* for use in grayscale files */ -} png_color_16; -typedef png_color_16 * png_color_16p; -typedef const png_color_16 * png_const_color_16p; -typedef png_color_16 * * png_color_16pp; - -typedef struct png_color_8_struct -{ - png_byte red; /* for use in red green blue files */ - png_byte green; - png_byte blue; - png_byte gray; /* for use in grayscale files */ - png_byte alpha; /* for alpha channel files */ -} png_color_8; -typedef png_color_8 * png_color_8p; -typedef const png_color_8 * png_const_color_8p; -typedef png_color_8 * * png_color_8pp; - -/* - * The following two structures are used for the in-core representation - * of sPLT chunks. - */ -typedef struct png_sPLT_entry_struct -{ - png_uint_16 red; - png_uint_16 green; - png_uint_16 blue; - png_uint_16 alpha; - png_uint_16 frequency; -} png_sPLT_entry; -typedef png_sPLT_entry * png_sPLT_entryp; -typedef const png_sPLT_entry * png_const_sPLT_entryp; -typedef png_sPLT_entry * * png_sPLT_entrypp; - -/* When the depth of the sPLT palette is 8 bits, the color and alpha samples - * occupy the LSB of their respective members, and the MSB of each member - * is zero-filled. The frequency member always occupies the full 16 bits. - */ - -typedef struct png_sPLT_struct -{ - png_charp name; /* palette name */ - png_byte depth; /* depth of palette samples */ - png_sPLT_entryp entries; /* palette entries */ - png_int_32 nentries; /* number of palette entries */ -} png_sPLT_t; -typedef png_sPLT_t * png_sPLT_tp; -typedef const png_sPLT_t * png_const_sPLT_tp; -typedef png_sPLT_t * * png_sPLT_tpp; - -#ifdef PNG_TEXT_SUPPORTED -/* png_text holds the contents of a text/ztxt/itxt chunk in a PNG file, - * and whether that contents is compressed or not. The "key" field - * points to a regular zero-terminated C string. The "text" fields can be a - * regular C string, an empty string, or a NULL pointer. - * However, the structure returned by png_get_text() will always contain - * the "text" field as a regular zero-terminated C string (possibly - * empty), never a NULL pointer, so it can be safely used in printf() and - * other string-handling functions. Note that the "itxt_length", "lang", and - * "lang_key" members of the structure only exist when the library is built - * with iTXt chunk support. Prior to libpng-1.4.0 the library was built by - * default without iTXt support. Also note that when iTXt *is* supported, - * the "lang" and "lang_key" fields contain NULL pointers when the - * "compression" field contains * PNG_TEXT_COMPRESSION_NONE or - * PNG_TEXT_COMPRESSION_zTXt. Note that the "compression value" is not the - * same as what appears in the PNG tEXt/zTXt/iTXt chunk's "compression flag" - * which is always 0 or 1, or its "compression method" which is always 0. - */ -typedef struct png_text_struct -{ - int compression; /* compression value: - -1: tEXt, none - 0: zTXt, deflate - 1: iTXt, none - 2: iTXt, deflate */ - png_charp key; /* keyword, 1-79 character description of "text" */ - png_charp text; /* comment, may be an empty string (ie "") - or a NULL pointer */ - png_size_t text_length; /* length of the text string */ - png_size_t itxt_length; /* length of the itxt string */ - png_charp lang; /* language code, 0-79 characters - or a NULL pointer */ - png_charp lang_key; /* keyword translated UTF-8 string, 0 or more - chars or a NULL pointer */ -} png_text; -typedef png_text * png_textp; -typedef const png_text * png_const_textp; -typedef png_text * * png_textpp; -#endif - -/* Supported compression types for text in PNG files (tEXt, and zTXt). - * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. */ -#define PNG_TEXT_COMPRESSION_NONE_WR -3 -#define PNG_TEXT_COMPRESSION_zTXt_WR -2 -#define PNG_TEXT_COMPRESSION_NONE -1 -#define PNG_TEXT_COMPRESSION_zTXt 0 -#define PNG_ITXT_COMPRESSION_NONE 1 -#define PNG_ITXT_COMPRESSION_zTXt 2 -#define PNG_TEXT_COMPRESSION_LAST 3 /* Not a valid value */ - -/* png_time is a way to hold the time in an machine independent way. - * Two conversions are provided, both from time_t and struct tm. There - * is no portable way to convert to either of these structures, as far - * as I know. If you know of a portable way, send it to me. As a side - * note - PNG has always been Year 2000 compliant! - */ -typedef struct png_time_struct -{ - png_uint_16 year; /* full year, as in, 1995 */ - png_byte month; /* month of year, 1 - 12 */ - png_byte day; /* day of month, 1 - 31 */ - png_byte hour; /* hour of day, 0 - 23 */ - png_byte minute; /* minute of hour, 0 - 59 */ - png_byte second; /* second of minute, 0 - 60 (for leap seconds) */ -} png_time; -typedef png_time * png_timep; -typedef const png_time * png_const_timep; -typedef png_time * * png_timepp; - -#if defined(PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED) ||\ - defined(PNG_USER_CHUNKS_SUPPORTED) -/* png_unknown_chunk is a structure to hold queued chunks for which there is - * no specific support. The idea is that we can use this to queue - * up private chunks for output even though the library doesn't actually - * know about their semantics. - * - * The data in the structure is set by libpng on read and used on write. - */ -typedef struct png_unknown_chunk_t -{ - png_byte name[5]; /* Textual chunk name with '\0' terminator */ - png_byte *data; /* Data, should not be modified on read! */ - png_size_t size; - - /* On write 'location' must be set using the flag values listed below. - * Notice that on read it is set by libpng however the values stored have - * more bits set than are listed below. Always treat the value as a - * bitmask. On write set only one bit - setting multiple bits may cause the - * chunk to be written in multiple places. - */ - png_byte location; /* mode of operation at read time */ -} -png_unknown_chunk; - -typedef png_unknown_chunk * png_unknown_chunkp; -typedef const png_unknown_chunk * png_const_unknown_chunkp; -typedef png_unknown_chunk * * png_unknown_chunkpp; -#endif - -/* Flag values for the unknown chunk location byte. */ -#define PNG_HAVE_IHDR 0x01 -#define PNG_HAVE_PLTE 0x02 -#define PNG_AFTER_IDAT 0x08 - -/* Maximum positive integer used in PNG is (2^31)-1 */ -#define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL) -#define PNG_UINT_32_MAX ((png_uint_32)(-1)) -#define PNG_SIZE_MAX ((png_size_t)(-1)) - -/* These are constants for fixed point values encoded in the - * PNG specification manner (x100000) - */ -#define PNG_FP_1 100000 -#define PNG_FP_HALF 50000 -#define PNG_FP_MAX ((png_fixed_point)0x7fffffffL) -#define PNG_FP_MIN (-PNG_FP_MAX) - -/* These describe the color_type field in png_info. */ -/* color type masks */ -#define PNG_COLOR_MASK_PALETTE 1 -#define PNG_COLOR_MASK_COLOR 2 -#define PNG_COLOR_MASK_ALPHA 4 - -/* color types. Note that not all combinations are legal */ -#define PNG_COLOR_TYPE_GRAY 0 -#define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE) -#define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR) -#define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA) -#define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA) -/* aliases */ -#define PNG_COLOR_TYPE_RGBA PNG_COLOR_TYPE_RGB_ALPHA -#define PNG_COLOR_TYPE_GA PNG_COLOR_TYPE_GRAY_ALPHA - -/* This is for compression type. PNG 1.0-1.2 only define the single type. */ -#define PNG_COMPRESSION_TYPE_BASE 0 /* Deflate method 8, 32K window */ -#define PNG_COMPRESSION_TYPE_DEFAULT PNG_COMPRESSION_TYPE_BASE - -/* This is for filter type. PNG 1.0-1.2 only define the single type. */ -#define PNG_FILTER_TYPE_BASE 0 /* Single row per-byte filtering */ -#define PNG_INTRAPIXEL_DIFFERENCING 64 /* Used only in MNG datastreams */ -#define PNG_FILTER_TYPE_DEFAULT PNG_FILTER_TYPE_BASE - -/* These are for the interlacing type. These values should NOT be changed. */ -#define PNG_INTERLACE_NONE 0 /* Non-interlaced image */ -#define PNG_INTERLACE_ADAM7 1 /* Adam7 interlacing */ -#define PNG_INTERLACE_LAST 2 /* Not a valid value */ - -/* These are for the oFFs chunk. These values should NOT be changed. */ -#define PNG_OFFSET_PIXEL 0 /* Offset in pixels */ -#define PNG_OFFSET_MICROMETER 1 /* Offset in micrometers (1/10^6 meter) */ -#define PNG_OFFSET_LAST 2 /* Not a valid value */ - -/* These are for the pCAL chunk. These values should NOT be changed. */ -#define PNG_EQUATION_LINEAR 0 /* Linear transformation */ -#define PNG_EQUATION_BASE_E 1 /* Exponential base e transform */ -#define PNG_EQUATION_ARBITRARY 2 /* Arbitrary base exponential transform */ -#define PNG_EQUATION_HYPERBOLIC 3 /* Hyperbolic sine transformation */ -#define PNG_EQUATION_LAST 4 /* Not a valid value */ - -/* These are for the sCAL chunk. These values should NOT be changed. */ -#define PNG_SCALE_UNKNOWN 0 /* unknown unit (image scale) */ -#define PNG_SCALE_METER 1 /* meters per pixel */ -#define PNG_SCALE_RADIAN 2 /* radians per pixel */ -#define PNG_SCALE_LAST 3 /* Not a valid value */ - -/* These are for the pHYs chunk. These values should NOT be changed. */ -#define PNG_RESOLUTION_UNKNOWN 0 /* pixels/unknown unit (aspect ratio) */ -#define PNG_RESOLUTION_METER 1 /* pixels/meter */ -#define PNG_RESOLUTION_LAST 2 /* Not a valid value */ - -/* These are for the sRGB chunk. These values should NOT be changed. */ -#define PNG_sRGB_INTENT_PERCEPTUAL 0 -#define PNG_sRGB_INTENT_RELATIVE 1 -#define PNG_sRGB_INTENT_SATURATION 2 -#define PNG_sRGB_INTENT_ABSOLUTE 3 -#define PNG_sRGB_INTENT_LAST 4 /* Not a valid value */ - -/* This is for text chunks */ -#define PNG_KEYWORD_MAX_LENGTH 79 - -/* Maximum number of entries in PLTE/sPLT/tRNS arrays */ -#define PNG_MAX_PALETTE_LENGTH 256 - -/* These determine if an ancillary chunk's data has been successfully read - * from the PNG header, or if the application has filled in the corresponding - * data in the info_struct to be written into the output file. The values - * of the PNG_INFO_ defines should NOT be changed. - */ -#define PNG_INFO_gAMA 0x0001U -#define PNG_INFO_sBIT 0x0002U -#define PNG_INFO_cHRM 0x0004U -#define PNG_INFO_PLTE 0x0008U -#define PNG_INFO_tRNS 0x0010U -#define PNG_INFO_bKGD 0x0020U -#define PNG_INFO_hIST 0x0040U -#define PNG_INFO_pHYs 0x0080U -#define PNG_INFO_oFFs 0x0100U -#define PNG_INFO_tIME 0x0200U -#define PNG_INFO_pCAL 0x0400U -#define PNG_INFO_sRGB 0x0800U /* GR-P, 0.96a */ -#define PNG_INFO_iCCP 0x1000U /* ESR, 1.0.6 */ -#define PNG_INFO_sPLT 0x2000U /* ESR, 1.0.6 */ -#define PNG_INFO_sCAL 0x4000U /* ESR, 1.0.6 */ -#define PNG_INFO_IDAT 0x8000U /* ESR, 1.0.6 */ -#define PNG_INFO_eXIf 0x10000U /* GR-P, 1.6.31 */ - -/* This is used for the transformation routines, as some of them - * change these values for the row. It also should enable using - * the routines for other purposes. - */ -typedef struct png_row_info_struct -{ - png_uint_32 width; /* width of row */ - png_size_t rowbytes; /* number of bytes in row */ - png_byte color_type; /* color type of row */ - png_byte bit_depth; /* bit depth of row */ - png_byte channels; /* number of channels (1, 2, 3, or 4) */ - png_byte pixel_depth; /* bits per pixel (depth * channels) */ -} png_row_info; - -typedef png_row_info * png_row_infop; -typedef png_row_info * * png_row_infopp; - -/* These are the function types for the I/O functions and for the functions - * that allow the user to override the default I/O functions with his or her - * own. The png_error_ptr type should match that of user-supplied warning - * and error functions, while the png_rw_ptr type should match that of the - * user read/write data functions. Note that the 'write' function must not - * modify the buffer it is passed. The 'read' function, on the other hand, is - * expected to return the read data in the buffer. - */ -typedef PNG_CALLBACK(void, *png_error_ptr, (png_structp, png_const_charp)); -typedef PNG_CALLBACK(void, *png_rw_ptr, (png_structp, png_bytep, png_size_t)); -typedef PNG_CALLBACK(void, *png_flush_ptr, (png_structp)); -typedef PNG_CALLBACK(void, *png_read_status_ptr, (png_structp, png_uint_32, - int)); -typedef PNG_CALLBACK(void, *png_write_status_ptr, (png_structp, png_uint_32, - int)); - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -typedef PNG_CALLBACK(void, *png_progressive_info_ptr, (png_structp, png_infop)); -typedef PNG_CALLBACK(void, *png_progressive_end_ptr, (png_structp, png_infop)); - -/* The following callback receives png_uint_32 row_number, int pass for the - * png_bytep data of the row. When transforming an interlaced image the - * row number is the row number within the sub-image of the interlace pass, so - * the value will increase to the height of the sub-image (not the full image) - * then reset to 0 for the next pass. - * - * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to - * find the output pixel (x,y) given an interlaced sub-image pixel - * (row,col,pass). (See below for these macros.) - */ -typedef PNG_CALLBACK(void, *png_progressive_row_ptr, (png_structp, png_bytep, - png_uint_32, int)); -#endif - -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) -typedef PNG_CALLBACK(void, *png_user_transform_ptr, (png_structp, png_row_infop, - png_bytep)); -#endif - -#ifdef PNG_USER_CHUNKS_SUPPORTED -typedef PNG_CALLBACK(int, *png_user_chunk_ptr, (png_structp, - png_unknown_chunkp)); -#endif -#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED -/* not used anywhere */ -/* typedef PNG_CALLBACK(void, *png_unknown_chunk_ptr, (png_structp)); */ -#endif - -#ifdef PNG_SETJMP_SUPPORTED -/* This must match the function definition in , and the application - * must include this before png.h to obtain the definition of jmp_buf. The - * function is required to be PNG_NORETURN, but this is not checked. If the - * function does return the application will crash via an abort() or similar - * system level call. - * - * If you get a warning here while building the library you may need to make - * changes to ensure that pnglibconf.h records the calling convention used by - * your compiler. This may be very difficult - try using a different compiler - * to build the library! - */ -PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), typedef); -#endif - -/* Transform masks for the high-level interface */ -#define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */ -#define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */ -#define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */ -#define PNG_TRANSFORM_PACKING 0x0004 /* read and write */ -#define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */ -#define PNG_TRANSFORM_EXPAND 0x0010 /* read only */ -#define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */ -#define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */ -#define PNG_TRANSFORM_BGR 0x0080 /* read and write */ -#define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */ -#define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */ -#define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */ -#define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only */ -/* Added to libpng-1.2.34 */ -#define PNG_TRANSFORM_STRIP_FILLER_BEFORE PNG_TRANSFORM_STRIP_FILLER -#define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */ -/* Added to libpng-1.4.0 */ -#define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */ -/* Added to libpng-1.5.4 */ -#define PNG_TRANSFORM_EXPAND_16 0x4000 /* read only */ -#if INT_MAX >= 0x8000 /* else this might break */ -#define PNG_TRANSFORM_SCALE_16 0x8000 /* read only */ -#endif - -/* Flags for MNG supported features */ -#define PNG_FLAG_MNG_EMPTY_PLTE 0x01 -#define PNG_FLAG_MNG_FILTER_64 0x04 -#define PNG_ALL_MNG_FEATURES 0x05 - -/* NOTE: prior to 1.5 these functions had no 'API' style declaration, - * this allowed the zlib default functions to be used on Windows - * platforms. In 1.5 the zlib default malloc (which just calls malloc and - * ignores the first argument) should be completely compatible with the - * following. - */ -typedef PNG_CALLBACK(png_voidp, *png_malloc_ptr, (png_structp, - png_alloc_size_t)); -typedef PNG_CALLBACK(void, *png_free_ptr, (png_structp, png_voidp)); - -/* Section 4: exported functions - * Here are the function definitions most commonly used. This is not - * the place to find out how to use libpng. See libpng-manual.txt for the - * full explanation, see example.c for the summary. This just provides - * a simple one line description of the use of each function. - * - * The PNG_EXPORT() and PNG_EXPORTA() macros used below are defined in - * pngconf.h and in the *.dfn files in the scripts directory. - * - * PNG_EXPORT(ordinal, type, name, (args)); - * - * ordinal: ordinal that is used while building - * *.def files. The ordinal value is only - * relevant when preprocessing png.h with - * the *.dfn files for building symbol table - * entries, and are removed by pngconf.h. - * type: return type of the function - * name: function name - * args: function arguments, with types - * - * When we wish to append attributes to a function prototype we use - * the PNG_EXPORTA() macro instead. - * - * PNG_EXPORTA(ordinal, type, name, (args), attributes); - * - * ordinal, type, name, and args: same as in PNG_EXPORT(). - * attributes: function attributes - */ - -/* Returns the version number of the library */ -PNG_EXPORT(1, png_uint_32, png_access_version_number, (void)); - -/* Tell lib we have already handled the first magic bytes. - * Handling more than 8 bytes from the beginning of the file is an error. - */ -PNG_EXPORT(2, void, png_set_sig_bytes, (png_structrp png_ptr, int num_bytes)); - -/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a - * PNG file. Returns zero if the supplied bytes match the 8-byte PNG - * signature, and non-zero otherwise. Having num_to_check == 0 or - * start > 7 will always fail (ie return non-zero). - */ -PNG_EXPORT(3, int, png_sig_cmp, (png_const_bytep sig, png_size_t start, - png_size_t num_to_check)); - -/* Simple signature checking function. This is the same as calling - * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). - */ -#define png_check_sig(sig, n) !png_sig_cmp((sig), 0, (n)) - -/* Allocate and initialize png_ptr struct for reading, and any other memory. */ -PNG_EXPORTA(4, png_structp, png_create_read_struct, - (png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn), - PNG_ALLOCATED); - -/* Allocate and initialize png_ptr struct for writing, and any other memory */ -PNG_EXPORTA(5, png_structp, png_create_write_struct, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn), - PNG_ALLOCATED); - -PNG_EXPORT(6, png_size_t, png_get_compression_buffer_size, - (png_const_structrp png_ptr)); - -PNG_EXPORT(7, void, png_set_compression_buffer_size, (png_structrp png_ptr, - png_size_t size)); - -/* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp - * match up. - */ -#ifdef PNG_SETJMP_SUPPORTED -/* This function returns the jmp_buf built in to *png_ptr. It must be - * supplied with an appropriate 'longjmp' function to use on that jmp_buf - * unless the default error function is overridden in which case NULL is - * acceptable. The size of the jmp_buf is checked against the actual size - * allocated by the library - the call will return NULL on a mismatch - * indicating an ABI mismatch. - */ -PNG_EXPORT(8, jmp_buf*, png_set_longjmp_fn, (png_structrp png_ptr, - png_longjmp_ptr longjmp_fn, size_t jmp_buf_size)); -# define png_jmpbuf(png_ptr) \ - (*png_set_longjmp_fn((png_ptr), longjmp, (sizeof (jmp_buf)))) -#else -# define png_jmpbuf(png_ptr) \ - (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP) -#endif -/* This function should be used by libpng applications in place of - * longjmp(png_ptr->jmpbuf, val). If longjmp_fn() has been set, it - * will use it; otherwise it will call PNG_ABORT(). This function was - * added in libpng-1.5.0. - */ -PNG_EXPORTA(9, void, png_longjmp, (png_const_structrp png_ptr, int val), - PNG_NORETURN); - -#ifdef PNG_READ_SUPPORTED -/* Reset the compression stream */ -PNG_EXPORTA(10, int, png_reset_zstream, (png_structrp png_ptr), PNG_DEPRECATED); -#endif - -/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */ -#ifdef PNG_USER_MEM_SUPPORTED -PNG_EXPORTA(11, png_structp, png_create_read_struct_2, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn, - png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), - PNG_ALLOCATED); -PNG_EXPORTA(12, png_structp, png_create_write_struct_2, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn, - png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), - PNG_ALLOCATED); -#endif - -/* Write the PNG file signature. */ -PNG_EXPORT(13, void, png_write_sig, (png_structrp png_ptr)); - -/* Write a PNG chunk - size, type, (optional) data, CRC. */ -PNG_EXPORT(14, void, png_write_chunk, (png_structrp png_ptr, png_const_bytep - chunk_name, png_const_bytep data, png_size_t length)); - -/* Write the start of a PNG chunk - length and chunk name. */ -PNG_EXPORT(15, void, png_write_chunk_start, (png_structrp png_ptr, - png_const_bytep chunk_name, png_uint_32 length)); - -/* Write the data of a PNG chunk started with png_write_chunk_start(). */ -PNG_EXPORT(16, void, png_write_chunk_data, (png_structrp png_ptr, - png_const_bytep data, png_size_t length)); - -/* Finish a chunk started with png_write_chunk_start() (includes CRC). */ -PNG_EXPORT(17, void, png_write_chunk_end, (png_structrp png_ptr)); - -/* Allocate and initialize the info structure */ -PNG_EXPORTA(18, png_infop, png_create_info_struct, (png_const_structrp png_ptr), - PNG_ALLOCATED); - -/* DEPRECATED: this function allowed init structures to be created using the - * default allocation method (typically malloc). Use is deprecated in 1.6.0 and - * the API will be removed in the future. - */ -PNG_EXPORTA(19, void, png_info_init_3, (png_infopp info_ptr, - png_size_t png_info_struct_size), PNG_DEPRECATED); - -/* Writes all the PNG information before the image. */ -PNG_EXPORT(20, void, png_write_info_before_PLTE, - (png_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(21, void, png_write_info, - (png_structrp png_ptr, png_const_inforp info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the information before the actual image data. */ -PNG_EXPORT(22, void, png_read_info, - (png_structrp png_ptr, png_inforp info_ptr)); -#endif - -#ifdef PNG_TIME_RFC1123_SUPPORTED - /* Convert to a US string format: there is no localization support in this - * routine. The original implementation used a 29 character buffer in - * png_struct, this will be removed in future versions. - */ -#if PNG_LIBPNG_VER < 10700 -/* To do: remove this from libpng17 (and from libpng17/png.c and pngstruct.h) */ -PNG_EXPORTA(23, png_const_charp, png_convert_to_rfc1123, (png_structrp png_ptr, - png_const_timep ptime),PNG_DEPRECATED); -#endif -PNG_EXPORT(241, int, png_convert_to_rfc1123_buffer, (char out[29], - png_const_timep ptime)); -#endif - -#ifdef PNG_CONVERT_tIME_SUPPORTED -/* Convert from a struct tm to png_time */ -PNG_EXPORT(24, void, png_convert_from_struct_tm, (png_timep ptime, - const struct tm * ttime)); - -/* Convert from time_t to png_time. Uses gmtime() */ -PNG_EXPORT(25, void, png_convert_from_time_t, (png_timep ptime, time_t ttime)); -#endif /* CONVERT_tIME */ - -#ifdef PNG_READ_EXPAND_SUPPORTED -/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ -PNG_EXPORT(26, void, png_set_expand, (png_structrp png_ptr)); -PNG_EXPORT(27, void, png_set_expand_gray_1_2_4_to_8, (png_structrp png_ptr)); -PNG_EXPORT(28, void, png_set_palette_to_rgb, (png_structrp png_ptr)); -PNG_EXPORT(29, void, png_set_tRNS_to_alpha, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_EXPAND_16_SUPPORTED -/* Expand to 16-bit channels, forces conversion of palette to RGB and expansion - * of a tRNS chunk if present. - */ -PNG_EXPORT(221, void, png_set_expand_16, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) -/* Use blue, green, red order for pixels. */ -PNG_EXPORT(30, void, png_set_bgr, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED -/* Expand the grayscale to 24-bit RGB if necessary. */ -PNG_EXPORT(31, void, png_set_gray_to_rgb, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED -/* Reduce RGB to grayscale. */ -#define PNG_ERROR_ACTION_NONE 1 -#define PNG_ERROR_ACTION_WARN 2 -#define PNG_ERROR_ACTION_ERROR 3 -#define PNG_RGB_TO_GRAY_DEFAULT (-1)/*for red/green coefficients*/ - -PNG_FP_EXPORT(32, void, png_set_rgb_to_gray, (png_structrp png_ptr, - int error_action, double red, double green)) -PNG_FIXED_EXPORT(33, void, png_set_rgb_to_gray_fixed, (png_structrp png_ptr, - int error_action, png_fixed_point red, png_fixed_point green)) - -PNG_EXPORT(34, png_byte, png_get_rgb_to_gray_status, (png_const_structrp - png_ptr)); -#endif - -#ifdef PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED -PNG_EXPORT(35, void, png_build_grayscale_palette, (int bit_depth, - png_colorp palette)); -#endif - -#ifdef PNG_READ_ALPHA_MODE_SUPPORTED -/* How the alpha channel is interpreted - this affects how the color channels - * of a PNG file are returned to the calling application when an alpha channel, - * or a tRNS chunk in a palette file, is present. - * - * This has no effect on the way pixels are written into a PNG output - * datastream. The color samples in a PNG datastream are never premultiplied - * with the alpha samples. - * - * The default is to return data according to the PNG specification: the alpha - * channel is a linear measure of the contribution of the pixel to the - * corresponding composited pixel, and the color channels are unassociated - * (not premultiplied). The gamma encoded color channels must be scaled - * according to the contribution and to do this it is necessary to undo - * the encoding, scale the color values, perform the composition and reencode - * the values. This is the 'PNG' mode. - * - * The alternative is to 'associate' the alpha with the color information by - * storing color channel values that have been scaled by the alpha. - * image. These are the 'STANDARD', 'ASSOCIATED' or 'PREMULTIPLIED' modes - * (the latter being the two common names for associated alpha color channels). - * - * For the 'OPTIMIZED' mode, a pixel is treated as opaque only if the alpha - * value is equal to the maximum value. - * - * The final choice is to gamma encode the alpha channel as well. This is - * broken because, in practice, no implementation that uses this choice - * correctly undoes the encoding before handling alpha composition. Use this - * choice only if other serious errors in the software or hardware you use - * mandate it; the typical serious error is for dark halos to appear around - * opaque areas of the composited PNG image because of arithmetic overflow. - * - * The API function png_set_alpha_mode specifies which of these choices to use - * with an enumerated 'mode' value and the gamma of the required output: - */ -#define PNG_ALPHA_PNG 0 /* according to the PNG standard */ -#define PNG_ALPHA_STANDARD 1 /* according to Porter/Duff */ -#define PNG_ALPHA_ASSOCIATED 1 /* as above; this is the normal practice */ -#define PNG_ALPHA_PREMULTIPLIED 1 /* as above */ -#define PNG_ALPHA_OPTIMIZED 2 /* 'PNG' for opaque pixels, else 'STANDARD' */ -#define PNG_ALPHA_BROKEN 3 /* the alpha channel is gamma encoded */ - -PNG_FP_EXPORT(227, void, png_set_alpha_mode, (png_structrp png_ptr, int mode, - double output_gamma)) -PNG_FIXED_EXPORT(228, void, png_set_alpha_mode_fixed, (png_structrp png_ptr, - int mode, png_fixed_point output_gamma)) -#endif - -#if defined(PNG_GAMMA_SUPPORTED) || defined(PNG_READ_ALPHA_MODE_SUPPORTED) -/* The output_gamma value is a screen gamma in libpng terminology: it expresses - * how to decode the output values, not how they are encoded. - */ -#define PNG_DEFAULT_sRGB -1 /* sRGB gamma and color space */ -#define PNG_GAMMA_MAC_18 -2 /* Old Mac '1.8' gamma and color space */ -#define PNG_GAMMA_sRGB 220000 /* Television standards--matches sRGB gamma */ -#define PNG_GAMMA_LINEAR PNG_FP_1 /* Linear */ -#endif - -/* The following are examples of calls to png_set_alpha_mode to achieve the - * required overall gamma correction and, where necessary, alpha - * premultiplication. - * - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); - * This is the default libpng handling of the alpha channel - it is not - * pre-multiplied into the color components. In addition the call states - * that the output is for a sRGB system and causes all PNG files without gAMA - * chunks to be assumed to be encoded using sRGB. - * - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); - * In this case the output is assumed to be something like an sRGB conformant - * display preceeded by a power-law lookup table of power 1.45. This is how - * early Mac systems behaved. - * - * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_GAMMA_LINEAR); - * This is the classic Jim Blinn approach and will work in academic - * environments where everything is done by the book. It has the shortcoming - * of assuming that input PNG data with no gamma information is linear - this - * is unlikely to be correct unless the PNG files where generated locally. - * Most of the time the output precision will be so low as to show - * significant banding in dark areas of the image. - * - * png_set_expand_16(pp); - * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_DEFAULT_sRGB); - * This is a somewhat more realistic Jim Blinn inspired approach. PNG files - * are assumed to have the sRGB encoding if not marked with a gamma value and - * the output is always 16 bits per component. This permits accurate scaling - * and processing of the data. If you know that your input PNG files were - * generated locally you might need to replace PNG_DEFAULT_sRGB with the - * correct value for your system. - * - * png_set_alpha_mode(pp, PNG_ALPHA_OPTIMIZED, PNG_DEFAULT_sRGB); - * If you just need to composite the PNG image onto an existing background - * and if you control the code that does this you can use the optimization - * setting. In this case you just copy completely opaque pixels to the - * output. For pixels that are not completely transparent (you just skip - * those) you do the composition math using png_composite or png_composite_16 - * below then encode the resultant 8-bit or 16-bit values to match the output - * encoding. - * - * Other cases - * If neither the PNG nor the standard linear encoding work for you because - * of the software or hardware you use then you have a big problem. The PNG - * case will probably result in halos around the image. The linear encoding - * will probably result in a washed out, too bright, image (it's actually too - * contrasty.) Try the ALPHA_OPTIMIZED mode above - this will probably - * substantially reduce the halos. Alternatively try: - * - * png_set_alpha_mode(pp, PNG_ALPHA_BROKEN, PNG_DEFAULT_sRGB); - * This option will also reduce the halos, but there will be slight dark - * halos round the opaque parts of the image where the background is light. - * In the OPTIMIZED mode the halos will be light halos where the background - * is dark. Take your pick - the halos are unavoidable unless you can get - * your hardware/software fixed! (The OPTIMIZED approach is slightly - * faster.) - * - * When the default gamma of PNG files doesn't match the output gamma. - * If you have PNG files with no gamma information png_set_alpha_mode allows - * you to provide a default gamma, but it also sets the ouput gamma to the - * matching value. If you know your PNG files have a gamma that doesn't - * match the output you can take advantage of the fact that - * png_set_alpha_mode always sets the output gamma but only sets the PNG - * default if it is not already set: - * - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); - * The first call sets both the default and the output gamma values, the - * second call overrides the output gamma without changing the default. This - * is easier than achieving the same effect with png_set_gamma. You must use - * PNG_ALPHA_PNG for the first call - internal checking in png_set_alpha will - * fire if more than one call to png_set_alpha_mode and png_set_background is - * made in the same read operation, however multiple calls with PNG_ALPHA_PNG - * are ignored. - */ - -#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED -PNG_EXPORT(36, void, png_set_strip_alpha, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) -PNG_EXPORT(37, void, png_set_swap_alpha, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) -PNG_EXPORT(38, void, png_set_invert_alpha, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) -/* Add a filler byte to 8-bit or 16-bit Gray or 24-bit or 48-bit RGB images. */ -PNG_EXPORT(39, void, png_set_filler, (png_structrp png_ptr, png_uint_32 filler, - int flags)); -/* The values of the PNG_FILLER_ defines should NOT be changed */ -# define PNG_FILLER_BEFORE 0 -# define PNG_FILLER_AFTER 1 -/* Add an alpha byte to 8-bit or 16-bit Gray or 24-bit or 48-bit RGB images. */ -PNG_EXPORT(40, void, png_set_add_alpha, (png_structrp png_ptr, - png_uint_32 filler, int flags)); -#endif /* READ_FILLER || WRITE_FILLER */ - -#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) -/* Swap bytes in 16-bit depth files. */ -PNG_EXPORT(41, void, png_set_swap, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) -/* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */ -PNG_EXPORT(42, void, png_set_packing, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ - defined(PNG_WRITE_PACKSWAP_SUPPORTED) -/* Swap packing order of pixels in bytes. */ -PNG_EXPORT(43, void, png_set_packswap, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) -/* Converts files to legal bit depths. */ -PNG_EXPORT(44, void, png_set_shift, (png_structrp png_ptr, png_const_color_8p - true_bits)); -#endif - -#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ - defined(PNG_WRITE_INTERLACING_SUPPORTED) -/* Have the code handle the interlacing. Returns the number of passes. - * MUST be called before png_read_update_info or png_start_read_image, - * otherwise it will not have the desired effect. Note that it is still - * necessary to call png_read_row or png_read_rows png_get_image_height - * times for each pass. -*/ -PNG_EXPORT(45, int, png_set_interlace_handling, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) -/* Invert monochrome files */ -PNG_EXPORT(46, void, png_set_invert_mono, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_BACKGROUND_SUPPORTED -/* Handle alpha and tRNS by replacing with a background color. Prior to - * libpng-1.5.4 this API must not be called before the PNG file header has been - * read. Doing so will result in unexpected behavior and possible warnings or - * errors if the PNG file contains a bKGD chunk. - */ -PNG_FP_EXPORT(47, void, png_set_background, (png_structrp png_ptr, - png_const_color_16p background_color, int background_gamma_code, - int need_expand, double background_gamma)) -PNG_FIXED_EXPORT(215, void, png_set_background_fixed, (png_structrp png_ptr, - png_const_color_16p background_color, int background_gamma_code, - int need_expand, png_fixed_point background_gamma)) -#endif -#ifdef PNG_READ_BACKGROUND_SUPPORTED -# define PNG_BACKGROUND_GAMMA_UNKNOWN 0 -# define PNG_BACKGROUND_GAMMA_SCREEN 1 -# define PNG_BACKGROUND_GAMMA_FILE 2 -# define PNG_BACKGROUND_GAMMA_UNIQUE 3 -#endif - -#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED -/* Scale a 16-bit depth file down to 8-bit, accurately. */ -PNG_EXPORT(229, void, png_set_scale_16, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED -#define PNG_READ_16_TO_8_SUPPORTED /* Name prior to 1.5.4 */ -/* Strip the second byte of information from a 16-bit depth file. */ -PNG_EXPORT(48, void, png_set_strip_16, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_QUANTIZE_SUPPORTED -/* Turn on quantizing, and reduce the palette to the number of colors - * available. - */ -PNG_EXPORT(49, void, png_set_quantize, (png_structrp png_ptr, - png_colorp palette, int num_palette, int maximum_colors, - png_const_uint_16p histogram, int full_quantize)); -#endif - -#ifdef PNG_READ_GAMMA_SUPPORTED -/* The threshold on gamma processing is configurable but hard-wired into the - * library. The following is the floating point variant. - */ -#define PNG_GAMMA_THRESHOLD (PNG_GAMMA_THRESHOLD_FIXED*.00001) - -/* Handle gamma correction. Screen_gamma=(display_exponent). - * NOTE: this API simply sets the screen and file gamma values. It will - * therefore override the value for gamma in a PNG file if it is called after - * the file header has been read - use with care - call before reading the PNG - * file for best results! - * - * These routines accept the same gamma values as png_set_alpha_mode (described - * above). The PNG_GAMMA_ defines and PNG_DEFAULT_sRGB can be passed to either - * API (floating point or fixed.) Notice, however, that the 'file_gamma' value - * is the inverse of a 'screen gamma' value. - */ -PNG_FP_EXPORT(50, void, png_set_gamma, (png_structrp png_ptr, - double screen_gamma, double override_file_gamma)) -PNG_FIXED_EXPORT(208, void, png_set_gamma_fixed, (png_structrp png_ptr, - png_fixed_point screen_gamma, png_fixed_point override_file_gamma)) -#endif - -#ifdef PNG_WRITE_FLUSH_SUPPORTED -/* Set how many lines between output flushes - 0 for no flushing */ -PNG_EXPORT(51, void, png_set_flush, (png_structrp png_ptr, int nrows)); -/* Flush the current PNG output buffer */ -PNG_EXPORT(52, void, png_write_flush, (png_structrp png_ptr)); -#endif - -/* Optional update palette with requested transformations */ -PNG_EXPORT(53, void, png_start_read_image, (png_structrp png_ptr)); - -/* Optional call to update the users info structure */ -PNG_EXPORT(54, void, png_read_update_info, (png_structrp png_ptr, - png_inforp info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read one or more rows of image data. */ -PNG_EXPORT(55, void, png_read_rows, (png_structrp png_ptr, png_bytepp row, - png_bytepp display_row, png_uint_32 num_rows)); -#endif - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read a row of data. */ -PNG_EXPORT(56, void, png_read_row, (png_structrp png_ptr, png_bytep row, - png_bytep display_row)); -#endif - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the whole image into memory at once. */ -PNG_EXPORT(57, void, png_read_image, (png_structrp png_ptr, png_bytepp image)); -#endif - -/* Write a row of image data */ -PNG_EXPORT(58, void, png_write_row, (png_structrp png_ptr, - png_const_bytep row)); - -/* Write a few rows of image data: (*row) is not written; however, the type - * is declared as writeable to maintain compatibility with previous versions - * of libpng and to allow the 'display_row' array from read_rows to be passed - * unchanged to write_rows. - */ -PNG_EXPORT(59, void, png_write_rows, (png_structrp png_ptr, png_bytepp row, - png_uint_32 num_rows)); - -/* Write the image data */ -PNG_EXPORT(60, void, png_write_image, (png_structrp png_ptr, png_bytepp image)); - -/* Write the end of the PNG file. */ -PNG_EXPORT(61, void, png_write_end, (png_structrp png_ptr, - png_inforp info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the end of the PNG file. */ -PNG_EXPORT(62, void, png_read_end, (png_structrp png_ptr, png_inforp info_ptr)); -#endif - -/* Free any memory associated with the png_info_struct */ -PNG_EXPORT(63, void, png_destroy_info_struct, (png_const_structrp png_ptr, - png_infopp info_ptr_ptr)); - -/* Free any memory associated with the png_struct and the png_info_structs */ -PNG_EXPORT(64, void, png_destroy_read_struct, (png_structpp png_ptr_ptr, - png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); - -/* Free any memory associated with the png_struct and the png_info_structs */ -PNG_EXPORT(65, void, png_destroy_write_struct, (png_structpp png_ptr_ptr, - png_infopp info_ptr_ptr)); - -/* Set the libpng method of handling chunk CRC errors */ -PNG_EXPORT(66, void, png_set_crc_action, (png_structrp png_ptr, int crit_action, - int ancil_action)); - -/* Values for png_set_crc_action() say how to handle CRC errors in - * ancillary and critical chunks, and whether to use the data contained - * therein. Note that it is impossible to "discard" data in a critical - * chunk. For versions prior to 0.90, the action was always error/quit, - * whereas in version 0.90 and later, the action for CRC errors in ancillary - * chunks is warn/discard. These values should NOT be changed. - * - * value action:critical action:ancillary - */ -#define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */ -#define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */ -#define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */ -#define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */ -#define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */ -#define PNG_CRC_NO_CHANGE 5 /* use current value use current value */ - -#ifdef PNG_WRITE_SUPPORTED -/* These functions give the user control over the scan-line filtering in - * libpng and the compression methods used by zlib. These functions are - * mainly useful for testing, as the defaults should work with most users. - * Those users who are tight on memory or want faster performance at the - * expense of compression can modify them. See the compression library - * header file (zlib.h) for an explination of the compression functions. - */ - -/* Set the filtering method(s) used by libpng. Currently, the only valid - * value for "method" is 0. - */ -PNG_EXPORT(67, void, png_set_filter, (png_structrp png_ptr, int method, - int filters)); -#endif /* WRITE */ - -/* Flags for png_set_filter() to say which filters to use. The flags - * are chosen so that they don't conflict with real filter types - * below, in case they are supplied instead of the #defined constants. - * These values should NOT be changed. - */ -#define PNG_NO_FILTERS 0x00 -#define PNG_FILTER_NONE 0x08 -#define PNG_FILTER_SUB 0x10 -#define PNG_FILTER_UP 0x20 -#define PNG_FILTER_AVG 0x40 -#define PNG_FILTER_PAETH 0x80 -#define PNG_FAST_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP) -#define PNG_ALL_FILTERS (PNG_FAST_FILTERS | PNG_FILTER_AVG | PNG_FILTER_PAETH) - -/* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now. - * These defines should NOT be changed. - */ -#define PNG_FILTER_VALUE_NONE 0 -#define PNG_FILTER_VALUE_SUB 1 -#define PNG_FILTER_VALUE_UP 2 -#define PNG_FILTER_VALUE_AVG 3 -#define PNG_FILTER_VALUE_PAETH 4 -#define PNG_FILTER_VALUE_LAST 5 - -#ifdef PNG_WRITE_SUPPORTED -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* DEPRECATED */ -PNG_FP_EXPORT(68, void, png_set_filter_heuristics, (png_structrp png_ptr, - int heuristic_method, int num_weights, png_const_doublep filter_weights, - png_const_doublep filter_costs)) -PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed, - (png_structrp png_ptr, int heuristic_method, int num_weights, - png_const_fixed_point_p filter_weights, - png_const_fixed_point_p filter_costs)) -#endif /* WRITE_WEIGHTED_FILTER */ - -/* The following are no longer used and will be removed from libpng-1.7: */ -#define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */ -#define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */ -#define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ -#define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */ - -/* Set the library compression level. Currently, valid values range from - * 0 - 9, corresponding directly to the zlib compression levels 0 - 9 - * (0 - no compression, 9 - "maximal" compression). Note that tests have - * shown that zlib compression levels 3-6 usually perform as well as level 9 - * for PNG images, and do considerably fewer caclulations. In the future, - * these values may not correspond directly to the zlib compression levels. - */ -#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED -PNG_EXPORT(69, void, png_set_compression_level, (png_structrp png_ptr, - int level)); - -PNG_EXPORT(70, void, png_set_compression_mem_level, (png_structrp png_ptr, - int mem_level)); - -PNG_EXPORT(71, void, png_set_compression_strategy, (png_structrp png_ptr, - int strategy)); - -/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a - * smaller value of window_bits if it can do so safely. - */ -PNG_EXPORT(72, void, png_set_compression_window_bits, (png_structrp png_ptr, - int window_bits)); - -PNG_EXPORT(73, void, png_set_compression_method, (png_structrp png_ptr, - int method)); -#endif /* WRITE_CUSTOMIZE_COMPRESSION */ - -#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED -/* Also set zlib parameters for compressing non-IDAT chunks */ -PNG_EXPORT(222, void, png_set_text_compression_level, (png_structrp png_ptr, - int level)); - -PNG_EXPORT(223, void, png_set_text_compression_mem_level, (png_structrp png_ptr, - int mem_level)); - -PNG_EXPORT(224, void, png_set_text_compression_strategy, (png_structrp png_ptr, - int strategy)); - -/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a - * smaller value of window_bits if it can do so safely. - */ -PNG_EXPORT(225, void, png_set_text_compression_window_bits, - (png_structrp png_ptr, int window_bits)); - -PNG_EXPORT(226, void, png_set_text_compression_method, (png_structrp png_ptr, - int method)); -#endif /* WRITE_CUSTOMIZE_ZTXT_COMPRESSION */ -#endif /* WRITE */ - -/* These next functions are called for input/output, memory, and error - * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, - * and call standard C I/O routines such as fread(), fwrite(), and - * fprintf(). These functions can be made to use other I/O routines - * at run time for those applications that need to handle I/O in a - * different manner by calling png_set_???_fn(). See libpng-manual.txt for - * more information. - */ - -#ifdef PNG_STDIO_SUPPORTED -/* Initialize the input/output for the PNG file to the default functions. */ -PNG_EXPORT(74, void, png_init_io, (png_structrp png_ptr, png_FILE_p fp)); -#endif - -/* Replace the (error and abort), and warning functions with user - * supplied functions. If no messages are to be printed you must still - * write and use replacement functions. The replacement error_fn should - * still do a longjmp to the last setjmp location if you are using this - * method of error handling. If error_fn or warning_fn is NULL, the - * default function will be used. - */ - -PNG_EXPORT(75, void, png_set_error_fn, (png_structrp png_ptr, - png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn)); - -/* Return the user pointer associated with the error functions */ -PNG_EXPORT(76, png_voidp, png_get_error_ptr, (png_const_structrp png_ptr)); - -/* Replace the default data output functions with a user supplied one(s). - * If buffered output is not used, then output_flush_fn can be set to NULL. - * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time - * output_flush_fn will be ignored (and thus can be NULL). - * It is probably a mistake to use NULL for output_flush_fn if - * write_data_fn is not also NULL unless you have built libpng with - * PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's - * default flush function, which uses the standard *FILE structure, will - * be used. - */ -PNG_EXPORT(77, void, png_set_write_fn, (png_structrp png_ptr, png_voidp io_ptr, - png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)); - -/* Replace the default data input function with a user supplied one. */ -PNG_EXPORT(78, void, png_set_read_fn, (png_structrp png_ptr, png_voidp io_ptr, - png_rw_ptr read_data_fn)); - -/* Return the user pointer associated with the I/O functions */ -PNG_EXPORT(79, png_voidp, png_get_io_ptr, (png_const_structrp png_ptr)); - -PNG_EXPORT(80, void, png_set_read_status_fn, (png_structrp png_ptr, - png_read_status_ptr read_row_fn)); - -PNG_EXPORT(81, void, png_set_write_status_fn, (png_structrp png_ptr, - png_write_status_ptr write_row_fn)); - -#ifdef PNG_USER_MEM_SUPPORTED -/* Replace the default memory allocation functions with user supplied one(s). */ -PNG_EXPORT(82, void, png_set_mem_fn, (png_structrp png_ptr, png_voidp mem_ptr, - png_malloc_ptr malloc_fn, png_free_ptr free_fn)); -/* Return the user pointer associated with the memory functions */ -PNG_EXPORT(83, png_voidp, png_get_mem_ptr, (png_const_structrp png_ptr)); -#endif - -#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED -PNG_EXPORT(84, void, png_set_read_user_transform_fn, (png_structrp png_ptr, - png_user_transform_ptr read_user_transform_fn)); -#endif - -#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED -PNG_EXPORT(85, void, png_set_write_user_transform_fn, (png_structrp png_ptr, - png_user_transform_ptr write_user_transform_fn)); -#endif - -#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED -PNG_EXPORT(86, void, png_set_user_transform_info, (png_structrp png_ptr, - png_voidp user_transform_ptr, int user_transform_depth, - int user_transform_channels)); -/* Return the user pointer associated with the user transform functions */ -PNG_EXPORT(87, png_voidp, png_get_user_transform_ptr, - (png_const_structrp png_ptr)); -#endif - -#ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED -/* Return information about the row currently being processed. Note that these - * APIs do not fail but will return unexpected results if called outside a user - * transform callback. Also note that when transforming an interlaced image the - * row number is the row number within the sub-image of the interlace pass, so - * the value will increase to the height of the sub-image (not the full image) - * then reset to 0 for the next pass. - * - * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to - * find the output pixel (x,y) given an interlaced sub-image pixel - * (row,col,pass). (See below for these macros.) - */ -PNG_EXPORT(217, png_uint_32, png_get_current_row_number, (png_const_structrp)); -PNG_EXPORT(218, png_byte, png_get_current_pass_number, (png_const_structrp)); -#endif - -#ifdef PNG_READ_USER_CHUNKS_SUPPORTED -/* This callback is called only for *unknown* chunks. If - * PNG_HANDLE_AS_UNKNOWN_SUPPORTED is set then it is possible to set known - * chunks to be treated as unknown, however in this case the callback must do - * any processing required by the chunk (e.g. by calling the appropriate - * png_set_ APIs.) - * - * There is no write support - on write, by default, all the chunks in the - * 'unknown' list are written in the specified position. - * - * The integer return from the callback function is interpreted thus: - * - * negative: An error occurred; png_chunk_error will be called. - * zero: The chunk was not handled, the chunk will be saved. A critical - * chunk will cause an error at this point unless it is to be saved. - * positive: The chunk was handled, libpng will ignore/discard it. - * - * See "INTERACTION WTIH USER CHUNK CALLBACKS" below for important notes about - * how this behavior will change in libpng 1.7 - */ -PNG_EXPORT(88, void, png_set_read_user_chunk_fn, (png_structrp png_ptr, - png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)); -#endif - -#ifdef PNG_USER_CHUNKS_SUPPORTED -PNG_EXPORT(89, png_voidp, png_get_user_chunk_ptr, (png_const_structrp png_ptr)); -#endif - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -/* Sets the function callbacks for the push reader, and a pointer to a - * user-defined structure available to the callback functions. - */ -PNG_EXPORT(90, void, png_set_progressive_read_fn, (png_structrp png_ptr, - png_voidp progressive_ptr, png_progressive_info_ptr info_fn, - png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn)); - -/* Returns the user pointer associated with the push read functions */ -PNG_EXPORT(91, png_voidp, png_get_progressive_ptr, - (png_const_structrp png_ptr)); - -/* Function to be called when data becomes available */ -PNG_EXPORT(92, void, png_process_data, (png_structrp png_ptr, - png_inforp info_ptr, png_bytep buffer, png_size_t buffer_size)); - -/* A function which may be called *only* within png_process_data to stop the - * processing of any more data. The function returns the number of bytes - * remaining, excluding any that libpng has cached internally. A subsequent - * call to png_process_data must supply these bytes again. If the argument - * 'save' is set to true the routine will first save all the pending data and - * will always return 0. - */ -PNG_EXPORT(219, png_size_t, png_process_data_pause, (png_structrp, int save)); - -/* A function which may be called *only* outside (after) a call to - * png_process_data. It returns the number of bytes of data to skip in the - * input. Normally it will return 0, but if it returns a non-zero value the - * application must skip than number of bytes of input data and pass the - * following data to the next call to png_process_data. - */ -PNG_EXPORT(220, png_uint_32, png_process_data_skip, (png_structrp)); - -/* Function that combines rows. 'new_row' is a flag that should come from - * the callback and be non-NULL if anything needs to be done; the library - * stores its own version of the new data internally and ignores the passed - * in value. - */ -PNG_EXPORT(93, void, png_progressive_combine_row, (png_const_structrp png_ptr, - png_bytep old_row, png_const_bytep new_row)); -#endif /* PROGRESSIVE_READ */ - -PNG_EXPORTA(94, png_voidp, png_malloc, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED); -/* Added at libpng version 1.4.0 */ -PNG_EXPORTA(95, png_voidp, png_calloc, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED); - -/* Added at libpng version 1.2.4 */ -PNG_EXPORTA(96, png_voidp, png_malloc_warn, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED); - -/* Frees a pointer allocated by png_malloc() */ -PNG_EXPORT(97, void, png_free, (png_const_structrp png_ptr, png_voidp ptr)); - -/* Free data that was allocated internally */ -PNG_EXPORT(98, void, png_free_data, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_32 free_me, int num)); - -/* Reassign responsibility for freeing existing data, whether allocated - * by libpng or by the application; this works on the png_info structure passed - * in, it does not change the state for other png_info structures. - * - * It is unlikely that this function works correctly as of 1.6.0 and using it - * may result either in memory leaks or double free of allocated data. - */ -PNG_EXPORT(99, void, png_data_freer, (png_const_structrp png_ptr, - png_inforp info_ptr, int freer, png_uint_32 mask)); - -/* Assignments for png_data_freer */ -#define PNG_DESTROY_WILL_FREE_DATA 1 -#define PNG_SET_WILL_FREE_DATA 1 -#define PNG_USER_WILL_FREE_DATA 2 -/* Flags for png_ptr->free_me and info_ptr->free_me */ -#define PNG_FREE_HIST 0x0008U -#define PNG_FREE_ICCP 0x0010U -#define PNG_FREE_SPLT 0x0020U -#define PNG_FREE_ROWS 0x0040U -#define PNG_FREE_PCAL 0x0080U -#define PNG_FREE_SCAL 0x0100U -#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED -# define PNG_FREE_UNKN 0x0200U -#endif -/* PNG_FREE_LIST 0x0400U removed in 1.6.0 because it is ignored */ -#define PNG_FREE_PLTE 0x1000U -#define PNG_FREE_TRNS 0x2000U -#define PNG_FREE_TEXT 0x4000U -#define PNG_FREE_EXIF 0x8000U /* Added at libpng-1.6.31 */ -#define PNG_FREE_ALL 0xffffU -#define PNG_FREE_MUL 0x4220U /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */ - -#ifdef PNG_USER_MEM_SUPPORTED -PNG_EXPORTA(100, png_voidp, png_malloc_default, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED PNG_DEPRECATED); -PNG_EXPORTA(101, void, png_free_default, (png_const_structrp png_ptr, - png_voidp ptr), PNG_DEPRECATED); -#endif - -#ifdef PNG_ERROR_TEXT_SUPPORTED -/* Fatal error in PNG image of libpng - can't continue */ -PNG_EXPORTA(102, void, png_error, (png_const_structrp png_ptr, - png_const_charp error_message), PNG_NORETURN); - -/* The same, but the chunk name is prepended to the error string. */ -PNG_EXPORTA(103, void, png_chunk_error, (png_const_structrp png_ptr, - png_const_charp error_message), PNG_NORETURN); - -#else -/* Fatal error in PNG image of libpng - can't continue */ -PNG_EXPORTA(104, void, png_err, (png_const_structrp png_ptr), PNG_NORETURN); -# define png_error(s1,s2) png_err(s1) -# define png_chunk_error(s1,s2) png_err(s1) -#endif - -#ifdef PNG_WARNINGS_SUPPORTED -/* Non-fatal error in libpng. Can continue, but may have a problem. */ -PNG_EXPORT(105, void, png_warning, (png_const_structrp png_ptr, - png_const_charp warning_message)); - -/* Non-fatal error in libpng, chunk name is prepended to message. */ -PNG_EXPORT(106, void, png_chunk_warning, (png_const_structrp png_ptr, - png_const_charp warning_message)); -#else -# define png_warning(s1,s2) ((void)(s1)) -# define png_chunk_warning(s1,s2) ((void)(s1)) -#endif - -#ifdef PNG_BENIGN_ERRORS_SUPPORTED -/* Benign error in libpng. Can continue, but may have a problem. - * User can choose whether to handle as a fatal error or as a warning. */ -PNG_EXPORT(107, void, png_benign_error, (png_const_structrp png_ptr, - png_const_charp warning_message)); - -#ifdef PNG_READ_SUPPORTED -/* Same, chunk name is prepended to message (only during read) */ -PNG_EXPORT(108, void, png_chunk_benign_error, (png_const_structrp png_ptr, - png_const_charp warning_message)); -#endif - -PNG_EXPORT(109, void, png_set_benign_errors, - (png_structrp png_ptr, int allowed)); -#else -# ifdef PNG_ALLOW_BENIGN_ERRORS -# define png_benign_error png_warning -# define png_chunk_benign_error png_chunk_warning -# else -# define png_benign_error png_error -# define png_chunk_benign_error png_chunk_error -# endif -#endif - -/* The png_set_ functions are for storing values in the png_info_struct. - * Similarly, the png_get_ calls are used to read values from the - * png_info_struct, either storing the parameters in the passed variables, or - * setting pointers into the png_info_struct where the data is stored. The - * png_get_ functions return a non-zero value if the data was available - * in info_ptr, or return zero and do not change any of the parameters if the - * data was not available. - * - * These functions should be used instead of directly accessing png_info - * to avoid problems with future changes in the size and internal layout of - * png_info_struct. - */ -/* Returns "flag" if chunk data is valid in info_ptr. */ -PNG_EXPORT(110, png_uint_32, png_get_valid, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 flag)); - -/* Returns number of bytes needed to hold a transformed row. */ -PNG_EXPORT(111, png_size_t, png_get_rowbytes, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -#ifdef PNG_INFO_IMAGE_SUPPORTED -/* Returns row_pointers, which is an array of pointers to scanlines that was - * returned from png_read_png(). - */ -PNG_EXPORT(112, png_bytepp, png_get_rows, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Set row_pointers, which is an array of pointers to scanlines for use - * by png_write_png(). - */ -PNG_EXPORT(113, void, png_set_rows, (png_const_structrp png_ptr, - png_inforp info_ptr, png_bytepp row_pointers)); -#endif - -/* Returns number of color channels in image. */ -PNG_EXPORT(114, png_byte, png_get_channels, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -#ifdef PNG_EASY_ACCESS_SUPPORTED -/* Returns image width in pixels. */ -PNG_EXPORT(115, png_uint_32, png_get_image_width, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image height in pixels. */ -PNG_EXPORT(116, png_uint_32, png_get_image_height, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image bit_depth. */ -PNG_EXPORT(117, png_byte, png_get_bit_depth, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image color_type. */ -PNG_EXPORT(118, png_byte, png_get_color_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image filter_type. */ -PNG_EXPORT(119, png_byte, png_get_filter_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image interlace_type. */ -PNG_EXPORT(120, png_byte, png_get_interlace_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image compression_type. */ -PNG_EXPORT(121, png_byte, png_get_compression_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image resolution in pixels per meter, from pHYs chunk data. */ -PNG_EXPORT(122, png_uint_32, png_get_pixels_per_meter, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(123, png_uint_32, png_get_x_pixels_per_meter, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(124, png_uint_32, png_get_y_pixels_per_meter, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -/* Returns pixel aspect ratio, computed from pHYs chunk data. */ -PNG_FP_EXPORT(125, float, png_get_pixel_aspect_ratio, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -PNG_FIXED_EXPORT(210, png_fixed_point, png_get_pixel_aspect_ratio_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) - -/* Returns image x, y offset in pixels or microns, from oFFs chunk data. */ -PNG_EXPORT(126, png_int_32, png_get_x_offset_pixels, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(127, png_int_32, png_get_y_offset_pixels, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(128, png_int_32, png_get_x_offset_microns, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(129, png_int_32, png_get_y_offset_microns, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -#endif /* EASY_ACCESS */ - -#ifdef PNG_READ_SUPPORTED -/* Returns pointer to signature string read from PNG header */ -PNG_EXPORT(130, png_const_bytep, png_get_signature, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); -#endif - -#ifdef PNG_bKGD_SUPPORTED -PNG_EXPORT(131, png_uint_32, png_get_bKGD, (png_const_structrp png_ptr, - png_inforp info_ptr, png_color_16p *background)); -#endif - -#ifdef PNG_bKGD_SUPPORTED -PNG_EXPORT(132, void, png_set_bKGD, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_color_16p background)); -#endif - -#ifdef PNG_cHRM_SUPPORTED -PNG_FP_EXPORT(133, png_uint_32, png_get_cHRM, (png_const_structrp png_ptr, - png_const_inforp info_ptr, double *white_x, double *white_y, double *red_x, - double *red_y, double *green_x, double *green_y, double *blue_x, - double *blue_y)) -PNG_FP_EXPORT(230, png_uint_32, png_get_cHRM_XYZ, (png_const_structrp png_ptr, - png_const_inforp info_ptr, double *red_X, double *red_Y, double *red_Z, - double *green_X, double *green_Y, double *green_Z, double *blue_X, - double *blue_Y, double *blue_Z)) -PNG_FIXED_EXPORT(134, png_uint_32, png_get_cHRM_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, - png_fixed_point *int_white_x, png_fixed_point *int_white_y, - png_fixed_point *int_red_x, png_fixed_point *int_red_y, - png_fixed_point *int_green_x, png_fixed_point *int_green_y, - png_fixed_point *int_blue_x, png_fixed_point *int_blue_y)) -PNG_FIXED_EXPORT(231, png_uint_32, png_get_cHRM_XYZ_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, - png_fixed_point *int_red_X, png_fixed_point *int_red_Y, - png_fixed_point *int_red_Z, png_fixed_point *int_green_X, - png_fixed_point *int_green_Y, png_fixed_point *int_green_Z, - png_fixed_point *int_blue_X, png_fixed_point *int_blue_Y, - png_fixed_point *int_blue_Z)) -#endif - -#ifdef PNG_cHRM_SUPPORTED -PNG_FP_EXPORT(135, void, png_set_cHRM, (png_const_structrp png_ptr, - png_inforp info_ptr, - double white_x, double white_y, double red_x, double red_y, double green_x, - double green_y, double blue_x, double blue_y)) -PNG_FP_EXPORT(232, void, png_set_cHRM_XYZ, (png_const_structrp png_ptr, - png_inforp info_ptr, double red_X, double red_Y, double red_Z, - double green_X, double green_Y, double green_Z, double blue_X, - double blue_Y, double blue_Z)) -PNG_FIXED_EXPORT(136, void, png_set_cHRM_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, png_fixed_point int_white_x, - png_fixed_point int_white_y, png_fixed_point int_red_x, - png_fixed_point int_red_y, png_fixed_point int_green_x, - png_fixed_point int_green_y, png_fixed_point int_blue_x, - png_fixed_point int_blue_y)) -PNG_FIXED_EXPORT(233, void, png_set_cHRM_XYZ_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, png_fixed_point int_red_X, png_fixed_point int_red_Y, - png_fixed_point int_red_Z, png_fixed_point int_green_X, - png_fixed_point int_green_Y, png_fixed_point int_green_Z, - png_fixed_point int_blue_X, png_fixed_point int_blue_Y, - png_fixed_point int_blue_Z)) -#endif - -#ifdef PNG_eXIf_SUPPORTED -PNG_EXPORT(246, png_uint_32, png_get_eXIf, (png_const_structrp png_ptr, - png_inforp info_ptr, png_bytep *exif)); -PNG_EXPORT(247, void, png_set_eXIf, (png_const_structrp png_ptr, - png_inforp info_ptr, const png_bytep exif)); - -PNG_EXPORT(248, png_uint_32, png_get_eXIf_1, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 *num_exif, png_bytep *exif)); -PNG_EXPORT(249, void, png_set_eXIf_1, (png_const_structrp png_ptr, - png_inforp info_ptr, const png_uint_32 num_exif, const png_bytep exif)); -#endif - -#ifdef PNG_gAMA_SUPPORTED -PNG_FP_EXPORT(137, png_uint_32, png_get_gAMA, (png_const_structrp png_ptr, - png_const_inforp info_ptr, double *file_gamma)) -PNG_FIXED_EXPORT(138, png_uint_32, png_get_gAMA_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, - png_fixed_point *int_file_gamma)) -#endif - -#ifdef PNG_gAMA_SUPPORTED -PNG_FP_EXPORT(139, void, png_set_gAMA, (png_const_structrp png_ptr, - png_inforp info_ptr, double file_gamma)) -PNG_FIXED_EXPORT(140, void, png_set_gAMA_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, png_fixed_point int_file_gamma)) -#endif - -#ifdef PNG_hIST_SUPPORTED -PNG_EXPORT(141, png_uint_32, png_get_hIST, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_16p *hist)); -PNG_EXPORT(142, void, png_set_hIST, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_uint_16p hist)); -#endif - -PNG_EXPORT(143, png_uint_32, png_get_IHDR, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 *width, png_uint_32 *height, - int *bit_depth, int *color_type, int *interlace_method, - int *compression_method, int *filter_method)); - -PNG_EXPORT(144, void, png_set_IHDR, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, - int color_type, int interlace_method, int compression_method, - int filter_method)); - -#ifdef PNG_oFFs_SUPPORTED -PNG_EXPORT(145, png_uint_32, png_get_oFFs, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, - int *unit_type)); -#endif - -#ifdef PNG_oFFs_SUPPORTED -PNG_EXPORT(146, void, png_set_oFFs, (png_const_structrp png_ptr, - png_inforp info_ptr, png_int_32 offset_x, png_int_32 offset_y, - int unit_type)); -#endif - -#ifdef PNG_pCAL_SUPPORTED -PNG_EXPORT(147, png_uint_32, png_get_pCAL, (png_const_structrp png_ptr, - png_inforp info_ptr, png_charp *purpose, png_int_32 *X0, - png_int_32 *X1, int *type, int *nparams, png_charp *units, - png_charpp *params)); -#endif - -#ifdef PNG_pCAL_SUPPORTED -PNG_EXPORT(148, void, png_set_pCAL, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_charp purpose, png_int_32 X0, png_int_32 X1, - int type, int nparams, png_const_charp units, png_charpp params)); -#endif - -#ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(149, png_uint_32, png_get_pHYs, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, - int *unit_type)); -#endif - -#ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(150, void, png_set_pHYs, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)); -#endif - -PNG_EXPORT(151, png_uint_32, png_get_PLTE, (png_const_structrp png_ptr, - png_inforp info_ptr, png_colorp *palette, int *num_palette)); - -PNG_EXPORT(152, void, png_set_PLTE, (png_structrp png_ptr, - png_inforp info_ptr, png_const_colorp palette, int num_palette)); - -#ifdef PNG_sBIT_SUPPORTED -PNG_EXPORT(153, png_uint_32, png_get_sBIT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_color_8p *sig_bit)); -#endif - -#ifdef PNG_sBIT_SUPPORTED -PNG_EXPORT(154, void, png_set_sBIT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_color_8p sig_bit)); -#endif - -#ifdef PNG_sRGB_SUPPORTED -PNG_EXPORT(155, png_uint_32, png_get_sRGB, (png_const_structrp png_ptr, - png_const_inforp info_ptr, int *file_srgb_intent)); -#endif - -#ifdef PNG_sRGB_SUPPORTED -PNG_EXPORT(156, void, png_set_sRGB, (png_const_structrp png_ptr, - png_inforp info_ptr, int srgb_intent)); -PNG_EXPORT(157, void, png_set_sRGB_gAMA_and_cHRM, (png_const_structrp png_ptr, - png_inforp info_ptr, int srgb_intent)); -#endif - -#ifdef PNG_iCCP_SUPPORTED -PNG_EXPORT(158, png_uint_32, png_get_iCCP, (png_const_structrp png_ptr, - png_inforp info_ptr, png_charpp name, int *compression_type, - png_bytepp profile, png_uint_32 *proflen)); -#endif - -#ifdef PNG_iCCP_SUPPORTED -PNG_EXPORT(159, void, png_set_iCCP, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_charp name, int compression_type, - png_const_bytep profile, png_uint_32 proflen)); -#endif - -#ifdef PNG_sPLT_SUPPORTED -PNG_EXPORT(160, int, png_get_sPLT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_sPLT_tpp entries)); -#endif - -#ifdef PNG_sPLT_SUPPORTED -PNG_EXPORT(161, void, png_set_sPLT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_sPLT_tp entries, int nentries)); -#endif - -#ifdef PNG_TEXT_SUPPORTED -/* png_get_text also returns the number of text chunks in *num_text */ -PNG_EXPORT(162, int, png_get_text, (png_const_structrp png_ptr, - png_inforp info_ptr, png_textp *text_ptr, int *num_text)); -#endif - -/* Note while png_set_text() will accept a structure whose text, - * language, and translated keywords are NULL pointers, the structure - * returned by png_get_text will always contain regular - * zero-terminated C strings. They might be empty strings but - * they will never be NULL pointers. - */ - -#ifdef PNG_TEXT_SUPPORTED -PNG_EXPORT(163, void, png_set_text, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_textp text_ptr, int num_text)); -#endif - -#ifdef PNG_tIME_SUPPORTED -PNG_EXPORT(164, png_uint_32, png_get_tIME, (png_const_structrp png_ptr, - png_inforp info_ptr, png_timep *mod_time)); -#endif - -#ifdef PNG_tIME_SUPPORTED -PNG_EXPORT(165, void, png_set_tIME, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_timep mod_time)); -#endif - -#ifdef PNG_tRNS_SUPPORTED -PNG_EXPORT(166, png_uint_32, png_get_tRNS, (png_const_structrp png_ptr, - png_inforp info_ptr, png_bytep *trans_alpha, int *num_trans, - png_color_16p *trans_color)); -#endif - -#ifdef PNG_tRNS_SUPPORTED -PNG_EXPORT(167, void, png_set_tRNS, (png_structrp png_ptr, - png_inforp info_ptr, png_const_bytep trans_alpha, int num_trans, - png_const_color_16p trans_color)); -#endif - -#ifdef PNG_sCAL_SUPPORTED -PNG_FP_EXPORT(168, png_uint_32, png_get_sCAL, (png_const_structrp png_ptr, - png_const_inforp info_ptr, int *unit, double *width, double *height)) -#if defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) || \ - defined(PNG_FLOATING_POINT_SUPPORTED) -/* NOTE: this API is currently implemented using floating point arithmetic, - * consequently it can only be used on systems with floating point support. - * In any case the range of values supported by png_fixed_point is small and it - * is highly recommended that png_get_sCAL_s be used instead. - */ -PNG_FIXED_EXPORT(214, png_uint_32, png_get_sCAL_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, - png_fixed_point *width, png_fixed_point *height)) -#endif -PNG_EXPORT(169, png_uint_32, png_get_sCAL_s, - (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, - png_charpp swidth, png_charpp sheight)); - -PNG_FP_EXPORT(170, void, png_set_sCAL, (png_const_structrp png_ptr, - png_inforp info_ptr, int unit, double width, double height)) -PNG_FIXED_EXPORT(213, void, png_set_sCAL_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, int unit, png_fixed_point width, - png_fixed_point height)) -PNG_EXPORT(171, void, png_set_sCAL_s, (png_const_structrp png_ptr, - png_inforp info_ptr, int unit, - png_const_charp swidth, png_const_charp sheight)); -#endif /* sCAL */ - -#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED -/* Provide the default handling for all unknown chunks or, optionally, for - * specific unknown chunks. - * - * NOTE: prior to 1.6.0 the handling specified for particular chunks on read was - * ignored and the default was used, the per-chunk setting only had an effect on - * write. If you wish to have chunk-specific handling on read in code that must - * work on earlier versions you must use a user chunk callback to specify the - * desired handling (keep or discard.) - * - * The 'keep' parameter is a PNG_HANDLE_CHUNK_ value as listed below. The - * parameter is interpreted as follows: - * - * READ: - * PNG_HANDLE_CHUNK_AS_DEFAULT: - * Known chunks: do normal libpng processing, do not keep the chunk (but - * see the comments below about PNG_HANDLE_AS_UNKNOWN_SUPPORTED) - * Unknown chunks: for a specific chunk use the global default, when used - * as the default discard the chunk data. - * PNG_HANDLE_CHUNK_NEVER: - * Discard the chunk data. - * PNG_HANDLE_CHUNK_IF_SAFE: - * Keep the chunk data if the chunk is not critical else raise a chunk - * error. - * PNG_HANDLE_CHUNK_ALWAYS: - * Keep the chunk data. - * - * If the chunk data is saved it can be retrieved using png_get_unknown_chunks, - * below. Notice that specifying "AS_DEFAULT" as a global default is equivalent - * to specifying "NEVER", however when "AS_DEFAULT" is used for specific chunks - * it simply resets the behavior to the libpng default. - * - * INTERACTION WTIH USER CHUNK CALLBACKS: - * The per-chunk handling is always used when there is a png_user_chunk_ptr - * callback and the callback returns 0; the chunk is then always stored *unless* - * it is critical and the per-chunk setting is other than ALWAYS. Notice that - * the global default is *not* used in this case. (In effect the per-chunk - * value is incremented to at least IF_SAFE.) - * - * IMPORTANT NOTE: this behavior will change in libpng 1.7 - the global and - * per-chunk defaults will be honored. If you want to preserve the current - * behavior when your callback returns 0 you must set PNG_HANDLE_CHUNK_IF_SAFE - * as the default - if you don't do this libpng 1.6 will issue a warning. - * - * If you want unhandled unknown chunks to be discarded in libpng 1.6 and - * earlier simply return '1' (handled). - * - * PNG_HANDLE_AS_UNKNOWN_SUPPORTED: - * If this is *not* set known chunks will always be handled by libpng and - * will never be stored in the unknown chunk list. Known chunks listed to - * png_set_keep_unknown_chunks will have no effect. If it is set then known - * chunks listed with a keep other than AS_DEFAULT will *never* be processed - * by libpng, in addition critical chunks must either be processed by the - * callback or saved. - * - * The IHDR and IEND chunks must not be listed. Because this turns off the - * default handling for chunks that would otherwise be recognized the - * behavior of libpng transformations may well become incorrect! - * - * WRITE: - * When writing chunks the options only apply to the chunks specified by - * png_set_unknown_chunks (below), libpng will *always* write known chunks - * required by png_set_ calls and will always write the core critical chunks - * (as required for PLTE). - * - * Each chunk in the png_set_unknown_chunks list is looked up in the - * png_set_keep_unknown_chunks list to find the keep setting, this is then - * interpreted as follows: - * - * PNG_HANDLE_CHUNK_AS_DEFAULT: - * Write safe-to-copy chunks and write other chunks if the global - * default is set to _ALWAYS, otherwise don't write this chunk. - * PNG_HANDLE_CHUNK_NEVER: - * Do not write the chunk. - * PNG_HANDLE_CHUNK_IF_SAFE: - * Write the chunk if it is safe-to-copy, otherwise do not write it. - * PNG_HANDLE_CHUNK_ALWAYS: - * Write the chunk. - * - * Note that the default behavior is effectively the opposite of the read case - - * in read unknown chunks are not stored by default, in write they are written - * by default. Also the behavior of PNG_HANDLE_CHUNK_IF_SAFE is very different - * - on write the safe-to-copy bit is checked, on read the critical bit is - * checked and on read if the chunk is critical an error will be raised. - * - * num_chunks: - * =========== - * If num_chunks is positive, then the "keep" parameter specifies the manner - * for handling only those chunks appearing in the chunk_list array, - * otherwise the chunk list array is ignored. - * - * If num_chunks is 0 the "keep" parameter specifies the default behavior for - * unknown chunks, as described above. - * - * If num_chunks is negative, then the "keep" parameter specifies the manner - * for handling all unknown chunks plus all chunks recognized by libpng - * except for the IHDR, PLTE, tRNS, IDAT, and IEND chunks (which continue to - * be processed by libpng. - */ -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED -PNG_EXPORT(172, void, png_set_keep_unknown_chunks, (png_structrp png_ptr, - int keep, png_const_bytep chunk_list, int num_chunks)); -#endif /* HANDLE_AS_UNKNOWN */ - -/* The "keep" PNG_HANDLE_CHUNK_ parameter for the specified chunk is returned; - * the result is therefore true (non-zero) if special handling is required, - * false for the default handling. - */ -PNG_EXPORT(173, int, png_handle_as_unknown, (png_const_structrp png_ptr, - png_const_bytep chunk_name)); -#endif /* SET_UNKNOWN_CHUNKS */ - -#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED -PNG_EXPORT(174, void, png_set_unknown_chunks, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_unknown_chunkp unknowns, - int num_unknowns)); - /* NOTE: prior to 1.6.0 this routine set the 'location' field of the added - * unknowns to the location currently stored in the png_struct. This is - * invariably the wrong value on write. To fix this call the following API - * for each chunk in the list with the correct location. If you know your - * code won't be compiled on earlier versions you can rely on - * png_set_unknown_chunks(write-ptr, png_get_unknown_chunks(read-ptr)) doing - * the correct thing. - */ - -PNG_EXPORT(175, void, png_set_unknown_chunk_location, - (png_const_structrp png_ptr, png_inforp info_ptr, int chunk, int location)); - -PNG_EXPORT(176, int, png_get_unknown_chunks, (png_const_structrp png_ptr, - png_inforp info_ptr, png_unknown_chunkpp entries)); -#endif - -/* Png_free_data() will turn off the "valid" flag for anything it frees. - * If you need to turn it off for a chunk that your application has freed, - * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); - */ -PNG_EXPORT(177, void, png_set_invalid, (png_const_structrp png_ptr, - png_inforp info_ptr, int mask)); - -#ifdef PNG_INFO_IMAGE_SUPPORTED -/* The "params" pointer is currently not used and is for future expansion. */ -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -PNG_EXPORT(178, void, png_read_png, (png_structrp png_ptr, png_inforp info_ptr, - int transforms, png_voidp params)); -#endif -#ifdef PNG_WRITE_SUPPORTED -PNG_EXPORT(179, void, png_write_png, (png_structrp png_ptr, png_inforp info_ptr, - int transforms, png_voidp params)); -#endif -#endif - -PNG_EXPORT(180, png_const_charp, png_get_copyright, - (png_const_structrp png_ptr)); -PNG_EXPORT(181, png_const_charp, png_get_header_ver, - (png_const_structrp png_ptr)); -PNG_EXPORT(182, png_const_charp, png_get_header_version, - (png_const_structrp png_ptr)); -PNG_EXPORT(183, png_const_charp, png_get_libpng_ver, - (png_const_structrp png_ptr)); - -#ifdef PNG_MNG_FEATURES_SUPPORTED -PNG_EXPORT(184, png_uint_32, png_permit_mng_features, (png_structrp png_ptr, - png_uint_32 mng_features_permitted)); -#endif - -/* For use in png_set_keep_unknown, added to version 1.2.6 */ -#define PNG_HANDLE_CHUNK_AS_DEFAULT 0 -#define PNG_HANDLE_CHUNK_NEVER 1 -#define PNG_HANDLE_CHUNK_IF_SAFE 2 -#define PNG_HANDLE_CHUNK_ALWAYS 3 -#define PNG_HANDLE_CHUNK_LAST 4 - -/* Strip the prepended error numbers ("#nnn ") from error and warning - * messages before passing them to the error or warning handler. - */ -#ifdef PNG_ERROR_NUMBERS_SUPPORTED -PNG_EXPORT(185, void, png_set_strip_error_numbers, (png_structrp png_ptr, - png_uint_32 strip_mode)); -#endif - -/* Added in libpng-1.2.6 */ -#ifdef PNG_SET_USER_LIMITS_SUPPORTED -PNG_EXPORT(186, void, png_set_user_limits, (png_structrp png_ptr, - png_uint_32 user_width_max, png_uint_32 user_height_max)); -PNG_EXPORT(187, png_uint_32, png_get_user_width_max, - (png_const_structrp png_ptr)); -PNG_EXPORT(188, png_uint_32, png_get_user_height_max, - (png_const_structrp png_ptr)); -/* Added in libpng-1.4.0 */ -PNG_EXPORT(189, void, png_set_chunk_cache_max, (png_structrp png_ptr, - png_uint_32 user_chunk_cache_max)); -PNG_EXPORT(190, png_uint_32, png_get_chunk_cache_max, - (png_const_structrp png_ptr)); -/* Added in libpng-1.4.1 */ -PNG_EXPORT(191, void, png_set_chunk_malloc_max, (png_structrp png_ptr, - png_alloc_size_t user_chunk_cache_max)); -PNG_EXPORT(192, png_alloc_size_t, png_get_chunk_malloc_max, - (png_const_structrp png_ptr)); -#endif - -#if defined(PNG_INCH_CONVERSIONS_SUPPORTED) -PNG_EXPORT(193, png_uint_32, png_get_pixels_per_inch, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -PNG_EXPORT(194, png_uint_32, png_get_x_pixels_per_inch, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -PNG_EXPORT(195, png_uint_32, png_get_y_pixels_per_inch, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -PNG_FP_EXPORT(196, float, png_get_x_offset_inches, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ -PNG_FIXED_EXPORT(211, png_fixed_point, png_get_x_offset_inches_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -#endif - -PNG_FP_EXPORT(197, float, png_get_y_offset_inches, (png_const_structrp png_ptr, - png_const_inforp info_ptr)) -#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ -PNG_FIXED_EXPORT(212, png_fixed_point, png_get_y_offset_inches_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -#endif - -# ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(198, png_uint_32, png_get_pHYs_dpi, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, - int *unit_type)); -# endif /* pHYs */ -#endif /* INCH_CONVERSIONS */ - -/* Added in libpng-1.4.0 */ -#ifdef PNG_IO_STATE_SUPPORTED -PNG_EXPORT(199, png_uint_32, png_get_io_state, (png_const_structrp png_ptr)); - -/* Removed from libpng 1.6; use png_get_io_chunk_type. */ -PNG_REMOVED(200, png_const_bytep, png_get_io_chunk_name, (png_structrp png_ptr), - PNG_DEPRECATED) - -PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type, - (png_const_structrp png_ptr)); - -/* The flags returned by png_get_io_state() are the following: */ -# define PNG_IO_NONE 0x0000 /* no I/O at this moment */ -# define PNG_IO_READING 0x0001 /* currently reading */ -# define PNG_IO_WRITING 0x0002 /* currently writing */ -# define PNG_IO_SIGNATURE 0x0010 /* currently at the file signature */ -# define PNG_IO_CHUNK_HDR 0x0020 /* currently at the chunk header */ -# define PNG_IO_CHUNK_DATA 0x0040 /* currently at the chunk data */ -# define PNG_IO_CHUNK_CRC 0x0080 /* currently at the chunk crc */ -# define PNG_IO_MASK_OP 0x000f /* current operation: reading/writing */ -# define PNG_IO_MASK_LOC 0x00f0 /* current location: sig/hdr/data/crc */ -#endif /* IO_STATE */ - -/* Interlace support. The following macros are always defined so that if - * libpng interlace handling is turned off the macros may be used to handle - * interlaced images within the application. - */ -#define PNG_INTERLACE_ADAM7_PASSES 7 - -/* Two macros to return the first row and first column of the original, - * full, image which appears in a given pass. 'pass' is in the range 0 - * to 6 and the result is in the range 0 to 7. - */ -#define PNG_PASS_START_ROW(pass) (((1&~(pass))<<(3-((pass)>>1)))&7) -#define PNG_PASS_START_COL(pass) (((1& (pass))<<(3-(((pass)+1)>>1)))&7) - -/* A macro to return the offset between pixels in the output row for a pair of - * pixels in the input - effectively the inverse of the 'COL_SHIFT' macro that - * follows. Note that ROW_OFFSET is the offset from one row to the next whereas - * COL_OFFSET is from one column to the next, within a row. - */ -#define PNG_PASS_ROW_OFFSET(pass) ((pass)>2?(8>>(((pass)-1)>>1)):8) -#define PNG_PASS_COL_OFFSET(pass) (1<<((7-(pass))>>1)) - -/* Two macros to help evaluate the number of rows or columns in each - * pass. This is expressed as a shift - effectively log2 of the number or - * rows or columns in each 8x8 tile of the original image. - */ -#define PNG_PASS_ROW_SHIFT(pass) ((pass)>2?(8-(pass))>>1:3) -#define PNG_PASS_COL_SHIFT(pass) ((pass)>1?(7-(pass))>>1:3) - -/* Hence two macros to determine the number of rows or columns in a given - * pass of an image given its height or width. In fact these macros may - * return non-zero even though the sub-image is empty, because the other - * dimension may be empty for a small image. - */ -#define PNG_PASS_ROWS(height, pass) (((height)+(((1<>PNG_PASS_ROW_SHIFT(pass)) -#define PNG_PASS_COLS(width, pass) (((width)+(((1<>PNG_PASS_COL_SHIFT(pass)) - -/* For the reader row callbacks (both progressive and sequential) it is - * necessary to find the row in the output image given a row in an interlaced - * image, so two more macros: - */ -#define PNG_ROW_FROM_PASS_ROW(y_in, pass) \ - (((y_in)<>(((7-(off))-(pass))<<2)) & 0xF) | \ - ((0x01145AF0>>(((7-(off))-(pass))<<2)) & 0xF0)) - -#define PNG_ROW_IN_INTERLACE_PASS(y, pass) \ - ((PNG_PASS_MASK(pass,0) >> ((y)&7)) & 1) -#define PNG_COL_IN_INTERLACE_PASS(x, pass) \ - ((PNG_PASS_MASK(pass,1) >> ((x)&7)) & 1) - -#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED -/* With these routines we avoid an integer divide, which will be slower on - * most machines. However, it does take more operations than the corresponding - * divide method, so it may be slower on a few RISC systems. There are two - * shifts (by 8 or 16 bits) and an addition, versus a single integer divide. - * - * Note that the rounding factors are NOT supposed to be the same! 128 and - * 32768 are correct for the NODIV code; 127 and 32767 are correct for the - * standard method. - * - * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ] - */ - - /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */ - -# define png_composite(composite, fg, alpha, bg) \ - { \ - png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) \ - * (png_uint_16)(alpha) \ - + (png_uint_16)(bg)*(png_uint_16)(255 \ - - (png_uint_16)(alpha)) + 128); \ - (composite) = (png_byte)(((temp + (temp >> 8)) >> 8) & 0xff); \ - } - -# define png_composite_16(composite, fg, alpha, bg) \ - { \ - png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) \ - * (png_uint_32)(alpha) \ - + (png_uint_32)(bg)*(65535 \ - - (png_uint_32)(alpha)) + 32768); \ - (composite) = (png_uint_16)(0xffff & ((temp + (temp >> 16)) >> 16)); \ - } - -#else /* Standard method using integer division */ - -# define png_composite(composite, fg, alpha, bg) \ - (composite) = \ - (png_byte)(0xff & (((png_uint_16)(fg) * (png_uint_16)(alpha) + \ - (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ - 127) / 255)) - -# define png_composite_16(composite, fg, alpha, bg) \ - (composite) = \ - (png_uint_16)(0xffff & (((png_uint_32)(fg) * (png_uint_32)(alpha) + \ - (png_uint_32)(bg)*(png_uint_32)(65535 - (png_uint_32)(alpha)) + \ - 32767) / 65535)) -#endif /* READ_COMPOSITE_NODIV */ - -#ifdef PNG_READ_INT_FUNCTIONS_SUPPORTED -PNG_EXPORT(201, png_uint_32, png_get_uint_32, (png_const_bytep buf)); -PNG_EXPORT(202, png_uint_16, png_get_uint_16, (png_const_bytep buf)); -PNG_EXPORT(203, png_int_32, png_get_int_32, (png_const_bytep buf)); -#endif - -PNG_EXPORT(204, png_uint_32, png_get_uint_31, (png_const_structrp png_ptr, - png_const_bytep buf)); -/* No png_get_int_16 -- may be added if there's a real need for it. */ - -/* Place a 32-bit number into a buffer in PNG byte order (big-endian). */ -#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED -PNG_EXPORT(205, void, png_save_uint_32, (png_bytep buf, png_uint_32 i)); -#endif -#ifdef PNG_SAVE_INT_32_SUPPORTED -PNG_EXPORT(206, void, png_save_int_32, (png_bytep buf, png_int_32 i)); -#endif - -/* Place a 16-bit number into a buffer in PNG byte order. - * The parameter is declared unsigned int, not png_uint_16, - * just to avoid potential problems on pre-ANSI C compilers. - */ -#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED -PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i)); -/* No png_save_int_16 -- may be added if there's a real need for it. */ -#endif - -#ifdef PNG_USE_READ_MACROS -/* Inline macros to do direct reads of bytes from the input buffer. - * The png_get_int_32() routine assumes we are using two's complement - * format for negative values, which is almost certainly true. - */ -# define PNG_get_uint_32(buf) \ - (((png_uint_32)(*(buf)) << 24) + \ - ((png_uint_32)(*((buf) + 1)) << 16) + \ - ((png_uint_32)(*((buf) + 2)) << 8) + \ - ((png_uint_32)(*((buf) + 3)))) - - /* From libpng-1.4.0 until 1.4.4, the png_get_uint_16 macro (but not the - * function) incorrectly returned a value of type png_uint_32. - */ -# define PNG_get_uint_16(buf) \ - ((png_uint_16) \ - (((unsigned int)(*(buf)) << 8) + \ - ((unsigned int)(*((buf) + 1))))) - -# define PNG_get_int_32(buf) \ - ((png_int_32)((*(buf) & 0x80) \ - ? -((png_int_32)(((png_get_uint_32(buf)^0xffffffffU)+1U)&0x7fffffffU)) \ - : (png_int_32)png_get_uint_32(buf))) - -/* If PNG_PREFIX is defined the same thing as below happens in pnglibconf.h, - * but defining a macro name prefixed with PNG_PREFIX. - */ -# ifndef PNG_PREFIX -# define png_get_uint_32(buf) PNG_get_uint_32(buf) -# define png_get_uint_16(buf) PNG_get_uint_16(buf) -# define png_get_int_32(buf) PNG_get_int_32(buf) -# endif -#else -# ifdef PNG_PREFIX - /* No macros; revert to the (redefined) function */ -# define PNG_get_uint_32 (png_get_uint_32) -# define PNG_get_uint_16 (png_get_uint_16) -# define PNG_get_int_32 (png_get_int_32) -# endif -#endif - -#ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED -PNG_EXPORT(242, void, png_set_check_for_invalid_index, - (png_structrp png_ptr, int allowed)); -# ifdef PNG_GET_PALETTE_MAX_SUPPORTED -PNG_EXPORT(243, int, png_get_palette_max, (png_const_structp png_ptr, - png_const_infop info_ptr)); -# endif -#endif /* CHECK_FOR_INVALID_INDEX */ - -/******************************************************************************* - * Section 5: SIMPLIFIED API - ******************************************************************************* - * - * Please read the documentation in libpng-manual.txt (TODO: write said - * documentation) if you don't understand what follows. - * - * The simplified API hides the details of both libpng and the PNG file format - * itself. It allows PNG files to be read into a very limited number of - * in-memory bitmap formats or to be written from the same formats. If these - * formats do not accomodate your needs then you can, and should, use the more - * sophisticated APIs above - these support a wide variety of in-memory formats - * and a wide variety of sophisticated transformations to those formats as well - * as a wide variety of APIs to manipulate ancillary information. - * - * To read a PNG file using the simplified API: - * - * 1) Declare a 'png_image' structure (see below) on the stack, set the - * version field to PNG_IMAGE_VERSION and the 'opaque' pointer to NULL - * (this is REQUIRED, your program may crash if you don't do it.) - * 2) Call the appropriate png_image_begin_read... function. - * 3) Set the png_image 'format' member to the required sample format. - * 4) Allocate a buffer for the image and, if required, the color-map. - * 5) Call png_image_finish_read to read the image and, if required, the - * color-map into your buffers. - * - * There are no restrictions on the format of the PNG input itself; all valid - * color types, bit depths, and interlace methods are acceptable, and the - * input image is transformed as necessary to the requested in-memory format - * during the png_image_finish_read() step. The only caveat is that if you - * request a color-mapped image from a PNG that is full-color or makes - * complex use of an alpha channel the transformation is extremely lossy and the - * result may look terrible. - * - * To write a PNG file using the simplified API: - * - * 1) Declare a 'png_image' structure on the stack and memset() it to all zero. - * 2) Initialize the members of the structure that describe the image, setting - * the 'format' member to the format of the image samples. - * 3) Call the appropriate png_image_write... function with a pointer to the - * image and, if necessary, the color-map to write the PNG data. - * - * png_image is a structure that describes the in-memory format of an image - * when it is being read or defines the in-memory format of an image that you - * need to write: - */ -#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) || \ - defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) - -#define PNG_IMAGE_VERSION 1 - -typedef struct png_control *png_controlp; -typedef struct -{ - png_controlp opaque; /* Initialize to NULL, free with png_image_free */ - png_uint_32 version; /* Set to PNG_IMAGE_VERSION */ - png_uint_32 width; /* Image width in pixels (columns) */ - png_uint_32 height; /* Image height in pixels (rows) */ - png_uint_32 format; /* Image format as defined below */ - png_uint_32 flags; /* A bit mask containing informational flags */ - png_uint_32 colormap_entries; - /* Number of entries in the color-map */ - - /* In the event of an error or warning the following field will be set to a - * non-zero value and the 'message' field will contain a '\0' terminated - * string with the libpng error or warning message. If both warnings and - * an error were encountered, only the error is recorded. If there - * are multiple warnings, only the first one is recorded. - * - * The upper 30 bits of this value are reserved, the low two bits contain - * a value as follows: - */ -# define PNG_IMAGE_WARNING 1 -# define PNG_IMAGE_ERROR 2 - /* - * The result is a two-bit code such that a value more than 1 indicates - * a failure in the API just called: - * - * 0 - no warning or error - * 1 - warning - * 2 - error - * 3 - error preceded by warning - */ -# define PNG_IMAGE_FAILED(png_cntrl) ((((png_cntrl).warning_or_error)&0x03)>1) - - png_uint_32 warning_or_error; - - char message[64]; -} png_image, *png_imagep; - -/* The samples of the image have one to four channels whose components have - * original values in the range 0 to 1.0: - * - * 1: A single gray or luminance channel (G). - * 2: A gray/luminance channel and an alpha channel (GA). - * 3: Three red, green, blue color channels (RGB). - * 4: Three color channels and an alpha channel (RGBA). - * - * The components are encoded in one of two ways: - * - * a) As a small integer, value 0..255, contained in a single byte. For the - * alpha channel the original value is simply value/255. For the color or - * luminance channels the value is encoded according to the sRGB specification - * and matches the 8-bit format expected by typical display devices. - * - * The color/gray channels are not scaled (pre-multiplied) by the alpha - * channel and are suitable for passing to color management software. - * - * b) As a value in the range 0..65535, contained in a 2-byte integer. All - * channels can be converted to the original value by dividing by 65535; all - * channels are linear. Color channels use the RGB encoding (RGB end-points) of - * the sRGB specification. This encoding is identified by the - * PNG_FORMAT_FLAG_LINEAR flag below. - * - * When the simplified API needs to convert between sRGB and linear colorspaces, - * the actual sRGB transfer curve defined in the sRGB specification (see the - * article at https://en.wikipedia.org/wiki/SRGB) is used, not the gamma=1/2.2 - * approximation used elsewhere in libpng. - * - * When an alpha channel is present it is expected to denote pixel coverage - * of the color or luminance channels and is returned as an associated alpha - * channel: the color/gray channels are scaled (pre-multiplied) by the alpha - * value. - * - * The samples are either contained directly in the image data, between 1 and 8 - * bytes per pixel according to the encoding, or are held in a color-map indexed - * by bytes in the image data. In the case of a color-map the color-map entries - * are individual samples, encoded as above, and the image data has one byte per - * pixel to select the relevant sample from the color-map. - */ - -/* PNG_FORMAT_* - * - * #defines to be used in png_image::format. Each #define identifies a - * particular layout of sample data and, if present, alpha values. There are - * separate defines for each of the two component encodings. - * - * A format is built up using single bit flag values. All combinations are - * valid. Formats can be built up from the flag values or you can use one of - * the predefined values below. When testing formats always use the FORMAT_FLAG - * macros to test for individual features - future versions of the library may - * add new flags. - * - * When reading or writing color-mapped images the format should be set to the - * format of the entries in the color-map then png_image_{read,write}_colormap - * called to read or write the color-map and set the format correctly for the - * image data. Do not set the PNG_FORMAT_FLAG_COLORMAP bit directly! - * - * NOTE: libpng can be built with particular features disabled. If you see - * compiler errors because the definition of one of the following flags has been - * compiled out it is because libpng does not have the required support. It is - * possible, however, for the libpng configuration to enable the format on just - * read or just write; in that case you may see an error at run time. You can - * guard against this by checking for the definition of the appropriate - * "_SUPPORTED" macro, one of: - * - * PNG_SIMPLIFIED_{READ,WRITE}_{BGR,AFIRST}_SUPPORTED - */ -#define PNG_FORMAT_FLAG_ALPHA 0x01U /* format with an alpha channel */ -#define PNG_FORMAT_FLAG_COLOR 0x02U /* color format: otherwise grayscale */ -#define PNG_FORMAT_FLAG_LINEAR 0x04U /* 2-byte channels else 1-byte */ -#define PNG_FORMAT_FLAG_COLORMAP 0x08U /* image data is color-mapped */ - -#ifdef PNG_FORMAT_BGR_SUPPORTED -# define PNG_FORMAT_FLAG_BGR 0x10U /* BGR colors, else order is RGB */ -#endif - -#ifdef PNG_FORMAT_AFIRST_SUPPORTED -# define PNG_FORMAT_FLAG_AFIRST 0x20U /* alpha channel comes first */ -#endif - -/* Commonly used formats have predefined macros. - * - * First the single byte (sRGB) formats: - */ -#define PNG_FORMAT_GRAY 0 -#define PNG_FORMAT_GA PNG_FORMAT_FLAG_ALPHA -#define PNG_FORMAT_AG (PNG_FORMAT_GA|PNG_FORMAT_FLAG_AFIRST) -#define PNG_FORMAT_RGB PNG_FORMAT_FLAG_COLOR -#define PNG_FORMAT_BGR (PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_BGR) -#define PNG_FORMAT_RGBA (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_ALPHA) -#define PNG_FORMAT_ARGB (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_AFIRST) -#define PNG_FORMAT_BGRA (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_ALPHA) -#define PNG_FORMAT_ABGR (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_AFIRST) - -/* Then the linear 2-byte formats. When naming these "Y" is used to - * indicate a luminance (gray) channel. - */ -#define PNG_FORMAT_LINEAR_Y PNG_FORMAT_FLAG_LINEAR -#define PNG_FORMAT_LINEAR_Y_ALPHA (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_ALPHA) -#define PNG_FORMAT_LINEAR_RGB (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR) -#define PNG_FORMAT_LINEAR_RGB_ALPHA \ - (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA) - -/* With color-mapped formats the image data is one byte for each pixel, the byte - * is an index into the color-map which is formatted as above. To obtain a - * color-mapped format it is sufficient just to add the PNG_FOMAT_FLAG_COLORMAP - * to one of the above definitions, or you can use one of the definitions below. - */ -#define PNG_FORMAT_RGB_COLORMAP (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_BGR_COLORMAP (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_RGBA_COLORMAP (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_ARGB_COLORMAP (PNG_FORMAT_ARGB|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_BGRA_COLORMAP (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_ABGR_COLORMAP (PNG_FORMAT_ABGR|PNG_FORMAT_FLAG_COLORMAP) - -/* PNG_IMAGE macros - * - * These are convenience macros to derive information from a png_image - * structure. The PNG_IMAGE_SAMPLE_ macros return values appropriate to the - * actual image sample values - either the entries in the color-map or the - * pixels in the image. The PNG_IMAGE_PIXEL_ macros return corresponding values - * for the pixels and will always return 1 for color-mapped formats. The - * remaining macros return information about the rows in the image and the - * complete image. - * - * NOTE: All the macros that take a png_image::format parameter are compile time - * constants if the format parameter is, itself, a constant. Therefore these - * macros can be used in array declarations and case labels where required. - * Similarly the macros are also pre-processor constants (sizeof is not used) so - * they can be used in #if tests. - * - * First the information about the samples. - */ -#define PNG_IMAGE_SAMPLE_CHANNELS(fmt)\ - (((fmt)&(PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA))+1) - /* Return the total number of channels in a given format: 1..4 */ - -#define PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)\ - ((((fmt) & PNG_FORMAT_FLAG_LINEAR) >> 2)+1) - /* Return the size in bytes of a single component of a pixel or color-map - * entry (as appropriate) in the image: 1 or 2. - */ - -#define PNG_IMAGE_SAMPLE_SIZE(fmt)\ - (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)) - /* This is the size of the sample data for one sample. If the image is - * color-mapped it is the size of one color-map entry (and image pixels are - * one byte in size), otherwise it is the size of one image pixel. - */ - -#define PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(fmt)\ - (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * 256) - /* The maximum size of the color-map required by the format expressed in a - * count of components. This can be used to compile-time allocate a - * color-map: - * - * png_uint_16 colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(linear_fmt)]; - * - * png_byte colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(sRGB_fmt)]; - * - * Alternatively use the PNG_IMAGE_COLORMAP_SIZE macro below to use the - * information from one of the png_image_begin_read_ APIs and dynamically - * allocate the required memory. - */ - -/* Corresponding information about the pixels */ -#define PNG_IMAGE_PIXEL_(test,fmt)\ - (((fmt)&PNG_FORMAT_FLAG_COLORMAP)?1:test(fmt)) - -#define PNG_IMAGE_PIXEL_CHANNELS(fmt)\ - PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_CHANNELS,fmt) - /* The number of separate channels (components) in a pixel; 1 for a - * color-mapped image. - */ - -#define PNG_IMAGE_PIXEL_COMPONENT_SIZE(fmt)\ - PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_COMPONENT_SIZE,fmt) - /* The size, in bytes, of each component in a pixel; 1 for a color-mapped - * image. - */ - -#define PNG_IMAGE_PIXEL_SIZE(fmt) PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_SIZE,fmt) - /* The size, in bytes, of a complete pixel; 1 for a color-mapped image. */ - -/* Information about the whole row, or whole image */ -#define PNG_IMAGE_ROW_STRIDE(image)\ - (PNG_IMAGE_PIXEL_CHANNELS((image).format) * (image).width) - /* Return the total number of components in a single row of the image; this - * is the minimum 'row stride', the minimum count of components between each - * row. For a color-mapped image this is the minimum number of bytes in a - * row. - * - * WARNING: this macro overflows for some images with more than one component - * and very large image widths. libpng will refuse to process an image where - * this macro would overflow. - */ - -#define PNG_IMAGE_BUFFER_SIZE(image, row_stride)\ - (PNG_IMAGE_PIXEL_COMPONENT_SIZE((image).format)*(image).height*(row_stride)) - /* Return the size, in bytes, of an image buffer given a png_image and a row - * stride - the number of components to leave space for in each row. - * - * WARNING: this macro overflows a 32-bit integer for some large PNG images, - * libpng will refuse to process an image where such an overflow would occur. - */ - -#define PNG_IMAGE_SIZE(image)\ - PNG_IMAGE_BUFFER_SIZE(image, PNG_IMAGE_ROW_STRIDE(image)) - /* Return the size, in bytes, of the image in memory given just a png_image; - * the row stride is the minimum stride required for the image. - */ - -#define PNG_IMAGE_COLORMAP_SIZE(image)\ - (PNG_IMAGE_SAMPLE_SIZE((image).format) * (image).colormap_entries) - /* Return the size, in bytes, of the color-map of this image. If the image - * format is not a color-map format this will return a size sufficient for - * 256 entries in the given format; check PNG_FORMAT_FLAG_COLORMAP if - * you don't want to allocate a color-map in this case. - */ - -/* PNG_IMAGE_FLAG_* - * - * Flags containing additional information about the image are held in the - * 'flags' field of png_image. - */ -#define PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB 0x01 - /* This indicates the the RGB values of the in-memory bitmap do not - * correspond to the red, green and blue end-points defined by sRGB. - */ - -#define PNG_IMAGE_FLAG_FAST 0x02 - /* On write emphasise speed over compression; the resultant PNG file will be - * larger but will be produced significantly faster, particular for large - * images. Do not use this option for images which will be distributed, only - * used it when producing intermediate files that will be read back in - * repeatedly. For a typical 24-bit image the option will double the read - * speed at the cost of increasing the image size by 25%, however for many - * more compressible images the PNG file can be 10 times larger with only a - * slight speed gain. - */ - -#define PNG_IMAGE_FLAG_16BIT_sRGB 0x04 - /* On read if the image is a 16-bit per component image and there is no gAMA - * or sRGB chunk assume that the components are sRGB encoded. Notice that - * images output by the simplified API always have gamma information; setting - * this flag only affects the interpretation of 16-bit images from an - * external source. It is recommended that the application expose this flag - * to the user; the user can normally easily recognize the difference between - * linear and sRGB encoding. This flag has no effect on write - the data - * passed to the write APIs must have the correct encoding (as defined - * above.) - * - * If the flag is not set (the default) input 16-bit per component data is - * assumed to be linear. - * - * NOTE: the flag can only be set after the png_image_begin_read_ call, - * because that call initializes the 'flags' field. - */ - -#ifdef PNG_SIMPLIFIED_READ_SUPPORTED -/* READ APIs - * --------- - * - * The png_image passed to the read APIs must have been initialized by setting - * the png_controlp field 'opaque' to NULL (or, safer, memset the whole thing.) - */ -#ifdef PNG_STDIO_SUPPORTED -PNG_EXPORT(234, int, png_image_begin_read_from_file, (png_imagep image, - const char *file_name)); - /* The named file is opened for read and the image header is filled in - * from the PNG header in the file. - */ - -PNG_EXPORT(235, int, png_image_begin_read_from_stdio, (png_imagep image, - FILE* file)); - /* The PNG header is read from the stdio FILE object. */ -#endif /* STDIO */ - -PNG_EXPORT(236, int, png_image_begin_read_from_memory, (png_imagep image, - png_const_voidp memory, png_size_t size)); - /* The PNG header is read from the given memory buffer. */ - -PNG_EXPORT(237, int, png_image_finish_read, (png_imagep image, - png_const_colorp background, void *buffer, png_int_32 row_stride, - void *colormap)); - /* Finish reading the image into the supplied buffer and clean up the - * png_image structure. - * - * row_stride is the step, in byte or 2-byte units as appropriate, - * between adjacent rows. A positive stride indicates that the top-most row - * is first in the buffer - the normal top-down arrangement. A negative - * stride indicates that the bottom-most row is first in the buffer. - * - * background need only be supplied if an alpha channel must be removed from - * a png_byte format and the removal is to be done by compositing on a solid - * color; otherwise it may be NULL and any composition will be done directly - * onto the buffer. The value is an sRGB color to use for the background, - * for grayscale output the green channel is used. - * - * background must be supplied when an alpha channel must be removed from a - * single byte color-mapped output format, in other words if: - * - * 1) The original format from png_image_begin_read_from_* had - * PNG_FORMAT_FLAG_ALPHA set. - * 2) The format set by the application does not. - * 3) The format set by the application has PNG_FORMAT_FLAG_COLORMAP set and - * PNG_FORMAT_FLAG_LINEAR *not* set. - * - * For linear output removing the alpha channel is always done by compositing - * on black and background is ignored. - * - * colormap must be supplied when PNG_FORMAT_FLAG_COLORMAP is set. It must - * be at least the size (in bytes) returned by PNG_IMAGE_COLORMAP_SIZE. - * image->colormap_entries will be updated to the actual number of entries - * written to the colormap; this may be less than the original value. - */ - -PNG_EXPORT(238, void, png_image_free, (png_imagep image)); - /* Free any data allocated by libpng in image->opaque, setting the pointer to - * NULL. May be called at any time after the structure is initialized. - */ -#endif /* SIMPLIFIED_READ */ - -#ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED -/* WRITE APIS - * ---------- - * For write you must initialize a png_image structure to describe the image to - * be written. To do this use memset to set the whole structure to 0 then - * initialize fields describing your image. - * - * version: must be set to PNG_IMAGE_VERSION - * opaque: must be initialized to NULL - * width: image width in pixels - * height: image height in rows - * format: the format of the data (image and color-map) you wish to write - * flags: set to 0 unless one of the defined flags applies; set - * PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB for color format images where the RGB - * values do not correspond to the colors in sRGB. - * colormap_entries: set to the number of entries in the color-map (0 to 256) - */ -#ifdef PNG_SIMPLIFIED_WRITE_STDIO_SUPPORTED -PNG_EXPORT(239, int, png_image_write_to_file, (png_imagep image, - const char *file, int convert_to_8bit, const void *buffer, - png_int_32 row_stride, const void *colormap)); - /* Write the image to the named file. */ - -PNG_EXPORT(240, int, png_image_write_to_stdio, (png_imagep image, FILE *file, - int convert_to_8_bit, const void *buffer, png_int_32 row_stride, - const void *colormap)); - /* Write the image to the given (FILE*). */ -#endif /* SIMPLIFIED_WRITE_STDIO */ - -/* With all write APIs if image is in one of the linear formats with 16-bit - * data then setting convert_to_8_bit will cause the output to be an 8-bit PNG - * gamma encoded according to the sRGB specification, otherwise a 16-bit linear - * encoded PNG file is written. - * - * With color-mapped data formats the colormap parameter point to a color-map - * with at least image->colormap_entries encoded in the specified format. If - * the format is linear the written PNG color-map will be converted to sRGB - * regardless of the convert_to_8_bit flag. - * - * With all APIs row_stride is handled as in the read APIs - it is the spacing - * from one row to the next in component sized units (1 or 2 bytes) and if - * negative indicates a bottom-up row layout in the buffer. If row_stride is - * zero, libpng will calculate it for you from the image width and number of - * channels. - * - * Note that the write API does not support interlacing, sub-8-bit pixels or - * most ancillary chunks. If you need to write text chunks (e.g. for copyright - * notices) you need to use one of the other APIs. - */ - -PNG_EXPORT(245, int, png_image_write_to_memory, (png_imagep image, void *memory, - png_alloc_size_t * PNG_RESTRICT memory_bytes, int convert_to_8_bit, - const void *buffer, png_int_32 row_stride, const void *colormap)); - /* Write the image to the given memory buffer. The function both writes the - * whole PNG data stream to *memory and updates *memory_bytes with the count - * of bytes written. - * - * 'memory' may be NULL. In this case *memory_bytes is not read however on - * success the number of bytes which would have been written will still be - * stored in *memory_bytes. On failure *memory_bytes will contain 0. - * - * If 'memory' is not NULL it must point to memory[*memory_bytes] of - * writeable memory. - * - * If the function returns success memory[*memory_bytes] (if 'memory' is not - * NULL) contains the written PNG data. *memory_bytes will always be less - * than or equal to the original value. - * - * If the function returns false and *memory_bytes was not changed an error - * occured during write. If *memory_bytes was changed, or is not 0 if - * 'memory' was NULL, the write would have succeeded but for the memory - * buffer being too small. *memory_bytes contains the required number of - * bytes and will be bigger that the original value. - */ - -#define png_image_write_get_memory_size(image, size, convert_to_8_bit, buffer,\ - row_stride, colormap)\ - png_image_write_to_memory(&(image), 0, &(size), convert_to_8_bit, buffer,\ - row_stride, colormap) - /* Return the amount of memory in 'size' required to compress this image. - * The png_image structure 'image' must be filled in as in the above - * function and must not be changed before the actual write call, the buffer - * and all other parameters must also be identical to that in the final - * write call. The 'size' variable need not be initialized. - * - * NOTE: the macro returns true/false, if false is returned 'size' will be - * set to zero and the write failed and probably will fail if tried again. - */ - -/* You can pre-allocate the buffer by making sure it is of sufficient size - * regardless of the amount of compression achieved. The buffer size will - * always be bigger than the original image and it will never be filled. The - * following macros are provided to assist in allocating the buffer. - */ -#define PNG_IMAGE_DATA_SIZE(image) (PNG_IMAGE_SIZE(image)+(image).height) - /* The number of uncompressed bytes in the PNG byte encoding of the image; - * uncompressing the PNG IDAT data will give this number of bytes. - * - * NOTE: while PNG_IMAGE_SIZE cannot overflow for an image in memory this - * macro can because of the extra bytes used in the PNG byte encoding. You - * need to avoid this macro if your image size approaches 2^30 in width or - * height. The same goes for the remainder of these macros; they all produce - * bigger numbers than the actual in-memory image size. - */ -#ifndef PNG_ZLIB_MAX_SIZE -# define PNG_ZLIB_MAX_SIZE(b) ((b)+(((b)+7U)>>3)+(((b)+63U)>>6)+11U) - /* An upper bound on the number of compressed bytes given 'b' uncompressed - * bytes. This is based on deflateBounds() in zlib; different - * implementations of zlib compression may conceivably produce more data so - * if your zlib implementation is not zlib itself redefine this macro - * appropriately. - */ -#endif - -#define PNG_IMAGE_COMPRESSED_SIZE_MAX(image)\ - PNG_ZLIB_MAX_SIZE((png_alloc_size_t)PNG_IMAGE_DATA_SIZE(image)) - /* An upper bound on the size of the data in the PNG IDAT chunks. */ - -#define PNG_IMAGE_PNG_SIZE_MAX_(image, image_size)\ - ((8U/*sig*/+25U/*IHDR*/+16U/*gAMA*/+44U/*cHRM*/+12U/*IEND*/+\ - (((image).format&PNG_FORMAT_FLAG_COLORMAP)?/*colormap: PLTE, tRNS*/\ - 12U+3U*(image).colormap_entries/*PLTE data*/+\ - (((image).format&PNG_FORMAT_FLAG_ALPHA)?\ - 12U/*tRNS*/+(image).colormap_entries:0U):0U)+\ - 12U)+(12U*((image_size)/PNG_ZBUF_SIZE))/*IDAT*/+(image_size)) - /* A helper for the following macro; if your compiler cannot handle the - * following macro use this one with the result of - * PNG_IMAGE_COMPRESSED_SIZE_MAX(image) as the second argument (most - * compilers should handle this just fine.) - */ - -#define PNG_IMAGE_PNG_SIZE_MAX(image)\ - PNG_IMAGE_PNG_SIZE_MAX_(image, PNG_IMAGE_COMPRESSED_SIZE_MAX(image)) - /* An upper bound on the total length of the PNG data stream for 'image'. - * The result is of type png_alloc_size_t, on 32-bit systems this may - * overflow even though PNG_IMAGE_DATA_SIZE does not overflow; the write will - * run out of buffer space but return a corrected size which should work. - */ -#endif /* SIMPLIFIED_WRITE */ -/******************************************************************************* - * END OF SIMPLIFIED API - ******************************************************************************/ -#endif /* SIMPLIFIED_{READ|WRITE} */ - -/******************************************************************************* - * Section 6: IMPLEMENTATION OPTIONS - ******************************************************************************* - * - * Support for arbitrary implementation-specific optimizations. The API allows - * particular options to be turned on or off. 'Option' is the number of the - * option and 'onoff' is 0 (off) or non-0 (on). The value returned is given - * by the PNG_OPTION_ defines below. - * - * HARDWARE: normally hardware capabilites, such as the Intel SSE instructions, - * are detected at run time, however sometimes it may be impossible - * to do this in user mode, in which case it is necessary to discover - * the capabilities in an OS specific way. Such capabilities are - * listed here when libpng has support for them and must be turned - * ON by the application if present. - * - * SOFTWARE: sometimes software optimizations actually result in performance - * decrease on some architectures or systems, or with some sets of - * PNG images. 'Software' options allow such optimizations to be - * selected at run time. - */ -#ifdef PNG_SET_OPTION_SUPPORTED -#ifdef PNG_ARM_NEON_API_SUPPORTED -# define PNG_ARM_NEON 0 /* HARDWARE: ARM Neon SIMD instructions supported */ -#endif -#define PNG_MAXIMUM_INFLATE_WINDOW 2 /* SOFTWARE: force maximum window */ -#define PNG_SKIP_sRGB_CHECK_PROFILE 4 /* SOFTWARE: Check ICC profile for sRGB */ -#ifdef PNG_MIPS_MSA_API_SUPPORTED -# define PNG_MIPS_MSA 6 /* HARDWARE: MIPS Msa SIMD instructions supported */ -#endif -#define PNG_IGNORE_ADLER32 8 -#ifdef PNG_POWERPC_VSX_API_SUPPORTED -# define PNG_POWERPC_VSX 10 /* HARDWARE: PowerPC VSX SIMD instructions supported */ -#endif -#define PNG_OPTION_NEXT 12 /* Next option - numbers must be even */ - -/* Return values: NOTE: there are four values and 'off' is *not* zero */ -#define PNG_OPTION_UNSET 0 /* Unset - defaults to off */ -#define PNG_OPTION_INVALID 1 /* Option number out of range */ -#define PNG_OPTION_OFF 2 -#define PNG_OPTION_ON 3 - -PNG_EXPORT(244, int, png_set_option, (png_structrp png_ptr, int option, - int onoff)); -#endif /* SET_OPTION */ - -/******************************************************************************* - * END OF HARDWARE AND SOFTWARE OPTIONS - ******************************************************************************/ - -/* Maintainer: Put new public prototypes here ^, in libpng.3, in project - * defs, and in scripts/symbols.def. - */ - -/* The last ordinal number (this is the *last* one already used; the next - * one to use is one more than this.) - */ -#ifdef PNG_EXPORT_LAST_ORDINAL - PNG_EXPORT_LAST_ORDINAL(249); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* PNG_VERSION_INFO_ONLY */ -/* Do not put anything past this line */ -#endif /* PNG_H */ diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/pngconf.h b/extension/SDL2_image-2.0.3/VisualC/external/include/pngconf.h deleted file mode 100755 index c0f1554..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/pngconf.h +++ /dev/null @@ -1,622 +0,0 @@ - -/* pngconf.h - machine configurable file for libpng - * - * libpng version 1.6.32, August 24, 2017 - * - * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - * - * Any machine specific code is near the front of this file, so if you - * are configuring libpng for a machine, you may want to read the section - * starting here down to where it starts to typedef png_color, png_text, - * and png_info. - */ - -#ifndef PNGCONF_H -#define PNGCONF_H - -#ifndef PNG_BUILDING_SYMBOL_TABLE /* else includes may cause problems */ - -/* From libpng 1.6.0 libpng requires an ANSI X3.159-1989 ("ISOC90") compliant C - * compiler for correct compilation. The following header files are required by - * the standard. If your compiler doesn't provide these header files, or they - * do not match the standard, you will need to provide/improve them. - */ -#include -#include - -/* Library header files. These header files are all defined by ISOC90; libpng - * expects conformant implementations, however, an ISOC90 conformant system need - * not provide these header files if the functionality cannot be implemented. - * In this case it will be necessary to disable the relevant parts of libpng in - * the build of pnglibconf.h. - * - * Prior to 1.6.0 string.h was included here; the API changes in 1.6.0 to not - * include this unnecessary header file. - */ - -#ifdef PNG_STDIO_SUPPORTED - /* Required for the definition of FILE: */ -# include -#endif - -#ifdef PNG_SETJMP_SUPPORTED - /* Required for the definition of jmp_buf and the declaration of longjmp: */ -# include -#endif - -#ifdef PNG_CONVERT_tIME_SUPPORTED - /* Required for struct tm: */ -# include -#endif - -#endif /* PNG_BUILDING_SYMBOL_TABLE */ - -/* Prior to 1.6.0 it was possible to turn off 'const' in declarations using - * PNG_NO_CONST; this is no longer supported except for data declarations which - * apparently still cause problems in 2011 on some compilers. - */ -#define PNG_CONST const /* backward compatibility only */ - -/* This controls optimization of the reading of 16-bit and 32-bit values - * from PNG files. It can be set on a per-app-file basis - it - * just changes whether a macro is used when the function is called. - * The library builder sets the default; if read functions are not - * built into the library the macro implementation is forced on. - */ -#ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED -# define PNG_USE_READ_MACROS -#endif -#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS) -# if PNG_DEFAULT_READ_MACROS -# define PNG_USE_READ_MACROS -# endif -#endif - -/* COMPILER SPECIFIC OPTIONS. - * - * These options are provided so that a variety of difficult compilers - * can be used. Some are fixed at build time (e.g. PNG_API_RULE - * below) but still have compiler specific implementations, others - * may be changed on a per-file basis when compiling against libpng. - */ - -/* The PNGARG macro was used in versions of libpng prior to 1.6.0 to protect - * against legacy (pre ISOC90) compilers that did not understand function - * prototypes. It is not required for modern C compilers. - */ -#ifndef PNGARG -# define PNGARG(arglist) arglist -#endif - -/* Function calling conventions. - * ============================= - * Normally it is not necessary to specify to the compiler how to call - * a function - it just does it - however on x86 systems derived from - * Microsoft and Borland C compilers ('IBM PC', 'DOS', 'Windows' systems - * and some others) there are multiple ways to call a function and the - * default can be changed on the compiler command line. For this reason - * libpng specifies the calling convention of every exported function and - * every function called via a user supplied function pointer. This is - * done in this file by defining the following macros: - * - * PNGAPI Calling convention for exported functions. - * PNGCBAPI Calling convention for user provided (callback) functions. - * PNGCAPI Calling convention used by the ANSI-C library (required - * for longjmp callbacks and sometimes used internally to - * specify the calling convention for zlib). - * - * These macros should never be overridden. If it is necessary to - * change calling convention in a private build this can be done - * by setting PNG_API_RULE (which defaults to 0) to one of the values - * below to select the correct 'API' variants. - * - * PNG_API_RULE=0 Use PNGCAPI - the 'C' calling convention - throughout. - * This is correct in every known environment. - * PNG_API_RULE=1 Use the operating system convention for PNGAPI and - * the 'C' calling convention (from PNGCAPI) for - * callbacks (PNGCBAPI). This is no longer required - * in any known environment - if it has to be used - * please post an explanation of the problem to the - * libpng mailing list. - * - * These cases only differ if the operating system does not use the C - * calling convention, at present this just means the above cases - * (x86 DOS/Windows sytems) and, even then, this does not apply to - * Cygwin running on those systems. - * - * Note that the value must be defined in pnglibconf.h so that what - * the application uses to call the library matches the conventions - * set when building the library. - */ - -/* Symbol export - * ============= - * When building a shared library it is almost always necessary to tell - * the compiler which symbols to export. The png.h macro 'PNG_EXPORT' - * is used to mark the symbols. On some systems these symbols can be - * extracted at link time and need no special processing by the compiler, - * on other systems the symbols are flagged by the compiler and just - * the declaration requires a special tag applied (unfortunately) in a - * compiler dependent way. Some systems can do either. - * - * A small number of older systems also require a symbol from a DLL to - * be flagged to the program that calls it. This is a problem because - * we do not know in the header file included by application code that - * the symbol will come from a shared library, as opposed to a statically - * linked one. For this reason the application must tell us by setting - * the magic flag PNG_USE_DLL to turn on the special processing before - * it includes png.h. - * - * Four additional macros are used to make this happen: - * - * PNG_IMPEXP The magic (if any) to cause a symbol to be exported from - * the build or imported if PNG_USE_DLL is set - compiler - * and system specific. - * - * PNG_EXPORT_TYPE(type) A macro that pre or appends PNG_IMPEXP to - * 'type', compiler specific. - * - * PNG_DLL_EXPORT Set to the magic to use during a libpng build to - * make a symbol exported from the DLL. Not used in the - * public header files; see pngpriv.h for how it is used - * in the libpng build. - * - * PNG_DLL_IMPORT Set to the magic to force the libpng symbols to come - * from a DLL - used to define PNG_IMPEXP when - * PNG_USE_DLL is set. - */ - -/* System specific discovery. - * ========================== - * This code is used at build time to find PNG_IMPEXP, the API settings - * and PNG_EXPORT_TYPE(), it may also set a macro to indicate the DLL - * import processing is possible. On Windows systems it also sets - * compiler-specific macros to the values required to change the calling - * conventions of the various functions. - */ -#if defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\ - defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) - /* Windows system (DOS doesn't support DLLs). Includes builds under Cygwin or - * MinGW on any architecture currently supported by Windows. Also includes - * Watcom builds but these need special treatment because they are not - * compatible with GCC or Visual C because of different calling conventions. - */ -# if PNG_API_RULE == 2 - /* If this line results in an error, either because __watcall is not - * understood or because of a redefine just below you cannot use *this* - * build of the library with the compiler you are using. *This* build was - * build using Watcom and applications must also be built using Watcom! - */ -# define PNGCAPI __watcall -# endif - -# if defined(__GNUC__) || (defined(_MSC_VER) && (_MSC_VER >= 800)) -# define PNGCAPI __cdecl -# if PNG_API_RULE == 1 - /* If this line results in an error __stdcall is not understood and - * PNG_API_RULE should not have been set to '1'. - */ -# define PNGAPI __stdcall -# endif -# else - /* An older compiler, or one not detected (erroneously) above, - * if necessary override on the command line to get the correct - * variants for the compiler. - */ -# ifndef PNGCAPI -# define PNGCAPI _cdecl -# endif -# if PNG_API_RULE == 1 && !defined(PNGAPI) -# define PNGAPI _stdcall -# endif -# endif /* compiler/api */ - - /* NOTE: PNGCBAPI always defaults to PNGCAPI. */ - -# if defined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD) -# error "PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed" -# endif - -# if (defined(_MSC_VER) && _MSC_VER < 800) ||\ - (defined(__BORLANDC__) && __BORLANDC__ < 0x500) - /* older Borland and MSC - * compilers used '__export' and required this to be after - * the type. - */ -# ifndef PNG_EXPORT_TYPE -# define PNG_EXPORT_TYPE(type) type PNG_IMPEXP -# endif -# define PNG_DLL_EXPORT __export -# else /* newer compiler */ -# define PNG_DLL_EXPORT __declspec(dllexport) -# ifndef PNG_DLL_IMPORT -# define PNG_DLL_IMPORT __declspec(dllimport) -# endif -# endif /* compiler */ - -#else /* !Windows */ -# if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) -# define PNGAPI _System -# else /* !Windows/x86 && !OS/2 */ - /* Use the defaults, or define PNG*API on the command line (but - * this will have to be done for every compile!) - */ -# endif /* other system, !OS/2 */ -#endif /* !Windows/x86 */ - -/* Now do all the defaulting . */ -#ifndef PNGCAPI -# define PNGCAPI -#endif -#ifndef PNGCBAPI -# define PNGCBAPI PNGCAPI -#endif -#ifndef PNGAPI -# define PNGAPI PNGCAPI -#endif - -/* PNG_IMPEXP may be set on the compilation system command line or (if not set) - * then in an internal header file when building the library, otherwise (when - * using the library) it is set here. - */ -#ifndef PNG_IMPEXP -# if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT) - /* This forces use of a DLL, disallowing static linking */ -# define PNG_IMPEXP PNG_DLL_IMPORT -# endif - -# ifndef PNG_IMPEXP -# define PNG_IMPEXP -# endif -#endif - -/* In 1.5.2 the definition of PNG_FUNCTION has been changed to always treat - * 'attributes' as a storage class - the attributes go at the start of the - * function definition, and attributes are always appended regardless of the - * compiler. This considerably simplifies these macros but may cause problems - * if any compilers both need function attributes and fail to handle them as - * a storage class (this is unlikely.) - */ -#ifndef PNG_FUNCTION -# define PNG_FUNCTION(type, name, args, attributes) attributes type name args -#endif - -#ifndef PNG_EXPORT_TYPE -# define PNG_EXPORT_TYPE(type) PNG_IMPEXP type -#endif - - /* The ordinal value is only relevant when preprocessing png.h for symbol - * table entries, so we discard it here. See the .dfn files in the - * scripts directory. - */ - -#ifndef PNG_EXPORTA -# define PNG_EXPORTA(ordinal, type, name, args, attributes) \ - PNG_FUNCTION(PNG_EXPORT_TYPE(type), (PNGAPI name), PNGARG(args), \ - PNG_LINKAGE_API attributes) -#endif - -/* ANSI-C (C90) does not permit a macro to be invoked with an empty argument, - * so make something non-empty to satisfy the requirement: - */ -#define PNG_EMPTY /*empty list*/ - -#define PNG_EXPORT(ordinal, type, name, args) \ - PNG_EXPORTA(ordinal, type, name, args, PNG_EMPTY) - -/* Use PNG_REMOVED to comment out a removed interface. */ -#ifndef PNG_REMOVED -# define PNG_REMOVED(ordinal, type, name, args, attributes) -#endif - -#ifndef PNG_CALLBACK -# define PNG_CALLBACK(type, name, args) type (PNGCBAPI name) PNGARG(args) -#endif - -/* Support for compiler specific function attributes. These are used - * so that where compiler support is available incorrect use of API - * functions in png.h will generate compiler warnings. - * - * Added at libpng-1.2.41. - */ - -#ifndef PNG_NO_PEDANTIC_WARNINGS -# ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED -# define PNG_PEDANTIC_WARNINGS_SUPPORTED -# endif -#endif - -#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED - /* Support for compiler specific function attributes. These are used - * so that where compiler support is available, incorrect use of API - * functions in png.h will generate compiler warnings. Added at libpng - * version 1.2.41. Disabling these removes the warnings but may also produce - * less efficient code. - */ -# if defined(__clang__) && defined(__has_attribute) - /* Clang defines both __clang__ and __GNUC__. Check __clang__ first. */ -# if !defined(PNG_USE_RESULT) && __has_attribute(__warn_unused_result__) -# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) -# endif -# if !defined(PNG_NORETURN) && __has_attribute(__noreturn__) -# define PNG_NORETURN __attribute__((__noreturn__)) -# endif -# if !defined(PNG_ALLOCATED) && __has_attribute(__malloc__) -# define PNG_ALLOCATED __attribute__((__malloc__)) -# endif -# if !defined(PNG_DEPRECATED) && __has_attribute(__deprecated__) -# define PNG_DEPRECATED __attribute__((__deprecated__)) -# endif -# if !defined(PNG_PRIVATE) -# ifdef __has_extension -# if __has_extension(attribute_unavailable_with_message) -# define PNG_PRIVATE __attribute__((__unavailable__(\ - "This function is not exported by libpng."))) -# endif -# endif -# endif -# ifndef PNG_RESTRICT -# define PNG_RESTRICT __restrict -# endif - -# elif defined(__GNUC__) -# ifndef PNG_USE_RESULT -# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) -# endif -# ifndef PNG_NORETURN -# define PNG_NORETURN __attribute__((__noreturn__)) -# endif -# if __GNUC__ >= 3 -# ifndef PNG_ALLOCATED -# define PNG_ALLOCATED __attribute__((__malloc__)) -# endif -# ifndef PNG_DEPRECATED -# define PNG_DEPRECATED __attribute__((__deprecated__)) -# endif -# ifndef PNG_PRIVATE -# if 0 /* Doesn't work so we use deprecated instead*/ -# define PNG_PRIVATE \ - __attribute__((warning("This function is not exported by libpng."))) -# else -# define PNG_PRIVATE \ - __attribute__((__deprecated__)) -# endif -# endif -# if ((__GNUC__ > 3) || !defined(__GNUC_MINOR__) || (__GNUC_MINOR__ >= 1)) -# ifndef PNG_RESTRICT -# define PNG_RESTRICT __restrict -# endif -# endif /* __GNUC__.__GNUC_MINOR__ > 3.0 */ -# endif /* __GNUC__ >= 3 */ - -# elif defined(_MSC_VER) && (_MSC_VER >= 1300) -# ifndef PNG_USE_RESULT -# define PNG_USE_RESULT /* not supported */ -# endif -# ifndef PNG_NORETURN -# define PNG_NORETURN __declspec(noreturn) -# endif -# ifndef PNG_ALLOCATED -# if (_MSC_VER >= 1400) -# define PNG_ALLOCATED __declspec(restrict) -# endif -# endif -# ifndef PNG_DEPRECATED -# define PNG_DEPRECATED __declspec(deprecated) -# endif -# ifndef PNG_PRIVATE -# define PNG_PRIVATE __declspec(deprecated) -# endif -# ifndef PNG_RESTRICT -# if (_MSC_VER >= 1400) -# define PNG_RESTRICT __restrict -# endif -# endif - -# elif defined(__WATCOMC__) -# ifndef PNG_RESTRICT -# define PNG_RESTRICT __restrict -# endif -# endif -#endif /* PNG_PEDANTIC_WARNINGS */ - -#ifndef PNG_DEPRECATED -# define PNG_DEPRECATED /* Use of this function is deprecated */ -#endif -#ifndef PNG_USE_RESULT -# define PNG_USE_RESULT /* The result of this function must be checked */ -#endif -#ifndef PNG_NORETURN -# define PNG_NORETURN /* This function does not return */ -#endif -#ifndef PNG_ALLOCATED -# define PNG_ALLOCATED /* The result of the function is new memory */ -#endif -#ifndef PNG_PRIVATE -# define PNG_PRIVATE /* This is a private libpng function */ -#endif -#ifndef PNG_RESTRICT -# define PNG_RESTRICT /* The C99 "restrict" feature */ -#endif - -#ifndef PNG_FP_EXPORT /* A floating point API. */ -# ifdef PNG_FLOATING_POINT_SUPPORTED -# define PNG_FP_EXPORT(ordinal, type, name, args)\ - PNG_EXPORT(ordinal, type, name, args); -# else /* No floating point APIs */ -# define PNG_FP_EXPORT(ordinal, type, name, args) -# endif -#endif -#ifndef PNG_FIXED_EXPORT /* A fixed point API. */ -# ifdef PNG_FIXED_POINT_SUPPORTED -# define PNG_FIXED_EXPORT(ordinal, type, name, args)\ - PNG_EXPORT(ordinal, type, name, args); -# else /* No fixed point APIs */ -# define PNG_FIXED_EXPORT(ordinal, type, name, args) -# endif -#endif - -#ifndef PNG_BUILDING_SYMBOL_TABLE -/* Some typedefs to get us started. These should be safe on most of the common - * platforms. - * - * png_uint_32 and png_int_32 may, currently, be larger than required to hold a - * 32-bit value however this is not normally advisable. - * - * png_uint_16 and png_int_16 should always be two bytes in size - this is - * verified at library build time. - * - * png_byte must always be one byte in size. - * - * The checks below use constants from limits.h, as defined by the ISOC90 - * standard. - */ -#if CHAR_BIT == 8 && UCHAR_MAX == 255 - typedef unsigned char png_byte; -#else -# error "libpng requires 8-bit bytes" -#endif - -#if INT_MIN == -32768 && INT_MAX == 32767 - typedef int png_int_16; -#elif SHRT_MIN == -32768 && SHRT_MAX == 32767 - typedef short png_int_16; -#else -# error "libpng requires a signed 16-bit type" -#endif - -#if UINT_MAX == 65535 - typedef unsigned int png_uint_16; -#elif USHRT_MAX == 65535 - typedef unsigned short png_uint_16; -#else -# error "libpng requires an unsigned 16-bit type" -#endif - -#if INT_MIN < -2147483646 && INT_MAX > 2147483646 - typedef int png_int_32; -#elif LONG_MIN < -2147483646 && LONG_MAX > 2147483646 - typedef long int png_int_32; -#else -# error "libpng requires a signed 32-bit (or more) type" -#endif - -#if UINT_MAX > 4294967294U - typedef unsigned int png_uint_32; -#elif ULONG_MAX > 4294967294U - typedef unsigned long int png_uint_32; -#else -# error "libpng requires an unsigned 32-bit (or more) type" -#endif - -/* Prior to 1.6.0 it was possible to disable the use of size_t, 1.6.0, however, - * requires an ISOC90 compiler and relies on consistent behavior of sizeof. - */ -typedef size_t png_size_t; -typedef ptrdiff_t png_ptrdiff_t; - -/* libpng needs to know the maximum value of 'size_t' and this controls the - * definition of png_alloc_size_t, below. This maximum value of size_t limits - * but does not control the maximum allocations the library makes - there is - * direct application control of this through png_set_user_limits(). - */ -#ifndef PNG_SMALL_SIZE_T - /* Compiler specific tests for systems where size_t is known to be less than - * 32 bits (some of these systems may no longer work because of the lack of - * 'far' support; see above.) - */ -# if (defined(__TURBOC__) && !defined(__FLAT__)) ||\ - (defined(_MSC_VER) && defined(MAXSEG_64K)) -# define PNG_SMALL_SIZE_T -# endif -#endif - -/* png_alloc_size_t is guaranteed to be no smaller than png_size_t, and no - * smaller than png_uint_32. Casts from png_size_t or png_uint_32 to - * png_alloc_size_t are not necessary; in fact, it is recommended not to use - * them at all so that the compiler can complain when something turns out to be - * problematic. - * - * Casts in the other direction (from png_alloc_size_t to png_size_t or - * png_uint_32) should be explicitly applied; however, we do not expect to - * encounter practical situations that require such conversions. - * - * PNG_SMALL_SIZE_T must be defined if the maximum value of size_t is less than - * 4294967295 - i.e. less than the maximum value of png_uint_32. - */ -#ifdef PNG_SMALL_SIZE_T - typedef png_uint_32 png_alloc_size_t; -#else - typedef png_size_t png_alloc_size_t; -#endif - -/* Prior to 1.6.0 libpng offered limited support for Microsoft C compiler - * implementations of Intel CPU specific support of user-mode segmented address - * spaces, where 16-bit pointers address more than 65536 bytes of memory using - * separate 'segment' registers. The implementation requires two different - * types of pointer (only one of which includes the segment value.) - * - * If required this support is available in version 1.2 of libpng and may be - * available in versions through 1.5, although the correctness of the code has - * not been verified recently. - */ - -/* Typedef for floating-point numbers that are converted to fixed-point with a - * multiple of 100,000, e.g., gamma - */ -typedef png_int_32 png_fixed_point; - -/* Add typedefs for pointers */ -typedef void * png_voidp; -typedef const void * png_const_voidp; -typedef png_byte * png_bytep; -typedef const png_byte * png_const_bytep; -typedef png_uint_32 * png_uint_32p; -typedef const png_uint_32 * png_const_uint_32p; -typedef png_int_32 * png_int_32p; -typedef const png_int_32 * png_const_int_32p; -typedef png_uint_16 * png_uint_16p; -typedef const png_uint_16 * png_const_uint_16p; -typedef png_int_16 * png_int_16p; -typedef const png_int_16 * png_const_int_16p; -typedef char * png_charp; -typedef const char * png_const_charp; -typedef png_fixed_point * png_fixed_point_p; -typedef const png_fixed_point * png_const_fixed_point_p; -typedef png_size_t * png_size_tp; -typedef const png_size_t * png_const_size_tp; - -#ifdef PNG_STDIO_SUPPORTED -typedef FILE * png_FILE_p; -#endif - -#ifdef PNG_FLOATING_POINT_SUPPORTED -typedef double * png_doublep; -typedef const double * png_const_doublep; -#endif - -/* Pointers to pointers; i.e. arrays */ -typedef png_byte * * png_bytepp; -typedef png_uint_32 * * png_uint_32pp; -typedef png_int_32 * * png_int_32pp; -typedef png_uint_16 * * png_uint_16pp; -typedef png_int_16 * * png_int_16pp; -typedef const char * * png_const_charpp; -typedef char * * png_charpp; -typedef png_fixed_point * * png_fixed_point_pp; -#ifdef PNG_FLOATING_POINT_SUPPORTED -typedef double * * png_doublepp; -#endif - -/* Pointers to pointers to pointers; i.e., pointer to array */ -typedef char * * * png_charppp; - -#endif /* PNG_BUILDING_SYMBOL_TABLE */ - -#endif /* PNGCONF_H */ diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/pnglibconf.h b/extension/SDL2_image-2.0.3/VisualC/external/include/pnglibconf.h deleted file mode 100755 index ec7d75b..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/pnglibconf.h +++ /dev/null @@ -1,218 +0,0 @@ -/* pnglibconf.h - library build configuration */ - -/* libpng version 1.6.32, August 24, 2017 */ - -/* Copyright (c) 1998-2017 Glenn Randers-Pehrson */ - -/* This code is released under the libpng license. */ -/* For conditions of distribution and use, see the disclaimer */ -/* and license in png.h */ - -/* pnglibconf.h */ -/* Machine generated file: DO NOT EDIT */ -/* Derived from: scripts/pnglibconf.dfa */ -#ifndef PNGLCONF_H -#define PNGLCONF_H -/* options */ -#define PNG_16BIT_SUPPORTED -#define PNG_ALIGNED_MEMORY_SUPPORTED -/*#undef PNG_ARM_NEON_API_SUPPORTED*/ -/*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/ -#define PNG_BENIGN_ERRORS_SUPPORTED -#define PNG_BENIGN_READ_ERRORS_SUPPORTED -/*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/ -#define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED -#define PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED -#define PNG_COLORSPACE_SUPPORTED -#define PNG_CONSOLE_IO_SUPPORTED -#define PNG_CONVERT_tIME_SUPPORTED -#define PNG_EASY_ACCESS_SUPPORTED -/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/ -#define PNG_ERROR_TEXT_SUPPORTED -#define PNG_FIXED_POINT_SUPPORTED -#define PNG_FLOATING_ARITHMETIC_SUPPORTED -#define PNG_FLOATING_POINT_SUPPORTED -#define PNG_FORMAT_AFIRST_SUPPORTED -#define PNG_FORMAT_BGR_SUPPORTED -#define PNG_GAMMA_SUPPORTED -#define PNG_GET_PALETTE_MAX_SUPPORTED -#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED -#define PNG_INCH_CONVERSIONS_SUPPORTED -#define PNG_INFO_IMAGE_SUPPORTED -#define PNG_IO_STATE_SUPPORTED -#define PNG_MNG_FEATURES_SUPPORTED -#define PNG_POINTER_INDEXING_SUPPORTED -/*#undef PNG_POWERPC_VSX_API_SUPPORTED*/ -/*#undef PNG_POWERPC_VSX_CHECK_SUPPORTED*/ -#define PNG_PROGRESSIVE_READ_SUPPORTED -#define PNG_READ_16BIT_SUPPORTED -#define PNG_READ_ALPHA_MODE_SUPPORTED -#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED -#define PNG_READ_BACKGROUND_SUPPORTED -#define PNG_READ_BGR_SUPPORTED -#define PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED -#define PNG_READ_COMPOSITE_NODIV_SUPPORTED -#define PNG_READ_COMPRESSED_TEXT_SUPPORTED -#define PNG_READ_EXPAND_16_SUPPORTED -#define PNG_READ_EXPAND_SUPPORTED -#define PNG_READ_FILLER_SUPPORTED -#define PNG_READ_GAMMA_SUPPORTED -#define PNG_READ_GET_PALETTE_MAX_SUPPORTED -#define PNG_READ_GRAY_TO_RGB_SUPPORTED -#define PNG_READ_INTERLACING_SUPPORTED -#define PNG_READ_INT_FUNCTIONS_SUPPORTED -#define PNG_READ_INVERT_ALPHA_SUPPORTED -#define PNG_READ_INVERT_SUPPORTED -#define PNG_READ_OPT_PLTE_SUPPORTED -#define PNG_READ_PACKSWAP_SUPPORTED -#define PNG_READ_PACK_SUPPORTED -#define PNG_READ_QUANTIZE_SUPPORTED -#define PNG_READ_RGB_TO_GRAY_SUPPORTED -#define PNG_READ_SCALE_16_TO_8_SUPPORTED -#define PNG_READ_SHIFT_SUPPORTED -#define PNG_READ_STRIP_16_TO_8_SUPPORTED -#define PNG_READ_STRIP_ALPHA_SUPPORTED -#define PNG_READ_SUPPORTED -#define PNG_READ_SWAP_ALPHA_SUPPORTED -#define PNG_READ_SWAP_SUPPORTED -#define PNG_READ_TEXT_SUPPORTED -#define PNG_READ_TRANSFORMS_SUPPORTED -#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_READ_USER_CHUNKS_SUPPORTED -#define PNG_READ_USER_TRANSFORM_SUPPORTED -#define PNG_READ_bKGD_SUPPORTED -#define PNG_READ_cHRM_SUPPORTED -#define PNG_READ_eXIf_SUPPORTED -#define PNG_READ_gAMA_SUPPORTED -#define PNG_READ_hIST_SUPPORTED -#define PNG_READ_iCCP_SUPPORTED -#define PNG_READ_iTXt_SUPPORTED -#define PNG_READ_oFFs_SUPPORTED -#define PNG_READ_pCAL_SUPPORTED -#define PNG_READ_pHYs_SUPPORTED -#define PNG_READ_sBIT_SUPPORTED -#define PNG_READ_sCAL_SUPPORTED -#define PNG_READ_sPLT_SUPPORTED -#define PNG_READ_sRGB_SUPPORTED -#define PNG_READ_tEXt_SUPPORTED -#define PNG_READ_tIME_SUPPORTED -#define PNG_READ_tRNS_SUPPORTED -#define PNG_READ_zTXt_SUPPORTED -#define PNG_SAVE_INT_32_SUPPORTED -#define PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_SEQUENTIAL_READ_SUPPORTED -#define PNG_SETJMP_SUPPORTED -#define PNG_SET_OPTION_SUPPORTED -#define PNG_SET_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_SET_USER_LIMITS_SUPPORTED -#define PNG_SIMPLIFIED_READ_AFIRST_SUPPORTED -#define PNG_SIMPLIFIED_READ_BGR_SUPPORTED -#define PNG_SIMPLIFIED_READ_SUPPORTED -#define PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED -#define PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED -#define PNG_SIMPLIFIED_WRITE_STDIO_SUPPORTED -#define PNG_SIMPLIFIED_WRITE_SUPPORTED -#define PNG_STDIO_SUPPORTED -#define PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_TEXT_SUPPORTED -#define PNG_TIME_RFC1123_SUPPORTED -#define PNG_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_USER_CHUNKS_SUPPORTED -#define PNG_USER_LIMITS_SUPPORTED -#define PNG_USER_MEM_SUPPORTED -#define PNG_USER_TRANSFORM_INFO_SUPPORTED -#define PNG_USER_TRANSFORM_PTR_SUPPORTED -#define PNG_WARNINGS_SUPPORTED -#define PNG_WRITE_16BIT_SUPPORTED -#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED -#define PNG_WRITE_BGR_SUPPORTED -#define PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED -#define PNG_WRITE_COMPRESSED_TEXT_SUPPORTED -#define PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED -#define PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED -#define PNG_WRITE_FILLER_SUPPORTED -#define PNG_WRITE_FILTER_SUPPORTED -#define PNG_WRITE_FLUSH_SUPPORTED -#define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED -#define PNG_WRITE_INTERLACING_SUPPORTED -#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED -#define PNG_WRITE_INVERT_ALPHA_SUPPORTED -#define PNG_WRITE_INVERT_SUPPORTED -#define PNG_WRITE_OPTIMIZE_CMF_SUPPORTED -#define PNG_WRITE_PACKSWAP_SUPPORTED -#define PNG_WRITE_PACK_SUPPORTED -#define PNG_WRITE_SHIFT_SUPPORTED -#define PNG_WRITE_SUPPORTED -#define PNG_WRITE_SWAP_ALPHA_SUPPORTED -#define PNG_WRITE_SWAP_SUPPORTED -#define PNG_WRITE_TEXT_SUPPORTED -#define PNG_WRITE_TRANSFORMS_SUPPORTED -#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_WRITE_USER_TRANSFORM_SUPPORTED -#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED -#define PNG_WRITE_bKGD_SUPPORTED -#define PNG_WRITE_cHRM_SUPPORTED -#define PNG_WRITE_eXIf_SUPPORTED -#define PNG_WRITE_gAMA_SUPPORTED -#define PNG_WRITE_hIST_SUPPORTED -#define PNG_WRITE_iCCP_SUPPORTED -#define PNG_WRITE_iTXt_SUPPORTED -#define PNG_WRITE_oFFs_SUPPORTED -#define PNG_WRITE_pCAL_SUPPORTED -#define PNG_WRITE_pHYs_SUPPORTED -#define PNG_WRITE_sBIT_SUPPORTED -#define PNG_WRITE_sCAL_SUPPORTED -#define PNG_WRITE_sPLT_SUPPORTED -#define PNG_WRITE_sRGB_SUPPORTED -#define PNG_WRITE_tEXt_SUPPORTED -#define PNG_WRITE_tIME_SUPPORTED -#define PNG_WRITE_tRNS_SUPPORTED -#define PNG_WRITE_zTXt_SUPPORTED -#define PNG_bKGD_SUPPORTED -#define PNG_cHRM_SUPPORTED -#define PNG_eXIf_SUPPORTED -#define PNG_gAMA_SUPPORTED -#define PNG_hIST_SUPPORTED -#define PNG_iCCP_SUPPORTED -#define PNG_iTXt_SUPPORTED -#define PNG_oFFs_SUPPORTED -#define PNG_pCAL_SUPPORTED -#define PNG_pHYs_SUPPORTED -#define PNG_sBIT_SUPPORTED -#define PNG_sCAL_SUPPORTED -#define PNG_sPLT_SUPPORTED -#define PNG_sRGB_SUPPORTED -#define PNG_tEXt_SUPPORTED -#define PNG_tIME_SUPPORTED -#define PNG_tRNS_SUPPORTED -#define PNG_zTXt_SUPPORTED -/* end of options */ -/* settings */ -#define PNG_API_RULE 0 -#define PNG_DEFAULT_READ_MACROS 1 -#define PNG_GAMMA_THRESHOLD_FIXED 5000 -#define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE -#define PNG_INFLATE_BUF_SIZE 1024 -#define PNG_LINKAGE_API extern -#define PNG_LINKAGE_CALLBACK extern -#define PNG_LINKAGE_DATA extern -#define PNG_LINKAGE_FUNCTION extern -#define PNG_MAX_GAMMA_8 11 -#define PNG_QUANTIZE_BLUE_BITS 5 -#define PNG_QUANTIZE_GREEN_BITS 5 -#define PNG_QUANTIZE_RED_BITS 5 -#define PNG_TEXT_Z_DEFAULT_COMPRESSION (-1) -#define PNG_TEXT_Z_DEFAULT_STRATEGY 0 -#define PNG_USER_CHUNK_CACHE_MAX 1000 -#define PNG_USER_CHUNK_MALLOC_MAX 8000000 -#define PNG_USER_HEIGHT_MAX 1000000 -#define PNG_USER_WIDTH_MAX 1000000 -#define PNG_ZBUF_SIZE 8192 -#define PNG_ZLIB_VERNUM 0x12b0 -#define PNG_Z_DEFAULT_COMPRESSION (-1) -#define PNG_Z_DEFAULT_NOFILTER_STRATEGY 0 -#define PNG_Z_DEFAULT_STRATEGY 1 -#define PNG_sCAL_PRECISION 5 -#define PNG_sRGB_PROFILE_CHECKS 2 -/* end of settings */ -#endif /* PNGLCONF_H */ diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/tiff.h b/extension/SDL2_image-2.0.3/VisualC/external/include/tiff.h deleted file mode 100755 index fb39634..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/tiff.h +++ /dev/null @@ -1,681 +0,0 @@ -/* $Id: tiff.h,v 1.70 2016-01-23 21:20:34 erouault Exp $ */ - -/* - * Copyright (c) 1988-1997 Sam Leffler - * Copyright (c) 1991-1997 Silicon Graphics, Inc. - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation for any purpose is hereby granted without fee, provided - * that (i) the above copyright notices and this permission notice appear in - * all copies of the software and related documentation, and (ii) the names of - * Sam Leffler and Silicon Graphics may not be used in any advertising or - * publicity relating to the software without the specific, prior written - * permission of Sam Leffler and Silicon Graphics. - * - * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * - * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR - * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, - * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, - * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF - * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THIS SOFTWARE. - */ - -#ifndef _TIFF_ -#define _TIFF_ - -#include "tiffconf.h" - -/* - * Tag Image File Format (TIFF) - * - * Based on Rev 6.0 from: - * Developer's Desk - * Aldus Corporation - * 411 First Ave. South - * Suite 200 - * Seattle, WA 98104 - * 206-622-5500 - * - * (http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf) - * - * For BigTIFF design notes see the following links - * http://www.remotesensing.org/libtiff/bigtiffdesign.html - * http://www.awaresystems.be/imaging/tiff/bigtiff.html - */ - -#define TIFF_VERSION_CLASSIC 42 -#define TIFF_VERSION_BIG 43 - -#define TIFF_BIGENDIAN 0x4d4d -#define TIFF_LITTLEENDIAN 0x4949 -#define MDI_LITTLEENDIAN 0x5045 -#define MDI_BIGENDIAN 0x4550 - -/* - * Intrinsic data types required by the file format: - * - * 8-bit quantities int8/uint8 - * 16-bit quantities int16/uint16 - * 32-bit quantities int32/uint32 - * 64-bit quantities int64/uint64 - * strings unsigned char* - */ - -typedef TIFF_INT8_T int8; -typedef TIFF_UINT8_T uint8; - -typedef TIFF_INT16_T int16; -typedef TIFF_UINT16_T uint16; - -typedef TIFF_INT32_T int32; -typedef TIFF_UINT32_T uint32; - -typedef TIFF_INT64_T int64; -typedef TIFF_UINT64_T uint64; - -/* - * Some types as promoted in a variable argument list - * We use uint16_vap rather then directly using int, because this way - * we document the type we actually want to pass through, conceptually, - * rather then confusing the issue by merely stating the type it gets - * promoted to - */ - -typedef int uint16_vap; - -/* - * TIFF header. - */ -typedef struct { - uint16 tiff_magic; /* magic number (defines byte order) */ - uint16 tiff_version; /* TIFF version number */ -} TIFFHeaderCommon; -typedef struct { - uint16 tiff_magic; /* magic number (defines byte order) */ - uint16 tiff_version; /* TIFF version number */ - uint32 tiff_diroff; /* byte offset to first directory */ -} TIFFHeaderClassic; -typedef struct { - uint16 tiff_magic; /* magic number (defines byte order) */ - uint16 tiff_version; /* TIFF version number */ - uint16 tiff_offsetsize; /* size of offsets, should be 8 */ - uint16 tiff_unused; /* unused word, should be 0 */ - uint64 tiff_diroff; /* byte offset to first directory */ -} TIFFHeaderBig; - - -/* - * NB: In the comments below, - * - items marked with a + are obsoleted by revision 5.0, - * - items marked with a ! are introduced in revision 6.0. - * - items marked with a % are introduced post revision 6.0. - * - items marked with a $ are obsoleted by revision 6.0. - * - items marked with a & are introduced by Adobe DNG specification. - */ - -/* - * Tag data type information. - * - * Note: RATIONALs are the ratio of two 32-bit integer values. - */ -typedef enum { - TIFF_NOTYPE = 0, /* placeholder */ - TIFF_BYTE = 1, /* 8-bit unsigned integer */ - TIFF_ASCII = 2, /* 8-bit bytes w/ last byte null */ - TIFF_SHORT = 3, /* 16-bit unsigned integer */ - TIFF_LONG = 4, /* 32-bit unsigned integer */ - TIFF_RATIONAL = 5, /* 64-bit unsigned fraction */ - TIFF_SBYTE = 6, /* !8-bit signed integer */ - TIFF_UNDEFINED = 7, /* !8-bit untyped data */ - TIFF_SSHORT = 8, /* !16-bit signed integer */ - TIFF_SLONG = 9, /* !32-bit signed integer */ - TIFF_SRATIONAL = 10, /* !64-bit signed fraction */ - TIFF_FLOAT = 11, /* !32-bit IEEE floating point */ - TIFF_DOUBLE = 12, /* !64-bit IEEE floating point */ - TIFF_IFD = 13, /* %32-bit unsigned integer (offset) */ - TIFF_LONG8 = 16, /* BigTIFF 64-bit unsigned integer */ - TIFF_SLONG8 = 17, /* BigTIFF 64-bit signed integer */ - TIFF_IFD8 = 18 /* BigTIFF 64-bit unsigned integer (offset) */ -} TIFFDataType; - -/* - * TIFF Tag Definitions. - */ -#define TIFFTAG_SUBFILETYPE 254 /* subfile data descriptor */ -#define FILETYPE_REDUCEDIMAGE 0x1 /* reduced resolution version */ -#define FILETYPE_PAGE 0x2 /* one page of many */ -#define FILETYPE_MASK 0x4 /* transparency mask */ -#define TIFFTAG_OSUBFILETYPE 255 /* +kind of data in subfile */ -#define OFILETYPE_IMAGE 1 /* full resolution image data */ -#define OFILETYPE_REDUCEDIMAGE 2 /* reduced size image data */ -#define OFILETYPE_PAGE 3 /* one page of many */ -#define TIFFTAG_IMAGEWIDTH 256 /* image width in pixels */ -#define TIFFTAG_IMAGELENGTH 257 /* image height in pixels */ -#define TIFFTAG_BITSPERSAMPLE 258 /* bits per channel (sample) */ -#define TIFFTAG_COMPRESSION 259 /* data compression technique */ -#define COMPRESSION_NONE 1 /* dump mode */ -#define COMPRESSION_CCITTRLE 2 /* CCITT modified Huffman RLE */ -#define COMPRESSION_CCITTFAX3 3 /* CCITT Group 3 fax encoding */ -#define COMPRESSION_CCITT_T4 3 /* CCITT T.4 (TIFF 6 name) */ -#define COMPRESSION_CCITTFAX4 4 /* CCITT Group 4 fax encoding */ -#define COMPRESSION_CCITT_T6 4 /* CCITT T.6 (TIFF 6 name) */ -#define COMPRESSION_LZW 5 /* Lempel-Ziv & Welch */ -#define COMPRESSION_OJPEG 6 /* !6.0 JPEG */ -#define COMPRESSION_JPEG 7 /* %JPEG DCT compression */ -#define COMPRESSION_T85 9 /* !TIFF/FX T.85 JBIG compression */ -#define COMPRESSION_T43 10 /* !TIFF/FX T.43 colour by layered JBIG compression */ -#define COMPRESSION_NEXT 32766 /* NeXT 2-bit RLE */ -#define COMPRESSION_CCITTRLEW 32771 /* #1 w/ word alignment */ -#define COMPRESSION_PACKBITS 32773 /* Macintosh RLE */ -#define COMPRESSION_THUNDERSCAN 32809 /* ThunderScan RLE */ -/* codes 32895-32898 are reserved for ANSI IT8 TIFF/IT */ -#define COMPRESSION_DCS 32947 /* Kodak DCS encoding */ -#define COMPRESSION_JBIG 34661 /* ISO JBIG */ -#define COMPRESSION_SGILOG 34676 /* SGI Log Luminance RLE */ -#define COMPRESSION_SGILOG24 34677 /* SGI Log 24-bit packed */ -#define COMPRESSION_JP2000 34712 /* Leadtools JPEG2000 */ -#define COMPRESSION_LZMA 34925 /* LZMA2 */ -#define TIFFTAG_PHOTOMETRIC 262 /* photometric interpretation */ -#define PHOTOMETRIC_MINISWHITE 0 /* min value is white */ -#define PHOTOMETRIC_MINISBLACK 1 /* min value is black */ -#define PHOTOMETRIC_RGB 2 /* RGB color model */ -#define PHOTOMETRIC_PALETTE 3 /* color map indexed */ -#define PHOTOMETRIC_MASK 4 /* $holdout mask */ -#define PHOTOMETRIC_SEPARATED 5 /* !color separations */ -#define PHOTOMETRIC_YCBCR 6 /* !CCIR 601 */ -#define PHOTOMETRIC_CIELAB 8 /* !1976 CIE L*a*b* */ -#define PHOTOMETRIC_ICCLAB 9 /* ICC L*a*b* [Adobe TIFF Technote 4] */ -#define PHOTOMETRIC_ITULAB 10 /* ITU L*a*b* */ -#define PHOTOMETRIC_CFA 32803 /* color filter array */ -#define PHOTOMETRIC_LOGL 32844 /* CIE Log2(L) */ -#define PHOTOMETRIC_LOGLUV 32845 /* CIE Log2(L) (u',v') */ -#define TIFFTAG_THRESHHOLDING 263 /* +thresholding used on data */ -#define THRESHHOLD_BILEVEL 1 /* b&w art scan */ -#define THRESHHOLD_HALFTONE 2 /* or dithered scan */ -#define THRESHHOLD_ERRORDIFFUSE 3 /* usually floyd-steinberg */ -#define TIFFTAG_CELLWIDTH 264 /* +dithering matrix width */ -#define TIFFTAG_CELLLENGTH 265 /* +dithering matrix height */ -#define TIFFTAG_FILLORDER 266 /* data order within a byte */ -#define FILLORDER_MSB2LSB 1 /* most significant -> least */ -#define FILLORDER_LSB2MSB 2 /* least significant -> most */ -#define TIFFTAG_DOCUMENTNAME 269 /* name of doc. image is from */ -#define TIFFTAG_IMAGEDESCRIPTION 270 /* info about image */ -#define TIFFTAG_MAKE 271 /* scanner manufacturer name */ -#define TIFFTAG_MODEL 272 /* scanner model name/number */ -#define TIFFTAG_STRIPOFFSETS 273 /* offsets to data strips */ -#define TIFFTAG_ORIENTATION 274 /* +image orientation */ -#define ORIENTATION_TOPLEFT 1 /* row 0 top, col 0 lhs */ -#define ORIENTATION_TOPRIGHT 2 /* row 0 top, col 0 rhs */ -#define ORIENTATION_BOTRIGHT 3 /* row 0 bottom, col 0 rhs */ -#define ORIENTATION_BOTLEFT 4 /* row 0 bottom, col 0 lhs */ -#define ORIENTATION_LEFTTOP 5 /* row 0 lhs, col 0 top */ -#define ORIENTATION_RIGHTTOP 6 /* row 0 rhs, col 0 top */ -#define ORIENTATION_RIGHTBOT 7 /* row 0 rhs, col 0 bottom */ -#define ORIENTATION_LEFTBOT 8 /* row 0 lhs, col 0 bottom */ -#define TIFFTAG_SAMPLESPERPIXEL 277 /* samples per pixel */ -#define TIFFTAG_ROWSPERSTRIP 278 /* rows per strip of data */ -#define TIFFTAG_STRIPBYTECOUNTS 279 /* bytes counts for strips */ -#define TIFFTAG_MINSAMPLEVALUE 280 /* +minimum sample value */ -#define TIFFTAG_MAXSAMPLEVALUE 281 /* +maximum sample value */ -#define TIFFTAG_XRESOLUTION 282 /* pixels/resolution in x */ -#define TIFFTAG_YRESOLUTION 283 /* pixels/resolution in y */ -#define TIFFTAG_PLANARCONFIG 284 /* storage organization */ -#define PLANARCONFIG_CONTIG 1 /* single image plane */ -#define PLANARCONFIG_SEPARATE 2 /* separate planes of data */ -#define TIFFTAG_PAGENAME 285 /* page name image is from */ -#define TIFFTAG_XPOSITION 286 /* x page offset of image lhs */ -#define TIFFTAG_YPOSITION 287 /* y page offset of image lhs */ -#define TIFFTAG_FREEOFFSETS 288 /* +byte offset to free block */ -#define TIFFTAG_FREEBYTECOUNTS 289 /* +sizes of free blocks */ -#define TIFFTAG_GRAYRESPONSEUNIT 290 /* $gray scale curve accuracy */ -#define GRAYRESPONSEUNIT_10S 1 /* tenths of a unit */ -#define GRAYRESPONSEUNIT_100S 2 /* hundredths of a unit */ -#define GRAYRESPONSEUNIT_1000S 3 /* thousandths of a unit */ -#define GRAYRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ -#define GRAYRESPONSEUNIT_100000S 5 /* hundred-thousandths */ -#define TIFFTAG_GRAYRESPONSECURVE 291 /* $gray scale response curve */ -#define TIFFTAG_GROUP3OPTIONS 292 /* 32 flag bits */ -#define TIFFTAG_T4OPTIONS 292 /* TIFF 6.0 proper name alias */ -#define GROUP3OPT_2DENCODING 0x1 /* 2-dimensional coding */ -#define GROUP3OPT_UNCOMPRESSED 0x2 /* data not compressed */ -#define GROUP3OPT_FILLBITS 0x4 /* fill to byte boundary */ -#define TIFFTAG_GROUP4OPTIONS 293 /* 32 flag bits */ -#define TIFFTAG_T6OPTIONS 293 /* TIFF 6.0 proper name */ -#define GROUP4OPT_UNCOMPRESSED 0x2 /* data not compressed */ -#define TIFFTAG_RESOLUTIONUNIT 296 /* units of resolutions */ -#define RESUNIT_NONE 1 /* no meaningful units */ -#define RESUNIT_INCH 2 /* english */ -#define RESUNIT_CENTIMETER 3 /* metric */ -#define TIFFTAG_PAGENUMBER 297 /* page numbers of multi-page */ -#define TIFFTAG_COLORRESPONSEUNIT 300 /* $color curve accuracy */ -#define COLORRESPONSEUNIT_10S 1 /* tenths of a unit */ -#define COLORRESPONSEUNIT_100S 2 /* hundredths of a unit */ -#define COLORRESPONSEUNIT_1000S 3 /* thousandths of a unit */ -#define COLORRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ -#define COLORRESPONSEUNIT_100000S 5 /* hundred-thousandths */ -#define TIFFTAG_TRANSFERFUNCTION 301 /* !colorimetry info */ -#define TIFFTAG_SOFTWARE 305 /* name & release */ -#define TIFFTAG_DATETIME 306 /* creation date and time */ -#define TIFFTAG_ARTIST 315 /* creator of image */ -#define TIFFTAG_HOSTCOMPUTER 316 /* machine where created */ -#define TIFFTAG_PREDICTOR 317 /* prediction scheme w/ LZW */ -#define PREDICTOR_NONE 1 /* no prediction scheme used */ -#define PREDICTOR_HORIZONTAL 2 /* horizontal differencing */ -#define PREDICTOR_FLOATINGPOINT 3 /* floating point predictor */ -#define TIFFTAG_WHITEPOINT 318 /* image white point */ -#define TIFFTAG_PRIMARYCHROMATICITIES 319 /* !primary chromaticities */ -#define TIFFTAG_COLORMAP 320 /* RGB map for palette image */ -#define TIFFTAG_HALFTONEHINTS 321 /* !highlight+shadow info */ -#define TIFFTAG_TILEWIDTH 322 /* !tile width in pixels */ -#define TIFFTAG_TILELENGTH 323 /* !tile height in pixels */ -#define TIFFTAG_TILEOFFSETS 324 /* !offsets to data tiles */ -#define TIFFTAG_TILEBYTECOUNTS 325 /* !byte counts for tiles */ -#define TIFFTAG_BADFAXLINES 326 /* lines w/ wrong pixel count */ -#define TIFFTAG_CLEANFAXDATA 327 /* regenerated line info */ -#define CLEANFAXDATA_CLEAN 0 /* no errors detected */ -#define CLEANFAXDATA_REGENERATED 1 /* receiver regenerated lines */ -#define CLEANFAXDATA_UNCLEAN 2 /* uncorrected errors exist */ -#define TIFFTAG_CONSECUTIVEBADFAXLINES 328 /* max consecutive bad lines */ -#define TIFFTAG_SUBIFD 330 /* subimage descriptors */ -#define TIFFTAG_INKSET 332 /* !inks in separated image */ -#define INKSET_CMYK 1 /* !cyan-magenta-yellow-black color */ -#define INKSET_MULTIINK 2 /* !multi-ink or hi-fi color */ -#define TIFFTAG_INKNAMES 333 /* !ascii names of inks */ -#define TIFFTAG_NUMBEROFINKS 334 /* !number of inks */ -#define TIFFTAG_DOTRANGE 336 /* !0% and 100% dot codes */ -#define TIFFTAG_TARGETPRINTER 337 /* !separation target */ -#define TIFFTAG_EXTRASAMPLES 338 /* !info about extra samples */ -#define EXTRASAMPLE_UNSPECIFIED 0 /* !unspecified data */ -#define EXTRASAMPLE_ASSOCALPHA 1 /* !associated alpha data */ -#define EXTRASAMPLE_UNASSALPHA 2 /* !unassociated alpha data */ -#define TIFFTAG_SAMPLEFORMAT 339 /* !data sample format */ -#define SAMPLEFORMAT_UINT 1 /* !unsigned integer data */ -#define SAMPLEFORMAT_INT 2 /* !signed integer data */ -#define SAMPLEFORMAT_IEEEFP 3 /* !IEEE floating point data */ -#define SAMPLEFORMAT_VOID 4 /* !untyped data */ -#define SAMPLEFORMAT_COMPLEXINT 5 /* !complex signed int */ -#define SAMPLEFORMAT_COMPLEXIEEEFP 6 /* !complex ieee floating */ -#define TIFFTAG_SMINSAMPLEVALUE 340 /* !variable MinSampleValue */ -#define TIFFTAG_SMAXSAMPLEVALUE 341 /* !variable MaxSampleValue */ -#define TIFFTAG_CLIPPATH 343 /* %ClipPath - [Adobe TIFF technote 2] */ -#define TIFFTAG_XCLIPPATHUNITS 344 /* %XClipPathUnits - [Adobe TIFF technote 2] */ -#define TIFFTAG_YCLIPPATHUNITS 345 /* %YClipPathUnits - [Adobe TIFF technote 2] */ -#define TIFFTAG_INDEXED 346 /* %Indexed - [Adobe TIFF Technote 3] */ -#define TIFFTAG_JPEGTABLES 347 /* %JPEG table stream */ -#define TIFFTAG_OPIPROXY 351 /* %OPI Proxy [Adobe TIFF technote] */ -/* Tags 400-435 are from the TIFF/FX spec */ -#define TIFFTAG_GLOBALPARAMETERSIFD 400 /* ! */ -#define TIFFTAG_PROFILETYPE 401 /* ! */ -#define PROFILETYPE_UNSPECIFIED 0 /* ! */ -#define PROFILETYPE_G3_FAX 1 /* ! */ -#define TIFFTAG_FAXPROFILE 402 /* ! */ -#define FAXPROFILE_S 1 /* !TIFF/FX FAX profile S */ -#define FAXPROFILE_F 2 /* !TIFF/FX FAX profile F */ -#define FAXPROFILE_J 3 /* !TIFF/FX FAX profile J */ -#define FAXPROFILE_C 4 /* !TIFF/FX FAX profile C */ -#define FAXPROFILE_L 5 /* !TIFF/FX FAX profile L */ -#define FAXPROFILE_M 6 /* !TIFF/FX FAX profile LM */ -#define TIFFTAG_CODINGMETHODS 403 /* !TIFF/FX coding methods */ -#define CODINGMETHODS_T4_1D (1 << 1) /* !T.4 1D */ -#define CODINGMETHODS_T4_2D (1 << 2) /* !T.4 2D */ -#define CODINGMETHODS_T6 (1 << 3) /* !T.6 */ -#define CODINGMETHODS_T85 (1 << 4) /* !T.85 JBIG */ -#define CODINGMETHODS_T42 (1 << 5) /* !T.42 JPEG */ -#define CODINGMETHODS_T43 (1 << 6) /* !T.43 colour by layered JBIG */ -#define TIFFTAG_VERSIONYEAR 404 /* !TIFF/FX version year */ -#define TIFFTAG_MODENUMBER 405 /* !TIFF/FX mode number */ -#define TIFFTAG_DECODE 433 /* !TIFF/FX decode */ -#define TIFFTAG_IMAGEBASECOLOR 434 /* !TIFF/FX image base colour */ -#define TIFFTAG_T82OPTIONS 435 /* !TIFF/FX T.82 options */ -/* - * Tags 512-521 are obsoleted by Technical Note #2 which specifies a - * revised JPEG-in-TIFF scheme. - */ -#define TIFFTAG_JPEGPROC 512 /* !JPEG processing algorithm */ -#define JPEGPROC_BASELINE 1 /* !baseline sequential */ -#define JPEGPROC_LOSSLESS 14 /* !Huffman coded lossless */ -#define TIFFTAG_JPEGIFOFFSET 513 /* !pointer to SOI marker */ -#define TIFFTAG_JPEGIFBYTECOUNT 514 /* !JFIF stream length */ -#define TIFFTAG_JPEGRESTARTINTERVAL 515 /* !restart interval length */ -#define TIFFTAG_JPEGLOSSLESSPREDICTORS 517 /* !lossless proc predictor */ -#define TIFFTAG_JPEGPOINTTRANSFORM 518 /* !lossless point transform */ -#define TIFFTAG_JPEGQTABLES 519 /* !Q matrix offsets */ -#define TIFFTAG_JPEGDCTABLES 520 /* !DCT table offsets */ -#define TIFFTAG_JPEGACTABLES 521 /* !AC coefficient offsets */ -#define TIFFTAG_YCBCRCOEFFICIENTS 529 /* !RGB -> YCbCr transform */ -#define TIFFTAG_YCBCRSUBSAMPLING 530 /* !YCbCr subsampling factors */ -#define TIFFTAG_YCBCRPOSITIONING 531 /* !subsample positioning */ -#define YCBCRPOSITION_CENTERED 1 /* !as in PostScript Level 2 */ -#define YCBCRPOSITION_COSITED 2 /* !as in CCIR 601-1 */ -#define TIFFTAG_REFERENCEBLACKWHITE 532 /* !colorimetry info */ -#define TIFFTAG_STRIPROWCOUNTS 559 /* !TIFF/FX strip row counts */ -#define TIFFTAG_XMLPACKET 700 /* %XML packet - [Adobe XMP Specification, - January 2004 */ -#define TIFFTAG_OPIIMAGEID 32781 /* %OPI ImageID - [Adobe TIFF technote] */ -/* tags 32952-32956 are private tags registered to Island Graphics */ -#define TIFFTAG_REFPTS 32953 /* image reference points */ -#define TIFFTAG_REGIONTACKPOINT 32954 /* region-xform tack point */ -#define TIFFTAG_REGIONWARPCORNERS 32955 /* warp quadrilateral */ -#define TIFFTAG_REGIONAFFINE 32956 /* affine transformation mat */ -/* tags 32995-32999 are private tags registered to SGI */ -#define TIFFTAG_MATTEING 32995 /* $use ExtraSamples */ -#define TIFFTAG_DATATYPE 32996 /* $use SampleFormat */ -#define TIFFTAG_IMAGEDEPTH 32997 /* z depth of image */ -#define TIFFTAG_TILEDEPTH 32998 /* z depth/data tile */ -/* tags 33300-33309 are private tags registered to Pixar */ -/* - * TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH - * are set when an image has been cropped out of a larger image. - * They reflect the size of the original uncropped image. - * The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used - * to determine the position of the smaller image in the larger one. - */ -#define TIFFTAG_PIXAR_IMAGEFULLWIDTH 33300 /* full image size in x */ -#define TIFFTAG_PIXAR_IMAGEFULLLENGTH 33301 /* full image size in y */ - /* Tags 33302-33306 are used to identify special image modes and data - * used by Pixar's texture formats. - */ -#define TIFFTAG_PIXAR_TEXTUREFORMAT 33302 /* texture map format */ -#define TIFFTAG_PIXAR_WRAPMODES 33303 /* s & t wrap modes */ -#define TIFFTAG_PIXAR_FOVCOT 33304 /* cotan(fov) for env. maps */ -#define TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN 33305 -#define TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA 33306 -/* tag 33405 is a private tag registered to Eastman Kodak */ -#define TIFFTAG_WRITERSERIALNUMBER 33405 /* device serial number */ -#define TIFFTAG_CFAREPEATPATTERNDIM 33421 /* dimensions of CFA pattern */ -#define TIFFTAG_CFAPATTERN 33422 /* color filter array pattern */ -/* tag 33432 is listed in the 6.0 spec w/ unknown ownership */ -#define TIFFTAG_COPYRIGHT 33432 /* copyright string */ -/* IPTC TAG from RichTIFF specifications */ -#define TIFFTAG_RICHTIFFIPTC 33723 -/* 34016-34029 are reserved for ANSI IT8 TIFF/IT */ -#define TIFFTAG_STONITS 37439 /* Sample value to Nits */ -/* tag 34929 is a private tag registered to FedEx */ -#define TIFFTAG_FEDEX_EDR 34929 /* unknown use */ -#define TIFFTAG_INTEROPERABILITYIFD 40965 /* Pointer to Interoperability private directory */ -/* Adobe Digital Negative (DNG) format tags */ -#define TIFFTAG_DNGVERSION 50706 /* &DNG version number */ -#define TIFFTAG_DNGBACKWARDVERSION 50707 /* &DNG compatibility version */ -#define TIFFTAG_UNIQUECAMERAMODEL 50708 /* &name for the camera model */ -#define TIFFTAG_LOCALIZEDCAMERAMODEL 50709 /* &localized camera model - name */ -#define TIFFTAG_CFAPLANECOLOR 50710 /* &CFAPattern->LinearRaw space - mapping */ -#define TIFFTAG_CFALAYOUT 50711 /* &spatial layout of the CFA */ -#define TIFFTAG_LINEARIZATIONTABLE 50712 /* &lookup table description */ -#define TIFFTAG_BLACKLEVELREPEATDIM 50713 /* &repeat pattern size for - the BlackLevel tag */ -#define TIFFTAG_BLACKLEVEL 50714 /* &zero light encoding level */ -#define TIFFTAG_BLACKLEVELDELTAH 50715 /* &zero light encoding level - differences (columns) */ -#define TIFFTAG_BLACKLEVELDELTAV 50716 /* &zero light encoding level - differences (rows) */ -#define TIFFTAG_WHITELEVEL 50717 /* &fully saturated encoding - level */ -#define TIFFTAG_DEFAULTSCALE 50718 /* &default scale factors */ -#define TIFFTAG_DEFAULTCROPORIGIN 50719 /* &origin of the final image - area */ -#define TIFFTAG_DEFAULTCROPSIZE 50720 /* &size of the final image - area */ -#define TIFFTAG_COLORMATRIX1 50721 /* &XYZ->reference color space - transformation matrix 1 */ -#define TIFFTAG_COLORMATRIX2 50722 /* &XYZ->reference color space - transformation matrix 2 */ -#define TIFFTAG_CAMERACALIBRATION1 50723 /* &calibration matrix 1 */ -#define TIFFTAG_CAMERACALIBRATION2 50724 /* &calibration matrix 2 */ -#define TIFFTAG_REDUCTIONMATRIX1 50725 /* &dimensionality reduction - matrix 1 */ -#define TIFFTAG_REDUCTIONMATRIX2 50726 /* &dimensionality reduction - matrix 2 */ -#define TIFFTAG_ANALOGBALANCE 50727 /* &gain applied the stored raw - values*/ -#define TIFFTAG_ASSHOTNEUTRAL 50728 /* &selected white balance in - linear reference space */ -#define TIFFTAG_ASSHOTWHITEXY 50729 /* &selected white balance in - x-y chromaticity - coordinates */ -#define TIFFTAG_BASELINEEXPOSURE 50730 /* &how much to move the zero - point */ -#define TIFFTAG_BASELINENOISE 50731 /* &relative noise level */ -#define TIFFTAG_BASELINESHARPNESS 50732 /* &relative amount of - sharpening */ -#define TIFFTAG_BAYERGREENSPLIT 50733 /* &how closely the values of - the green pixels in the - blue/green rows track the - values of the green pixels - in the red/green rows */ -#define TIFFTAG_LINEARRESPONSELIMIT 50734 /* &non-linear encoding range */ -#define TIFFTAG_CAMERASERIALNUMBER 50735 /* &camera's serial number */ -#define TIFFTAG_LENSINFO 50736 /* info about the lens */ -#define TIFFTAG_CHROMABLURRADIUS 50737 /* &chroma blur radius */ -#define TIFFTAG_ANTIALIASSTRENGTH 50738 /* &relative strength of the - camera's anti-alias filter */ -#define TIFFTAG_SHADOWSCALE 50739 /* &used by Adobe Camera Raw */ -#define TIFFTAG_DNGPRIVATEDATA 50740 /* &manufacturer's private data */ -#define TIFFTAG_MAKERNOTESAFETY 50741 /* &whether the EXIF MakerNote - tag is safe to preserve - along with the rest of the - EXIF data */ -#define TIFFTAG_CALIBRATIONILLUMINANT1 50778 /* &illuminant 1 */ -#define TIFFTAG_CALIBRATIONILLUMINANT2 50779 /* &illuminant 2 */ -#define TIFFTAG_BESTQUALITYSCALE 50780 /* &best quality multiplier */ -#define TIFFTAG_RAWDATAUNIQUEID 50781 /* &unique identifier for - the raw image data */ -#define TIFFTAG_ORIGINALRAWFILENAME 50827 /* &file name of the original - raw file */ -#define TIFFTAG_ORIGINALRAWFILEDATA 50828 /* &contents of the original - raw file */ -#define TIFFTAG_ACTIVEAREA 50829 /* &active (non-masked) pixels - of the sensor */ -#define TIFFTAG_MASKEDAREAS 50830 /* &list of coordinates - of fully masked pixels */ -#define TIFFTAG_ASSHOTICCPROFILE 50831 /* &these two tags used to */ -#define TIFFTAG_ASSHOTPREPROFILEMATRIX 50832 /* map cameras's color space - into ICC profile space */ -#define TIFFTAG_CURRENTICCPROFILE 50833 /* & */ -#define TIFFTAG_CURRENTPREPROFILEMATRIX 50834 /* & */ -/* tag 65535 is an undefined tag used by Eastman Kodak */ -#define TIFFTAG_DCSHUESHIFTVALUES 65535 /* hue shift correction data */ - -/* - * The following are ``pseudo tags'' that can be used to control - * codec-specific functionality. These tags are not written to file. - * Note that these values start at 0xffff+1 so that they'll never - * collide with Aldus-assigned tags. - * - * If you want your private pseudo tags ``registered'' (i.e. added to - * this file), please post a bug report via the tracking system at - * http://www.remotesensing.org/libtiff/bugs.html with the appropriate - * C definitions to add. - */ -#define TIFFTAG_FAXMODE 65536 /* Group 3/4 format control */ -#define FAXMODE_CLASSIC 0x0000 /* default, include RTC */ -#define FAXMODE_NORTC 0x0001 /* no RTC at end of data */ -#define FAXMODE_NOEOL 0x0002 /* no EOL code at end of row */ -#define FAXMODE_BYTEALIGN 0x0004 /* byte align row */ -#define FAXMODE_WORDALIGN 0x0008 /* word align row */ -#define FAXMODE_CLASSF FAXMODE_NORTC /* TIFF Class F */ -#define TIFFTAG_JPEGQUALITY 65537 /* Compression quality level */ -/* Note: quality level is on the IJG 0-100 scale. Default value is 75 */ -#define TIFFTAG_JPEGCOLORMODE 65538 /* Auto RGB<=>YCbCr convert? */ -#define JPEGCOLORMODE_RAW 0x0000 /* no conversion (default) */ -#define JPEGCOLORMODE_RGB 0x0001 /* do auto conversion */ -#define TIFFTAG_JPEGTABLESMODE 65539 /* What to put in JPEGTables */ -#define JPEGTABLESMODE_QUANT 0x0001 /* include quantization tbls */ -#define JPEGTABLESMODE_HUFF 0x0002 /* include Huffman tbls */ -/* Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF */ -#define TIFFTAG_FAXFILLFUNC 65540 /* G3/G4 fill function */ -#define TIFFTAG_PIXARLOGDATAFMT 65549 /* PixarLogCodec I/O data sz */ -#define PIXARLOGDATAFMT_8BIT 0 /* regular u_char samples */ -#define PIXARLOGDATAFMT_8BITABGR 1 /* ABGR-order u_chars */ -#define PIXARLOGDATAFMT_11BITLOG 2 /* 11-bit log-encoded (raw) */ -#define PIXARLOGDATAFMT_12BITPICIO 3 /* as per PICIO (1.0==2048) */ -#define PIXARLOGDATAFMT_16BIT 4 /* signed short samples */ -#define PIXARLOGDATAFMT_FLOAT 5 /* IEEE float samples */ -/* 65550-65556 are allocated to Oceana Matrix */ -#define TIFFTAG_DCSIMAGERTYPE 65550 /* imager model & filter */ -#define DCSIMAGERMODEL_M3 0 /* M3 chip (1280 x 1024) */ -#define DCSIMAGERMODEL_M5 1 /* M5 chip (1536 x 1024) */ -#define DCSIMAGERMODEL_M6 2 /* M6 chip (3072 x 2048) */ -#define DCSIMAGERFILTER_IR 0 /* infrared filter */ -#define DCSIMAGERFILTER_MONO 1 /* monochrome filter */ -#define DCSIMAGERFILTER_CFA 2 /* color filter array */ -#define DCSIMAGERFILTER_OTHER 3 /* other filter */ -#define TIFFTAG_DCSINTERPMODE 65551 /* interpolation mode */ -#define DCSINTERPMODE_NORMAL 0x0 /* whole image, default */ -#define DCSINTERPMODE_PREVIEW 0x1 /* preview of image (384x256) */ -#define TIFFTAG_DCSBALANCEARRAY 65552 /* color balance values */ -#define TIFFTAG_DCSCORRECTMATRIX 65553 /* color correction values */ -#define TIFFTAG_DCSGAMMA 65554 /* gamma value */ -#define TIFFTAG_DCSTOESHOULDERPTS 65555 /* toe & shoulder points */ -#define TIFFTAG_DCSCALIBRATIONFD 65556 /* calibration file desc */ -/* Note: quality level is on the ZLIB 1-9 scale. Default value is -1 */ -#define TIFFTAG_ZIPQUALITY 65557 /* compression quality level */ -#define TIFFTAG_PIXARLOGQUALITY 65558 /* PixarLog uses same scale */ -/* 65559 is allocated to Oceana Matrix */ -#define TIFFTAG_DCSCLIPRECTANGLE 65559 /* area of image to acquire */ -#define TIFFTAG_SGILOGDATAFMT 65560 /* SGILog user data format */ -#define SGILOGDATAFMT_FLOAT 0 /* IEEE float samples */ -#define SGILOGDATAFMT_16BIT 1 /* 16-bit samples */ -#define SGILOGDATAFMT_RAW 2 /* uninterpreted data */ -#define SGILOGDATAFMT_8BIT 3 /* 8-bit RGB monitor values */ -#define TIFFTAG_SGILOGENCODE 65561 /* SGILog data encoding control*/ -#define SGILOGENCODE_NODITHER 0 /* do not dither encoded values*/ -#define SGILOGENCODE_RANDITHER 1 /* randomly dither encd values */ -#define TIFFTAG_LZMAPRESET 65562 /* LZMA2 preset (compression level) */ -#define TIFFTAG_PERSAMPLE 65563 /* interface for per sample tags */ -#define PERSAMPLE_MERGED 0 /* present as a single value */ -#define PERSAMPLE_MULTI 1 /* present as multiple values */ - -/* - * EXIF tags - */ -#define EXIFTAG_EXPOSURETIME 33434 /* Exposure time */ -#define EXIFTAG_FNUMBER 33437 /* F number */ -#define EXIFTAG_EXPOSUREPROGRAM 34850 /* Exposure program */ -#define EXIFTAG_SPECTRALSENSITIVITY 34852 /* Spectral sensitivity */ -#define EXIFTAG_ISOSPEEDRATINGS 34855 /* ISO speed rating */ -#define EXIFTAG_OECF 34856 /* Optoelectric conversion - factor */ -#define EXIFTAG_EXIFVERSION 36864 /* Exif version */ -#define EXIFTAG_DATETIMEORIGINAL 36867 /* Date and time of original - data generation */ -#define EXIFTAG_DATETIMEDIGITIZED 36868 /* Date and time of digital - data generation */ -#define EXIFTAG_COMPONENTSCONFIGURATION 37121 /* Meaning of each component */ -#define EXIFTAG_COMPRESSEDBITSPERPIXEL 37122 /* Image compression mode */ -#define EXIFTAG_SHUTTERSPEEDVALUE 37377 /* Shutter speed */ -#define EXIFTAG_APERTUREVALUE 37378 /* Aperture */ -#define EXIFTAG_BRIGHTNESSVALUE 37379 /* Brightness */ -#define EXIFTAG_EXPOSUREBIASVALUE 37380 /* Exposure bias */ -#define EXIFTAG_MAXAPERTUREVALUE 37381 /* Maximum lens aperture */ -#define EXIFTAG_SUBJECTDISTANCE 37382 /* Subject distance */ -#define EXIFTAG_METERINGMODE 37383 /* Metering mode */ -#define EXIFTAG_LIGHTSOURCE 37384 /* Light source */ -#define EXIFTAG_FLASH 37385 /* Flash */ -#define EXIFTAG_FOCALLENGTH 37386 /* Lens focal length */ -#define EXIFTAG_SUBJECTAREA 37396 /* Subject area */ -#define EXIFTAG_MAKERNOTE 37500 /* Manufacturer notes */ -#define EXIFTAG_USERCOMMENT 37510 /* User comments */ -#define EXIFTAG_SUBSECTIME 37520 /* DateTime subseconds */ -#define EXIFTAG_SUBSECTIMEORIGINAL 37521 /* DateTimeOriginal subseconds */ -#define EXIFTAG_SUBSECTIMEDIGITIZED 37522 /* DateTimeDigitized subseconds */ -#define EXIFTAG_FLASHPIXVERSION 40960 /* Supported Flashpix version */ -#define EXIFTAG_COLORSPACE 40961 /* Color space information */ -#define EXIFTAG_PIXELXDIMENSION 40962 /* Valid image width */ -#define EXIFTAG_PIXELYDIMENSION 40963 /* Valid image height */ -#define EXIFTAG_RELATEDSOUNDFILE 40964 /* Related audio file */ -#define EXIFTAG_FLASHENERGY 41483 /* Flash energy */ -#define EXIFTAG_SPATIALFREQUENCYRESPONSE 41484 /* Spatial frequency response */ -#define EXIFTAG_FOCALPLANEXRESOLUTION 41486 /* Focal plane X resolution */ -#define EXIFTAG_FOCALPLANEYRESOLUTION 41487 /* Focal plane Y resolution */ -#define EXIFTAG_FOCALPLANERESOLUTIONUNIT 41488 /* Focal plane resolution unit */ -#define EXIFTAG_SUBJECTLOCATION 41492 /* Subject location */ -#define EXIFTAG_EXPOSUREINDEX 41493 /* Exposure index */ -#define EXIFTAG_SENSINGMETHOD 41495 /* Sensing method */ -#define EXIFTAG_FILESOURCE 41728 /* File source */ -#define EXIFTAG_SCENETYPE 41729 /* Scene type */ -#define EXIFTAG_CFAPATTERN 41730 /* CFA pattern */ -#define EXIFTAG_CUSTOMRENDERED 41985 /* Custom image processing */ -#define EXIFTAG_EXPOSUREMODE 41986 /* Exposure mode */ -#define EXIFTAG_WHITEBALANCE 41987 /* White balance */ -#define EXIFTAG_DIGITALZOOMRATIO 41988 /* Digital zoom ratio */ -#define EXIFTAG_FOCALLENGTHIN35MMFILM 41989 /* Focal length in 35 mm film */ -#define EXIFTAG_SCENECAPTURETYPE 41990 /* Scene capture type */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_CONTRAST 41992 /* Contrast */ -#define EXIFTAG_SATURATION 41993 /* Saturation */ -#define EXIFTAG_SHARPNESS 41994 /* Sharpness */ -#define EXIFTAG_DEVICESETTINGDESCRIPTION 41995 /* Device settings description */ -#define EXIFTAG_SUBJECTDISTANCERANGE 41996 /* Subject distance range */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_IMAGEUNIQUEID 42016 /* Unique image ID */ - -#endif /* _TIFF_ */ - -/* vim: set ts=8 sts=8 sw=8 noet: */ -/* - * Local Variables: - * mode: c - * c-basic-offset: 8 - * fill-column: 78 - * End: - */ diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/tiffconf.h b/extension/SDL2_image-2.0.3/VisualC/external/include/tiffconf.h deleted file mode 100755 index 9bf7589..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/tiffconf.h +++ /dev/null @@ -1,128 +0,0 @@ -/* libtiff/tiffconf.h. Generated from tiffconf.h.in by configure. */ -/* - Configuration defines for installed libtiff. - This file maintained for backward compatibility. Do not use definitions - from this file in your programs. -*/ - -#ifndef _TIFFCONF_ -#define _TIFFCONF_ - -/* Signed 16-bit type */ -#define TIFF_INT16_T signed short - -/* Signed 32-bit type */ -#define TIFF_INT32_T signed int - -/* Signed 64-bit type */ -#define TIFF_INT64_T signed long long - -/* Signed 8-bit type */ -#define TIFF_INT8_T signed char - -/* Unsigned 16-bit type */ -#define TIFF_UINT16_T unsigned short - -/* Unsigned 32-bit type */ -#define TIFF_UINT32_T unsigned int - -/* Unsigned 64-bit type */ -#define TIFF_UINT64_T unsigned long long - -/* Unsigned 8-bit type */ -#define TIFF_UINT8_T unsigned char - -/* Signed size type */ -#define TIFF_SSIZE_T signed int - -/* Pointer difference type */ -#define TIFF_PTRDIFF_T ptrdiff_t - -/* Define to 1 if the system has the type `int16'. */ -/* #undef HAVE_INT16 */ - -/* Define to 1 if the system has the type `int32'. */ -/* #undef HAVE_INT32 */ - -/* Define to 1 if the system has the type `int8'. */ -/* #undef HAVE_INT8 */ - -/* Compatibility stuff. */ - -/* Define as 0 or 1 according to the floating point format suported by the - machine */ -#define HAVE_IEEEFP 1 - -/* Set the native cpu bit order (FILLORDER_LSB2MSB or FILLORDER_MSB2LSB) */ -#define HOST_FILLORDER FILLORDER_LSB2MSB - -/* Native cpu byte order: 1 if big-endian (Motorola) or 0 if little-endian - (Intel) */ -#define HOST_BIGENDIAN 0 - -/* Support CCITT Group 3 & 4 algorithms */ -#define CCITT_SUPPORT 1 - -/* Support JPEG compression (requires IJG JPEG library) */ -#define JPEG_SUPPORT 1 - -/* Support JBIG compression (requires JBIG-KIT library) */ -/* #undef JBIG_SUPPORT */ - -/* Support LogLuv high dynamic range encoding */ -#define LOGLUV_SUPPORT 1 - -/* Support LZW algorithm */ -#define LZW_SUPPORT 1 - -/* Support NeXT 2-bit RLE algorithm */ -#define NEXT_SUPPORT 1 - -/* Support Old JPEG compresson (read contrib/ojpeg/README first! Compilation - fails with unpatched IJG JPEG library) */ -#define OJPEG_SUPPORT 1 - -/* Support Macintosh PackBits algorithm */ -#define PACKBITS_SUPPORT 1 - -/* Support Pixar log-format algorithm (requires Zlib) */ -#define PIXARLOG_SUPPORT 1 - -/* Support ThunderScan 4-bit RLE algorithm */ -#define THUNDER_SUPPORT 1 - -/* Support Deflate compression */ -#define ZIP_SUPPORT 1 - -/* Support strip chopping (whether or not to convert single-strip uncompressed - images to mutiple strips of ~8Kb to reduce memory usage) */ -#define STRIPCHOP_DEFAULT TIFF_STRIPCHOP - -/* Enable SubIFD tag (330) support */ -#define SUBIFD_SUPPORT 1 - -/* Treat extra sample as alpha (default enabled). The RGBA interface will - treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA. Many - packages produce RGBA files but don't mark the alpha properly. */ -#define DEFAULT_EXTRASAMPLE_AS_ALPHA 1 - -/* Pick up YCbCr subsampling info from the JPEG data stream to support files - lacking the tag (default enabled). */ -#define CHECK_JPEG_YCBCR_SUBSAMPLING 1 - -/* Support MS MDI magic number files as TIFF */ -#define MDI_SUPPORT 1 - -/* - * Feature support definitions. - * XXX: These macros are obsoleted. Don't use them in your apps! - * Macros stays here for backward compatibility and should be always defined. - */ -#define COLORIMETRY_SUPPORT -#define YCBCR_SUPPORT -#define CMYK_SUPPORT -#define ICC_SUPPORT -#define PHOTOSHOP_SUPPORT -#define IPTC_SUPPORT - -#endif /* _TIFFCONF_ */ diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/tiffio.h b/extension/SDL2_image-2.0.3/VisualC/external/include/tiffio.h deleted file mode 100755 index ef61b5c..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/tiffio.h +++ /dev/null @@ -1,560 +0,0 @@ -/* $Id: tiffio.h,v 1.94 2017-01-11 19:02:49 erouault Exp $ */ - -/* - * Copyright (c) 1988-1997 Sam Leffler - * Copyright (c) 1991-1997 Silicon Graphics, Inc. - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation for any purpose is hereby granted without fee, provided - * that (i) the above copyright notices and this permission notice appear in - * all copies of the software and related documentation, and (ii) the names of - * Sam Leffler and Silicon Graphics may not be used in any advertising or - * publicity relating to the software without the specific, prior written - * permission of Sam Leffler and Silicon Graphics. - * - * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * - * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR - * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, - * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, - * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF - * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THIS SOFTWARE. - */ - -#ifndef _TIFFIO_ -#define _TIFFIO_ - -/* - * TIFF I/O Library Definitions. - */ -#include "tiff.h" -#include "tiffvers.h" - -/* - * TIFF is defined as an incomplete type to hide the - * library's internal data structures from clients. - */ -typedef struct tiff TIFF; - -/* - * The following typedefs define the intrinsic size of - * data types used in the *exported* interfaces. These - * definitions depend on the proper definition of types - * in tiff.h. Note also that the varargs interface used - * to pass tag types and values uses the types defined in - * tiff.h directly. - * - * NB: ttag_t is unsigned int and not unsigned short because - * ANSI C requires that the type before the ellipsis be a - * promoted type (i.e. one of int, unsigned int, pointer, - * or double) and because we defined pseudo-tags that are - * outside the range of legal Aldus-assigned tags. - * NB: tsize_t is int32 and not uint32 because some functions - * return -1. - * NB: toff_t is not off_t for many reasons; TIFFs max out at - * 32-bit file offsets, and BigTIFF maxes out at 64-bit - * offsets being the most important, and to ensure use of - * a consistently unsigned type across architectures. - * Prior to libtiff 4.0, this was an unsigned 32 bit type. - */ -/* - * this is the machine addressing size type, only it's signed, so make it - * int32 on 32bit machines, int64 on 64bit machines - */ -typedef TIFF_SSIZE_T tmsize_t; -typedef uint64 toff_t; /* file offset */ -/* the following are deprecated and should be replaced by their defining - counterparts */ -typedef uint32 ttag_t; /* directory tag */ -typedef uint16 tdir_t; /* directory index */ -typedef uint16 tsample_t; /* sample number */ -typedef uint32 tstrile_t; /* strip or tile number */ -typedef tstrile_t tstrip_t; /* strip number */ -typedef tstrile_t ttile_t; /* tile number */ -typedef tmsize_t tsize_t; /* i/o size in bytes */ -typedef void* tdata_t; /* image data ref */ - -#if !defined(__WIN32__) && (defined(_WIN32) || defined(WIN32)) -#define __WIN32__ -#endif - -/* - * On windows you should define USE_WIN32_FILEIO if you are using tif_win32.c - * or AVOID_WIN32_FILEIO if you are using something else (like tif_unix.c). - * - * By default tif_unix.c is assumed. - */ - -#if defined(_WINDOWS) || defined(__WIN32__) || defined(_Windows) -# if !defined(__CYGWIN) && !defined(AVOID_WIN32_FILEIO) && !defined(USE_WIN32_FILEIO) -# define AVOID_WIN32_FILEIO -# endif -#endif - -#if defined(USE_WIN32_FILEIO) -# define VC_EXTRALEAN -# include -# ifdef __WIN32__ -DECLARE_HANDLE(thandle_t); /* Win32 file handle */ -# else -typedef HFILE thandle_t; /* client data handle */ -# endif /* __WIN32__ */ -#else -typedef void* thandle_t; /* client data handle */ -#endif /* USE_WIN32_FILEIO */ - -/* - * Flags to pass to TIFFPrintDirectory to control - * printing of data structures that are potentially - * very large. Bit-or these flags to enable printing - * multiple items. - */ -#define TIFFPRINT_NONE 0x0 /* no extra info */ -#define TIFFPRINT_STRIPS 0x1 /* strips/tiles info */ -#define TIFFPRINT_CURVES 0x2 /* color/gray response curves */ -#define TIFFPRINT_COLORMAP 0x4 /* colormap */ -#define TIFFPRINT_JPEGQTABLES 0x100 /* JPEG Q matrices */ -#define TIFFPRINT_JPEGACTABLES 0x200 /* JPEG AC tables */ -#define TIFFPRINT_JPEGDCTABLES 0x200 /* JPEG DC tables */ - -/* - * Colour conversion stuff - */ - -/* reference white */ -#define D65_X0 (95.0470F) -#define D65_Y0 (100.0F) -#define D65_Z0 (108.8827F) - -#define D50_X0 (96.4250F) -#define D50_Y0 (100.0F) -#define D50_Z0 (82.4680F) - -/* Structure for holding information about a display device. */ - -typedef unsigned char TIFFRGBValue; /* 8-bit samples */ - -typedef struct { - float d_mat[3][3]; /* XYZ -> luminance matrix */ - float d_YCR; /* Light o/p for reference white */ - float d_YCG; - float d_YCB; - uint32 d_Vrwr; /* Pixel values for ref. white */ - uint32 d_Vrwg; - uint32 d_Vrwb; - float d_Y0R; /* Residual light for black pixel */ - float d_Y0G; - float d_Y0B; - float d_gammaR; /* Gamma values for the three guns */ - float d_gammaG; - float d_gammaB; -} TIFFDisplay; - -typedef struct { /* YCbCr->RGB support */ - TIFFRGBValue* clamptab; /* range clamping table */ - int* Cr_r_tab; - int* Cb_b_tab; - int32* Cr_g_tab; - int32* Cb_g_tab; - int32* Y_tab; -} TIFFYCbCrToRGB; - -typedef struct { /* CIE Lab 1976->RGB support */ - int range; /* Size of conversion table */ -#define CIELABTORGB_TABLE_RANGE 1500 - float rstep, gstep, bstep; - float X0, Y0, Z0; /* Reference white point */ - TIFFDisplay display; - float Yr2r[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yr to r */ - float Yg2g[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yg to g */ - float Yb2b[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yb to b */ -} TIFFCIELabToRGB; - -/* - * RGBA-style image support. - */ -typedef struct _TIFFRGBAImage TIFFRGBAImage; -/* - * The image reading and conversion routines invoke - * ``put routines'' to copy/image/whatever tiles of - * raw image data. A default set of routines are - * provided to convert/copy raw image data to 8-bit - * packed ABGR format rasters. Applications can supply - * alternate routines that unpack the data into a - * different format or, for example, unpack the data - * and draw the unpacked raster on the display. - */ -typedef void (*tileContigRoutine) - (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, - unsigned char*); -typedef void (*tileSeparateRoutine) - (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, - unsigned char*, unsigned char*, unsigned char*, unsigned char*); -/* - * RGBA-reader state. - */ -struct _TIFFRGBAImage { - TIFF* tif; /* image handle */ - int stoponerr; /* stop on read error */ - int isContig; /* data is packed/separate */ - int alpha; /* type of alpha data present */ - uint32 width; /* image width */ - uint32 height; /* image height */ - uint16 bitspersample; /* image bits/sample */ - uint16 samplesperpixel; /* image samples/pixel */ - uint16 orientation; /* image orientation */ - uint16 req_orientation; /* requested orientation */ - uint16 photometric; /* image photometric interp */ - uint16* redcmap; /* colormap palette */ - uint16* greencmap; - uint16* bluecmap; - /* get image data routine */ - int (*get)(TIFFRGBAImage*, uint32*, uint32, uint32); - /* put decoded strip/tile */ - union { - void (*any)(TIFFRGBAImage*); - tileContigRoutine contig; - tileSeparateRoutine separate; - } put; - TIFFRGBValue* Map; /* sample mapping array */ - uint32** BWmap; /* black&white map */ - uint32** PALmap; /* palette image map */ - TIFFYCbCrToRGB* ycbcr; /* YCbCr conversion state */ - TIFFCIELabToRGB* cielab; /* CIE L*a*b conversion state */ - - uint8* UaToAa; /* Unassociated alpha to associated alpha conversion LUT */ - uint8* Bitdepth16To8; /* LUT for conversion from 16bit to 8bit values */ - - int row_offset; - int col_offset; -}; - -/* - * Macros for extracting components from the - * packed ABGR form returned by TIFFReadRGBAImage. - */ -#define TIFFGetR(abgr) ((abgr) & 0xff) -#define TIFFGetG(abgr) (((abgr) >> 8) & 0xff) -#define TIFFGetB(abgr) (((abgr) >> 16) & 0xff) -#define TIFFGetA(abgr) (((abgr) >> 24) & 0xff) - -/* - * A CODEC is a software package that implements decoding, - * encoding, or decoding+encoding of a compression algorithm. - * The library provides a collection of builtin codecs. - * More codecs may be registered through calls to the library - * and/or the builtin implementations may be overridden. - */ -typedef int (*TIFFInitMethod)(TIFF*, int); -typedef struct { - char* name; - uint16 scheme; - TIFFInitMethod init; -} TIFFCodec; - -#include -#include - -/* share internal LogLuv conversion routines? */ -#ifndef LOGLUV_PUBLIC -#define LOGLUV_PUBLIC 1 -#endif - -#if !defined(__GNUC__) && !defined(__attribute__) -# define __attribute__(x) /*nothing*/ -#endif - -#if defined(c_plusplus) || defined(__cplusplus) -extern "C" { -#endif -typedef void (*TIFFErrorHandler)(const char*, const char*, va_list); -typedef void (*TIFFErrorHandlerExt)(thandle_t, const char*, const char*, va_list); -typedef tmsize_t (*TIFFReadWriteProc)(thandle_t, void*, tmsize_t); -typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int); -typedef int (*TIFFCloseProc)(thandle_t); -typedef toff_t (*TIFFSizeProc)(thandle_t); -typedef int (*TIFFMapFileProc)(thandle_t, void** base, toff_t* size); -typedef void (*TIFFUnmapFileProc)(thandle_t, void* base, toff_t size); -typedef void (*TIFFExtendProc)(TIFF*); - -extern const char* TIFFGetVersion(void); - -extern const TIFFCodec* TIFFFindCODEC(uint16); -extern TIFFCodec* TIFFRegisterCODEC(uint16, const char*, TIFFInitMethod); -extern void TIFFUnRegisterCODEC(TIFFCodec*); -extern int TIFFIsCODECConfigured(uint16); -extern TIFFCodec* TIFFGetConfiguredCODECs(void); - -/* - * Auxiliary functions. - */ - -extern void* _TIFFmalloc(tmsize_t s); -extern void* _TIFFcalloc(tmsize_t nmemb, tmsize_t siz); -extern void* _TIFFrealloc(void* p, tmsize_t s); -extern void _TIFFmemset(void* p, int v, tmsize_t c); -extern void _TIFFmemcpy(void* d, const void* s, tmsize_t c); -extern int _TIFFmemcmp(const void* p1, const void* p2, tmsize_t c); -extern void _TIFFfree(void* p); - -/* -** Stuff, related to tag handling and creating custom tags. -*/ -extern int TIFFGetTagListCount( TIFF * ); -extern uint32 TIFFGetTagListEntry( TIFF *, int tag_index ); - -#define TIFF_ANY TIFF_NOTYPE /* for field descriptor searching */ -#define TIFF_VARIABLE -1 /* marker for variable length tags */ -#define TIFF_SPP -2 /* marker for SamplesPerPixel tags */ -#define TIFF_VARIABLE2 -3 /* marker for uint32 var-length tags */ - -#define FIELD_CUSTOM 65 - -typedef struct _TIFFField TIFFField; -typedef struct _TIFFFieldArray TIFFFieldArray; - -extern const TIFFField* TIFFFindField(TIFF *, uint32, TIFFDataType); -extern const TIFFField* TIFFFieldWithTag(TIFF*, uint32); -extern const TIFFField* TIFFFieldWithName(TIFF*, const char *); - -extern uint32 TIFFFieldTag(const TIFFField*); -extern const char* TIFFFieldName(const TIFFField*); -extern TIFFDataType TIFFFieldDataType(const TIFFField*); -extern int TIFFFieldPassCount(const TIFFField*); -extern int TIFFFieldReadCount(const TIFFField*); -extern int TIFFFieldWriteCount(const TIFFField*); - -typedef int (*TIFFVSetMethod)(TIFF*, uint32, va_list); -typedef int (*TIFFVGetMethod)(TIFF*, uint32, va_list); -typedef void (*TIFFPrintMethod)(TIFF*, FILE*, long); - -typedef struct { - TIFFVSetMethod vsetfield; /* tag set routine */ - TIFFVGetMethod vgetfield; /* tag get routine */ - TIFFPrintMethod printdir; /* directory print routine */ -} TIFFTagMethods; - -extern TIFFTagMethods *TIFFAccessTagMethods(TIFF *); -extern void *TIFFGetClientInfo(TIFF *, const char *); -extern void TIFFSetClientInfo(TIFF *, void *, const char *); - -extern void TIFFCleanup(TIFF* tif); -extern void TIFFClose(TIFF* tif); -extern int TIFFFlush(TIFF* tif); -extern int TIFFFlushData(TIFF* tif); -extern int TIFFGetField(TIFF* tif, uint32 tag, ...); -extern int TIFFVGetField(TIFF* tif, uint32 tag, va_list ap); -extern int TIFFGetFieldDefaulted(TIFF* tif, uint32 tag, ...); -extern int TIFFVGetFieldDefaulted(TIFF* tif, uint32 tag, va_list ap); -extern int TIFFReadDirectory(TIFF* tif); -extern int TIFFReadCustomDirectory(TIFF* tif, toff_t diroff, const TIFFFieldArray* infoarray); -extern int TIFFReadEXIFDirectory(TIFF* tif, toff_t diroff); -extern uint64 TIFFScanlineSize64(TIFF* tif); -extern tmsize_t TIFFScanlineSize(TIFF* tif); -extern uint64 TIFFRasterScanlineSize64(TIFF* tif); -extern tmsize_t TIFFRasterScanlineSize(TIFF* tif); -extern uint64 TIFFStripSize64(TIFF* tif); -extern tmsize_t TIFFStripSize(TIFF* tif); -extern uint64 TIFFRawStripSize64(TIFF* tif, uint32 strip); -extern tmsize_t TIFFRawStripSize(TIFF* tif, uint32 strip); -extern uint64 TIFFVStripSize64(TIFF* tif, uint32 nrows); -extern tmsize_t TIFFVStripSize(TIFF* tif, uint32 nrows); -extern uint64 TIFFTileRowSize64(TIFF* tif); -extern tmsize_t TIFFTileRowSize(TIFF* tif); -extern uint64 TIFFTileSize64(TIFF* tif); -extern tmsize_t TIFFTileSize(TIFF* tif); -extern uint64 TIFFVTileSize64(TIFF* tif, uint32 nrows); -extern tmsize_t TIFFVTileSize(TIFF* tif, uint32 nrows); -extern uint32 TIFFDefaultStripSize(TIFF* tif, uint32 request); -extern void TIFFDefaultTileSize(TIFF*, uint32*, uint32*); -extern int TIFFFileno(TIFF*); -extern int TIFFSetFileno(TIFF*, int); -extern thandle_t TIFFClientdata(TIFF*); -extern thandle_t TIFFSetClientdata(TIFF*, thandle_t); -extern int TIFFGetMode(TIFF*); -extern int TIFFSetMode(TIFF*, int); -extern int TIFFIsTiled(TIFF*); -extern int TIFFIsByteSwapped(TIFF*); -extern int TIFFIsUpSampled(TIFF*); -extern int TIFFIsMSB2LSB(TIFF*); -extern int TIFFIsBigEndian(TIFF*); -extern TIFFReadWriteProc TIFFGetReadProc(TIFF*); -extern TIFFReadWriteProc TIFFGetWriteProc(TIFF*); -extern TIFFSeekProc TIFFGetSeekProc(TIFF*); -extern TIFFCloseProc TIFFGetCloseProc(TIFF*); -extern TIFFSizeProc TIFFGetSizeProc(TIFF*); -extern TIFFMapFileProc TIFFGetMapFileProc(TIFF*); -extern TIFFUnmapFileProc TIFFGetUnmapFileProc(TIFF*); -extern uint32 TIFFCurrentRow(TIFF*); -extern uint16 TIFFCurrentDirectory(TIFF*); -extern uint16 TIFFNumberOfDirectories(TIFF*); -extern uint64 TIFFCurrentDirOffset(TIFF*); -extern uint32 TIFFCurrentStrip(TIFF*); -extern uint32 TIFFCurrentTile(TIFF* tif); -extern int TIFFReadBufferSetup(TIFF* tif, void* bp, tmsize_t size); -extern int TIFFWriteBufferSetup(TIFF* tif, void* bp, tmsize_t size); -extern int TIFFSetupStrips(TIFF *); -extern int TIFFWriteCheck(TIFF*, int, const char *); -extern void TIFFFreeDirectory(TIFF*); -extern int TIFFCreateDirectory(TIFF*); -extern int TIFFCreateCustomDirectory(TIFF*,const TIFFFieldArray*); -extern int TIFFCreateEXIFDirectory(TIFF*); -extern int TIFFLastDirectory(TIFF*); -extern int TIFFSetDirectory(TIFF*, uint16); -extern int TIFFSetSubDirectory(TIFF*, uint64); -extern int TIFFUnlinkDirectory(TIFF*, uint16); -extern int TIFFSetField(TIFF*, uint32, ...); -extern int TIFFVSetField(TIFF*, uint32, va_list); -extern int TIFFUnsetField(TIFF*, uint32); -extern int TIFFWriteDirectory(TIFF *); -extern int TIFFWriteCustomDirectory(TIFF *, uint64 *); -extern int TIFFCheckpointDirectory(TIFF *); -extern int TIFFRewriteDirectory(TIFF *); - -#if defined(c_plusplus) || defined(__cplusplus) -extern void TIFFPrintDirectory(TIFF*, FILE*, long = 0); -extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); -extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); -extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int = 0); -extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, - int = ORIENTATION_BOTLEFT, int = 0); -#else -extern void TIFFPrintDirectory(TIFF*, FILE*, long); -extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); -extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); -extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int); -extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, int, int); -#endif - -extern int TIFFReadRGBAStrip(TIFF*, uint32, uint32 * ); -extern int TIFFReadRGBATile(TIFF*, uint32, uint32, uint32 * ); -extern int TIFFReadRGBAStripExt(TIFF*, uint32, uint32 *, int stop_on_error ); -extern int TIFFReadRGBATileExt(TIFF*, uint32, uint32, uint32 *, int stop_on_error ); -extern int TIFFRGBAImageOK(TIFF*, char [1024]); -extern int TIFFRGBAImageBegin(TIFFRGBAImage*, TIFF*, int, char [1024]); -extern int TIFFRGBAImageGet(TIFFRGBAImage*, uint32*, uint32, uint32); -extern void TIFFRGBAImageEnd(TIFFRGBAImage*); -extern TIFF* TIFFOpen(const char*, const char*); -# ifdef __WIN32__ -extern TIFF* TIFFOpenW(const wchar_t*, const char*); -# endif /* __WIN32__ */ -extern TIFF* TIFFFdOpen(int, const char*, const char*); -extern TIFF* TIFFClientOpen(const char*, const char*, - thandle_t, - TIFFReadWriteProc, TIFFReadWriteProc, - TIFFSeekProc, TIFFCloseProc, - TIFFSizeProc, - TIFFMapFileProc, TIFFUnmapFileProc); -extern const char* TIFFFileName(TIFF*); -extern const char* TIFFSetFileName(TIFF*, const char *); -extern void TIFFError(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); -extern void TIFFErrorExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); -extern void TIFFWarning(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); -extern void TIFFWarningExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); -extern TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler); -extern TIFFErrorHandlerExt TIFFSetErrorHandlerExt(TIFFErrorHandlerExt); -extern TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler); -extern TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt); -extern TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc); -extern uint32 TIFFComputeTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); -extern int TIFFCheckTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); -extern uint32 TIFFNumberOfTiles(TIFF*); -extern tmsize_t TIFFReadTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); -extern tmsize_t TIFFWriteTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); -extern uint32 TIFFComputeStrip(TIFF*, uint32, uint16); -extern uint32 TIFFNumberOfStrips(TIFF*); -extern tmsize_t TIFFReadEncodedStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); -extern tmsize_t TIFFReadRawStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); -extern tmsize_t TIFFReadEncodedTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); -extern tmsize_t TIFFReadRawTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); -extern tmsize_t TIFFWriteEncodedStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteRawStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteEncodedTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteRawTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); -extern int TIFFDataWidth(TIFFDataType); /* table of tag datatype widths */ -extern void TIFFSetWriteOffset(TIFF* tif, toff_t off); -extern void TIFFSwabShort(uint16*); -extern void TIFFSwabLong(uint32*); -extern void TIFFSwabLong8(uint64*); -extern void TIFFSwabFloat(float*); -extern void TIFFSwabDouble(double*); -extern void TIFFSwabArrayOfShort(uint16* wp, tmsize_t n); -extern void TIFFSwabArrayOfTriples(uint8* tp, tmsize_t n); -extern void TIFFSwabArrayOfLong(uint32* lp, tmsize_t n); -extern void TIFFSwabArrayOfLong8(uint64* lp, tmsize_t n); -extern void TIFFSwabArrayOfFloat(float* fp, tmsize_t n); -extern void TIFFSwabArrayOfDouble(double* dp, tmsize_t n); -extern void TIFFReverseBits(uint8* cp, tmsize_t n); -extern const unsigned char* TIFFGetBitRevTable(int); - -#ifdef LOGLUV_PUBLIC -#define U_NEU 0.210526316 -#define V_NEU 0.473684211 -#define UVSCALE 410. -extern double LogL16toY(int); -extern double LogL10toY(int); -extern void XYZtoRGB24(float*, uint8*); -extern int uv_decode(double*, double*, int); -extern void LogLuv24toXYZ(uint32, float*); -extern void LogLuv32toXYZ(uint32, float*); -#if defined(c_plusplus) || defined(__cplusplus) -extern int LogL16fromY(double, int = SGILOGENCODE_NODITHER); -extern int LogL10fromY(double, int = SGILOGENCODE_NODITHER); -extern int uv_encode(double, double, int = SGILOGENCODE_NODITHER); -extern uint32 LogLuv24fromXYZ(float*, int = SGILOGENCODE_NODITHER); -extern uint32 LogLuv32fromXYZ(float*, int = SGILOGENCODE_NODITHER); -#else -extern int LogL16fromY(double, int); -extern int LogL10fromY(double, int); -extern int uv_encode(double, double, int); -extern uint32 LogLuv24fromXYZ(float*, int); -extern uint32 LogLuv32fromXYZ(float*, int); -#endif -#endif /* LOGLUV_PUBLIC */ - -extern int TIFFCIELabToRGBInit(TIFFCIELabToRGB*, const TIFFDisplay *, float*); -extern void TIFFCIELabToXYZ(TIFFCIELabToRGB *, uint32, int32, int32, - float *, float *, float *); -extern void TIFFXYZToRGB(TIFFCIELabToRGB *, float, float, float, - uint32 *, uint32 *, uint32 *); - -extern int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB*, float*, float*); -extern void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *, uint32, int32, int32, - uint32 *, uint32 *, uint32 *); - -/**************************************************************************** - * O B S O L E T E D I N T E R F A C E S - * - * Don't use this stuff in your applications, it may be removed in the future - * libtiff versions. - ****************************************************************************/ -typedef struct { - ttag_t field_tag; /* field's tag */ - short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */ - short field_writecount; /* write count/TIFF_VARIABLE */ - TIFFDataType field_type; /* type of associated data */ - unsigned short field_bit; /* bit in fieldsset bit vector */ - unsigned char field_oktochange; /* if true, can change while writing */ - unsigned char field_passcount; /* if true, pass dir count on set */ - char *field_name; /* ASCII name */ -} TIFFFieldInfo; - -extern int TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], uint32); - -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif - -#endif /* _TIFFIO_ */ - -/* vim: set ts=8 sts=8 sw=8 noet: */ -/* - * Local Variables: - * mode: c - * c-basic-offset: 8 - * fill-column: 78 - * End: - */ diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/tiffvers.h b/extension/SDL2_image-2.0.3/VisualC/external/include/tiffvers.h deleted file mode 100755 index 890e433..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/tiffvers.h +++ /dev/null @@ -1,9 +0,0 @@ -#define TIFFLIB_VERSION_STR "LIBTIFF, Version 4.0.8\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc." -/* - * This define can be used in code that requires - * compilation-related definitions specific to a - * version or versions of the library. Runtime - * version checking should be done based on the - * string returned by TIFFGetVersion. - */ -#define TIFFLIB_VERSION 20170521 diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/webp/decode.h b/extension/SDL2_image-2.0.3/VisualC/external/include/webp/decode.h deleted file mode 100755 index 4c5e74a..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/webp/decode.h +++ /dev/null @@ -1,493 +0,0 @@ -// Copyright 2010 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. -// ----------------------------------------------------------------------------- -// -// Main decoding functions for WebP images. -// -// Author: Skal (pascal.massimino@gmail.com) - -#ifndef WEBP_WEBP_DECODE_H_ -#define WEBP_WEBP_DECODE_H_ - -#include "./types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define WEBP_DECODER_ABI_VERSION 0x0208 // 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 VP8StatusCode VP8StatusCode; -// typedef enum WEBP_CSP_MODE WEBP_CSP_MODE; -typedef struct WebPRGBABuffer WebPRGBABuffer; -typedef struct WebPYUVABuffer WebPYUVABuffer; -typedef struct WebPDecBuffer WebPDecBuffer; -typedef struct WebPIDecoder WebPIDecoder; -typedef struct WebPBitstreamFeatures WebPBitstreamFeatures; -typedef struct WebPDecoderOptions WebPDecoderOptions; -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); - -// 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); - -// 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); - -// 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); - -// 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); - -// 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); - -// 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); - - -// Decode WebP images pointed to by 'data' to Y'UV format(*). The pointer -// returned is the Y samples buffer. Upon return, *u and *v will point to -// the U and V chroma data. These U and V buffers need NOT be passed to -// WebPFree(), unlike the returned Y luma one. The dimension of the U and V -// planes are both (*width + 1) / 2 and (*height + 1)/ 2. -// Upon return, the Y buffer has a stride returned as '*stride', while U and V -// 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); - -// Releases memory returned by the WebPDecode*() functions above. -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 -// available in this buffer is indicated by 'output_buffer_size'. If this -// storage is not sufficient (or an error occurred), NULL is returned. -// Otherwise, output_buffer is returned, for convenience. -// 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( - 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( - 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( - 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( - 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( - const uint8_t* data, size_t data_size, - uint8_t* output_buffer, size_t output_buffer_size, int output_stride); - -// WebPDecodeYUVInto() is a variant of WebPDecodeYUV() that operates directly -// into pre-allocated luma/chroma plane buffers. This function requires the -// strides to be passed: one for the luma plane and one for each of the -// chroma ones. The size of each plane buffer is passed as 'luma_size', -// '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( - 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, - uint8_t* v, size_t v_size, int v_stride); - -//------------------------------------------------------------------------------ -// Output colorspaces and buffer - -// Colorspaces -// Note: the naming describes the byte-ordering of packed samples in memory. -// For instance, MODE_BGRA relates to samples ordered as B,G,R,A,B,G,R,A,... -// Non-capital names (e.g.:MODE_Argb) relates to pre-multiplied RGB channels. -// RGBA-4444 and RGB-565 colorspaces are represented by following byte-order: -// RGBA-4444: [r3 r2 r1 r0 g3 g2 g1 g0], [b3 b2 b1 b0 a3 a2 a1 a0], ... -// RGB-565: [r4 r3 r2 r1 r0 g5 g4 g3], [g2 g1 g0 b4 b3 b2 b1 b0], ... -// In the case WEBP_SWAP_16BITS_CSP is defined, the bytes are swapped for -// these two modes: -// RGBA-4444: [b3 b2 b1 b0 a3 a2 a1 a0], [r3 r2 r1 r0 g3 g2 g1 g0], ... -// RGB-565: [g2 g1 g0 b4 b3 b2 b1 b0], [r4 r3 r2 r1 r0 g5 g4 g3], ... - -typedef enum WEBP_CSP_MODE { - MODE_RGB = 0, MODE_RGBA = 1, - MODE_BGR = 2, MODE_BGRA = 3, - MODE_ARGB = 4, MODE_RGBA_4444 = 5, - MODE_RGB_565 = 6, - // RGB-premultiplied transparent modes (alpha value is preserved) - MODE_rgbA = 7, - MODE_bgrA = 8, - MODE_Argb = 9, - MODE_rgbA_4444 = 10, - // YUV modes must come after RGB ones. - MODE_YUV = 11, MODE_YUVA = 12, // yuv 4:2:0 - MODE_LAST = 13 -} WEBP_CSP_MODE; - -// Some useful macros: -static WEBP_INLINE int WebPIsPremultipliedMode(WEBP_CSP_MODE mode) { - return (mode == MODE_rgbA || mode == MODE_bgrA || mode == MODE_Argb || - mode == MODE_rgbA_4444); -} - -static WEBP_INLINE int WebPIsAlphaMode(WEBP_CSP_MODE mode) { - return (mode == MODE_RGBA || mode == MODE_BGRA || mode == MODE_ARGB || - mode == MODE_RGBA_4444 || mode == MODE_YUVA || - WebPIsPremultipliedMode(mode)); -} - -static WEBP_INLINE int WebPIsRGBMode(WEBP_CSP_MODE mode) { - return (mode < MODE_YUV); -} - -//------------------------------------------------------------------------------ -// WebPDecBuffer: Generic structure for describing the output sample buffer. - -struct WebPRGBABuffer { // view as RGBA - uint8_t* rgba; // pointer to RGBA samples - int stride; // stride in bytes from one scanline to the next. - size_t size; // total size of the *rgba buffer. -}; - -struct WebPYUVABuffer { // view as YUVA - uint8_t* y, *u, *v, *a; // pointer to luma, chroma U/V, alpha samples - int y_stride; // luma stride - int u_stride, v_stride; // chroma strides - int a_stride; // alpha stride - size_t y_size; // luma plane size - size_t u_size, v_size; // chroma planes size - size_t a_size; // alpha-plane size -}; - -// Output buffer -struct WebPDecBuffer { - WEBP_CSP_MODE colorspace; // Colorspace. - int width, height; // Dimensions. - int is_external_memory; // If non-zero, 'internal_memory' pointer is not - // used. If value is '2' or more, the external - // memory is considered 'slow' and multiple - // read/write will be avoided. - union { - WebPRGBABuffer RGBA; - WebPYUVABuffer YUVA; - } u; // Nameless union of buffer parameters. - uint32_t pad[4]; // padding for later use - - uint8_t* private_memory; // Internally allocated memory (only when - // is_external_memory is 0). Should not be used - // externally, but accessed via the buffer union. -}; - -// Internal, version-checked, entry point -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 -static WEBP_INLINE int WebPInitDecBuffer(WebPDecBuffer* buffer) { - return WebPInitDecBufferInternal(buffer, WEBP_DECODER_ABI_VERSION); -} - -// 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); - -//------------------------------------------------------------------------------ -// Enumeration of the status codes - -typedef enum VP8StatusCode { - VP8_STATUS_OK = 0, - VP8_STATUS_OUT_OF_MEMORY, - VP8_STATUS_INVALID_PARAM, - VP8_STATUS_BITSTREAM_ERROR, - VP8_STATUS_UNSUPPORTED_FEATURE, - VP8_STATUS_SUSPENDED, - VP8_STATUS_USER_ABORT, - VP8_STATUS_NOT_ENOUGH_DATA -} VP8StatusCode; - -//------------------------------------------------------------------------------ -// Incremental decoding -// -// This API allows streamlined decoding of partial data. -// Picture can be incrementally decoded as data become available thanks to the -// WebPIDecoder object. This object can be left in a SUSPENDED state if the -// picture is only partially decoded, pending additional input. -// Code example: -// -// WebPInitDecBuffer(&output_buffer); -// output_buffer.colorspace = mode; -// ... -// WebPIDecoder* idec = WebPINewDecoder(&output_buffer); -// while (additional_data_is_available) { -// // ... (get additional data in some new_data[] buffer) -// status = WebPIAppend(idec, new_data, new_data_size); -// if (status != VP8_STATUS_OK && status != VP8_STATUS_SUSPENDED) { -// break; // an error occurred. -// } -// -// // The above call decodes the current available buffer. -// // Part of the image can now be refreshed by calling -// // WebPIDecGetRGB()/WebPIDecGetYUVA() etc. -// } -// WebPIDelete(idec); - -// Creates a new incremental decoder with the supplied buffer parameter. -// This output_buffer can be passed NULL, in which case a default output buffer -// is used (with MODE_RGB). Otherwise, an internal reference to 'output_buffer' -// is kept, which means that the lifespan of 'output_buffer' must be larger than -// that of the returned WebPIDecoder object. -// The supplied 'output_buffer' content MUST NOT be changed between calls to -// WebPIAppend() or WebPIUpdate() unless 'output_buffer.is_external_memory' is -// not set to 0. In such a case, it is allowed to modify the pointers, size and -// stride of output_buffer.u.RGBA or output_buffer.u.YUVA, provided they remain -// 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); - -// This function allocates and initializes an incremental-decoder object, which -// will output the RGB/A samples specified by 'csp' into a preallocated -// buffer 'output_buffer'. The size of this buffer is at least -// 'output_buffer_size' and the stride (distance in bytes between two scanlines) -// is specified by 'output_stride'. -// Additionally, output_buffer can be passed NULL in which case the output -// buffer will be allocated automatically when the decoding starts. The -// 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_CSP_MODE csp, - uint8_t* output_buffer, size_t output_buffer_size, int output_stride); - -// This function allocates and initializes an incremental-decoder object, which -// will output the raw luma/chroma samples into a preallocated planes if -// supplied. The luma plane is specified by its pointer 'luma', its size -// 'luma_size' and its stride 'luma_stride'. Similarly, the chroma-u plane -// is specified by the 'u', 'u_size' and 'u_stride' parameters, and the chroma-v -// plane by 'v' and 'v_size'. And same for the alpha-plane. The 'a' pointer -// can be pass NULL in case one is not interested in the transparency plane. -// Conversely, 'luma' can be passed NULL if no preallocated planes are supplied. -// 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( - 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, - uint8_t* a, size_t a_size, int a_stride); - -// Deprecated version of the above, without the alpha plane. -// Kept for backward compatibility. -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); - -// 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( - WebPIDecoder* idec, const uint8_t* data, size_t data_size); - -// A variant of the above function to be used when data buffer contains -// partial data from the beginning. In this case data buffer is not copied -// 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( - WebPIDecoder* idec, const uint8_t* data, size_t data_size); - -// Returns the RGB/A image decoded so far. Returns NULL if output params -// are not initialized yet. The RGB/A output type corresponds to the colorspace -// 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( - 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( - 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); - -// Deprecated alpha-less version of WebPIDecGetYUVA(): it will ignore the -// alpha information (if present). Kept for backward compatibility. -static WEBP_INLINE uint8_t* WebPIDecGetYUV( - const WebPIDecoder* idec, int* last_y, uint8_t** u, uint8_t** v, - int* width, int* height, int* stride, int* uv_stride) { - return WebPIDecGetYUVA(idec, last_y, u, v, NULL, width, height, - stride, uv_stride, NULL); -} - -// Generic call to retrieve information about the displayable area. -// If non NULL, the left/right/width/height pointers are filled with the visible -// rectangular area so far. -// 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( - const WebPIDecoder* idec, int* left, int* top, int* width, int* height); - -//------------------------------------------------------------------------------ -// Advanced decoding parametrization -// -// Code sample for using the advanced decoding API -/* - // A) Init a configuration object - WebPDecoderConfig config; - CHECK(WebPInitDecoderConfig(&config)); - - // B) optional: retrieve the bitstream's features. - CHECK(WebPGetFeatures(data, data_size, &config.input) == VP8_STATUS_OK); - - // C) Adjust 'config', if needed - config.no_fancy_upsampling = 1; - config.output.colorspace = MODE_BGRA; - // etc. - - // Note that you can also make config.output point to an externally - // supplied memory buffer, provided it's big enough to store the decoded - // picture. Otherwise, config.output will just be used to allocate memory - // and store the decoded picture. - - // D) Decode! - CHECK(WebPDecode(data, data_size, &config) == VP8_STATUS_OK); - - // E) Decoded image is now in config.output (and config.output.u.RGBA) - - // F) Reclaim memory allocated in config's object. It's safe to call - // this function even if the memory is external and wasn't allocated - // by WebPDecode(). - WebPFreeDecBuffer(&config.output); -*/ - -// Features gathered from the bitstream -struct WebPBitstreamFeatures { - int width; // Width in pixels, as read from the bitstream. - int height; // Height in pixels, as read from the bitstream. - int has_alpha; // True if the bitstream contains an alpha channel. - int has_animation; // True if the bitstream is an animation. - int format; // 0 = undefined (/mixed), 1 = lossy, 2 = lossless - - uint32_t pad[5]; // padding for later use -}; - -// Internal, version-checked, entry point -WEBP_EXTERN(VP8StatusCode) WebPGetFeaturesInternal( - const uint8_t*, size_t, WebPBitstreamFeatures*, int); - -// Retrieve features from the bitstream. The *features structure is filled -// with information gathered from the bitstream. -// Returns VP8_STATUS_OK when the features are successfully retrieved. Returns -// VP8_STATUS_NOT_ENOUGH_DATA when more data is needed to retrieve the -// features from headers. Returns error in other cases. -static WEBP_INLINE VP8StatusCode WebPGetFeatures( - const uint8_t* data, size_t data_size, - WebPBitstreamFeatures* features) { - return WebPGetFeaturesInternal(data, data_size, features, - WEBP_DECODER_ABI_VERSION); -} - -// Decoding options -struct WebPDecoderOptions { - int bypass_filtering; // if true, skip the in-loop filtering - int no_fancy_upsampling; // if true, use faster pointwise upsampler - int use_cropping; // if true, cropping is applied _first_ - int crop_left, crop_top; // top-left position for cropping. - // Will be snapped to even values. - int crop_width, crop_height; // dimension of the cropping area - int use_scaling; // if true, scaling is applied _afterward_ - int scaled_width, scaled_height; // final resolution - int use_threads; // if true, use multi-threaded decoding - int dithering_strength; // dithering strength (0=Off, 100=full) - int flip; // flip output vertically - int alpha_dithering_strength; // alpha dithering strength in [0..100] - - uint32_t pad[5]; // padding for later use -}; - -// Main object storing the configuration for advanced decoding. -struct WebPDecoderConfig { - WebPBitstreamFeatures input; // Immutable bitstream features (optional) - WebPDecBuffer output; // Output buffer (can point to external mem) - WebPDecoderOptions options; // Decoding options -}; - -// Internal, version-checked, entry point -WEBP_EXTERN(int) WebPInitDecoderConfigInternal(WebPDecoderConfig*, int); - -// Initialize the configuration as empty. This function must always be -// called first, unless WebPGetFeatures() is to be called. -// Returns false in case of mismatched version. -static WEBP_INLINE int WebPInitDecoderConfig(WebPDecoderConfig* config) { - return WebPInitDecoderConfigInternal(config, WEBP_DECODER_ABI_VERSION); -} - -// Instantiate a new incremental decoder object with the requested -// configuration. The bitstream can be passed using 'data' and 'data_size' -// parameter, in which case the features will be parsed and stored into -// config->input. Otherwise, 'data' can be NULL and no parsing will occur. -// Note that 'config' can be NULL too, in which case a default configuration -// is used. If 'config' is not NULL, it must outlive the WebPIDecoder object -// as some references to its fields will be used. No internal copy of 'config' -// is made. -// 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); - -// 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); - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif /* WEBP_WEBP_DECODE_H_ */ diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/webp/encode.h b/extension/SDL2_image-2.0.3/VisualC/external/include/webp/encode.h deleted file mode 100755 index 35fde1d..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/webp/encode.h +++ /dev/null @@ -1,542 +0,0 @@ -// 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. -// ----------------------------------------------------------------------------- -// -// WebP encoder: main interface -// -// Author: Skal (pascal.massimino@gmail.com) - -#ifndef WEBP_WEBP_ENCODE_H_ -#define WEBP_WEBP_ENCODE_H_ - -#include "./types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define WEBP_ENCODER_ABI_VERSION 0x020e // 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 WebPImageHint WebPImageHint; -// typedef enum WebPEncCSP WebPEncCSP; -// typedef enum WebPPreset WebPPreset; -// typedef enum WebPEncodingError WebPEncodingError; -typedef struct WebPConfig WebPConfig; -typedef struct WebPPicture WebPPicture; // main structure for I/O -typedef struct WebPAuxStats WebPAuxStats; -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); - -//------------------------------------------------------------------------------ -// One-stop-shop call! No questions asked: - -// Returns the size of the compressed data (pointed to by *output), or 0 if -// an error occurred. The compressed data must be released by the caller -// using the call 'WebPFree(*output)'. -// 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, - 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) 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, - 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) 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); - -//------------------------------------------------------------------------------ -// Coding parameters - -// Image characteristics hint for the underlying encoder. -typedef enum WebPImageHint { - WEBP_HINT_DEFAULT = 0, // default preset. - WEBP_HINT_PICTURE, // digital picture, like portrait, inner shot - WEBP_HINT_PHOTO, // outdoor photograph, with natural lighting - WEBP_HINT_GRAPH, // Discrete tone image (graph, map-tile etc). - WEBP_HINT_LAST -} WebPImageHint; - -// Compression parameters. -struct WebPConfig { - int lossless; // Lossless encoding (0=lossy(default), 1=lossless). - float quality; // between 0 (smallest file) and 100 (biggest) - 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 - // try to achieve. Takes precedence over target_size. - int segments; // maximum number of segments to use, in [1..4] - int sns_strength; // Spatial Noise Shaping. 0=off, 100=maximum. - int filter_strength; // range: [0 = off .. 100 = strongest] - int filter_sharpness; // range: [0 = off .. 7 = least sharp] - int filter_type; // filtering type: 0 = simple, 1 = strong (only used - // if filter_strength > 0 or autofilter > 0) - int autofilter; // Auto adjust filter's strength [0 = off, 1 = on] - int alpha_compression; // Algorithm for encoding the alpha plane (0 = none, - // 1 = compressed with WebP lossless). Default is 1. - int alpha_filtering; // Predictive filtering method for alpha plane. - // 0: none, 1: fast, 2: best. Default if 1. - int alpha_quality; // Between 0 (smallest size) and 100 (lossless). - // Default is 100. - int pass; // number of entropy-analysis passes (in [1..10]). - - int show_compressed; // if true, export the compressed picture back. - // In-loop filtering is not applied. - int preprocessing; // preprocessing filter: - // 0=none, 1=segment-smooth, 2=pseudo-random dithering - int partitions; // log2(number of token partitions) in [0..3]. Default - // is set to 0 for easier progressive decoding. - int partition_limit; // quality degradation allowed to fit the 512k limit - // on prediction modes coding (0: no degradation, - // 100: maximum possible degradation). - int emulate_jpeg_size; // If true, compression parameters will be remapped - // to better match the expected output size from - // JPEG compression. Generally, the output size will - // be similar but the degradation will be lower. - int thread_level; // If non-zero, try and use multi-threaded encoding. - int low_memory; // If set, reduce memory usage (but increase CPU use). - - int near_lossless; // Near lossless encoding [0 = max loss .. 100 = off - // (default)]. - int exact; // if non-zero, preserve the exact RGB values under - // transparent area. Otherwise, discard this invisible - // RGB information for better compression. The default - // value is 0. - - int use_delta_palette; // reserved for future lossless feature - int use_sharp_yuv; // if needed, use sharp (and slow) RGB->YUV conversion - - uint32_t pad[2]; // padding for later use -}; - -// Enumerate some predefined settings for WebPConfig, depending on the type -// of source picture. These presets are used when calling WebPConfigPreset(). -typedef enum WebPPreset { - WEBP_PRESET_DEFAULT = 0, // default preset. - WEBP_PRESET_PICTURE, // digital picture, like portrait, inner shot - WEBP_PRESET_PHOTO, // outdoor photograph, with natural lighting - WEBP_PRESET_DRAWING, // hand or line drawing, with high-contrast details - WEBP_PRESET_ICON, // small-sized colorful images - WEBP_PRESET_TEXT // text-like -} WebPPreset; - -// Internal, version-checked, entry point -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() -// must have succeeded before using the 'config' object. -// Note that the default values are lossless=0 and quality=75. -static WEBP_INLINE int WebPConfigInit(WebPConfig* config) { - return WebPConfigInitInternal(config, WEBP_PRESET_DEFAULT, 75.f, - WEBP_ENCODER_ABI_VERSION); -} - -// This function will initialize the configuration according to a predefined -// set of parameters (referred to by 'preset') and a given quality factor. -// This function can be called as a replacement to WebPConfigInit(). Will -// return false in case of error. -static WEBP_INLINE int WebPConfigPreset(WebPConfig* config, - WebPPreset preset, float quality) { - return WebPConfigInitInternal(config, preset, quality, - WEBP_ENCODER_ABI_VERSION); -} - -// Activate the lossless compression mode with the desired efficiency level -// between 0 (fastest, lowest compression) and 9 (slower, best compression). -// A good default level is '6', providing a fair tradeoff between compression -// 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); - -// Returns true if 'config' is non-NULL and all configuration parameters are -// within their valid ranges. -WEBP_EXTERN(int) WebPValidateConfig(const WebPConfig* config); - -//------------------------------------------------------------------------------ -// Input / Output -// Structure for storing auxiliary statistics (mostly for lossy encoding). - -struct WebPAuxStats { - int coded_size; // final size - - float PSNR[5]; // peak-signal-to-noise ratio for Y/U/V/All/Alpha - int block_count[3]; // number of intra4/intra16/skipped macroblocks - int header_bytes[2]; // approximate number of bytes spent for header - // and mode-partition #0 - int residual_bytes[3][4]; // approximate number of bytes spent for - // DC/AC/uv coefficients for each (0..3) segments. - int segment_size[4]; // number of macroblocks in each segments - int segment_quant[4]; // quantizer values for each segments - int segment_level[4]; // filtering strength for each segments [0..63] - - int alpha_data_size; // size of the transparency data - int layer_data_size; // size of the enhancement layer data - - // lossless encoder statistics - uint32_t lossless_features; // bit0:predictor bit1:cross-color transform - // bit2:subtract-green bit3:color indexing - int histogram_bits; // number of precision bits of histogram - int transform_bits; // precision bits for transform - int cache_bits; // number of bits for color cache lookup - int palette_size; // number of color in palette, if used - int lossless_size; // final lossless size - int lossless_hdr_size; // lossless header (transform, huffman etc) size - int lossless_data_size; // lossless image data size - - uint32_t pad[2]; // padding for later use -}; - -// Signature for output function. Should return true if writing was successful. -// data/data_size is the segment of data to write, and 'picture' is for -// reference (and so one can make use of picture->custom_ptr). -typedef int (*WebPWriterFunction)(const uint8_t* data, size_t data_size, - const WebPPicture* picture); - -// WebPMemoryWrite: a special WebPWriterFunction that writes to memory using -// the following WebPMemoryWriter object (to be set as a custom_ptr). -struct WebPMemoryWriter { - uint8_t* mem; // final buffer (of size 'max_size', larger than 'size'). - size_t size; // final size - size_t max_size; // total capacity - uint32_t pad[1]; // padding for later use -}; - -// The following must be called first before any use. -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); -// 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); - -// 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 -// everything is OK. -typedef int (*WebPProgressHook)(int percent, const WebPPicture* picture); - -// Color spaces. -typedef enum WebPEncCSP { - // chroma sampling - WEBP_YUV420 = 0, // 4:2:0 - WEBP_YUV420A = 4, // alpha channel variant - WEBP_CSP_UV_MASK = 3, // bit-mask to get the UV sampling factors - WEBP_CSP_ALPHA_BIT = 4 // bit that is set if alpha is present -} WebPEncCSP; - -// Encoding error conditions. -typedef enum WebPEncodingError { - VP8_ENC_OK = 0, - VP8_ENC_ERROR_OUT_OF_MEMORY, // memory error allocating objects - VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY, // memory error while flushing bits - VP8_ENC_ERROR_NULL_PARAMETER, // a pointer parameter is NULL - VP8_ENC_ERROR_INVALID_CONFIGURATION, // configuration is invalid - VP8_ENC_ERROR_BAD_DIMENSION, // picture has invalid width/height - VP8_ENC_ERROR_PARTITION0_OVERFLOW, // partition is bigger than 512k - VP8_ENC_ERROR_PARTITION_OVERFLOW, // partition is bigger than 16M - VP8_ENC_ERROR_BAD_WRITE, // error while flushing bytes - VP8_ENC_ERROR_FILE_TOO_BIG, // file is bigger than 4G - VP8_ENC_ERROR_USER_ABORT, // abort request by user - VP8_ENC_ERROR_LAST // list terminator. always last. -} WebPEncodingError; - -// maximum width/height allowed (inclusive), in pixels -#define WEBP_MAX_DIMENSION 16383 - -// Main exchange structure (input samples, output bytes, statistics) -struct WebPPicture { - // INPUT - ////////////// - // Main flag for encoder selecting between ARGB or YUV input. - // It is recommended to use ARGB input (*argb, argb_stride) for lossless - // compression, and YUV input (*y, *u, *v, etc.) for lossy compression - // since these are the respective native colorspace for these formats. - int use_argb; - - // YUV input (mostly used for input to lossy compression) - WebPEncCSP colorspace; // colorspace: should be YUV420 for now (=Y'CbCr). - int width, height; // dimensions (less or equal to WEBP_MAX_DIMENSION) - uint8_t *y, *u, *v; // pointers to luma/chroma planes. - int y_stride, uv_stride; // luma/chroma strides. - uint8_t* a; // pointer to the alpha plane - int a_stride; // stride of the alpha plane - uint32_t pad1[2]; // padding for later use - - // ARGB input (mostly used for input to lossless compression) - uint32_t* argb; // Pointer to argb (32 bit) plane. - int argb_stride; // This is stride in pixels units, not bytes. - uint32_t pad2[3]; // padding for later use - - // OUTPUT - /////////////// - // Byte-emission hook, to store compressed bytes as they are ready. - WebPWriterFunction writer; // can be NULL - void* custom_ptr; // can be used by the writer. - - // map for extra information (only for lossy compression mode) - int extra_info_type; // 1: intra type, 2: segment, 3: quant - // 4: intra-16 prediction mode, - // 5: chroma prediction mode, - // 6: bit cost, 7: distortion - uint8_t* extra_info; // if not NULL, points to an array of size - // ((width + 15) / 16) * ((height + 15) / 16) that - // will be filled with a macroblock map, depending - // on extra_info_type. - - // STATS AND REPORTS - /////////////////////////// - // Pointer to side statistics (updated only if not NULL) - WebPAuxStats* stats; - - // Error code for the latest error encountered during encoding - WebPEncodingError error_code; - - // If not NULL, report progress during encoding. - WebPProgressHook progress_hook; - - void* user_data; // this field is free to be set to any value and - // used during callbacks (like progress-report e.g.). - - uint32_t pad3[3]; // padding for later use - - // Unused for now - uint8_t *pad4, *pad5; - uint32_t pad6[8]; // padding for later use - - // PRIVATE FIELDS - //////////////////// - void* memory_; // row chunk of memory for yuva planes - void* memory_argb_; // and for argb too. - void* pad7[2]; // padding for later use -}; - -// Internal, version-checked, entry point -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 -// 'picture' object. -// Note that, by default, use_argb is false and colorspace is WEBP_YUV420. -static WEBP_INLINE int WebPPictureInit(WebPPicture* picture) { - return WebPPictureInitInternal(picture, WEBP_ENCODER_ABI_VERSION); -} - -//------------------------------------------------------------------------------ -// WebPPicture utils - -// Convenience allocation / deallocation based on picture->width/height: -// 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); - -// 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); - -// 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); - -// Compute the single distortion for packed planes of samples. -// 'src' will be compared to 'ref', and the raw distortion stored into -// '*distortion'. The refined metric (log(MSE), log(1 - ssim),...' will be -// stored in '*result'. -// '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); - -// 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( - const WebPPicture* src, const WebPPicture* ref, - int metric_type, // 0 = PSNR, 1 = SSIM, 2 = LSIM - float result[5]); - -// self-crops a picture to the rectangle defined by top/left/width/height. -// Returns false in case of memory allocation error, or if the rectangle is -// outside of the source picture. -// The rectangle for the view is defined by the top-left corner pixel -// coordinates (left, top) as well as its width and height. This rectangle -// 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); - -// 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 -// as its width and height. This rectangle 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. -// Picture 'src' must out-live 'dst' picture. Self-extraction of view is allowed -// ('src' equal to 'dst') as a mean of fast-cropping (but note that doing so, -// the original dimension will be lost). Picture 'dst' need not be initialized -// 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); - -// 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); - -// 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); - -// 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( - WebPPicture* picture, const uint8_t* rgb, int rgb_stride); -// Same, but for RGBA buffer. -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( - WebPPicture* picture, const uint8_t* rgbx, int rgbx_stride); - -// Variants of the above, but taking BGR(A|X) input. -WEBP_EXTERN(int) WebPPictureImportBGR( - WebPPicture* picture, const uint8_t* bgr, int bgr_stride); -WEBP_EXTERN(int) WebPPictureImportBGRA( - WebPPicture* picture, const uint8_t* bgra, int bgra_stride); -WEBP_EXTERN(int) WebPPictureImportBGRX( - WebPPicture* picture, const uint8_t* bgrx, int bgrx_stride); - -// Converts picture->argb data to the YUV420A format. The 'colorspace' -// parameter is deprecated and should be equal to WEBP_YUV420. -// Upon return, picture->use_argb is set to false. The presence of real -// 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*/); - -// 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( - WebPPicture* picture, WebPEncCSP colorspace, float dithering); - -// Performs 'sharp' RGBA->YUVA420 downsampling and colorspace conversion. -// Downsampling is handled with extra care in case of color clipping. This -// 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); -// kept for backward compatibility: -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 -// ARGB incurs a small loss too. -// 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); - -// 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); - -// 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); - -// 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); - -//------------------------------------------------------------------------------ -// Main call - -// Main encoding call, after config and picture have been initialized. -// 'picture' must be less than 16384x16384 in dimension (cf WEBP_MAX_DIMENSION), -// and the 'config' object must be a valid one. -// Returns false in case of error, true otherwise. -// In case of error, picture->error_code is updated accordingly. -// 'picture' can hold the source samples in both YUV(A) or ARGB input, depending -// on the value of 'picture->use_argb'. It is highly recommended to use -// 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); - -//------------------------------------------------------------------------------ - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif /* WEBP_WEBP_ENCODE_H_ */ diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/webp/types.h b/extension/SDL2_image-2.0.3/VisualC/external/include/webp/types.h deleted file mode 100755 index 98fff35..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/webp/types.h +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2010 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. -// ----------------------------------------------------------------------------- -// -// Common types -// -// Author: Skal (pascal.massimino@gmail.com) - -#ifndef WEBP_WEBP_TYPES_H_ -#define WEBP_WEBP_TYPES_H_ - -#include // for size_t - -#ifndef _MSC_VER -#include -#if defined(__cplusplus) || !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) -#define WEBP_INLINE inline -#else -#define WEBP_INLINE -#endif -#else -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef signed short int16_t; -typedef unsigned short uint16_t; -typedef signed int int32_t; -typedef unsigned int uint32_t; -typedef unsigned long long int uint64_t; -typedef long long int int64_t; -#define WEBP_INLINE __forceinline -#endif /* _MSC_VER */ - -#ifndef WEBP_EXTERN -// 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 -# else -# define WEBP_EXTERN(type) extern type -# endif /* __GNUC__ >= 4 */ -#endif /* WEBP_EXTERN */ - -// Macro to check ABI compatibility (same major revision number) -#define WEBP_ABI_IS_INCOMPATIBLE(a, b) (((a) >> 8) != ((b) >> 8)) - -#endif /* WEBP_WEBP_TYPES_H_ */ diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/zconf.h b/extension/SDL2_image-2.0.3/VisualC/external/include/zconf.h deleted file mode 100755 index 5e1d68a..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/zconf.h +++ /dev/null @@ -1,534 +0,0 @@ -/* zconf.h -- configuration of the zlib compression library - * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#ifndef ZCONF_H -#define ZCONF_H - -/* - * If you *really* need a unique prefix for all types and library functions, - * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. - * Even better than compiling with -DZ_PREFIX would be to use configure to set - * this permanently in zconf.h using "./configure --zprefix". - */ -#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ -# define Z_PREFIX_SET - -/* all linked symbols and init macros */ -# define _dist_code z__dist_code -# define _length_code z__length_code -# define _tr_align z__tr_align -# define _tr_flush_bits z__tr_flush_bits -# define _tr_flush_block z__tr_flush_block -# define _tr_init z__tr_init -# define _tr_stored_block z__tr_stored_block -# define _tr_tally z__tr_tally -# define adler32 z_adler32 -# define adler32_combine z_adler32_combine -# define adler32_combine64 z_adler32_combine64 -# define adler32_z z_adler32_z -# ifndef Z_SOLO -# define compress z_compress -# define compress2 z_compress2 -# define compressBound z_compressBound -# endif -# define crc32 z_crc32 -# define crc32_combine z_crc32_combine -# define crc32_combine64 z_crc32_combine64 -# define crc32_z z_crc32_z -# define deflate z_deflate -# define deflateBound z_deflateBound -# define deflateCopy z_deflateCopy -# define deflateEnd z_deflateEnd -# define deflateGetDictionary z_deflateGetDictionary -# define deflateInit z_deflateInit -# define deflateInit2 z_deflateInit2 -# define deflateInit2_ z_deflateInit2_ -# define deflateInit_ z_deflateInit_ -# define deflateParams z_deflateParams -# define deflatePending z_deflatePending -# define deflatePrime z_deflatePrime -# define deflateReset z_deflateReset -# define deflateResetKeep z_deflateResetKeep -# define deflateSetDictionary z_deflateSetDictionary -# define deflateSetHeader z_deflateSetHeader -# define deflateTune z_deflateTune -# define deflate_copyright z_deflate_copyright -# define get_crc_table z_get_crc_table -# ifndef Z_SOLO -# define gz_error z_gz_error -# define gz_intmax z_gz_intmax -# define gz_strwinerror z_gz_strwinerror -# define gzbuffer z_gzbuffer -# define gzclearerr z_gzclearerr -# define gzclose z_gzclose -# define gzclose_r z_gzclose_r -# define gzclose_w z_gzclose_w -# define gzdirect z_gzdirect -# define gzdopen z_gzdopen -# define gzeof z_gzeof -# define gzerror z_gzerror -# define gzflush z_gzflush -# define gzfread z_gzfread -# define gzfwrite z_gzfwrite -# define gzgetc z_gzgetc -# define gzgetc_ z_gzgetc_ -# define gzgets z_gzgets -# define gzoffset z_gzoffset -# define gzoffset64 z_gzoffset64 -# define gzopen z_gzopen -# define gzopen64 z_gzopen64 -# ifdef _WIN32 -# define gzopen_w z_gzopen_w -# endif -# define gzprintf z_gzprintf -# define gzputc z_gzputc -# define gzputs z_gzputs -# define gzread z_gzread -# define gzrewind z_gzrewind -# define gzseek z_gzseek -# define gzseek64 z_gzseek64 -# define gzsetparams z_gzsetparams -# define gztell z_gztell -# define gztell64 z_gztell64 -# define gzungetc z_gzungetc -# define gzvprintf z_gzvprintf -# define gzwrite z_gzwrite -# endif -# define inflate z_inflate -# define inflateBack z_inflateBack -# define inflateBackEnd z_inflateBackEnd -# define inflateBackInit z_inflateBackInit -# define inflateBackInit_ z_inflateBackInit_ -# define inflateCodesUsed z_inflateCodesUsed -# define inflateCopy z_inflateCopy -# define inflateEnd z_inflateEnd -# define inflateGetDictionary z_inflateGetDictionary -# define inflateGetHeader z_inflateGetHeader -# define inflateInit z_inflateInit -# define inflateInit2 z_inflateInit2 -# define inflateInit2_ z_inflateInit2_ -# define inflateInit_ z_inflateInit_ -# define inflateMark z_inflateMark -# define inflatePrime z_inflatePrime -# define inflateReset z_inflateReset -# define inflateReset2 z_inflateReset2 -# define inflateResetKeep z_inflateResetKeep -# define inflateSetDictionary z_inflateSetDictionary -# define inflateSync z_inflateSync -# define inflateSyncPoint z_inflateSyncPoint -# define inflateUndermine z_inflateUndermine -# define inflateValidate z_inflateValidate -# define inflate_copyright z_inflate_copyright -# define inflate_fast z_inflate_fast -# define inflate_table z_inflate_table -# ifndef Z_SOLO -# define uncompress z_uncompress -# define uncompress2 z_uncompress2 -# endif -# define zError z_zError -# ifndef Z_SOLO -# define zcalloc z_zcalloc -# define zcfree z_zcfree -# endif -# define zlibCompileFlags z_zlibCompileFlags -# define zlibVersion z_zlibVersion - -/* all zlib typedefs in zlib.h and zconf.h */ -# define Byte z_Byte -# define Bytef z_Bytef -# define alloc_func z_alloc_func -# define charf z_charf -# define free_func z_free_func -# ifndef Z_SOLO -# define gzFile z_gzFile -# endif -# define gz_header z_gz_header -# define gz_headerp z_gz_headerp -# define in_func z_in_func -# define intf z_intf -# define out_func z_out_func -# define uInt z_uInt -# define uIntf z_uIntf -# define uLong z_uLong -# define uLongf z_uLongf -# define voidp z_voidp -# define voidpc z_voidpc -# define voidpf z_voidpf - -/* all zlib structs in zlib.h and zconf.h */ -# define gz_header_s z_gz_header_s -# define internal_state z_internal_state - -#endif - -#if defined(__MSDOS__) && !defined(MSDOS) -# define MSDOS -#endif -#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) -# define OS2 -#endif -#if defined(_WINDOWS) && !defined(WINDOWS) -# define WINDOWS -#endif -#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) -# ifndef WIN32 -# define WIN32 -# endif -#endif -#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) -# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) -# ifndef SYS16BIT -# define SYS16BIT -# endif -# endif -#endif - -/* - * Compile with -DMAXSEG_64K if the alloc function cannot allocate more - * than 64k bytes at a time (needed on systems with 16-bit int). - */ -#ifdef SYS16BIT -# define MAXSEG_64K -#endif -#ifdef MSDOS -# define UNALIGNED_OK -#endif - -#ifdef __STDC_VERSION__ -# ifndef STDC -# define STDC -# endif -# if __STDC_VERSION__ >= 199901L -# ifndef STDC99 -# define STDC99 -# endif -# endif -#endif -#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) -# define STDC -#endif -#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) -# define STDC -#endif -#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) -# define STDC -#endif -#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) -# define STDC -#endif - -#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ -# define STDC -#endif - -#ifndef STDC -# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ -# define const /* note: need a more gentle solution here */ -# endif -#endif - -#if defined(ZLIB_CONST) && !defined(z_const) -# define z_const const -#else -# define z_const -#endif - -#ifdef Z_SOLO - typedef unsigned long z_size_t; -#else -# define z_longlong long long -# if defined(NO_SIZE_T) - typedef unsigned NO_SIZE_T z_size_t; -# elif defined(STDC) -# include - typedef size_t z_size_t; -# else - typedef unsigned long z_size_t; -# endif -# undef z_longlong -#endif - -/* Maximum value for memLevel in deflateInit2 */ -#ifndef MAX_MEM_LEVEL -# ifdef MAXSEG_64K -# define MAX_MEM_LEVEL 8 -# else -# define MAX_MEM_LEVEL 9 -# endif -#endif - -/* Maximum value for windowBits in deflateInit2 and inflateInit2. - * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files - * created by gzip. (Files created by minigzip can still be extracted by - * gzip.) - */ -#ifndef MAX_WBITS -# define MAX_WBITS 15 /* 32K LZ77 window */ -#endif - -/* The memory requirements for deflate are (in bytes): - (1 << (windowBits+2)) + (1 << (memLevel+9)) - that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) - plus a few kilobytes for small objects. For example, if you want to reduce - the default memory requirements from 256K to 128K, compile with - make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" - Of course this will generally degrade compression (there's no free lunch). - - The memory requirements for inflate are (in bytes) 1 << windowBits - that is, 32K for windowBits=15 (default value) plus about 7 kilobytes - for small objects. -*/ - - /* Type declarations */ - -#ifndef OF /* function prototypes */ -# ifdef STDC -# define OF(args) args -# else -# define OF(args) () -# endif -#endif - -#ifndef Z_ARG /* function prototypes for stdarg */ -# if defined(STDC) || defined(Z_HAVE_STDARG_H) -# define Z_ARG(args) args -# else -# define Z_ARG(args) () -# endif -#endif - -/* The following definitions for FAR are needed only for MSDOS mixed - * model programming (small or medium model with some far allocations). - * This was tested only with MSC; for other MSDOS compilers you may have - * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, - * just define FAR to be empty. - */ -#ifdef SYS16BIT -# if defined(M_I86SM) || defined(M_I86MM) - /* MSC small or medium model */ -# define SMALL_MEDIUM -# ifdef _MSC_VER -# define FAR _far -# else -# define FAR far -# endif -# endif -# if (defined(__SMALL__) || defined(__MEDIUM__)) - /* Turbo C small or medium model */ -# define SMALL_MEDIUM -# ifdef __BORLANDC__ -# define FAR _far -# else -# define FAR far -# endif -# endif -#endif - -#if defined(WINDOWS) || defined(WIN32) - /* If building or using zlib as a DLL, define ZLIB_DLL. - * This is not mandatory, but it offers a little performance increase. - */ -# ifdef ZLIB_DLL -# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) -# ifdef ZLIB_INTERNAL -# define ZEXTERN extern __declspec(dllexport) -# else -# define ZEXTERN extern __declspec(dllimport) -# endif -# endif -# endif /* ZLIB_DLL */ - /* If building or using zlib with the WINAPI/WINAPIV calling convention, - * define ZLIB_WINAPI. - * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. - */ -# ifdef ZLIB_WINAPI -# ifdef FAR -# undef FAR -# endif -# include - /* No need for _export, use ZLIB.DEF instead. */ - /* For complete Windows compatibility, use WINAPI, not __stdcall. */ -# define ZEXPORT WINAPI -# ifdef WIN32 -# define ZEXPORTVA WINAPIV -# else -# define ZEXPORTVA FAR CDECL -# endif -# endif -#endif - -#if defined (__BEOS__) -# ifdef ZLIB_DLL -# ifdef ZLIB_INTERNAL -# define ZEXPORT __declspec(dllexport) -# define ZEXPORTVA __declspec(dllexport) -# else -# define ZEXPORT __declspec(dllimport) -# define ZEXPORTVA __declspec(dllimport) -# endif -# endif -#endif - -#ifndef ZEXTERN -# define ZEXTERN extern -#endif -#ifndef ZEXPORT -# define ZEXPORT -#endif -#ifndef ZEXPORTVA -# define ZEXPORTVA -#endif - -#ifndef FAR -# define FAR -#endif - -#if !defined(__MACTYPES__) -typedef unsigned char Byte; /* 8 bits */ -#endif -typedef unsigned int uInt; /* 16 bits or more */ -typedef unsigned long uLong; /* 32 bits or more */ - -#ifdef SMALL_MEDIUM - /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ -# define Bytef Byte FAR -#else - typedef Byte FAR Bytef; -#endif -typedef char FAR charf; -typedef int FAR intf; -typedef uInt FAR uIntf; -typedef uLong FAR uLongf; - -#ifdef STDC - typedef void const *voidpc; - typedef void FAR *voidpf; - typedef void *voidp; -#else - typedef Byte const *voidpc; - typedef Byte FAR *voidpf; - typedef Byte *voidp; -#endif - -#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) -# include -# if (UINT_MAX == 0xffffffffUL) -# define Z_U4 unsigned -# elif (ULONG_MAX == 0xffffffffUL) -# define Z_U4 unsigned long -# elif (USHRT_MAX == 0xffffffffUL) -# define Z_U4 unsigned short -# endif -#endif - -#ifdef Z_U4 - typedef Z_U4 z_crc_t; -#else - typedef unsigned long z_crc_t; -#endif - -#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_UNISTD_H -#endif - -#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_STDARG_H -#endif - -#ifdef STDC -# ifndef Z_SOLO -# include /* for off_t */ -# endif -#endif - -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -# include /* for va_list */ -# endif -#endif - -#ifdef _WIN32 -# ifndef Z_SOLO -# include /* for wchar_t */ -# endif -#endif - -/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and - * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even - * though the former does not conform to the LFS document), but considering - * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as - * equivalently requesting no 64-bit operations - */ -#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 -# undef _LARGEFILE64_SOURCE -#endif - -#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H) -# define Z_HAVE_UNISTD_H -#endif -#ifndef Z_SOLO -# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) -# include /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ -# ifdef VMS -# include /* for off_t */ -# endif -# ifndef z_off_t -# define z_off_t off_t -# endif -# endif -#endif - -#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 -# define Z_LFS64 -#endif - -#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) -# define Z_LARGE64 -#endif - -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) -# define Z_WANT64 -#endif - -#if !defined(SEEK_SET) && !defined(Z_SOLO) -# define SEEK_SET 0 /* Seek from beginning of file. */ -# define SEEK_CUR 1 /* Seek from current position. */ -# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ -#endif - -#ifndef z_off_t -# define z_off_t long -#endif - -#if !defined(_WIN32) && defined(Z_LARGE64) -# define z_off64_t off64_t -#else -# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) -# define z_off64_t __int64 -# else -# define z_off64_t z_off_t -# endif -#endif - -/* MVS linker does not support external names larger than 8 bytes */ -#if defined(__MVS__) - #pragma map(deflateInit_,"DEIN") - #pragma map(deflateInit2_,"DEIN2") - #pragma map(deflateEnd,"DEEND") - #pragma map(deflateBound,"DEBND") - #pragma map(inflateInit_,"ININ") - #pragma map(inflateInit2_,"ININ2") - #pragma map(inflateEnd,"INEND") - #pragma map(inflateSync,"INSY") - #pragma map(inflateSetDictionary,"INSEDI") - #pragma map(compressBound,"CMBND") - #pragma map(inflate_table,"INTABL") - #pragma map(inflate_fast,"INFA") - #pragma map(inflate_copyright,"INCOPY") -#endif - -#endif /* ZCONF_H */ diff --git a/extension/SDL2_image-2.0.3/VisualC/external/include/zlib.h b/extension/SDL2_image-2.0.3/VisualC/external/include/zlib.h deleted file mode 100755 index f09cdaf..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/include/zlib.h +++ /dev/null @@ -1,1912 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.11, January 15th, 2017 - - Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - - - The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 - (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). -*/ - -#ifndef ZLIB_H -#define ZLIB_H - -#include "zconf.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define ZLIB_VERSION "1.2.11" -#define ZLIB_VERNUM 0x12b0 -#define ZLIB_VER_MAJOR 1 -#define ZLIB_VER_MINOR 2 -#define ZLIB_VER_REVISION 11 -#define ZLIB_VER_SUBREVISION 0 - -/* - The 'zlib' compression library provides in-memory compression and - decompression functions, including integrity checks of the uncompressed data. - This version of the library supports only one compression method (deflation) - but other algorithms will be added later and will have the same stream - interface. - - Compression can be done in a single step if the buffers are large enough, - or can be done by repeated calls of the compression function. In the latter - case, the application must provide more input and/or consume the output - (providing more output space) before each call. - - The compressed data format used by default by the in-memory functions is - the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped - around a deflate stream, which is itself documented in RFC 1951. - - The library also supports reading and writing files in gzip (.gz) format - with an interface similar to that of stdio using the functions that start - with "gz". The gzip format is different from the zlib format. gzip is a - gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. - - This library can optionally read and write gzip and raw deflate streams in - memory as well. - - The zlib format was designed to be compact and fast for use in memory - and on communications channels. The gzip format was designed for single- - file compression on file systems, has a larger header than zlib to maintain - directory information, and uses a different, slower check method than zlib. - - The library does not install any signal handler. The decoder checks - the consistency of the compressed data, so the library should never crash - even in the case of corrupted input. -*/ - -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); - -struct internal_state; - -typedef struct z_stream_s { - z_const Bytef *next_in; /* next input byte */ - uInt avail_in; /* number of bytes available at next_in */ - uLong total_in; /* total number of input bytes read so far */ - - Bytef *next_out; /* next output byte will go here */ - uInt avail_out; /* remaining free space at next_out */ - uLong total_out; /* total number of bytes output so far */ - - z_const char *msg; /* last error message, NULL if no error */ - struct internal_state FAR *state; /* not visible by applications */ - - alloc_func zalloc; /* used to allocate the internal state */ - free_func zfree; /* used to free the internal state */ - voidpf opaque; /* private data object passed to zalloc and zfree */ - - int data_type; /* best guess about the data type: binary or text - for deflate, or the decoding state for inflate */ - uLong adler; /* Adler-32 or CRC-32 value of the uncompressed data */ - uLong reserved; /* reserved for future use */ -} z_stream; - -typedef z_stream FAR *z_streamp; - -/* - gzip header information passed to and from zlib routines. See RFC 1952 - for more details on the meanings of these fields. -*/ -typedef struct gz_header_s { - int text; /* true if compressed data believed to be text */ - uLong time; /* modification time */ - int xflags; /* extra flags (not used when writing a gzip file) */ - int os; /* operating system */ - Bytef *extra; /* pointer to extra field or Z_NULL if none */ - uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ - uInt extra_max; /* space at extra (only when reading header) */ - Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ - uInt name_max; /* space at name (only when reading header) */ - Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ - uInt comm_max; /* space at comment (only when reading header) */ - int hcrc; /* true if there was or will be a header crc */ - int done; /* true when done reading gzip header (not used - when writing a gzip file) */ -} gz_header; - -typedef gz_header FAR *gz_headerp; - -/* - The application must update next_in and avail_in when avail_in has dropped - to zero. It must update next_out and avail_out when avail_out has dropped - to zero. The application must initialize zalloc, zfree and opaque before - calling the init function. All other fields are set by the compression - library and must not be updated by the application. - - The opaque value provided by the application will be passed as the first - parameter for calls of zalloc and zfree. This can be useful for custom - memory management. The compression library attaches no meaning to the - opaque value. - - zalloc must return Z_NULL if there is not enough memory for the object. - If zlib is used in a multi-threaded application, zalloc and zfree must be - thread safe. In that case, zlib is thread-safe. When zalloc and zfree are - Z_NULL on entry to the initialization function, they are set to internal - routines that use the standard library functions malloc() and free(). - - On 16-bit systems, the functions zalloc and zfree must be able to allocate - exactly 65536 bytes, but will not be required to allocate more than this if - the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers - returned by zalloc for objects of exactly 65536 bytes *must* have their - offset normalized to zero. The default allocation function provided by this - library ensures this (see zutil.c). To reduce memory requirements and avoid - any allocation of 64K objects, at the expense of compression ratio, compile - the library with -DMAX_WBITS=14 (see zconf.h). - - The fields total_in and total_out can be used for statistics or progress - reports. After compression, total_in holds the total size of the - uncompressed data and may be saved for use by the decompressor (particularly - if the decompressor wants to decompress everything in a single step). -*/ - - /* constants */ - -#define Z_NO_FLUSH 0 -#define Z_PARTIAL_FLUSH 1 -#define Z_SYNC_FLUSH 2 -#define Z_FULL_FLUSH 3 -#define Z_FINISH 4 -#define Z_BLOCK 5 -#define Z_TREES 6 -/* Allowed flush values; see deflate() and inflate() below for details */ - -#define Z_OK 0 -#define Z_STREAM_END 1 -#define Z_NEED_DICT 2 -#define Z_ERRNO (-1) -#define Z_STREAM_ERROR (-2) -#define Z_DATA_ERROR (-3) -#define Z_MEM_ERROR (-4) -#define Z_BUF_ERROR (-5) -#define Z_VERSION_ERROR (-6) -/* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ - -#define Z_NO_COMPRESSION 0 -#define Z_BEST_SPEED 1 -#define Z_BEST_COMPRESSION 9 -#define Z_DEFAULT_COMPRESSION (-1) -/* compression levels */ - -#define Z_FILTERED 1 -#define Z_HUFFMAN_ONLY 2 -#define Z_RLE 3 -#define Z_FIXED 4 -#define Z_DEFAULT_STRATEGY 0 -/* compression strategy; see deflateInit2() below for details */ - -#define Z_BINARY 0 -#define Z_TEXT 1 -#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ -#define Z_UNKNOWN 2 -/* Possible values of the data_type field for deflate() */ - -#define Z_DEFLATED 8 -/* The deflate compression method (the only one supported in this version) */ - -#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ - -#define zlib_version zlibVersion() -/* for compatibility with versions < 1.0.2 */ - - - /* basic functions */ - -ZEXTERN const char * ZEXPORT zlibVersion OF((void)); -/* The application can compare zlibVersion and ZLIB_VERSION for consistency. - If the first character differs, the library code actually used is not - compatible with the zlib.h header file used by the application. This check - is automatically made by deflateInit and inflateInit. - */ - -/* -ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); - - Initializes the internal stream state for compression. The fields - zalloc, zfree and opaque must be initialized before by the caller. If - zalloc and zfree are set to Z_NULL, deflateInit updates them to use default - allocation functions. - - The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: - 1 gives best speed, 9 gives best compression, 0 gives no compression at all - (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION - requests a default compromise between speed and compression (currently - equivalent to level 6). - - deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if level is not a valid compression level, or - Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible - with the version assumed by the caller (ZLIB_VERSION). msg is set to null - if there is no error message. deflateInit does not perform any compression: - this will be done by deflate(). -*/ - - -ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); -/* - deflate compresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. deflate performs one or both of the - following actions: - - - Compress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in and avail_in are updated and - processing will resume at this point for the next call of deflate(). - - - Generate more output starting at next_out and update next_out and avail_out - accordingly. This action is forced if the parameter flush is non zero. - Forcing flush frequently degrades the compression ratio, so this parameter - should be set only when necessary. Some output may be provided even if - flush is zero. - - Before the call of deflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating avail_in or avail_out accordingly; avail_out should - never be zero before the call. The application can consume the compressed - output when it wants, for example when the output buffer is full (avail_out - == 0), or after each call of deflate(). If deflate returns Z_OK and with - zero avail_out, it must be called again after making room in the output - buffer because there might be more output pending. See deflatePending(), - which can be used if desired to determine whether or not there is more ouput - in that case. - - Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to - decide how much data to accumulate before producing output, in order to - maximize compression. - - If the parameter flush is set to Z_SYNC_FLUSH, all pending output is - flushed to the output buffer and the output is aligned on a byte boundary, so - that the decompressor can get all input data available so far. (In - particular avail_in is zero after the call if enough output space has been - provided before the call.) Flushing may degrade compression for some - compression algorithms and so it should be used only when necessary. This - completes the current deflate block and follows it with an empty stored block - that is three bits plus filler bits to the next byte, followed by four bytes - (00 00 ff ff). - - If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the - output buffer, but the output is not aligned to a byte boundary. All of the - input data so far will be available to the decompressor, as for Z_SYNC_FLUSH. - This completes the current deflate block and follows it with an empty fixed - codes block that is 10 bits long. This assures that enough bytes are output - in order for the decompressor to finish the block before the empty fixed - codes block. - - If flush is set to Z_BLOCK, a deflate block is completed and emitted, as - for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to - seven bits of the current block are held to be written as the next byte after - the next deflate block is completed. In this case, the decompressor may not - be provided enough bits at this point in order to complete decompression of - the data provided so far to the compressor. It may need to wait for the next - block to be emitted. This is for advanced applications that need to control - the emission of deflate blocks. - - If flush is set to Z_FULL_FLUSH, all output is flushed as with - Z_SYNC_FLUSH, and the compression state is reset so that decompression can - restart from this point if previous compressed data has been damaged or if - random access is desired. Using Z_FULL_FLUSH too often can seriously degrade - compression. - - If deflate returns with avail_out == 0, this function must be called again - with the same value of the flush parameter and more output space (updated - avail_out), until the flush is complete (deflate returns with non-zero - avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that - avail_out is greater than six to avoid repeated flush markers due to - avail_out == 0 on return. - - If the parameter flush is set to Z_FINISH, pending input is processed, - pending output is flushed and deflate returns with Z_STREAM_END if there was - enough output space. If deflate returns with Z_OK or Z_BUF_ERROR, this - function must be called again with Z_FINISH and more output space (updated - avail_out) but no more input data, until it returns with Z_STREAM_END or an - error. After deflate has returned Z_STREAM_END, the only possible operations - on the stream are deflateReset or deflateEnd. - - Z_FINISH can be used in the first deflate call after deflateInit if all the - compression is to be done in a single step. In order to complete in one - call, avail_out must be at least the value returned by deflateBound (see - below). Then deflate is guaranteed to return Z_STREAM_END. If not enough - output space is provided, deflate will not return Z_STREAM_END, and it must - be called again as described above. - - deflate() sets strm->adler to the Adler-32 checksum of all input read - so far (that is, total_in bytes). If a gzip stream is being generated, then - strm->adler will be the CRC-32 checksum of the input read so far. (See - deflateInit2 below.) - - deflate() may update strm->data_type if it can make a good guess about - the input data type (Z_BINARY or Z_TEXT). If in doubt, the data is - considered binary. This field is only for information purposes and does not - affect the compression algorithm in any manner. - - deflate() returns Z_OK if some progress has been made (more input - processed or more output produced), Z_STREAM_END if all input has been - consumed and all output has been produced (only when flush is set to - Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example - if next_in or next_out was Z_NULL or the state was inadvertently written over - by the application), or Z_BUF_ERROR if no progress is possible (for example - avail_in or avail_out was zero). Note that Z_BUF_ERROR is not fatal, and - deflate() can be called again with more input and more output space to - continue compressing. -*/ - - -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the - stream state was inconsistent, Z_DATA_ERROR if the stream was freed - prematurely (some input or output was discarded). In the error case, msg - may be set but then points to a static string (which must not be - deallocated). -*/ - - -/* -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); - - Initializes the internal stream state for decompression. The fields - next_in, avail_in, zalloc, zfree and opaque must be initialized before by - the caller. In the current version of inflate, the provided input is not - read or consumed. The allocation of a sliding window will be deferred to - the first call of inflate (if the decompression does not complete on the - first call). If zalloc and zfree are set to Z_NULL, inflateInit updates - them to use default allocation functions. - - inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit does not perform any decompression. - Actual decompression will be done by inflate(). So next_in, and avail_in, - next_out, and avail_out are unused and unchanged. The current - implementation of inflateInit() does not process any header information -- - that is deferred until inflate() is called. -*/ - - -ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); -/* - inflate decompresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. inflate performs one or both of the - following actions: - - - Decompress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), then next_in and avail_in are updated - accordingly, and processing will resume at this point for the next call of - inflate(). - - - Generate more output starting at next_out and update next_out and avail_out - accordingly. inflate() provides as much output as possible, until there is - no more input data or no more space in the output buffer (see below about - the flush parameter). - - Before the call of inflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating the next_* and avail_* values accordingly. If the - caller of inflate() does not provide both available input and available - output space, it is possible that there will be no progress made. The - application can consume the uncompressed output when it wants, for example - when the output buffer is full (avail_out == 0), or after each call of - inflate(). If inflate returns Z_OK and with zero avail_out, it must be - called again after making room in the output buffer because there might be - more output pending. - - The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH, - Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much - output as possible to the output buffer. Z_BLOCK requests that inflate() - stop if and when it gets to the next deflate block boundary. When decoding - the zlib or gzip format, this will cause inflate() to return immediately - after the header and before the first block. When doing a raw inflate, - inflate() will go ahead and process the first block, and will return when it - gets to the end of that block, or when it runs out of data. - - The Z_BLOCK option assists in appending to or combining deflate streams. - To assist in this, on return inflate() always sets strm->data_type to the - number of unused bits in the last byte taken from strm->next_in, plus 64 if - inflate() is currently decoding the last block in the deflate stream, plus - 128 if inflate() returned immediately after decoding an end-of-block code or - decoding the complete header up to just before the first byte of the deflate - stream. The end-of-block will not be indicated until all of the uncompressed - data from that block has been written to strm->next_out. The number of - unused bits may in general be greater than seven, except when bit 7 of - data_type is set, in which case the number of unused bits will be less than - eight. data_type is set as noted here every time inflate() returns for all - flush options, and so can be used to determine the amount of currently - consumed input in bits. - - The Z_TREES option behaves as Z_BLOCK does, but it also returns when the - end of each deflate block header is reached, before any actual data in that - block is decoded. This allows the caller to determine the length of the - deflate block header for later use in random access within a deflate block. - 256 is added to the value of strm->data_type when inflate() returns - immediately after reaching the end of the deflate block header. - - inflate() should normally be called until it returns Z_STREAM_END or an - error. However if all decompression is to be performed in a single step (a - single call of inflate), the parameter flush should be set to Z_FINISH. In - this case all pending input is processed and all pending output is flushed; - avail_out must be large enough to hold all of the uncompressed data for the - operation to complete. (The size of the uncompressed data may have been - saved by the compressor for this purpose.) The use of Z_FINISH is not - required to perform an inflation in one step. However it may be used to - inform inflate that a faster approach can be used for the single inflate() - call. Z_FINISH also informs inflate to not maintain a sliding window if the - stream completes, which reduces inflate's memory footprint. If the stream - does not complete, either because not all of the stream is provided or not - enough output space is provided, then a sliding window will be allocated and - inflate() can be called again to continue the operation as if Z_NO_FLUSH had - been used. - - In this implementation, inflate() always flushes as much output as - possible to the output buffer, and always uses the faster approach on the - first call. So the effects of the flush parameter in this implementation are - on the return value of inflate() as noted below, when inflate() returns early - when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of - memory for a sliding window when Z_FINISH is used. - - If a preset dictionary is needed after this call (see inflateSetDictionary - below), inflate sets strm->adler to the Adler-32 checksum of the dictionary - chosen by the compressor and returns Z_NEED_DICT; otherwise it sets - strm->adler to the Adler-32 checksum of all output produced so far (that is, - total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described - below. At the end of the stream, inflate() checks that its computed Adler-32 - checksum is equal to that saved by the compressor and returns Z_STREAM_END - only if the checksum is correct. - - inflate() can decompress and check either zlib-wrapped or gzip-wrapped - deflate data. The header type is detected automatically, if requested when - initializing with inflateInit2(). Any information contained in the gzip - header is not retained unless inflateGetHeader() is used. When processing - gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output - produced so far. The CRC-32 is checked against the gzip trailer, as is the - uncompressed length, modulo 2^32. - - inflate() returns Z_OK if some progress has been made (more input processed - or more output produced), Z_STREAM_END if the end of the compressed data has - been reached and all uncompressed output has been produced, Z_NEED_DICT if a - preset dictionary is needed at this point, Z_DATA_ERROR if the input data was - corrupted (input stream not conforming to the zlib format or incorrect check - value, in which case strm->msg points to a string with a more specific - error), Z_STREAM_ERROR if the stream structure was inconsistent (for example - next_in or next_out was Z_NULL, or the state was inadvertently written over - by the application), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR - if no progress was possible or if there was not enough room in the output - buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and - inflate() can be called again with more input and more output space to - continue decompressing. If Z_DATA_ERROR is returned, the application may - then call inflateSync() to look for a good compression block if a partial - recovery of the data is to be attempted. -*/ - - -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - inflateEnd returns Z_OK if success, or Z_STREAM_ERROR if the stream state - was inconsistent. -*/ - - - /* Advanced functions */ - -/* - The following functions are needed only in some special applications. -*/ - -/* -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, - int level, - int method, - int windowBits, - int memLevel, - int strategy)); - - This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by the - caller. - - The method parameter is the compression method. It must be Z_DEFLATED in - this version of the library. - - The windowBits parameter is the base two logarithm of the window size - (the size of the history buffer). It should be in the range 8..15 for this - version of the library. Larger values of this parameter result in better - compression at the expense of memory usage. The default value is 15 if - deflateInit is used instead. - - For the current implementation of deflate(), a windowBits value of 8 (a - window size of 256 bytes) is not supported. As a result, a request for 8 - will result in 9 (a 512-byte window). In that case, providing 8 to - inflateInit2() will result in an error when the zlib header with 9 is - checked against the initialization of inflate(). The remedy is to not use 8 - with deflateInit2() with this initialization, or at least in that case use 9 - with inflateInit2(). - - windowBits can also be -8..-15 for raw deflate. In this case, -windowBits - determines the window size. deflate() will then generate raw deflate data - with no zlib header or trailer, and will not compute a check value. - - windowBits can also be greater than 15 for optional gzip encoding. Add - 16 to windowBits to write a simple gzip header and trailer around the - compressed data instead of a zlib wrapper. The gzip header will have no - file name, no extra data, no comment, no modification time (set to zero), no - header crc, and the operating system will be set to the appropriate value, - if the operating system was determined at compile time. If a gzip stream is - being written, strm->adler is a CRC-32 instead of an Adler-32. - - For raw deflate or gzip encoding, a request for a 256-byte window is - rejected as invalid, since only the zlib header provides a means of - transmitting the window size to the decompressor. - - The memLevel parameter specifies how much memory should be allocated - for the internal compression state. memLevel=1 uses minimum memory but is - slow and reduces compression ratio; memLevel=9 uses maximum memory for - optimal speed. The default value is 8. See zconf.h for total memory usage - as a function of windowBits and memLevel. - - The strategy parameter is used to tune the compression algorithm. Use the - value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a - filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no - string match), or Z_RLE to limit match distances to one (run-length - encoding). Filtered data consists mostly of small values with a somewhat - random distribution. In this case, the compression algorithm is tuned to - compress them better. The effect of Z_FILTERED is to force more Huffman - coding and less string matching; it is somewhat intermediate between - Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as - fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The - strategy parameter only affects the compression ratio but not the - correctness of the compressed output even if it is not set appropriately. - Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler - decoder for special applications. - - deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid - method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is - incompatible with the version assumed by the caller (ZLIB_VERSION). msg is - set to null if there is no error message. deflateInit2 does not perform any - compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the compression dictionary from the given byte sequence - without producing any compressed output. When using the zlib format, this - function must be called immediately after deflateInit, deflateInit2 or - deflateReset, and before any call of deflate. When doing raw deflate, this - function must be called either before any call of deflate, or immediately - after the completion of a deflate block, i.e. after all input has been - consumed and all output has been delivered when using any of the flush - options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH. The - compressor and decompressor must use exactly the same dictionary (see - inflateSetDictionary). - - The dictionary should consist of strings (byte sequences) that are likely - to be encountered later in the data to be compressed, with the most commonly - used strings preferably put towards the end of the dictionary. Using a - dictionary is most useful when the data to be compressed is short and can be - predicted with good accuracy; the data can then be compressed better than - with the default empty dictionary. - - Depending on the size of the compression data structures selected by - deflateInit or deflateInit2, a part of the dictionary may in effect be - discarded, for example if the dictionary is larger than the window size - provided in deflateInit or deflateInit2. Thus the strings most likely to be - useful should be put at the end of the dictionary, not at the front. In - addition, the current implementation of deflate will use at most the window - size minus 262 bytes of the provided dictionary. - - Upon return of this function, strm->adler is set to the Adler-32 value - of the dictionary; the decompressor may later use this value to determine - which dictionary has been used by the compressor. (The Adler-32 value - applies to the whole dictionary even if only a subset of the dictionary is - actually used by the compressor.) If a raw deflate was requested, then the - Adler-32 value is not computed and strm->adler is not set. - - deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent (for example if deflate has already been called for this stream - or if not at a block boundary for raw deflate). deflateSetDictionary does - not perform any compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); -/* - Returns the sliding dictionary being maintained by deflate. dictLength is - set to the number of bytes in the dictionary, and that many bytes are copied - to dictionary. dictionary must have enough space, where 32768 bytes is - always enough. If deflateGetDictionary() is called with dictionary equal to - Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. - - deflateGetDictionary() may return a length less than the window size, even - when more than the window size in input has been provided. It may return up - to 258 bytes less in that case, due to how zlib's implementation of deflate - manages the sliding window and lookahead for matches, where matches can be - up to 258 bytes long. If the application needs the last window-size bytes of - input, then that would need to be saved by the application outside of zlib. - - deflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the - stream state is inconsistent. -*/ - -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when several compression strategies will be - tried, for example when there are several ways of pre-processing the input - data with a filter. The streams that will be discarded should then be freed - by calling deflateEnd. Note that deflateCopy duplicates the internal - compression state which can be quite large, so this strategy is slow and can - consume lots of memory. - - deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); -/* - This function is equivalent to deflateEnd followed by deflateInit, but - does not free and reallocate the internal compression state. The stream - will leave the compression level and any other attributes that may have been - set unchanged. - - deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, - int level, - int strategy)); -/* - Dynamically update the compression level and compression strategy. The - interpretation of level and strategy is as in deflateInit2(). This can be - used to switch between compression and straight copy of the input data, or - to switch to a different kind of input data requiring a different strategy. - If the compression approach (which is a function of the level) or the - strategy is changed, and if any input has been consumed in a previous - deflate() call, then the input available so far is compressed with the old - level and strategy using deflate(strm, Z_BLOCK). There are three approaches - for the compression levels 0, 1..3, and 4..9 respectively. The new level - and strategy will take effect at the next call of deflate(). - - If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does - not have enough output space to complete, then the parameter change will not - take effect. In this case, deflateParams() can be called again with the - same parameters and more output space to try again. - - In order to assure a change in the parameters on the first try, the - deflate stream should be flushed using deflate() with Z_BLOCK or other flush - request until strm.avail_out is not zero, before calling deflateParams(). - Then no more input data should be provided before the deflateParams() call. - If this is done, the old level and strategy will be applied to the data - compressed before deflateParams(), and the new level and strategy will be - applied to the the data compressed after deflateParams(). - - deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream - state was inconsistent or if a parameter was invalid, or Z_BUF_ERROR if - there was not enough output space to complete the compression of the - available input data before a change in the strategy or approach. Note that - in the case of a Z_BUF_ERROR, the parameters are not changed. A return - value of Z_BUF_ERROR is not fatal, in which case deflateParams() can be - retried with more output space. -*/ - -ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, - int good_length, - int max_lazy, - int nice_length, - int max_chain)); -/* - Fine tune deflate's internal compression parameters. This should only be - used by someone who understands the algorithm used by zlib's deflate for - searching for the best matching string, and even then only by the most - fanatic optimizer trying to squeeze out the last compressed bit for their - specific input data. Read the deflate.c source code for the meaning of the - max_lazy, good_length, nice_length, and max_chain parameters. - - deflateTune() can be called after deflateInit() or deflateInit2(), and - returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. - */ - -ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, - uLong sourceLen)); -/* - deflateBound() returns an upper bound on the compressed size after - deflation of sourceLen bytes. It must be called after deflateInit() or - deflateInit2(), and after deflateSetHeader(), if used. This would be used - to allocate an output buffer for deflation in a single pass, and so would be - called before deflate(). If that first deflate() call is provided the - sourceLen input bytes, an output buffer allocated to the size returned by - deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed - to return Z_STREAM_END. Note that it is possible for the compressed size to - be larger than the value returned by deflateBound() if flush options other - than Z_FINISH or Z_NO_FLUSH are used. -*/ - -ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, - unsigned *pending, - int *bits)); -/* - deflatePending() returns the number of bytes and bits of output that have - been generated, but not yet provided in the available output. The bytes not - provided would be due to the available output space having being consumed. - The number of bits of output not provided are between 0 and 7, where they - await more bits to join them in order to fill out a full byte. If pending - or bits are Z_NULL, then those values are not set. - - deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. - */ - -ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - deflatePrime() inserts bits in the deflate output stream. The intent - is that this function is used to start off the deflate output with the bits - leftover from a previous deflate stream when appending to it. As such, this - function can only be used for raw deflate, and must be used before the first - deflate() call after a deflateInit2() or deflateReset(). bits must be less - than or equal to 16, and that many of the least significant bits of value - will be inserted in the output. - - deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough - room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, - gz_headerp head)); -/* - deflateSetHeader() provides gzip header information for when a gzip - stream is requested by deflateInit2(). deflateSetHeader() may be called - after deflateInit2() or deflateReset() and before the first call of - deflate(). The text, time, os, extra field, name, and comment information - in the provided gz_header structure are written to the gzip header (xflag is - ignored -- the extra flags are set according to the compression level). The - caller must assure that, if not Z_NULL, name and comment are terminated with - a zero byte, and that if extra is not Z_NULL, that extra_len bytes are - available there. If hcrc is true, a gzip header crc is included. Note that - the current versions of the command-line version of gzip (up through version - 1.3.x) do not support header crc's, and will report that it is a "multi-part - gzip file" and give up. - - If deflateSetHeader is not used, the default gzip header has text false, - the time set to zero, and os set to 255, with no extra, name, or comment - fields. The gzip header is returned to the default state by deflateReset(). - - deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); - - This is another version of inflateInit with an extra parameter. The - fields next_in, avail_in, zalloc, zfree and opaque must be initialized - before by the caller. - - The windowBits parameter is the base two logarithm of the maximum window - size (the size of the history buffer). It should be in the range 8..15 for - this version of the library. The default value is 15 if inflateInit is used - instead. windowBits must be greater than or equal to the windowBits value - provided to deflateInit2() while compressing, or it must be equal to 15 if - deflateInit2() was not used. If a compressed stream with a larger window - size is given as input, inflate() will return with the error code - Z_DATA_ERROR instead of trying to allocate a larger window. - - windowBits can also be zero to request that inflate use the window size in - the zlib header of the compressed stream. - - windowBits can also be -8..-15 for raw inflate. In this case, -windowBits - determines the window size. inflate() will then process raw deflate data, - not looking for a zlib or gzip header, not generating a check value, and not - looking for any check values for comparison at the end of the stream. This - is for use with other formats that use the deflate compressed data format - such as zip. Those formats provide their own check values. If a custom - format is developed using the raw deflate format for compressed data, it is - recommended that a check value such as an Adler-32 or a CRC-32 be applied to - the uncompressed data as is done in the zlib, gzip, and zip formats. For - most applications, the zlib format should be used as is. Note that comments - above on the use in deflateInit2() applies to the magnitude of windowBits. - - windowBits can also be greater than 15 for optional gzip decoding. Add - 32 to windowBits to enable zlib and gzip decoding with automatic header - detection, or add 16 to decode only the gzip format (the zlib format will - return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a - CRC-32 instead of an Adler-32. Unlike the gunzip utility and gzread() (see - below), inflate() will not automatically decode concatenated gzip streams. - inflate() will return Z_STREAM_END at the end of the gzip stream. The state - would need to be reset to continue decoding a subsequent gzip stream. - - inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit2 does not perform any decompression - apart from possibly reading the zlib header if present: actual decompression - will be done by inflate(). (So next_in and avail_in may be modified, but - next_out and avail_out are unused and unchanged.) The current implementation - of inflateInit2() does not process any header information -- that is - deferred until inflate() is called. -*/ - -ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the decompression dictionary from the given uncompressed byte - sequence. This function must be called immediately after a call of inflate, - if that call returned Z_NEED_DICT. The dictionary chosen by the compressor - can be determined from the Adler-32 value returned by that call of inflate. - The compressor and decompressor must use exactly the same dictionary (see - deflateSetDictionary). For raw inflate, this function can be called at any - time to set the dictionary. If the provided dictionary is smaller than the - window and there is already data in the window, then the provided dictionary - will amend what's there. The application must insure that the dictionary - that was used for compression is provided. - - inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the - expected one (incorrect Adler-32 value). inflateSetDictionary does not - perform any decompression: this will be done by subsequent calls of - inflate(). -*/ - -ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); -/* - Returns the sliding dictionary being maintained by inflate. dictLength is - set to the number of bytes in the dictionary, and that many bytes are copied - to dictionary. dictionary must have enough space, where 32768 bytes is - always enough. If inflateGetDictionary() is called with dictionary equal to - Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. - - inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the - stream state is inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); -/* - Skips invalid compressed data until a possible full flush point (see above - for the description of deflate with Z_FULL_FLUSH) can be found, or until all - available input is skipped. No output is provided. - - inflateSync searches for a 00 00 FF FF pattern in the compressed data. - All full flush points have this pattern, but not all occurrences of this - pattern are full flush points. - - inflateSync returns Z_OK if a possible full flush point has been found, - Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point - has been found, or Z_STREAM_ERROR if the stream structure was inconsistent. - In the success case, the application may save the current current value of - total_in which indicates where valid compressed data was found. In the - error case, the application may repeatedly call inflateSync, providing more - input each time, until success or end of the input data. -*/ - -ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when randomly accessing a large stream. The - first pass through the stream can periodically record the inflate state, - allowing restarting inflate at those points when randomly accessing the - stream. - - inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); -/* - This function is equivalent to inflateEnd followed by inflateInit, - but does not free and reallocate the internal decompression state. The - stream will keep attributes that may have been set by inflateInit2. - - inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, - int windowBits)); -/* - This function is the same as inflateReset, but it also permits changing - the wrap and window size requests. The windowBits parameter is interpreted - the same as it is for inflateInit2. If the window size is changed, then the - memory allocated for the window is freed, and the window will be reallocated - by inflate() if needed. - - inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL), or if - the windowBits parameter is invalid. -*/ - -ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - This function inserts bits in the inflate input stream. The intent is - that this function is used to start inflating at a bit position in the - middle of a byte. The provided bits will be used before any bytes are used - from next_in. This function should only be used with raw inflate, and - should be used before the first inflate() call after inflateInit2() or - inflateReset(). bits must be less than or equal to 16, and that many of the - least significant bits of value will be inserted in the input. - - If bits is negative, then the input stream bit buffer is emptied. Then - inflatePrime() can be called again to put bits in the buffer. This is used - to clear out bits leftover after feeding inflate a block description prior - to feeding inflate codes. - - inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); -/* - This function returns two values, one in the lower 16 bits of the return - value, and the other in the remaining upper bits, obtained by shifting the - return value down 16 bits. If the upper value is -1 and the lower value is - zero, then inflate() is currently decoding information outside of a block. - If the upper value is -1 and the lower value is non-zero, then inflate is in - the middle of a stored block, with the lower value equaling the number of - bytes from the input remaining to copy. If the upper value is not -1, then - it is the number of bits back from the current bit position in the input of - the code (literal or length/distance pair) currently being processed. In - that case the lower value is the number of bytes already emitted for that - code. - - A code is being processed if inflate is waiting for more input to complete - decoding of the code, or if it has completed decoding but is waiting for - more output space to write the literal or match data. - - inflateMark() is used to mark locations in the input data for random - access, which may be at bit positions, and to note those cases where the - output of a code may span boundaries of random access blocks. The current - location in the input stream can be determined from avail_in and data_type - as noted in the description for the Z_BLOCK flush parameter for inflate. - - inflateMark returns the value noted above, or -65536 if the provided - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, - gz_headerp head)); -/* - inflateGetHeader() requests that gzip header information be stored in the - provided gz_header structure. inflateGetHeader() may be called after - inflateInit2() or inflateReset(), and before the first call of inflate(). - As inflate() processes the gzip stream, head->done is zero until the header - is completed, at which time head->done is set to one. If a zlib stream is - being decoded, then head->done is set to -1 to indicate that there will be - no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be - used to force inflate() to return immediately after header processing is - complete and before any actual data is decompressed. - - The text, time, xflags, and os fields are filled in with the gzip header - contents. hcrc is set to true if there is a header CRC. (The header CRC - was valid if done is set to one.) If extra is not Z_NULL, then extra_max - contains the maximum number of bytes to write to extra. Once done is true, - extra_len contains the actual extra field length, and extra contains the - extra field, or that field truncated if extra_max is less than extra_len. - If name is not Z_NULL, then up to name_max characters are written there, - terminated with a zero unless the length is greater than name_max. If - comment is not Z_NULL, then up to comm_max characters are written there, - terminated with a zero unless the length is greater than comm_max. When any - of extra, name, or comment are not Z_NULL and the respective field is not - present in the header, then that field is set to Z_NULL to signal its - absence. This allows the use of deflateSetHeader() with the returned - structure to duplicate the header. However if those fields are set to - allocated memory, then the application will need to save those pointers - elsewhere so that they can be eventually freed. - - If inflateGetHeader is not used, then the header information is simply - discarded. The header is always checked for validity, including the header - CRC if present. inflateReset() will reset the process to discard the header - information. The application would need to call inflateGetHeader() again to - retrieve the header from the next gzip stream. - - inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, - unsigned char FAR *window)); - - Initialize the internal stream state for decompression using inflateBack() - calls. The fields zalloc, zfree and opaque in strm must be initialized - before the call. If zalloc and zfree are Z_NULL, then the default library- - derived memory allocation routines are used. windowBits is the base two - logarithm of the window size, in the range 8..15. window is a caller - supplied buffer of that size. Except for special applications where it is - assured that deflate was used with small window sizes, windowBits must be 15 - and a 32K byte window must be supplied to be able to decompress general - deflate streams. - - See inflateBack() for the usage of these routines. - - inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of - the parameters are invalid, Z_MEM_ERROR if the internal state could not be - allocated, or Z_VERSION_ERROR if the version of the library does not match - the version of the header file. -*/ - -typedef unsigned (*in_func) OF((void FAR *, - z_const unsigned char FAR * FAR *)); -typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); - -ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, - in_func in, void FAR *in_desc, - out_func out, void FAR *out_desc)); -/* - inflateBack() does a raw inflate with a single call using a call-back - interface for input and output. This is potentially more efficient than - inflate() for file i/o applications, in that it avoids copying between the - output and the sliding window by simply making the window itself the output - buffer. inflate() can be faster on modern CPUs when used with large - buffers. inflateBack() trusts the application to not change the output - buffer passed by the output function, at least until inflateBack() returns. - - inflateBackInit() must be called first to allocate the internal state - and to initialize the state with the user-provided window buffer. - inflateBack() may then be used multiple times to inflate a complete, raw - deflate stream with each call. inflateBackEnd() is then called to free the - allocated state. - - A raw deflate stream is one with no zlib or gzip header or trailer. - This routine would normally be used in a utility that reads zip or gzip - files and writes out uncompressed files. The utility would decode the - header and process the trailer on its own, hence this routine expects only - the raw deflate stream to decompress. This is different from the default - behavior of inflate(), which expects a zlib header and trailer around the - deflate stream. - - inflateBack() uses two subroutines supplied by the caller that are then - called by inflateBack() for input and output. inflateBack() calls those - routines until it reads a complete deflate stream and writes out all of the - uncompressed data, or until it encounters an error. The function's - parameters and return types are defined above in the in_func and out_func - typedefs. inflateBack() will call in(in_desc, &buf) which should return the - number of bytes of provided input, and a pointer to that input in buf. If - there is no input available, in() must return zero -- buf is ignored in that - case -- and inflateBack() will return a buffer error. inflateBack() will - call out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. - out() should return zero on success, or non-zero on failure. If out() - returns non-zero, inflateBack() will return with an error. Neither in() nor - out() are permitted to change the contents of the window provided to - inflateBackInit(), which is also the buffer that out() uses to write from. - The length written by out() will be at most the window size. Any non-zero - amount of input may be provided by in(). - - For convenience, inflateBack() can be provided input on the first call by - setting strm->next_in and strm->avail_in. If that input is exhausted, then - in() will be called. Therefore strm->next_in must be initialized before - calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called - immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in - must also be initialized, and then if strm->avail_in is not zero, input will - initially be taken from strm->next_in[0 .. strm->avail_in - 1]. - - The in_desc and out_desc parameters of inflateBack() is passed as the - first parameter of in() and out() respectively when they are called. These - descriptors can be optionally used to pass any information that the caller- - supplied in() and out() functions need to do their job. - - On return, inflateBack() will set strm->next_in and strm->avail_in to - pass back any unused input that was provided by the last in() call. The - return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR - if in() or out() returned an error, Z_DATA_ERROR if there was a format error - in the deflate stream (in which case strm->msg is set to indicate the nature - of the error), or Z_STREAM_ERROR if the stream was not properly initialized. - In the case of Z_BUF_ERROR, an input or output error can be distinguished - using strm->next_in which will be Z_NULL only if in() returned an error. If - strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning - non-zero. (in() will always be called before out(), so strm->next_in is - assured to be defined if out() returns non-zero.) Note that inflateBack() - cannot return Z_OK. -*/ - -ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); -/* - All memory allocated by inflateBackInit() is freed. - - inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream - state was inconsistent. -*/ - -ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); -/* Return flags indicating compile-time options. - - Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: - 1.0: size of uInt - 3.2: size of uLong - 5.4: size of voidpf (pointer) - 7.6: size of z_off_t - - Compiler, assembler, and debug options: - 8: ZLIB_DEBUG - 9: ASMV or ASMINF -- use ASM code - 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention - 11: 0 (reserved) - - One-time table building (smaller code, but not thread-safe if true): - 12: BUILDFIXED -- build static block decoding tables when needed - 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed - 14,15: 0 (reserved) - - Library content (indicates missing functionality): - 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking - deflate code when not needed) - 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect - and decode gzip streams (to avoid linking crc code) - 18-19: 0 (reserved) - - Operation variations (changes in library functionality): - 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate - 21: FASTEST -- deflate algorithm with only one, lowest compression level - 22,23: 0 (reserved) - - The sprintf variant used by gzprintf (zero is best): - 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format - 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! - 26: 0 = returns value, 1 = void -- 1 means inferred string length returned - - Remainder: - 27-31: 0 (reserved) - */ - -#ifndef Z_SOLO - - /* utility functions */ - -/* - The following utility functions are implemented on top of the basic - stream-oriented functions. To simplify the interface, some default options - are assumed (compression level and memory usage, standard memory allocation - functions). The source code of these utility functions can be modified if - you need special options. -*/ - -ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Compresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed data. compress() is equivalent to compress2() with a level - parameter of Z_DEFAULT_COMPRESSION. - - compress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer. -*/ - -ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); -/* - Compresses the source buffer into the destination buffer. The level - parameter has the same meaning as in deflateInit. sourceLen is the byte - length of the source buffer. Upon entry, destLen is the total size of the - destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed data. - - compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, - Z_STREAM_ERROR if the level parameter is invalid. -*/ - -ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); -/* - compressBound() returns an upper bound on the compressed size after - compress() or compress2() on sourceLen bytes. It would be used before a - compress() or compress2() call to allocate the destination buffer. -*/ - -ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be large enough to hold the entire - uncompressed data. (The size of the uncompressed data must have been saved - previously by the compressor and transmitted to the decompressor by some - mechanism outside the scope of this compression library.) Upon exit, destLen - is the actual size of the uncompressed data. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. In - the case where there is not enough room, uncompress() will fill the output - buffer with the uncompressed data up to that point. -*/ - -ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong *sourceLen)); -/* - Same as uncompress, except that sourceLen is a pointer, where the - length of the source is *sourceLen. On return, *sourceLen is the number of - source bytes consumed. -*/ - - /* gzip file access functions */ - -/* - This library supports reading and writing files in gzip (.gz) format with - an interface similar to that of stdio, using the functions that start with - "gz". The gzip format is different from the zlib format. gzip is a gzip - wrapper, documented in RFC 1952, wrapped around a deflate stream. -*/ - -typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ - -/* -ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); - - Opens a gzip (.gz) file for reading or writing. The mode parameter is as - in fopen ("rb" or "wb") but can also include a compression level ("wb9") or - a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only - compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' - for fixed code compression as in "wb9F". (See the description of - deflateInit2 for more information about the strategy parameter.) 'T' will - request transparent writing or appending with no compression and not using - the gzip format. - - "a" can be used instead of "w" to request that the gzip stream that will - be written be appended to the file. "+" will result in an error, since - reading and writing to the same gzip file is not supported. The addition of - "x" when writing will create the file exclusively, which fails if the file - already exists. On systems that support it, the addition of "e" when - reading or writing will set the flag to close the file on an execve() call. - - These functions, as well as gzip, will read and decode a sequence of gzip - streams in a file. The append function of gzopen() can be used to create - such a file. (Also see gzflush() for another way to do this.) When - appending, gzopen does not test whether the file begins with a gzip stream, - nor does it look for the end of the gzip streams to begin appending. gzopen - will simply append a gzip stream to the existing file. - - gzopen can be used to read a file which is not in gzip format; in this - case gzread will directly read from the file without decompression. When - reading, this will be detected automatically by looking for the magic two- - byte gzip header. - - gzopen returns NULL if the file could not be opened, if there was - insufficient memory to allocate the gzFile state, or if an invalid mode was - specified (an 'r', 'w', or 'a' was not provided, or '+' was provided). - errno can be checked to determine if the reason gzopen failed was that the - file could not be opened. -*/ - -ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); -/* - gzdopen associates a gzFile with the file descriptor fd. File descriptors - are obtained from calls like open, dup, creat, pipe or fileno (if the file - has been previously opened with fopen). The mode parameter is as in gzopen. - - The next call of gzclose on the returned gzFile will also close the file - descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor - fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd, - mode);. The duplicated descriptor should be saved to avoid a leak, since - gzdopen does not close fd if it fails. If you are using fileno() to get the - file descriptor from a FILE *, then you will have to use dup() to avoid - double-close()ing the file descriptor. Both gzclose() and fclose() will - close the associated file descriptor, so they need to have different file - descriptors. - - gzdopen returns NULL if there was insufficient memory to allocate the - gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not - provided, or '+' was provided), or if fd is -1. The file descriptor is not - used until the next gz* read, write, seek, or close operation, so gzdopen - will not detect if fd is invalid (unless fd is -1). -*/ - -ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); -/* - Set the internal buffer size used by this library's functions. The - default buffer size is 8192 bytes. This function must be called after - gzopen() or gzdopen(), and before any other calls that read or write the - file. The buffer memory allocation is always deferred to the first read or - write. Three times that size in buffer space is allocated. A larger buffer - size of, for example, 64K or 128K bytes will noticeably increase the speed - of decompression (reading). - - The new buffer size also affects the maximum length for gzprintf(). - - gzbuffer() returns 0 on success, or -1 on failure, such as being called - too late. -*/ - -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); -/* - Dynamically update the compression level or strategy. See the description - of deflateInit2 for the meaning of these parameters. Previously provided - data is flushed before the parameter change. - - gzsetparams returns Z_OK if success, Z_STREAM_ERROR if the file was not - opened for writing, Z_ERRNO if there is an error writing the flushed data, - or Z_MEM_ERROR if there is a memory allocation error. -*/ - -ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); -/* - Reads the given number of uncompressed bytes from the compressed file. If - the input file is not in gzip format, gzread copies the given number of - bytes into the buffer directly from the file. - - After reaching the end of a gzip stream in the input, gzread will continue - to read, looking for another gzip stream. Any number of gzip streams may be - concatenated in the input file, and will all be decompressed by gzread(). - If something other than a gzip stream is encountered after a gzip stream, - that remaining trailing garbage is ignored (and no error is returned). - - gzread can be used to read a gzip file that is being concurrently written. - Upon reaching the end of the input, gzread will return with the available - data. If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then - gzclearerr can be used to clear the end of file indicator in order to permit - gzread to be tried again. Z_OK indicates that a gzip stream was completed - on the last gzread. Z_BUF_ERROR indicates that the input file ended in the - middle of a gzip stream. Note that gzread does not return -1 in the event - of an incomplete gzip stream. This error is deferred until gzclose(), which - will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip - stream. Alternatively, gzerror can be used before gzclose to detect this - case. - - gzread returns the number of uncompressed bytes actually read, less than - len for end of file, or -1 for error. If len is too large to fit in an int, - then nothing is read, -1 is returned, and the error state is set to - Z_STREAM_ERROR. -*/ - -ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, - gzFile file)); -/* - Read up to nitems items of size size from file to buf, otherwise operating - as gzread() does. This duplicates the interface of stdio's fread(), with - size_t request and return types. If the library defines size_t, then - z_size_t is identical to size_t. If not, then z_size_t is an unsigned - integer type that can contain a pointer. - - gzfread() returns the number of full items read of size size, or zero if - the end of the file was reached and a full item could not be read, or if - there was an error. gzerror() must be consulted if zero is returned in - order to determine if there was an error. If the multiplication of size and - nitems overflows, i.e. the product does not fit in a z_size_t, then nothing - is read, zero is returned, and the error state is set to Z_STREAM_ERROR. - - In the event that the end of file is reached and only a partial item is - available at the end, i.e. the remaining uncompressed data length is not a - multiple of size, then the final partial item is nevetheless read into buf - and the end-of-file flag is set. The length of the partial item read is not - provided, but could be inferred from the result of gztell(). This behavior - is the same as the behavior of fread() implementations in common libraries, - but it prevents the direct use of gzfread() to read a concurrently written - file, reseting and retrying on end-of-file, when size is not 1. -*/ - -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, - voidpc buf, unsigned len)); -/* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes written or 0 in case of - error. -*/ - -ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, - z_size_t nitems, gzFile file)); -/* - gzfwrite() writes nitems items of size size from buf to file, duplicating - the interface of stdio's fwrite(), with size_t request and return types. If - the library defines size_t, then z_size_t is identical to size_t. If not, - then z_size_t is an unsigned integer type that can contain a pointer. - - gzfwrite() returns the number of full items written of size size, or zero - if there was an error. If the multiplication of size and nitems overflows, - i.e. the product does not fit in a z_size_t, then nothing is written, zero - is returned, and the error state is set to Z_STREAM_ERROR. -*/ - -ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); -/* - Converts, formats, and writes the arguments to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of - uncompressed bytes actually written, or a negative zlib error code in case - of error. The number of uncompressed bytes written is limited to 8191, or - one less than the buffer size given to gzbuffer(). The caller should assure - that this limit is not exceeded. If it is exceeded, then gzprintf() will - return an error (0) with nothing written. In this case, there may also be a - buffer overflow with unpredictable consequences, which is possible only if - zlib was compiled with the insecure functions sprintf() or vsprintf() - because the secure snprintf() or vsnprintf() functions were not available. - This can be determined using zlibCompileFlags(). -*/ - -ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); -/* - Writes the given null-terminated string to the compressed file, excluding - the terminating null character. - - gzputs returns the number of characters written, or -1 in case of error. -*/ - -ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); -/* - Reads bytes from the compressed file until len-1 characters are read, or a - newline character is read and transferred to buf, or an end-of-file - condition is encountered. If any characters are read or if len == 1, the - string is terminated with a null character. If no characters are read due - to an end-of-file or len < 1, then the buffer is left untouched. - - gzgets returns buf which is a null-terminated string, or it returns NULL - for end-of-file or in case of error. If there was an error, the contents at - buf are indeterminate. -*/ - -ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); -/* - Writes c, converted to an unsigned char, into the compressed file. gzputc - returns the value that was written, or -1 in case of error. -*/ - -ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); -/* - Reads one byte from the compressed file. gzgetc returns this byte or -1 - in case of end of file or error. This is implemented as a macro for speed. - As such, it does not do all of the checking the other functions do. I.e. - it does not check to see if file is NULL, nor whether the structure file - points to has been clobbered or not. -*/ - -ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); -/* - Push one character back onto the stream to be read as the first character - on the next read. At least one character of push-back is allowed. - gzungetc() returns the character pushed, or -1 on failure. gzungetc() will - fail if c is -1, and may fail if a character has been pushed but not read - yet. If gzungetc is used immediately after gzopen or gzdopen, at least the - output buffer size of pushed characters is allowed. (See gzbuffer above.) - The pushed character will be discarded if the stream is repositioned with - gzseek() or gzrewind(). -*/ - -ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); -/* - Flushes all pending output into the compressed file. The parameter flush - is as in the deflate() function. The return value is the zlib error number - (see function gzerror below). gzflush is only permitted when writing. - - If the flush parameter is Z_FINISH, the remaining data is written and the - gzip stream is completed in the output. If gzwrite() is called again, a new - gzip stream will be started in the output. gzread() is able to read such - concatenated gzip streams. - - gzflush should be called only when strictly necessary because it will - degrade compression if called too often. -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, - z_off_t offset, int whence)); - - Sets the starting position for the next gzread or gzwrite on the given - compressed file. The offset represents a number of bytes in the - uncompressed data stream. The whence parameter is defined as in lseek(2); - the value SEEK_END is not supported. - - If the file is opened for reading, this function is emulated but can be - extremely slow. If the file is opened for writing, only forward seeks are - supported; gzseek then compresses a sequence of zeroes up to the new - starting position. - - gzseek returns the resulting offset location as measured in bytes from - the beginning of the uncompressed stream, or -1 in case of error, in - particular if the file is opened for writing and the new starting position - would be before the current position. -*/ - -ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); -/* - Rewinds the given file. This function is supported only for reading. - - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); - - Returns the starting position for the next gzread or gzwrite on the given - compressed file. This position represents a number of bytes in the - uncompressed data stream, and is zero when starting, even if appending or - reading a gzip stream from the middle of a file using gzdopen(). - - gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); - - Returns the current offset in the file being read or written. This offset - includes the count of bytes that precede the gzip stream, for example when - appending or when using gzdopen() for reading. When reading, the offset - does not include as yet unused buffered input. This information can be used - for a progress indicator. On error, gzoffset() returns -1. -*/ - -ZEXTERN int ZEXPORT gzeof OF((gzFile file)); -/* - Returns true (1) if the end-of-file indicator has been set while reading, - false (0) otherwise. Note that the end-of-file indicator is set only if the - read tried to go past the end of the input, but came up short. Therefore, - just like feof(), gzeof() may return false even if there is no more data to - read, in the event that the last read request was for the exact number of - bytes remaining in the input file. This will happen if the input file size - is an exact multiple of the buffer size. - - If gzeof() returns true, then the read functions will return no more data, - unless the end-of-file indicator is reset by gzclearerr() and the input file - has grown since the previous end of file was detected. -*/ - -ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); -/* - Returns true (1) if file is being copied directly while reading, or false - (0) if file is a gzip stream being decompressed. - - If the input file is empty, gzdirect() will return true, since the input - does not contain a gzip stream. - - If gzdirect() is used immediately after gzopen() or gzdopen() it will - cause buffers to be allocated to allow reading the file to determine if it - is a gzip file. Therefore if gzbuffer() is used, it should be called before - gzdirect(). - - When writing, gzdirect() returns true (1) if transparent writing was - requested ("wT" for the gzopen() mode), or false (0) otherwise. (Note: - gzdirect() is not needed when writing. Transparent writing must be - explicitly requested, so the application already knows the answer. When - linking statically, using gzdirect() will include all of the zlib code for - gzip file reading and decompression, which may not be desired.) -*/ - -ZEXTERN int ZEXPORT gzclose OF((gzFile file)); -/* - Flushes all pending output if necessary, closes the compressed file and - deallocates the (de)compression state. Note that once file is closed, you - cannot call gzerror with file, since its structures have been deallocated. - gzclose must not be called more than once on the same file, just as free - must not be called more than once on the same allocation. - - gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a - file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the - last read ended in the middle of a gzip stream, or Z_OK on success. -*/ - -ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); -ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); -/* - Same as gzclose(), but gzclose_r() is only for use when reading, and - gzclose_w() is only for use when writing or appending. The advantage to - using these instead of gzclose() is that they avoid linking in zlib - compression or decompression code that is not used when only reading or only - writing respectively. If gzclose() is used, then both compression and - decompression code will be included the application when linking to a static - zlib library. -*/ - -ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); -/* - Returns the error message for the last error which occurred on the given - compressed file. errnum is set to zlib error number. If an error occurred - in the file system and not in the compression library, errnum is set to - Z_ERRNO and the application may consult errno to get the exact error code. - - The application must not modify the returned string. Future calls to - this function may invalidate the previously returned string. If file is - closed, then the string previously returned by gzerror will no longer be - available. - - gzerror() should be used to distinguish errors from end-of-file for those - functions above that do not distinguish those cases in their return values. -*/ - -ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); -/* - Clears the error and end-of-file flags for file. This is analogous to the - clearerr() function in stdio. This is useful for continuing to read a gzip - file that is being written concurrently. -*/ - -#endif /* !Z_SOLO */ - - /* checksum functions */ - -/* - These functions are not related to compression but are exported - anyway because they might be useful in applications using the compression - library. -*/ - -ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); -/* - Update a running Adler-32 checksum with the bytes buf[0..len-1] and - return the updated checksum. If buf is Z_NULL, this function returns the - required initial value for the checksum. - - An Adler-32 checksum is almost as reliable as a CRC-32 but can be computed - much faster. - - Usage example: - - uLong adler = adler32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - adler = adler32(adler, buffer, length); - } - if (adler != original_adler) error(); -*/ - -ZEXTERN uLong ZEXPORT adler32_z OF((uLong adler, const Bytef *buf, - z_size_t len)); -/* - Same as adler32(), but with a size_t length. -*/ - -/* -ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, - z_off_t len2)); - - Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 - and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for - each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of - seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. Note - that the z_off_t type (like off_t) is a signed integer. If len2 is - negative, the result has no meaning or utility. -*/ - -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); -/* - Update a running CRC-32 with the bytes buf[0..len-1] and return the - updated CRC-32. If buf is Z_NULL, this function returns the required - initial value for the crc. Pre- and post-conditioning (one's complement) is - performed within this function so it shouldn't be done by the application. - - Usage example: - - uLong crc = crc32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - crc = crc32(crc, buffer, length); - } - if (crc != original_crc) error(); -*/ - -ZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf, - z_size_t len)); -/* - Same as crc32(), but with a size_t length. -*/ - -/* -ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); - - Combine two CRC-32 check values into one. For two sequences of bytes, - seq1 and seq2 with lengths len1 and len2, CRC-32 check values were - calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 - check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and - len2. -*/ - - - /* various hacks, don't look :) */ - -/* deflateInit and inflateInit are macros to allow checking the zlib version - * and the compiler's view of z_stream: - */ -ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, - unsigned char FAR *window, - const char *version, - int stream_size)); -#ifdef Z_PREFIX_SET -# define z_deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) -# define z_inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) -# define z_deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) -# define z_inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ - (int)sizeof(z_stream)) -# define z_inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, (int)sizeof(z_stream)) -#else -# define deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) -# define inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) -# define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) -# define inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ - (int)sizeof(z_stream)) -# define inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, (int)sizeof(z_stream)) -#endif - -#ifndef Z_SOLO - -/* gzgetc() macro and its supporting function and exposed data structure. Note - * that the real internal state is much larger than the exposed structure. - * This abbreviated structure exposes just enough for the gzgetc() macro. The - * user should not mess with these exposed elements, since their names or - * behavior could change in the future, perhaps even capriciously. They can - * only be used by the gzgetc() macro. You have been warned. - */ -struct gzFile_s { - unsigned have; - unsigned char *next; - z_off64_t pos; -}; -ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ -#ifdef Z_PREFIX_SET -# undef z_gzgetc -# define z_gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g)) -#else -# define gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g)) -#endif - -/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or - * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if - * both are true, the application gets the *64 functions, and the regular - * functions are changed to 64 bits) -- in case these are set on systems - * without large file support, _LFS64_LARGEFILE must also be true - */ -#ifdef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); - ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); -#endif - -#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) -# ifdef Z_PREFIX_SET -# define z_gzopen z_gzopen64 -# define z_gzseek z_gzseek64 -# define z_gztell z_gztell64 -# define z_gzoffset z_gzoffset64 -# define z_adler32_combine z_adler32_combine64 -# define z_crc32_combine z_crc32_combine64 -# else -# define gzopen gzopen64 -# define gzseek gzseek64 -# define gztell gztell64 -# define gzoffset gzoffset64 -# define adler32_combine adler32_combine64 -# define crc32_combine crc32_combine64 -# endif -# ifndef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); -# endif -#else - ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); -#endif - -#else /* Z_SOLO */ - - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); - -#endif /* !Z_SOLO */ - -/* undocumented functions */ -ZEXTERN const char * ZEXPORT zError OF((int)); -ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); -ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); -ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); -ZEXTERN int ZEXPORT inflateValidate OF((z_streamp, int)); -ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF ((z_streamp)); -ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); -ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); -#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(Z_SOLO) -ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, - const char *mode)); -#endif -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, - const char *format, - va_list va)); -# endif -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* ZLIB_H */ diff --git a/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.jpeg.txt b/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.jpeg.txt deleted file mode 100755 index e677c82..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.jpeg.txt +++ /dev/null @@ -1,66 +0,0 @@ -The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ ---- - -LEGAL ISSUES -============ - -In plain English: - -1. We don't promise that this software works. (But if you find any bugs, - please let us know!) -2. You can use this software for whatever you want. You don't have to pay us. -3. You may not pretend that you wrote this software. If you use it in a - program, you must acknowledge somewhere in your documentation that - you've used the IJG code. - -In legalese: - -The authors make NO WARRANTY or representation, either express or implied, -with respect to this software, its quality, accuracy, merchantability, or -fitness for a particular purpose. This software is provided "AS IS", and you, -its user, assume the entire risk as to its quality and accuracy. - -This software is copyright (C) 1991-2016, Thomas G. Lane, Guido Vollbeding. -All Rights Reserved except as specified below. - -Permission is hereby granted to use, copy, modify, and distribute this -software (or portions thereof) for any purpose, without fee, subject to these -conditions: -(1) If any part of the source code for this software is distributed, then this -README file must be included, with this copyright and no-warranty notice -unaltered; and any additions, deletions, or changes to the original files -must be clearly indicated in accompanying documentation. -(2) If only executable code is distributed, then the accompanying -documentation must state that "this software is based in part on the work of -the Independent JPEG Group". -(3) Permission for use of this software is granted only if the user accepts -full responsibility for any undesirable consequences; the authors accept -NO LIABILITY for damages of any kind. - -These conditions apply to any software derived from or based on the IJG code, -not just to the unmodified library. If you use our work, you ought to -acknowledge us. - -Permission is NOT granted for the use of any IJG author's name or company name -in advertising or publicity relating to this software or products derived from -it. This software may be referred to only as "the Independent JPEG Group's -software". - -We specifically permit and encourage the use of this software as the basis of -commercial products, provided that all warranty or liability claims are -assumed by the product vendor. - - -The Unix configuration script "configure" was produced with GNU Autoconf. -It is copyright by the Free Software Foundation but is freely distributable. -The same holds for its supporting scripts (config.guess, config.sub, -ltmain.sh). Another support script, install-sh, is copyright by X Consortium -but is also freely distributable. - -The IJG distribution formerly included code to read and write GIF files. -To avoid entanglement with the Unisys LZW patent (now expired), GIF reading -support has been removed altogether, and the GIF writer has been simplified -to produce "uncompressed GIFs". This technique does not use the LZW -algorithm; the resulting GIF files are larger than usual, but are readable -by all standard GIF decoders. diff --git a/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.png.txt b/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.png.txt deleted file mode 100755 index ed7ec64..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.png.txt +++ /dev/null @@ -1,136 +0,0 @@ -The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ ---- - -This copy of the libpng notices is provided for your convenience. In case of -any discrepancy between this copy and the notices in the file png.h that is -included in the libpng distribution, the latter shall prevail. - -COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: - -If you modify libpng you may insert additional notices immediately following -this sentence. - -This code is released under the libpng license. - -libpng versions 1.0.7, July 1, 2000 through 1.6.32, August 24, 2017 are -Copyright (c) 2000-2002, 2004, 2006-2017 Glenn Randers-Pehrson, are -derived from libpng-1.0.6, and are distributed according to the same -disclaimer and license as libpng-1.0.6 with the following individuals -added to the list of Contributing Authors: - - Simon-Pierre Cadieux - Eric S. Raymond - Mans Rullgard - Cosmin Truta - Gilles Vollant - James Yu - Mandar Sahastrabuddhe - Google Inc. - Vadim Barkov - -and with the following additions to the disclaimer: - - There is no warranty against interference with your enjoyment of the - library or against infringement. There is no warranty that our - efforts or the library will fulfill any of your particular purposes - or needs. This library is provided with all faults, and the entire - risk of satisfactory quality, performance, accuracy, and effort is with - the user. - -Some files in the "contrib" directory and some configure-generated -files that are distributed with libpng have other copyright owners and -are released under other open source licenses. - -libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are -Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from -libpng-0.96, and are distributed according to the same disclaimer and -license as libpng-0.96, with the following individuals added to the list -of Contributing Authors: - - Tom Lane - Glenn Randers-Pehrson - Willem van Schaik - -libpng versions 0.89, June 1996, through 0.96, May 1997, are -Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, -and are distributed according to the same disclaimer and license as -libpng-0.88, with the following individuals added to the list of -Contributing Authors: - - John Bowler - Kevin Bracey - Sam Bushell - Magnus Holmgren - Greg Roelofs - Tom Tanner - -Some files in the "scripts" directory have other copyright owners -but are released under this license. - -libpng versions 0.5, May 1995, through 0.88, January 1996, are -Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - -For the purposes of this copyright and license, "Contributing Authors" -is defined as the following set of individuals: - - Andreas Dilger - Dave Martindale - Guy Eric Schalnat - Paul Schmidt - Tim Wegner - -The PNG Reference Library is supplied "AS IS". The Contributing Authors -and Group 42, Inc. disclaim all warranties, expressed or implied, -including, without limitation, the warranties of merchantability and of -fitness for any purpose. The Contributing Authors and Group 42, Inc. -assume no liability for direct, indirect, incidental, special, exemplary, -or consequential damages, which may result from the use of the PNG -Reference Library, even if advised of the possibility of such damage. - -Permission is hereby granted to use, copy, modify, and distribute this -source code, or portions hereof, for any purpose, without fee, subject -to the following restrictions: - - 1. The origin of this source code must not be misrepresented. - - 2. Altered versions must be plainly marked as such and must not - be misrepresented as being the original source. - - 3. This Copyright notice may not be removed or altered from any - source or altered source distribution. - -The Contributing Authors and Group 42, Inc. specifically permit, without -fee, and encourage the use of this source code as a component to -supporting the PNG file format in commercial products. If you use this -source code in a product, acknowledgment is not required but would be -appreciated. - -END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE. - -TRADEMARK: - -The name "libpng" has not been registered by the Copyright owner -as a trademark in any jurisdiction. However, because libpng has -been distributed and maintained world-wide, continually since 1995, -the Copyright owner claims "common-law trademark protection" in any -jurisdiction where common-law trademark is recognized. - -OSI CERTIFICATION: - -Libpng is OSI Certified Open Source Software. OSI Certified Open Source is -a certification mark of the Open Source Initiative. OSI has not addressed -the additional disclaimers inserted at version 1.0.7. - -EXPORT CONTROL: - -The Copyright owner believes that the Export Control Classification -Number (ECCN) for libpng is EAR99, which means not subject to export -controls or International Traffic in Arms Regulations (ITAR) because -it is open source, publicly available software, that does not contain -any encryption software. See the EAR, paragraphs 734.3(b)(3) and -734.7(b). - -Glenn Randers-Pehrson -glennrp at users.sourceforge.net -April 1, 2017 diff --git a/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.tiff.txt b/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.tiff.txt deleted file mode 100755 index 85b375a..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.tiff.txt +++ /dev/null @@ -1,25 +0,0 @@ -The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ ---- - -Copyright (c) 1988-1997 Sam Leffler -Copyright (c) 1991-1997 Silicon Graphics, Inc. - -Permission to use, copy, modify, distribute, and sell this software and -its documentation for any purpose is hereby granted without fee, provided -that (i) the above copyright notices and this permission notice appear in -all copies of the software and related documentation, and (ii) the names of -Sam Leffler and Silicon Graphics may not be used in any advertising or -publicity relating to the software without the specific, prior written -permission of Sam Leffler and Silicon Graphics. - -THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, -EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY -WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - -IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR -ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, -OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF -LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE -OF THIS SOFTWARE. diff --git a/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.webp.txt b/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.webp.txt deleted file mode 100755 index da8a6bd..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.webp.txt +++ /dev/null @@ -1,34 +0,0 @@ -The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ ---- - -Copyright (c) 2010, Google Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.zlib.txt b/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.zlib.txt deleted file mode 100755 index 724a488..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/LICENSE.zlib.txt +++ /dev/null @@ -1,35 +0,0 @@ -The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ ---- - -Copyright notice: - - (C) 1995-2017 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - -If you use the zlib library in a product, we would appreciate *not* receiving -lengthy legal documents to sign. The sources are provided for free but without -warranty of any kind. The library has been entirely written by Jean-loup -Gailly and Mark Adler; it does not include third-party code. - -If you redistribute modified sources, we would appreciate that you include in -the file ChangeLog history information documenting your changes. Please read -the FAQ for more information on the distribution of modified source versions. diff --git a/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/libjpeg-9.dll b/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/libjpeg-9.dll deleted file mode 100755 index f4a6fea8bdca8c3ec5f67065852ccd5a30409a36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308575 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

|?N4wtTQ%_r?FF)=CmcIgrZ`gVkpU4XxW6&= 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%0D_+%yDin6z{(01PzWK z&FJ~1;e6Wjs0fH@`kT5>)IZ0&kOBhfNwgS3S=C8hEFSl=x)#X~L1h)kSj+1;olkw4 zQ3v&VMHM?`e37n)bciJpN`eSfAoY#N7pc#w$ZuF#3NYL+y0-vi>#6BuHvxl*L>ZH zEPe)Z+sc)w+E!k~r>qmEvd&(wv?4!z2YGvb=7*g_*xv*uDX-_2bb4P%@o%idmH?>~N+%i~zm+|Y z4EuW0U%%AI6+}V@qVD6;Q%J!ERoxaER>d27q@N00Pa5f7Sjd`mHrFG_Eu~ZCU{00b zE5JKDUtS71-A&gxJGD;Hla#Qn?##qF$pv0WGBe6>?kWwYqx_7>6}Tpdb8-5_m(VC_ z3?5Kmf7L9Mo#)(@#az;IDbtki&M&NTegY>di+J1BJjbir<{M z#YV~gWtLlx!moYV7_Gc0m@lf2rpPAqm6{jG03z40iJ@*aH@D)fL^Lx*=Nn<%sXix@ zh|do%?|{G#gZC#!OeIUp<|XY88HltEj77I|0Tys|)MDPGzg`M59Vl1XuwH^s*wK zIr7_zf6lqf(bKp~3cGK?Um0y)l`@+p&s>D1*ASPA1q=s}m@0D9SpyxWd#6zKKni!( zKSrZO?qB~DFQU&qLf&IP?zaMB?!79TTxR@AwX;b!93?AG$Gl(gtmclYe8Y){8BKro z0e+|tJ3x08NzqmA&qd?s;z&x(TGZK(rFX>++}0~hLpH}1PtL|F=YY&wsuT?XyH6Eh zWZkD~ob?-Nh~fBOt40_BGabJ1HOT+)@)33aESyud5i{{tq(=}2fkI~mBX)F+3&(!a`w!dx43>I+WbL~VweO>j1NOG6}S)9 zU+rkJqDu4Q$~Ky!hT5-xzCR(A?nInQ7%b^bcb+V2cH(emd!@Fqs$}c+CyKHG5eo5* zg$fId{>qY#JO-A%Z_qSZ%gkCM!?J24Bv<{V>pNmT7e=qRC=|>-S5v!=WUF+iaeG~E zH|^pgn%vKL%1!s&lu4!C`t7m{fIU5zsC-^6A_J0*S3WRpx6{UI!dt3|HyV+viKw#N z@6=VhVlF=(*Z9>X+pnKiiARX0oyfxT2I@|!^m4fLDGoCE{TEFMYalV_`@B-yQ(e-s z>;>@wu=-TPon0q}fDzNH)|?M1yjTckrPI!9VfXLG1OD1>aamK9b!E{^qvQeUi+;zA zLh&1(87>Q^>q}Etj4Q+9ugO&-hYdi2+ z)J{977r^82^;WS@XGF~uaBL;FwGGN`lb|xKvqhse3Wj)|&>UxWcI-*fY9q&rN)ajn z5-3+9%0=rLgc(mud{j9MHo}K{xF9b^fH3JrqHM$E3a1&*gO9h?;!%N(sZGFtn^saj zQ@>qwMauCBCws)}iF-NJv%yy=E1$TysFfZDu1^f7u_#WK*y`z=D6G5BboPK}E#lrt zJn3>1^Ih@!_8$WelSDIbDsf7M0wVG0MAYV*{v?B2o z(oQxvqVBxhG`wT8P&Yz22^$1yEn6;ZmdkmN=H8%OVS18mS3}p~hCZ$SSu`zZ>_JSN znwMp-dMe8mEgMOkIXU$Y4KJtuvDCJ;&mUWjg{|B~OsnPC!*=87g zss3mMpx>Oc18tw)C;|csdXDv=@l#HE+sd*D!%9Li*S4}e+Lz&!Jo~AecgpX=xbG0`|bYzBXUU1Z^JZj-c5U~m&axx@1N|4Dj z!ZX5?JG;wEd2+6(d?rr}Hp-{-EbJ~^$-xA=QFD3Adg{JM>IU98AL?%4y`+6r3GMqm zuQyKxC5)5wzi$ommE zSFi3;Kp{M5#K3?u>hE4C8IIt$l-WTWL_Ov}&BlrUOTuJ3yDcJvpD{RnfrUV&kOc9A z=pA=5ufe3Y#nzK}HUCM*>B(`o{DY>p#bos4j~s<W$wk(dz2qYq)q=4?kQKBUjYBS9p(7*S7C9 z_1tj>AJH=Q>ba-w^Pgwz^`A37@t^1Q@T}%a`m8aqb|})uY+;w&cG5ht+?#%^6@F2^ zNA9)s(_463r0vyDe||{Jh`ok>x};f@NlfdIm@EP-Lz3}DT5|d>Q!h@=_6o*W;mwj~ zC*NJXEN&sm!golruxGEnc#EMIzp+_E5>qIU7Xs^EL8AyW7X{HzOKBVLAP8-bOJ`FM*i zE#54{_BPpMG#ATAE&OQskn*)tI={`*i@zYD8tBhcL;8{$R=RcVA!?jpuTouQ7W}3K zgL$vCFEw~1TSVjkKMbLI!kZ9A%us(bHe)o_OaTVhPHFI zH~n-g{GsJdo@|6avb2|GdrzI2fy`iqKep_5g<6}=(mj^F(|=vw#mVXHa&Pk2tnk~Y ziL!B@(T4-Aa<5>bv!vSyfA;kEB#-{U%e2HEaQQG22eR$n3+PZ{AluYlwY-87mh*{z zGDkl`qii}0KWE?LSTp>hv+xjsz-PPOBuC$TmlEEh!u9T&E-Bc(GtNWcluJ1dneL(j z_u5ss(#$}9JJtxtL3`IIC7DcBnOB<271OMA78~B=vuNEvrFDk3(bTpxLSZAE^d_Gh zKEQrOFa&m|-_h@`vg7`neTeoOUg-oQyv=kvO-DigY%eD((U)!6ozg{TMX4FyjAu{j zt7Uhn&XOy!9|Pk~ReDYat;5(L*P=m=vDi`GU<{945h>RZka7$F>NU#Kaz-`J{^RT8?<0ANBGYGC4P%0ig%s;o>H>q0KlYA)t~?I^yM2(Mi}lAooSgw=3M zR`bHFacWFL^Byb~MB3{ES zJ3eoMO!V8C%wDeDu{s}8?p4hIc-YBU@D<#e#6?eQ*#mDrgQ1DWJ>6q5TeGw_N}XWX zn`b2m_7=>bkb$w3_uJD1@|Nc_n2nr+3G$QC(rAeJ6^iOS{8!-Aj-UOGJa&(rngI|L zWZSzJFv*7Yh9M-|-g*0IY1!eicJD(5%Az++XGw@pOWQ_ihPK67k|WH6%@yDoUrq7C zME_Vo@{qIi^XRNl5trEup=5zriyMx@lzimFqx)ctc{AP7Kx3ilJ|0(J^CG7E;0E=& zs1`WWP~?L%Gp%qRV0Jd33M}rm!k?9UizjDV;g7KMJ}x8ta+x=Mk{Rwv9L#j?jgg%m zOiuJ?+M8t1C}4s!&E6>^y{082LSMEg`gDhpm5zt<4f`b-_t{=iu2(lA!|s(a)OOf$ z8Qa7G-I*6z(<=Gw-7=(J!Bj9@#!&kLdN7fZmLW8}yvcU2jHwqolhO4DGXbC$0M0tY zF2jh~ycaq-J-U6|by!&lSl60bCsl!7f}+wqg@}&gCef1pzAp&ms{CQ_eS|*9ctXfu zFTP?O)B`W*O>bsq1ojr<@es=k>@CKkXEg(Z3!`@9rwVO7!Lx>|B@uQQ^@jKPTY;b}35sMZmFF7bY*C=$0h94y!+=mcKnjk0&w zjAbHvZ}^HJ#m;jI$g_AxM)(W6>43LBSATnZcJmuxl2@ zN5KbQprSCMXQmT>URBbqH_3V6O7B{%t$rJ4APx8Nn0kyh+3Jd(mh?(KHAf+c6&NJR*wzp)wzA=t@)Lyorli^qG-Oq;k48LlGH`)Vj;{o+e z050QBMB3ayoe zhVjIJ59*D_A<+-QCpRl&gTXC<%E^yHfyTqYSc)F`wiv{tL1_ym-zI9<`eZ2oI10b? z%oKi|=D&eovv~X8@C%bBWg3D>(|0(hg3Uly>nIeUf0nUCask6q?W@Abeo#~grKSn4 zjR4oUCb4-1!pVvd$i~&h1z)$q?*lmBG{gO{1X$5wZa_Q94DYmePGhzV@2N2vj15S| zKTz>ZA88lE+U_Od>X6pR;+~+ z;ca07zISH=kDc;6JAgEMr+fis$4Dl-Lw%9e&t2fx5P%*XB@NX;$H9j~hEus%fumSZ z4+BThCmjWk?+u4XHSs7(E}yngkMR#mE}ac>|UYahW&gM^uhG*nw9~^gg<4Jc_IjoN$lrNznX5q z>Le$+$KH8uuA(@vPDXMKji zYq*t=-$kV&m3pD6;ceUt4`9s<_u2996$-fJooFQ9LA2OmclH8mz}QM5rW+Lm9ANtA z9V+v%Fa#iwkVgc;iVyic z2Uvo#y{mx9bpCx1ntYOm9Vd`9CoAU|EWA)w#|r~0rr-%mrl{Dd-l`cHPBQ$d6@JHi zcvc2|2_HvgY!2#n7^O@>-k$H znTOH?_Q#K!yyEoaiJ6@*_AU5-n7l6&`~0b!#{CB^(X0Y=MhP`@;5=R{S0d+K#+td{ zTqAq{T=Ch=!zaaPC97!uF;_}31A}M)lLvy2X6A%h2puO-=8M_tjyCMiufM0-Ta;tC z8bVOS$J$Ef2veyrVuf%7==zxO=CBB5LbDYH+MU7{{P8ac_<)bH!VQ=p7y?v#UTJm7 zYxV!h+zdHiaP<5<`@hc5!~c4Itm{L@!l)~H~%k^O)v(lARA{WjGrN^=N)Fa6JmL+;8f!65F=8^*b3-#OHHCH zq{2o+k&1{4eFyN3di4r~B1@5bjIt&ru~fb66o$O&(13{Gdo~uE^%trryYY0hXryqxGi$1j+|(d>D15 z-!WY!WSj0p)LZBqupxP{i+OP8p@;bG2Hv=lxYqr1j5l;Fvyfy?M;~?;+CEbh4+USf z!f&CQn2JVF7Es}XoC^+rf=7CxVm`OU=}ouG z95f6XFsaR1@hrtgt`d5Wv}ak4frV)36#Bd%$WkbnGu6S3@w%e8luKA~&oP7e({?2O z6oNlsNmTHq2EXZV|NthaoCC~vB)8fu3;!iTY#ptIJW_XX~ zyk>X&ie|C^RBIN?!B`J)Voy}KRzMR)YQ4#JS zsfBuEc0R)OI8J@pE%S?oSYDWC+Rr^CxPzL`j;~{hgwBo+dt)AmY;jeC6axZ|MKP5V ze%a8#(s$7ICEm&b|LomA#{C)Pgfs!7X}g7DV41$jyGvnTc$3$pT6G|YCJ5SHLYu)n zS#&h?kI|cKCcVo2y+2!Ggj|XB5emQQB-S(ENk`RIbhdA9KLYW%j^9dDdTRd)P+L^@=8Eh8crZ_Yr^C!)Worn#%;*y}Lg^|HuSW zEfbu}>V@eywU6!ipP(*k{aRI2z(IrXR`0Hnk}TZn-6~JIs~WzbXtA_Wu(`72kls|~ zWAO4}>s&GWE>1R~D;cg|_jfV_1kM%59ccu{;D#0m`mR&6;iK``_4G^OZ!WBl0|3JR zz+WVorHbu=txNGfvShU2uOPJIh{6P;BT*~ztO8(!5J;?0kM$OvEs zU|{kDg+XwzHgAleask+{F7MPng~=J(whC`ub_^q1EpCMQ*Mi;vHDtnaau9|-g$rQm zmT;b9R9PUrVfS7$NpShvk^Jud9Xw2HrQ0ylAH2zWr5!?XrX4>3Z zC%IwLE$<^=1IzZ#(^2~+4&)g0E!WFC1%8~Z(!gHXNH`C&GJ~o?RD+qwr}d{$*z~VS z+m}K2=~otD+uKg_S`BTVVSg59nyA77k__QMs>a>h1tazXs`iHSM+&~NtiBt417fvalIjAmg3(tIg&Z;mK=%Q#4Lsj@E(i616Ht`l;2Q8tHKAWqNWDYZ<54PQtpLa5M? z>jf3aizlcrNQZ$Xii#Hl*iP3a4O@z6$xl$24vK5LPgFVla0IZ zCuX=?2n7ww=OCb$$6no@)Vg4IGc!LT0|6+}H%^jp{HSq?eB1kefano~(#+6UU+v@X znF2GSgwa~;PC4Czc;khp*m3V9fxpRYS889#w#cX5BLpR0fCPCD&yZpvNr`@H^6A)E zs7;{;h@N|bK;;8CG!s}So%1S6>F^8e%b9kE6iY6;;9#HND8nLb_t5e~#t;Bqj;6e$vH5L#G}> zCSuu7sT@DNWdos1C-5P&%lyLv;eGB8B5V$aw+mg~)}()QNqNXFg*+1b$IGICSIZe=AU7rY#v8KHaKLhIiILC>v&YtEi9~02 zO4+i_4eQwnk5rP9lp-71LDiDqDMN^YqYu_$$G^`)(Q`g22dS`^cfY6?P8nq!3w?u#sFvRYN3lxc1PCM-0 zKOi>wEhvypb9;B)(*px`{Fi%Fq7jnFk6!GwbHXCLNBdOUWVfgW>^#1US~pQxv82*Pbb$%vjEsU(a0w$4 ziV2_>pszSNybBo&a#F>b3Q=x^83=461L6f0I)QbGh3uns8H$!?#5mX{(%D9~6vNM$ z4l3F{)7gi(7H&gOv-f-|OvK*U^;MbMR=Xuf;bp7cwoXw9AmEv~N^okm6Cb~-W^$xp zC|lY_co%4jLc?^rWHaD1VLo>6ei)m8j<(&@J^<7vWJFmYfU18O=K<)M`k^_B*x zWh?3JVMPMR=}p%L(wo4iFTG)gL$cyPSgTdC+hZ|c8ey%Ahe&V8ZebD6+`nxg#En7> ze=ToFEXZ`LYqORYBDNW0pS#d**ak<|)i2o8@&R-+%cSpK#865xvcLa^sqM6Tqe7K@pkPomIEcXD97-%)>p$L5;2OmJ2 zNgXn^URe*AD73OkRYXmrMRr6G+FuvjmDPUnd#_sH6C1J<&m?zoIihsgX z+q*A9KrywAD39!&qaPOYF42y^N+S%d1!47ARj-$Kw%z-q&jNwfg0;1W+uQ2p!M-N=W9*h?OkJKGR;%Pz&y1eFNbfBL(>#&hZ-c!LJabnXgFa3Pn1{2kR3K zU@AxgMez>6scn%SU8^>0b_92o?j0KdH`D!9Tsrs%r!gx)wkR`?}z(ruC+ zE$MhP7w4F$*ZdMp_u`19^_W=&MdqYSYRyR(76Miw*V{nyNf^ZKd>@RLJ-|X9iG$-! z=i4;5pvcm8TH!Y>RD42Ddr?zK>8CRPzlC#=?}sQwENvg;?IfgjR;;H;5vINO5rjG9 z3icSKv|q)j$h3F8sOT>@OW${Lsw%+e7$kXWjM%+Xg`8>c8JsZl?wcV=X0s-;!p{c9 z#3_bDX0(RQWmfczN6`473*JML$+BO+96b=6^_WEec;}HW$>vRGaq;d*c!Amr-Tfdc zGrRY3kzqAD*Lmgh0uJx{>Vb|WbjQ-(W_3G8N@QC)6EHj#A}WNQOIEnyC!3$01?VHPGf9BHom@FYTDvdFSg_A02$U!+KZyEmV|xd zL4xS4YeX1*!l!>i$%fHCxoUo9vPOi_A?G)apntOU4E<9Ei0IRY(LcZ&iPu4^zpiL0 z>3kB%ma?zGmlZH-yMO{>O}KPCq-pr{`3N%1m;E zMEX=DjP?Cuc zPfDXSNNzHW;C!>6{|Tv3c&4?SOJ2lnjq5j9naPm~%-!&5^wvJ8nXkOzgd(v)c|J|87J| zokWdU3(yF~qoS@CWnil^s1cWKTMegEwsFF5Q^AJW0w?i-sRCSEVT8UQYQIt_T952<3eTT=2?DbRAdG0pL7l6?_nw#5Ji>Cq+9 z3`qiW7pb*FY7K9M!smi;0~_66O~ zRU|g9NUW|meP2nZ0i+7(S9*pbu`H!0m~K-XU^d-HVmvS@ikR*X3oZBY4Scd@%`|)q z=d5~>SI@?pq0n@{&phW$QAD~)(gD1fI$-G>-kbI9S|N@oOAObE6Nj~DrUP3ABeG2v z`Lc_fh0cPVRZ+a;u)+IPDEBE=*5h3y$8?TE_ks?{vR`25Qfs;Q#)v?IJky+HL4Lm- zv9v>$Ci+4f2(-fe)CPV16S@(E%V4LH!AmNzID{_lt1KwKnGunG(gOA{Eq@Oa8h4Jd z?T|I;w_Q{bJd|=#+LkRi6`G`E6Vx6Et-Gk^+h?iCsQVfZkMhYyD)l?5>O0@-YHiar*osJ zKG61gPbqWP!~iv}D0E&m*`jt1icPD1P-@2B)sofd78rsF8iv`X!Oqd{eCF@6@41Qn zRG1SL!%7%DOpYYOUh>$T8nG@XMIk0dLtLym^RPbN){lUKy+R9-=5)SF}z30QQTthIW@G|WWB4Xv1N$Cb(v zp%mgzVWk}LfZ$9OyIO;C1pYB%7^^g%&K@}Z*=R}atuGTFw5Tk4>aG}R$40CW21sb zh!V#hxByZcv?4!{SWkr=!IZv6wQWen9RFBKO?LcZv}$qy$mtfjwi(2Q3EYnYfz3o` zvtk>gVF~umSDFcXg~c|Tvv%hR+Xc!=f-?0(yHiTnK1A$4LEEJD*d2S3wNpg9IuivM zf(z9_s}q}rYSSUeB4*4ZwO7Eg+4K^o0ytUP3uWHA^8-6&NtJ^|=>a5Z&ZB61l}V@? zp}eA?lsrz$M=QN@p9iG% zaqe}H{olnwBa{1&+>_iVx_GzTl@Q|31>z0&Aqg?Fo`|c6xe?2~zShk8$p${PH_a@i zPGv}rH~fRehJWfdtE|=xzmhd40-2v;`B7*ZCY9B)V*7^Se8wpXz#G}7Xr$q5>RX|J zoF*tQoOFw-i(^S319sO9s;+)AN6^;Uy9GGOGd&wS0(-Xr?xbII(HsM>s)_#4B-J)S z(?Zh;fy4=lkP<1ocG4{|-cY=mlUQyT&e`k|GV$W;gxw_p$wD(ckm#QPU>eRteq#2( zKDGx0y6s*cvIi7o_p3d}!vfkU64*8h;QOib{Sv`Inkx{P7?@x0?Waa5&q5299`bqgvTs5+lA+&o1>L^;E-Ozf~nG<_JK-}*2!TNL4=~pQQ zt^*M6H=Q=vvFw%&D9GL|&<-6{P# z-88j>6|&t#W6^71gxZ1*WFy_{5Wu&b`307@;0(bk0e$L0uOk9I$F>?-MauYs3U-IU zIAYKQ%PC(hWXRN#c3c3PoPr-(9|938fE>w_*w0wF_c0c1Fe{*M7v>@{eZ(}pPE6G- z^bUH{**-H71~H78$mT>ext~E-_EW>;ef$ju$__TWIC5m-oi25x&bMTcu!vZ;Db5j9 zoC9foDawr~s*D<89Ktge>bxu!`MhQfP+e#^c-mV&9s~l2z91@7F%1%qz-$aoAe0%; zbB9SRh5}j67o;r~UXZ6f=j>sI4*KKe&hnCkpmZ*K9oDW zZy}q(IN1vgxWwB>G6=X1pd&?0meYX1ky4gJ`cg~-nUk6ntuk^M_5X=q_{;*XfnG#$ z3Qo^i&dZ8H%**zfgXw%=?-rEM_Q7E6t-@H4;J;}P2)YHN5w0;Sp!0ssunC0syi>#N zNS386P8Dh?_9L~yFBI<>!Y}p=@{4zURwTSZmKj6%#j7S(G8zm*5Xxr@DX#IE&ox+3 zRd`o&SPaF4_D;YjLtnxV(4$4hwKYxfv$=TJnyZW zp_r(4Kyir5kL)dqf4sn6UW$MCF`vU)j^-G~ArZqOdec|bN&zkbGF5vk;RipB@oKqQ zg5;KazhIf+g5d7&o>H&nrG|UI!b*4UVpwsp749zc3chBB--c&T033_472?>Jm-EeV zKS4+bdm#@cEYbEGa+o1;APb#97G&cP2N+JaoVly)US+0kcPbn8ow7ZOvDaA{v<0&@ zyHA}z#6>1)ONls9B3L&=1m!Rzr4i#w`=}LVm>gharrC9sQ;&!kzdcQ8Oouvgiv0$( ziQ^6chn#*ST8=&f04HjD?GANzR91{sfp=4UKw!ij8c!ZEl}ZOL_8Lz~f2ms&0Qb>@ zAu?{&B?tAU|0DZjU*a;zqzA+O@d*9tB3ragJ$RGXZh7*@>mL72Ui*UA)INPc%JArg z1erG81;&(CcBZ0TieS}Cu`T=n5`MF zjI+bG;1kWa7bmMXXbV1{#TV%Hn}W~HMXgek;I_L_&r}JDxk_gB#|?X`hYpj+qrPd^4Sj6y2@=19j^(CcmG#kcG?DlhKi+i$Kg7*QY>R2bxiMVG*Jv zvdB?n?#w20Cq7;QK@xMwT!v#S6DS(!|3o)qWIHJ!cZYJ6XDUZoRxPPO)S_dYW@pZ{ z@&cJb@P^$pP)8~x3|J$Tx#Rkq@L^6*AS0$Lz}!AgSv-aXCn%5SD7B?z_G*GD3!XSh4kh*0B^r+;X>ZmD##W}5)wgrjR`-n zxfEI{#ju?+oZGIXtrx+KVGl-2c!~*Y6OnP@%7hf)!pc+3jJGRbsNd zL@c`g7s?Peq_msbgPpdvc2KTzX=oe^$%EU=%J3QelE%JMIqZ{S$G}@s4|Ef(kKi=V{fOjKmThed(%qM zH|%taWv5F~G0cAI&1?ZF43(gQo893^`}yp~MU@!CPmXqc2tNU2_VZS5BnR;lZ2Dj5 z2iK&-?PWvUlp5luoB8&enz!&~rg_VXq2?`c(kwds2^j`XqPyT0MgEqk0DwBi($B#m zHwrx@#=oz?P9DqVo#?+eioa^5Z(jque9^EA{6U!wCBv+iT9H^Ash2QCqWrY#@O>o$ z-eHl1{XPS$koqJW2?(ALT}!EwFou&7{SrPwz4S-qdgsm1YfX|VHNF#l`mQ_MxMYdz z?Xajjgd0KKnFxvkmXQVB>6WczPgZLQ)<`af#FmBS^^QQ?VY#N#MmCnRjj|O8`JKjU z>Un>nw^ybbiB%SIXQC2VxR{#Ylz_UEV6o(ZNT8|gIjKtdQ{X_Q+6F5l9X~bfz_?QF z9N?4vud8{6fJdX#K!4EFN=RtaN)b}gk5^do{kI|d6qMuUVgt{SFMs|AyR%&<1nWUt z0MD^HAm1~u2V+WYS2+0v;4kbq7Jz@?+kd#!cFWircBoO193C~9-xhrelEV{?eg#Yp zgMxr%k5pF5l$0-%{pj^8VCiOmILRV%pqA`r(f@dW$gxS(*YifG=k!E>NuS>&L=J5c z+`&;23qOZ8=7RDOdvgeq14=fK9QH8CYj?I3=(3J<^dt$WUE9{r~mq>Mw)e z@@1o?pRxYE86q8?KRf>x4~|Azn@)7MPV+sn?#Z9qn|eD1@HB|Ij-mRasIOXenTG~7uG-nU@#KBpzUC* zg)S(`Ll=}-=z_9lzb@+%b9Ml)sKnD124Wh=OKc0s1U)A(;6YLWm7=b?r+JTc+-?|K z(|%IJX4Zo`le&l%HFuGp*>l)_fyZ8%ptzy`JlXg{rG7#uiLK!faYeg=m zkfW6rYULgK#`U~5jzsXV>rYhyH}WLF`^ndD-!ry;JJP<4v(LEx-J%^M-={#ITzO~? zG?JoRu`00dDB>ncs+Lgz3AUi;k-O5$F$bsQ@t6_A`TA{?GQr1{wXJv3Az{Y-&mzbP z+v-D6XklQ;;o>x|n0Xcz&MZ!54{oGV@{V?D zDYI)ET8&mb1BGSq;>^lcI>p;-Jcrr)ChO{UIpY!(aRHFUTB|PP7CtUG1j5%MXKq6Z z!+q9`qQ@!caYDKZ``S)G`xKNqnC5LK(DELJK2_$Wfj8QAzSe67c>8x%n!wv%^+9@W zkeZvhF!N*mPG**qoAZlqzLN8iSr|`J;uVD65~06uWjm#nZss0+b2F>f@Il;-pqu6z zzw5N5-KVe{FpCKrCL{WUABAAsrLMonjlG2{uF}okF^++reHIK}43}N>QJlKH-k{M)ctnNWqCF==HV8-TO;;j{I1jD%o^Erc zR{ka~#s+bHGJ7AbDPn_(yP*klYMHD98f%-w{DXCy|Fs@!(ul`f(^JbCbNoCj54i z1OKYKNP=JkV@9Eji4mAs1Mq^ZhUa?yCi=El(Ko3%C(Us-sB8ns?7V>P+-)lh;2o`t}|gWC`92p4W!oOw=#ooF-+FDkjPdos*;&Pt(JqKH-Z}4)Tcj z+x5iX%8Aef;kS1=Gar64&M|phfM^WDZ`j)N2){8i3FpkLaBnVKTe^D&qkd z4!?!W9(l#@d5KX{#o3HV$80nkN%zOwF&{2nE*=Z~%MZga8Nd@<38q9KeqS zzlLxC)liKKA<||CyIdpFsQ+4re#Q?{csC%_YP0hzl&oV`8H-OrR|O^Tx|wrr0&g<& zgKma7nVDai>1s9K9$LeP6$Yl( zncxVLb45AdP!4ZYIlPzPUJfpi%-lfM*z1YVBItZLi5FNclU!Vo#Tyr2Da$FyY*el+ zDZIZ#5n@)A#mjSEOiZC5i z>X&m2Pv~$8uj^kuCWlu?3QKH$MfwU>E-XPSP9z=*#mOl3i4FsZmH>_rubZ3*L$Gx0 z$*bRiJMI^3l0+)Wl^CC0yfFS|>;K2dqa+KtRmQKe-;hVQ@a;Frqlp1Zq5(2TD(3$9{NQUX@OcYpRv-n>szi}fR zUg^Rbs4+$;xEUh~k}!TU^NmKe14)KR2P09m(nN)=AV`Mp?}H8!!xf=BeX@Eo_pV{9 zDvC-KBoHJG^`JZ4%nEoO%#vL=OehGY{YQpY&-sE-)&e(kOC#%~EeIuFKafiocj+#A z%eWbkh&poY7+|3%*5a51RjBphR(PPL%Nh=@45Nu9IBpeVei8kAHz0-qcSaI!i0 zUMU55R}HF;-C~si76UMPSsTt&em>gxiL`gYh9f+HLk_^dX8S1Kl?Pt_>fCm|46WY< z`ULn@V|*w(iu26-OZyGxJ_f3WbmKw~5Kax>%7>Ej-#9qg=re`-gI3PKpAr_l zq}(WqpxszZF7P3A$q@@Y_qd>76)%mn7xDhA;$Yo;7GAB(ex*F+zm?3y zGT(qX?ySsQl+1j04HKNq+zHcuw^d(5|J2QgsoExe3`mYi$rizfZdB9 z(P6_Le~Mtymuxn<0ke6ekNtTpn-}ul{@)JE#ypAj`^!x|2FfOO1|%C7rpp7_4B^=9 z4sd_-FgANf!Pxj~c*xNxHUhEfLFuOOgvx7+VFSL{e*nX#)u zOP3DuQgVowzVuu0(x`w`z)fJZlE?=mZXAIZOfRbuc)@{-YKq|_)T#XjxFVA>^AE`tEigx5 zSDV{vv){(%wM1=67VuU1t*DIXh9ZRO2rY{^p#MfvS6M8(QMalSu>qpgzYWBDK5u^% z#yjTJSdjOCN|D;<1t{-i{!KX}$~!)^4}*CJP~Rjv5$PF*dG~tdz$bD|R0))KfQK#0 zJNDlY$U6!g=#!PCq=~(W8G-RGHZU^ZfV>C9S}T-y^%g16*Uo@%y-`Fr)IVn^{sX}E zaQr85p(pbG^C5ie?*$Y)biVDkHilCFPYBDZZ2w}vA@zkX{F|k|@#hzSRMuvV=(EDV zj_%|k8s-H^>GTjrEBlg^v@bd6Ea%bv!W8qMgPkuJQJ{GBKj~-Zn2HFJmEl9 zr@#!u_f0qs@N_@U*F`asRi6omM~4F_P?RMs1ir&gAd?G)Ls^_fe9qLMM-u zXE%%?jkn-lOB#|sMn-m=^B*J)LleMz*7@txp>n$Kb)(JqR6-5s^Y2DvMKd2*|g_1^|=z z&4<8z%Wy>z=$o7e^QG`uV7>#*e?_P2F@sExDI0%1)A+vq!Q=bl*zp~Of7+z6ZEmsS z`XBYDgMUibcB-!|1}Z?PrNv{N>PRJ=>O(J=_o%n$-$^+d`IyYN%nQdy=V#o)<`LcT zM)g}+dFU|+L%pg*Dv{U|2JR*iiM1P0629CQtrF=(Vh=>)_RFKDsF^K)8*Q{(erT#i z+42+P0p`mS(bep7|D^;{tR)_j^83=6?>@{n`qek2e7Yo+eRS$owh`9ZeAcc!(5k%% zUUq$QaDmzNM<@BrDIhq^FSm8{+Zdr6S-0#G{w(?2Z5@M=_I=o^Nq*hTpT>p!Y5Ka+ zU-`D|v>IXY?|C^CX~6V}XY^-~eoHRhlWwHLQ{+a|{f5tPpGrh#(2i=+37Rl9tXKD` zp!t-}q0ni@wxrp3;|3kDlRs)yrGK>5iYz*=Yspm5UfN-OVl$__qH|B_Ru%kF&!roG zE(3#IZ<%vAcE8$YnVwP&J#2qFGUG)Kd!Mgr%GK}!*SoP_O{L!8=c0}5Q^TkYkr}4l z)C-)tjTTlX)J@8C*gB=dp60A6-!qRBnR3@D4jAA-_0k&9gZHvQ9kqBzJ?oUaOiwKJ zo9fnyfBuBtgHh12JlvE8HQM}rJvzVUF4C{LEoO$9Ik)Ygvvd|y(r`9^nl8MpV{fEg z_=IMb%;fNG*(Jj>l)IU|32-CJST?v=*&j@R%UA#|J19iUQ=MEO`Xd$4Ek4=dY9`T zV@reSG-j?qXE83tCOU1-*r=lqXdujWZWQ@6JkQ1(k3?pux!Iyk+5(x`IpK0AwDo!J zdr;@TqAR_nZv$+f`3%?G#trO*1#`gzF6v=N@5)yPp=DOx(urnTI7=_HU9-|TQRk~m znw^so$9685@J?jrwt_9h03tKD7Hk^NK_hR`xu94F6>b{GL0bw=3+bR>6RMLRBQHQ^h+^(t`M6WZnCbb-&L21&%lC|BtML&DI^_ z-@CaL^4&$&y}^(7`FEIqzs}vx#$l0MVBfDiG+k0K<6BXAZG(}ZD*Y@=6WCnFPQz>~ zb5>fe52x@Hsh?U&F3C>fue@Y0sG$5vMt){_?Q?8HLSAO5YF(2gWW6M00}>KCTesvi zea*hw66yM}UNX{kJ0h@aK@ESt|B?|>UEc&Js_T1V`?*3t6mnuVI?JU8fY*CFw*vp+ z4@q{w%SKw{tJHx^=9p)=#Wr1O5fxU-`ynuZT|<1J;xaNXszDq>ZTw3(A9H3mSHV=F zwU~OZVRf48Qe=V4=_A_bZzcUwHvmtWo8b7P;9{wqdA|lHo9h8>_3!lLGIz#XcoF`F zgn|-}_3_w#Q)R+m)6F*o2L8PI8vil94xYV5{<1)Vtq)6pUB+WKoz0)rg(4XG$3o%! zZ2TNUrNOhK8jN60eNYpbCk)}rdn4zG@}$y!O*Hpao*Y!m638#ot`rw~=Vq4BoIPHi z$bg)XNmZDXZ`Z`YVqjFxE(O>En_Hu58r*^PgLXux7~@_cj5i%?kddrZB)}B5?$h`% zV0H*kneJ>!f18~MIq14I#-ylIAwI6>{c-NfeG)J$-_YNAk+so}VHz={nf~f>le_YD`|TK4syL6M-*{4H$PLJczu(R@4`o(cd$_dZn%Q#M$1X35**J<|3!CB@Mj*+t| z%x&g^5V^jD#F_ZgyHlA*4QnJajkM-2k1hz6Ps>b)@w5M27KfnQzs(#m@|uZJqo2Fm zOkYDOyOSMzmnMhyrz&z^Vc%+KVBgXO!PHy6K>>hwa_i-$Q@>O3Y=Mjtx3xoE!Nq`o z(oE;3=z5%6zc7Ef2Fa(Lk&d5nuu*LOO<#Brx>4~>M2M(@VBw-u(5n7b@UKR6%fFU{ z-)YIX^9hdU*GqilK54|0o`7x8nt6^?1r55JuS5{uVMIg+JDCg3OfVI88t9Kc*WsT& zLmFuQjpN^V{!Pf;!#k+N-hV$gSElOfr2i(5`E>3lMgYd~Ccnt<*Z8+Jw?^X6-;nf) zwr|c&<@iKo-3u^r_6;hCoJ2 zDt59-Qjv1`QYoD2?6R;#W@Rc6lZZ!CGc-Nd%%O~ZgH=ubnqNF;1C0GMBNdl?ot-Jo zPQ8?r`qRls*A1umb4v^Twr{E7TbBlyANOn6`MhC~;JvYZCd<;rlL>2{k3r1az0Bc1 z(6sRRHR`KoUl61fnHoc6p1e7fj**a{zL9YF$4GWaA{`~^)OamB^K)LmGCRD(N@4T{ zmGa>nao)Nzdj~NRZ=XuLyu(UcOh^_AA`Rpxaup9Njl(;v^bdocsDwr5En753Ma~fs zmGd^w^!ub7sISz+=Do5N^qPDQAId~Gww26#_Q37@BeVC!B)^GF#tLL7`M833vq6=I z^@<69wFboGE~i@j`bC-$MaA0g04;dw?TlvQ*k_>jLGWm2|>0jo~V!VAdSX=C)-Og_r860zq-eq@@;G7SjhB^9tI z0y$2th8g_q?2GK|Xl`vusAf3nzw8al%|=D$%cS=)aaZUJoZY2N*_HBJeaMu}oLM+y zgWduN{S_x^nH?ns2EEWMxbiDI2 z$zotNk=?+XgnCX+1=7NBx{=n*=~Q!sy#O*>;#E?W0+z6rYG!;YGI*-H@-<26Q9`&_ zhfk4Q;BYNM_E003ZYqY6-Jj3Qflw0J zhph0virLjnEh`x{S-FMmS*>YfH?nPMYQzD#S%!wv7)1i0^g!qQ$=BIlhT>jrf+FI7R-t zQi1EmKro13-(q>jUo8gmSBn928+j<*FSt8`x_M#8-sZc^HNUHC_M9*xJD8YYB0gMZ z`y=_o^^f}R<>WID@>L@1p5sCH<|Y{dUKClkBeITOyX$u61}FxmPq` z>s~-?Bikh3a=SRd^>?}cZvPek<=nqXc#o3T$9d*dW@TQVmAr0XxYOCk#pJcw_}Su6 z8oeT~(>8$*hDAOA`pBPnr0dUHxr7$LxI}UzTfx`s`d&9%BV80JK9dBbU7b>%hnZ9f zDNY4uW+Ez%i3WSeJ_5cqB2&81Yi+!_(1+0&r|5#@BlR8w4aPgIl1i?8Z6zsJ&M9z+ z^%V62Kxd7pN;-$wc~c{Q4Eh4)+GuNtdga8JmXw0_+KSes92OoxsVGUGTClf}z)B+b zb}CgRMzTOR>3hBENhvc#qBu$SU;_@u>QMt$j@RpcQgeMuEg%S7ulZYz0qZ}>@1I1K zJ4~Zju)-eeWHa7*>AE_Q7PCle_HpQRf7u=WlG%PkefkOpIMVSLR+hxZcgTeIzsZ2t%;)|!*d5_a`!WEo&H=7K&wtkI?IGdNPD(g0da zf_~5Yh%=+~CSt#)!el-c_N8oO0xIlw%E47It+7vZPQ<}kdMUYLJp)s%DV*qBfKFQ~ zOQ&ZL@yK?g2D^5*t{34Lb#^NKJYUdfOV0te0!eKSHVSWWaEeJO%by|dI$*Te)3U20 zoeM&dj&`OC*(ClckWHib>oN8Zxz?_2Fs5Q%c3ElOp{7X|{l?)N%4JLWrpchNoASZq)5wKYl zGGUwL?3QvmwE*=nz|H7jti$|Nf+J_vshi*hI5|l_ErXCv@{5`VHKFpoO=p1;Xo^>2 znQwd-7n0mWN$+L7S|WR|2-o#qF}eOdeUmX`KgPl<3yc5Vo;N0Q+m9B-ewk@Fm963J zUv>SLl{)^b;2ofH^A7JP9D0veTr3Pi)>i%x?4rPiVX-~G^L(be;(RP5y4O_5<878l zbF5h+gH!THIafjp#U}q^#5xL%nC-Z2$YN(a0@@55GNDxVf#@2B-E{YP*V2$^q=1G- z#t(-3Rni@+DV=%5is}Uowb>;T@!R68tzCIg?go*IgmOb%bQI}&q?PMNy6!Y`nRQN~ z2Q5!6l|Pwnhz8 zb*X#~z`o%e0AvI(6YQk57Glr8D^0rZg-}<*e@AlDio%5d)l>dmW&TZbYSrQQGoq6p zMz{0a>1^Yz5^b3#a{CU5V2m%ZJRlL0U@7V*g;mdaS$5ppt7n8cs9&0;2FTzl zmrqBOxS~#^j#3qv63-+nSgGKdqCN6zjp+M?eL+hhMztEIkP8fjlut`^UK{4RDlxYd zf+}WB=U~xKSNB0A=0JxpVOeQPpemgNRYW@efVWJwJ=ruoFljCku=$enJ2 zf1H0aeB` zkw(2LKPS;SRce;(-w;=p5M+)uHGzlJo{~StVIt0EB22F>!-i=)A#pn) zOhy6!<>#X+n2&TuVjQz+^n5gk`3S#}6OG(Opc@Ikj8|W8=7SA)RRm(2*R}~Y3GYow zH|RMK-bhepOJ<+HpoGB}^W0SK-$ljdf#yf#$YO+3*(Fhpa-2~fV3fnPp|cp}QY$^X zB|WqMhZUYi^25){q!h#@3;|is#D<3Lo%SNT=SsS0h9}jAuEG5^ zw7=HhLFDcMbBNnH1rRl?<`W_N%8|A9s&1$2@GjKGXk=NSu5IAi5S&B+O-QUZbJjS$ z0@wWm8CzVjST{u^Hw0gSP~ z?|p*ZK*89Zi@*~MPLsZrzT#Hp2P-QI-Mm}#N$JQ8sqAL z+UI^PoD6-9?C)=s2ke=-Wx9LuH;@Y3H6!_!5+(3!!h6chA*u)sCRlzoe9RG$5nFA$ zNu`^ry5$whU%-2&gAD_N>o2o{64&Qwn>+y>%6rj_aArl=4Xvm!8L3a%!A|-w*qKmw za+x*GyC~{L@uI*R@Nwq^mkPTVuPEoA{9_Znw`|pAjkF_F>_ELn(()`Ua4nzBdm{La zd|})xEwjZt=b#p)#}##^N=TQD9YN=oZe&#MKuoiLGW#L4wIl&|rY4YrVBKHlP$QKJ z4@ID?r97)MrM4GZ=ZtcP><=6-`9PhyZb%QHgO%0%#gAayg`*{%^|&J2O~kym8pH#+ zEYRx3wZqG^JF?&HDE)q!W;$;_f3v~xcAXN+?u+gcZDfCRCjM5%N>Kj+LnUF}b=M(r z?rDX$ORl z2A9C=7A%3<-DN9il}1c?U0uDZq-4g|H6`fxXYv%`*L6?(#|KCa2VY{7ms-~-!$f#;qVCA?p&@nO>6p=*~UyzOeDm~`I8wo7ksB11kS)7UtlNx?#4Bh@ebVBBF)w(7f4Y#Q;z-k&e$-}rhsZ#3}A`38wv=_c#5ms%njDl2|v4; zPXnQ1X4wE(C$bNk<(k>X#ZW9DX&>yuZa6V>1NP2($q?obZ-_yhK#efE_D)T0(qYUD zlq*M-+L_HCBRpY z<|M{eYVTCtgBi+=1y-WH}CJ6|z&|qXT;9FEjZDz~cs%eVl#Q5G$;aD&+2eLCU zHiQ&26>C0Vd1L3ph&7iW8u+aE6hkjOz_QK;l>kmsPrnZ^)h_I8Fviz~2oqCl8Cx&a zP)eVbHbYVZMK4t>d+Z#BrF{djVGX>U=uF|0Ds)p^fnHTI7G^h&nxtp1$n z1?Q2s`@6I!@p{#+5wLuSRh<^$e`hbkd@2w0WoZ!CHSstNL`Y{#1SP9Pm~4qR>SYj3 zP(h@ta}AHp)A#X#yQ`ESbqHf1LIaIS2&`!UI-tMUZi|DrS0HMB2)kFN<@*1PTDfnG*C+RxLeaaHviTS)C zS8m>z`YQUNoPI6 z*}tyRfX|f0_E3jXsx5y}$+^&*oP_3xxPO9AD;~SU{$CW?{g(?5+Z?b+V8Cyib0x<( zcZ%8G0*){htmrZ1$#P+dFw%Dav4Iby0G0(U5Jm{E9$c+RsiI<$AS5Lq7>G-eIW`;e zLx+)4l0!B!P|`at0^*ShDCjH*YYYXcEVvXj?Swp^YNysKB0@HLy_S5Cl2$(2k0ek)POowh zFNO6wK|3nFv@G{tAc8cuo1p+MD3Eq`?^y`T(PvOuHDC>9D>TuX z0aMep5ErGFkGew0-<^mZE7-_=rVB>fs#8X3n^tf@XDY0-hDEQv{CMvf5#|Viis(Hz zkfaI))>c0m=~w}YqK`>R7D&?Je8W-lbPGog>0@^peJq|PWg2~KhUmOdAFC3zL-I?b zbMpFFWL+rIHG#D)+bN+JS$AbT(sggESjh*tTMDo=ER-;IRYtnz$Gz=BZqsV$_pq&z z!@D`0u!pwAHXwFo+e^r?w6lc7)^k`BH)Tbitw?TU-Bk#@t1Bh>0KlAG#`+&w_XQ*& z%ogc-XbqR+s(pMA*SWGvB(02}`Hcy0$9pAuqUaQg;V9qQ_a%NpQ3jpO+ph}wq(j2W zF12Q)5)-(~w}ocfpLtnuwKFdi=3SJwqCeUWr(tx_KIRYw#h75;{!N!jt{>)UfR-wz z3vzA|5YA|zK#%XguUi1=VRTL7G;$6?1=EA(lC(mD_2jFUBWG?FbsIlDx~bExn(s>2 zKi42)u?c0YkvSu#eU|xk1Ea82RG~c*s|2&70hy6xg7GODf=qDDKp!VS(DepIA8L>h&`0hJ^l>1d z4+7ubeo+QwaX@6@9Ms~^1420%9Lyl~WTxLJ%B|7ujlWU)ohFG&3MuX2s97lyWZ&)ugw@G=mgn zvo?EM`#vV_F`Xq7F;Mxzyd~r{#oMY@lw7NlHPV=xTh*jeA~MR0)R%croyK#*<6mD1 zoQmG92{RN1DT{#z&+m8@U&`2C&q4Fd3$F=YxKE$no-eIak3o7jtDT^%U)yF9eMe0J zO{>Wx>KKXU@P}v)Y9%Qa*o)Xzvq-Psbf3haGK!{Y5DDJ%M6PXeN+`7l8x8Er0X2%` zifTKVL|b);Co@p$Fxhv`F=-crw&mn&#vFT+)9GWK^q$nsweC;%dKYT^XqA?YQVkq* znCttoZ&P#&%l-kIe!A_wR3kZgho832wSDm0pC(s6E(`R;OUVcMEG7 zdgu5>9M4e~1Lmf1ES;1}%+WO@hbCeL%|+jk zX}IUsXc!Oc4pBHu9wK&&s66RyFjP*SFCCw1@PC;8sUqymUHD73qZ5m^v2CHB9?^E5 zw6|H(?p4!Ni7_zu(~z_Gv}v;HfD~U*#_}QFNqCz?&1zIc50sn41WE4&)0GvpbK06= zYh@PT1EAfCxP%nexh#a&R-pJ!a=pEllB1yi)l4IXPYP4NZJ27Q_$^Dtvp-HY6Pm7} zWHen7G0Ly(AMdEh*Bi7HP2PlhY?9FS_6X9Iq2;`5tUGV7$lOqHzepEo_@wu$p=D(h zm_A0+Me4W|lvn$-X}p?^ehN+(B}26s^(G%yt=YVtYMBZfGsu9~D!BHCiB43lqw01w zoXtcKrcyg6Bs${^0px@9bWVZ|Ut#UqZ+AL$gPMCCV6BB*rn84fSTSH+b`2*wwp zR4fxE&Yv}r7-UQ&J~k4SKg7fY(X`J((-wGwxC^Qu;h|tB%Jb+=B{0MlZtUdf?c?CR z(c30S54(5)ZQc!=BJoBaVV0Xdm@rknKGN|^a)eO0wTu)jH$(Y*qt=@eqY#<=p>*b} z1jfu-WBi{>%vv+#|CHBaj?uT%uu@fi{lfl_%TK{l(jIMvrTJ2dLb_dfC*JlTStY1G z_XX2D#j}9wAp24gitk6NIPTD$F*2jB)0#vq$y~0R%lV~Ic{%xgU$l?kJvC9eNQ=Fr zLRp8R)DF}2x4F16y*(C&U1=(~(2>bDCkVay0{Rak-lu4hg89mLh0@5n<}$VB!7NVt z11M=l_E8i#X^*ba&Cx)4rYiGHjr@fYIU59Z^fNH2X$@L)PSQJ~9+?PtL8)^Sl3JdE z(S@9j(3pfG7JC8EN_bVRHQ6KNb>~?L>ewb6tVFs6cC6+?TJ#j?^Y#d^owpOvJNbeN zq-yawt`3|@=LDT&U9x_?Zn}6>bC<1l= z0y1`z&H%k8k}T->Gz31s*PjoAZ7eqYP=N`lpo{cq|6Z*toHh-BDqV(9%dSjCRA)vAH>c8XRh{kBVk^nCwb ztr-b=lsenZ&nJSPAmVGUT{aY9>k#w-+Iy2(HlWEA^4yRp-`b<1-;^&0NDZ0!i_VxR z1gD`t?`;vIiP{*rB!~QB(veNR)G*;eb7h(4Fa$JRL|5T(Nk|EL!Y@{auARBALX@Sa zEyW}}Tl7$w@SYVVp|_z-(CMg#<>%07g0o~sMuq$+$k~0C(w;RK|ITZSGAoNv^F>d( z>@(R4&`7!QWBo{_KEIq7=ui;@iGGQAXsFD zxm5935AYjCh6zy{U&qk3f{TRYwkz})Pvo8#)8Tsbc6zpr-h^+) zz*djmj!Ylra_*#^JPttB!WZ6cyf(}ASGakC%n9S;tKJyt5biPZU1IyUlJ7Ib1U9~v z&fJxk@0(;xbZS@j;e32+SiUPeafE!ozA>_HJhJbhZWxiz3FzE6SMmqbfvkP~F}65c zZmYs&;%yb?_Bh!XL5u{)3I+y)iGbabAfpsF0zoh|G<7204v>QJ87IB<&muv+E#ERi zrvhKgMmP|U-Ly*(m`^!59t^xW_CN%TDDC>AFs@w`(&x2V;nd;&q#}sMxO9 z?yRn~8>7T=SZS_r;wtdjJ8)Xq*$`PbuS`5hHcr>qB;p_Hv#&W{uXuAkyDHiBgEeeT z`f$=tvJL@T*y!z7j1Iwznr`94O)w|nJi`MUR{>Z;-Y<*MuEp)qq@PQ$94+K0E^BZ9 z*Ip98QQ2?G{iUAKb=T`wQ_>_)>m61HQE#Vub`t1Ldhg!$2H&V3qQxEq21PRzD0KV! z>2F7O6H)*HwQ!w(Cn#5(bY74TL^7O`BK*dGO2qADorIZ2b2>8jSjwd0KlFr=#N`)* z3Z~z3K0w{l-F<>7K+LwjTP9Z-F9WL>jCSUS=40V=!(Xeu#r6$pE9Oa{+|4b zfHh3~*RBYw4b?-%)|z0Z&5B?so*(#kTC9_&3P`Ex$;>S{#|iF%S(^F0_pHd*>sN5k z=ExiW&JOg!%VN($$7pFzzm^4O5BUz>3DK3kYBNKm32(QFEXSU-ePNAKen>PrPY8q`#rd)-E;Df=lRjaS8I6<5o-v-a zZyM}Z#)2Xz9DeEHm1f9CHLbJWEFhI|gz-lS0G|a!>q5Z-lGo=)*#{}ZN!C7K&3H_g z$u^XwvvmFvXodC1+xRAqR)N~jDX^?`?SZWH!&<%!M{@Jb)c+%gsn$dF3RVtPzgq6otM1z-V`is!as}w zpnh`{qfRc8E_UkojJfb}uV2WoFsh8}L1Drsy7H!USNsSSx4HSvK|#Hz~6hX=U=v`o``?c5|lq zJh+3IS*?ETjk6b(MQO@*L$^*1o~4qV>hOBN?&{MnT7(=RS5zP_it{RWjmw;3SNaMx z&q&8HY;)|AA2DA_HeqoZX|9O1thrKw$-;_7pDdOnVh>+t-g?9*7PZC39axn77fCxM zgT0)bvdxMk)J<1@W#;Y@@0i%Y#i%7+$jgZ{65cD8V|s;utO(GcScj?*uU9-mH5;{( zF*?Vp=w?rlsRntMpmt#f)3FOP#kkkFk+oB3-G!?P)}Viv%o=_$D`E$k7#vbHFKDI}LHbQOf~H z_0yub66sl%4USnhz-;fM%`Oh)JP$y$z&e`-kG}>M0+_=S6a~KM42(=nVO&V6#%da^ z^Ma4Q=-^wAo8Q5Q30l$F) z&9LdnGdk;un+&fdfqf(c>_Uo6Mjsm%PZXX$iI*AsF2qVkA4qhk91#EDY|^C2ny^M) zkllw(G{zu0%ikluE4<|da)ZZgr0lId8iz7!Wjg&2>l)LFR!p|4qT@L-FWq z8)P><#->_4@tea@_=<3hDYa8&P+ZC5a*=^fz$EAH=15y@elOoxKT?;dp0WLt;~;oq z8#lA5;d6Xz`Z|A73+3Ntxw%Qu5Z`-(YxBK@?>~Nt?|lCGqh{NJMSQ=V{&6+av~U{a zbTmy9aDzj*RD%#FZbHKEw2AmH+5&2`w!&$0hN-v~A0)~pq(qHKOx#5SzUZaiph}`) z7gG~`ST)gxUF0dggoVcTyWD4*xnyfO2s8Z#nFltEIZ{lRZy1C{>zerslXr!>Y^Xk zm~af36D<@pX<{@BZ8M|J(#si&C4!ouAl*Pje1o_dKgSHbnVQ^6_O6zIX0l{Blu1CB zXg&!@w3~S!DWK>4e=eXUosqa@NNDUXOb~LY^CJ2>hT_Bv(5WDM_VyFFwto_=edu zd=z}&+k6#&cQ#+g-~MJ?JOSv3Fh4-drRo>Z4}^=#A;DHKfFHiW`v~AZ9y>YW`jK@{ zap%3cFLG0p4;opgjBGv1?%e0u$PX~F)+x1n51)H-pU~qC<4qQ>FEe=6QR_>m#E)H6 zsNbe+Ob!dJF8@`({nQ85Z$F_0a%}y!)`kzL->v|b$X`<9H!Lcw-&X3Hgg=>*cc^AB z5dNAJGZTs=5J6DGHj^eaCx|6jS5XjAAh#0zToHsIs$fG3X9y>h6@(LP93dZ6Fjd$2 zIF@2s3MveT6QpcQh)>Tnhn=nbK&+>w5aXU4iX~JjmY_92p@tEW1ck1mNGL@U`W3ed zf(lr{mjpqp-yxbX`*(^aV4w!kgxSN9n794%NCQBWLq z^mb>IyB@Lgfzbr^jgBU;NznwV^ch{*oyJQv+qzgxJONrDkF8MVjt(bq6@?Rw&NJ%J z(Hb;|o-v%j_A%iEww)=Qz-CnEG2sL@TW^r4SpxTxz#GKx0)hL1@=EpcBjgpO@c4pE zj94PdygrWj%h$tyua%Q*HD!a*#)5kIo0J1Nq98sGaf>4Zro8|SQB|h$v~s}< zRV_}rp{nNlMIU>%HTe9ee|6|101Rh3 zh6DrogIC)mYx3BQk6+1zHq&}U79ny%02^n@AEZg{aQ+}cU}IS4QwU}6UtO*YLb-vI zs8^UbctQ>XgaU^9Ev0B+@VQA7OsFHHcX&jaDTcJ%V%}bpVyg7gDK@qShROQFnV!N`=5`7QS2c03`DW<71^-#g+2|g-+FxW?$HIN>p z!;U@)HB8wZ_O8Lf$|0;O+^D6XlP=aI63U;eY{7z4@|lEemk1bToE+Y5U=6VS0f%2ka z@384Z5PMa2T#ACNMP@e4mAt(QMtFxugwJqH;ph?jOOOLY(a-{N1wBNGv-t;rUQzv+ z%)ceV%7RmYCO61TXjcCHb(Ih13u@ zYl2`09hsbW3|*g`r1qIH^@x)l=ik1_|K=(GrV9VAn!4(~NJo>%`~ianTj$g3jI2#T zYY0Jzh91B(3T!RYMDmD9X$jDT&J|@t${aXdgsv43J~aUk`y}?M5WPk^>v>egc^+|S zau40vq1lW{8@Ol*x6sTiJU(VtS$h}`xk~Xz3V~Mc< zpJJrEZadU40yP9V4M@cs!=NFuHzj*3p)TWsMDAV_w`c+lXXg=O1P_7GqQK5=<|_*ww7TFk#(>n z00fy%c!L%)E0tNBNgYjkFPdt1Zb*n(_rh5y#DYxf5PvDxsz}mp4V)hu*u+R=BBV6wJjsUkfp8*$y$hCm}7?^t#+SRO{325Y6 zM^y;p3GSl&4TXTg{4tvW6-oH7nw(ENzf7!AFoYL%T(jBsWJ7^m0UzKx05m{*p>o(D z`&e`lA|Phs`i7x>EUbonpGXCup}MX$0!1Q(v_y(nQ>Cby>ff-F#i~i8j_qb(SVp0+ ztP+?-rYVoYf~I;Q-0bxmwTTH}?yZcmzF$%g1;SEgGi=MC__D&WA)QrNH&d0?YM^e& zbU+!VcVjAxvBN->jUsnJdznL3>mQ)vEJQRhKBk5HNIaY&@T>)bTt-8WH*N}UYj+6ShZuk|GFfX^_Je^wqE5wEst z&eEufQwOo@yt7^ir+80^S1S(3x1st89@50CCl1G}HFdXF5(^#*S2NtU0ww@~@t+mK zD!Kl#XYs4+HFTNAe7Ks*iC-%C<{ci2R`;1`_1g;5DSf&yT1|_t{R!taBGlL*NJZ&F zFoTms$0cVH5%ASAdyD#nPjVxgP6ZoB#;qGGkqu+x*1T@1yvFh!sOX5ebq$We;2SZMIu!Qkt9hirl?AA-0)CYba3nvw2^msXuol>G zHHm>w8!LhkK|WH)P8+U%mE01_N^H3LkV@5+czB50n^@fe8><7cj_}=ZtPU8~_lIJ2 z$8D^Rlva=(YoZkR2BEqE8>%Dpzu!3tLUwEimdHg(zzeY9%e_Ix>d+)z|C}JmW}?;3 zDQp@4!9Fxe4p&Uh#<oobHs)ZdN9;)YOv6o>z`1 z;A8(enuqhu2PqylR5he`AZBKNnmp+ty+dKdk$Oju^bU@yxah+bkKhmiiJ{YV-o)Z# zUhB-7NB$@SdT=ffheW()1O*CMn1SFPTAjGKfiskGJb`5_((&J{(lIv3`2qPoyP%CB z`|x(^ZIPF0f3xD8b9m!nKlIr~RLZDAXpWGVk#+OQ|BpnvI$9x~NLL-12ESwO|NJ2L z{|032b#boL&6WJps8aoHN{3B%%kFQDA<}?0Xe_jRIp+U;OfhG{nlBB>rYHl!`^Usm9$0q%An2c=&tD-^H zKL?UTHJtWO=jU<`LDgi>9X9cw)8xMx&irRXCmRx`#Frm0nIA#!KfnJr_-#~Hes}Xb zbpVF2@Y6-&20JNS7 zZneY8C5f8?4SF=5aRUbo$s^^f8~x1G|3A*IVR?jQ#3E{(Jd#I4cufEK_5WBbs#8F! zgh$r@D+N%p91W_B0Ns;g3ZVc@<*Ee$2;cy$UjTJz%19J|GAT}51F(_@OPC$> zle58bL(TB7r^JOQ_ay&8`7b&3Qh=Jx4#Y5dK9E;mcr@ z3hMv;dmb|v3!jhTq}1^C1K8{h_e+MO)cVI?5&LFAdvASzA3Jiuf~Wq)EI(F$$cKuIX}2e?RHg*cj5AtD{> z+J?VE99Y1jADSPfX&>U(Lj1HP8uTH&j)~&ZJin6WfPwVCBW_yhhv24_VtV{1;HLcu z`u-5yw6Y=Gv`0CRb)4cCTz?ifO=~S^XxJg)IpE*I5@lw6oO4UVa- z6mPGB2iaA|f7Emw)X!kKrhgQ}YKJ_+JA|D>f18Y^0-7jt(lYc-sOt3GAU!{s;-IQT>-h!;)ss(1(~c$l;;F;lan@~O5v0IrI3G(+(adzt84*1U*alPE4I8v;wtG=bvF!Xd2W4J_C^;$mI^5LW4Q0jaVsq_U4j z*D%3j*N0T~uKWq63yEnx6zND>Di(PbQ1R+B(UGCF+>cpI=|?0Ig9!IFe}c`ah56%` ze4W(R=2`6NT{?#*7fR3K-;Ug$aoX@fY}#qg%PnTR?T@B-;&Zt#=<;M~HeaIKjqU59 zSz~TYcaOAb@Nq}(3(O2h%iGq=MU;fK!!(ckfcypHU$`S09aZR49)0lW4aY12iH&YqKj-MqU`O+X;aClUpE)h7kbx+yDa57QNj# zku`J-B$4zX6poVEmKcTGQ*knj91X^@(LBa@;cKf0rQC>!`7{9&LBNI`I$|~7a|Z7^ z`kC#|jEB84mHGL@hU@5X3d|y_OP>jiyw%E9CZ!B2XrPW=6LVvnS)0NJ;B$uH)b9jh z$v|i8z)LJpK7FMW5i=n8a-g%+jC7t01RuZU%(>auDXz8Jm(M(DKOxsKUmaSR4f2RqbvjKR%XLZc_nO@3@2B>aOLN^o%K%h zPZ*0z%a<0OdYGQ`_|}169eFeZsOv=b;lP<5$B!|$61_SEbQ$%vc+vsBw)ZnrLobYW z<3O*?FcG-s@_5*_8Mmafykx_N^apD@lxq9-txh`g*Q&X%^`D8ff0@B|H<2Y*ofBClVVWk6@8oL{5! zC0wgAsTw}!Jo4TEw!qAeo&H9huypcOE5maJIjBwtC9-!8W>=o(=T(`SIkWncvv8J| zf9etUy%Q=tu0H0!bNA)R?3Iq|b)VMLX73xXlMj}d{LQv*$KSHDM|^|v zB5Uv0tvVMBrmMS~UkAjbhFv_g>C?ouYTW8%%kqilMRFw)%56`k3M8@_T*rO{;uFHX7wK2W9+RF{V?)R>n-JesZ5+2UH)H2 zTIG_m<$vsElY_}w`w-6Y5X-`XO!&2{GNpY>uUwF=s2b)69uCWTt=^!hItIf>gX{iiYQj*RzmSxt zks|OV$`)%%^}Ifw*W14^Q+lM<-&5=FtqWaWUl+Q$p*D1LqdIThXtK)aeCce8tSw0| z)=Y%143&NdDnr6JZLdXAi+g$5nn+}A>NI=W_-z2WU1uAc2ItyMQez3f4-jW`J8K7< z|0xrWQgh=lv2A^kMD-ofWjO27%S-%lG-kI^18oKhILN05B1PARL z7Ue`|^`|mdl7q9~aDK|)Ee0Y|Kd5l#{3X@@y=BGABVvUG`AcKvowGSU<5C7Sl_^RM z_KjQ*%*>?p1oN;gSFYxu%)A-?N?AD>_tv)KPNe;>`Totj+Kv}DU!Q7Q-h_oRt``p4 zbdQcMO8N6jBJF?2hRmPvK3{0bzs1hw6*RZYENq&!llOp0An}s@>%Lc1RQ+cyD}FUX zKBqEzz*)K&4>%;Zc~nF1ZQpL8Y0O8iQ)YX1+-ZG8lIwNf;bS-0gT@KZgkyhB(#__1 zY4dy>+q!&C@SJ_RN!#-JqDaS|F*k|Km*DGvvE;covg&J^uk0sp+Fn#Nt3U7W@93vE zIdkjJYLR@(|Vb>;;S{0cHXTBI;h^#d{EPeILA84&)^`D zLS#oeJNe|ZlKdNLeL$Q0&RRW->~~TgyzXK|(l`e(j0ipM`r$tpGp5=G%9>w>MAbzj zUR#}O-j?z|V8oHmh6mIrVTlvuJaD9SY~h z+^uZhe;1>atIHo>z^^M0J**+Jf+giY5Z!Nnnl=znX4-F$9@Q3@F`jW-#L+YS&HPGR z_FWcP^%k_itF`4E|Fo_kTJqP!%&?lyYf2%6>)BY8a&{V#upnFhObNduT}O37t9JS8 z{p0WL;&ASw* z#+y(^IXIYJ+`?mq67P|8!0M`8xwtt)(tTMfGrtOxGo6VZYRa|pTh3xnv$;m?cCF{`O_ zn?Ic&Rn^R7>CxR_%FH{GgMlerLra+<&H|yIn&RoT+konslV2o>4){73wp_ojAOH7x1sK z&s?fqKKl_>(mbxGul1j`LMZ!3M-dH!Wp3N@mT;|qkK|s;pTogh*q-v6rl&T?n>Yiu ziPxJ?e_7e`^J+8W)BZ7JbT!*H$7jmt!Zt3H`PLm)ty})lp@Zmar-P*I4INaQF*kEF zH@6rfNM)BHM&Yt-ozr#_z@p{T6r4by#w9@`T|26GHTPG)y&~*Cb8v6l`z%9e@vw09 zMMaTS7w~mfw`;EC&%9Ryim`IIdc%ri$qbk}vwCM8K6ptwTXAo~-~UK56OugTAhgl$ z>Z2PW{MgaIymDdoR(QZa!SOS% z%7mZmtiZ}!@6gAp`KYMT*-}d~NcH}fok~?-`J_~E*Xd7(bW8fb%xQi^9G!Brb5Wnx zJJs`BmQV1H<*FnN;RE|pym{JhsAPy{?C%#iR@?Ghi9mFv^YG+pnKv#**R9J&M2>BDT+%oih!gK^^xCrPvaNS>U+f=)2`w`YBQ! z@t@Mq?0T2EQ+jkd(@?d1Np>Dm2?-q!iOIuzme!@|cqaOUxw~_czCEagPIs<2vbHzX z^XmAkLZutn8ZUOc_lFSJ-3zj%ZX)tC=Qh#a((r8wpC!9Hl&;?1{4az@(D8S#_#0Hi zQT>yY3|EQNL(o1V4mB_CK7MKfCLjrAou^Q45HtQ&^?|(fxBCyQ)>ciS``)fpTP~dN zU3|tT%9>w=Fn(UfC~AN-H8$3!_#CC5#fS3$5}9jmC3n*brERR3sm#q)ODAl0Z)FgQ+VRrv-`&ENKS^yEVQ>%;G){$c6F&5WQ1X>+)L zeeu$XvwHbje4Bsu>9*ILrJ+p|t^Mi**3P|OTpeOfnOdau1#+W{tFb2!&*7dJZ|JUW*O^8AoznHz59Egr;~ zpUO_YWg;r%iDER|p5XQVRqHFSm$_GJPDl6hD?Y0STwamN;A0wqK}HB%whfkXK`ya$ zmegKwyLEp4c0=cgZxGU4i1pB(b8u^BJ{^h|#_`>zvNPk@A}L&v=NkQe|M+_~bZE{? zFWfXQRdn!g&}Fbi2GH$)>=?6TUOeUZ9NfXS{nc>c!Chza=VK41G9Ieb3#r9ZGdB~W zTu5Hmywc3Vvdp~l>OGO{cX*`q;+^TmyZsjzW|ux+RJV9XZO?1tuFl?iK0468Bxdvc zI{%Hj&?T7Y{P-mNb@yq=`e3BvHAuzvw;q%SxtQ&LcA61*MjK&`MD_N&-*lNo?6r8Z z`uN@J&G$_u)hF-%yWCGW%IMGjNq>2myF{`^(a@s|)GdB>LAK@jqN}sBKVRFkZ+yzH ziAs2r2Dq*Ixt1@ci42o_SLeT07dl6pTS=Ys9M49AJI`@tTg_cO$Kz*uxc^c3a2t8J zO(kyiFPHzbdAKLzE)V)>E@Pgqm9gRdj{D0?^?X@7RCS97%)=Rtg$FZ_^yT#8_fR!? zs(-&4UrriDy`;`RQ5U)n-N!y(vU*EPOb_=>9_|uIA<4*1V$`nS_l5k{pz#8X)%xZ8 zT`YbEt|U?Y`rT`JHXiF?e_QT-o|ke7@~yvFSBBj^ykK2aAVI9tkMx2@?OuI zVNx)E!Is0?66wOJ-L;p0JB5ks?5Tb(LC`yL-$lGCb56&{=OKjMY5%#j^LCwc0waGM zzKrKfL=6f5Kwb8Z3m}N+YRS%pMxEzV@9nvYZF7;@Q%~1nN%MX+wV8_OLK>f@oPz;9 zR&T-HxTxj4ynMQ??K4QaJuu1o;&k<%=C}09wbgr@0f2k5q^|ni=CwQ+xjs)8+VRy) zL)r2>Tz>-;u&8eFJHc>Yl`Z{LN*PpXxFb}@a5MC^G+yR$X52Qnt>#XKw->IY=E@BB zXZZbdeoG`{A5HK8nc}ZlIvW5&x^dC-h1m%p~9I3%va z+cs3-=0qvVURmsKYuj*P&#%V0em7fYXXjz7z0$Tx09TY*ZQj9$@xC_5s?gasR`-gc z`k7Vvxj>D#Lf6fZBBAu;w(pl_Oc+;EJ5a?*maeB9_HwypfczP9myfao7s!Y;-N(3YF0xGeE^&A3r*rl zrQeoe`jolVTO;>>gBNkDpSt_o<{9*8)Tizmel$JR{kL;aqIyFl+nT@OaXlLdS)(2= zcs8DZ$GiV4=Cn4 zy?4dgwToYH<@jwcKgx^Bj*)WsdM#dYgdn*C#(#r0wmA+D4z8eCYx7Ys7$WVZ?9bDY zd>oaWZ)jqXvP2qF8EdesA9@ptq(BfBDZ!8ARMB%Pl^u5E)TgrY%CLEc<_h1)qG+X1 z!GxwUo6iQ5`GaqitI1)&{*<)*#&~4yi;z;88{4Qo@g%L${hYSoJ)VZS^^D7kLDtT= z*rwR?+3>gg^^vaajABn;2#ogw*@s2Gk*??4Hii?~HLK5p>)r?}TQrgV3k?BzKw4$p z>`#ku5b@PygOe@I3YPXyr~P-(NB7r)o9XYSx~6*K@^St|w{wou)3(1AI#kZNVMfkJ)AB7sb(RaeWcZVlyBg0BWM=y%?E<88%t4d^IjGPmLe9zUg85ZT}Q|jIF*N| zFxLR3$b}IIiroK=z{F*6=K4MSD}k^y&Xs56f3yA-i{G8jEUB_?mYLSg5;$4v{6j-7 z7CGpRdqpHPM^0bsHPI~1Ol2w{7<(~d-f03%k@l60k0GUWc4kP*+GaU!($z=Y&iR8& zZ;Py*h9Pw&F~I*WJL`J%-*>tXgs`iywYK6$>2~?aXpXN9g`Y+S02i`$=fdo4aL0c( z{FT6|h_tDHtjISlqv4A0CeJ^yg&t%g?8bx% zB8X<>?u#m$SHm}lPx(pX`kiS)*KLnJCW6Q`z*@$~UhDrFTQilJ?*AnE6I~CIZ%R>t znCH}GI;oXCkyT4Dso)%qdup>CN49eZw9S{Y4eu*xgHMp-x3hUcHf;S~{-e-;I0;W+w$f>)DmzXP5m5LO(G#O@|&ZciI$B;Yp$$&fuVeKaU#9inPC^ODx`F)>Rf#i2w~ieahL3 zB%94oETKPR-9^l>p-LP0G(k~56Z%bvQY6=q@?U|Ufec#|ZDe0u`(}0P6-322f_A3f zdqwNxoSdvj`@Z~&{H#Zw*Cxmg6J1`7$j{Qz*{RUdXniNVESA&(%YZAk-|vgI>H@^t zb>vJp_9BSAWNS|)Qe5opaMs`EmtMgcaeZg|=TQM?l3YIlcu2J`d&*HK-%nv9Ca$1L zZV|ECEG@g?kwjAayK&ay++~0I3e5LK(b>||m!uu!cH0llDB%T@BSuSqBI%!0Xpu3` z3u6gs$`8U<%#W-qt>RC3&fILGq=bYK8fvExm7#wzYk2 z6|I+CfB-5DU=_p*YSlB27eLEJ(fNLBpEHvQqJ6*b|9sE?`9J@6o}BD+_ID_iF+Ri?nPN!qxc`icE%%PWL{y* zcJSM&#FjDKZV@IHfq;@lgw}%imA&<|n?71@(_1Ch5k^v)DO(E=&v}f0S72R^y%i@y zppx<~FVhB+A7g75F=g4FG*me$)>rC8T(nKP3ezo*3<;K6tDFNHM51D@KF9(i;?y?Y zM*T|y4_bl2MJ^=(4SGg6V7%@cO`vWZ%-=0d*lx*}P(>Wf+ND9`>}nSK$htPYyI7mP zjpYiY#8nWw^$lHg=>CgR1Cx@BqNKp2RHG<0Fe$?*$_OMFiGfKeMo|ja%@{>oJR>)< zu;#C2?SCaVxNsTmcJ7(ssB1gIN>+z2Nh>_L$J!6DUd;G@v9XV9SUGNuytZ50cms{` z6l~Li<9NYZt0-ugLp{#DyN+=X7t%%wJ}`T4sQJ!AF^7E1ybT*qiR z?w02+*u1WeFZS0kbs8MLg>?ZngjFj^%(42XxBxyVwC*Z21%E?T8DEEC9TK!B-Cwiu z?Si>S&i2^9IOBs@`LUyJ=b_-}e@HgkV+6Iqc(CY&QB%wNLXqye{Ex!>WYfKrlR{yI za6s8wOC|8)eBLe$YD4xg&Q2>>qbM{Z>I|2?9#NuUNvuOd`yg(K|!4)L7l{q+z49CI_0kWd0|<@sTy;rbDP9SRmhbR`lTA;blP^| zuADwcuXpi>&zH?4l`Ph$GZOM(lHj_o@w@ z7=ISk50KIC-ZYPxHmTSdNtYc6-PocV*4|Ap`FXAs(z}WaiN#b~JVUugv4~0UkszZu z%cto91Xi+tlSeR=gbfNy)yU5HQ2u_QFU7DbU18KJZo{zdv=rSbQ>(;Gk5%E2J2Epx zU;m{;_ynV`f6vz9vChVZT8D2zV9|=EFZ*g6e@Yovgod+X1@{tBvT>xUAiMNPv-U=7 z!7d4va0MnWH5TT;#AU_AmUz)P7ts-b`pm#&pQ<2jnyiGwDhI@t%zlNX&Nfv^B>zS+ z?6f6l4gJ;x8c{gd(oZ3v_(jq~E5PjNmO#)m0O3S8$ahT1r-LQx+uEElw&ix8B(IP5 z7qj&$2I(5+$Wod8M(?^hIDT8p{)Qo<`JlMX!1QB!VD2$wrsi`uK_tRX|GUu|#^mKX zX4#E4-9YMj010nL=to42Rt~opKic%s*uc#~YIWnKz|_IIfyt)L?H}}Y8)Crpkcbkb zLkcEkY11ZU86ANlSMD~hIhxiHn3a;d1ByDm1DWz_Sufm}7cO9ajm#Pwn3WYM;tcQKxm2+<8c4Fr9bw7FAYcFh+ZI{}ToPuG=kp<)}O*b&HX2 zSBdeV|DnjNyj~fvdx*A=?KLWeKa10EVk4v^P$n{YbNhYcXd<#eh}fMW={VzH(}BLe zz6!XxTiHcieWo4&^NkRg&K(dAV;)REu^@c;p3>m(m%V|7i*+`MnokFNO9EG?mlW)* zKRsMk!ueZXS6AvrCzaMgy^k0_n;$1uaCMd*7~j1~m7jZ1FX+;>DaQ~XULi}1L#I;@ zqTj0T`c!X<~8L#g;h*FQFXvx>VZrRfWn4lf{8!W6adY$^f^ibAmv zU4gi&8RE|2Zlyc{K{iKHO?bFQLJK#n$=+IcVYFJtaukwN2ou_EF!lpKv8ebA_#btq zF^V2)z@1DV{}1aU)ce0(AE~u&sQRc^8(n+XCtjaweu`fHp^hYw9qT)OE2))klfuU3 zU?Uw@63h;ZBEc#z6TvE?fI++cY2ny?F}m?#2^>;MBG>a7$MwL)Tw$4oh{Jq5l{+mS zR~?Iz_g=|lv1GD1nn_Cd62Y%;OFyf3`W}4iw5E1F@OY!D&Jlk`_|iE1Tb-k~9Ptfl zY`Dj|5{0}wbZK!ja0x98ppfaUKgpxPDKJk0gjODMS>5} zmQ5ixlxz#W)FZS;tUNgT>?}h`&Glf$r+Q%OD&0WtVlSR_0~DCF3Z_lSv6`Eh5=1@G zroY0ns9_wcQ?-Tu>VY#X*(vPEBrDz|r6NN>WT4{J!%gw{H#ZIg^Yp;{6g9hW-6n*? z_=jG;6IRmLiAq6V{pca8t~LJ$rMe5Y%Ep?Qo16BD@gd9sCiNb*7SPAdu4C}6El0e@ zX5Rw6{r$fA`(xu5HrIeA9Y@4pu*IWIF;Pq@f%i9m1l(EA`6ghPWQZf&-`*edFaUzH zoL(d8bsgzHivxDj-dxST$o}x-B^()O+ML%jX?MEueoGIWX~W<+Fwmu6t(J%6m`rc} zw%7cgXU(ht;T!F@+x~-p+x8cZ#@aq3e}C(@w)X*H-2ZR4S5$saYVT}&26YKW=N}Qt z)k}Kd&PEz0%)@En5iI*5v2EzhG>vum4+UnV!jfo@?a&^RB}`!s!lPFt>H$lBr8EKL zJ1sm)?%TE!U-T`B!6WWcc&D$G#cQpi8hJJ}$`iO-<`VAnQ6$OzjAO@rjW) zS06?Aeq~j1zkg78O_U$d1J_g8{k~;78^wN9W3Ntum&)Jm4!R>p53%HdDq871#?{^jFiuOQpS5`SZV{ z{96}&qwE%u@BFvQ7Pd5cc7*x#XYOZ!h2!X#Ep6;>9SEtNA6f;0k!vlHKR?z^Lxt&u zVK+x0n%`PH)A6qwzxjMLeIlwVqtVE2Pl)~%S z=uGv5>M&a+#GW&*9_%i7saAuRcWz?^JyyG8J1wy$EI*v7HDUdlltf|Lpw3K5FKKr! z6feZ2`P*|lH17_BjEujtp!iA_6b5;~$a{>PYWdK!kjUK$=1kwpa-gatSe}=EB+R7i zVC^9J<{q?H5Gl?>+&m@s%@tr8aC&#oBH}XbG4_!LK>;xq!rB3)qpczhDKXxGeib{9 z##RurE?M_m$=1Vm9_?zPPQ}#xj_0I-Xulzd4EfJibLkZ^t(Tsu6iuUEpdz-!MO-k} zC}JwDRxqLBK2fOK8MsAFsarh-M`F|Iv7YHPR4(-Sh?-7S;nswzw#5<=$(vwQ@682| zaU+|;q0nz+M5qaMI&YzI{8JfVhbB6|gp_H{8&m0`xK8*_+6iW50euS$Am_9;tSA(8 zyIH99f^f_3hMVmU8C%&(f3QWZx|%D43%aqbm~SV+W)Pi1MzT7@bgrEl>A%M&oz*W~ z)J7lC8PY-Yj7Xzh!VE^2jjC_%qZAvV)Xe`|Xsw z>O#JP$qTvdgI5=?9q2srn#1c+$-pSe<8`niL`A6GCf~$8>G&4%`h=BC=k+wpcLvBf z+$ds;V^NCvYME-GZ=Bp4c1cN41l+;QvuK@ev~zguk~QWtL}BQi#ddx6B~1t38ei(m zkSwZDM`VFTMv9~9?C}f#Q_UwZNvbJP>Bv~xCJMa#Ea}J}q+4P?Bom>%i)AmRS)x#Z zZ+>q&DLnog!JaIjV*I$pUtK0Ssq-oMD!3>7q~mn0$VYmo=Q~z8UTk~;L|it*>Zk;{ z>~cBd!dewzBGNRgs2<=;cu*XDvH4Vn6poU&IbDV5i(%7c$#sAL^G5tyd+O7Re<9+| zKw4U&6EM7rQaYO*8`}f}1IZ^6oDSHqR>TV_h!<)HvG7k1T!SjmEqF*xOP&B1r#1glaw*?m!a>cvlHlm;z3uNOvfr&I4tao#!J70gx|QlJfa`Tb ztW({a^7uxyjI@PtIEUml5;ZVnPO;N5HBge564}Er(VB;mH)t@MeP*rYMX5)!mzbQ9 zlN?m?Lv~bI*Vs}0V^~9Q_=TE+N{f4Vz|f&Zar&jI#uR!0DQEZ(m90(33VmDA<`Stu zp;VB%>aw>6?>ppiB9$6%NA|?BHXkH2tHeUz+0@XNNd!6Y#rip#GP0+&cNIE&`iJtg zX3^d#NgT6=#n{QEmZFcHIgWCHL`x#^BAFa*1QF7{2T?UT%)dd6kn7$E)&s&Zk_81r z2GRx)VOqeGmty{uICvbmpY|As%?;M)AwEHyrv-|p5Vcn3zd07dh?+5`NSi)d92l|> z`6(P!rfz%$6lIy^UbGMaU?b@qUCB=n4A>p!pINb^Hh@%H zkbPffgcP>2{pTR{g%jY&An+MVK;Y^m*~1f4R7?wqfV7rjFb@(pBeDDy3`S8Cie4-PIe1$)Eq8B9lKx`2AVjD20cT>-FsofvC3>Y;XOYzsSpW2TGquJ2TsW9*Q9Rj}M=Ivfh@6dq=;6SQvFR965Em?#< zqDb~Vt%OfT6OvLa2%MCX?xHHBoG2;(OE5c_w*Oax?g-Yq33Zs85lMIgk{$apRHL-t z;csSSwTX<55Ia;Q86^%G__ee;?XzFv1d8ZnHv49zm~}+KdpyOM%XqhmwAgwDu76!9 zvDMOiNTeH&2gM_(7CbD%Gk+|ftZ|fp9D*O4FBE+zhcS;oAUX7DIurn#>8SPKG>fZyNuK!+$v3Yd#4iPyI^mGxYgP z$^W~OFXtO%aDWcR^RmELf7s}40h^IUuM@fyi37r zPLwbq3E2tA7Mx)8X1+$9Xx|i?E>f%DoV`faBAG9UcT1bsXxEwnKh-QgAgvajL6n*p zCVSb_WR`{1DQ31{x`m}lAy0Xyu|H55Cx3#EL>#k{m#*Ya0NgLh(bkpxEN=pA+R(uZ zh;iBi`6@ohYr6G%ERuPRWD`uA{vT4=3O*v4k40wdkPPh=({()W-Pi(kUG5MDoP!VlHQ!+cEm zk;*o}>)!+b zv~$s#r7UXbyH*8A?LrH|sTe(*FhtUKO}I;(ffmtG)wk!TXlYUYkEv1#J)++h-Lq5B zUaJ)&DL=nWc3%!cG(d&n<^wcOruER9_$V2H1@c}Eg+vxTW(-HW%K$OdWE@+lSkigcgCr<%FtbNf1zl_fz$BFioVy1#)K8CoJ z1c$vMGraK@2T63}s5kecKf8F%kAyF6-P)(0$EcKp9!?Y=WR^0DK2MyKViX;d*;n@d za!sS?1RF#yAKOO9&9gxu3a3N;9Xcn%nnikQd||^^IH6$LYN`;)EE(r?gys|aw2N9> z{CbrB4S=UbyP_Q%7?Fr;{qdrrDK4#f5AhT#Yj-xutDv*i1Zp`HO8Z9DPgJPv%T;LX zFN&gYa1NDHDD1LO*q39YuOd1Y5rrT+6n<#UcT1KEN09y{KLni+cnX!UqH=t@7ruj) zj`}GI-+g~jxbE+IE*{TQ?F#rBB%?p(b`*a1ysiHZ^)1C6M*luY6N@)s9>C=eHhfH zoUoqzCZCd_3JZ1PulDO`&uo$lprt)PgT_ETm=7fVaw~mEFE1L8wq91BxbP@^0%HbB z4z&J-%Jo;NOnTrTtK|z~nM?)Yu<7zkM$yd>n-r+fpKU zq|a_x7`Hwa(3z~K$ox&ceDe6fGksbiFD(%t0%lp`bqHywL5Dt@W|ed1%fg|xH$ zukoIs-sk#v@}8*Pi+sN}_JsjD9N}Y^L7-&XO@8D!#kQ;_Lm5xOv;yYGNM@IW8_9PO zXjRZ6Ap75qQWEPs2Jc|npNSgDyj0Q!hBQk$5bQENFyck!HDL@+Yv8oVKTzI`yvkrZ zT{hDDu}FdqJtV81>(fc%e;x3+B}p)CkyX0tG-UxLx*wVoNWPe`{3EhOEqR?L%!S>% zPiFzhrxa)NRjE{iR(AR(7*JQN0R_`iR7LL?B^6EHe~cKxw9mychP5*QEJWqNyZ`W*8lR?QChKvk#kYHkPQWdR5e+L=EpzSr{BMO&)}A_;oeE z%CzXMJ&P&U-#?I?KmdhQ#^$`vK=LO?mEV#;@;`Zl&+)%a#Sik{mAsSx@{43H$ft;H zf#fz7+n1qo=t}+rp8{NgcPGi7;yaSLP9ne2YK9pu;UC53BXhre|J0s+T3ct%&?krr zovi4xYR}?cB=yzQ&!LY{Zz{C@13kB0$8+BN-ssk<>JaC5@;CFJE+QWUol$8gD>koy zXos4QpK>gwbOOhki_cJv(BrZb_>CpDq;`>nv?_r)+KM|iKCU#1`18ER?)?|vO@=uR?WDO76OgmIbYj39lK1hy}>P~Y7EYk-J0Z#;V0aHQ+w`e=GDWd$eG{_{9$*~$IkFy z?fLoeQ!es0-(`NK0>K$f6~^3DWwXf^V<-)^uF0Y%7E!un6hzfjdX-o*f51+!OZsW4 z{`b{7u{BCR-D;5UH2#5J2Te{!m5>G(rAm8QwK!CBi&7hMj}-Mw@?Rh&6j6f1&i^%2 z&I1rXsPey>{IPe2dV28IK2BdjT>l^d)SjD0dtWotNupz8EiCC&yJn>}oK1+;;zNww zxDeH1Yx?XeQf&?Y0)CtE(z4x+#)!1u2d09v#T?#Y8^$%FBsi1P#P7OL59Ugwr2cHg zc>3)v!c3r89q~3DPxOD_4PKL|=k74YUNqTl9@{C&-A6?T;_#)b3?(!6d1gApe|8_~ zEcBff^JRSC`}3aul=8hC?cHF}Pt==YvSybja1C1P*QE&GfsB0{(q1>ZNKzIg$rIGi z^qp4ObhC@;a5II|c+AqdwbFLP&P{C?;zQg#P6U>@o2f>lAg;?d0J{L%h787?yYbz1 z9^?9y(v~(5*!$E=FIvA6;{*S=@KS{j-hvap;q+m;@50KaTU-v2RUIqIJ)r+gZ~yQr zwkw)A8<*S75+hM-&ZZJ9kxNj34X(vP#oNRYounV4ChyH{b2qi+F}HX&pq|q0{|)l% zbXwFfO4L$vkGY*4@|7(Hk1%TvGuRh(MHuNe=hnhVo}8Zith9VLhvm=Yu-OM%bD7m- zM#@|fvE_c@L_szM!2wt?<&ie&jXvbXCk1iFVZ#CNQs~*mfmx}+sS#pcor->M6o38< zq% zYZK7kA0GNUI3yG}*DB+Z@O?;cpPoBs&YYtk^45NAXl@6p`l0iQXW_@gg}U*z)+`5c z5l&DqSE!u#7(NM&bg)2N|Aj0&wH87AxaMjbFIFkLoLi?v^5QDKE*wfDq*Xt<4@3)v z7)z@EQ4RrJn(v_kTl?mTm?R`J_*i)-?~k}P4Ft+i$EM>o9BTFi7Nu)H#u~<}NXe0M z@50=QVs|`&YHVRAZDIB7&^#Ua`<%^yE~IXOwov zq4wfq3bhf!D9qNHXVBzg(K3El266aw=#6(zXv3^XDNDW!*t!(z={av(a0aYt!RmLL z+O8m+5l;AqqKN+uZ^7$Ya{{?Yy=9|ique5*@N+K*F_h1B_{f=l&aQx?*gBO}ZZ90& zKQ*}E9B}kqbias9Q@O2SFM~#AgN-oK4s;73{2rq^Rof`S2<#Wt_%fLpQhb^_Sj^E6 z4tI;cu?71Y*q-yF`_!gwK$@lEVvxa?p`v5Yd(hS*XC6K@E#;tFCjO3GZNxLcaJ0!^KCJe)Z=f_k636Yq2aBqc8TUaZi)>sdzE4r zwe*C06XVZeHjokJr^B3lQHgyIV{%4ltn}8CbF;#Sr9Wf)DK1n1t;Nle661y9fE&~< zmyuMkRSSwG0XL`f4R@--<1fjay(UjVn-=_(cQ+=mP|y+)cn4rI-+fqJp;6DT+a#uGk&xu`YKs+bDJDi=wfVa6WZTGpUF(n{4ups)8i}F z^!Rt<;L(pcnj~l+OuD9EtN&RxR+PX|n8ZJjF8rv?kGMAp`b()7;z}-B^I+aoPFnK- zUW3yT)KFqBI6m~~hq*gs19zjS?+P3@%BmW&mfH>1htn*65}BzGEdiYyqr0C7^puva zqUW*MuJiMgW;+4ui)1V@M$jtreqtyCf8vuTK6k4$u(%D&1v}Fj3oS?JN8d%^G8_ND z1zvNkls4Cvz7CQZ)6%0S)NGBhMv4zz#J`^L2~<-2KV;p#*?G_?N(Z0qx+Ib#6X2Rp z!Vf7>JV<4v&4Od0U-J>g_t&0c5IM{}sOW?oOvAm+HzRg=MCvJzj zkDBdYa8m_JbKSmd_frx<^%uR%ncbmc=f!KsyWk7>y)S}O5(+xj z&9d=|+g!Y&Ru2|9%~=N6j_0FTqEmN-4Q2-rmg?L*90eY#vs}r` zyC$VW{ZR`M#vyF9S_#;==rGR%BP4-0E`cQv?NwiG!@VSptFJ6}{~Pt~;0*4`^(~j; zDVr*rhuI{LL!gEWdXKkRs<}m6SFg+1MZ-099n#xF=6#^&DcUEk49#VH$F*=GI4DV$ z#V1h+*L#0`O?>}o7}Q|)X&%UbX*G-3lI#W1URo@DvsikhP~I5V(n0i+>Mxi1BByPo z)eCxhNo(#)R_>-_Uuk#UMlB%#5Sn#86Kygx#LZ`!K zohYFIyG!CyL*KzC8UsGb|Iq6~A8t%{hPOuXJ%(?pKZJLnDdcQTgXqVq5)}U3PY;KG zp{5sY<5~2avs*~7##;|Ph&w&7T#cZ8ZQx#>lEzeWg>)tM;k0HKA`tCKETJ05*S{^| z7Ix35pe?hp<0Wg&X~e5s|3PG();x%C>A}3p^`Ay2vf^p_;&km!#F8RUT*KVZOau9F zwypj0DKyn+GKn4fE;Dym``ZcLJqOTI(Kh^&(LkK1G{RJXzK0FX6<~+)Nq8Lkr?Ql4 zu+~-Sdb^248J#KLil*cJyunq@hBev~Xc@I%(e#e1-!5$WQ#eOksD;tq^tM*e?te}% z_@w?U)op{Y;G9ls*y;v&^+t+h?w#!1+GnKfWv(6&yf#Apkm&Qpd;MYdptt+)@fMi% z=s3+vXPLp0am~-A!+qjKA~MUeO4e*mDmVf(l#9B|I^MkA>I2LDky`V7k~SS5?(3i+^LHPC#vFCD@kQdx5qU?-p#0OztW>=5Q(YuO=i4i-U4_baAR)}+1Z?YrS#ghhDxTVIE|;&}vW7p;uuW^0Dz9x(2$05C#?vA1PaLE5oEVFWWvY8fy*` zpALLv3BHg-Z|p^if*$O3HzO_GZeBq5hVS5e8sGH0IS`Lft#r|>^pMzWdp-fQ550p} zLcqutIXgY5ybux+`*Ie)(d+!e`j0kIbV=a%*)EzWyKS&6Td{f}SY2xT-K-n~F?Xzg zP^Ro?(a7tEmVa!_)yE0sT>DqJYVx!T)z7w16tJBP~3;8(UJh~SnJ0$u& zVKT9;DhWQA-Kah$T%+nL90~!|)-1@I;#zX-S~b3yAakNkFWlO5nis4>N!zmH#)Sq(y2}%A$!Kw<)gGtOAmRtFcsPOlE2kucV zkZKv}q5mW?^Giwgc#@kLR86QbhXPt=QmLoOiS8S6dp*Q`Dju=*#$>1aY3XB+` zNp=rfw~gt61kr)cp=$3JyH*f$#aFq-|Mm7tL9jRZk6L9(IJZ#PqV4}4FVbjLT7e$EmvB>KarOt9~p z2?j}m(@7B5XKp$CEB$4Y0ISa!?8Y0yaI7+S{*y%eSO~@1f6C%SzIIa6{wYoS6)Ba0 z#D_r*chlEN@H5TZfmoB7H@=^C=X1PDc*|-DSNdnAqJh^fy&LE&64DwFKA6-P^tij- zMqkw*X9*%i`-5B|h!+z}4OB%lLPu4H3XWLW%bSfj4tihZvPZ>{aR1V17`0GgPxeah z_e8^)V^#Q1dxvM+NK>c+d-tbm{yxfAVT(ve=LNwYT$v>ONpbE#D54Dzw)A7(Tlqsb#`LHwX!s2k?&m=tu)!y;y%`5?>? zqmj*iJ|gc>W`D};!8hQSu!(NKx|ru+sDX}*Hr6gN^gHSP*m_i&K@F_o5!y(Y7(OeB zCPK={j_)e+bC?4tTHWYj2_KcE4UnzSJa(2y1m!x8l7=+x$=TV}m00TgHEAHq!YL?N zjUsQEb<`{;*ciH=RyQ^zjMkd3p{F)oPRw3I&+&~E8A5S-W~B}3p;Tnt_6Q)kL*{PG zV={+4M|&NiX8}%AhzlRIkQg?nv{9Rwx!_RGBrE8CB9Rm0C#cZ(Nuqj7W@A;)$EinL zsg+EIKSs1GgsG=7a%zC(omdeRE(*X!Iib)p>L_4Yj@hG9)GW@mYh;GGABd#1ovp)w(Zsk2-(W&6)kl3E)2}0Oi{AdrrKu*k* z{KH0p&<_X!nV%X)WY`+heE{tGJ^93xEqFPJ{}dKa%e4%mc#Rj?Z|9hnJCKivSuDu> z-EBCPB^fyjb?4{|VG%NqgHC#R((SslBl1q5Ab&fmyAA1^Tx3<*ipi{YXF=Dxqvn4N zk!o~tk6CGOdRF_fWUksVcA)gw0{d!4=|uqBKW(T7V~n(*&6s+k?vs+-9XbmXIZ0W* z+Z*)!;6(VW9(?EWvm~*nmL#*K@k#*er*pBNh;kW*`i%MvcRMzQwP!s)&1yP0)SbH( zGt*{Pj^H=AEDR&(`?Z!==p1)oN(L0I<#%{Wtb}uA9%@#sxDLAHfYaz%q|jPRdeJ3Z zxx@S-3-O4SV;hlKzga-oi#t3;CePPMCen*tD9WQQ`&TjvKaG6k6p;-T8QK<&yg?!d zE&8Gd?@`U5#vYK{Wqx@9VAr*Vj!LiA&@RFt7rVkPtd*n85z)9C+mjdJ%#7pUM9v}} z)-K+L?F1M1&w2apkhP+ie{^Ab>#&wi()@Oojfb@b$-}9{`p_8Q)WY}tw9$OyCJ$Eb zyr|pWkWQ8=#@SX#`(bVPwo2{VBbD07gQBpa-I+#PjP_z7Buz_9)83@4rZj?3F` zcM}GX&L}l@)nBHU6I%~tZof%7WOjBARa&9`C+#4!E!rJ70Kuje^pIpkJ`Sw8@j63Z zb2~)vEXFH0Y!Kd;yksAK0q;%@K~s|jM9q_^P1a?rOn73i)BZ}5s!|~Hu z-w7gWKj}EHL)r=B!x>Co)<};oHmgLnh&NrX-a#gSAEbGWknZJTBU#LH672E0)Ot+w z^4|1*itP|Ns`;H(W#+$N)!VAn}o&+yK4KjaN@-=tY6sR&} z4MqKQybVz5xOv9;vDR|0TCxK|7)m9yvXw4Z0$GwIf6Z{3aFhX}{iH3F#vCQ`T6<)L z?q`1GTTG1#Dyyye-!PD=r+l9d`UWg4Kd-~aXhCN51?_m$8iz4cK4%vit*SS zy<85@)q`C$fJ`#FwY&GrAZ=EyKyz3G1)}jU>`xBTPDGOA45`apOL;Ohg$^yv28~C) ztTnx>uo@a9=eiU%f%!tcOm$5D$L{A`6m7{Zx$_EE-u&H}cnB9gK)7;Zk-K7&#h>F-RpP{s371?n@M|sAY7c<)^qJzCdqK!pZdM>vj zoh|Rmf<-PddB)oL=WdnEh&2~?wuqy1D1lySz%~SIu9~OTn3sX%+^K}FG5MPRqUj*2 z>T`305IhnumSWeyGf?3?Zk6X08C_v1?%qQJyxG2x!ge>Lk&*cpRaG9*X45B&fj`uG z8!#rf1@32t@{Rn8Lj?3jz@0$`3!tF-y&mn^rR%fYO`i|-T(UHKEV<8cH+_`kZu%!? zFR|S4prRIB7)5adWmFxc2~sBNmQgIVqu6=ESj?mHVkjQ0`dGVL z_807GCTJTo`H~~`ve^1L6;xTET>3QCc9hWb zjA33+B^a^PLmBmojx=rKCPFbYE9joXtvd`Uv`h-RZW~~9T*COJAx_4tJs@&~NS_0| zY@#8wC$vs-kZo;xHv^OhD52A3StqIz`(;stEw~%ecMI+0BZ}dnpUcuHnr;PjfxL|$ zkuDC@3Zu+lkyeb<%qC~)%$67E5E#x|g*4o{?)2DryxYkvXpfFw$Rxv8&LQW8&$IY% z>Kg4LvykkgokI!0USJC%n3K~em~Ih_DEPhVzFW8Ce@v+!A&`$i8Mrc5Ykrv*chkBI zbWSz^9A(WP4AjF}(e;szHD_f6fI}O=V=H=fI_BzqA1GSTgw}$ZaW-&m;TES_`zlRw zWn`Fn3+fR!KA2{=i6-P>ZP5+}J*@i0qN}&zOeg^!3)&f!TeZL|RD}hQ0HT0NQEPsi zH!>SCy_^6hMDlq*oMFjV?RdMi=D!h3N}y5#1Vjju16jX-FJ&!)Q4{9w;x;LBE>vK? zux>0CM(>H$TqXi~c`EsT^{RBca#nY$a1_83_&uM=Z98m7?DeJjAfFlYe7nNw8RG zK&TJiN^oXVI^{W2s0=2hPmhC!nphMU9`Yj{6U_GrGoeiI6WPN?@d2BL3)OXoCMwK> z1GB2AAivd-uPCwxU4x-bt&riO7}<2Ox_=UJ0*YzQsM(>Sfe}Mqnf;J)xLi} z)n|g?Kd=-Vb|T8*-q}~ivm-M%;yWa)X=n}NZuhg0TXjU=W@o9jL;Yq^3iyIBXNg=)Tx*$;V zjN#8>m>$|CK!PUP_(E}<`?&-LA#|Opg21)i>1H#0Q$As#``{%pyKa`IQm3HU$=#}# zPvL~$wU|&%Y7yaqxfc4aYA$LSqp7^m@SSSsa?!(M|&@ArW(_p5o3?5wroyXfXTKTJv5?7SP#%6auJPDG*iTMZxtQ#+wilnQ29F zOqQg#$|SWhmk{tf`Jap6{DgxMWPghf2FhlhZ6JKwt9;8Ebcg&yp7D(}XlNt4B6LC) z*e{A}bowGjfZZ+9YP*F=agA2U9m*p*qM1u;c};HeFDSFt#%4)r*lP>m zm+#pyGE_=E!Fm`7YfwDSQk9OmRVHgj>8P`V)wRrUZ2j-N!!#9i@fp z(TWd-zNB;&trAT1_je!Jf?8*(s-27CL+t=cfzPU~cJ~?y1H#VYvyQlra#Pd$>FWM$ z3(Nxe1Zo)4_{T2%izq!PF{GT2g2q8=$?x$VK`r-HjKR6ZX7@gGlH|d; z4`ttz!@ANd^vg;1N|PTYr57QE@dA=mE&=8?+CcJZ@eEw9EV>-=1ej9yk(LdAVRQ{% zVR`(6!^P;2lyB3WFX+y{H{KF)_+~hKzupX3>>uZ}#{+XWk>U>$F&)Rr&G86mWz{pW?JivA@FXth|&~m_}jx5IKO_h|cos=FDtcr=GmA>OVPOYHFjrxPuJQ6hEz>L<+c}C`! zf$o6Q-6g0Y{8^z$v>xFd+`bpbxq2N20Sjf6^Cg_mSeb+JkW94V5y^BO7o?DpohS0M zvA*fvCJd3>afndx%96N8&FRmyjc zDk}V-g0@sj`fC&Y5DB-M!{K95@G1m=X8G~u3KPM=BgzG|bh{-JaMTu5S9{bF})JKgP zD#$_W-un;gY-aLH&q|MPFEL({aie)mvacX}Frvihk|BiM%jC=ODV5uX;pknyTfNv7 zW|aHn$nY(QSA5^Ya?#l`emEz}m_cVW@eJMBsTaKEHO^Rlo|ltOqQtl~JI9M1M{4Tw zvbwkp^2F9a`?@X^-v*)VUw3+RbQpWX$zqLGRH^k|0)9?Ta$Tl1{)Gg$M7Sl#lYNyB z!;&A6ghPy1v1eiNFZZ5Yl|QITL~Bs0>SfCPI*jODsMz(^H?{jm2Lk!m2^$BT7~#@C z6k3vfRkTAcBUJ3Cr``OF^aZsbFxnxso({pt-(fRANvcCsn>y9`eNG1*Kc``UQdndI zr_&jnac04eTR*4&K7#8rvaCHCIoWC3R}nM!2y$LApAkHI;imEWOAoRz zcCXz>56b54R(figRQMqO8NU?^e>|8Q?`$_a15=DMN9fonxb;p-p9 z%x?9Np71Q1~fVh_X%NpxSLt0@Yi(iK?-IxdjcF#YV+soK`KWbvIA33AkiNXKBtFX zpoD5;?1}lOnQ=y~Y?9Uv_uK@;5Je9{dVs zE}bI-m}&Wj&jcOYd>6`*ek1v#r^sP%S8_J_32{3)eOGdSLgW|zg_?h`UlPbX0ux2O z2L_UVPkKoMv1^oA=HH%E<@Jr0_vvA)ysSvK!Yw0ttrVI0I9aHKf#l_QaQZqd4UD$$ z> z(f?qBsVg}L?*z)=?6#sWYW%8AAL^^AH0Xd4T^Zmglsf;0$&MN)5U6T=9xqW-9Abw^ zeldLl`#goQ6O~7~)3NF6e(T23n5FF`D#y6(;BJVE@3y81_v3@u8`)fHw|_PTh({#z zr<4XG6Qz&Fq35NW_k6(257`N(wp=6-;^J{b?uAb@ABArPKg1$Keba;z$<(MzF>Xoq z{l2S6ZEbWF(RDpl=1O=wQ`+`13qC7v&Q|nfA58wslcdP)kb*G&CS@JtCctg_1Q*q* zZ{g4^)G%4ri(vzL{+nohEqf-4G4u^@TAR{u-3TC|7DDCRrVvcNzKw31@F4$bJe_L* z5aTrL*(s1)=Q={~Bkr^Mht6*~NL7Mqx06Ig5}3!}9X;>g}??*4x9bf~}lyfX*Aoe3|3wQ*S$qd$dICvf$1v_QBQ3 zUfcc!caaBmr+J=C#RBOqzRT5`@#F=gPOVu_=*Fk!za;KS`Gx-opnj*&rKkQ1Ud9Uw zZO!MIO=Yb2H|Aw^6^cnrtHp8l0DAGuF1>tyMoIbiAm~hJugG=AryHo4;P^}2;~G-6U$wgvr=^(JTV+_by!7DmEN*+|cE{cU~Lam^* zU~~OJ*a0*%w`NTX4*#P!IQW-bq*+%M!%srFYHbmedcSWH@;Fdm8 z`9{F}J{4v%(e}kam(_#eA6tdb zSA|dLcw9BoH?(QOg;D|Rtdbd(n5il;luCp|W8O+M8aai^vdedFS7DZHCPXpPNUoQx z>_YymcO{qeEk72jW#kY~4^P5Z=>wExJb{Xg_AiqI#i;>rire|R8=cv)^{fWD=A@`AX}y#uj1o6Fultlk!KJ~HpK;q{aR%p9v$(*$ z>7Ak8;P^&gwfk8YQMpUao%@e4x}^Jx1L<6U1$ujf^OM|r*r^H?_j|3_7=WFG6Yf3X zl7g=Kz3!&X@B&&~bIwwV34UXBhIuxSDM6Ug8||X~E%~|wGfrTSA&HFK#>^A- z;cy#Rxl_$ICFPSc*hEw3jr^mzXCnc=Bx`Cg$vHJRJ0UBatQWM`oh?`{%#J6}-&2s{ z3!l~2w2gcAh86wQ|RZNTU<7JWDsU{=bOlmv(uCnXScU7cmD zg5A9~OQ0&^zjCJK(Ld13ugw5%Ka93VxF%ub+=1&(1ZJvcVL+-R7uK&^x)LvVIyZXk zB?Yh6@6ro)mWpARzpuX1rr)Hu)14|2@#|mLkG{&3e+3L#0=@V{$_pjI3L+pcq>DpI z#eo5Gpk0{3gC1jEbi`Zm*lrpkIfg*w+6W4|(tL|@GTAXzD@{z@_!7}h=wrq&z414j z{}K9|juEyD_a+yKN`muYgHxM|rOv_mCs2jzP>N7(O~?9sjD&R_WwwyZNdZ}I`<@SN z%^=amDcE1vmvhC(+$0+0& z%0yhidz!Dvz3CF_fHDy~K_I5VL6vs5Rl*+A-LHdQqM(w3{i~B>p;-1#&{b+b;G$@`8%BPy`O@Z3)F20AIH4pmz)sVHv|3@vern+5fF@MAm^FeZ zK}FWN#SEmz1@<3icu0U>K5IJ{P*R4WXZU}smvcHS*}XnIN)|lN&TgfGLz@l{&E2JzN@94kli4)fVZ(>6 zzat(Vy1|alR40Ox=G`08eFJ65r9Cl|rB|C%eEgq$*2_eZeV$xa`&CSx-VCD~)jYW} z^oP`&_4mCc!39A_)B8i2R9hTcb1U93A=#x!2a=wb#uc4YmqMY5}rv zoMwWYkj(J?#m$P+V15ixzX?j z+y9P#XUTY*@=mx&nZl}eDI&0V~2R01?T?DF>dIS zj`6PVJFYr!xntt_(;Th~#yQUGH{9`?VQ*hocwvd|z9{X=qMSn`J-I_KEWY@%p_4Cp z_$+;RR;G7E{eY<>eWzc2>6fRK<{j%dEx#;f`lvpA^DcWSdDQ4PlSYlvk}kWvJaP0D zFDHx{yCC86f@97ru6)orcHClT!T4d$D<>RrjJxUu$ApQGIwrX8cC@<(UO!_}Qt8a1 z;qGfZd#{*PY+gEh^7!1jQ`TN^t^U@z*Loj0Tc0}ZO#SNYjHxBR7%;W;M(yfpGt)|^ zKSBA0{kvz5nm6y7!KL$OZ7jNO_8a4_pYzG+1#|y6a^bc2k;fUs_Re25=Z5PZDOr5| zK2O<#^RFsjm_4?9(O*U_oO|ZTw-!GTy#ZMW&Sna zTc(xVxV&KUvhqdl(DyEyyW++VW~^M+a&`5}pU$bdar%r;YSOP;wetKq2W!IfZ@Os+ z!u0R@9b~lHzd>I`4i5Y((r7;iaOH`9UzR~QamsMpa2t7M+24{bnoV!_;KWbM^gqwY zKQeJgP3aH*_`&BBe>Y&or%SpI+vOgdIPUp}+N!cc6aVJwy5;7XZ%9lPVXJ{eDUM%^Tv5c-G0#(=Nw3T;QZ6_+#{aOdEopj z&Ut>|#(obEXvi9PW@pC30}iBZ?DtlZ!`V2wr!9Gf*1OAg4^F)BrmrIMbglX-@*2;_ zJPy7G@jOxURpd`Me-%l;<*UdwJl#B=Tfd6ru}d>!E%6BZQv-11S!_RzxUD>^cz(^} za3&-UNJ>60zt2GT%)Vte4LX0+`jm`GKe+$T?fove?3#m_OKNxZKO=ke+rti>nRV9L z7haT;d-0gduNYf!Ws#?N@)X@Wb=K@TbFZB@|GM&}6_v}DSADO}=U-jFX6?&Ve#$G_--j`fz{Oh`&fOzNAQ1n?5-r2$FF zefp;K>yKoVU!pVmv*LgEe^NV=1|$zWFW=o~(9E*F=iihuYW)xHPq|>ypW8F9*>y1c zvL&^*_v?R#G=7+B{pkN*^Z$=p|8}hThrXlziHQkGiOJG_hx4{?wBMO*wg0=@9SxPu zgMmD<1P&IU%%`@qwFo`SaBy8*{!X#YsJXN}r%lUunTSVo8H;8gs<67;> z!M%)U0uTB^>Jc7e5RbI=N}lmNSMZ2G3-DfP3-~VP5tvB0z!=>M#}FRL_gbDAJXi4u zd?jockHq)ztmIk7Q_3Uoy?{r`D&(2Tvz+H99#J69=PBfw#v}Pky0tuOcq({w9*K7Y z&k~+hJWF{bp1{2DKfa1A;_>q|e#`S?+n?z6uZNyT_C@`^%l-c_eOAp9Zu8W?S$)2a zEU};Txc8`EcXCg7)Gz9`en(g|&W!&?oM_zi|BblOG_7cKow{W`zQR){^7Q3FTgx$& zM*y;pM-oSf5FtW@2uO__5h6s0Ahwa^C+QP-B#%@5Bs`f%;y}~HqDrhhwtD~VFPdJ` zMe~rl%Gi}MB@Y?nGEV#P$XJ(gDQ%Hoe0uSZ&qLBkyl6g>r_c$ZiISJ(E8|;s-eeq0 z-ZG|zR-DNrLTTwTu-UHlyxCbd|jpfQohi?i+G~-l{QFS zvw3oOM({*o?BZSOn#(hsXC#lbMcO6pxR~b>o=bW1c>dk*+uA4X__j7mTcn&*wNu(7 zb(1=r+*WCmv`6Yah9|zgF1`f@($>*Dm-9s1ENv6mNn2$Oxq@drkF;CbEbx=|j^Y{1 zGmd8hkHAS_C~%OuqJT%{FPVEL^8EbbuOkQYzK)3dKhOWb;QwzpunFA%6VF{dWAeX_ zoXaC_{FBaig6(%EcQeL^$=La>XC~=BBh8)>q#OQq#Kkk4_b8mdyyWZ1|C1-0&$qcr zMC57Rcjoj?s+%3OG>5}-B6^@nRfN5BUuG3@mE$>)RKR-ueN4|YbE8d z*;Bo`Y(>>ld{?fjsjjH@xx5}qcU4upW=)^f6I@%f%2iu&lfRmb#X#s42hERabShG;0lcSJ(Jlb^cYWYHEEI(RLQa z%CD+kTCs+hSGrbK)vYY^l`pTVUgoMRTe)h5ywsNYs%j*7*wW!Kr`(32P7_y_Rl9s; zOIB34SnyX>R}sD14z8+RMODjdR@Btittu<8u)U|wD4z07-<4&xHv+B|71hgp%N^GW z(fU`GmHQ~(<*TW2 ztthLd!z*iQ0k^NBmR?;AyZ~Eu4Dc%}R@P9~sv3GM9y8`t#~^6cYH69T%(bevqP$8f zWtZC1zpH9%meqn`RjVsptIBH2R#s48ooiOz1Uh6^h5UCfSN~V=|KFx7qX(%b|7xpN z`CMQDl_Z^oX|c|-8%z76cov_EOkxSWE2-fsK~JCuaC(CpY^?K@`QpZf>WNrG2(9&( z`(hZ=(FKbZQO%*T3y}!bh zw`SOysHZ;r8}Vkwc}evg#Vc3&)>@rYwNl7cj%Qj)?-8BrxTd0PsjITKW~HmRbe5~K ztO_!~2&$q3fnb~;@`S3T)fa&WYOp|)YKgKO#DW$@2ZD^*O0u9?WLr^NTT|49?8rEWk(^x1xMN_@zcK7QRTo4lh#G5(W?8hP2G~~8p$Z86 zE3INIK@obzx1uVXj>RimQ?=5+vWMQ$=>oQ;RrI^U6@`_qRaI*$R@B+xwdjc`2O=kXQOw_^QAzm!FA(WHA3-OGS zM};ODFpP4DE8$r^_KyRpmA@2T}7zt#L^zX|SU0VAZ6u@*CCs08y>z zjfbiWqWxoa&9`JiOhr$msZf%NvXwHLd}USDQkd0aDmUa?--P40XG$6YNSQTWq(83| zI#$c9P*3w@@JX922NGEav9ae=o9^e7%S1nHsVvvj&+c!#11jQ1%rKe6nb{O1)l^g;vYP)@>xb3Z)Xs`0gR55r$E=Eq8*LH@Q9C)*rivDc{AT#Kk~4>U z73@&CJ)C9m!`js{l7y|GgB9(BU#d_*rS0+ah0WRY0?yoClb_8a3L7JADf#+WSpf7Z z>LsPrS265`cVUXH>zT?_mEvZAd8e2G;{1wgR;{hATDIKh$|=fqjmpcve7I}&@|u+l z^C=@;C1uqW!(CJSRZDAJb8A+tSW>Z+!R{zn;&SC*F=A?2^$1BJH7hFf3u(LZ6ojsh z8C_^1U073AD||DRUc$H%_^6>tdiT1Z`fr^UElFI1Z?rZjPI3^P*3>n zr81Gilvs-kyDP3OtE~oAt^_;%E086`K2sKf!JFwP^M-?5n7$L>RD)QX3axSW=t@X2FRlI`m zdsi|Q&}TjLRN@LB!W>vvRR;m^K@RQ3GZT27FtXL<)+`dkFbg$$L?TgicbuZUVSbi7 zQa42cmaO%`b=z!Huc4$m>=fzg>)uNOwe+v6SSBk;tCyJ%PufhzH8wB29Z?iSlUV7n39%_y?skG0+9 zw)?Q{cG>Qmw)?s5rg*G$y6vv9-Ft1f&32F3?xn?ceA``ayZ74ed$#MCY{k38c6Hlb zWxMy8w)<<_?Y3P< zi52ex+jZOSV%xpfcDLECX}jsAR=O)}x5RcA+wPBT_hH*LZ8vY4m2R=^w%YEKw!7DM z6Q^78&b8f9w(GUsdA8eVyPItHnC<4wu+q=4-Fn+?wcSm&yWe(?*{*A*m9E%!XV`A5 z?RMMlr?&gG?VfXum9D^c=h|+K?QXE$Zre?tWyRNR_g33&wcUqpx7&7)*>2%%D_x`Q zZnE72wtM;=GlKwhzQPW5G zUsU*V;QJFDE~Nq!3zxlF`N=-)DSvHw2UA}he=C z`u=M#K!5me1VMvuyh2?pr?m?T_Dd);E@n+%atXh?fs} z{=I)X@)sxl{yjhKZCN#UP1DLb8!x}>BkLC4d2#h4WB+^qAAa!PRS%DOb-$-S@UQEp zey#J<=Y02**G~EB6}O)KolhM1(m~IT{>#z7JoeWI{^-;{ANAtB^KU=@EA3zU*gXxO zIq$y~eet9F{NVI|?)kk5ukZcDY5&;c@$rBE)Q7%x)s1I<{mPqXeRJszGag)g${&yT z`H8?bGx;qafG@Y_Rwyy3DhT)K9_9T%-{{rn~OHGl3x@rn3I_BhD1W^wNSByf4? z(CNz_1koX7Av?0pzPkbM#-5M;lD>}&W>*t)yzlf4q9Y?S>)vOlQUR@qk}`z}nIWxtKy z*CMu$Bh(SZ2YMgJcz9V{`A_(SWc}lR(?7EBs+^BxUyAHMDdj8K^CWwIihU+~Rb(%V z>APcy%RU*|3nM<1eK4}uMSLlHU}SHM-rw>+^{vc^&z^C%I-#xUghtZU$8u@d9C4`> z9BEO=aW=PCOHN%fp)T6FmV=Pidd?v zc`?g=oy|NxcGo$%4eRdU*3MX%8|~(L;Opk|B*T0B?92Q4dfc5S#QR-3I^{m^(C3p+ z+}o;op^H?Px{{r#ovNGiZBlLgGmmo`&f(s10eh(0)nezYwA7L9i`&{xR`uu4I%m$A zi5YY2&pl_xIdc-zXPq@`&IM}tt#7?`<_b6L^5{7pHrY7$G58m}^IM^-J^lk8)oBcd z4)xOb;Vo`Hz6fn2jPc?_Jt}Fx@~I%d#ky7-`PJt(-CSN?%gpxD912}QXyckugol>D z_13=#f~|&%d>eGK;5WVXmZbd8)>{!T)Mws$ z>v%#?o;%NInAXv_?xttYcwk%dmXV+O-WhK$y}SP4>Cc@}`_E5&@vu`@P9A&dSr|SW*=*PDH1X_3E-!C6JO{Mb_mp(dWn#yj!;o`b0r>Sk{EL`;P#%byU zpGm$v_t(?nD<14Q>i$Eg*Z=jUpS*m;ho|5EzAT`g{`a)+@!*47K6~ch z|8d42YR;W>_SmCh|CqVtx=SZN)OF2^=N`H^xWMKTi9}mtLOQ4vk8KkR7PmJl3$n%O zzubOA!?~j05B6PUpD&K9`Sy9GvR407SF^^7&nt?jiu4~+6d(4SoqnV!9xaNGEQ+SP}lZxWk z+VT1}JDxnTDE>)19{;!%j|gcI6JPo?0Emtc05;PuWGT+M^CZi$^Gqk z;b1!+IoysX6Lxd>{079^|it&qCjKj8bdhW63f z;rpPc)L}1t40<>1m5uiAAxS;ek&BDi_ zr}OM`i}27l2v5PwLuq-svK>AGy`At1d=~l_o>J_DFF>#5NyN~5u^0Ml!f^Nkv|$=~ zhEGBF;Aul0d<1$RVJ3VO8fUNJY1KQvH( z;0w^tHuGCS_$>7Hg-W#v4}GCUsb%na=%F3t4?YUL;|itvLL@F9E}`myEIZTO_nTd2<>1HJjv)B*Sm^hLrd_&oHtgf;L5XfA`F;f20N*bJ{e zLtP?lh3|u&d^@@NwuPgq`p?=;L3YEbfDc-np9n zFz{Ju{vPaw7yA4<>W}b3d#Nk%G3X_Pnea*ICkgfNY3P>-bK$el53i>!z}G{6Noa%5 zL-*WBy@HQG=Mk2{C!y;J8TdZvcEW0rhmP4q8-b5Q@BS+OfzLwYU!$xAhrap%{()DU zDfe&SACZCnj<5~B06k+1_J}<6@84AFWs(0DdxN$rwF^E9o%UV)u$DYS&m)Y2PeNZJ z#NZ3iTl=vcJ_9}XVQdt6=$VgTm+;U}JdR!PY3LWfk1g<7=&9StB76*5{{z~K$U`3| zY=_T5_k5E24IhDi^=Zlxz8~8C40UxKX+l5!EbS0J1D*dodwk$i(8Yw9$Utu()QJrA z#-CDGg@^9F9pAx6ptA_G;p?F{6Xu8vbpFpM8~7A7@pI}fd=mPxUyu*sp;a%?C&Nde z&k>fx=b;z9NVO9g=syTqc=b!A&LM1quZRBnSM+u81?a1UZ6cE=jo;Gm!Dpa9{XJy_ zpNFpg6LlCq3;p(=X{WvT1lsf$>MDE+dP@P@;WN-p|4kXe_d&1!8)YOo^dUkEd_VMI zLJB?y{WGB(z5qSzHQw6=Uk`nWuuO31$Nx@$0iTBcn2?3fLx1%;`hnO#bK=U>zf_8ca>@q`F*O? zANQ?NR|^h(c4(Da37?1lhIf6g5gdB${#9xVdj^3N zKIof-9(XmiN}V#JN~Pgr(9h4t&+u93FV3q{o8a@%51e16Hp9oEKPGGy9GbtdNYDm4r~25m^7L&r)9S8R#>gql`ob z+IL5l%D@Xf{Z8zKk3$byMZ18HLVr%!0-uL|{`0g8_$>50gzfPC(5kzz9X((kY zS#apN{p4S8=*-8-r|{5kJW-{V!S_R_KSR3~96J4Z+Kceezx<5)248@_KTjQlk3)a( zGI@i~LBGF)GU$VcKJW_pf$xXb6i5p`0)6DassADaee^Z_BRq86>-015acIpO)CZA= ze(TLDm4)wz&Q{fG3w%9vui9#r6B+1vdsXvNeaZ-0vrjdHJUI0Dq1EaT_!#v1{i@Xn z_zd)d{j1d|_$2gq2Un{)_yV;0@M_f!AAvq}bhTOm-w%x*SFP5-3vC)vt+v9apckH4 zt)7QZLSH(GJir&Ak&~;{PI#d|BMkW(br^ckDdYz}3Vr?5YBdaAjjmRc$5yKtd>ne? z#A-DYJ_B7oxmqQKhrThjTJ?zhv}*O!nbj%-pN9@Rw_5eWN1+E@RIU1jhh90aT5X3< zLr-j|Rt5MN^w}oz^8nXE|Gp60;8jbty6&=SH3>cgJ-e-1)x+0An-^897WfqOX+jTt z4*EuCwYnN!bycg|mQ<^i@EPdXk5{Wr@NwuRpR87o!6%`=yS7@r0AGM^yuMn!2Hyw$ z>auDzbTfX29(O~v8V(%e5^!)YI zJ@_Pa`v&q1pNGCeSS|9<>W$N$KI`b)wJ_&hZF zRJB?KFZ3gXHSkI3UkIDv3(ymu#&7U3=rTe-dzY$)BSI<s03!W@zRakcsap$R?0wk3v`eH*No$=!G7+ zSB)A5ABEmcs1qEzgD@Gs06l5%8Z{F>2HmtzjhYAF2R&xr8r1?Hg-#h-qk7=$p?!pm z$UyUiEWFT>`_-sk_!x9HVYA3XpWMGjZGq20XCD9+9J-0{0(>9zvPg}389oL58leE+ z58ZNLjoK+Z^u&XBclftRANp&;Q1}A$u!C#VaQG;6#vwIo1bjX8u|sRrB={Wk7l&aZ zd>%UDJ=h2zgSHN%9N<&X^A4|3ZSYBG(-AeQTX5(~LK;2`z5mD>wG6%w`YK^1yc%Ak z_93i-k3i2NtcI_L{)(_hWd1KXs`jW>dyK7$RSn%s4V^k9wpVh`)E@P<{na_{^Y`I< z4`cU??UAfa)znw_SJg5ny$*cO8nx%t>R46E{p}kwbL9k$Cy5W)Lk*c<8>>lHr>g3S zi=Ok*BeGhjDZf{(+Uxw9Saq^0ad;~bzlo~t?SI3khbYVQ%||_bM$Wv>kz+< zwR2x}zz}sn)d5weM#t|{i%Wxiyq$JZu1=K0B~P72d2;f9ayb8z#v>*2HJ~3#)GJ*- zH7%6~DN||3W?R(qW*L<7N%3`N`H6gS`3@vsT(@){%rrIT`0ebfVh{O!j+Qg?U##0a zr{%@JrRsw|uc`ErQ}LUol1JUIi5;ctpXi%Uf12ccv3#-Z64$y+`^`K{-*vvxZ%yPO{cpI_pdJ@-&SPPo2Q-!V`=N~LM~s9b)E{pQq*Bg5^<^kG>WN{n|> z1~Q(RWv9zUQ?pD=J^H+9M{ylA)0eR}iSNwxisc6?8&kK~SgLHxmBBlyOQp(6+p4ML zv$$-E$67PLm28%@blT>1#X8J$Ca?1&RDAGKi8@@)XT@bu?s}*0of@utB45g9#p#wB z%ZtbA;&`cRDvjaQ+`CiL%C>Rwk@Rcxp~ZPTaBp|qo^Ot#$dwu!O7(%o=@pls z`|yzxWmam8ancwQPQ$@VjFIJZI(Uh>g_P&i5_vJ}u&%3`mhz9Jb6tsa^fj7FySY8+ zU7d0(Iczx8?F``op|m(YWNL zxIUTZN|k|`m*W1yJXfyF1;4jM8A?6BPS3(iv?Ixvj4Pt^cJDr>R9%*I%=@e2xY%3H zU)mp4JeP=ha;5SrWm-Ism|DUn?MqE1ec^AXFBwv!hEyHx>M_rsahN(|#}GAP`(8W~ z-&38kWe+u?w^kj!iuDQBOb_a*Qv0>=%$j>5r%x(ZcaJNPpHi}=uu^l8;`xes4J0XPm6QT5vnQ)g{C zRDH1b5H)_)!D`gl8%`E1esq_pKuW2`7{ z+h#qN_FJybIQaX*Ivspm8T_;|_y@}1Q_A2o%HXrg;3e*#oqWDiAD3&JW$M|zCF*>s z`Hhp8a(RD$8JkM9V<(+*{XvQPQLf#W8pGd7yD8P5mg@sb`9tbmaULAo%J{ilUsTHf zX8ktDA<#kuT9liTopPvyPO?pJ0;4{1R!Dnzt3t4T|H%KG*&! zH7_c@w$wbW6jrRGoX^ZTrr7y*f_aVT{#sGrci`T89Qd{UYCN=mk6caOS(DalH0FFx z^hsW=zH*N}_IY;C8fP|E&w25W%+ZQ%GSexSw!T)MH|;a$nPytLJk0YNGv$iwv6c}X z#pjCSTDCY}62Fe?h01-O(0e@}jKv4y@8Y$~; zkv+diw%FgMKg17@80#b^|B{DGeSW0q{?uus?+LeQXPtU)#_tmSr}ly9*K2#F>b&IX zUQf69vIkH0y2)=%WS_I_L6_f`$lhkzM=tx#laj$0&tO-> zvnNpYI?MiO*-I&V#AT1U>{plHsL1|k*;gieykt+A>?M=EU$T!(_K(S)FxfjMd&Xq1 znCwlH{a3QbOZKeEzAV|tCVRDH518z4lRaFrr%U#|$v!XHCno#hWdE1!k&``PvX4ym zw#mLa*-t0?=;Ze>vd>!fNXtHw2q8*P1lfx%`>bTolkBmQy;ZUoO7>OBek$1`C3~r4 z50&hllD%58A4&E+$sR7*rzHEjWbcyfiIV+ZvZqP*ILSUR+4m&-reuGZ?1z#)W3op| z_EpJVFWF}%`^#isS%kdA$&>7JP6}l|vg~6?CTdjtBlw*Vod+c(KMM9So{dv}^~lIR ze%YTWd(LH#xa=91y`Zx1Q}*)9zJ1yEFMB^_pTF$gm*4uxK6BYeE_)L57xIi9-LfZI zeorL(;N^Eh^1C7V9g+M7NPZKf2(stsd(_>Z5Oxq=Ck*|4jXI7nf$$;1e8N?P&k)uV z9wPjd@MppvJ8INXgz<#42$vAr2-gtqAoLQp5^{tcgntksf53i19pOWS3kj`+YX~a| z8wd{*o+kXBQ1eIjB@pTe^@J9}CkUS+WC>dc+Xz1;{GRXzVb4Et4dFz>c)|?Ag@h(T zCm~JvG+{Mi17Qo{dxYl+FA)law+Q>a!hQ(CDTGOcvj`Uwnh2eQG$BLC68Z>_6J8+v zmGBnffIru$qY0-HW)LnUG!eQ9%Ltz(e3|e7;Ss{KgqH}f65b;0_m>)VB;jPjM8XWh z1%w7d2jLTh6@)Jk))T%#c%1M&;U&VWgtrL${grYeoJ#lr;XFbUp_7m%+)B8M@D;)% zgr5-pNccD5paOm*Od`}1nh94EZY5+1n+Z=6UL?FqsCkt<6UGzHBz%m}Nmx$!0%1L& zpO7Q`itrj?=zrrU!dSv|!d${4!ZidL(b&6z^ z59Iy12lH;)L)Bq)62qw2NAR}V;k?21XuiZ7RmZC1)bYI2^#paII*Io$p3L`e-^+Vl zPvt$0@8eZ}V|cIUINsAap7(H0LR{mK383$E>$1l+vOisALHxgN!6g{t47tN zn$-fekZ+*3s>{^nya93%Z-VULyXIH$&d4s_8o8MFM=s&}=S$U9>f`Ea-rV;|zEqv2 z!@o{lua>DB)Q##UwOrk-KBaC^E7Yy()9N;r;RjB)tIw*H>T~K2btgYx`n>vrx=XEA zUsPXGcdM+rN8PKwtk$Ue)LOMp@lC?ZQq2obJ#BOopQgL4k^RVgo+(aAZ^U+UNz+o{eblS?6B*oig-CCG%zT)Ox&gT^y z6OOY&s8eMvVLtECFyFn94@@>DoGkj^;PbNVobleh89K+;Ko&1*PB=y3B_wT%?_ctb zx`wty@X-o=wzFBk$g?=Hrsf3=e4h{F{V$Qa8S?Ne9E-eMHSyi0&W@#Ss$QhXZ5ovt zZn|>;6)iC))-xvNUajNf&FGk(F=Nd5*q$+C?f3*UI<9BTI5S??Gp5dtPc)UzxU>a4twbJK0( zdrUhp!_3b)`+{`ICYYj_t6@sC2E}Iwb2Rv^~r>Mg~hAK ztwohl$33^Y(V#NA@t`v5xL25NG^mVjJgAI1?m63y29?o`2bEFBy~^lDb%pa{UV%F? zzcP9;`A8NH}i{k@o}F{q5rNxw2W zv7j<~QPU2;GCJps%IL(6%IL;}%BTk~`POZBvsKl8>gjTDtheH1inudz+4+yl}dBAQH?Qq`YhhBA-)g z=#-&Ya_^-F?#(cGJ-d8)ldtpo>Dr>s=Z+J`$Fw{_$z4%r<>WZjSGlO!RdsbYCEPCp zyE=(_-%&S*f23MFNKMx+H}2Oc`I5FwT--}MgPr+OiSlsqMG1M=y_d;ITvU@~{4`j|JQR!y$1RU@hb>@~0vH9=g<3Z2Y;GCAgW zw9TVwkKWjdvuORn>>1zM^}1ugGayX(d{06#iRS| z>85*-M^E%GTO2&5>`G{w6 z<|8$;x~5N^cEN1&GL@lmMi1|~sUdb{NK~CyGrOaqX?E*;`Hc3(ymzSPZ24NfTsEiU zVm>Q9t)-z;eY?i_#7up2r}G^QKDp^+gLRFn+Vi{H$p4vqj6pt1Gsl@lRtq|KsrG`l=H`_8R_z>SpRLRQn{^?nhim7wb>Xaw8rl{&s~^^uO+>v?>nY`0`3??m ztI~*LF1_6z+68kue7~>;nMkmb$9LU(m=#|@thHml`#B0(e@rZzpJ-g%$y5x#e?lc1 z7IiI5IHKw)B{QV<4y9&Sv3$|WXI_~+f4wTf`pM<0xjNycIk6_OxZT0_u637b4z6wJ z?r7zaOfBnn_~|`P(R*m)EZd-`3pDiv@&h zZ(Nj8zpq`=*yUi-YfFFizZX6{tWB?7 zzBaRV)!OXZ-nD&ex2)}7yKQZ5?e?|#wL8`p*6!p{-H>&Wb;H(0*Nt2kTQ_N4eBI1- z_3P%YORj5Kms;1eF1>E~y3D#&>$2;5*Y&O2vaWyKwspC6+t=mS?O0b>w{xB99nu@= z9o8G|9oZY}ozxreo!ML8JGVF4+tQor?deVTF7M6suIkP9_V)JmZt3ms-PW7y-QJt; z-O*d<-Pxm>-*PlTc2Z(iAwTp7m~kc2M-=&*jkeIjY!YP(#}< zbsPX#n4s9fK&TqR-$0NZM9wiv{!ScN<}5_mLhI;quRBk!;@FcQsq^kyLau@?Ubm|9 z6=c|Iq*4`RoApI4rSbz)- z-0&(tpHi{O<;!BUbN}cl;3_H81lOP90^Z-z#-~E1tV-35(et^9_YS87jkQCKkM0Q) z+QUhwPM`9r`CU?}k2UhcH0SHbzKFx{8a~!8^I@+=oTjEw8UsH!fR z3a>o^?|VP~L%z7Y-1g6FQjtmHK&kUC#^y_vv5;dyvKBHyME5eU`mi8Wi6EViN;(#D z1xUd{*fi->C-m}zKnS=}zAHMs49B?0Fv=7Fd# z(>#6*{2ZLu+~=?~SD{R$?@7|Q9B+_bse@Olsl1kP1b8VJZ-~;K_kHNdNV&6_)hk(@ z-tP9{)g&G4<3)1Gb~(?7Cl{S{qdSnv?(14wsy`H|zabN2 zz!V?4Big?}G8VEoCz1!6GQ5aNB`b^$V~|N7Y+m(2kiwxRG7Cg1NT8jqxvKvt6X^m; z9c>~vf%F|~B6oqraFpFHT-&8g-=Z6~E6DCH(={04mg!b;t99ry?FV(sbQv556dm`A z6&1=@zBB6d6{lNG!=S}Yyy*=|=9KfTGK z;jK{6eMdQ9Uz4KW|Dp6=aT}Q;1j4H4&Ly z1(`X>L@LO1BGX^NKc7J+RY9f?nREqRPa~7BAoC|=q7`I@Fh$E%$j?d06e`G^iA=hJ zOcOGx3i-JfnQVo0vdFMaf53Y99c20{==wP_{S{<(A``Em>rfhEtb)uqWbzg4IuDsl z1(}rSs*vYfk*TjBvq5xKkoi6`(F%6Gj7++MObxw%s)EdM$YjrOdp~0Y!5h-U)l@x& zo{_q%bLj3KLFUqD(xISho~1`3dIYIOhHe@exvv;1r~E^YAb#IlmG{q?OdXc?R~SLg zKqeCR#)6=WH3=_FYkXa`3C6M%N6WIciIom`Y14-7K z$a5eCmY{+;!0$n_7n;Z}K`u6t1Gv}8&oz+|Akl=0j0ed!n8++a7MjQBUwdlkN1% zy@c%|_ElsutfU3?@L`a=hXi%QO-KCmr%+0}+dpjm^ZaA?Sdw4uA90CWH%5TcP>PP9 zVMTof|GX@=cMt5JzaUf4GQ91dpKmo?(H&i^J?0`U-Ki@rq^n~=dWl9PYyTvjWRHmq z@)AhSLS7Z*Q|49GG}i127oh=j34!?Krs`hQ^}N)mHLMM>++ZBLyGG^w8kI7%xU8;G z{eF!~a$=Yzr{^0{WcW{>qx_Zfu#Y`x8+{dOT?Co@on9#i#c3sUBr>s8W=$9glC+RB zK+-;q@z6_)$F1fASNa#mPk%iZ?2FEQw6kv$WjW zR|hinpLabbCBzOqN!df(wsJd2p;@nxjAL(T=kG37!@Et14&v}y$aH2A$#tR zE(>`NNSv-o#!6TFdqJ}In8-Adxz|K41es!KzZ|6ALaqZz9y%CG&kr z$3pUw4v7Tm?38pYnFHmK>KdIxUB}$A;L57MbH#y<-}Il|UB{Bx#ea0QXca!yEm!Q~ zKQhbsd#rz67~OK?+R~~xq7h3*A}3>MgnJ^#8)fE5b;xAbx!x#O52qu;jtXORxELhf zYa%TmYJ-Vf4HDhtBEgvJ>Jq!Y?A6gA+q>J(+k8Ja1xh?l`}ui1$A9ue_s;tOijS3I zX$2qNjZFPlJlo6keh(s()H05e$3O}e@*GH}&-CGMB;~J~$lnC{nu+W~!KWWIkrP1V zTb#k1_B4>#78eQ1!p*bTF1Mm~#&>sFjH0yNI!~1-I&@h?5OB+)4T&R*q}cb36{!kk zaS<~0-|}p?P4d%gMkc3a9CR^A!hStl8&Pxu}(nMXWJ%lPmGWKxf5Z%8g)6aQGqK6IlQ z3pq-V@0(YR28nDlk*Of{7ILXv8?yFK6XHatI!@+TwYXC{9SGPC3G1*}kU?fLLp z0lyh=e|Gsp*V1xceUo(RwTzSU5R?_3@vd@^LqvVfM2-Q;{Mba^2a^A(iJT6S{e_8~ z3)26hi8O(verX~-Aep?0tN`hI$wh*GUO9Od|6I>q$$z%IHu>eX)$xbNZgWH4U(~tUXZMXdGGP6ea)aO48T&9O1qyA`?;7K463ppJmY9VLI zRj-&=T?`^$5)WpltswP(HIb`93a^^TXC<9~x=7Hoxp@}TJ`!OtKQ+spHYZIYkfYGm@%7N?JL&_0kT z+5_YvknB)59k<{55lH&|T06pq$6N_=Cs$RFIp8qrMg^JC$kd-cu&xgyldd4sf=sr8 z%niuoD#+Z6Oum9lKQgLzqj-QDxg+((byqqGX2>YhLA_xu!$B1^`h=URS`UA4_P z8?fKU_UIJdXO^C8J&R0kzkx@G--{0q(BtWRUaNRHO0tY!!RWw;P*gmkWh4)KA3^C@ z$l)Lb3po{}{$TT}DIn@F6S)W^@*WepT+%txM6LqK9BU#sfTT|}kuQSupKKxzg2+zh zz=~}kvJes=zmRk&uK@WANZdlIj^ru}IRqqc`R62%^iVUM(?F6jH$TA)#4QWts_s9& zc=cd+*TZhV9x{0=I&?kU;@88~NStIz>3Z0YjN_lGekLnpEE$Q+#?tx<_3&cx&ls}2g{x$HY2`6(LFJ%FoSJpUcm4#zp^>p#2O z^C{|>JA0q4RrpkUeh&4=o%_w?95)n2$MaZ`uHe;QArqhKd83S1cZxT(jHBbA;UF_i zAD#jdInzW=2kAen*oUqz@!`45ChcQ)`*5r8!+EwMV%mqReIHH+b9Nd#U0k6%YD0F?s9K+sx9OF_ASjbX1CYcOfx$*)H=?<()<8* zLlXUv$avl;w@y1Bne>&e$3&k}i$VG<&%fe(e!67QI<)6kFs792we)xqr!#XsA0-X4U35HyrID#x=H#NYZuIBK^nJqf zYN+g7nZF~G(=rY;r7+@NalJM2}WvHyLkQ>Ot7=CyFDMH zuDW$T>6&Kz)t-NT0MCo~JgkUU@ajVG#tokBwn@Im9%TA%H2rgnq|Dbhg7uaxNOZZ0 zJOGmSkidtoF7cuKvdUJtyM37PeJJCpeP|yJXH0Qx?_>n*)+ARvi4~~|KKuzXS-yec zc*8cySNca}`n8OMz5x=s#q`+T$KXQ?c@Id;LQVk5SjbqAEI$nj$|4RDztu$o&$~Gk z&#$Cnx&4yP-tPANcHi@DT7^%w=jZyKPjXJ~dF-QJ?5g1TkBFtWd6t&&yzVny8L|Dl zNJ)7I$L_X$`u@7*hWj~f`xf7JI@qGJkeqd5SFVEXpFl=^#w+&{wo5vnLMEwY1W;c9 zNn6Nzkj(97{n-MNvyewY6kq3&Iu_I@SG#!i=IY{JeRq3xw(r$ZjveM7?bXM8uS$Ej z=g)d1O8O&Fnl+?r%w!z?S+R7QTPEf9b-##=e5=UuMhVaBTIb4$f6kz}NpBt;yW2lK zzJFqY5|7jV8A@ey`?_$g)Bedb_)6cvKKxKR0{j`>zr6Zr^8?miP~1xc+lktHCRUK6Ym3@qbm64Kx7Iv)o%S6z(1~xFOtAgM!4WC2L>FcawpDZIx-t^<*8;RPvYK=KyyC6MS5 zrpzV~#h3MhtG0r~k28^{Kr(!(FOYdbkWnV`ilj5nM0SDXCz;65<@4$|MP5#5uxHOgrzZREu|c6Uoz z;kT5P)s`Y6x}|LOTS}Vtoh%kpwIh`CP0bq4l$(nlfJ|($YiYUlsAG}IUFpd&NCNu!j1^n1*B0N`9*QpS6aS(MJ) z9UZngc9?&3nNDU2q1Ms0jK9a4BK|I1--@beiGH2yPoRBGC%;ZQrB}laKqhyc=dqHh z;4Ng5*PC7)0}|uQp@E-22okrDIUw~GvQVzN(Y$IYNaj-}atla5--iuSz6+#~F_Ddu z4lkn$WVV1LKkp*JeWh!cl-Cf38QZws-A;G-WxClaD~aeb?H`~_Mec`Kk*-i)KSL(} z1)15Chd8nRLhk_-zy$lZPvPp zk}?@{v^#pw0_nGqi$MxsG_SfGB>g25xdtS{M$Mo;-wcw&6zpZoC{SPhB^< z$%R`tRwGmT`LewC$*mhOC5|CnmakAZ4wj@hdEO|~;*LWmqGcRCV?m-8G6f`NA?Ja_ zEu;yg-a@VhNm|IKKvF)UTdtc!DV;0OFMbJ*-Ca7X*;VGY+-RW0<8V8TDUgTmBo!2td)v7nfU_6J5=XT_b%2M!khh z?0((e1vwmnDAc`5kdYwu6Lfirr9pw{apDqWk`-ibL?%6ejIPhFrBZ@lpsJ0QEcnMe zDZwaLIaXBBT@)R91j+fmM0H@4C#&DF`IukIlZsLa#`ooZDT~MV4#};-_Ed#Zz8{(R z*UI-csnHW+6UUBs(st&e4)?HlRbS;G&q+E1_?a)F@I7IAKkKRjS4mIlmb)$sH$PGq zTRFFvlfM2FE{h?YvfZfX#(v5rcKB;Q%Z^nF99`i)L-#G4D)@O9R%9#qc`xa59w_f; zvF~VP(olEKFLniouJaR+$p8-|a|tpzt;F>JypG1DDqikjZ@A?8oFOg#3Cs@akVd@2J8=eni36)@7lXPcMac+0=bG&&qpNXX41*|DTn>@Wn?H|mmjfq$e8+lQ_jbN#wezK0xoke+>&s2kJHpEF|a?CCO&?M*2DWtnIl?aEAx4J4!A z1U^>RA1QacVBK`4U+VkN`4yXJ2o6tXitqVSGTm)maz&J|522=NB!6j!#^L4p(l}UP zmmvV_$xM-}%gUf@#HE*BnncFcC3e}zXpxyRWs0EXWaQix)RyD`^;y@S{M%?>QPQha zf8?!*<=U5P`?O2NnzFV#T3Lx8Nfdxa}zSIf1)Zp zKNAV1Rw9!fpmp;tI{7S|%6zN1R}Vb@1nKa|$~fLh%N@}3-kn0qZ@DE}xA#t-nBQ{4 zGLct)niLKKS3tvdqa>vfD|lbCrJF;+G8TKA8Rdn3poWOy494K z3X-&t3qcAN(hL&&j(OE}AQ=l;BQoDLWxfmI``Monxt2ME$ciBppFH}TFCoA zQeHZ4*~|v%wPX??1xw}{kW9aBJG!>G`H>Rj(V;rt(Ww8t6F>Vobly{;Q*f#Fv;4Bo zZ7DK`un*l*w)=h-nW452vCm>fdH_FbyJ8QErD9ho34eAP<&-;mmMC}q4H|~3a-*lD z{3Y_!_m1*IGcP){pT%M~KScsW^=w&&&T{$Dwx`~P?f+91}Oi%YuTN zpVB=*IL~68ee5>>cs=$ohEca3mMC|xy$|8d0&=#dO6p*^y>G_$$V~T4soqa4cnF!a zQx*f;?#hU+|Ge$P--hjnRIvSN?21>geLFIlw_&?0Beu)>mEBl(cezJ>+vzHc4&DDm zE7-mRyHXWw{~I#7w_&?0Beoy=AGdwv+pv991>0*+WhAO#`vJ(PN6L?J3sSA4$B!L< zn&1C8E}%3P>|?$7YUxDxgL|6ureB&A9_0t ze28l{qi%h{!S(k;IA1RByP-l;7yR9rdKiBzw9x0i& z4qcyj`hFh4d8SZB$JekTR>9BT5t)CK_w%Cp_<2dA>ief|-J;|NTr~uR&YaEB`fHHr zo2Ja4Kx%y%(s916UcbwfseT_9`!d?kZhpkiX)4ctPWt-K;QTE0&^~m(G0*q&bX$O! z_VaLBo;z!j-YT5dL0FNj;OC=|>C?8CsL!H&6f$`&BY>I=68o3wv9mzxeMEcAO<6p4 zBsJ4+aqq-q5nUD~a;QC)^*tuuun+CA*%drC2P-laJeEKv_ixYk68RC$OOcrab$UN1 zD>s1nRyaror2Z|_hZ_X(uhKqrb%_sO;2e(}j3eyBA;wvk)%P;K_EOLOyq-2y=ay1U z)rsMBydEIu`x$2z9oo+MkZQG{v$?sgwX0ix*&3u%OC?I8At=H9LE^d|igI-XNPm@^ zvdAfQB1o*-MCw2a7V<%mXpJc|3#7hQBdPISPFhh**IZ<>x^$fL^FeZZ=&JU!wg zRh7d+`_OIqWxtMPZ2@Asj;-|TST86GrN*IWO}@vfW|nNJYp}FXp&s6kOjdiNWGcKL z5}Cezi#_IEB_2C3be;BCid?%MGqUfo+GC3G)Tx=FRPct^DwpwQ6Lz z{|S3c`a0VsVULyQ4?T~q@;xSflzr$rHplna2n6ivs_U5Y=WNH>iFmP5V(9>0)wbsy zZ;1D`rD;-d>W1HTBEDBgx5|ymh>4G3pxDS&E;9akhFJ@#;|EwaGNFAhAMw80vtv-& zdqUbLhqO-)Y2Qp`_HyWHFAPfi=8*QyA?=$(+T~4{w)UNa(w+`!pB>UZJEZ-oknL(e zX-)66+~q4|o)uoXzZ}xe&*N;F3D<>eA2KNI+d|r32x)&Iq`fDkJu)cm@?Im`_N^i9 zTSMAshqMnHl=d|t?JGmtSBA7lL)xQ*(w+@zUlG#2BBcGWkoJ*-(%u)+zA2=AQ%L*d zkoMT1w9Au6{u_PWsF3ziA?ST?|6@q| z@sAd)`zs;sBSP9ogtY%8q&+(* z?W;oCuMTX7GaL)v=>rF~OK`%d6v?LY{95d47|wE&fyc$e^?j4QanRr2XoU_LoB1hYd>m z&Y-XJTEU!<_BkQ#>5%s5ptSD_X`dI;J};#Gj*#||gVG)ed45?)`?8SsT_NqUL1`Zu z($3Gn?0Q(YIi&q69z%F_)$92u4N7|~r2Vmw_QyinH-xmu2c^9(q@68G+AgoRc`Bs+ zyCLl}2c>;dNc;04?azm_Zx3m&AC&gVA?+`Ow9B(-#DcZB39p2-&mENZ*&*$_LfUtQ zwAY1t+T@_LzZPomvqRcvhqSkaT3pMZv`-J&{z^#uD6PZhA=j^sx4j z?U_MopBb|KwUGALLfTIZ)w)%K(mp(-eRW9t>X7!yA4>PY!DjdA@g0 z+7AiYz9OW3MM(S5knMeg(mpq&{gBX{_K?t=wlh@jTLz_lSV;TIknJl&wvPST?-!>@iLqgiSL)yDT+H-!b)A!v$&D8hZM(y=_xSzZUjCkX{BYea%F9fgr^~d;-We)B z(RaT88)YH-CbH)wJ;0umuI|p}&d!cbcdar?*(cgM8dB+=dx44vh+_kLmVBhEbzyr0lZ2K4>F#WAT$EC)0;H?4p?v|b#`F<( z05&wCeWZ_I1;3>P@{ul2`y?OXtU4Rp-JLVq8*@Q&zRZHu;%-b=y*?sW%}1usLKcCz zyHFheEa`0RZf3`nFXR4pns+1kNCMm2JCxeuBMsdht&)1)M<`{dyfP-z*wU%gb{~-| zmY}`IM-q$Mow|_r5!oRra_%l2$suoMXp}cINL!a(QEpARo^+D@e1XQ|A$NkP(@f;Q zK=gO$+^Zf1skdZ)CRd$qUL|kQ=)3C6t#7@hQ$AoUHQbUp0i^JL^QtKzZC=ZDb)5~O z+o_ARg2*8;7wHkiO6N9^yw{7mGG7AG&mvu91Bf06UF6#!`mW7Io&~A5()kO>3M+?i zg5)QeRva{rU+G&i$AI*EztM10o(Q7nt1j{(5IOcCxX2|Sd2g?pi}W}$S;MQ#KvGu9 zt3mYd`kiubOEl0@NHr+;uZhekGtb`x8Dd%b97x1M{sfYw0x_NNa#&r*ZeGjtM}Q~> zjG#tM0O|93HqTNJ{pCj&nGd4Za$TewN*J|>eqQ%Q(J-#h+_A=n&9mgiRSjEBuG$#AKXHG*m=Giq~0ovuY*jtu6h(CX0^eegUAu&`L`ei zOXf|G$E?-xIc)VXSykm1hMP$ zhe6_2I`btRs~%nj(qvhBE68TctE=QH0-)!OO~jtEu6hEb-txw;K>De{!Bu|*QC5Eb zAu`rg2T)d0#{x@_2AK&G^b#?U)t2@TgCt2S(3Jp@BS0<(Nm-u19%Px7&K)57&3K&P z=m!b3ClXCK;})5t1VrJlb7X|H%5cxPcYM&0TQ?DnggPL z|K;Ye1B6;{^u3=1iBX4w{CpZjKaX>-`aH-aOZ!HUoTckg5WBYg4CD|%NyAO&Rgjd0 z>`8e>L4uYmed^0(CTLAZiHy}7PX?K5<>x|>$=-d6tE&Oz1uLC)5PLLV0aCE6SOZdT zmCm<7wvuF!pXWjJQ}SwcL0faP*i^83zuzE}IoA{Th0hJLOOG>|zQWUH0u z6G8Os-LE@Y0!yC&$y)X2 z*C4N0GCM)^UAC)zzYi3b>2MIeyU&$58Klmt36nummVf4fyk^O?g2XLvTm#Z(<>w9% zIfCA1J;-KD=KCOrSSkM+ByD-@A0X1-1!WQWAUU*<69uvA;bf5ERy&;q(r?wei$R{Z zv^Rm|sULx^G)T%q?f{W0XV?X@!m{fLkY20S{RU*2rRy&sWY9>b<_z95WuMoG9mFHfNUH(~b9SsI6V?G zeCam=EABw1&zIqp+8~IPpT|L7wk-V-$SVITQf`!c2RVY2e;1c{#3<#rKxTpkG6zm^ zy%p4`V?Z)i=}ZLavueT|ks%$jG>N#;+8k=0(s4{;=e$Wz7-^<9umaz z>W@KITjli|kbdi`H$bA+Rr^h)hWl4J^{0`#frh~Lv$0Et=o`6S3tUps>8Ga$1q}YU&OpTPX@_brE>vD#_H!U2Z>m%=_Zi0RTI7hqW5rCi=k>0h#WzU zdMt$e7)0;Ia<6&`Bw}g*J4noX|BowEJ)LpcDvMzt{Z@V^fuyZ;&IL(YmNtWosx`;B zPLQZyf{BiHXHjUmHQTuX8T)SHPLO`f&kuk|UIW{o0a;mN>Usf0jzH!$kS0r}dIqh@ zO8E$o7ON(V1?jUaodvSXO6Ovbj8&f(fyAwpuLs#=U3D8s)JpkFAO)+gejTLVl6f2? zZKeDoNY?kN*!(w;$8Zpac=d4KGmE`?DoEZ+c{<2!>#BJmG0Uz_kffEvPl=3`&gVg9 zqB-aR)`RFTEVy;-J0N1(dUr!-_u`bh0v$@ZNC;t;Mnh6fOWU0_6Ull)){f^lu$&zdb7tG6(1sGS zvcegbl`$-l@LsmXV!;J&?!%H^#<}&B_k1T#u1y)4zdFfk21-ObZF7Rl=XyYxl66de&Vwz#vQEz!~0)ZD2YsHvH? z;*O<>Mtz-wI;-+USl8l|lX9ZFVSZb4mwWjF+}_nvBs-@O_yO9fD_cw$lGVuMXgnMS#jcC!giF9jmGptZBhOele% zi(TeaYcpS+x@5&Ou0^e9PrESD*|EfniYYj%d4bY}n&?>E&GU#L?j)XYZ1!awZ@Ky! zoy+;tPTgp0qr?m^b}pQsSlZa=HeRJ;$X?luHzdBWvq3793p6fTdb!A7?js^X7~=yX zPa(F^0~x7kzI`!EI96m)b9YNelk)P~(bmza&)Yd&(9yZ1p|c5Z&QS)RSkTtd&}}+v zK~rP*qJ^ERp`qQ$N7v}_W5&g_(N+@@(ZrYuJ!2;L(hC|IyE{7Nl1b$+sq3jLe{y2a zm;ug?8QU|V{IwHU%P;DyoT}<%bnHM{PwP3Y{FSbc21s~J`D@4bj4yu@-woiVG2?p1 z3}DZgSkIUN%4OWZjv6y|fNb>)V9=PlfeUDS&zONMjt%6GaRZefML$rcCk$k7-9UaO z#{>9r(m>T_lGOdO6$4jI9N_Gjo-qUYnI~{%Qyx3e$-03~P8=vptzB*OoMpAPE@+@@ zcDowghtLJ+3#1cnTD&Ngn7??zg67VI)!i>_;F~YrIJ>Cfa+zQ;`Z4ioN_5X}GdrLb zu6BpHh0X1Wj#PK+B8F*aB=m+VCwVTM-`d?ZI>op%daQe81Nl#tc?9#%AG671VT?uTx3BfzizQ1cREuN zbLJ7=g{|b#o8=ftcV`19Iz4^v42NlT+fuJ)d5Jq$SU$S4p-r|NGgWTvY)vs}HMcc0 z0696P7LZGP)}@>w-|@=glroFTb83pJ>0HC!1|*oradC5k3hhn;oDqW&xG~{yO|6TX z+q+sj+L`6K^J=ejWSkY}>gsO|jn?e4bSGemly2*mNa>-#5-B}!S|X+UW=q8H(fs+Q zyD`OehdW1h8>q88C2_^#hW2i+fjTlS>{NBP*?K*Sq}R~YlrYXLXk|jv!~}|J=S`zU zB9vrP^MZ!OZQY40-1?!=V#eC^uBJ23_lenYYvK zq&2DLo>T+3)$=>Lc?o2qxoKgub4zV@VHO|_skujwEREbSH>Y&#Dw=Q`y3! z=?LiwQVAo<1}QVzGWNJ9J-r>E8 zQzzXnQ|?_Bv^KUjw|9H(qp>5!9R)XEtyEUJEWhJ3TA7o8dlNjpS>M&TMX7Icn~HGv zHn$k1Xu1~D{kOKuJ(H8HY!lPnx&t`pC@(1ref!$d(3Mz3gKd>@%4pnPe{85Ra_!!k zIlVAnhm+3PN#AvzaY>L3N!hsFb+YE)?HU(*_k0fGWx<0C_3oXe=;4mn7&wf{3Dwpe zhV>1vEA8Cy2CQ+zYkEzIu>`*S^9bN z;!eje7rC{^)3s=+%Z#q8V{Y7ad27l$@7$0(IWe!dt~IjN)!C@?VU5a^+S2yMM0W=> zKBra%c{eTzy0oIj1XrE2QouZSk#k?~v<@eCx~Vu3DNb)L=fvGQY*cV%NU(_QCK_C% z`yAeG=1n^o*XRn$bc^#Bx3)DoD-p7w;10U7E+H}UReCkTS$8Os7-KJ3m}jlE2WMHs zJnOD%$ohuX=bG${3Qf-FsKRR--i*pwwh)InIkhLgK{BC5hS+K2e2is^*rf5EuUaLY zu4V>T|K`N12d%PjQU0#pIbHr<$UW`c3wgaqIPo!M?!laE%dJE>C(GTpJ15KC$2up= z-p4v;S*9sH$#l+^U3GEJmc7k&&T?N~vb8xU%iWARC(EtZcuGr8XPuKQew3ccx@XI+ z61iu~-Ilv&%dN@ivt{o1-P2`PKeXmDi(BsLvI{=$>9PwT?&-4Y3GV5#%SF!VatmP2 z$#RPZ&dG8MFV4ww%U{mPa_fN3$#QE!&dGA?AI?eqpzEW52jdJkOt|%6=L{CkeTX~o zn&Z85e=@*GAFN2b*UIQGL%w_8Z(!v{d~dnIknCDK-x&~^xT$CD+{vA@O42mYDhcOg zuHvn#T-Cbps)mK`^9*m=ZbB2>R85HPQf_`ss4fhR3qxbWkk|7XF16+=-gL?sK^cL$ zMREZ;e!WcLcK3!H=bSOtT^8`?z}&HWqiN^{J(Q*~$J6sS8I-MM6zhcKhZ_=iLB&4P z+0cG@BGthatAjRk9(Q{FURpjQviaGJI=HKp;%VNgrMa`WHS<_pb^6u%J3_8m&CCXW+<4bt_;*WH;u(|fMY`$^@PS67kjy}EwY?r zRGucMHpw67NwF;Qjd7-f7UX!7hjkV>){%3yH957iOvN+Q`3{zwWI1huY$zL!^$h^>9cdh{^mhh&gl3AnHs^gQzo$4WiDJH;BsgIEcwi zI*7@nJBS(cbHDVR$wTRi;hZX6G2BzmgA*rtC+=4aC+1fSC+1fSC+1fSC+1fSC+1fS zC+1fSC+1fS_nb4i3-pf(Du#PLs2Fbi|10d;y4psPuz$=xbBMWwc?{rWIEN%GI5UrZ zY*`pB#_~$GWA@kY_f=KjB;k4CxLbXz>gu|86A44hkubCz2}8?~FnrlC?YkRcXfY6m z76V~OF%X870%1rg5QdZjVOT$C-Vww|7&Z>foA@;nhK-vpHxP!+VuT^34q+6KfrvPW zoT=7}@_@Vn#@NL{4d-B|csBAM&ZvmF1#&1LywxH8+`8X&^Qz9{#J}V|>2S~iOrk-q zZbEIsyM4p?jK-~uji%eCI)r&0X0ciQQqq+udlvZ;U}#2<->y|}JUPGoBXj>l?9j&+ z+NvK%neD1V;z+7Ek2?^I4Xy+NU$x`Eyer`%KAco-GdnrOIEVyz!@ZzPr*Ip)HM~rU zMJ-485)^`ghyox2F)TKhK8tFP#E=~v({wDxU*bq_%>q?V)gXk{v(-3b#{!HCiKt+9mAS`Lc65W33 zdd%zrnnddzSv)nAlchW8up3;eHdVkmb*d|z8ah55z0D3!2qa2~&uz-;?CR1XjEuN* ziS8f++$l!55*}^R*vaLm&!2k9BF;Vj`Z2xxK5-9ElV7(#-Q(o`=Z(9+dz!k*k6WY| z+N!*(=vaq=#)yG0aa?%r!&eF}Tsm)q?T(Cizji{`!aH0AuXXcfv4Bt@q3I&y#~W~0Y;-p8PY&NgY3l};{CuTDeMoCrz~ocuIEwl58j zy?ZU+^(Y18DWLpbv?Ko+ab!3F99YWbd2GPowQu1e(T;MCdhHuu z-~AYX1QsOLPT)&vzk)ACdI&pZ0^_HfDDfdqV3=@}fg5{$}}QChR9|(y0>r zu3A4s*}zt=lkvdGlhPqCO1EaVs1C~Gla}&Hb@sR#sVsZ7-HL8`*{wLN7WIzK8IK_Y zEyb(hF|u_$7t*@hah9nJBGG?{=!%W+9DB%Vc5jH(>>8+Zhkgq^Xe4*~`!=+W@d}Cj zi^VQ8)PD%bc|+R>J{(TXOo70Pv@%icH6~%z0k^aJ$HEma+LCsQOp9dzTl zHgL1Ib_r1mZ7vKu($V2!-H&8zM7@*C=_c+(@#|$I=>-hcF6pMxutQR7W+2U%q*lB= z8r(=~)zqUq0}T9Q&5f#7x0eR*lG<#g7Z{M|Su>`v)zuv00e_MHzb;p2V>biPDqGbD z&AfTh>5?H06j-!a-fg0->EKG6chNHgVI6wO}9*jPpsnDzSv-@t`xlSB1iuN9jOhJ41Rf={Rgra;igtF z;ut4~vMt|`RJ7$AEPlsyS+~ft#8n#0H}dLYh9sc_jS>0{N=*zMM<0PQ(){u{I{Wg+kAE|Mm1)Xv_2m}ou{K^Iq05w{f(16u4 zgWrRFjFosLqF%v`RBXJ?>JK5P)YRbV3j;5AxYQwGj`W@qBjU*ll#PjRE_Q#=6eaY} z+S(=|UNl{`Xbp=1;&lq!n(0HO^#T&`zgGdb&k!F!THZ*^+T$W%1-1QjYu{}3jc|^E}=E-r>!4SCc{`eVT78h{bwTcK=^G8%;%h?rKz ztJ+k)=|3Yqu5jSM$RtYY01S+vZZi&G8!*T%v3X_FWdi~ZLoF7DvDBluTwFEer9yu` zda5pA%{&{{G8oDtO!=l8w)tkZ!JR!^>(g{mKddZ5K-0S^;+`PAK~=>|c=SF9e>1rQ zZkk?2^v80UYS+Rm5S7G5PN6aAe_+o65SbBdwG%u&B4+QtOzo;^7?2MH9^20-G7|tr zg7g7rq(BD-nqZ*&6E_uqn||@H9S*P+^c7`ffMn$4&@HcnJc|Pjg^a;7$$v=Ip&b5R zFLtZ)PjSl7DC)8=hCGz%=z+p#8s#VY2SB@yQ5cy5&(rL8Q~Cm()dAd9@T%c(Ue^=iV`7+QdzYI zy@IUk1CmU39Ao}^fl7M}@O?Y{93i@R@_m-G&@v$KjFt5cvxgyfg2ju-+QnX{^o=9> z814!1{u5B{|LwB=VPXi zpQR(=eRW(nqlJnx|Jp>>Mi$7Ek3*QBoz!s4x~QxYwJoccp*S7*RBprlBOzy0WXsj3 zzy?*5jt-Vu2&$4J*kgt%ng(m3Ba(D)I;NT8bD2rgZoGg>pN|U&qO;}GW!t3^2ETO^ zQth?J_wt^CXWHx9)4MkVFG$qcY)0LmFk?qi1WUGeDWO#i^ke?0KO@vq`v86(9cNn| zBT4uy%~U90421P?BfnQXYu_I$+Ovpzx`AF$8? z7LiTC3v&u37nVvbfZaq&cK`&z5Q`6Nhx5;o09fbi$osU%$57 zSA-L=cUa57iyVGI_O+u%`cWg_uoUI)Zbd0)4@pNN4u)SY?np%0@ENYCnW-`#&uNMZ zLT*n@`-Xjd35nT@$Jtb}i<+9!zlZ)>*#)W>}`|oxa!&;_GRdNef#2=a_(cg$vg_W`Vdg_IEdjb1l4Z=)YfdI{nre@09t4fFa)ZlAp{edqrx_<*7S diff --git a/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/libpng16-16.dll b/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/libpng16-16.dll deleted file mode 100755 index 106bd21d7b34003fbda12d75656db1116c196cb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 278046 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 diff --git a/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/libwebp-7.dll b/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/libwebp-7.dll deleted file mode 100755 index 23117f5b6c87910343ab1c8cf3480bed9e64d262..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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# 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

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

XF2AKu6(MK`}ZB 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 z%0AV{WAp3S=Umt)TEjj)@kEjY2LjdYL+MT6GbU(ghP*Hn&qY$1E#nFynhwgu(H7K>98hi{i zW{aA#8gyH3tEwGS4wa63kmee-!(%OFAD3NDTIj+j8m z8i!$dM^z0x7ph#2YzCi;=hN4p?hM?s~7XnBVD4 z6PU5GC)}Yt;VEHh{SS{Eb}CP}56PIiYZrT6Adm6_pVm-BK>0_FLjHUbn&xYGOC++T zH;s}`gaAKyeDXR;2UQkqap08x^ z54JPCdm`;T4@omQS^ax8v>2;n=N&}TTiwos-LUhv9w*wT+xdOSweNIk18Oa>7Lc+* za}SV*6%F_#<3k|q*ZF({G-~}v`MfL-**Op9uNVCJ&*bb(BVqGmf8M9;+-efwj_sUO zcJ^Pv`ysSw+{<2vAmei#1WlB6_wi@S@(gGSOe1)_1Z2!W4!;Zu3AQ17rsPZ(I|ZI8 zYeX=>pI2kCGS`<+3E5(^U<8T{(;CPc=EWAfqmIRngBGDW7CQ|z`Kw$_eab_UmxHDY zX(IZGqO<~0S_tG)AkF|=jGzP%6*HCBNm-=VLC_pSgzB%X*yn4C*!bYan9= z@<$-WA)V&0K*|O(<8p9LGfjF)7PsKTJ}>T01Wl1^M<8ba$zRR62wDiFkkOIlK*kKD z1xO&L)2s#3IIJU^h-NDzsx6DUAU}Na$Z98GD2w^+YH&wQO0S0UOrePOhkY!pe5|OY z%Af3GPbwdSBhf3P+Qp+LWwC}f-a0oPEwuUbk$9V^6qT4DhCUcR+-frdN zmYYV3h!PeB>XXNr?3sQvZofRPELOc$(t8uKU-oa6JE29njx|06no(ENYOV5K(3H5$ zqE|=DGAjOqw4QHB6+`DH;)4Q1lW~sQieHDZ?h>kVQvu`L*p!eTptXr6%iORfX z#hLQVa^#Z8lDVj2(pn+S&x4PFEN#NAi?}D>-aaYmy_WPnFohwjd50zaBS$D2S9)<$ z(hHXKmo4d!TGEfSbl*EE>1j(kjE%gDzr&I~+mimQrTh7o^aGQUexD`1)sjBf(!JM`J~k=o{g!kb&tFmRH(0vwv0B_y zlajvElK!kE{b5V`3zqcpNlD*qN#A8j@3o}&TGC&bl=QqM{h%fNK1=#jmUL%3_4u#0 zk9)w9-eq~+0?X@0EU%j}Dd{;&IzAUr;dOUdy6?AiZ=96$E=&3imh>wu=^HKSb0#Hy zhb0}yv{&eUuOotA_gm8USkfQ0q|cv}^nI4}q~&$3me<{Gd0lW)()U}^ zbC&cDOZq1*>B}c2J!wh5&$9e3%kp2bEFYSb^j((p=Pl{`E$N3@y0=YA`t6qVS(fFW zw4~3qq=zRZeYYijx+VRfCH+`S`sPVVf7p`VYe`>WdEG8cdUR6KX*~d}yqU|A9hUSi zOZvT*^!`anzrvEf+w!`kW%-Qd^OKW)za_oH(tVz#d(zT9Jt^Hwmh>wu>CKk(>n!Ob zlahXeCH+au@();+A6J&|ABqjq{s^xh?925J4-Md~e~*tl@lbW~s#ZMaF=w^nvBIlmclI~i@|F^oO+;NN={wmIUX}C}mh_}0z15OFU->HQ zUYL~hIhOQ!mh_ilVOLXWjiuLFy5Bx2>Gyl>-SvcC_7<)S`UGKx^j+*N%JRiYNuO@% z{<0mhO8eCH;9z_k))7`z+~S#{#42b)%D#zR!|=gC+e6OFE8+tdM^Hq@+J= zN#9{f@3N$S-I89Klyv%*tZPHp>-JmH_gK$;%Dd`8Sdf#K!`wpw#7g|35!la}>X-R*;lD^xLj?Eg}PTjGVbIoK{d&-vd z-IjFPHwiLtrm*xdOZtpSNq^LmeupJJXGx!9NpGB#^rtN84_ngju%y4sl0Iir(rK%X zVbvwiThjMi(qFcu2PP$bmL+|b)#9GCq=&3%Gk;Rj8!hRxE$Po%(z`6_!AVJJ}Kz|OM0^~lafB)(!JHveXgbZK1=t_lafBel0My%e$dkWd`o(CQqm7vmcQ4s{0)}$ zw^-4pe^Sz4u%tg}Nq@kS{u4`jdQ#FCSeEawEI-ex_k)(@Md!C6kR4&un<*@da((fd)sj27mKkZzv2QT4^g1j0HL`TjR$i~h@~VVB ze2DJ~SR-1)8rfV1o{`FI7IQt}Ey+|57QdYt3K@(K4yLxo9l7I$Xtu<2@u98Q*{Eo? z^<>3P_^3ii`o-jjV$T5Ox;iU9FYL(OBZPo+PkKA{1S*=rSQ7HF6ICIxZkbE&J)m4Y zE{)uYK}a^SWhj<}KqVb|4fPDBouESSw)-O5+g(~DW#WX2UpM0Z7PS<;*bB!I2BUasXp z#!zV<(g`GViJq$m$U(OaNt^&eQOY*rM2<<@jXg&huS;Ib`0unT6z6iwG$+9}*xz$_aL%D+R zaH_$L;pGFd?rboBEYpDA`95+jH~1U?!lQRto@a_11Hz}DNm)C9^eY;)%48%azl`Oz%J&nW_v(7>0m5IVlYIUi zNSjf@hk@jc5`J=Z26X{8r9 zIB_6_yLBzL19|E^J=bm^0r$N&sn3vmdGY6eqquF< zk)vSe@%QNEIUUFW!+Vzl$=|5cbOG6H*e4DoY}C$nAkagT{vjY3m}|%vhz4UM&(7Zi zG9Tbf{4cfmB@ljkA|iG&(hGl9H1PSBSgzR_#fd*K5pqRv+F>L<)EmX!kpjUV=Oysr z6NV+{W4aOR4Bt2#$n%Ds7Xjhbc$w=hKO~S+PM$NPNQ~8 zKnlkA=Mf-L!=rvme2m!gCm>0qJTuTr%#qBAK*C0@bAdc*cvKURfYEYWfs_rs{t-yY zD9_bE%+~Z?AhV75a~BY^f4>h%02z12BcB(N%thgx7X+mMK9Mr(9k-oSDrD- zWmw|{LX2E92GI%(tDXgfpBzcOmI1ll@Ub=^!CUkaMu3bP$U6x!EPor28^F>l;g^6c zFlG}E0?996`=F@Kejo*d&+mbZ8@_tP5TdcND&;y2$Q+~0i-FMPS!^|sokp%sAR)sV z^gWKE!Dj>r?>&(A`5@&oyk#$t=uNtP9tJYHOGlmp(rUDwzX7@3@cCI-HR5LhQq~zj z0*0)&0x`XJ9gy7y=NOQ}ExPn;f$;k>lJl)V9E0XwAVs6hWgt6^+IbpC!9e~7HYrW@rKuU&vRsnh5$Q7krM!gRMnQuhV4+F^=ntlOD!H6Ue0ZAHhbw7~XkJYX5 z7?6_D;(iSzY}k3))mVWs_%s3;H|(tYIKT z?u|Eg0x4dgbKVVP#E`WYNYJp@gFyBhR{c4Uypii^Ah#Ql?ax3$i*#8>W+2`0%oBj@ z4eB%tfGl6ABW*xR2Ip?dW$;M>dD$r8jX*{XnvVeq8uobrNZzpg<3wX1&jE3aDB<7; zg|HEyX9Gc%YIZ&k$Ww-W-U{SVql6oQj2U*$0cpHd_o$nIqz#%ofy^^}^mDE>)!yZ5#!{!KRx?QYw?VVh@Rox>?l(N)IUr-o zKH$^Y6C1*rGkSUc2AYEED~a>b!|*7hf1e8^XwX~;BxHDRJCLH`KT#lM1KAEFpjv_G z&1024>@Ltmja++x@H2W@r}q;L$_+C*64?i2g<;i4fs86yq}LdbF~gt#7sy^^LzJh7 z))?vX>iq~j-zgcnP6kpodc6>kI}GWYfRJWhL`nl`GdN!dq|xX>J`RL*@^ak^q-c0l z2}s$<^>ZKvW8Cr=AfrZ^kKP7q@COsnk6-dCa^Kp146Et!y1Tx3) zgf&3Ih8CNF>^xT2v>QmTVXqQ_@L-!-#O=Tm}o&_Xr=>8@k{5>G)QR{&e3}5XB@`BMW-a)wx={tcGjdpq$ zkb4bH?*kINK(C$eP%gvHzXHNTP*YwyA) zjdUi3!CEdC>*$+iW@2T^4~_ZI(hd`wmPVhEi2E55JaFoirMD^Ff@7hbzJMCZ#ADgikW)9~U}9*? zwn!|Uj^wtdp{e+?UHi(FEZ~}JRH^7Eeciq_E;bp#Fe{Vk{@B|1U@Ehn_7t?nds2h+ z#iXoASfARKWj0)|lz+oeUm}@{XH+6FZt0Kr41mF^;l93jM#x!{Or*8jm9+Z_LQSG} z)PO?ThrpJ0JCT?**v6w$1k#d9Z#R*PGqG+HF=)bxkvP84N8DC!O(l9elc{a4x^7KT z(OXj+Hg;uVL)kw1wtPhu!YnGSwPnM`TIon_P0)74^+2C zPs2Sq*m_|in~5!4?2}OyU}cM6ayS$3?HC@6Em~SDZ)=NBDrIfy&!h%peg$U6%|1C* znVdCfMA?2Q;0&x0ezAHamx=i~4{X^cNqmdyrumg*V~uQXTFq<;9}PI4Us`8kFrAFo zDy*caRjvvOKQT%`jl|`CX%*#5Q0o;fNw^B#Z!y)=hPV zyVca%S~7`T0ufLE80YBs7sqp5{Rl+8YvZ~8R4)rzlc7@uv<9>;z735q)r)p7ok84D zDX8VOYsunX(#o{fcoO?972W!aSE=8ZZP>U{zmdOJrqk4I2u2&|0~&5-$+UMRiYpTV zp!|xVy!CiuQ&sz=ZK>3N5yg;0guc$yaHc0tc3O?ENyuo3qE*BODnx4{n~vpr`UQ<2 z0ScVlE>hPHCvyqh7(7=t{HMU z>1>Rg8ev=M1apX+PLa}EC8tcKd?RV>SCyJ-zmZL9L44Q8v+$;Pud+u>mN&li$ZO*|=yB6$#)M&!JUx#}pa* zpiFEnoLNM)%jj2DV9n0JDsgAh%e$6Tyss}S9a2Zc@1QOfF4hstY>97-C5Phtpi`pkcngraFQ(|vk^6(z(@kwDMGZTR41#X zRf+;BrG+=N5A~%eBL*$G;jH&-ErLi4#h@f?PNYrN^jnMpI%&UhZWtR-Bpc=dj%^4f z3A%6DH>25PZ6{PVVhM60y`3j3^9DnPjqA*wySl( z!PwV2M5U0kbhsUi{MiHPqGZw&T>^y))m`np3>K{*W7i?C6XC^mZmxK0%WI$&8bVf9 zQcy%GotBL{luKzpDV%DDn%!l@) zh}f{?iAqp~SnZZXYPS$)-pNi~GNL$6Y{l3`4k6G&`x09q+?xq#rZjNLLoz^EOXSvI zBztK(hj6D_0o4yl&{{x?0?-^w+p zK!Vma(1YpWB6q^1O^Q^uu5BrghnRY`wk#jsx-Qj~N_WKja*lhe|3(tvMN4%ex^rpV z1gB#7>{mM4UhjuzWwCwq5h+cTyb~_q%@nM8fi??JKOIGnvAvx9U?Siq6?OY+(PI;41Sq9@mZ zPMgCYMj~RWp=dCB?@i#v1`Ci1JDkD2^`vlmc)9$A0UFfrldBSbCZIPz7ve>s#6TS5 zZ~5Aub}v4}r`?N>KFp(*1jRKGz75FLG?fXm(y7cM?`My@yemz_3>WBRM@{mMTC}AGL>;hP;Qz#o5uIGdSpP)kQZU)x|)tQPwE{str zPJpfzsQV*J2+VEEPBN9n>x`tx3 z&i+hdXuwRAlg27JRia-`B~$dDEKFrFP}V#nr=pqKn(LZr7BJ&q6(V0VT{gTGP6cn= z(j6oBk|xklIF^a6+LEz=n2CUy1yqo%%n%Jv^I19t;BYLF(GySr3q~1YexQXBV?WTs zs5}bfaSaB1WD;+xKP;Cee1|lPM72_EXRR=Ktd*fjWWaEdcVm~@^$vdGHDc1 zt|?q*Au`x8mF%R@vOot{^Slp`0#NVjmg-yGP@Sq9q^RFWP`{}@=>{Pg#S%R(mEBz( za>uH2vdH#RD@WUhxB9d~CNqo%-VP+iBDqw=Kbuwq%z*{jBNsmktJy-O)k8gK{c^g5 zu>@9Vx_wHliMI0ix(Iv`!79-^980#Ou)>4o67QatjL4i)Hl+)z_Ta|^Wpf@|Z;P#O z@zCQW<2|`HeB~(xhZuC$sLodV*`)oZ!F-oTgqcw;wP@)G7WBpX8Ycg%#Dh7$YZA9v zr?aztEsQ}!&$Q^-SN8M_4-O}>fZN%*+QGao6Kkf9Qjx-w+dV;oV9`=ZA#UVz3kg75 zSXQYamM;i{Q0f$E{Yoxh>3~}nssSQ&gTI6M)u500l|e-v#fSWc+BsSP$wpG@QKCD9 zlod=FYg7~``*~+a=WsU+)RPlqB+<{;9woteC~${czhYp40hKam)+e3DT_yoMBb8a3 z$l{ERo_;yo6;3SXz4XhSw)Hy7@)*W>!yObl2tjK2gZo7l_e~Y|i!1JFaHi*{A(?)^ zwBmkQ#r^V%`->{>7g+_YEa9TcA}*pbl5tlJ5A`PF!nRnJ0!VAPowN>1^JsCWZpiiJ zgTG!pcFACDxM2v7%F#LZ(n^tqF)`x%&`@f~O_yR5OfEc8lmts;77I%79M2mE`n#?f z*|dzl9$S&_=dzyYl^Zu#P9|j{M_U8{MZl|;D18{upm7K0EgtNMeX?#24 zTjR+!cr@Hg1ZobfQJ{FMFtSA`stngcAj&2cp!`$`Rf=KdW=%9v6$&v01rGl(YsAfn zkn9C*iq2Zlbc1dsRXCQ-F5<_{US@)uB;2e;e46W+orG;t#7?md*<;pZgmfc%bJrkx z1}d=us5|aC{DQsbTvbdzfii;!MUtvd&fWCtkH<9z))PGGBBo-t*}#EGSlgOJ%3?N^ zR_k`6S1s&cng@D`evQye^=FZwT4~ivu{ItX zLRxc0HxEgE>Kd)f$5?KQ;uLD8dUu4rp$g*;MV3W3SkVgwWiCY`I!eJvhnj3ESDa4O zY*V2NvzRSfWMfNgXsHb?v!UfSbde3AuNB3p=r;wn(Hv{I%~$lT#<+!pkw`H|EZ$k=OY!*L8?9~QO;BU>4ka{p&m-$@kHeVmWq4zBxBK1l?yXS@9Bs3phG>C(Cwwg zU0Ui9YI%fS>^DiG!C(uAo#tbKne|YCI0mOQctm`@}%68Fz_8u2bW$whSZ} zuCX>_VRBcEk(HK+ydDSP%8jW$?ZWeVkm(%`ZYw(kK$TqyAh#<~&LAR%y8un0(ps?h zN>BuF{5eA=E9#x$$|nnYBPGMgbn(Da{B8=mzulF4 zT4v{!eYyTmtNnrt!`_0w0rS%W0lG~EdF7)9m>iE+VPoR&CA!ZX)MEngQ2;ObyR#QTP)WzUyZGLyn&V|lBojmOpR};6xuBb(r&r7O$haD0@@w;;g0Rkj{}4i7&MjG zuu&vd1O%e>3?r>pokS^ForL;p`AEkrocmy>ntZNdw<`VGo=E~3wTP6bFcEp6|Jsr} zBT%DvwHBim9(cJz04kXmFHpN!((ocz^CDeltqBYT>>62(fjU>HJ)Sn@foHX%7zJIo z`qFiJInAr)5lI^bt+PPwDF-Zm8l?r!|;YqEE3B7f@0U5TORBpkt7Iq+Ivlxq`FB}BoTMD zwF39zf(;vM zr;F8AJ6n6Ro=qyb5-(J3$DUlRw6vIpR|R-;FKxJoKavkaS{hO_-#XwhOcW?66Fv5t~+2vRaz z%Wwu~h5JD3ut!ZAl-i-5pSBW-{B5ype@j1J4^-I|;z?EzT7h`2hjvD5>|A9m^I^u& zml%-^MtH=+N$;AYwvG22=&N*iK1Ta_d2@u=+KaakxVaLgr08(>DWMqIcn%xBjeAww zZk%d~C40ofWAQLYKF6VU1xq7Dis$WQF=$R{w8k$MfVF$9H+TdX#NdYB$IIZMka#Yy zH5V#mCwBSw^wZ{I9OI6bk&C$-=-G}`FtA^{ik65O8(T%5e@?ev-!s^^+` z=RhKjof{ZvGt!kBhz|)!nOsxCe$Az#5u$LCMz9DvqNJUPUh%R5Ee~|0Qev}eLdeI9 z0(c(+F=5qqwCHd=gEvC()QpJS{qEsm)S#%4FjXWHxTItVcq>8fPf>PpuT`EPSMMnx zhRJc&+lS-BahP~0=PmEbHl#-$klPAUd$OLkO0H_;L|*5YRSaZAqHsm=Drm3D<#P4Q zsF7Q;eTt~$@Jg$vCBpS;#B-{QbSxt`hryJjl`4pMZG%9130I+HW)neO2~d%!z{D@Y zs1!kGp%w$xnPAFzX~v6uyhBAe6va_fZVO&X!K;8&Kzd(<4N3Q^1l)6o7fL9FHJ0yv zY#;1S;bmdXb>!Sy#pHH+0|hM)Wu}=9I52{cBMrd-NJO{QN^j;fz^HCT)x^Z0MXxsu>l?L-;hrl9gd5OT615}(&>ehij4;p_+4TF zV%{#_UU5Nc9ac^OXho5IJ+ab38EXiYJ#Ljr9IGI=+`2E;$Q;^Q6-Q{Tysq!MFW)E` zYP?@H3(Z)C3Q9`-JSd8uhwF-T@-$?W%59?+Vl`qVo_aBidy{d|ss=8O4GzY-QnXML z%V6BMhF%gAzf&@aAQ_hBGkn<@VMTwtBdvp1S*Rg<&wNE8EXFopX8^0G>L{gbHZT`5Y_c}aWtf?V;HK5aB9<+na4xNf#( zf$e5C8@Y&AogFk1^KP-=V%#B7n1&`kVtWBzPr-|_nz=Mo3rljOg~_FO2@!)v%%w2< zafCzA(>r>}`!ZfU_IAX&dW$|y6VjgDn22xF#a7<8;Ni5Mj=)9DKv$ahQAimYPJ5n_ zTgh+3`zLWD6TDa9+dJ~DZJjR$3G^C|n1*3<8(wwCz|C138);4S^{tBMw&9IbcX3yb z(lppaM~A_c$pD&Uv*Ixl^T@7A(RO2gM+jYVwH$cp>`o?WoL!BI_5?_>#nk@l2V4}v+k1xOu1q|cOk~Z4wSi6X#FqY?o2CnLyJm_a1FH}>_}-2i zniR}+w6cmUc<;yMfCAUb?3+wJj7>Fo2}m!7>bx~wiITSMKy3^x+*J{GY(KEFN6gp7 zvhdp2KwR#{qN)|c7=qmGR|X~(P!L`N6)OU)2Gt_Oq5q=(8KXTpL=Y?i%JG5Lp1b52 z0P7iH%tR=wi|}C9y_H=ylF61CIZqT*4mD`h^^WEI9yj5jH(x8!`EPbDfLhE_={y8i z5-H}cfCxm4)HP+0-Wu#tMo5Z{B3zsa$J8*J5CB&^uxwI~*t0&3a zx6lW~lsI5aRcQ|yx8ZW3;bVI5VTNF-Ky zuoQ~JP%yL1xm~_|VGQoLDU}(BLvhRu`_R!lTO!*8g0t!vA`8M0m6Vz)M9~@Ri?5A| z?>6!+mL3tQgc&GR%>k*W^9Fn3&O3e#lEk=!Te>EOyj9F$VN^OhL)5*E$*|`Ps54+d zC$SAf32}0n0z^-TG}(-V?;}mgVRu&m8YfQhBEbqm)TLvVbZAo|9lsQh1%OfWlVxUJ z9-@=Ep?XacYv#xz%Ej?pR1Tf>X7F>1qM66-f4CK)>404 z9%)1(>o=_HYG1oL67F2Rq4mTG$>2kbfz_6Hq&t?4 zd#tDd|EU@D>;H-gx7(nvSkWs7>P4V)rgY;q zcrXG@sre=o-5D&CMut!-Px6*{E;5+i+5-Yvy^e9WaA|OPPz@i+K$?NIpRShZ3aQyg z2IAXgQ&Ps0jzsA_7`3~}C=(tnL=aMzHhTmyZ1H3Y) zDzO!#Xd0jp39095j#spCv|X=zmuTwNaQA0AwQUKJiQ9B=$-<`Q;L_#blg!e5(WS!Y z$lYJPSUPlnb~iESUd0&${~k%IX^R@sndLI*%C8YjG$J<&N0RUh*MA~?!$UnBp7jI= zHA6$JBu=nq+I~6&T6EhA64^BoTuqRVArayQ`t*#G&27M57OWHYV?wQ}5)y_1Gm*wc z`x%KOQr)tY5uER~1p@%|ysB_uR>4LV8WX3jj;L{jHL5e58?Ab6c?37c)wDz=_dakd z1UR6Muu^nt&4u3aqwzT2XBN{HI=2vANA)o#4H+dHF(dUkCyn?~Iru$FVvm73oq^no zwbY8Yo3%yDW=N)x5$i@zjNj;s(c|GSW_CmI{#(Cwlu9c zFhy$1&y0NEd?M579!kpE@|C&_3U$+)Tk z-OY`cr|ca&Ua?gsZR;FTE8b4T7`g)o8_1bVqj7f&tNQ1k!vt^6^5MI;qI(3d4!fYFsDTtl?PEzz3_>r zY0A-PG#jDW%t%r>xipd70?KEC^PG)K6^ZCGdPenEUnQ45F^YDh5;k7ReJ4u1e6d_v zMd7Mc2~{epSh4iZr|+`RO7$vU4R&3?>tI>og!^3!VoZ;2>2Wsg3D5+|#~UsO^!7t^ zy0k1UQE_~9!<~wcUdT}7D5Uib0A__WYxAzM1WwbG@-aG$qvO{zRqiB~C7W2E4WU|x zi>HJ65XgwlD=vTW#QG{kCUGtn>*Q-w_uZmeX`UE7#Gtc~AqV1iqnJ!1Gw*Q}D#l_MlH}rU5vTxeqf@)kV3qEy*O^G$iCqKKjd!IsVY4I_w#9+k z-rhBY5@Kd<3x^X|ADPM3KSN(JyukPXi{}Hw=`|P`(}I_nx1&@XRr=#N%tpmFSw2|6 z>jPM8stu#Br_P!aQCKa!@e3l78%-}1AulM=a_A{dEdiNxMi-14p?ujr^Cv#-PJ zAhhAZwR1}{m5sNFHBhpL8CM8U(Tw7~2sG%bQdzB!QY!ck7+4$d^2XO1D26Sn2H@3r z(EwqHK5oGs7qar;h{`BuLNu%9potIu#I##-5tP(hv5+N{PZL&e#nRzQp}nz2?($Mg zuEYe}MiUM^vE~02cJ0b_+%VL?luQb@F4HFN@5qWQd8DzESjqVFeGY(w2f4fIq`ONH z1n~xzy!)FSiC|!6pK~TINxdl6Z{aW)Ja9oMq9GGv*>4IgG80IhF}ZCv|M=n{Y4XRO zOfj2;nAC!TMOkAmc))&&O2;R*7nuS0OC96d(08Zt1zg(?AH&3o%9LR0JDORiCt%;B zw0gy+?!Y9GEPgX-1bwW!`2G{Z<^;#&CU+PrsA6DJlmDTg3FQet#LGEJXU90%@m_In z+YbCrBNNvmXgT<`4uweonApX#y#|xPmJol3RM2ONfj9UAYF=vDYo@z1h4cuV5TyJC z2?*>?ekXE!aRxrr*BEU<7;OVBxrM@0)SJr1h}~MRHh?m5KI_`E;-V2618wS?L+xkM zkBq>>58HL+c;52^wF37>Xa)RBIMBYf;pZ_eUV}df-#CuGv@bY{bha4NULMivnz)po z76Wp|6#QRff#f4E-juheRbW8*ak(~P1k$vanHMY7y5+}vO9PZs_?%AABhRjaZ+{0k z5gEuZLNey7b2U@!5Mq!$hm1IcVQVxVGTBOdbz7YeiRKBtY-$DGW1Sq!>_&gOt+Vnu zC;2hbv%GarLDe>_Qa1v2_A_X5fXQvNQyavBI zO121H7qxhH4JB-an^8dyo2x{k+%vf8P8-4bu0raK zZ*^Ko$^EcitFVZ$jfiS!Z9nA^bC6$4zznbUm?2^Z)*P;&a!~Qhhd4q&PZcw5YEvGq zLx%=7Cl%XGH%v;GY_%M#HPW4$g*fciz--6Lm9#k*P9PrxnbS8k;}SMa{^!JHdf=D& zB6UBnU~tepUadWG3($L}7k zP%wz~CeV)Gq!lU#PFSIR@}mnurmAeM;qV z_L)Q5<|n_$!Mx29wuGNvsG1Mg-10C%f+ZWs*S+_%#d7y& z-d0|L<5wk_w%!Ycj=2ttOkDS@;WFCmnQUC?_@vM9&Ts}qlt>1yI=a?qciBzFu z`||A(HxBvVXcwYGUm7=S4zrX2Sze_QxcIb4pD5#pO*HT z;222gq7kN&=rhU})Z6U`FBl&QNj(E{a-SQC<4W^l)x83r?(7bU=XJJU->h(M#g9Ii zJma}Ik0XwYjZX2)+-Wj$gPu%>+FASg@a%@G#G{u{K+DV2RXh*>t&aBB%uPtWoTvvJ zIOvebj>^qasdAd^`7+D>6z{7FrOAw2*t;!HO4%_QKPF+J%bpIT dqo6V>mIsklIOr!SwDGRcP1Al?+jn$!{{$*e3J3rI diff --git a/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/zlib1.dll b/extension/SDL2_image-2.0.3/VisualC/external/lib/x64/zlib1.dll deleted file mode 100755 index 3698247c26df1c5264d0d4b9256ec92a60e0682e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138240 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%0AefT=&PR*3RLW^ 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 aydIHfT%7zhiLfJ{W5r0R9m{uUf&T$nK2F;J diff --git a/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.jpeg.txt b/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.jpeg.txt deleted file mode 100755 index e677c82..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.jpeg.txt +++ /dev/null @@ -1,66 +0,0 @@ -The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ ---- - -LEGAL ISSUES -============ - -In plain English: - -1. We don't promise that this software works. (But if you find any bugs, - please let us know!) -2. You can use this software for whatever you want. You don't have to pay us. -3. You may not pretend that you wrote this software. If you use it in a - program, you must acknowledge somewhere in your documentation that - you've used the IJG code. - -In legalese: - -The authors make NO WARRANTY or representation, either express or implied, -with respect to this software, its quality, accuracy, merchantability, or -fitness for a particular purpose. This software is provided "AS IS", and you, -its user, assume the entire risk as to its quality and accuracy. - -This software is copyright (C) 1991-2016, Thomas G. Lane, Guido Vollbeding. -All Rights Reserved except as specified below. - -Permission is hereby granted to use, copy, modify, and distribute this -software (or portions thereof) for any purpose, without fee, subject to these -conditions: -(1) If any part of the source code for this software is distributed, then this -README file must be included, with this copyright and no-warranty notice -unaltered; and any additions, deletions, or changes to the original files -must be clearly indicated in accompanying documentation. -(2) If only executable code is distributed, then the accompanying -documentation must state that "this software is based in part on the work of -the Independent JPEG Group". -(3) Permission for use of this software is granted only if the user accepts -full responsibility for any undesirable consequences; the authors accept -NO LIABILITY for damages of any kind. - -These conditions apply to any software derived from or based on the IJG code, -not just to the unmodified library. If you use our work, you ought to -acknowledge us. - -Permission is NOT granted for the use of any IJG author's name or company name -in advertising or publicity relating to this software or products derived from -it. This software may be referred to only as "the Independent JPEG Group's -software". - -We specifically permit and encourage the use of this software as the basis of -commercial products, provided that all warranty or liability claims are -assumed by the product vendor. - - -The Unix configuration script "configure" was produced with GNU Autoconf. -It is copyright by the Free Software Foundation but is freely distributable. -The same holds for its supporting scripts (config.guess, config.sub, -ltmain.sh). Another support script, install-sh, is copyright by X Consortium -but is also freely distributable. - -The IJG distribution formerly included code to read and write GIF files. -To avoid entanglement with the Unisys LZW patent (now expired), GIF reading -support has been removed altogether, and the GIF writer has been simplified -to produce "uncompressed GIFs". This technique does not use the LZW -algorithm; the resulting GIF files are larger than usual, but are readable -by all standard GIF decoders. diff --git a/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.png.txt b/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.png.txt deleted file mode 100755 index ed7ec64..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.png.txt +++ /dev/null @@ -1,136 +0,0 @@ -The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ ---- - -This copy of the libpng notices is provided for your convenience. In case of -any discrepancy between this copy and the notices in the file png.h that is -included in the libpng distribution, the latter shall prevail. - -COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: - -If you modify libpng you may insert additional notices immediately following -this sentence. - -This code is released under the libpng license. - -libpng versions 1.0.7, July 1, 2000 through 1.6.32, August 24, 2017 are -Copyright (c) 2000-2002, 2004, 2006-2017 Glenn Randers-Pehrson, are -derived from libpng-1.0.6, and are distributed according to the same -disclaimer and license as libpng-1.0.6 with the following individuals -added to the list of Contributing Authors: - - Simon-Pierre Cadieux - Eric S. Raymond - Mans Rullgard - Cosmin Truta - Gilles Vollant - James Yu - Mandar Sahastrabuddhe - Google Inc. - Vadim Barkov - -and with the following additions to the disclaimer: - - There is no warranty against interference with your enjoyment of the - library or against infringement. There is no warranty that our - efforts or the library will fulfill any of your particular purposes - or needs. This library is provided with all faults, and the entire - risk of satisfactory quality, performance, accuracy, and effort is with - the user. - -Some files in the "contrib" directory and some configure-generated -files that are distributed with libpng have other copyright owners and -are released under other open source licenses. - -libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are -Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from -libpng-0.96, and are distributed according to the same disclaimer and -license as libpng-0.96, with the following individuals added to the list -of Contributing Authors: - - Tom Lane - Glenn Randers-Pehrson - Willem van Schaik - -libpng versions 0.89, June 1996, through 0.96, May 1997, are -Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, -and are distributed according to the same disclaimer and license as -libpng-0.88, with the following individuals added to the list of -Contributing Authors: - - John Bowler - Kevin Bracey - Sam Bushell - Magnus Holmgren - Greg Roelofs - Tom Tanner - -Some files in the "scripts" directory have other copyright owners -but are released under this license. - -libpng versions 0.5, May 1995, through 0.88, January 1996, are -Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - -For the purposes of this copyright and license, "Contributing Authors" -is defined as the following set of individuals: - - Andreas Dilger - Dave Martindale - Guy Eric Schalnat - Paul Schmidt - Tim Wegner - -The PNG Reference Library is supplied "AS IS". The Contributing Authors -and Group 42, Inc. disclaim all warranties, expressed or implied, -including, without limitation, the warranties of merchantability and of -fitness for any purpose. The Contributing Authors and Group 42, Inc. -assume no liability for direct, indirect, incidental, special, exemplary, -or consequential damages, which may result from the use of the PNG -Reference Library, even if advised of the possibility of such damage. - -Permission is hereby granted to use, copy, modify, and distribute this -source code, or portions hereof, for any purpose, without fee, subject -to the following restrictions: - - 1. The origin of this source code must not be misrepresented. - - 2. Altered versions must be plainly marked as such and must not - be misrepresented as being the original source. - - 3. This Copyright notice may not be removed or altered from any - source or altered source distribution. - -The Contributing Authors and Group 42, Inc. specifically permit, without -fee, and encourage the use of this source code as a component to -supporting the PNG file format in commercial products. If you use this -source code in a product, acknowledgment is not required but would be -appreciated. - -END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE. - -TRADEMARK: - -The name "libpng" has not been registered by the Copyright owner -as a trademark in any jurisdiction. However, because libpng has -been distributed and maintained world-wide, continually since 1995, -the Copyright owner claims "common-law trademark protection" in any -jurisdiction where common-law trademark is recognized. - -OSI CERTIFICATION: - -Libpng is OSI Certified Open Source Software. OSI Certified Open Source is -a certification mark of the Open Source Initiative. OSI has not addressed -the additional disclaimers inserted at version 1.0.7. - -EXPORT CONTROL: - -The Copyright owner believes that the Export Control Classification -Number (ECCN) for libpng is EAR99, which means not subject to export -controls or International Traffic in Arms Regulations (ITAR) because -it is open source, publicly available software, that does not contain -any encryption software. See the EAR, paragraphs 734.3(b)(3) and -734.7(b). - -Glenn Randers-Pehrson -glennrp at users.sourceforge.net -April 1, 2017 diff --git a/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.tiff.txt b/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.tiff.txt deleted file mode 100755 index 85b375a..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.tiff.txt +++ /dev/null @@ -1,25 +0,0 @@ -The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ ---- - -Copyright (c) 1988-1997 Sam Leffler -Copyright (c) 1991-1997 Silicon Graphics, Inc. - -Permission to use, copy, modify, distribute, and sell this software and -its documentation for any purpose is hereby granted without fee, provided -that (i) the above copyright notices and this permission notice appear in -all copies of the software and related documentation, and (ii) the names of -Sam Leffler and Silicon Graphics may not be used in any advertising or -publicity relating to the software without the specific, prior written -permission of Sam Leffler and Silicon Graphics. - -THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, -EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY -WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - -IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR -ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, -OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF -LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE -OF THIS SOFTWARE. diff --git a/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.webp.txt b/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.webp.txt deleted file mode 100755 index da8a6bd..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.webp.txt +++ /dev/null @@ -1,34 +0,0 @@ -The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ ---- - -Copyright (c) 2010, Google Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.zlib.txt b/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.zlib.txt deleted file mode 100755 index 724a488..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/LICENSE.zlib.txt +++ /dev/null @@ -1,35 +0,0 @@ -The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ ---- - -Copyright notice: - - (C) 1995-2017 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - -If you use the zlib library in a product, we would appreciate *not* receiving -lengthy legal documents to sign. The sources are provided for free but without -warranty of any kind. The library has been entirely written by Jean-loup -Gailly and Mark Adler; it does not include third-party code. - -If you redistribute modified sources, we would appreciate that you include in -the file ChangeLog history information documenting your changes. Please read -the FAQ for more information on the distribution of modified source versions. diff --git a/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/libjpeg-9.dll b/extension/SDL2_image-2.0.3/VisualC/external/lib/x86/libjpeg-9.dll deleted file mode 100755 index 3e2ca577303651be905d77227e6adf333c9eb00e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273623 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 OH1&#!SZCln&52j8@D?p7!B=|XIf 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%0Dla>nSGil$JH8Hri1t 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%0D5^9uY_`XREjB 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%0D$re@~L%md8B%uidswM^w@;BRZc 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

4BQXlVp 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
Ov^QcE+lhO+yeI{= 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

tp)P9XJY)HCxA_Un*jUQ&Z^3B}9?*orRN!Pwu zy2y?af7Bvfk+#xRGH(_M)%a%n=`w6cy8c86QqSVY;Z9cyE|QUjS7HLce@IjxM7mON z(ax|rHSP%YX)SCT-|9fRbQ_{YZYXC9xN-N@_C%$1oiW<`IATHXtRY-2mCQ? zh(E_8bI5LN{5V|xnEiZutlwz8pWlnRv7rNXqvlp+2O^UBm_#*W*tsKL;XyOp`_u3Ku@(Hs6A@FywcT@MpA5cWfnBeNK~f zvbh|gi3no(+92__u^Bl=YUY4`2isZ7M>WuAGWr!CJ(FTT4rQcPVl^|27^lYKFh2~1 zhs|x&Ozb4jDlDHjUBJcK_U5#P4N2G8m=>_TfZ5_IV(BtHi2pv6bZs4Bj>5%=fXt!U zBM0e9on+dyK2o0xn;>rH)5{%x9eCs|C@3wTH)lp9YGbscB7_o;Fha%4)QE?q9k0qi z$n5L?Htoc}5Yz+hq-zne>DorR=FC9478EpeGgCogz7C;6=1vX)!aX2X+{CGuyH3`C zl*DZE5Kl=Ft}+}++iZkQY;GJ|DH#5c{3$|{$E^U=(Yd<8Uxgu2lJ}~Vw39y(*wmXo zw^HsTo)*}&m^K6m2?6A4cRHm#K=Nb6TwfS5laxM!3S;zdBs@6|C8gzNJ|D!xz5%>T zxt){_f=xbdjXhY)B|Z&>O(it+-i82S97s%ECsRNg&3JTj2}rCy$4c4IB58jeR=spf z^9P^yR(7$X*YRWOZS0f=Mw+dAkSW3ZzAAucvf9a?8(<^iE5r}h1CR(;!e$e04~bs` zdH^KCkaZx!(b0JDQ4rn;pteMb(QkYR5@teu0aC@}{7zzHmb*ZX-#{$KL`zU7Nkb8e zA;*H`<3{{=J3R@ch9QGNB0Wu;ypUbLub_(2a+8?NT-CKk5OS;;ilB)kX51Vf*Sdhj z%#aH~@{gx&E&&Plrb!hcxCz*Z$80-BS&;fO5(~W{x)0_Lv;M?#Os^XW=D+pd<_Ho? zS3(W$A7T%4&K65)!YDS9sQC@>ki4^+wBW>6zSo18t%OaLnTl3pAy4z5Oiws4rA82cJ@smITV8wUiPY_Atvdf=hKqdG%)vqJQ;; zhojoa4b$faJr(dd)?>%6ILC56!_0Z}xf|yu3`u0)CH^E%IhQMEX>ab7dJ=bEWj&|fz^U)x)LS~GPQG86sn2#i&d3sFJ*WOIr@pUK>ial# zJh*v)`Z`X1Bd0F(CB4?6w)Zfnp2Mk6MJ?*Y)(CwQ{T#|TRNq_jZ5C8wUrsjHm&ja;1%bV_|Qr(VISlX(JL>!xsNAJr-K z9h`a%ryl0iZ{gH~ol>vi)HO~$hg09g<^1GMsjueLgPeLkr@og{&+nA_9!@>Xsn>Jr z&v7|l+$r@sPCb`XFXYt!=F%SOl=>1*UE$QTIrX)idPS$yYdQ5%ocd%={VPtrs#EIC zocan*eKn`PiYxaeol>vh)H67Ba(^b<+f;LD@0@x$r*7rcMNYkvQ?Kb%+H*N|fm63| z>c?~HD?6oL&8dr=dVo`}705Nr(S-T)R%GUDyKe*Q*YqZ>pGS8WNt09 zj#J;rssG5excW}17jkL0aOzf0{Twds>pP`h#i?g;>KdoMic@dslzIx6^XobFO`Q5Z zF6TFON|0%jPV&AnW*0@8P_+t?|c%;kI%r=H5GXK*d9 zbLzV|^_84@9jCsU%lYI^rF{jb9^ll2oO)v{?ZtDa&nZHV$LBvY%Zo3Wdy!rUW{ryO zBwI`m5#NCaS6;2zM6WW$_PSfMG2TNZlRE+R`kX*MAxYE`eOHwd_c==J)V%J$-e;xJ z%;(mwGaBi#H<+b!a2sc;*_!nGV5x-Tqgh@}rj}rq*G4nu*tL@X%JRyDZ|#*=+-I}A z{#$)kB4!>Qye#aEX09IG#+lWD@~SZNCstm?=+>e=_J4g{#hawtFR!@IW_kU$`mCgM zpuF~*x!Oi~Wt)9w0t&8`V-T+E8Ewbf>RTX45HD{zN9X$0gJ083!V8H=Zh!z=v*yB*rm1$lZ^kf;v$mMTo^19BCQ;I& zc^SJ_>ri4NEb;LUcvu6QF8EAxAJ_3gLe}Wj?N-ud`kZO{+?q}Fx!TwqsWqGEm>Wx1 zYc>}akeiv~9=6hU$p4>@`Ao|61P~)Ftqe|U6PK>7T)NUa zrIpEPZRWJLaaw~qrDf&HYipMSN=Io%9bwCBA^wb#L&(Dj?)qWkv9IK`>NqV8cQGBh z)(%dqmeX3pX$3o_)x>EnjK=)pJ_Z93Wcfxp{(PG8+D&=V2OGHyXKgMYwdG z1))RN+RCM?hSLgjTE}-P4+C7f_HkOtT>I)C8$r0SvW@;QmDAeHX_4mY~ZxYIjw3=YiXynG%gSKa9T-RTi(;Dx}kDf zEu0qFE@RvBj!tPQoYpQ*Yd@EVA9PBqnJcd_r&Z5s&FEA;+{|fJb6P7nt!9I+r}ayxw03b?t2wQ8oK|J0^3cN7jZK`^R!%FUQ*|Sq(`w?hc5qtLI;EAxY3<;& z_HbIOJEgUWE3Ya}tA^9s)Tz3W!KG^(r?rdIx~fy@+Q_A=lG9qoY1MZsU71|EBAiwW zr*&JW(zTCES3RfIz-evhRQqb+v?@5QC7jmEPUT?>r&Y&kt>?6sbt+x^Ijwb^)<#aN zsZ(0pIIR_&)@n{`P^Yx^a9V3Ptqq)3U8l5CxH`X)(`w?hj*i!PV}>tl2in-1xHbNc z1LqQQkPAf~4?*PE`H5YH;rvNCkl6PhsO8K*aL++0v?N!%b7#={_p@$Dpf%y~tnrE}-ud&!NRKtsI< zHpW|{b(_-Za|_|qsF+ROjIyHXr3J;waguk*+>&_(7p;twnW0O{3-E5x7$NB@Ma;%` zH|Q}F8$7vH9J9$Qoj$t^*|8~3W-ch5U0x()#t4aLG2$`4i^NRnDv%mnayFj8!h4eE z&4!(EO;gvJQ#7X_bg7UQizg4Htf*YD#t4b|S;S*phc#o~2x43l*W+1GP)6c0?n^Ok z-i3|veI+LO9K?8wz8-3(Q4<74YY%KPW2J-VbIZu{r~4S2uGuJM{b>R-=AIzNyXEzm z3#OMK=YFeJHpHZ|RAJ%9~YGUNm>U&>SaasL#cvLVk=8_3IIj@m(8c%=dxR#BA^m zP(7u_(@eS+i3eq2JnNwoQp#v4fmkRKb3Nh_Vkym=K4Ttv4NaJ_c>^}<8L|b$cy`J3 z=L?Wgv3N+#--ASAq4ElgW|rU$-NBem9z2{2hw5TBB-C#RWxP?`jQNNWc=|3@dx_1l zAfZ?&5)Y{x#xpf$O6Sa*UnItCNT`z$%J^On-DdV&-JkrpKlqNNxw!TgWI{;@wUr?r zkU%UHiTO;B#+ZkB7nkXIXkkK4gUw_n)P*2*u}~zQDiCsz?`AT3o8=(nekAgjLFz#E zJ@89$+~y6C&51_OZ`gbWl8F#xEHKDkkV3{LX(axMBOcGmAjL3`hf<<8Bn~5<;UKlq zD+mUe0AgNaMX!!`gU`;Ju3sm^7Fje@32e;W3?tMPAm$p@AS*%05%*^u$TG&~mq9{F z##4hvs9!)b7#s46lp6fAE8;S2dV`Q79$E)1IoKuYj2ZnFU-!jSht!uiJa86(sV5ObzykZz-h$F$E@kbTkXGKP%;qQ=rr za=s+5KuANVZa58_p;@qR=>d&+MuMzov~ocdW^5_}S;E*{3ewDwB_JzeE!P+? zrc=GBK?;R*D96)&D?-&+je9c;f9?aximB)2;R`47#^#bcR>=Pio3*g1Wz=5=F;}&Q zO(V#tSUdAA-@6gdX&~%);UR>5KmS zkabKve}QacLiHSvR=^M|2x&X<{BeN<3h2_w0jXzVzL3~3@yrJ)XGk@Oxl@6_IPL(c zU~C=)$zkfxt01Ht;_2E7V%`gC#PbWtX2zc*CZJbm;<18|BOcEgAm;v$5l;YQ1>?`z zT&U?F@wxi{Y47S`W7(3j0|FAzZo~#iEaD*{0?RWVk8Kdrwa4~--u2Jr&iMMh8_?UH z>9Kq7czU+G$3IsHq!l0n$UwUyB0&&RXyI#qS*RGo9WN4?g2;m})V(Q5UJfN*wu-|}mKd^6(tcLDig)cYR+ z636_13dmW6^Ou0|pC8vh0J0a2{l8l{pC4itM09=(kS|1#EkI(*Cj$9g&{qP;M?msp z|C->0>%}ht0>VM7-vH!WQD46U$S8vRJ|KS(LB0*h#}VYu0eLYF4~^hAoaB>Sx5MI*ZUX1OqP`9Q;TvJ3s+8XX@Kh*_oBS+l(IY7L8 zz8>Ka`x}7Z(>}qB`(r?OV+ugi*LMKvML7Qg$R9=={s$oZ=PluLS6CS%oF4_`x7^r? zy${IWM37$q1f2(T9suD#Px)6`klzO6yAho~F*x3n{52r<`|~Qpe*|O^wfY}G;^_2; z-!yyw@fPIgT97M1K8_@|0OaqYzJ3`HT-XdG{|!L?HNyE8Aow(0fb$(d=xqJC{t1vT zL^%Ho2-W9te&QOvM>_pkKz=>y>lzUL^Kza7@)Y6xDqDdLfW|hy*=qHz7Ua(W`M1at z{tA$9Mv#97B$oUSd;-gia6S)+{Y@^!w8L4JEnf6uo_`uRM^USNKo$|?V?cf|f_w## z??#XskeKq<0fA718TXqloZkcFBjETM_w5$WUjWjJ`ucl7z8FdM-vO~_c9b=Czdw~f zfp&fbkgqs8_HL?T(JOr)VrB7tX=G2e7smfn+engZJ~0_92cz@iC(XRzYM5gVHNP$P zGpJ7%WtNN+$$&L)IlVX?z36ngZ@DN7WPWv>j_CLcC%X+!kXoJ{R ze|7Hk;9x_)P4?0I_wU*MOM}qlWEBpy9{)aHQ*7M(do&_ z`Epk0i`nxw84Usbo&gN*vhlmudL|Kq&h=P88oha$)hBs2n;d1+6cjni=kd+B92ePi zT5a~XwzhXRlE*t7DJ=?|%?V_GLmIDWEAXq+dEM`gij!H9)~06*J1Ukpvn-MdnIFuu zbWUk%p}?6|IO2<<9u)Iwe!DD15A(RpMyJ)_^5}RFpoIj4?CJ4YdNV3M`Sh*!gNIS^ z`sJbN)l>s;%Iy$g<VQ(A9he z5QgUUD#%r29ypa$yE-V#^!ak0y-8=3GT?{LbtX_FTW9dL4DMtCY$W%^WI4+=clNjY zm{VltVDga8$JtR{X5+djp97qJZ_iLz(Fs5l%>34)4DWFM6EXsvGyJYb10++X0Sktv zY+cRK*f32t-wdN-TnYwETsvo#(h1JegV7NItzo^#PdI{v6EXw95@Cu&F~-?wIKc5| z-K3_#!Lq`Klvm;(e{y=#sJK|(-(=E-#6X|j9LsR#;`tI-ZX%NWm#r( zqF%zG;rLom&(f;d`f5JQ=kJ2nzRUf+$lU7mmIj@cb|Qln$aVC*0AMh@9t}R;?7%$i zW8Xi5cMIKxea`iidvjdOs~U^VVsqO_-0BHKuk-0tv>n<7>W`mtg#!n-B-%Kyc$q?4 zp3bL*4*UoQn%DWHzH^Lp!HCF&Rm1$fA4Atjn*PR^n;@QNJyy9Yu} zX5BrE+G=IFu-H_SJYVPa9qi1QAy*(mE@TOGNHIdAlI*I;9sVo)jL@K1&W)0#BP@WE zChVFwBn(h^R5Lx87jtQ2IOn)8OY4tJ4LkD!P{BGG^!71oCxhNTmQJUcP?NFy68^J# zeAhO<{?`8P)<$w%)%iVUm$+NHG+`bTOFv#4=&CkuqtV5hSc zt45j!%U6@DVD)HLolYlvL7yQ%;X2f8_9`o@^nNkRf&q6|FcmIRq#^ElJ;)m z>Q(+On>|NPo&AbmaFYjPQ7d+Rb#}}oYazCb&$ZdwGyJVy5R zWvoMM*w#8UPz%g#9hS`J?*Y%wT!ZQ*Xf?dHgCMqAsYdHqs_zl8Y2fQRZq57_;!x(( zlyk#Ie`Z`e`@0<&|4M$vBtApwtm1!G%?VBa_xK{89a=X!rP@(D-FdqgfSpJVYHX_cmGwq!FVTehi>>$baNydYCX zixu@lz7a!WJuS+Qad~vczGp zme^7_zC6(uhw0=jo8K}zW*4f;&QV~z+YFa|T{o&@1nlcxpB)Dc_x3R(gzwU2$1Fmo z%Y{kqoyqL`LUpfYk-J=z*ifa@ zIl}(HM)E#``H8N4RadJ#AfVqzS|s$Xj9t%ryYLLO!8Vt$62$sovsn%4Ou_5QYLR5r z0Fdj@;zL^`;>m1T-T4?)iXnc2@OAGdugCZ4qDE+dZNO#SYXZ7WK&J_~Ewg9WK8;G9 zK9Fx7T`k)NMbZw6>^mr8!wETIo!^p4M*`4;gVpe>HE_iiURIH5RaiQ$3g7ME{L?Ro zwBnlcK%n5a$`Cgrb7_xbWesVstN^L2gLO3)-eUT|HEC6OYH^hxjqLSxI&P@Vn(n%q z?%FopwQYK9+w|7A={XLp1Ssb9d=F%cQ})G*lCE7cA(v9g_y$WZ^>3w>eU49wU`mU%8$x7%JT-7n&&=42oAcxqC zoNpu(9JDaCn7pruE(yyTvQB|1Bz3I`xsiM*o?1Mpqq+z3rD>wmgN|JlK?L5AOaT( zRZORhUM9=?`{(5N@^rJ?+2xUhW56~H`?jzzy*hsB!U*i;Nji!&dH610Y$U8TdygV0 z-K+|rVvw?fwT=)4&74|^t?G&x*F^~pl131p=qk#cbcSiFq^~ZrTajp4JZl3NqEP=* zUC3SuUY@Bc*ksU7LQuTG^O#IzvxNQWQu;c@a_k69F%hb}WNgj?w4X4RahO$B18r86 z)gq;CT*bKL-YhuvL|mP|-QjUF4o_dZ@<2miMRWE!(ZeIG>PD&A{i1$O%*d@txE^)j zimHb3+4x2PE4jzOCJh-HMMW|cv^(J1$XZlW@eD7L3UwgcrV?|}W-FMUv2CxW*BOR= zwb0!XYbuE3OhOS^pYtN!&K`qDxe>DQER`++z+fjqeqg)kZgmU?sI)S(m7V=9Xuz>&t2rcw zs;t;Z$eIa51HT$PCTGis?QUJ*kDLPGS9|ezQNTr=$)oct77(}*X*(^8d(*loZgF<4 z$822jatQQ&Ho-Y7EMy~LwagR&fO+jfIp^AEhK59X4~D|pPM>3mQ;PmpZyS==YCCM- zlo@JBn3m~lxv8zSK>}i``&&CbSesU>_cDuENG}387a2B^6)obyLpuFNhJjP*9)=#a z4>;~`b+(KsmJix85ER<(xwb0>#k5IDud-nbcnj7SAT-1YQTq-|HoANeFEhz>Plf$2 zAG$qfLZsH|*Ttu(;NO=#Yg8ajMZx9?r`B>H%`pkembN2_ErWyptW8NrfxS6aw6(G! zN8*Mh34F}6!o{Y$JrePVz9iM054MuemWqcPG~bSs$d&9A9KJlope%1T8}!E3k9KIH zN%{6VoOf@py`8Ps zLQA2*qQ;R@3EYSoXe0B z4bD!MkU(Vhw188lK57s~`mKOl#UBJYbl;ppszMD-+ena`M{=QF8_y1)J@KKwU7v|BU^KSGd!MO=I4w5YW{edw>Q=>bF^a zE_bI`(CzNa1zsh$qsL7L?qskQy3hQr1kBwSz!JU{A*iO(7L~3h6r_aeCI}l0o)6Uf z!fD0W$m}tg`z^AAD;&G~F80n+05x$~0MRImfYXYJ@$fNSEG+HQ>T00}My9jV>U?UXx7Kw1RntSlfLh?%NrLXT=OtUPQjZkNDw*xDc_v7pAFaUFy!rmYRUjRn12 z!n<XhCIwYg)Q4bV%BT5x~xVpLe$$iU>7uU=q>Bwbn9Xs8xi6`n?g(ZU?4XfGw}OyAyim49wiQ@d0}zo6L=LV=!gznKZ-Mg- ziHCaWVRAJHhSlM98Vxs^n(b|wP#$hkZoMqR_B#Q;L$lQs)OYPw6|$!WF)>U#!`coz zXc%3OchDSWk4d;4jG@+Ou+7NCqG+8Iac4RRy#$1H>88_%PuG~j!MeRRY`fcr^&MVQ z`Aq1R=4xHQewV2Od9&A1MG`PJ;nx@jm#HA0VrXFGZ!JXksGU$G2_uE}J~p9NDJ{C& z_Hx)8VWU;wWrjcszCIj_z0e#rmJWFhyvZYvv4z-&nG8DF?wF|PHSX4C<@%v8BWB-i zypS4Jx~8UR1Ho-67X2j|TQXW>Q7#f)P8&@ObcBKPN|>+`V8;{iZ2n?pn8%Ht&Sl@1KecKyb9kykL%eJmSbl^%5l9cA$+=p=nz8d z#Im%~bR;*a`Jz!!w!SZrTGtwkWCK8;fWms-j$!Xozj|$ROON1K{}K}6ZoDJ1W&!I) zcQ{wCOI>d1IYP=Ri|$s5@nBRE1z_GR2zB`O^i>e`qZCAsDA{l*!L#xZjANf`EGkyS z^VsHRD9B2mp`av+X%X7v1$5NfFwV{2J>Je&BDT&Fv1O0D3xh{(5E8pO?3=2f=m&s< zOGLT5>+i8}yb#L9=iVPk$C;yZCTrFw&4N@>%08ErqNpQ4XCxC8SJjmQEj5%T{P|W zvy8rgulI$*o#i(RY;2hW_~~*!=6(1GvyR>g8TTq_Cq$rdEkZKGjZ!k1JobAYC7nzh3TuP5BA9jyT)xET7~74K z(HVUEY<7b^oVCp31wVc#Hxm$sZ>9b_fj-%uCJk-f}61 zD{m_UESH4ElA4ubTzJif`Q9`n47LwqFQE~S_7 zz*Vs9KCjW$6q^@NE4EBMIv5CxPmQv)EYnH;q;50BmAa{U)!H#7P<&lg-@x|Z7NiBZ zZ9$%96MbtN46C+`j6yxeQhkJh7WX&Fcmdx#uA~sTB9giR_;D;aRsjIwETGOdJ9sgG zy9qaJ3kvkWs-qBvr%Y7{z*U8qk@CS@B{}LIP-^ogfU7RnFTAXl;5JJEuapoqrlO;+ zF!#)zCbbc6c@;OaI9=znop8Ly)Pq!?3RJ^P+g%@#V$V&L*zfFgC;-s_ycsL&WEMZJP-KIQx9lbv;ac4;8;iEGV(W%ZMcQ z{_@%T7Mk&V$qYt>Bbx>8*CmX2oKFmEU@2M6fMAC2Jy`5JE;1r!4-*P8H>!X6);59< zL>whzimJYXpF2kpF(Sp_tYiteL-P&Ho4-4e){|rj7uxX7AjU669A6yqLlKCuf=@&w zj7ZFzY;taf&n9e2l(O01*}*$GA?qs+52N#8dliiALp%}V(v~*wulEt>tM`j-LqmhJ z%3fNFpryOl2#?2)JP&c!7h%{7fUckL>f$M9I}f_?WdnWJ8qp3`yxU9yPp3+%p)}E= z62hIms2pErv!lnb%-uB%oxvTt!_2@?<%86?vwjbsBNX-JVCF^oF$M!R_a+4eAp%C1 z)CF{9&N2-=IG%UZnJhuAMlLx0zQt)`bw!d6qFal2k^E71xThEl7{`q= zIV?4!k;~3%`D0wAc0C(Dq-S0hmP@R`Djgg>+pCjP*N@>|XbS}u6P2X_lj(fL@Vp@3 z`5}7$Hvx2lDxjU7@eLUC$EObS4Wr0>*KS_f&Y>UVx}Z9Hz^K_ zr)#A|rV*~*Ylq!;37oH|zd{ICa}Dk$F2u)vJ}lHX((nFnK4$5= zO*o5(#J;9Jz$#SX0x2f+%FoLP7dH7bBYcT(QDE(Y8$+sxC3T3)tsmsTur1<~If*lM zq>E~uA{gF1M}%*jlv&zT_+l~YKCBziiqq=oa4$z;T|b zOV7-H`A{x{zZ5U6mGIK}xRP)CRM@siiYW&_e#i8Vu^*)(+{o}P2@h#pyajel1`{hQ zAyLw~Prr&VvcgT6XKc6MC*}O3CGS=VV^P6TgI$wITwamT}|Mh68Hz+saH}-UfkGcQ6^N=TmcmG8s>(N zWz4b{yvzh<&*d{S>Q4^*gogX&46Ob~L5_00x35lJ-w z?#Wm`jUOioXRY+4zeNINt#`X7HW3Z+tscB;B46ei^6n;Hqtx{ES_WvX7!G;SnhWrz z_=N@ZrHdRaX9LbG#TQ46%)G)6)UOMRkfceXxxa@LU9Agjz=#{>g?NA$Z=CQ+nmIq# z3HBTcSJpFy0G*`G4gjUwh8Tli_(|a=(x|Yr>jk&gm8SX05>v7t_{894elFa+!Mi%~ z7`*qpR__M`#r!XjRqF|YpKfB0h$$dx|0>9eWmS$2-ebM$h!-=$&BrLz3bAQWYAr;{ckQEK~X5Zx5<0ZahV-&9A}bem5YOfhC2C55x{4dxN~4mqL_jFN*Y%cx7Jzyp<4d7 z3Ut|6_b}!7!jZD4zXM|RuaPn8B&M)Va}Wg-W?tOr`)NwW{7#Z3Y8(TKoXducS0p66 zz*ZiXO=pM3XGPIzYqye96=$S&S5i!LY{@GlLPvWF17xlA*@8$5dvF=tyIG?789j6C zsn{*c(m65qQ_GB9e+vg$r;Y61VeclJF}8EDRuao_wZ}M}(1N|3G_Fw350NFce9%dI z9U(p7%XD%UL2ttdB#I8O;9Gq(Jr;%*`zr0(NQtx02KWlX%urLZd~*WuAjC&QQOGZ7 z%%o-gm;!m#d~3Po(C^v#A~5sgR2WViLYsWseAovsg-e_jX%Ugz!^%iX2+OZb8RNGH zAyA`O(SGQKyc`-!Vk_k|fl$K{I@_=;JIfG0qV+}l@-rgHXPcqFh{L%|t8RB%v%-bZ z|G1zl4*uyuWVKTUU?gio0~V9J7D^s%v`A12wb2=yry4 z_L#%>@MxZxxIE*EKZB;1Xc)$L#hD!euem5Nt(HX`m#VVk%?;+pke%5S;Y44X2&uxk zHyDURt&)Oh#!Mf|6E#QC2q6el;*c2D%@+|8Y`olR?j)oC%mg%cOWyy3>tuZQuBzYR zyul8^JNS4Z486C^Lpcu)Vi2yD8fJMz4TfRrTEh$ciFzx)6{c18+tkLcz31VuBA>HSl4)m5GoOXKDo?kX2ht(#;2U+9G@70dSNDdGie&LL({HQLj(386-xh zq{+Hf1l_fl!f+=_yMptAZ@@+`B=F%3Mx1!8onAsGBj=DtRpxgbtzfZi-(ow| z78yXrTd2xTyb~sifKS-C3SesrNsmnzn#s6H4sa;0Ni}92h0qR&!>v2gdf{?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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

WQin~Sj5cqH9c^IW8eVU28BJs6gcUGzK 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 - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - showimage - {FEE80C5D-762E-4E57-9BCB-928749E8203F} - - - - Application - false - - - Application - - - Application - - - Application - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)\$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)\$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)\$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - $(SolutionDir)\$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\Debug/showimage.tlb - - - - - Disabled - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - Level3 - OldStyle - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - true - Windows - - - - - - - - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\Debug/showimage.tlb - - - - - Disabled - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - Level3 - OldStyle - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Windows - true - - - - - - - - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\Release/showimage.tlb - - - - - ..\..\..\SDL\include;%(AdditionalIncludeDirectories) - MaxSpeed - OnlyExplicitInline - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - .\Release/showimage.pch - Level3 - true - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - .\Release/showimage.pdb - Windows - - - true - .\Release/showimage.bsc - - - - - - - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\Release/showimage.tlb - - - - - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDLL - Level3 - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Windows - - - - - - - - - - - - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - - - {2bd5534e-00e2-4bea-ac96-d9a92ea24696} - false - - - - - - \ No newline at end of file diff --git a/extension/SDL2_image-2.0.3/VisualC/showimage/showimage.vcxproj.filters b/extension/SDL2_image-2.0.3/VisualC/showimage/showimage.vcxproj.filters deleted file mode 100755 index a3635ce..0000000 --- a/extension/SDL2_image-2.0.3/VisualC/showimage/showimage.vcxproj.filters +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/extension/SDL2_image-2.0.3/VisualCE/SDL_image.dsp b/extension/SDL2_image-2.0.3/VisualCE/SDL_image.dsp deleted file mode 100755 index b5a5953..0000000 --- a/extension/SDL2_image-2.0.3/VisualCE/SDL_image.dsp +++ /dev/null @@ -1,164 +0,0 @@ -# Microsoft Developer Studio Project File - Name="SDL_image" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=SDL_image - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "SDL_image.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "SDL_image.mak" CFG="SDL_image - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "SDL_image - Win32 Release" (based on\ - "Win32 (x86) Dynamic-Link Library") -!MESSAGE "SDL_image - Win32 Debug" (based on\ - "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "SDL_image - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "graphics\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "LOAD_BMP" /D "LOAD_GIF" /D "LOAD_JPG" /D LOAD_JPG_DYNAMIC=\"jpeg.dll\" /D "LOAD_LBM" /D "LOAD_PCX" /D "LOAD_PNG" /D LOAD_PNG_DYNAMIC=\"libpng12-0.dll\" /D "LOAD_PNM" /D "LOAD_TGA" /D "LOAD_TIF" /D LOAD_TIF_DYNAMIC=\"libtiff-3.dll\" /D "LOAD_XPM" /D "LOAD_XV" /D "PNG_USE_DLL" /D "ZLIB_DLL" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib SDL.lib /nologo /subsystem:windows /dll /machine:I386 - -!ELSEIF "$(CFG)" == "SDL_image - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /Gm /GX /Zi /Od /I "graphics\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "LOAD_BMP" /D "LOAD_GIF" /D "LOAD_JPG" /D LOAD_JPG_DYNAMIC=\"jpeg.dll\" /D "LOAD_LBM" /D "LOAD_PCX" /D "LOAD_PNG" /D LOAD_PNG_DYNAMIC=\"libpng12-0.dll\" /D "LOAD_PNM" /D "LOAD_TGA" /D "LOAD_TIF" /D LOAD_TIF_DYNAMIC=\"libtiff-3.dll\" /D "LOAD_XPM" /D "LOAD_XV" /D "PNG_USE_DLL" /D "ZLIB_DLL" /YX /FD /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib SDL.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "SDL_image - Win32 Release" -# Name "SDL_image - Win32 Debug" -# Begin Group "SDL_image Sources" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\IMG.c -# End Source File -# Begin Source File - -SOURCE=..\IMG_bmp.c -# End Source File -# Begin Source File - -SOURCE=..\IMG_gif.c -# End Source File -# Begin Source File - -SOURCE=..\IMG_jpg.c -# End Source File -# Begin Source File - -SOURCE=..\IMG_lbm.c -# End Source File -# Begin Source File - -SOURCE=..\IMG_pcx.c -# End Source File -# Begin Source File - -SOURCE=..\IMG_png.c -# End Source File -# Begin Source File - -SOURCE=..\IMG_pnm.c -# End Source File -# Begin Source File - -SOURCE=..\IMG_tga.c -# End Source File -# Begin Source File - -SOURCE=..\IMG_tif.c -# End Source File -# Begin Source File - -SOURCE=..\IMG_xcf.c -# End Source File -# Begin Source File - -SOURCE=..\IMG_xpm.c -# End Source File -# Begin Source File - -SOURCE=..\IMG_xv.c -# End Source File -# Begin Source File - -SOURCE=..\IMG_xxx.c -# End Source File -# Begin Source File - -SOURCE=Version.rc -# End Source File -# End Group -# Begin Group "SDL_image Headers" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\SDL_image.h -# End Source File -# End Group -# End Target -# End Project diff --git a/extension/SDL2_image-2.0.3/VisualCE/SDL_image.dsw b/extension/SDL2_image-2.0.3/VisualCE/SDL_image.dsw deleted file mode 100755 index 28d1f43..0000000 --- a/extension/SDL2_image-2.0.3/VisualCE/SDL_image.dsw +++ /dev/null @@ -1,41 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "SDL_image"=".\SDL_image.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "showimage"=".\showimage\showimage.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/extension/SDL2_image-2.0.3/VisualCE/SDL_image.sln b/extension/SDL2_image-2.0.3/VisualCE/SDL_image.sln deleted file mode 100755 index 10a12fb..0000000 --- a/extension/SDL2_image-2.0.3/VisualCE/SDL_image.sln +++ /dev/null @@ -1,30 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL_image", "SDL_image.vcproj", "{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Pocket PC 2003 (ARMV4) = Debug|Pocket PC 2003 (ARMV4) - Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) - Release|Pocket PC 2003 (ARMV4) = Release|Pocket PC 2003 (ARMV4) - Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|Pocket PC 2003 (ARMV4).ActiveCfg = Debug|Pocket PC 2003 (ARMV4) - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|Pocket PC 2003 (ARMV4).Build.0 = Debug|Pocket PC 2003 (ARMV4) - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|Pocket PC 2003 (ARMV4).Deploy.0 = Debug|Pocket PC 2003 (ARMV4) - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Release|Pocket PC 2003 (ARMV4).ActiveCfg = Release|Pocket PC 2003 (ARMV4) - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Release|Pocket PC 2003 (ARMV4).Build.0 = Release|Pocket PC 2003 (ARMV4) - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Release|Pocket PC 2003 (ARMV4).Deploy.0 = Release|Pocket PC 2003 (ARMV4) - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) - {2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal - diff --git a/extension/SDL2_image-2.0.3/VisualCE/SDL_image.vcproj b/extension/SDL2_image-2.0.3/VisualCE/SDL_image.vcproj deleted file mode 100755 index 30e8be6..0000000 --- a/extension/SDL2_image-2.0.3/VisualCE/SDL_image.vcproj +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/extension/SDL2_image-2.0.3/VisualCE/Version.rc b/extension/SDL2_image-2.0.3/VisualCE/Version.rc deleted file mode 100755 index 94edb4f..0000000 --- a/extension/SDL2_image-2.0.3/VisualCE/Version.rc +++ /dev/null @@ -1,106 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "windows.h" -#include "resdefce.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifndef _MAC -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,0,1,0 - PRODUCTVERSION 2,0,1,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", "\0" - VALUE "FileDescription", "SDL_image\0" - VALUE "FileVersion", "2, 0, 1, 0\0" - VALUE "InternalName", "SDL_image\0" - VALUE "LegalCopyright", "Copyright © 2018 Sam Lantinga\0" - VALUE "OriginalFilename", "SDL_image.dll\0" - VALUE "ProductName", "Simple DirectMedia Layer\0" - VALUE "ProductVersion", "2, 0, 1, 0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - -#endif // !_MAC - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/extension/SDL2_image-2.0.3/VisualCE/clean.sh b/extension/SDL2_image-2.0.3/VisualCE/clean.sh deleted file mode 100755 index f90a11e..0000000 --- a/extension/SDL2_image-2.0.3/VisualCE/clean.sh +++ /dev/null @@ -1,5 +0,0 @@ -find . -type d -name 'Debug' -exec rm -rv {} \; -find . -type d -name 'Release' -exec rm -rv {} \; -find . -type f -name '*.user' -exec rm -v {} \; -find . -type f -name '*.ncb' -exec rm -v {} \; -find . -type f -name '*.suo' -exec rm -v {} \; diff --git a/extension/SDL2_image-2.0.3/VisualCE/resource.h b/extension/SDL2_image-2.0.3/VisualCE/resource.h deleted file mode 100755 index 7c822cf..0000000 --- a/extension/SDL2_image-2.0.3/VisualCE/resource.h +++ /dev/null @@ -1,15 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by Version.rc -// - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 101 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/extension/SDL2_image-2.0.3/VisualCE/showimage/showimage.dsp b/extension/SDL2_image-2.0.3/VisualCE/showimage/showimage.dsp deleted file mode 100755 index 0a54a0d..0000000 --- a/extension/SDL2_image-2.0.3/VisualCE/showimage/showimage.dsp +++ /dev/null @@ -1,106 +0,0 @@ -# Microsoft Developer Studio Project File - Name="showimage" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Application" 0x0101 - -CFG=showimage - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "showimage.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "showimage.mak" CFG="showimage - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "showimage - Win32 Release" (based on "Win32 (x86) Application") -!MESSAGE "showimage - Win32 Debug" (based on "Win32 (x86) Application") -!MESSAGE - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "showimage - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib SDL.lib SDLmain.lib /nologo /subsystem:windows /machine:I386 - -!ELSEIF "$(CFG)" == "showimage - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib SDL.lib SDLmain.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "showimage - Win32 Release" -# Name "showimage - Win32 Debug" -# Begin Group "Showimage Sources" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\showimage.c -# End Source File -# End Group -# Begin Group "External Libraries" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\Release\SDL_image.lib -# End Source File -# End Group -# End Target -# End Project diff --git a/extension/SDL2_image-2.0.3/VisualCE/showimage/showimage.sln b/extension/SDL2_image-2.0.3/VisualCE/showimage/showimage.sln deleted file mode 100755 index b3d41d8..0000000 --- a/extension/SDL2_image-2.0.3/VisualCE/showimage/showimage.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "showimage", "showimage.vcproj", "{FEE80C5D-762E-4E57-9BCB-928749E8203F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FEE80C5D-762E-4E57-9BCB-928749E8203F}.Debug|Win32.ActiveCfg = Debug|Win32 - {FEE80C5D-762E-4E57-9BCB-928749E8203F}.Debug|Win32.Build.0 = Debug|Win32 - {FEE80C5D-762E-4E57-9BCB-928749E8203F}.Release|Win32.ActiveCfg = Release|Win32 - {FEE80C5D-762E-4E57-9BCB-928749E8203F}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/extension/SDL2_image-2.0.3/VisualCE/showimage/showimage.vcproj b/extension/SDL2_image-2.0.3/VisualCE/showimage/showimage.vcproj deleted file mode 100755 index 0e6d8ff..0000000 --- a/extension/SDL2_image-2.0.3/VisualCE/showimage/showimage.vcproj +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/extension/SDL2_image-2.0.3/Xcode-iOS/SDL_image.xcodeproj/project.pbxproj b/extension/SDL2_image-2.0.3/Xcode-iOS/SDL_image.xcodeproj/project.pbxproj deleted file mode 100755 index 5450060..0000000 --- a/extension/SDL2_image-2.0.3/Xcode-iOS/SDL_image.xcodeproj/project.pbxproj +++ /dev/null @@ -1,620 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXAggregateTarget section */ - AA5314461FE0FB540025C9BE /* All (iOS) */ = { - isa = PBXAggregateTarget; - buildConfigurationList = AA5314471FE0FB540025C9BE /* Build configuration list for PBXAggregateTarget "All (iOS)" */; - buildPhases = ( - AA53144A1FE0FB630025C9BE /* ShellScript */, - ); - dependencies = ( - ); - name = "All (iOS)"; - productName = "All (iOS)"; - }; - AA53144B1FE0FBF20025C9BE /* All (tvOS) */ = { - isa = PBXAggregateTarget; - buildConfigurationList = AA53144C1FE0FBF20025C9BE /* Build configuration list for PBXAggregateTarget "All (tvOS)" */; - buildPhases = ( - AA53144F1FE0FBF90025C9BE /* ShellScript */, - ); - dependencies = ( - ); - name = "All (tvOS)"; - productName = "All (tvOS)"; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 00A06D7812FFBFD5009F1A11 /* SDL_image.h in Headers */ = {isa = PBXBuildFile; fileRef = 1014BAEA010A4B677F000001 /* SDL_image.h */; }; - AA126A9A1617A4A4005ABC8F /* IMG_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A891617A4A4005ABC8F /* IMG_bmp.c */; }; - AA126A9B1617A4A4005ABC8F /* IMG_gif.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A8A1617A4A4005ABC8F /* IMG_gif.c */; }; - AA126A9C1617A4A4005ABC8F /* IMG_ImageIO.m in Sources */ = {isa = PBXBuildFile; fileRef = AA126A8B1617A4A4005ABC8F /* IMG_ImageIO.m */; }; - AA126A9D1617A4A4005ABC8F /* IMG_jpg.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A8C1617A4A4005ABC8F /* IMG_jpg.c */; }; - AA126A9E1617A4A4005ABC8F /* IMG_lbm.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A8D1617A4A4005ABC8F /* IMG_lbm.c */; }; - AA126A9F1617A4A4005ABC8F /* IMG_pcx.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A8E1617A4A4005ABC8F /* IMG_pcx.c */; }; - AA126AA01617A4A4005ABC8F /* IMG_png.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A8F1617A4A4005ABC8F /* IMG_png.c */; }; - AA126AA11617A4A4005ABC8F /* IMG_pnm.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A901617A4A4005ABC8F /* IMG_pnm.c */; }; - AA126AA21617A4A4005ABC8F /* IMG_tga.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A911617A4A4005ABC8F /* IMG_tga.c */; }; - AA126AA31617A4A4005ABC8F /* IMG_tif.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A921617A4A4005ABC8F /* IMG_tif.c */; }; - AA126AA51617A4A4005ABC8F /* IMG_webp.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A941617A4A4005ABC8F /* IMG_webp.c */; }; - AA126AA61617A4A4005ABC8F /* IMG_xcf.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A951617A4A4005ABC8F /* IMG_xcf.c */; }; - AA126AA71617A4A4005ABC8F /* IMG_xpm.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A961617A4A4005ABC8F /* IMG_xpm.c */; }; - AA126AA81617A4A4005ABC8F /* IMG_xv.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A971617A4A4005ABC8F /* IMG_xv.c */; }; - AA126AA91617A4A4005ABC8F /* IMG_xxx.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A981617A4A4005ABC8F /* IMG_xxx.c */; }; - AA126AAA1617A4A4005ABC8F /* IMG.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A991617A4A4005ABC8F /* IMG.c */; }; - AA50AA491F9C7DB6003B9C0C /* IMG_svg.c in Sources */ = {isa = PBXBuildFile; fileRef = AA50AA481F9C7DB6003B9C0C /* IMG_svg.c */; }; - AA53142D1FE0FA910025C9BE /* SDL_image.h in Headers */ = {isa = PBXBuildFile; fileRef = 1014BAEA010A4B677F000001 /* SDL_image.h */; }; - AA53142F1FE0FA910025C9BE /* IMG_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A891617A4A4005ABC8F /* IMG_bmp.c */; }; - AA5314301FE0FA910025C9BE /* IMG_gif.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A8A1617A4A4005ABC8F /* IMG_gif.c */; }; - AA5314311FE0FA910025C9BE /* IMG_ImageIO.m in Sources */ = {isa = PBXBuildFile; fileRef = AA126A8B1617A4A4005ABC8F /* IMG_ImageIO.m */; }; - AA5314321FE0FA910025C9BE /* IMG_jpg.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A8C1617A4A4005ABC8F /* IMG_jpg.c */; }; - AA5314331FE0FA910025C9BE /* IMG_lbm.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A8D1617A4A4005ABC8F /* IMG_lbm.c */; }; - AA5314341FE0FA910025C9BE /* IMG_pcx.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A8E1617A4A4005ABC8F /* IMG_pcx.c */; }; - AA5314351FE0FA910025C9BE /* IMG_png.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A8F1617A4A4005ABC8F /* IMG_png.c */; }; - AA5314361FE0FA910025C9BE /* IMG_pnm.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A901617A4A4005ABC8F /* IMG_pnm.c */; }; - AA5314371FE0FA910025C9BE /* IMG_tga.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A911617A4A4005ABC8F /* IMG_tga.c */; }; - AA5314381FE0FA910025C9BE /* IMG_tif.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A921617A4A4005ABC8F /* IMG_tif.c */; }; - AA5314391FE0FA910025C9BE /* IMG_webp.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A941617A4A4005ABC8F /* IMG_webp.c */; }; - AA53143A1FE0FA910025C9BE /* IMG_xcf.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A951617A4A4005ABC8F /* IMG_xcf.c */; }; - AA53143B1FE0FA910025C9BE /* IMG_xpm.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A961617A4A4005ABC8F /* IMG_xpm.c */; }; - AA53143C1FE0FA910025C9BE /* IMG_xv.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A971617A4A4005ABC8F /* IMG_xv.c */; }; - AA53143D1FE0FA910025C9BE /* IMG_xxx.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A981617A4A4005ABC8F /* IMG_xxx.c */; }; - AA53143E1FE0FA910025C9BE /* IMG.c in Sources */ = {isa = PBXBuildFile; fileRef = AA126A991617A4A4005ABC8F /* IMG.c */; }; - AA53143F1FE0FA910025C9BE /* IMG_svg.c in Sources */ = {isa = PBXBuildFile; fileRef = AA50AA481F9C7DB6003B9C0C /* IMG_svg.c */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 1014BAEA010A4B677F000001 /* SDL_image.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SDL_image.h; path = ../SDL_image.h; sourceTree = SOURCE_ROOT; }; - AA126A891617A4A4005ABC8F /* IMG_bmp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_bmp.c; path = ../IMG_bmp.c; sourceTree = ""; }; - AA126A8A1617A4A4005ABC8F /* IMG_gif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_gif.c; path = ../IMG_gif.c; sourceTree = ""; }; - AA126A8B1617A4A4005ABC8F /* IMG_ImageIO.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IMG_ImageIO.m; path = ../IMG_ImageIO.m; sourceTree = ""; }; - AA126A8C1617A4A4005ABC8F /* IMG_jpg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_jpg.c; path = ../IMG_jpg.c; sourceTree = ""; }; - AA126A8D1617A4A4005ABC8F /* IMG_lbm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_lbm.c; path = ../IMG_lbm.c; sourceTree = ""; }; - AA126A8E1617A4A4005ABC8F /* IMG_pcx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_pcx.c; path = ../IMG_pcx.c; sourceTree = ""; }; - AA126A8F1617A4A4005ABC8F /* IMG_png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_png.c; path = ../IMG_png.c; sourceTree = ""; }; - AA126A901617A4A4005ABC8F /* IMG_pnm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_pnm.c; path = ../IMG_pnm.c; sourceTree = ""; }; - AA126A911617A4A4005ABC8F /* IMG_tga.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_tga.c; path = ../IMG_tga.c; sourceTree = ""; }; - AA126A921617A4A4005ABC8F /* IMG_tif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_tif.c; path = ../IMG_tif.c; sourceTree = ""; }; - AA126A941617A4A4005ABC8F /* IMG_webp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_webp.c; path = ../IMG_webp.c; sourceTree = ""; }; - AA126A951617A4A4005ABC8F /* IMG_xcf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_xcf.c; path = ../IMG_xcf.c; sourceTree = ""; }; - AA126A961617A4A4005ABC8F /* IMG_xpm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_xpm.c; path = ../IMG_xpm.c; sourceTree = ""; }; - AA126A971617A4A4005ABC8F /* IMG_xv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_xv.c; path = ../IMG_xv.c; sourceTree = ""; }; - AA126A981617A4A4005ABC8F /* IMG_xxx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_xxx.c; path = ../IMG_xxx.c; sourceTree = ""; }; - AA126A991617A4A4005ABC8F /* IMG.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG.c; path = ../IMG.c; sourceTree = ""; }; - AA50AA481F9C7DB6003B9C0C /* IMG_svg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_svg.c; path = ../IMG_svg.c; sourceTree = ""; }; - AA5314451FE0FA910025C9BE /* libSDL2_image.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL2_image.a; sourceTree = BUILT_PRODUCTS_DIR; }; - BE1FA74107AF4C45004B6283 /* libSDL2_image.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL2_image.a; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - AA5314401FE0FA910025C9BE /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BE1FA73F07AF4C45004B6283 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0153844A006D81B07F000001 /* Public Headers */ = { - isa = PBXGroup; - children = ( - 1014BAEA010A4B677F000001 /* SDL_image.h */, - ); - name = "Public Headers"; - sourceTree = ""; - }; - 034768DDFF38A45A11DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 089C1665FE841158C02AAC07 /* Resources */, - BE1FA74107AF4C45004B6283 /* libSDL2_image.a */, - AA5314451FE0FA910025C9BE /* libSDL2_image.a */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* SDL_imageFramework */ = { - isa = PBXGroup; - children = ( - 0153844A006D81B07F000001 /* Public Headers */, - 08FB77ACFE841707C02AAC07 /* Library Source */, - 034768DDFF38A45A11DB9C8B /* Products */, - ); - name = SDL_imageFramework; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - ); - name = Resources; - sourceTree = ""; - }; - 08FB77ACFE841707C02AAC07 /* Library Source */ = { - isa = PBXGroup; - children = ( - AA126A991617A4A4005ABC8F /* IMG.c */, - AA126A8B1617A4A4005ABC8F /* IMG_ImageIO.m */, - AA126A891617A4A4005ABC8F /* IMG_bmp.c */, - AA126A8A1617A4A4005ABC8F /* IMG_gif.c */, - AA126A8C1617A4A4005ABC8F /* IMG_jpg.c */, - AA126A8D1617A4A4005ABC8F /* IMG_lbm.c */, - AA126A8E1617A4A4005ABC8F /* IMG_pcx.c */, - AA126A8F1617A4A4005ABC8F /* IMG_png.c */, - AA126A901617A4A4005ABC8F /* IMG_pnm.c */, - AA50AA481F9C7DB6003B9C0C /* IMG_svg.c */, - AA126A911617A4A4005ABC8F /* IMG_tga.c */, - AA126A921617A4A4005ABC8F /* IMG_tif.c */, - AA126A941617A4A4005ABC8F /* IMG_webp.c */, - AA126A951617A4A4005ABC8F /* IMG_xcf.c */, - AA126A961617A4A4005ABC8F /* IMG_xpm.c */, - AA126A971617A4A4005ABC8F /* IMG_xv.c */, - AA126A981617A4A4005ABC8F /* IMG_xxx.c */, - ); - name = "Library Source"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - AA53142C1FE0FA910025C9BE /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - AA53142D1FE0FA910025C9BE /* SDL_image.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BE1FA73007AF4C45004B6283 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 00A06D7812FFBFD5009F1A11 /* SDL_image.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - AA53142B1FE0FA910025C9BE /* libSDL_image-tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = AA5314421FE0FA910025C9BE /* Build configuration list for PBXNativeTarget "libSDL_image-tvOS" */; - buildPhases = ( - AA53142C1FE0FA910025C9BE /* Headers */, - AA53142E1FE0FA910025C9BE /* Sources */, - AA5314401FE0FA910025C9BE /* Frameworks */, - AA5314411FE0FA910025C9BE /* Rez */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "libSDL_image-tvOS"; - productInstallPath = /usr/local/lib; - productName = "Static Library"; - productReference = AA5314451FE0FA910025C9BE /* libSDL2_image.a */; - productType = "com.apple.product-type.library.static"; - }; - BE1FA72F07AF4C45004B6283 /* libSDL_image-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00B7E3AE097EB73D00826121 /* Build configuration list for PBXNativeTarget "libSDL_image-iOS" */; - buildPhases = ( - BE1FA73007AF4C45004B6283 /* Headers */, - BE1FA73107AF4C45004B6283 /* Sources */, - BE1FA73F07AF4C45004B6283 /* Frameworks */, - BE1FA74007AF4C45004B6283 /* Rez */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "libSDL_image-iOS"; - productInstallPath = /usr/local/lib; - productName = "Static Library"; - productReference = BE1FA74107AF4C45004B6283 /* libSDL2_image.a */; - productType = "com.apple.product-type.library.static"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0900; - TargetAttributes = { - AA5314461FE0FB540025C9BE = { - CreatedOnToolsVersion = 9.2; - ProvisioningStyle = Automatic; - }; - AA53144B1FE0FBF20025C9BE = { - CreatedOnToolsVersion = 9.2; - ProvisioningStyle = Automatic; - }; - }; - }; - buildConfigurationList = 00B7E3B6097EB73D00826121 /* Build configuration list for PBXProject "SDL_image" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* SDL_imageFramework */; - productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */; - projectDirPath = ""; - projectRoot = ..; - targets = ( - BE1FA72F07AF4C45004B6283 /* libSDL_image-iOS */, - AA53142B1FE0FA910025C9BE /* libSDL_image-tvOS */, - AA5314461FE0FB540025C9BE /* All (iOS) */, - AA53144B1FE0FBF20025C9BE /* All (tvOS) */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXRezBuildPhase section */ - AA5314411FE0FA910025C9BE /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BE1FA74007AF4C45004B6283 /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXRezBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - AA53144A1FE0FB630025C9BE /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - output/iOS/debug/libSDL2_image.a, - output/iOS/release/libSDL2_image.a, - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "TARGET=libSDL_image-iOS\nOUTPUT=libSDL2_image.a\n\nxcodebuild -target \"$TARGET\" -configuration Debug -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\nxcodebuild -target \"$TARGET\" -configuration Release -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\nxcodebuild -target \"$TARGET\" ONLY_ACTIVE_ARCH=NO -configuration Debug -sdk iphoneos BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\nxcodebuild -target \"$TARGET\" ONLY_ACTIVE_ARCH=NO -configuration Release -sdk iphoneos BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\n\n# make output folders\nmkdir -p output/iOS/debug\nmkdir -p output/iOS/release\n\n# combine lib files for various platforms into one\necho \"Creating output/iOS/debug/$OUTPUT\"\nlipo -create \"${TARGET_BUILD_DIR}/../Debug-iphoneos/$OUTPUT\" \"${TARGET_BUILD_DIR}/../Debug-iphonesimulator/$OUTPUT\" -output \"output/iOS/debug/$OUTPUT\"\necho \"Creating output/iOS/release/$OUTPUT\"\nlipo -create \"${TARGET_BUILD_DIR}/../Release-iphoneos/$OUTPUT\" \"${TARGET_BUILD_DIR}/../Release-iphonesimulator/$OUTPUT\" -output \"output/iOS/release/$OUTPUT\"\n"; - }; - AA53144F1FE0FBF90025C9BE /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - output/tvOS/debug/libSDL2_image.a, - output/tvOS/release/libSDL2_image.a, - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "TARGET=libSDL_image-tvOS\nOUTPUT=libSDL2_image.a\n\nxcodebuild -target \"$TARGET\" -configuration Debug -sdk appletvsimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\nxcodebuild -target \"$TARGET\" -configuration Release -sdk appletvsimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\nxcodebuild -target \"$TARGET\" ONLY_ACTIVE_ARCH=NO -configuration Debug -sdk appletvos BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\nxcodebuild -target \"$TARGET\" ONLY_ACTIVE_ARCH=NO -configuration Release -sdk appletvos BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" clean build\n\n# make output folders\nmkdir -p output/tvOS/debug\nmkdir -p output/tvOS/release\n\n# combine lib files for various platforms into one\necho \"Creating output/tvOS/debug/$OUTPUT\"\nlipo -create \"${TARGET_BUILD_DIR}/../Debug-appletvos/$OUTPUT\" \"${TARGET_BUILD_DIR}/../Debug-appletvsimulator/$OUTPUT\" -output \"output/tvOS/debug/$OUTPUT\"\necho \"Creating output/tvOS/release/$OUTPUT\"\nlipo -create \"${TARGET_BUILD_DIR}/../Release-appletvos/$OUTPUT\" \"${TARGET_BUILD_DIR}/../Release-appletvsimulator/$OUTPUT\" -output \"output/tvOS/release/$OUTPUT\"\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - AA53142E1FE0FA910025C9BE /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - AA53142F1FE0FA910025C9BE /* IMG_bmp.c in Sources */, - AA5314301FE0FA910025C9BE /* IMG_gif.c in Sources */, - AA5314311FE0FA910025C9BE /* IMG_ImageIO.m in Sources */, - AA5314321FE0FA910025C9BE /* IMG_jpg.c in Sources */, - AA5314331FE0FA910025C9BE /* IMG_lbm.c in Sources */, - AA5314341FE0FA910025C9BE /* IMG_pcx.c in Sources */, - AA5314351FE0FA910025C9BE /* IMG_png.c in Sources */, - AA5314361FE0FA910025C9BE /* IMG_pnm.c in Sources */, - AA5314371FE0FA910025C9BE /* IMG_tga.c in Sources */, - AA5314381FE0FA910025C9BE /* IMG_tif.c in Sources */, - AA5314391FE0FA910025C9BE /* IMG_webp.c in Sources */, - AA53143A1FE0FA910025C9BE /* IMG_xcf.c in Sources */, - AA53143B1FE0FA910025C9BE /* IMG_xpm.c in Sources */, - AA53143C1FE0FA910025C9BE /* IMG_xv.c in Sources */, - AA53143D1FE0FA910025C9BE /* IMG_xxx.c in Sources */, - AA53143E1FE0FA910025C9BE /* IMG.c in Sources */, - AA53143F1FE0FA910025C9BE /* IMG_svg.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BE1FA73107AF4C45004B6283 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - AA126A9A1617A4A4005ABC8F /* IMG_bmp.c in Sources */, - AA126A9B1617A4A4005ABC8F /* IMG_gif.c in Sources */, - AA126A9C1617A4A4005ABC8F /* IMG_ImageIO.m in Sources */, - AA126A9D1617A4A4005ABC8F /* IMG_jpg.c in Sources */, - AA126A9E1617A4A4005ABC8F /* IMG_lbm.c in Sources */, - AA126A9F1617A4A4005ABC8F /* IMG_pcx.c in Sources */, - AA126AA01617A4A4005ABC8F /* IMG_png.c in Sources */, - AA126AA11617A4A4005ABC8F /* IMG_pnm.c in Sources */, - AA126AA21617A4A4005ABC8F /* IMG_tga.c in Sources */, - AA126AA31617A4A4005ABC8F /* IMG_tif.c in Sources */, - AA126AA51617A4A4005ABC8F /* IMG_webp.c in Sources */, - AA126AA61617A4A4005ABC8F /* IMG_xcf.c in Sources */, - AA126AA71617A4A4005ABC8F /* IMG_xpm.c in Sources */, - AA126AA81617A4A4005ABC8F /* IMG_xv.c in Sources */, - AA126AA91617A4A4005ABC8F /* IMG_xxx.c in Sources */, - AA126AAA1617A4A4005ABC8F /* IMG.c in Sources */, - AA50AA491F9C7DB6003B9C0C /* IMG_svg.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 007288110F0DA5BA00C302A9 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - LOAD_BMP, - LOAD_GIF, - LOAD_JPG, - LOAD_LBM, - LOAD_PCX, - LOAD_PNG, - LOAD_PNM, - LOAD_SVG, - LOAD_TGA, - LOAD_TIF, - LOAD_XPM, - LOAD_XV, - ); - GCC_SYMBOLS_PRIVATE_EXTERN = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = "$(SRCROOT)/../../SDL/include"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Debug; - }; - 007288130F0DA5BA00C302A9 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1.1.0; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - LIBRARY_STYLE = STATIC; - PRODUCT_NAME = SDL2_image; - SECTORDER_FLAGS = ""; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 007288150F0DA5C400C302A9 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - LOAD_BMP, - LOAD_GIF, - LOAD_JPG, - LOAD_LBM, - LOAD_PCX, - LOAD_PNG, - LOAD_PNM, - LOAD_SVG, - LOAD_TGA, - LOAD_TIF, - LOAD_XPM, - LOAD_XV, - ); - GCC_SYMBOLS_PRIVATE_EXTERN = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = "$(SRCROOT)/../../SDL/include"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Release; - }; - 007288170F0DA5C400C302A9 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1.1.0; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - LIBRARY_STYLE = STATIC; - PRODUCT_NAME = SDL2_image; - SECTORDER_FLAGS = ""; - SKIP_INSTALL = YES; - }; - name = Release; - }; - AA5314431FE0FA910025C9BE /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1.1.0; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - LIBRARY_STYLE = STATIC; - PRODUCT_NAME = SDL2_image; - SDKROOT = appletvos; - SECTORDER_FLAGS = ""; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "appletvsimulator appletvos"; - }; - name = Debug; - }; - AA5314441FE0FA910025C9BE /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1.1.0; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - LIBRARY_STYLE = STATIC; - PRODUCT_NAME = SDL2_image; - SDKROOT = appletvos; - SECTORDER_FLAGS = ""; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "appletvsimulator appletvos"; - }; - name = Release; - }; - AA5314481FE0FB540025C9BE /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - AA5314491FE0FB540025C9BE /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - AA53144D1FE0FBF20025C9BE /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - AA53144E1FE0FBF20025C9BE /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 00B7E3AE097EB73D00826121 /* Build configuration list for PBXNativeTarget "libSDL_image-iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 007288130F0DA5BA00C302A9 /* Debug */, - 007288170F0DA5C400C302A9 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 00B7E3B6097EB73D00826121 /* Build configuration list for PBXProject "SDL_image" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 007288110F0DA5BA00C302A9 /* Debug */, - 007288150F0DA5C400C302A9 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - AA5314421FE0FA910025C9BE /* Build configuration list for PBXNativeTarget "libSDL_image-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - AA5314431FE0FA910025C9BE /* Debug */, - AA5314441FE0FA910025C9BE /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - AA5314471FE0FB540025C9BE /* Build configuration list for PBXAggregateTarget "All (iOS)" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - AA5314481FE0FB540025C9BE /* Debug */, - AA5314491FE0FB540025C9BE /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - AA53144C1FE0FBF20025C9BE /* Build configuration list for PBXAggregateTarget "All (tvOS)" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - AA53144D1FE0FBF20025C9BE /* Debug */, - AA53144E1FE0FBF20025C9BE /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Headers/webp/decode.h b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Headers/webp/decode.h deleted file mode 100755 index 4c5e74a..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Headers/webp/decode.h +++ /dev/null @@ -1,493 +0,0 @@ -// Copyright 2010 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. -// ----------------------------------------------------------------------------- -// -// Main decoding functions for WebP images. -// -// Author: Skal (pascal.massimino@gmail.com) - -#ifndef WEBP_WEBP_DECODE_H_ -#define WEBP_WEBP_DECODE_H_ - -#include "./types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define WEBP_DECODER_ABI_VERSION 0x0208 // 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 VP8StatusCode VP8StatusCode; -// typedef enum WEBP_CSP_MODE WEBP_CSP_MODE; -typedef struct WebPRGBABuffer WebPRGBABuffer; -typedef struct WebPYUVABuffer WebPYUVABuffer; -typedef struct WebPDecBuffer WebPDecBuffer; -typedef struct WebPIDecoder WebPIDecoder; -typedef struct WebPBitstreamFeatures WebPBitstreamFeatures; -typedef struct WebPDecoderOptions WebPDecoderOptions; -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); - -// 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); - -// 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); - -// 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); - -// 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); - -// 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); - -// 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); - - -// Decode WebP images pointed to by 'data' to Y'UV format(*). The pointer -// returned is the Y samples buffer. Upon return, *u and *v will point to -// the U and V chroma data. These U and V buffers need NOT be passed to -// WebPFree(), unlike the returned Y luma one. The dimension of the U and V -// planes are both (*width + 1) / 2 and (*height + 1)/ 2. -// Upon return, the Y buffer has a stride returned as '*stride', while U and V -// 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); - -// Releases memory returned by the WebPDecode*() functions above. -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 -// available in this buffer is indicated by 'output_buffer_size'. If this -// storage is not sufficient (or an error occurred), NULL is returned. -// Otherwise, output_buffer is returned, for convenience. -// 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( - 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( - 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( - 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( - 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( - const uint8_t* data, size_t data_size, - uint8_t* output_buffer, size_t output_buffer_size, int output_stride); - -// WebPDecodeYUVInto() is a variant of WebPDecodeYUV() that operates directly -// into pre-allocated luma/chroma plane buffers. This function requires the -// strides to be passed: one for the luma plane and one for each of the -// chroma ones. The size of each plane buffer is passed as 'luma_size', -// '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( - 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, - uint8_t* v, size_t v_size, int v_stride); - -//------------------------------------------------------------------------------ -// Output colorspaces and buffer - -// Colorspaces -// Note: the naming describes the byte-ordering of packed samples in memory. -// For instance, MODE_BGRA relates to samples ordered as B,G,R,A,B,G,R,A,... -// Non-capital names (e.g.:MODE_Argb) relates to pre-multiplied RGB channels. -// RGBA-4444 and RGB-565 colorspaces are represented by following byte-order: -// RGBA-4444: [r3 r2 r1 r0 g3 g2 g1 g0], [b3 b2 b1 b0 a3 a2 a1 a0], ... -// RGB-565: [r4 r3 r2 r1 r0 g5 g4 g3], [g2 g1 g0 b4 b3 b2 b1 b0], ... -// In the case WEBP_SWAP_16BITS_CSP is defined, the bytes are swapped for -// these two modes: -// RGBA-4444: [b3 b2 b1 b0 a3 a2 a1 a0], [r3 r2 r1 r0 g3 g2 g1 g0], ... -// RGB-565: [g2 g1 g0 b4 b3 b2 b1 b0], [r4 r3 r2 r1 r0 g5 g4 g3], ... - -typedef enum WEBP_CSP_MODE { - MODE_RGB = 0, MODE_RGBA = 1, - MODE_BGR = 2, MODE_BGRA = 3, - MODE_ARGB = 4, MODE_RGBA_4444 = 5, - MODE_RGB_565 = 6, - // RGB-premultiplied transparent modes (alpha value is preserved) - MODE_rgbA = 7, - MODE_bgrA = 8, - MODE_Argb = 9, - MODE_rgbA_4444 = 10, - // YUV modes must come after RGB ones. - MODE_YUV = 11, MODE_YUVA = 12, // yuv 4:2:0 - MODE_LAST = 13 -} WEBP_CSP_MODE; - -// Some useful macros: -static WEBP_INLINE int WebPIsPremultipliedMode(WEBP_CSP_MODE mode) { - return (mode == MODE_rgbA || mode == MODE_bgrA || mode == MODE_Argb || - mode == MODE_rgbA_4444); -} - -static WEBP_INLINE int WebPIsAlphaMode(WEBP_CSP_MODE mode) { - return (mode == MODE_RGBA || mode == MODE_BGRA || mode == MODE_ARGB || - mode == MODE_RGBA_4444 || mode == MODE_YUVA || - WebPIsPremultipliedMode(mode)); -} - -static WEBP_INLINE int WebPIsRGBMode(WEBP_CSP_MODE mode) { - return (mode < MODE_YUV); -} - -//------------------------------------------------------------------------------ -// WebPDecBuffer: Generic structure for describing the output sample buffer. - -struct WebPRGBABuffer { // view as RGBA - uint8_t* rgba; // pointer to RGBA samples - int stride; // stride in bytes from one scanline to the next. - size_t size; // total size of the *rgba buffer. -}; - -struct WebPYUVABuffer { // view as YUVA - uint8_t* y, *u, *v, *a; // pointer to luma, chroma U/V, alpha samples - int y_stride; // luma stride - int u_stride, v_stride; // chroma strides - int a_stride; // alpha stride - size_t y_size; // luma plane size - size_t u_size, v_size; // chroma planes size - size_t a_size; // alpha-plane size -}; - -// Output buffer -struct WebPDecBuffer { - WEBP_CSP_MODE colorspace; // Colorspace. - int width, height; // Dimensions. - int is_external_memory; // If non-zero, 'internal_memory' pointer is not - // used. If value is '2' or more, the external - // memory is considered 'slow' and multiple - // read/write will be avoided. - union { - WebPRGBABuffer RGBA; - WebPYUVABuffer YUVA; - } u; // Nameless union of buffer parameters. - uint32_t pad[4]; // padding for later use - - uint8_t* private_memory; // Internally allocated memory (only when - // is_external_memory is 0). Should not be used - // externally, but accessed via the buffer union. -}; - -// Internal, version-checked, entry point -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 -static WEBP_INLINE int WebPInitDecBuffer(WebPDecBuffer* buffer) { - return WebPInitDecBufferInternal(buffer, WEBP_DECODER_ABI_VERSION); -} - -// 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); - -//------------------------------------------------------------------------------ -// Enumeration of the status codes - -typedef enum VP8StatusCode { - VP8_STATUS_OK = 0, - VP8_STATUS_OUT_OF_MEMORY, - VP8_STATUS_INVALID_PARAM, - VP8_STATUS_BITSTREAM_ERROR, - VP8_STATUS_UNSUPPORTED_FEATURE, - VP8_STATUS_SUSPENDED, - VP8_STATUS_USER_ABORT, - VP8_STATUS_NOT_ENOUGH_DATA -} VP8StatusCode; - -//------------------------------------------------------------------------------ -// Incremental decoding -// -// This API allows streamlined decoding of partial data. -// Picture can be incrementally decoded as data become available thanks to the -// WebPIDecoder object. This object can be left in a SUSPENDED state if the -// picture is only partially decoded, pending additional input. -// Code example: -// -// WebPInitDecBuffer(&output_buffer); -// output_buffer.colorspace = mode; -// ... -// WebPIDecoder* idec = WebPINewDecoder(&output_buffer); -// while (additional_data_is_available) { -// // ... (get additional data in some new_data[] buffer) -// status = WebPIAppend(idec, new_data, new_data_size); -// if (status != VP8_STATUS_OK && status != VP8_STATUS_SUSPENDED) { -// break; // an error occurred. -// } -// -// // The above call decodes the current available buffer. -// // Part of the image can now be refreshed by calling -// // WebPIDecGetRGB()/WebPIDecGetYUVA() etc. -// } -// WebPIDelete(idec); - -// Creates a new incremental decoder with the supplied buffer parameter. -// This output_buffer can be passed NULL, in which case a default output buffer -// is used (with MODE_RGB). Otherwise, an internal reference to 'output_buffer' -// is kept, which means that the lifespan of 'output_buffer' must be larger than -// that of the returned WebPIDecoder object. -// The supplied 'output_buffer' content MUST NOT be changed between calls to -// WebPIAppend() or WebPIUpdate() unless 'output_buffer.is_external_memory' is -// not set to 0. In such a case, it is allowed to modify the pointers, size and -// stride of output_buffer.u.RGBA or output_buffer.u.YUVA, provided they remain -// 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); - -// This function allocates and initializes an incremental-decoder object, which -// will output the RGB/A samples specified by 'csp' into a preallocated -// buffer 'output_buffer'. The size of this buffer is at least -// 'output_buffer_size' and the stride (distance in bytes between two scanlines) -// is specified by 'output_stride'. -// Additionally, output_buffer can be passed NULL in which case the output -// buffer will be allocated automatically when the decoding starts. The -// 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_CSP_MODE csp, - uint8_t* output_buffer, size_t output_buffer_size, int output_stride); - -// This function allocates and initializes an incremental-decoder object, which -// will output the raw luma/chroma samples into a preallocated planes if -// supplied. The luma plane is specified by its pointer 'luma', its size -// 'luma_size' and its stride 'luma_stride'. Similarly, the chroma-u plane -// is specified by the 'u', 'u_size' and 'u_stride' parameters, and the chroma-v -// plane by 'v' and 'v_size'. And same for the alpha-plane. The 'a' pointer -// can be pass NULL in case one is not interested in the transparency plane. -// Conversely, 'luma' can be passed NULL if no preallocated planes are supplied. -// 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( - 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, - uint8_t* a, size_t a_size, int a_stride); - -// Deprecated version of the above, without the alpha plane. -// Kept for backward compatibility. -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); - -// 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( - WebPIDecoder* idec, const uint8_t* data, size_t data_size); - -// A variant of the above function to be used when data buffer contains -// partial data from the beginning. In this case data buffer is not copied -// 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( - WebPIDecoder* idec, const uint8_t* data, size_t data_size); - -// Returns the RGB/A image decoded so far. Returns NULL if output params -// are not initialized yet. The RGB/A output type corresponds to the colorspace -// 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( - 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( - 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); - -// Deprecated alpha-less version of WebPIDecGetYUVA(): it will ignore the -// alpha information (if present). Kept for backward compatibility. -static WEBP_INLINE uint8_t* WebPIDecGetYUV( - const WebPIDecoder* idec, int* last_y, uint8_t** u, uint8_t** v, - int* width, int* height, int* stride, int* uv_stride) { - return WebPIDecGetYUVA(idec, last_y, u, v, NULL, width, height, - stride, uv_stride, NULL); -} - -// Generic call to retrieve information about the displayable area. -// If non NULL, the left/right/width/height pointers are filled with the visible -// rectangular area so far. -// 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( - const WebPIDecoder* idec, int* left, int* top, int* width, int* height); - -//------------------------------------------------------------------------------ -// Advanced decoding parametrization -// -// Code sample for using the advanced decoding API -/* - // A) Init a configuration object - WebPDecoderConfig config; - CHECK(WebPInitDecoderConfig(&config)); - - // B) optional: retrieve the bitstream's features. - CHECK(WebPGetFeatures(data, data_size, &config.input) == VP8_STATUS_OK); - - // C) Adjust 'config', if needed - config.no_fancy_upsampling = 1; - config.output.colorspace = MODE_BGRA; - // etc. - - // Note that you can also make config.output point to an externally - // supplied memory buffer, provided it's big enough to store the decoded - // picture. Otherwise, config.output will just be used to allocate memory - // and store the decoded picture. - - // D) Decode! - CHECK(WebPDecode(data, data_size, &config) == VP8_STATUS_OK); - - // E) Decoded image is now in config.output (and config.output.u.RGBA) - - // F) Reclaim memory allocated in config's object. It's safe to call - // this function even if the memory is external and wasn't allocated - // by WebPDecode(). - WebPFreeDecBuffer(&config.output); -*/ - -// Features gathered from the bitstream -struct WebPBitstreamFeatures { - int width; // Width in pixels, as read from the bitstream. - int height; // Height in pixels, as read from the bitstream. - int has_alpha; // True if the bitstream contains an alpha channel. - int has_animation; // True if the bitstream is an animation. - int format; // 0 = undefined (/mixed), 1 = lossy, 2 = lossless - - uint32_t pad[5]; // padding for later use -}; - -// Internal, version-checked, entry point -WEBP_EXTERN(VP8StatusCode) WebPGetFeaturesInternal( - const uint8_t*, size_t, WebPBitstreamFeatures*, int); - -// Retrieve features from the bitstream. The *features structure is filled -// with information gathered from the bitstream. -// Returns VP8_STATUS_OK when the features are successfully retrieved. Returns -// VP8_STATUS_NOT_ENOUGH_DATA when more data is needed to retrieve the -// features from headers. Returns error in other cases. -static WEBP_INLINE VP8StatusCode WebPGetFeatures( - const uint8_t* data, size_t data_size, - WebPBitstreamFeatures* features) { - return WebPGetFeaturesInternal(data, data_size, features, - WEBP_DECODER_ABI_VERSION); -} - -// Decoding options -struct WebPDecoderOptions { - int bypass_filtering; // if true, skip the in-loop filtering - int no_fancy_upsampling; // if true, use faster pointwise upsampler - int use_cropping; // if true, cropping is applied _first_ - int crop_left, crop_top; // top-left position for cropping. - // Will be snapped to even values. - int crop_width, crop_height; // dimension of the cropping area - int use_scaling; // if true, scaling is applied _afterward_ - int scaled_width, scaled_height; // final resolution - int use_threads; // if true, use multi-threaded decoding - int dithering_strength; // dithering strength (0=Off, 100=full) - int flip; // flip output vertically - int alpha_dithering_strength; // alpha dithering strength in [0..100] - - uint32_t pad[5]; // padding for later use -}; - -// Main object storing the configuration for advanced decoding. -struct WebPDecoderConfig { - WebPBitstreamFeatures input; // Immutable bitstream features (optional) - WebPDecBuffer output; // Output buffer (can point to external mem) - WebPDecoderOptions options; // Decoding options -}; - -// Internal, version-checked, entry point -WEBP_EXTERN(int) WebPInitDecoderConfigInternal(WebPDecoderConfig*, int); - -// Initialize the configuration as empty. This function must always be -// called first, unless WebPGetFeatures() is to be called. -// Returns false in case of mismatched version. -static WEBP_INLINE int WebPInitDecoderConfig(WebPDecoderConfig* config) { - return WebPInitDecoderConfigInternal(config, WEBP_DECODER_ABI_VERSION); -} - -// Instantiate a new incremental decoder object with the requested -// configuration. The bitstream can be passed using 'data' and 'data_size' -// parameter, in which case the features will be parsed and stored into -// config->input. Otherwise, 'data' can be NULL and no parsing will occur. -// Note that 'config' can be NULL too, in which case a default configuration -// is used. If 'config' is not NULL, it must outlive the WebPIDecoder object -// as some references to its fields will be used. No internal copy of 'config' -// is made. -// 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); - -// 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); - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif /* WEBP_WEBP_DECODE_H_ */ diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Headers/webp/encode.h b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Headers/webp/encode.h deleted file mode 100755 index 35fde1d..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Headers/webp/encode.h +++ /dev/null @@ -1,542 +0,0 @@ -// 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. -// ----------------------------------------------------------------------------- -// -// WebP encoder: main interface -// -// Author: Skal (pascal.massimino@gmail.com) - -#ifndef WEBP_WEBP_ENCODE_H_ -#define WEBP_WEBP_ENCODE_H_ - -#include "./types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define WEBP_ENCODER_ABI_VERSION 0x020e // 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 WebPImageHint WebPImageHint; -// typedef enum WebPEncCSP WebPEncCSP; -// typedef enum WebPPreset WebPPreset; -// typedef enum WebPEncodingError WebPEncodingError; -typedef struct WebPConfig WebPConfig; -typedef struct WebPPicture WebPPicture; // main structure for I/O -typedef struct WebPAuxStats WebPAuxStats; -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); - -//------------------------------------------------------------------------------ -// One-stop-shop call! No questions asked: - -// Returns the size of the compressed data (pointed to by *output), or 0 if -// an error occurred. The compressed data must be released by the caller -// using the call 'WebPFree(*output)'. -// 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, - 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) 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, - 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) 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); - -//------------------------------------------------------------------------------ -// Coding parameters - -// Image characteristics hint for the underlying encoder. -typedef enum WebPImageHint { - WEBP_HINT_DEFAULT = 0, // default preset. - WEBP_HINT_PICTURE, // digital picture, like portrait, inner shot - WEBP_HINT_PHOTO, // outdoor photograph, with natural lighting - WEBP_HINT_GRAPH, // Discrete tone image (graph, map-tile etc). - WEBP_HINT_LAST -} WebPImageHint; - -// Compression parameters. -struct WebPConfig { - int lossless; // Lossless encoding (0=lossy(default), 1=lossless). - float quality; // between 0 (smallest file) and 100 (biggest) - 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 - // try to achieve. Takes precedence over target_size. - int segments; // maximum number of segments to use, in [1..4] - int sns_strength; // Spatial Noise Shaping. 0=off, 100=maximum. - int filter_strength; // range: [0 = off .. 100 = strongest] - int filter_sharpness; // range: [0 = off .. 7 = least sharp] - int filter_type; // filtering type: 0 = simple, 1 = strong (only used - // if filter_strength > 0 or autofilter > 0) - int autofilter; // Auto adjust filter's strength [0 = off, 1 = on] - int alpha_compression; // Algorithm for encoding the alpha plane (0 = none, - // 1 = compressed with WebP lossless). Default is 1. - int alpha_filtering; // Predictive filtering method for alpha plane. - // 0: none, 1: fast, 2: best. Default if 1. - int alpha_quality; // Between 0 (smallest size) and 100 (lossless). - // Default is 100. - int pass; // number of entropy-analysis passes (in [1..10]). - - int show_compressed; // if true, export the compressed picture back. - // In-loop filtering is not applied. - int preprocessing; // preprocessing filter: - // 0=none, 1=segment-smooth, 2=pseudo-random dithering - int partitions; // log2(number of token partitions) in [0..3]. Default - // is set to 0 for easier progressive decoding. - int partition_limit; // quality degradation allowed to fit the 512k limit - // on prediction modes coding (0: no degradation, - // 100: maximum possible degradation). - int emulate_jpeg_size; // If true, compression parameters will be remapped - // to better match the expected output size from - // JPEG compression. Generally, the output size will - // be similar but the degradation will be lower. - int thread_level; // If non-zero, try and use multi-threaded encoding. - int low_memory; // If set, reduce memory usage (but increase CPU use). - - int near_lossless; // Near lossless encoding [0 = max loss .. 100 = off - // (default)]. - int exact; // if non-zero, preserve the exact RGB values under - // transparent area. Otherwise, discard this invisible - // RGB information for better compression. The default - // value is 0. - - int use_delta_palette; // reserved for future lossless feature - int use_sharp_yuv; // if needed, use sharp (and slow) RGB->YUV conversion - - uint32_t pad[2]; // padding for later use -}; - -// Enumerate some predefined settings for WebPConfig, depending on the type -// of source picture. These presets are used when calling WebPConfigPreset(). -typedef enum WebPPreset { - WEBP_PRESET_DEFAULT = 0, // default preset. - WEBP_PRESET_PICTURE, // digital picture, like portrait, inner shot - WEBP_PRESET_PHOTO, // outdoor photograph, with natural lighting - WEBP_PRESET_DRAWING, // hand or line drawing, with high-contrast details - WEBP_PRESET_ICON, // small-sized colorful images - WEBP_PRESET_TEXT // text-like -} WebPPreset; - -// Internal, version-checked, entry point -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() -// must have succeeded before using the 'config' object. -// Note that the default values are lossless=0 and quality=75. -static WEBP_INLINE int WebPConfigInit(WebPConfig* config) { - return WebPConfigInitInternal(config, WEBP_PRESET_DEFAULT, 75.f, - WEBP_ENCODER_ABI_VERSION); -} - -// This function will initialize the configuration according to a predefined -// set of parameters (referred to by 'preset') and a given quality factor. -// This function can be called as a replacement to WebPConfigInit(). Will -// return false in case of error. -static WEBP_INLINE int WebPConfigPreset(WebPConfig* config, - WebPPreset preset, float quality) { - return WebPConfigInitInternal(config, preset, quality, - WEBP_ENCODER_ABI_VERSION); -} - -// Activate the lossless compression mode with the desired efficiency level -// between 0 (fastest, lowest compression) and 9 (slower, best compression). -// A good default level is '6', providing a fair tradeoff between compression -// 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); - -// Returns true if 'config' is non-NULL and all configuration parameters are -// within their valid ranges. -WEBP_EXTERN(int) WebPValidateConfig(const WebPConfig* config); - -//------------------------------------------------------------------------------ -// Input / Output -// Structure for storing auxiliary statistics (mostly for lossy encoding). - -struct WebPAuxStats { - int coded_size; // final size - - float PSNR[5]; // peak-signal-to-noise ratio for Y/U/V/All/Alpha - int block_count[3]; // number of intra4/intra16/skipped macroblocks - int header_bytes[2]; // approximate number of bytes spent for header - // and mode-partition #0 - int residual_bytes[3][4]; // approximate number of bytes spent for - // DC/AC/uv coefficients for each (0..3) segments. - int segment_size[4]; // number of macroblocks in each segments - int segment_quant[4]; // quantizer values for each segments - int segment_level[4]; // filtering strength for each segments [0..63] - - int alpha_data_size; // size of the transparency data - int layer_data_size; // size of the enhancement layer data - - // lossless encoder statistics - uint32_t lossless_features; // bit0:predictor bit1:cross-color transform - // bit2:subtract-green bit3:color indexing - int histogram_bits; // number of precision bits of histogram - int transform_bits; // precision bits for transform - int cache_bits; // number of bits for color cache lookup - int palette_size; // number of color in palette, if used - int lossless_size; // final lossless size - int lossless_hdr_size; // lossless header (transform, huffman etc) size - int lossless_data_size; // lossless image data size - - uint32_t pad[2]; // padding for later use -}; - -// Signature for output function. Should return true if writing was successful. -// data/data_size is the segment of data to write, and 'picture' is for -// reference (and so one can make use of picture->custom_ptr). -typedef int (*WebPWriterFunction)(const uint8_t* data, size_t data_size, - const WebPPicture* picture); - -// WebPMemoryWrite: a special WebPWriterFunction that writes to memory using -// the following WebPMemoryWriter object (to be set as a custom_ptr). -struct WebPMemoryWriter { - uint8_t* mem; // final buffer (of size 'max_size', larger than 'size'). - size_t size; // final size - size_t max_size; // total capacity - uint32_t pad[1]; // padding for later use -}; - -// The following must be called first before any use. -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); -// 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); - -// 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 -// everything is OK. -typedef int (*WebPProgressHook)(int percent, const WebPPicture* picture); - -// Color spaces. -typedef enum WebPEncCSP { - // chroma sampling - WEBP_YUV420 = 0, // 4:2:0 - WEBP_YUV420A = 4, // alpha channel variant - WEBP_CSP_UV_MASK = 3, // bit-mask to get the UV sampling factors - WEBP_CSP_ALPHA_BIT = 4 // bit that is set if alpha is present -} WebPEncCSP; - -// Encoding error conditions. -typedef enum WebPEncodingError { - VP8_ENC_OK = 0, - VP8_ENC_ERROR_OUT_OF_MEMORY, // memory error allocating objects - VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY, // memory error while flushing bits - VP8_ENC_ERROR_NULL_PARAMETER, // a pointer parameter is NULL - VP8_ENC_ERROR_INVALID_CONFIGURATION, // configuration is invalid - VP8_ENC_ERROR_BAD_DIMENSION, // picture has invalid width/height - VP8_ENC_ERROR_PARTITION0_OVERFLOW, // partition is bigger than 512k - VP8_ENC_ERROR_PARTITION_OVERFLOW, // partition is bigger than 16M - VP8_ENC_ERROR_BAD_WRITE, // error while flushing bytes - VP8_ENC_ERROR_FILE_TOO_BIG, // file is bigger than 4G - VP8_ENC_ERROR_USER_ABORT, // abort request by user - VP8_ENC_ERROR_LAST // list terminator. always last. -} WebPEncodingError; - -// maximum width/height allowed (inclusive), in pixels -#define WEBP_MAX_DIMENSION 16383 - -// Main exchange structure (input samples, output bytes, statistics) -struct WebPPicture { - // INPUT - ////////////// - // Main flag for encoder selecting between ARGB or YUV input. - // It is recommended to use ARGB input (*argb, argb_stride) for lossless - // compression, and YUV input (*y, *u, *v, etc.) for lossy compression - // since these are the respective native colorspace for these formats. - int use_argb; - - // YUV input (mostly used for input to lossy compression) - WebPEncCSP colorspace; // colorspace: should be YUV420 for now (=Y'CbCr). - int width, height; // dimensions (less or equal to WEBP_MAX_DIMENSION) - uint8_t *y, *u, *v; // pointers to luma/chroma planes. - int y_stride, uv_stride; // luma/chroma strides. - uint8_t* a; // pointer to the alpha plane - int a_stride; // stride of the alpha plane - uint32_t pad1[2]; // padding for later use - - // ARGB input (mostly used for input to lossless compression) - uint32_t* argb; // Pointer to argb (32 bit) plane. - int argb_stride; // This is stride in pixels units, not bytes. - uint32_t pad2[3]; // padding for later use - - // OUTPUT - /////////////// - // Byte-emission hook, to store compressed bytes as they are ready. - WebPWriterFunction writer; // can be NULL - void* custom_ptr; // can be used by the writer. - - // map for extra information (only for lossy compression mode) - int extra_info_type; // 1: intra type, 2: segment, 3: quant - // 4: intra-16 prediction mode, - // 5: chroma prediction mode, - // 6: bit cost, 7: distortion - uint8_t* extra_info; // if not NULL, points to an array of size - // ((width + 15) / 16) * ((height + 15) / 16) that - // will be filled with a macroblock map, depending - // on extra_info_type. - - // STATS AND REPORTS - /////////////////////////// - // Pointer to side statistics (updated only if not NULL) - WebPAuxStats* stats; - - // Error code for the latest error encountered during encoding - WebPEncodingError error_code; - - // If not NULL, report progress during encoding. - WebPProgressHook progress_hook; - - void* user_data; // this field is free to be set to any value and - // used during callbacks (like progress-report e.g.). - - uint32_t pad3[3]; // padding for later use - - // Unused for now - uint8_t *pad4, *pad5; - uint32_t pad6[8]; // padding for later use - - // PRIVATE FIELDS - //////////////////// - void* memory_; // row chunk of memory for yuva planes - void* memory_argb_; // and for argb too. - void* pad7[2]; // padding for later use -}; - -// Internal, version-checked, entry point -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 -// 'picture' object. -// Note that, by default, use_argb is false and colorspace is WEBP_YUV420. -static WEBP_INLINE int WebPPictureInit(WebPPicture* picture) { - return WebPPictureInitInternal(picture, WEBP_ENCODER_ABI_VERSION); -} - -//------------------------------------------------------------------------------ -// WebPPicture utils - -// Convenience allocation / deallocation based on picture->width/height: -// 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); - -// 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); - -// 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); - -// Compute the single distortion for packed planes of samples. -// 'src' will be compared to 'ref', and the raw distortion stored into -// '*distortion'. The refined metric (log(MSE), log(1 - ssim),...' will be -// stored in '*result'. -// '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); - -// 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( - const WebPPicture* src, const WebPPicture* ref, - int metric_type, // 0 = PSNR, 1 = SSIM, 2 = LSIM - float result[5]); - -// self-crops a picture to the rectangle defined by top/left/width/height. -// Returns false in case of memory allocation error, or if the rectangle is -// outside of the source picture. -// The rectangle for the view is defined by the top-left corner pixel -// coordinates (left, top) as well as its width and height. This rectangle -// 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); - -// 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 -// as its width and height. This rectangle 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. -// Picture 'src' must out-live 'dst' picture. Self-extraction of view is allowed -// ('src' equal to 'dst') as a mean of fast-cropping (but note that doing so, -// the original dimension will be lost). Picture 'dst' need not be initialized -// 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); - -// 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); - -// 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); - -// 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( - WebPPicture* picture, const uint8_t* rgb, int rgb_stride); -// Same, but for RGBA buffer. -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( - WebPPicture* picture, const uint8_t* rgbx, int rgbx_stride); - -// Variants of the above, but taking BGR(A|X) input. -WEBP_EXTERN(int) WebPPictureImportBGR( - WebPPicture* picture, const uint8_t* bgr, int bgr_stride); -WEBP_EXTERN(int) WebPPictureImportBGRA( - WebPPicture* picture, const uint8_t* bgra, int bgra_stride); -WEBP_EXTERN(int) WebPPictureImportBGRX( - WebPPicture* picture, const uint8_t* bgrx, int bgrx_stride); - -// Converts picture->argb data to the YUV420A format. The 'colorspace' -// parameter is deprecated and should be equal to WEBP_YUV420. -// Upon return, picture->use_argb is set to false. The presence of real -// 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*/); - -// 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( - WebPPicture* picture, WebPEncCSP colorspace, float dithering); - -// Performs 'sharp' RGBA->YUVA420 downsampling and colorspace conversion. -// Downsampling is handled with extra care in case of color clipping. This -// 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); -// kept for backward compatibility: -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 -// ARGB incurs a small loss too. -// 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); - -// 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); - -// 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); - -// 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); - -//------------------------------------------------------------------------------ -// Main call - -// Main encoding call, after config and picture have been initialized. -// 'picture' must be less than 16384x16384 in dimension (cf WEBP_MAX_DIMENSION), -// and the 'config' object must be a valid one. -// Returns false in case of error, true otherwise. -// In case of error, picture->error_code is updated accordingly. -// 'picture' can hold the source samples in both YUV(A) or ARGB input, depending -// on the value of 'picture->use_argb'. It is highly recommended to use -// 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); - -//------------------------------------------------------------------------------ - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif /* WEBP_WEBP_ENCODE_H_ */ diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Headers/webp/types.h b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Headers/webp/types.h deleted file mode 100755 index 98fff35..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Headers/webp/types.h +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2010 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. -// ----------------------------------------------------------------------------- -// -// Common types -// -// Author: Skal (pascal.massimino@gmail.com) - -#ifndef WEBP_WEBP_TYPES_H_ -#define WEBP_WEBP_TYPES_H_ - -#include // for size_t - -#ifndef _MSC_VER -#include -#if defined(__cplusplus) || !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) -#define WEBP_INLINE inline -#else -#define WEBP_INLINE -#endif -#else -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef signed short int16_t; -typedef unsigned short uint16_t; -typedef signed int int32_t; -typedef unsigned int uint32_t; -typedef unsigned long long int uint64_t; -typedef long long int int64_t; -#define WEBP_INLINE __forceinline -#endif /* _MSC_VER */ - -#ifndef WEBP_EXTERN -// 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 -# else -# define WEBP_EXTERN(type) extern type -# endif /* __GNUC__ >= 4 */ -#endif /* WEBP_EXTERN */ - -// Macro to check ABI compatibility (same major revision number) -#define WEBP_ABI_IS_INCOMPATIBLE(a, b) (((a) >> 8) != ((b) >> 8)) - -#endif /* WEBP_WEBP_TYPES_H_ */ diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Resources/English.lproj/InfoPlist.strings b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Resources/English.lproj/InfoPlist.strings deleted file mode 100755 index 12797dc83ba16b2489b05f7846405f236f70ad30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcma)&O$&lx5QOL4uaJ%reI2?)mxL^c4hh}O%A(Y;FY3ov&#Pn*ZxFJs?#|B6&f}@3 zYH~DDs!)OU+Ul;AmeelfOh+oI60$>H^B(iJ=DVRojz8)|bqD&EqiS$gcw7xN&>8d+ z+)7jUW3r<@QO#!;x>8xdR8`M1<7>mFj16;eA2mLe3}uO;lCOoLF46kI<-u?&)!P`% z^&dsw4mdEsH`LkcqU^xUMn{BB<3a~an=pNkeoDvOUbq%AU)(vBuMytFc#>!aBEY49 P?FMaQE - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - webp - CFBundleGetInfoString - libwebp 0.6.0 - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - webp - CFBundlePackageType - FMWK - CFBundleShortVersionString - 0.6.0 - CFBundleSignature - ???? - CFBundleVersion - 0.6.0 - - diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Resources/LICENSE.webp.txt b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Resources/LICENSE.webp.txt deleted file mode 100755 index 15993f8..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Resources/LICENSE.webp.txt +++ /dev/null @@ -1,34 +0,0 @@ -The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ ---- - -Copyright (c) 2010, Google Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/decode.h b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/decode.h deleted file mode 100755 index 4c5e74a..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/decode.h +++ /dev/null @@ -1,493 +0,0 @@ -// Copyright 2010 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. -// ----------------------------------------------------------------------------- -// -// Main decoding functions for WebP images. -// -// Author: Skal (pascal.massimino@gmail.com) - -#ifndef WEBP_WEBP_DECODE_H_ -#define WEBP_WEBP_DECODE_H_ - -#include "./types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define WEBP_DECODER_ABI_VERSION 0x0208 // 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 VP8StatusCode VP8StatusCode; -// typedef enum WEBP_CSP_MODE WEBP_CSP_MODE; -typedef struct WebPRGBABuffer WebPRGBABuffer; -typedef struct WebPYUVABuffer WebPYUVABuffer; -typedef struct WebPDecBuffer WebPDecBuffer; -typedef struct WebPIDecoder WebPIDecoder; -typedef struct WebPBitstreamFeatures WebPBitstreamFeatures; -typedef struct WebPDecoderOptions WebPDecoderOptions; -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); - -// 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); - -// 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); - -// 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); - -// 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); - -// 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); - -// 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); - - -// Decode WebP images pointed to by 'data' to Y'UV format(*). The pointer -// returned is the Y samples buffer. Upon return, *u and *v will point to -// the U and V chroma data. These U and V buffers need NOT be passed to -// WebPFree(), unlike the returned Y luma one. The dimension of the U and V -// planes are both (*width + 1) / 2 and (*height + 1)/ 2. -// Upon return, the Y buffer has a stride returned as '*stride', while U and V -// 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); - -// Releases memory returned by the WebPDecode*() functions above. -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 -// available in this buffer is indicated by 'output_buffer_size'. If this -// storage is not sufficient (or an error occurred), NULL is returned. -// Otherwise, output_buffer is returned, for convenience. -// 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( - 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( - 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( - 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( - 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( - const uint8_t* data, size_t data_size, - uint8_t* output_buffer, size_t output_buffer_size, int output_stride); - -// WebPDecodeYUVInto() is a variant of WebPDecodeYUV() that operates directly -// into pre-allocated luma/chroma plane buffers. This function requires the -// strides to be passed: one for the luma plane and one for each of the -// chroma ones. The size of each plane buffer is passed as 'luma_size', -// '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( - 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, - uint8_t* v, size_t v_size, int v_stride); - -//------------------------------------------------------------------------------ -// Output colorspaces and buffer - -// Colorspaces -// Note: the naming describes the byte-ordering of packed samples in memory. -// For instance, MODE_BGRA relates to samples ordered as B,G,R,A,B,G,R,A,... -// Non-capital names (e.g.:MODE_Argb) relates to pre-multiplied RGB channels. -// RGBA-4444 and RGB-565 colorspaces are represented by following byte-order: -// RGBA-4444: [r3 r2 r1 r0 g3 g2 g1 g0], [b3 b2 b1 b0 a3 a2 a1 a0], ... -// RGB-565: [r4 r3 r2 r1 r0 g5 g4 g3], [g2 g1 g0 b4 b3 b2 b1 b0], ... -// In the case WEBP_SWAP_16BITS_CSP is defined, the bytes are swapped for -// these two modes: -// RGBA-4444: [b3 b2 b1 b0 a3 a2 a1 a0], [r3 r2 r1 r0 g3 g2 g1 g0], ... -// RGB-565: [g2 g1 g0 b4 b3 b2 b1 b0], [r4 r3 r2 r1 r0 g5 g4 g3], ... - -typedef enum WEBP_CSP_MODE { - MODE_RGB = 0, MODE_RGBA = 1, - MODE_BGR = 2, MODE_BGRA = 3, - MODE_ARGB = 4, MODE_RGBA_4444 = 5, - MODE_RGB_565 = 6, - // RGB-premultiplied transparent modes (alpha value is preserved) - MODE_rgbA = 7, - MODE_bgrA = 8, - MODE_Argb = 9, - MODE_rgbA_4444 = 10, - // YUV modes must come after RGB ones. - MODE_YUV = 11, MODE_YUVA = 12, // yuv 4:2:0 - MODE_LAST = 13 -} WEBP_CSP_MODE; - -// Some useful macros: -static WEBP_INLINE int WebPIsPremultipliedMode(WEBP_CSP_MODE mode) { - return (mode == MODE_rgbA || mode == MODE_bgrA || mode == MODE_Argb || - mode == MODE_rgbA_4444); -} - -static WEBP_INLINE int WebPIsAlphaMode(WEBP_CSP_MODE mode) { - return (mode == MODE_RGBA || mode == MODE_BGRA || mode == MODE_ARGB || - mode == MODE_RGBA_4444 || mode == MODE_YUVA || - WebPIsPremultipliedMode(mode)); -} - -static WEBP_INLINE int WebPIsRGBMode(WEBP_CSP_MODE mode) { - return (mode < MODE_YUV); -} - -//------------------------------------------------------------------------------ -// WebPDecBuffer: Generic structure for describing the output sample buffer. - -struct WebPRGBABuffer { // view as RGBA - uint8_t* rgba; // pointer to RGBA samples - int stride; // stride in bytes from one scanline to the next. - size_t size; // total size of the *rgba buffer. -}; - -struct WebPYUVABuffer { // view as YUVA - uint8_t* y, *u, *v, *a; // pointer to luma, chroma U/V, alpha samples - int y_stride; // luma stride - int u_stride, v_stride; // chroma strides - int a_stride; // alpha stride - size_t y_size; // luma plane size - size_t u_size, v_size; // chroma planes size - size_t a_size; // alpha-plane size -}; - -// Output buffer -struct WebPDecBuffer { - WEBP_CSP_MODE colorspace; // Colorspace. - int width, height; // Dimensions. - int is_external_memory; // If non-zero, 'internal_memory' pointer is not - // used. If value is '2' or more, the external - // memory is considered 'slow' and multiple - // read/write will be avoided. - union { - WebPRGBABuffer RGBA; - WebPYUVABuffer YUVA; - } u; // Nameless union of buffer parameters. - uint32_t pad[4]; // padding for later use - - uint8_t* private_memory; // Internally allocated memory (only when - // is_external_memory is 0). Should not be used - // externally, but accessed via the buffer union. -}; - -// Internal, version-checked, entry point -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 -static WEBP_INLINE int WebPInitDecBuffer(WebPDecBuffer* buffer) { - return WebPInitDecBufferInternal(buffer, WEBP_DECODER_ABI_VERSION); -} - -// 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); - -//------------------------------------------------------------------------------ -// Enumeration of the status codes - -typedef enum VP8StatusCode { - VP8_STATUS_OK = 0, - VP8_STATUS_OUT_OF_MEMORY, - VP8_STATUS_INVALID_PARAM, - VP8_STATUS_BITSTREAM_ERROR, - VP8_STATUS_UNSUPPORTED_FEATURE, - VP8_STATUS_SUSPENDED, - VP8_STATUS_USER_ABORT, - VP8_STATUS_NOT_ENOUGH_DATA -} VP8StatusCode; - -//------------------------------------------------------------------------------ -// Incremental decoding -// -// This API allows streamlined decoding of partial data. -// Picture can be incrementally decoded as data become available thanks to the -// WebPIDecoder object. This object can be left in a SUSPENDED state if the -// picture is only partially decoded, pending additional input. -// Code example: -// -// WebPInitDecBuffer(&output_buffer); -// output_buffer.colorspace = mode; -// ... -// WebPIDecoder* idec = WebPINewDecoder(&output_buffer); -// while (additional_data_is_available) { -// // ... (get additional data in some new_data[] buffer) -// status = WebPIAppend(idec, new_data, new_data_size); -// if (status != VP8_STATUS_OK && status != VP8_STATUS_SUSPENDED) { -// break; // an error occurred. -// } -// -// // The above call decodes the current available buffer. -// // Part of the image can now be refreshed by calling -// // WebPIDecGetRGB()/WebPIDecGetYUVA() etc. -// } -// WebPIDelete(idec); - -// Creates a new incremental decoder with the supplied buffer parameter. -// This output_buffer can be passed NULL, in which case a default output buffer -// is used (with MODE_RGB). Otherwise, an internal reference to 'output_buffer' -// is kept, which means that the lifespan of 'output_buffer' must be larger than -// that of the returned WebPIDecoder object. -// The supplied 'output_buffer' content MUST NOT be changed between calls to -// WebPIAppend() or WebPIUpdate() unless 'output_buffer.is_external_memory' is -// not set to 0. In such a case, it is allowed to modify the pointers, size and -// stride of output_buffer.u.RGBA or output_buffer.u.YUVA, provided they remain -// 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); - -// This function allocates and initializes an incremental-decoder object, which -// will output the RGB/A samples specified by 'csp' into a preallocated -// buffer 'output_buffer'. The size of this buffer is at least -// 'output_buffer_size' and the stride (distance in bytes between two scanlines) -// is specified by 'output_stride'. -// Additionally, output_buffer can be passed NULL in which case the output -// buffer will be allocated automatically when the decoding starts. The -// 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_CSP_MODE csp, - uint8_t* output_buffer, size_t output_buffer_size, int output_stride); - -// This function allocates and initializes an incremental-decoder object, which -// will output the raw luma/chroma samples into a preallocated planes if -// supplied. The luma plane is specified by its pointer 'luma', its size -// 'luma_size' and its stride 'luma_stride'. Similarly, the chroma-u plane -// is specified by the 'u', 'u_size' and 'u_stride' parameters, and the chroma-v -// plane by 'v' and 'v_size'. And same for the alpha-plane. The 'a' pointer -// can be pass NULL in case one is not interested in the transparency plane. -// Conversely, 'luma' can be passed NULL if no preallocated planes are supplied. -// 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( - 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, - uint8_t* a, size_t a_size, int a_stride); - -// Deprecated version of the above, without the alpha plane. -// Kept for backward compatibility. -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); - -// 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( - WebPIDecoder* idec, const uint8_t* data, size_t data_size); - -// A variant of the above function to be used when data buffer contains -// partial data from the beginning. In this case data buffer is not copied -// 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( - WebPIDecoder* idec, const uint8_t* data, size_t data_size); - -// Returns the RGB/A image decoded so far. Returns NULL if output params -// are not initialized yet. The RGB/A output type corresponds to the colorspace -// 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( - 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( - 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); - -// Deprecated alpha-less version of WebPIDecGetYUVA(): it will ignore the -// alpha information (if present). Kept for backward compatibility. -static WEBP_INLINE uint8_t* WebPIDecGetYUV( - const WebPIDecoder* idec, int* last_y, uint8_t** u, uint8_t** v, - int* width, int* height, int* stride, int* uv_stride) { - return WebPIDecGetYUVA(idec, last_y, u, v, NULL, width, height, - stride, uv_stride, NULL); -} - -// Generic call to retrieve information about the displayable area. -// If non NULL, the left/right/width/height pointers are filled with the visible -// rectangular area so far. -// 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( - const WebPIDecoder* idec, int* left, int* top, int* width, int* height); - -//------------------------------------------------------------------------------ -// Advanced decoding parametrization -// -// Code sample for using the advanced decoding API -/* - // A) Init a configuration object - WebPDecoderConfig config; - CHECK(WebPInitDecoderConfig(&config)); - - // B) optional: retrieve the bitstream's features. - CHECK(WebPGetFeatures(data, data_size, &config.input) == VP8_STATUS_OK); - - // C) Adjust 'config', if needed - config.no_fancy_upsampling = 1; - config.output.colorspace = MODE_BGRA; - // etc. - - // Note that you can also make config.output point to an externally - // supplied memory buffer, provided it's big enough to store the decoded - // picture. Otherwise, config.output will just be used to allocate memory - // and store the decoded picture. - - // D) Decode! - CHECK(WebPDecode(data, data_size, &config) == VP8_STATUS_OK); - - // E) Decoded image is now in config.output (and config.output.u.RGBA) - - // F) Reclaim memory allocated in config's object. It's safe to call - // this function even if the memory is external and wasn't allocated - // by WebPDecode(). - WebPFreeDecBuffer(&config.output); -*/ - -// Features gathered from the bitstream -struct WebPBitstreamFeatures { - int width; // Width in pixels, as read from the bitstream. - int height; // Height in pixels, as read from the bitstream. - int has_alpha; // True if the bitstream contains an alpha channel. - int has_animation; // True if the bitstream is an animation. - int format; // 0 = undefined (/mixed), 1 = lossy, 2 = lossless - - uint32_t pad[5]; // padding for later use -}; - -// Internal, version-checked, entry point -WEBP_EXTERN(VP8StatusCode) WebPGetFeaturesInternal( - const uint8_t*, size_t, WebPBitstreamFeatures*, int); - -// Retrieve features from the bitstream. The *features structure is filled -// with information gathered from the bitstream. -// Returns VP8_STATUS_OK when the features are successfully retrieved. Returns -// VP8_STATUS_NOT_ENOUGH_DATA when more data is needed to retrieve the -// features from headers. Returns error in other cases. -static WEBP_INLINE VP8StatusCode WebPGetFeatures( - const uint8_t* data, size_t data_size, - WebPBitstreamFeatures* features) { - return WebPGetFeaturesInternal(data, data_size, features, - WEBP_DECODER_ABI_VERSION); -} - -// Decoding options -struct WebPDecoderOptions { - int bypass_filtering; // if true, skip the in-loop filtering - int no_fancy_upsampling; // if true, use faster pointwise upsampler - int use_cropping; // if true, cropping is applied _first_ - int crop_left, crop_top; // top-left position for cropping. - // Will be snapped to even values. - int crop_width, crop_height; // dimension of the cropping area - int use_scaling; // if true, scaling is applied _afterward_ - int scaled_width, scaled_height; // final resolution - int use_threads; // if true, use multi-threaded decoding - int dithering_strength; // dithering strength (0=Off, 100=full) - int flip; // flip output vertically - int alpha_dithering_strength; // alpha dithering strength in [0..100] - - uint32_t pad[5]; // padding for later use -}; - -// Main object storing the configuration for advanced decoding. -struct WebPDecoderConfig { - WebPBitstreamFeatures input; // Immutable bitstream features (optional) - WebPDecBuffer output; // Output buffer (can point to external mem) - WebPDecoderOptions options; // Decoding options -}; - -// Internal, version-checked, entry point -WEBP_EXTERN(int) WebPInitDecoderConfigInternal(WebPDecoderConfig*, int); - -// Initialize the configuration as empty. This function must always be -// called first, unless WebPGetFeatures() is to be called. -// Returns false in case of mismatched version. -static WEBP_INLINE int WebPInitDecoderConfig(WebPDecoderConfig* config) { - return WebPInitDecoderConfigInternal(config, WEBP_DECODER_ABI_VERSION); -} - -// Instantiate a new incremental decoder object with the requested -// configuration. The bitstream can be passed using 'data' and 'data_size' -// parameter, in which case the features will be parsed and stored into -// config->input. Otherwise, 'data' can be NULL and no parsing will occur. -// Note that 'config' can be NULL too, in which case a default configuration -// is used. If 'config' is not NULL, it must outlive the WebPIDecoder object -// as some references to its fields will be used. No internal copy of 'config' -// is made. -// 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); - -// 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); - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif /* WEBP_WEBP_DECODE_H_ */ diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/encode.h b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/encode.h deleted file mode 100755 index 35fde1d..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/encode.h +++ /dev/null @@ -1,542 +0,0 @@ -// 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. -// ----------------------------------------------------------------------------- -// -// WebP encoder: main interface -// -// Author: Skal (pascal.massimino@gmail.com) - -#ifndef WEBP_WEBP_ENCODE_H_ -#define WEBP_WEBP_ENCODE_H_ - -#include "./types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define WEBP_ENCODER_ABI_VERSION 0x020e // 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 WebPImageHint WebPImageHint; -// typedef enum WebPEncCSP WebPEncCSP; -// typedef enum WebPPreset WebPPreset; -// typedef enum WebPEncodingError WebPEncodingError; -typedef struct WebPConfig WebPConfig; -typedef struct WebPPicture WebPPicture; // main structure for I/O -typedef struct WebPAuxStats WebPAuxStats; -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); - -//------------------------------------------------------------------------------ -// One-stop-shop call! No questions asked: - -// Returns the size of the compressed data (pointed to by *output), or 0 if -// an error occurred. The compressed data must be released by the caller -// using the call 'WebPFree(*output)'. -// 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, - 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) 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, - 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) 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); - -//------------------------------------------------------------------------------ -// Coding parameters - -// Image characteristics hint for the underlying encoder. -typedef enum WebPImageHint { - WEBP_HINT_DEFAULT = 0, // default preset. - WEBP_HINT_PICTURE, // digital picture, like portrait, inner shot - WEBP_HINT_PHOTO, // outdoor photograph, with natural lighting - WEBP_HINT_GRAPH, // Discrete tone image (graph, map-tile etc). - WEBP_HINT_LAST -} WebPImageHint; - -// Compression parameters. -struct WebPConfig { - int lossless; // Lossless encoding (0=lossy(default), 1=lossless). - float quality; // between 0 (smallest file) and 100 (biggest) - 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 - // try to achieve. Takes precedence over target_size. - int segments; // maximum number of segments to use, in [1..4] - int sns_strength; // Spatial Noise Shaping. 0=off, 100=maximum. - int filter_strength; // range: [0 = off .. 100 = strongest] - int filter_sharpness; // range: [0 = off .. 7 = least sharp] - int filter_type; // filtering type: 0 = simple, 1 = strong (only used - // if filter_strength > 0 or autofilter > 0) - int autofilter; // Auto adjust filter's strength [0 = off, 1 = on] - int alpha_compression; // Algorithm for encoding the alpha plane (0 = none, - // 1 = compressed with WebP lossless). Default is 1. - int alpha_filtering; // Predictive filtering method for alpha plane. - // 0: none, 1: fast, 2: best. Default if 1. - int alpha_quality; // Between 0 (smallest size) and 100 (lossless). - // Default is 100. - int pass; // number of entropy-analysis passes (in [1..10]). - - int show_compressed; // if true, export the compressed picture back. - // In-loop filtering is not applied. - int preprocessing; // preprocessing filter: - // 0=none, 1=segment-smooth, 2=pseudo-random dithering - int partitions; // log2(number of token partitions) in [0..3]. Default - // is set to 0 for easier progressive decoding. - int partition_limit; // quality degradation allowed to fit the 512k limit - // on prediction modes coding (0: no degradation, - // 100: maximum possible degradation). - int emulate_jpeg_size; // If true, compression parameters will be remapped - // to better match the expected output size from - // JPEG compression. Generally, the output size will - // be similar but the degradation will be lower. - int thread_level; // If non-zero, try and use multi-threaded encoding. - int low_memory; // If set, reduce memory usage (but increase CPU use). - - int near_lossless; // Near lossless encoding [0 = max loss .. 100 = off - // (default)]. - int exact; // if non-zero, preserve the exact RGB values under - // transparent area. Otherwise, discard this invisible - // RGB information for better compression. The default - // value is 0. - - int use_delta_palette; // reserved for future lossless feature - int use_sharp_yuv; // if needed, use sharp (and slow) RGB->YUV conversion - - uint32_t pad[2]; // padding for later use -}; - -// Enumerate some predefined settings for WebPConfig, depending on the type -// of source picture. These presets are used when calling WebPConfigPreset(). -typedef enum WebPPreset { - WEBP_PRESET_DEFAULT = 0, // default preset. - WEBP_PRESET_PICTURE, // digital picture, like portrait, inner shot - WEBP_PRESET_PHOTO, // outdoor photograph, with natural lighting - WEBP_PRESET_DRAWING, // hand or line drawing, with high-contrast details - WEBP_PRESET_ICON, // small-sized colorful images - WEBP_PRESET_TEXT // text-like -} WebPPreset; - -// Internal, version-checked, entry point -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() -// must have succeeded before using the 'config' object. -// Note that the default values are lossless=0 and quality=75. -static WEBP_INLINE int WebPConfigInit(WebPConfig* config) { - return WebPConfigInitInternal(config, WEBP_PRESET_DEFAULT, 75.f, - WEBP_ENCODER_ABI_VERSION); -} - -// This function will initialize the configuration according to a predefined -// set of parameters (referred to by 'preset') and a given quality factor. -// This function can be called as a replacement to WebPConfigInit(). Will -// return false in case of error. -static WEBP_INLINE int WebPConfigPreset(WebPConfig* config, - WebPPreset preset, float quality) { - return WebPConfigInitInternal(config, preset, quality, - WEBP_ENCODER_ABI_VERSION); -} - -// Activate the lossless compression mode with the desired efficiency level -// between 0 (fastest, lowest compression) and 9 (slower, best compression). -// A good default level is '6', providing a fair tradeoff between compression -// 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); - -// Returns true if 'config' is non-NULL and all configuration parameters are -// within their valid ranges. -WEBP_EXTERN(int) WebPValidateConfig(const WebPConfig* config); - -//------------------------------------------------------------------------------ -// Input / Output -// Structure for storing auxiliary statistics (mostly for lossy encoding). - -struct WebPAuxStats { - int coded_size; // final size - - float PSNR[5]; // peak-signal-to-noise ratio for Y/U/V/All/Alpha - int block_count[3]; // number of intra4/intra16/skipped macroblocks - int header_bytes[2]; // approximate number of bytes spent for header - // and mode-partition #0 - int residual_bytes[3][4]; // approximate number of bytes spent for - // DC/AC/uv coefficients for each (0..3) segments. - int segment_size[4]; // number of macroblocks in each segments - int segment_quant[4]; // quantizer values for each segments - int segment_level[4]; // filtering strength for each segments [0..63] - - int alpha_data_size; // size of the transparency data - int layer_data_size; // size of the enhancement layer data - - // lossless encoder statistics - uint32_t lossless_features; // bit0:predictor bit1:cross-color transform - // bit2:subtract-green bit3:color indexing - int histogram_bits; // number of precision bits of histogram - int transform_bits; // precision bits for transform - int cache_bits; // number of bits for color cache lookup - int palette_size; // number of color in palette, if used - int lossless_size; // final lossless size - int lossless_hdr_size; // lossless header (transform, huffman etc) size - int lossless_data_size; // lossless image data size - - uint32_t pad[2]; // padding for later use -}; - -// Signature for output function. Should return true if writing was successful. -// data/data_size is the segment of data to write, and 'picture' is for -// reference (and so one can make use of picture->custom_ptr). -typedef int (*WebPWriterFunction)(const uint8_t* data, size_t data_size, - const WebPPicture* picture); - -// WebPMemoryWrite: a special WebPWriterFunction that writes to memory using -// the following WebPMemoryWriter object (to be set as a custom_ptr). -struct WebPMemoryWriter { - uint8_t* mem; // final buffer (of size 'max_size', larger than 'size'). - size_t size; // final size - size_t max_size; // total capacity - uint32_t pad[1]; // padding for later use -}; - -// The following must be called first before any use. -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); -// 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); - -// 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 -// everything is OK. -typedef int (*WebPProgressHook)(int percent, const WebPPicture* picture); - -// Color spaces. -typedef enum WebPEncCSP { - // chroma sampling - WEBP_YUV420 = 0, // 4:2:0 - WEBP_YUV420A = 4, // alpha channel variant - WEBP_CSP_UV_MASK = 3, // bit-mask to get the UV sampling factors - WEBP_CSP_ALPHA_BIT = 4 // bit that is set if alpha is present -} WebPEncCSP; - -// Encoding error conditions. -typedef enum WebPEncodingError { - VP8_ENC_OK = 0, - VP8_ENC_ERROR_OUT_OF_MEMORY, // memory error allocating objects - VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY, // memory error while flushing bits - VP8_ENC_ERROR_NULL_PARAMETER, // a pointer parameter is NULL - VP8_ENC_ERROR_INVALID_CONFIGURATION, // configuration is invalid - VP8_ENC_ERROR_BAD_DIMENSION, // picture has invalid width/height - VP8_ENC_ERROR_PARTITION0_OVERFLOW, // partition is bigger than 512k - VP8_ENC_ERROR_PARTITION_OVERFLOW, // partition is bigger than 16M - VP8_ENC_ERROR_BAD_WRITE, // error while flushing bytes - VP8_ENC_ERROR_FILE_TOO_BIG, // file is bigger than 4G - VP8_ENC_ERROR_USER_ABORT, // abort request by user - VP8_ENC_ERROR_LAST // list terminator. always last. -} WebPEncodingError; - -// maximum width/height allowed (inclusive), in pixels -#define WEBP_MAX_DIMENSION 16383 - -// Main exchange structure (input samples, output bytes, statistics) -struct WebPPicture { - // INPUT - ////////////// - // Main flag for encoder selecting between ARGB or YUV input. - // It is recommended to use ARGB input (*argb, argb_stride) for lossless - // compression, and YUV input (*y, *u, *v, etc.) for lossy compression - // since these are the respective native colorspace for these formats. - int use_argb; - - // YUV input (mostly used for input to lossy compression) - WebPEncCSP colorspace; // colorspace: should be YUV420 for now (=Y'CbCr). - int width, height; // dimensions (less or equal to WEBP_MAX_DIMENSION) - uint8_t *y, *u, *v; // pointers to luma/chroma planes. - int y_stride, uv_stride; // luma/chroma strides. - uint8_t* a; // pointer to the alpha plane - int a_stride; // stride of the alpha plane - uint32_t pad1[2]; // padding for later use - - // ARGB input (mostly used for input to lossless compression) - uint32_t* argb; // Pointer to argb (32 bit) plane. - int argb_stride; // This is stride in pixels units, not bytes. - uint32_t pad2[3]; // padding for later use - - // OUTPUT - /////////////// - // Byte-emission hook, to store compressed bytes as they are ready. - WebPWriterFunction writer; // can be NULL - void* custom_ptr; // can be used by the writer. - - // map for extra information (only for lossy compression mode) - int extra_info_type; // 1: intra type, 2: segment, 3: quant - // 4: intra-16 prediction mode, - // 5: chroma prediction mode, - // 6: bit cost, 7: distortion - uint8_t* extra_info; // if not NULL, points to an array of size - // ((width + 15) / 16) * ((height + 15) / 16) that - // will be filled with a macroblock map, depending - // on extra_info_type. - - // STATS AND REPORTS - /////////////////////////// - // Pointer to side statistics (updated only if not NULL) - WebPAuxStats* stats; - - // Error code for the latest error encountered during encoding - WebPEncodingError error_code; - - // If not NULL, report progress during encoding. - WebPProgressHook progress_hook; - - void* user_data; // this field is free to be set to any value and - // used during callbacks (like progress-report e.g.). - - uint32_t pad3[3]; // padding for later use - - // Unused for now - uint8_t *pad4, *pad5; - uint32_t pad6[8]; // padding for later use - - // PRIVATE FIELDS - //////////////////// - void* memory_; // row chunk of memory for yuva planes - void* memory_argb_; // and for argb too. - void* pad7[2]; // padding for later use -}; - -// Internal, version-checked, entry point -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 -// 'picture' object. -// Note that, by default, use_argb is false and colorspace is WEBP_YUV420. -static WEBP_INLINE int WebPPictureInit(WebPPicture* picture) { - return WebPPictureInitInternal(picture, WEBP_ENCODER_ABI_VERSION); -} - -//------------------------------------------------------------------------------ -// WebPPicture utils - -// Convenience allocation / deallocation based on picture->width/height: -// 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); - -// 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); - -// 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); - -// Compute the single distortion for packed planes of samples. -// 'src' will be compared to 'ref', and the raw distortion stored into -// '*distortion'. The refined metric (log(MSE), log(1 - ssim),...' will be -// stored in '*result'. -// '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); - -// 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( - const WebPPicture* src, const WebPPicture* ref, - int metric_type, // 0 = PSNR, 1 = SSIM, 2 = LSIM - float result[5]); - -// self-crops a picture to the rectangle defined by top/left/width/height. -// Returns false in case of memory allocation error, or if the rectangle is -// outside of the source picture. -// The rectangle for the view is defined by the top-left corner pixel -// coordinates (left, top) as well as its width and height. This rectangle -// 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); - -// 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 -// as its width and height. This rectangle 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. -// Picture 'src' must out-live 'dst' picture. Self-extraction of view is allowed -// ('src' equal to 'dst') as a mean of fast-cropping (but note that doing so, -// the original dimension will be lost). Picture 'dst' need not be initialized -// 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); - -// 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); - -// 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); - -// 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( - WebPPicture* picture, const uint8_t* rgb, int rgb_stride); -// Same, but for RGBA buffer. -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( - WebPPicture* picture, const uint8_t* rgbx, int rgbx_stride); - -// Variants of the above, but taking BGR(A|X) input. -WEBP_EXTERN(int) WebPPictureImportBGR( - WebPPicture* picture, const uint8_t* bgr, int bgr_stride); -WEBP_EXTERN(int) WebPPictureImportBGRA( - WebPPicture* picture, const uint8_t* bgra, int bgra_stride); -WEBP_EXTERN(int) WebPPictureImportBGRX( - WebPPicture* picture, const uint8_t* bgrx, int bgrx_stride); - -// Converts picture->argb data to the YUV420A format. The 'colorspace' -// parameter is deprecated and should be equal to WEBP_YUV420. -// Upon return, picture->use_argb is set to false. The presence of real -// 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*/); - -// 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( - WebPPicture* picture, WebPEncCSP colorspace, float dithering); - -// Performs 'sharp' RGBA->YUVA420 downsampling and colorspace conversion. -// Downsampling is handled with extra care in case of color clipping. This -// 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); -// kept for backward compatibility: -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 -// ARGB incurs a small loss too. -// 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); - -// 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); - -// 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); - -// 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); - -//------------------------------------------------------------------------------ -// Main call - -// Main encoding call, after config and picture have been initialized. -// 'picture' must be less than 16384x16384 in dimension (cf WEBP_MAX_DIMENSION), -// and the 'config' object must be a valid one. -// Returns false in case of error, true otherwise. -// In case of error, picture->error_code is updated accordingly. -// 'picture' can hold the source samples in both YUV(A) or ARGB input, depending -// on the value of 'picture->use_argb'. It is highly recommended to use -// 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); - -//------------------------------------------------------------------------------ - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif /* WEBP_WEBP_ENCODE_H_ */ diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/types.h b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/types.h deleted file mode 100755 index 98fff35..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Headers/webp/types.h +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2010 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. -// ----------------------------------------------------------------------------- -// -// Common types -// -// Author: Skal (pascal.massimino@gmail.com) - -#ifndef WEBP_WEBP_TYPES_H_ -#define WEBP_WEBP_TYPES_H_ - -#include // for size_t - -#ifndef _MSC_VER -#include -#if defined(__cplusplus) || !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) -#define WEBP_INLINE inline -#else -#define WEBP_INLINE -#endif -#else -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef signed short int16_t; -typedef unsigned short uint16_t; -typedef signed int int32_t; -typedef unsigned int uint32_t; -typedef unsigned long long int uint64_t; -typedef long long int int64_t; -#define WEBP_INLINE __forceinline -#endif /* _MSC_VER */ - -#ifndef WEBP_EXTERN -// 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 -# else -# define WEBP_EXTERN(type) extern type -# endif /* __GNUC__ >= 4 */ -#endif /* WEBP_EXTERN */ - -// Macro to check ABI compatibility (same major revision number) -#define WEBP_ABI_IS_INCOMPATIBLE(a, b) (((a) >> 8) != ((b) >> 8)) - -#endif /* WEBP_WEBP_TYPES_H_ */ diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Resources/English.lproj/InfoPlist.strings b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Resources/English.lproj/InfoPlist.strings deleted file mode 100755 index 12797dc83ba16b2489b05f7846405f236f70ad30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcma)&O$&lx5QOL4uaJ%reI2?)mxL^c4hh}O%A(Y;FY3ov&#Pn*ZxFJs?#|B6&f}@3 zYH~DDs!)OU+Ul;AmeelfOh+oI60$>H^B(iJ=DVRojz8)|bqD&EqiS$gcw7xN&>8d+ z+)7jUW3r<@QO#!;x>8xdR8`M1<7>mFj16;eA2mLe3}uO;lCOoLF46kI<-u?&)!P`% z^&dsw4mdEsH`LkcqU^xUMn{BB<3a~an=pNkeoDvOUbq%AU)(vBuMytFc#>!aBEY49 P?FMaQE - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - webp - CFBundleGetInfoString - libwebp 0.6.0 - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - webp - CFBundlePackageType - FMWK - CFBundleShortVersionString - 0.6.0 - CFBundleSignature - ???? - CFBundleVersion - 0.6.0 - - diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Resources/LICENSE.webp.txt b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Resources/LICENSE.webp.txt deleted file mode 100755 index 15993f8..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/Resources/LICENSE.webp.txt +++ /dev/null @@ -1,34 +0,0 @@ -The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ ---- - -Copyright (c) 2010, Google Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/webp b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/A/webp deleted file mode 100755 index 6d7fd7fa3cfb452dd8ab86346b2bb6eb85507876..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1354828 zcmeFa4R};VmN(uv-H;Bn+(x1X%}CUY5@8(TFe5RHCLx`Kk0t>OLDvvxMp;nDLDHRo zLqf<+Ll>3HFe5t5EPm_^v+M55Y}gSaDl*+kHXS|&6T(6SR-k9!@xBRT*JUM3|zy&H4I$C!2e?y zI6U}YL&n12G#aqe0)Of#lgR@+0M`GecKj4IdAh9J<^CZOFR!C95^wqq(&OkSL_*}!8T1`(QA3bC1AXr|e3h=v<7MH@Y8f8@wb^Nfre58si>gYq+xm!VlXK7GYY;P;?nFMSWA`?zkdJ9by!$2e5#ejU zYZ$nOfomAJhJkAsxQ2mi7`TRkYZ$nOfomAJhJkAs_`eAQ#q2*z7HfTW?zZv`GZIWD zW=RcxdMMr$5HSKZuwf?B>Bsj?M#vL!-OTe7DdXmPyv|RgcWh>AutAigJoM9A>`Ti^ zo0rk=9(7WkNJM*!sKJ>*iZ0~Bh&`5y#q=Uw0BOIK>uR+Cz{3C0ZW z2r6w_pOra+MT>*~^7lw_+EFEd^Y~QHKVrS#J0D(7TAyY47F7SF=}9HH@nAeb&z)Ab zUexMyy~rIl=I7Z<`qPm0No8SCP(dzP6RRc6p}smZs$#VSS)ewHz{O8O#vEZ@JC#6o z^zhngBG4DCx?Q0-#vh}sHlU~*AE!zjJvB2PR5va`cs6tP zad%j+P6CRSTai){y#Gf;I%~<3rr^2<1r=FERurzhBmlXn{i=hTMxS=CW}-Xw)ronp?g za*;4pVDs$f0)=YbZ-5w9+Q-guchGZQ-F%u5RczNEx;LUWbh6?@ytteH;>D+}$knxo zSM`;k?IKnjjwEhkgCL|fr0~)nS237DUm4*JyI!EE4bCp^II8Db73OF$JJIyf^vD+7 zazF8)qeZvPpx22r_$(VowF?(S+}*%;Byl}2?n9-@hp2PD`!IK$GCK~1=4(|!Q}tX_ z&YeNj8bLMb5dk(kJi`Cn(WhHxpdQ_p0YoiYP!wDr6x^nKIN$w|+E9wdPbpns3MRS_ zc2%4~UfPyX8mt;;3<9^>d;ZUnNT8O61exrHx&JP$&lagj41Ni20+4|`F*uR9I5>Vk z_%+J>f!gRW<+Zt}1kAhnx2TdkZR|Z>_z*8yl6HWXVx%2}XfSUka`DP}d|i=pCaoX! z6)jp=k{($QkmHIzWVKn>MKKfcQtw5bNz-@g*< zM`CJ-!rW^iP%)wkENX)_-IoC_f8LiKp`qlYfnE1p1Q~=#(5mflVJiI!DVGQ#p}mC#ntY$^v_T7t2me_k|Yj0YjTYb9r_O zYgHT0D$j~nDXhI?fIpkc`qhR3WlduL2khBY{_JG6p;gIFqS$2qY;wBKbKYg=Yo@9V z$CYF3+2sBY*_x>&D%DA*sC=9%JINadU4l+g++^k z<$n}h?D4s-!*JowQxZis@#ytZ6&4UiM`|LU117406C$Qh{P23e#Zq~lFE*$4QG_f#QqbkB$bzdMhBF_B#KSug~=el zotJ<@ClpkaOvzKzeZ79b1R=tAZ#nyEyh&|1$HKsUe=mePgHWgnj%Dud@(Jm_^dsq! z^z-Q_1CAaPF@?UP&r8|lg#}H&)|K}{gj-jy4J(_j(_l8D` z@+V1j?-+t~>N7jS;}7Vz2O*-Aw()196HrY{6yz>zk@rvSxzF& zD>+H*IOy5CYbX-g1AIU%fZ1rqbat~jDKv%5nWnT+Zf6ghlggf(4%x@%B#G!`_S_6@ z$R?_Ak2X7wvixMoFqS`)l}+t^6m?!Pzhm@(#rLaq{{xM^ZNfmjqu927kWA~U=a)ze zWP_Y|5HN@cAL2l^RmOz83S}hnCX!_yIaB2$MLwp=$7K1KE+5n6W2St}kdIvX z$dZqF@=+ikMf4DOiH^U;MUZ$HqDfjcxN$7cD=EHtu8XT#szZ7b=nlj5v7Gr6sr%FEQWwY`BYwIgKqT= zS$?E+mMon$Qu-?TlugKszaizR%F6RGM_YKlmE~F4nc!r!&irB^f-IgmM7hfI?b?Mg zmACN{h|sOP=`?t$&l;(;F2wW^sjx>X6N`HP1h8dlq|y?pND=8NMZr&+i1Sj=4llIo zMS`7k?IWx`53GFw1s4=WDpIMw%2d=BZ213BY;vR`DN;E(QkfK7Z4|pnpA*q8jIF%o zoo|3yIzw911#Qr>>PGFflI~mPIq8}b8iOh>w;#y62V1)1~(GWSm?4hI}z z@BlQ=zKmz5(a8YQE$%k;c}HKy!_$rEA=Ixv-+X&%Uq<$fiN#^e#2M}u^`)kirj!#I zRo&`KzKp6K^`(}S7J-=;d@0@9nnaWOf=Ee1pgHAqN~czJ%I5wKuR6*G`hVQ6geMet zW%R2r1++DocoI`SblKC-XJpTucuWwc{QA)KA`lu|cTxmgaYWVWlBzN54bst{v&F4V z#$-x@$#nz2Ua*e2a;&xn3xyYaArw^`eWlG?qV$iBrz$H=vNZ3|(8`~RS;#vUv9}{Y zg*Nc`x;vQP|B*G#|MnzLXaQ^M|4h5^xLQwCXYG*q{=rd76W@@6b%8cut4dDaj~ZsT z@p}Fb-86$7@Lw>q&8c`D8qLL%Z^#=&qR ztfbW07kIsqUDo}$Q8zsk{Cqi@kC$J$I$-sn(=T8Sv(5bY6C)U~mBKSDcL*qQYHDhEPQ3#BY5f>}} z#CkB9&|7NN-m#E!Ry~euf5sTk)TW|^DhpJugiLKZ!s^RD{rOjsMQv=;-XR^qDpi^fWt~OQe=Hianp=_02yRmOxuAlG_k+!NXf4UaExq@RLsC^(e`hxm z-=b~fbHC%-Hp-~IivO_{&|rF<>X5C+xo_s$F3Q7AfShp(GmXNbG3J|VuUoNlK_pJqP z_`U1}FJ@$(V`0v2{_`%>+?sRO`qrF${Qd3v*4mAz2#oECGzpN@=+-t8|CAd^6`)I@uqwP8b5W0R~L!=Fi}`pyy0xjyAov z0PmUOC?ru;yGh;Z(+fs1=N^A|9CPeuVSl%UdA5Q?{!h&8jd}$1+9jeym!4x~9t)Hu zy>>FCc&s8kLxgQ2OzU&zcnukV0_NDM*Uk`uT{?6;Ocyx?%(IQ^%vsJn+ePJG0LVPA zituY9yhDWBMEErkCNwh7P7$`EN6bU2B3cpQ-6C8d!h1w`xd`tSVXp}LMEErkZV}-& z5pEOVpa>rl;pL(`?IOHdgpZ1_SA@Gnc$)~H65-cGxLbtxh;WYxw~262gu6tzPlSUa z92VgL5&lwyt%NAgfCwjv@SjCERphY?^iCDwL=m1Y!bu`bt}D!wEW)$~W1bWdo+rYo zBK(jDPZr@vMR=+Rlfi{~rin1wN0?{22)jghh6t|};h7>_C&F1GTra}8BD__E3q*Lk z2+tGY9U@#L!aGIyAram!!b?PWuLwUX!Yv~Fm9vU>;MHrBMW9}7qa zMAS(&;A<1FkDE^L)yJjcq4`qW|HVB-V{YO)(VZz=(3avvZ;BI5DNb~zIMI^gL|=*% z4Jl4^r8v=!;zUo16U``2bfh@ZisD2+iW7|}PIRL<(T3tgFNzaQC{A>uIMIUQL?4P1 z4Jb}@p*Z25;zSR`9d(E}YbaDtAuoltQfLc>wo_;ug}V8!LslT?g8!pYx@8>n$`t{j zsX%r?!{wzxUS}o(^3oQlj@2{Hs&+H}=32QBRcF=l1y=ksAuV^DoeP;Y98cmN8vvp> zbHB>nRA0^B@0d^@?6%Bth;=dN4%fFxQgY|3>gK-?y#Q1V$<>04fU0+ilopdU9!iGH9OnbG5=?`)(k4H%$mVC*PS(kX7?;!9Ol2!i2dfJTCfZZ;hzy}|Vm&Ad@R0(M>)BcV$8lP-MGK^?kI*96&3jLae(g{ja}{-kPr;8n zeV_>BcW_le7t;A{RCwbLgG7n6G>8FQmxc8aeZQMhz)kX_e z?qSY;LO?*JfV~oi0gKj@qFuDBo*xlU!f;u93M3mp9wgJM4nc_q z(cFS)VZMDliDFn;fmr@74ev`O)05lM=zWym$u^a>v`bW0%Z_NRk*`K`@Kj@CMEJyy}quQ;T`eDI{^{ zA>Br6YZKqnjkt0E8m!sdL$9{<(f`sm)Fg)*>Yn!iHEDT3pLrkOMRoF*Xr8}Xmgsw$ z{x5l7DXOTH@Ac^w{3X%~F3EDA$THl-j?3S_Dc-*st)h{?L<+=LS0P#p-&)Rn$= zNfx6oYQqclD6LN)kCieq#PiZVVvd`YPF~d|5~>bS!Wixqtn>nDTS$+i#EH>FQoEvw z>Cr^ezoLnAqlu)5MHA=CMBO%(ZtQs8W?|p z)VFB*aLq_3RW6!t)GQz&wJw@&fGyHV#fzp#Ax{*;4qF>e8or9aoE&qy?cW6}cJN{v z#sXdG`I$n==R)mJ>o@mDBI{ddttG4s!}j|1eS1+hNaY`1q$EjRV>~TEWKg4X@(CJT$-a4K%ga9#SCG zhIfVD@GfZ~YJ*fVoLjYhuK_05v1qo%#xLs2+&2yXRs9QyQ*N|IDvWNSnH$a3u>q`b z$f7p9zUME}Dpzf^z0I6E$te7HD9oz15SI46idTHI=I|?us`Jg)XZNN(*GhfHl^9Tk7%g`)JE4PvuA&GfoLNz3=ngAX&W!%uBU!R z+}k2{GQkoS-V=aW>0QL_jl4lElq?dMKo;iqvUi0_S+zx=guO%xscXI{dr*|MakqCd zFRfn`aT9_rslC&veGwPsD2Hev@&;8p+)Naaeol?nKnb9|1G_Fk=T31Mbf{aG2KtgC2hd6>H}7~gKrk104si(&Kz5~lmbxo zUlbyscpH}k-ML+D=ARvz|Na%+6PJi=R7RBoqTf)z(=G$y?ygl z;T5SeKbnog+s0yQ_$%<%B!jIe2|r$X3mSL>c83cpM1I3XhSC3aT26PrDg z_zNVF(@@7Y{w}TKSk+eUc$FwzwLLV22zi_rZ#BOtCV=9t{6!%$23heIDKKOORNMgr z>Q=TSk(X{^OK2x^butU2`-J*EE}AE3M040&hnRgeD2$UAPhUb=EPj9spv`b;-H#~!g%fP6}(-# zjh8&cieF1RQGE}8S?azgl(IzD*>O>Ac$s)uDN9nyl0814$)&0dH!1C?I~0#-XjHln zDi1H-iQ-v+g%{3K3KQ9ZjzOg)Nhv`g*C=dL<}aU8`Wh?49#>HsVm9dE3|m=!wvtH6 zR077a1GO1F)^(zT7_eEH8_1sOuI6IQ_IJsN$N!Oqzd(3b4)B*~24o-he`prdE%Cz} zG(*DI=RaD7(OZr>Wk3!{Of4}bLVz&KD{q03I3f?gL4Nr^ny%B z*nJ&qTi-&ugU}~}dB`LL((wFw#eM|DDEdAP*cdN5-HtwE4P2Lw;jFF8HM#5op=_W| z40;&O?~%%f+E{PSgDZtL5a+%nuz?6hzrY5vu+xvsYo<^Zylg7xr5*MUS=j4>swEGl z9qg6Wa&Fa2KA6TtbuQa)@H!qzTx-Le)SUQt0 z&h;E&@4H6v`31`RkU@Lkwq#Q0`91r^sW7#`@9|YHgFg_j$nu3-0RtKQoBxO=Z|33W$vviW&Pqtg5Ga zzFxjI_!z-NDpHX}3<}p=_IF<7(>2=HVOl+fH~!*F404UMGZ^XRb`x6G+F+p%GqL9q z$_R)j^$7c)^a$NasM`4JEJBsCD0qYPjH7`!gmJ?~ep2+smK1-TIGxP>qsW;|BQ4hB z(-Yr7P4c8-^;m2KMnLUsYyrZpgB71jKfl(OO$He`06ni$bORg_lkxJfyNe`fbl3LeHkxO*tA6R_uf z0HkUyBfaD}JUND_i`XpI!jS9O$$tGyJSPs8=Ys@A!5zO50yCgdD*b@JClyR72mfBY zV4@h|uZijrg$?8tpW@D=p#)ft@Z?o(4Bm*~+;*lN!V|uJ`gFUV8wYxIGp!v-W_P=1 zzy47ABsKR8d!6>vJP`(@bm^9T>ikwV6cD?31O*ctaN5V+?0MQ9Ti=vL-MJ9Qo)^1! z&yx=39=D>E@JcOG+zbqz0X-O}DUEh+UZ<%{k~Nk{{j92s+`-Pkx6nuHJD=JR;8kI@ z0gjl*lrtdQ%nM2YJB{YzLzwNV`o;pQuhYz~zb;lmu%~gF-*qk&KA6woox@4N)45Op zVDob{>913sk#WE@@~6|^p?okqX}%%yeQ>uI1$%^3mIeIkL^oTIcq;NbVH2jkuC;wmdh=3`hv3Lnb~QUh7b>3#55`-gWUrRyyu$(JB6 znNn-^L`TTEOllERlPg8SE8)|hr;f_rtZ$}XhU!p$chn0H^BsUE5pg7FM{59@L_)0m z5c|b8)(Kxxw7Q%o9^tjyLBk&kKr1=I{Sjs1@fW~xW18e>mXRTv(=ew;0vm|7GR-Fg z$VXE#{Q?`>WB{QSBc$&;gb<)J9A(F!6v~mFmm5vP2rCK>-X}WF&XLWx&$cL-_B)ZF zRfSEiZzF5O9VFk_AATr`13{BmHIN4nV3HcJ7i^$*LKD-^hrWq7@C(4ZJWD{lCRi{a zQ4M_VKE#Cy)MH3mV{4uK7f4=D<5eIjd>3?hYdHGV5}%sp=)zyyrK6u(7e0orB+;wI z&}3! z%CFBD&hJj<8+<58$$2k>bp?qiHUqKst%Nj8N5T6~5MEJlZwk_f^(QcR`bo%}7aZr( z&udlIF_n*|pZEC0LWh_IGZAox&N{dwk$?svmPntB^zVuE>8$uDFP_GV+j;S1 zt!gTKYP70pczu(|I31zu5Wv*(89bH z@hZr?L6LHlc?U$Goq4T<3PD9Fjd- z*4;=iN>f?sDfqwEQ8T<0i@|P+4N~i+$*i=8V$?IBmk`cNCqtMK!%Q~0GkcH7H#YI; z#(#R+}{Q@{YXhUz z7yP=7X#?@^VA6)e%=_BKQSOEC182@2zL{i=c0qAX@az|*-7}=*r)Dvr$B=AN>n0K% zHjtXgH~a7(bBk_M;8gSu<lFU=3KE3hZi7M*fnqEG8q);C2|RM>995smd9o5GM)q!<-ps4WaOY!fpWzQw?I+!;PaeIi8Q` z)gMIf-xj^^*CJ!elSKEV)7LZ&R5{0nBZ3%^Wyy7_5^GOkJ5Z&pje|S_BsK_-l@U=fSCpu zJCQCuDq$;d%?UlBWt!QEuSTsHcHk+{6!~useOHVbpiy?PZW6RDvO0W&*HZtc2-Jw~ zW!4e^szzo~K1PElWS8n01Mc9@W$CMO`73|6V%Omn>Z+>$kUE@iV~)Md-IMWa(&Jor zQhzy8z!`tIO;V}cg7Tsy=}p@xAKy4Y6>TK_O4UC=n|Hi21L3C*Ci7p?3POEz)zC5q zH`X^TIib5_=WBNG4pG-tvgYQ*EyFa(>(qx(7jw|&Tb()&VeBe7+C^-ph}rAaTmzXg(s;P4`U zARj0d?epg>@KFfFkyed?Gf`VT&E%Ru&9xjNEh&s5o_vU5zKNib#{kG-PpEdt=IlT= z`1aHsqJDsC_3fe@{{!V0p6};=m+lMHQj~tZ7l=3D& z7a{&LqS!K)j6I$%mX`!pA$}R3XQz-4{{(|bM}s{iEql*W53%6MFuPTrO)}0(wij4* z!vTfH-aAB--d@6eJo9V&J{E!SgRp^MR?r9jE`s*K+|Pl* zja$(M@JtTyBxpdtLq|Zr>MUNCJf$p&+ItOIw6{qfEAEFt2Wzy7fQ81fDR|)L@j}*~ zrMe1}w1ACr2?nvGvew|Le-)D(+tr2);+4U|>sR1Kaaj4akd;{55q_aI_X${%i60Js zCe+4zxEX5-(0Br$vlD3#A4n>uE$gKW1aKh~E$%6NRTdX>!<4s0 z--Yn^2hDJi(rD8#g9#NTP1W-> zWnC`@KCQIs9z{GlRu2ak{s}w9Vrff!vz100n9@xi%zuhQ@{(9se9{QJ$`+os=bi^UZl5jj^omgn{JfR^B4_9|MFq#HX z@9*&s%eJ;S+5Z9TN>KliN~7+2IqJshvklE6I`G)JPz8A!C21GU%r0#`B3;=~ z>&2O*pI)vi3(i*^FlLW(|A-ES3Tp_>-*DP@&yy-L*wvIF^h&WePSRs z?>6I%F`Z{T;u=lf;h^(*goGsrizx1<<#{5~M)B1a_5iZo!e=M4F(FDb@{N?07U)>~ zEXHacGt&{Qf1g9!DL2tLOGp>dv$ex9N8yl$IlY+)k1k&dauz|Ehv zuxZ?Z1s#R0>|T+$Ad%U5wmk#~!~cKnja~JX?Ip&vm&ESn#mN$mWJ*twa9AikRi;}h zeX>kXp>&*FAy`w{G?AD+mBkUPHNxC}3B2GRd4kV%yOv>s+U7_?w?PmryV#nQ>{%CE zu$pB*Ekv0_?QYoUg4;=Y@9om)ylR;m@XgF=uvagFfCza+-E6TOveSMy$rr+!Kp8r zOx`86zW9`^FUgnEHB)h0gMY!MA*B{hrbFhdA2q3ULi)gRK8c&*aIFoFQ8zvfDS{JH z<+isaTnGMD!HD-s$oweDmprCh{zjkv5`p4%9;(~__D{fUZ{31_s^b8yInKh|raD^n z#9LrN)2A=QIXXT0KPW%F@~OEW=!x6tY+f6!_^mwWaoYOH!FnakbFeE7ldWZeuv72% z3iiQm5}22;vnP(xsdcAFb#sKX=;&V<^M?pv$EHosRVHcO-7G%|1`WO7A)H6ny)-UZ zVT!(sj4|m)YT#R|I*!p%X5^XvD;S;^JgGcsqB{$4c>#^+$g}pyv)Gw=u7;YQrdw`h zCvd=@^4ntbFT~9aeK1hdY03FAFJ@c?Hoz9jYgteGJ4W3RcNa_)GIvTaMds$EM|CZS ztO)s2gHy49AmGRkxb8ne2VNXB7w_c`-_+SS%dhd6L$V6@7@9zu-f8Z0mLAN;6tfC>3KUFZv3^0jU zac0?Y4+QNZd^Du^hsksIMnN8-o)P2a3ZTOsgAAu#omO+UjpbX(Zvn0csQHMjIaq$L zXsx#iEW=7$1iQViL>X>`-Jp$FdDdfSx#NPKh-Kp;-STh5M(O9hrCm7Op4$rZ5_UIA z+jZL}J<+=-h7;Q^W3Zm9GT8DBlEI>ik6cY+dq%KS@GF?iY%tkZa#)waVYI37qypz` zIuPvciMS8pSa1x3O{^AV!(OAFtjWxD3Yd01y6G(NFn5KkL`L)!N6~f5LCIK=ipj{k zfR6tTb5^U&i3?3&3I%svKVFiPm}(1f2U8A?SaE0jFndNSrbc1IdG#2k`l+l+*J^RA zESM@d2ZJ8miOU>_oY=M`MuGFW^QdcvzWxXVnKn3z9d_ZCf-$b^aR6A~{0rP0t8e%X zEVF8kAIYdjY=2kY68!Uan2g4V7+zG43C?|2F^MSc2uNFU?0iM?y@*(1Pk?CGKu3ceUSRxK# zClf~L2zO#IuvZ}w!1J!UKQHEssYV+@Q{(sZn|RGq)XObf=ysN8tsHJWrP$g0fK|1d z%W(GulnK7Z23Y7aiUmo0b~0{=fY{S**uR1Sw3{|Zi;uddvG=FY#+|KX(E?ofQi36G zqw&5{?2E0mL})t_x=UY{)*8qBA$T3xa2E}(bwS>eg(T8~tSNE?nf761Vo{8~V-`Sx4lZ5@NHA1TC&5#ENNbA2&Ppb2jNk+~x^{H!Z$fa2IEqVpkRMqgx6RL{ z@a%`oj_yocjB}))#U44ibcQ44*5Dc=S`sO@ z1)mlXJMd5ty7RoF8>e-;+&7yaNfd*`w5SB_6_pe{X<9Ihu;{%GqySto|0mO&^oSkH zw9Ph1D8RsH@Ej|jVgIHrXH0%q_it-nR!dxc3i^(H$XTotyAIS0V(u8jDeePAYy^J7mK?* zI@N|Ia~`yba25<=d$5x*ys-mv3H*q2Pn%!BoAmQAAc9j}$!eqO@5PcTxaroK(_yvo zWWqu3t+%xqQc7_x#3D4UpAJdQOII*K>#kLChW%b`ToCbpW>FiL4jDx|y-SB~Yf>9Q zEF?!OY(|CcnmSf@gpBwg9qVazzg z&fszvSS}%THU9-zf}tJY2v_AqZ9sLQ>+QT|;cZsaq6G_y4?!dMy5EpI zA|tB>@w$N#G9rTU7hCy!uzfeT@`>6-3r^{37ZcR2E!Gybu?6CdND0}9EjriDbaBoR z*EjT4IKX2CpG}zru?Mjhx`7=dLnA_W;v62vMf!Q z&jCdc1rQK`&o$L^vU-6*e~g+1m~j5%B{IrkzQH7BH{)ikpn2ugx$cibX>`!;Bnwp2 z8Z>#?7RtXo0$eW+zCmR~0cB{e`x63g_yT|{=KL2D*5D z5)jPJLV?G;Vr(}X0}0d0aDQ1x+8OHV!W5`bmgmRObMP4K|8gDQY9%gldYV-II=1?@@#HoWv-YX zQUt{kXGw?v&)OHIf1pwdn<&j%PZ zqWTdmPWdWfoD(Y^1yt+92IQ>ekX9s+SI*>%APv$w($4bl5Na_J7TFhLwHpk$1zmu- zv;iXyp|SNw>O4!E|bsVu+8FBoTJsU4@BRcoyXaN#aD?fk z2!v8t8-zM-Wgog8L2;VCN9J#i-YrD=#4$n&Cl?M&;pD>Gnz&IrF0m8R_|d{R<9)Li z;oI5)E`)N%0r#5_wPYm&XTAp^n@#mTl9l<$40aFzsPz^I-_STTk6T#G6=Oqp8o|nM zkOUT|8EgJ#9)}agF$r7gPwbV&j zrcAfJstEd~=g2zPPHYQ;2VpxVI$`wH3{0d$C{{ij*UMRV-4X*)u%sJw-~C2nFW zv-3D^B16Q5v3j|}7s9C~Tscv!3p+oPHi%W%Yac7iAU~(zCrV>AHn zNTn@uUs0qog{&fTu;2mk9YYYi?jCHtG}Bm{J;C*ACY$965lIfLu;C|B7fK6}MEHC9u38JwD7=B|&2%e3!`DZ;003 zN4380;1`jpbXb^lHrurirvr5e+27U0B0*n^rz@MYBZZ_h?0^QHBbUQ%E8Fv72p zM^gz_g+FWOtEaL-_{I`W3XRxfthqDXk{M|>1Uy-P-UJi@T9i&fC zWTi>nmpjAtHi4w(7M~*0z^oPb{Td{^vyM{dbs3InYEBG1hSQ+zy!I6-Mzy0kxZ>=aDChs&3Sq|HWB$%BGWsiS(w8a-o<`xc_t6X+n|79U zgv|PU1vf^%dq6uApVrp-@tll)RLK@u{uMXqE(IX}YVIw;L#$`?L>(2I%v;E-n!NnB zkR!Ra`e{;AVG40Qpf>LEl4J){vIsJjO`KP}7%Gbm~R*J-OrQ5*kt z6I%8hS$#Lq#M%Y^WAqceXY&1bqKTGErB#r7fh5AA(ItaFBRw{fA-dAJ6{ZKZiq zuukX4IG>hhox>JGESy^5BRYDw#}gfCF2G%9l9H~O;1C~Z%I8|ZtGF|*05|YT45st( z2KFS6NansX2LI7QD*Jmt8(Kwum_dC2$3oi$@Mnl0GTESko?8v{q~ZEvE6Wre2-$}9 zU+_M9K&WbBht+ov6S6)*M`l^)vvSJ{=PA*Rt?D<>4R!{=ehVvl3G9tm1$Hb!^bZ9R zqBDSK#Tn9%C6gWpP+#Eu4hG|$QMia#1yppa+XQwXbbYKoj6{7gK6}PbCQ02Y%!dwV`Bv*oPZz&=)Kj>T2>3}=dmY|8VYYSYfVL((H zw@xFGgVU1^7zHfKQ$Ae9dsMGep2Q&o-FAd_gq%LLak`bpwV>K}zZMNQ5gJ~}7ifs> z&+vHd1S&%5`!mj|zw`r36*s2!3l4)wf^q_09S=*=7{J$)$NGUH$;gmTpQ6u&7_M)9 z_8agJ4x@cDw*IljeOJ$^{Qul2g|2a&Js@4gjaOYmu$%}n(Xk{nRxiKE!>T$5d zgdQ5^4?{b&WzI<~pUTHWe1Ji*B4)52z=sU?D)gv3I+AE>3G$SrG3=rc$T#4EncypV zm?ckOK7bh_3)k_473}8r8RPdL!;lOE2S*48O%>k+0x02=G$@V8+{4VQt#>NcDY5-S zy2J-9yj1xz_I>{eTKG6xyopK{ZA5ye(9EW=52>SV*aHXI-G{u}1-aQpt;v!{hXXxd z!t1}cg>(kV+_%QgHMo~II@ieF*@?P-haozs%b0Pn6Ch@s_hiRt#<>klPJKF^)`dQS zv~XraufXEN@(g+b_!~>I;rWMk%$76ITnjPAbs)+OSl5MC5dR|bEkt^0t9@8(WW@jr z{O&lL#3mRMnZTA;J+AnNA#aK30uX@QlPre!)*xyHQf6W zLSSLo=e_k0&|OckC1+!3WqQf0My)?aIdPsyTa!wcB1SjDV*Cl_1<_w}a-f+}XB>6t zTkh5&Yi*(7W+Qn5GPnj ze#2D>D_`v1#J*>aU20V?>2K84s5r>2zRNTZcaOdEnMA1n38N_?6C!ki{r2=hDX#2?h4&FLN7$sMyN01m2;O@Az`ySJ0~mR+@pH#!I-6eU#%4vlZUmySnl3S zVc58FlPoqU!m8&p5{T{~wyN5+rrWr)Mf2ar9X`!>8|2kTvk6}C$>!W-R7N0V7n*mlCeL@*lrp7T*k;r961-jl><5VQf#kTrP$sH zJ{g-PV=ag+Q=e&Frmpmv&Z+C_CgAA040KV(I`b;ZST`Yv7$afI>g|09W2EI{gKoWq z)qQk*s|5PcdOrnV?iMSRHz3{({2~=63WAHWFgI-=-5Sf#8)I>wfj8a_q@igo^Mt$I z@M?Ptt+)5khmNtZ5%fg-EjnL#2i-Ni{(_0r49_7n0m2Jk8amju7xDkAESNhkq{k#bc09^9ATdiR4H7FWWFuHqe1++R1`k)fwmi*q(6K|JkU_Vte_6NQlSV z(b~rk`aiZNoFxk_;t6WwY^(OkgH-4+JVS5dPT0rEFEoxxe>pHx97`u>ykUEs+>gXP z@K$)1M_f6W90L$n5M`UvVA-M1VnFQhf|=O+th^@>Pw({F1$Y%gMq+o|mr5D)t;TVT z*yCt@P&4?-EVc1QY}6|L)7FGe9Quj#e`HU1pLL$^tU0ZC%O-n|w|`OdX}ot`n(s49 z&BuzrcT`Qp;w`zG6;56CjR4)YjHM|KXZ+}rhSE=lp07LN{w65I`~ih1DRR|Pu57Cz z$kI>tJ_)&}S7SBMr!V{qJelNSi^0*tP=>Fl$nw-PQT|sb-+K?lZ_R@*sUG@NM@_W_ z2cqIdXw==R=P$^Let-yzM{6HFNN1SHw~ifO#tNrxS{(2DY_zvzI^KdLORWZ(PAp?3 z_ikF6;0ulRmVH-!bHDzu>JM4iD?$}{^N9Y4j0(T7v}6ioNjaD`k7BH# zh!rgfWC>}=3LaxckFx?BE3#{?V=&8Tf%CdXh8@}&2;P801CTj^S<6L5v!0d@`n-uL zFv}%ltLee#!amLVGde095IJzL1umo|(Q`NES$UX4uW1HyLfF6(C?6)w8<(KG_X5pg z*hPo^VL-2jjn}dOiX=Q#H_Q+QRlam;O*QV=fDaAqtR=ypWQb&M-uH}zrO|}@j0C4l zV0p{Ij*l3LGop!48wq#G1oDo13OzJZ$49fRG!jhFY%biM0rPW7aNPX@fKXB(Phd!^ zhCb+lhm@(e4gb=8-aMC4xLI}qVAzeq9kM!-3En)nk!|}G+5R~;TZNI$eML4cHe02U zZT_X%MwbL1jm@^&$adEi*}fZ_ZH$`JF)i#Fb?%v#MQbDh#G~rM+@(Yz>^)tttCOPO!ID#>?ug^x=OysqWQ>zXVf<@ znok0Q+U}3$B0C@v%xw?dx+~({5RHRC55U0w0uk_JFCCaM>N3faEN=!SpkH5nPxO@K z&7=f#N$`VcLY7hFPtk;2VlEO6#*5wZ1*Im9q`n+YmD>SmVrR6?0;AwhugJopS>_p8 zmRyl#Su{(Lk>$HrWSJGs@{p0``YW=eM6)b0vV8H~D5b?#2*CY|EX492HL@JKBFl+r zmdA`N|8zx`H=|h|7dI{30|ypGI&Qa{LbuD~O+w^$k^IQB8fq4(^(L-bfRRhw7)7*o zO@a#osOfnbFJcOQiGsa^_%t}tgLZKxIHVq&Bq71KW$?z-*NCCXshMbxUbCc_3*;BI`%(M`w1^}5kiFG?(0NKRpE zPzJL3Eja3$GVvXjs#E2e5Zdr#>k&d*h{*W{a_3E_%+|#v!5`wjOcLpN7V4Zh)7tAD z0J9S534(#q!!zbx$Qb%}EH^LFKZU>LT0;vZOV?h$=foiT z8IQ#{7dPB6$E(^q!tT$Xr=x@Xb#YydxG>K3^oj#yl*LBXII_x;;O14YwpvO|t@%Ty zn!V%54r+2^JNnhu+!6(;5mTUUTq337hhUNsY^@uYOhHl)__tz^ z+R`o9)~J7gY}w4Y9jIGQZD6^LbL`uK&#VFP#oK^9x_Yu|Yt7yV1PE_YbK>L?K*35> z^_YO#n7c`EQ)UTxpfIA~J0;Kj1LhfKT zI^~VVQXm^%$;X{ar~?O?*5cd>u8toBB2gsb_KBN838-ETV5om|v|;-Nhv;xWI(Khf z#w_W}SZ;a>{mY_%k1b<$={3ko&sUA7&vAE___Ik)3_cA#0Wvx?nK$8NgU&DgKQ z9gFliAo9)k=@x}ufPV>Y{L?-H9xvkKhaW500>>TtjL->06mhyE)x8^Tx4Wd9O$SiN zU~=Ar&*+`OO;{cHD3Jejd;*463v9v5w3%b%omIGJ0XNvvEm82B0BWg5_E8P6r5n}K8KaEfL5caKNfQxF^+EZ}(iJv=OBiC*B9(<(n zZLqdUEo{<;%x}}$2tk~abZo&ndEDem@dL11$g^vOZ3);-*n@9BnM-%Z!bA4!d1JB& zB%`nJhZu%x7^K%azVLq(56}QnX$wAn1c+|U5)c*dp&Q!=6megKT6i$F%?`8)Gx6!i z&?-=2u6ixDZGGOj$6^|eMTgOFM+mJZ985pLtBgh;cnpm;`JdQBO$wK0weT341WosW z-_hw~ysD<-iv(~&y-;s!O@Mq*OE0i=ey%p= z4|N9d0TNtefhGG#3Px#^5723xj}hM4yK%oOnzAjRBSheWo#{ttWHxntuFw2;YAc~1 zcON)gmO=N$m!Gsx6y?}(J^F0HOXTIf8w@o}HhJBuQ4=fP;s3(SE@&U!s!zW@;V_U% z)vZYph&&CO{!XCsEy+yp1C?({W_n-V;7ac#H+76qwmktK#R4C_)&W!U4*$oa65zSH z13kTx-)9Tn5+GhmVCts7<8%0Dd~DTc{z>%pIIDUM-7N-u&k=Vu`=8iJg#M$1;KLCJ zy2gT|fDC+4)EHd)oX6O4Vy7$7A?{|vVDUo!_>OqX`ESkC@T) z#7`r)D)BP2{-xx(Hh&o>6?{SsQwpC{k&xu7R6wc(WU zEG)sabrz`YIE^f>cNq9W-lagF6^f>%?gR!U6}S3bQ@w2f*~2j_^!^}51FdmAIQ2kBRTfAjH(&8eehIkvc5f@R4Ul(qmAd{CUk&Y_jjmX7RX{T zw`{CEE^j($%>qiZBA|3IfSdqSWTFtT6|JoQd0E*kYF*q)F?=}%^+K(m2g`!?$E{RM zoR&jb+(Eh02@Ro8n%~HLG80%pc6@EqKu73qBLIB5CrYCVIo{MXN^}~Q6m0&Ez%ust zFy6vnA15KBhL+aQ%Ah5ttwcKc-dqP$-^Qq^?~Mg8^@$k47}z*$>dTj=zI>8EIQb|| zeffzpmLeb0)R&(sV-|Xh_!f@zK%Nuy6ag18UC}S;O7FddsR!w!laeFS&-dO=1q}X( zhYAN`00r+~QV!WJ!uoKzy$b#~-MlJk4|PI|sOry_icyQ5a_dvY_Oa%~J=ktoY2gJ{ zI-k*aGaT58d$7wE;Q6-9{KWDbrH@O#@Nv0G__!2WLt_bl&rgQ-Pzb{XT(oh8G`F+k zonIK+JQ*KW+%+rh1ME~mD2JIH$wXINsduru;)c+@G5RxYKwqq`oCMD+zUvuiiLvS?;TA^*lvp_M;>(YMhq*QLf&~7 z0EtIO4SfyYjHQja4_R|(5L>0;id*y2`mx82;;5%{tf6EQAT4*2GH8Vh z=4@;1`bKTIi2X3^hM~U(6J`ulOw3OkgbxlbzPGX@B#Tj-K=y1(8Po==(PI!brn~lN zcM~T>y9>*mxKuF-M`??Df@GPb6%)+Qt+1q8@iEZWu}0;3i2_3z*wany*~;^5nR&zP znJ3uuM!}x*i9KP-|MHvY&wMK;xs?_cCZ)j2?`Ib~L#!$7gnw{S)@|*b-D!c@1aE;A zSEe3TD2TCu|1)qW0S%JosP0B3wVd`==Of zuvQlL#Ef6H@i|4n39tRt*V9h8KQuSyy#f5B5#J&@H;uv8p2V8q)gZm*CQ>i5Q_+hF zP~GH~%0@_)fT0(GfxHSVxQe?Z9$qZ{A2S~tu_ClaX>YwtiO%;H-H7v6J}03Mw`iXkdT<_S6v1?oT%h}@(uJg%AVj! zWYPjR;w(n!I`9|vgjtg?-@u6?n;pab3RPr`L36lV<4ow=2INU2kdwC}ZP^KbMZrIT z+W|CzjPYA;VP`u&<7N!_5IZis%>0o_IkyeMAFh2i?S#*@Dnl49*yCo9E#dTmv;o}X zR~5uS!8pc1v1|f%)ka_s1I03jOgtCtIDe?{% zb5yfG2om)0bT|}*SqG7#8??@7V{Py_T&*DK)3hN-t+ZzBw6ps{qw&y};9N(y`tCvL zT6ubIMk_0^;w$JlFAZ_pxNXLB41Fypwnx*zvb z;5OkM?CR4BA8b5;<;rN%Biw3AWn2D0f?-f3t z9i2~vr{KsME-*ZY<8Lg3y%$PAfZRvOk7cAcVWT(LyrbR#$Euf1)#MU#Ge(0*>wx;~=hePb{svEuoL!WGU6wvuFwfcJkMye$45iAKg(uUcCsf5lFYiM~C zo#Jw;uR-U>)E!Zws%25-Uz2y5(dECNB)g0WHi~*+`#tCk!lep+e_m%#MH1X^kbs3) z7)PbfVf+(K#$baR=qG1Bf&R8mFw+pjH$xx6x-F=6Ko58}0aC}$j<2>t?DUEoEe#0& zLc~8X0%Nq}9T1^6(LgS=3XUVfT)g#vKVjhJ1Qr+~Jh{WY#h4T*KAt8A5a%eK)bjeT zZh7JrtVvv%c1~jDQl>P9n6MJzp3PobXj1jJ8`axMTZOtNng2KreRO^S<4nIe5U|P7 z<82Zim^~E})6T&GF-Xhda9S9wPcue5y!8_D@R5Y7KJXYMfIfY}2u-j=n~UKMD!`)) zZilD%?p^;JiZ^WWzlt5}gm=8KgFR2n8GWtDdF4eg-q&3H6sg_*Z^7 zi@J9@?E{D^jCPjJE@G%BUef+7>Nj4yPwCTF%8p_ZgrE3nj2G&wnDCTr9A>QZu@3lG zVk*QI-Fb0V0ds$6x7KD>;376M1oLA!5gtg?mHUhVI4sW^Xn=jqpn8Q^8dRN^j1Geq z_wf?ziss)Tl>{}A)zSHRMyvWuN3i1hwB{^CyK!K*m=5IL6tZTqW)VyGZE^;^nC!)% zI*d+LicaAx5oe(Ms*G;`GDxtF9lHtz&PE4N=qCiuySI#to)ygmB!M#|p{bZC?;DAc zu!4=7!N!;=E@fjww#pm9u#NK=Rln4z-r(UC=L}bBa`VHK^kMqR4Cuc>J=YX3z0~1D z+%fE>-Y31(`*GUS@CiP^7F*%*k6Xr-;e&iJ&P@oy-va&_qgIWFx>_^i+vJ&HNl||h zoR*iT; zGeAi|s)105LM1}fiHRC6g>W(R{-3q?OcGJr{=Reief-GYYt~wOU7xkqvz}`t0!=9x zoijrJZb#I~Z|97VVg1Ic*}q^37YGnc!*>k=8_1_1sNu}iuL7m!zVFP?JxV2BiEpIH z6+EK;+Pxl?ybbMLC|n_B&gWJ{^MutQMrq@1d-K^Y_OzJLy0;)kuok2!7vdm2@OiN! zAhxekWm&8e%7)yc?xif-863Zg)vu@Qv{;ZVGkb|-J42t$?Bx<{Cs>!gggm?yPrWXC znf0qwy;fDoi+^?5%hhXDK>Z|Qm4z}&NYR2N)2cPmR6!Z!U!7{671}5-{?#dGIua5^ zdD`(3LUOiTlmE?UBw@u^Q&|{JKGbVJ>nFKaNp9F3F)^9`y7<&z$p_0@>Xc78iLG1J zDKGvRt1j@AZ*Gxq)Gvv*g{Pt_<&phP;1&M?O5|&hd}ct_0HTUoui$$LD1oJ(@?Q#G zMR=lnPFLM*&nb4|n56H>Bwk_}pWjN;md1nZX3sW|&d!@_&KSy)(tn($ zXM!FlSlOBW+M$#WwHQ&6$yceeQB0bFe*n}w3xDbe6;J~}BosA)1#1W$zQL9kKBo^e z)ptY8ll`qu8B&vG7};~r+&f!;kIjsGi9>q@Od@!8g!W9(C62}+J$E=7KnLEccn2Lk_3U_c8)*A}U0>QnSL0PxkZqTWeZ6lf&gl<8 z!U5^R&{nIUx=fXe`>w6xZ>$pN!R=0pu~q=sA9O>df3UMc2%9%?L>LcVP+=vZnxcZ& z5}i>Q6xqI%ZOivr{ggIX{j^&mU2vc??*F0Hg`l1n5xVkKT5WEfPD%Ft$=Z)9+l9!i zZ$gMFqd7+9;y-gCt-ip`ThurAm0F+RAEbfF+?R|8=^lI-|yd z4n>8L$I~EC9J7iV(!>P2r~F%rl?iX49LF|Nz*Ay^RK0^Gd;LpcGIY5 zsju-v(EA!&rJ~>`v0LN=f4Gmf zCXt~xCtjc{`pW?l?;mAskp7x8A9bM}<$s@yX8e!z^X7g0HdG!>+0*t1`TN}$5>bUq(PNX3pESlXfru8$i9*j<)+AS_#`d`G$(l1T4 zSG$7NL&WL9Ntg>L82}KpE`)P{gif`BY*kKO^+HCC0krl5IiTVNVtPV|Y!spOs(7vH zG(UQ!3jBmhq@rzDwNm@NAjsC9Va|1g`PGI&20YTs{46J8gIc6}8^17B?P|GVm)Tyf zoI&S8kJ{cO1ef5>VXte2P*fjMTi1%k_~N6))7u@sfhva0;=IE*ysglP3%14~tSJT& z%?BN7JJGVvijAq8lHNA60>GHEZOp@*(_ngj>JBaGOQ!GG#ou6I73p9##xx!0@pqFKt>wUZ znX@sp#lKZ@#%NU|_#rk5uH>yhEvptqY<1okPfHeUttpI71$<_{N8jKk(#&6?Z-|#b z+Bm&BQ39Ex^y(}LR1UgF8sZ@g^eAxEw~pkO{&J~2tB3MjR4a$AUY$VLbUF3vI|<-L zq&khaG`Ft$ZbAY~b=4E>IAg0U+Q|M^z0YDxWxXr|>E9~DisAG%)B8#NDyyN2)i)HA zq)%8chYue1I#A=O9xG8VkK<`hNH$(xBR|J=AC2!0lEKo|nQFQ~wrDH^X>Hds+O7f? z(4o@%dVcgv>!TjU1c*VQKaS6BxC%-!Lgv4Rq&n9l(nCN^Kd)7b`Q~1WMLr98RX)Gu zYkiU&3$!oTj>@a+X|cSw*zZmD`w8B4)rWcV1%uZV4K>>#yUA+Jf8vpTiodAygSB;s z6f9V~#ftA4FUuT8>6`Xep;qu_KGSLj>Q$yxmp#RI)U1|}EKak!Lqh7*cH<^WsbmPo z9eV#;7QXQczj}34Iv1KtnOFk1&SZtul&1EY7*+ER$i*cyHZqLg;Wv^3c)X_4RQ0j8 zu8<1+YVPn?zn%nb?L5G(u3FAf8P#O?jsC6j2`eCzB$g|@nZhytbBW6bMcWn{s(}C% zju9*0kl^o2(Dxz?uAgjd)1CuqbDs_-YToVs=5izhRIhPynm6Y64*!a=F}^`Y;i%NY zk(i#rF(gtbi6_FQ)Tq_$*7NX=_fqus*0u$Eq4wy4zWBuni z4b)()bWoqDA$005$MBH~YE^CW-3AvCoK75n=s)Q%kLRaZ*r{)bBM|)5sZQZ3#>;9K zNO)6@V;kQ^S1Rkp4xX+T{X63_d|$MEM=;RneaEUiRZWYwW(6&4-6d0T+P_uG9$J!X zY>?WLPGA=7X|=hGd$Gs&l$^a@9vkJcSsu0WXpl#p=j;sTI#1wvTk)m0#p zbF&m~?f8b;hdTAH;OEZdL)vSfI7{-Z9q^>K_%;`h zyW+u=-d>3%1G`N5nSkr<_aG zWKoQpmlJ8WneZ!;Daht8QQZvYdhw4bbMaB?`jB@U?-2FuryhQ{5r62jq6jowA?PR^C`ZQj;(1jlh&!G0K{R+v1m?s1Ygp9tj$AP6GH0Ocv=os zL!F<-%N2z6tl{x>S;G?qW+2q7LQ3y7vWB~isl!2E(qgq&CRy%zh;XYP9}ewb@87CU zUOpe{yV)@Blw$i!YUNouTpk#0&K#al7t1`xC?`Mqauoptm!>$rQ>aFFHGYocV<{xgaKE6{1g*8J*Z;HlW3<4}sdmrk zhy5F15UMD?RlBw^$;HR|ZtCuj3Cdm8qQ=&qbzVvJ(Q4ADXS1~rP@6N7gE6Z7kUoa{ z@6|7}x<1jrJ0>5f4#Vvmg>*01`)H-A#Uq#sg3o%*Hv#;-+uZ)PgOVO19S5&JKY1X<7Ma7{BUZJJM>f@`?;CI($-$|l% zLDQ;>1g@e)UVStpvuY#BGL{dkUy-r=CwG*{dqo^$sXQ!)`VssGjb-Z#pago;na|Zd zR-um;6=m>sKuaB}i*s-h6(??@jA|K5`oQHzO{&m#h?2Gc;juDYD3SA{ z^&o{SI2Jgw&u9g_ti{M{jv@{~U<`>Y=&o!RIkeFI8 z*vM{+H*Js5Pt|#ANsnn8mRxHZYMOJOvhH0@I}6f5Av3cW9S;+tG4|jUGhg|!f5S|7 z=-wyH^d-8t3XcOwHe=dq#zK8YG2-EZKa0H@VD=5u6=!?XM5JBk6tvH4v76%Ck?LEc znSZ#9F&7^XTJ>uLtIO8=ZjAKC@Ya_O`^MfNM!Tq9?S z=mDpq#S)7fJi}wmMsh?@^d@*x_!PuW_;c@{4kjX7%*o|#&}#N!Q|D2CXPlYvsF>0& zYS&izWfY-M*LH%pVscM^V9d)7f4M^8r;SR*EcIhSe-|kH9}@o zl-S`%?5`ZJikZ0^jsCcTpL!fNaS|SV*L2EqVPUl!FIbS-ViX+~L#N0!PUtHdQfagK ziJ-UB!6ePfzhwp{Z^OQ4;1qCN2VPDHE>>$pfy6_7E{j3sV<167B4}} zVbeX3Suk!v2dQP&^y&F9y2J77`G69{IPiN|cy?l{5GHh`R3PSg3qq||(5SE64=T@! z2RH4JEH26B3u0*jb3J8Pw`fpP_`vvlFWiq?YT3JpQ|#@z?;@;PUuSk9^CN; zYzPgR@v9X<%*fpgL-tyvZQQR>*J}4`@P#om&w%g=jPBgc;60ETr;OR`s6I`dnWIuO zsdJmU-_|Cwx@z^zv20G-EBUAcBm$Sqg=@nYU_f$DxGx4IiDTsb=UgTKY)K>?m-q2+)7!p_#@V3NbI7+15LW6INkOqv z`+UJm==kkZ$E%jtfRukyM=H)XF*7S-_WI7G1KOIMgiuTpFRKk_nq=#(Pihb@Oi{D{ zJPf>+<;k>9t2zoe_|M@1^Ai z>7y`SpbVziDrK>3H?H5csw+5tP#H1G-Y^q12Gw+F7}O(VxNDWT1r>v5zZNXc@O4H7M&qK-_+ z_vd0oysv#lu9#2gr>*)(#_FK|lTNKl_!(@}+&C?pE9PyTXm|$OoSFV({q)Y#tIr%# z_GP6@uky%xl|IE~`o3uEpS(|5pGpp6(|o+PQkRmpC!IInc(sGzSJp3|KH_23$~)11 zkG0=v_FE*}CB4{wFR|VeD~O!9ULHbxn7COULVTFWg|vL45FaLT(Jb#*sqkd~_FCVg zDck6J=@r~(>u?PMy+KFb&o#~03Dus7);l3WtZkB6=}eS!YNav~x6}VIP@>c|@Suqw z6W1VfTxv?k(t)Nc#T+*{Wv8~XKOZsY=CWo)--BQDndtw-sa2H$h34Er9yT~L%i}q7 z1X-V6^bG-yu>u@pX=&CC9oiuG4gQ^p6MY}IX7a5J;^tz*he~6pe-`@@@EA5`;Ksx4ZQqX@Cy}0($YxJF?eH~&zt%rO(;^xVL1V>tS zhVK+Nj@%X`ocn1jMfv;8K}X$d(ERWt+~Gibssr22W$j;?e?Z$Dhn0%C$!E<8o=-c*BQ|IvBR7qaW4t_hjN3%U zZJLZ5qvaW>z)BmW`M;=;f!ki;dzpDp!6ktVoM3cxwlnD&&(R!uQz;XHTh=))6wG0KNpyOj@S9X z^z*zf1g2l$^<`i>jKut|z;w8X`QgBH2$`M$Mj{cFLhQZM_tsa(8`mKyhn5{iX*2hw zly}Q8K9B2@rdE+Su!6ndQ*TUq*PP)&Ag6ME(BRUr{3cnUV*{x08 zi@94r=sQkainag=$V37t3i zN<_wc<0tDW3|&I>HpKKY7z$>tq8Lg;ejz5oaB>yFPYz)A4O}^bqO>R!r6uJ!XbT%C zJN5IFBO5lF%o;$<0bt`NzUD%OpEM}^MC=GT&Io>zyWdHbm{toY{6sZSpT1C^UMwCh zUSfb#-qlQ@^m4GIa&4&BPip48Q{Z%+*Lv3@P+m1%e!LUGxLIBe-3T`$*82uQ|HaTn zZ?s$QXmwKvHz*^wJ|&2O&S@QjFXk&`5mWCExxscfY8iWthl`B?`U%=J6)Wl;DF^i< znt4_xM37eFNi`wZ!d3=CjfqS}P)!BWi6$FTJ2xNXv6Qn7!5M2qcdiz2LB690&iG%H zXHE`}#y+@@qkE6S{p#gH#niki$YXwC&q)zGXUdydddY5m+indgM6ru}TgL_OjU@Z8gHCfFvS(ZtFlhdSE4Ne*n zoh(rLf?9pnLVZ>-x26>DWBU0OLyZ~Y2yu`&g48zD!pv~$&g5F;Bs1?+h)YCI(C}`- zeb@+~?>%7D9bP&&ymWTxTXem0hk!!cdz93+C34@2$eSoMxnQ&Yt}*dWAni%v0#Cd9 zOqa;&9Hxsnr!fjVi1z!-$0?mQD3m94-(z*&9TW=Iy$L?(v?YqUrsrI#VaFMna$QI{hWk}^t+va} zb=FPvS+1qK%vaP8-?NK$$sNyWr=gx4Z%)JK+#BGW;O*vwS2;rEHp-=`dO4GYYZvb( zi+9TPl<_vx#_QgvRA4#xSMCfVv5wH);WjP?Oe&Iz0hjpHL5HNQUG#P_adWtBm|Pp> zHWrXHj%6l{S&Y|DuGc?c#G24*^0uU^N;UuQxxuFvJ;pfdMSGV27()WW87g`Tkt>$= zXz%7=XDmjl#hLP;Ofgs8mp|o8d5V~;MwEW0zx?hPK!7F+JJGvQ2r>Ik_hsXWmzsm2J}k$?%> z9a{Bsao`x`V-lBN#@$e=%RJQ=YbuE`xD}F#nKjgym|#pBBUfN9B0J^g+#yawo&yOF zofZ~X0|t%+Yt7m_(y{Z0VfiX+?RlUiK9~SnPgv{ zYZC#Yc)21>9II3=s)caedI#TI_ca`Z2om12E#77t!;P|lrAd3Xsm5UG`UloM{&Bg- zyC1*53`aiP-kC>EBP>eo^zK&;(ch*K(Hs2v?i>7j>TZO~hY&db*InY``#occs;L+SRN37)+Gz z%gvq9mMJf57oy0mZq^;c6S4^F+Suo>meSSx8 zpT`{jw_`<1M`l|{ytq*88{^n6U*f9ewglsWF_4sHzuSS!8;fAlsXf=EN2nRJ^N{KK zCATi9CBI~pwN)#abZk=EL=sd3N`y%Akh*(L9+iqqtgj)G6hI+4*Z74@TNW4vcU?AY zzMafb(8TyY$@n%izRJW2<9lq%)#uF#zg+G5rR=c`?yw&B4T+jOR!S(^BeLa+P?7GJI7W|=GwWl$F=iwuARO(2lm+PYi9=&E94`sdZoxzfReT7P1fds zQHnLfWEV;490!IDlA72uM3qNdvt8&4ZV^wyQgPC5C<3RqJ5gWscKAjj-nM*%zbm$U z7`7@zR$#NNK`>}MowYto7<>W^pYxje96zArgCMRQ&0Uj?4o?o9+_+4+YBY1-s*>wN zSqQINMJ;CO>#mfOO9zWj+A^GPz3EC};jf%e7Bjz7KLF#;x_NRbsZ(fMi+PI&OzmyC zc=m?B1zZ4L=Njj6zrH{ll=T|HLGIVMs%86HTGzbs=X-e#AHE@T{MHhLqB9Xrq7PDDI!bLKg{zO)*{I>6x z{xtiyeZTY<+rRDmWo8ALGo^&gjq=zmk6L*&$b$<(d1eO>XXSR`!}#l(eUDOiN@wY} z)O~kCm)tKkeHI?j;->ii;*fT;OjOe?{}Xs7a#!l^RjuEWK5*A-=HS{>ayLq)=a_w_ zeu@6>nIk>c8`F6s*OsX_a&L*=`EKOmGWAAoF3~&Rja*%(-pJj>y7LJX+^C@7M&>_T zfI!{)V9EbKDQK~56VS9gX993gb|A?l9rSSN+dFJB@XJ9tl^k$=UP>WvD!Yibggm|$>we#xGOFDR+(o0V9 z>eNd*d0o&;E*Rqm>DT+WC9fNj){$y4<3~p-wiK# zay)_Z1bEM=RIjJ(TC5^AYrX{AvH+SF82Szu#Pbb{_&k==eQ_x#%63sOaxD>*X?Txg zT|dz4RM$^je5ebR780j8oe-4exW8-@ve~y{5kasOZibqFlKcRZz*X==E*%)bFweyL zq`i~$`d~=(sfB>7dI4A-J2RsPpx z!7UF4k+#L9ykGKs>pjBW1gC=d(YN&`Ax~iy_`!H^l?>okIv#?JdRd;zF;EY-4k1r! zZk2ox)XZ||ZurJYIU^0_*4Cl+rhS2={!?&uH+i<{MGPuuV2)q8dj@4 zSEpLu$*!c2+hUe5c;FtmiG)EhoAsqSGGx*F(SCG~6PL6OJ^o3RqtM09-8+}k?*fC? zyzdJtgXQN5zl7D0@=nSBQMhSS1UFTvryOtScR`k`TD4J0aWWPFeyi-~e+QDqkjPfq zxAmlK`0T-L@_x`_kkCnm`ZVe9H-0Mp&VqWo+l*g_zcSAJb?VF)K_V81qRF?5FVjh* zpg+TzN;%7EZ?1^b%U%-hwZ$0OB4%-5j0jhRdt0>NgFR07Mt|8$=~|6ZS0MPj0$uq2`}MLd426F?rsh6y=q+%d^xa_47o&GuqCBv#V0akr;p^#it=2;Cie56^1{+Ne z7{K%bEQTjmyO?TtUDjNJHW%&DswY~DJc_f+jB;_X&}Qpip;eC|llDqB0xRqSO;D<> zO`-qs%X0U_MQ0~~@e{w^%ywn4n`>)sIKgJ+J&X@D_Ufx}vsV_6UJQHn<-$uw;=tOa z#WUt6EPV(qVQm-_d~BysQv9a~iXI|63jM+dV?)YrZQ|~vz2YB5_Efc}94z^+y`$X3 zNw!FBiC@_eL%RD{vL|DeEQA8n5bmO7}YKu7p>oWO}+LIdfaqB5v zCC_r%o6BkKxsy0rmEHCOJ^l%EnjHSAxh*9%tpg~xZlY-a%DqzV`NqVtxJxW(NiBF{ z=^Ug53hMf?RYF&J3U7nrd_(zJ%8-kz^0Oq@*vWEdwfrpMT2zOc(5Zk_Tnw$4DR)y}xeH!x=-EH!c0)*SZjpT$O}JR}OEnR`Y;Kgd=X9pF~L;L)WjA??6&FrJjL zh6Rr7-P&IfG-n}q(x5$mkP}P@wEy-oqX+MG|8&@x7-2a`zUE`}|+ zf-R+aESfV7{?5-|#o!bIr$HrnngoW=Ffm@<(1P`*>n6T5-2>p^7VI%@fwR~!Ls2{_ zcRk)5%7ioMct6jF|Gxd=KUp69=sg5%*uxMMj#T>nu;|Ez@1GF9KW$cMy(%iGe0AA&rUA% z;!L=$Z=I8qnTp(&%usH7I%q;hU8YN-^?|r?qIt@RWaxLh)K|9M)9PKmU2QM)(l_(B zCs^ynw)c$=hAfi@a6CLpY=a3&qDrLB*%47dnkd?bKXn%3(KnR(ZD|CuL|WA^8%xV~Z0tzmtHIqhrusDNMBdiXmW7ls-|FHeE_n7%QiP z;H?v(y*2xn&E+C(X&pk>x74VDxbVT^Budm+p2XA&j?Y`n_zf~kxC^Dm-Ge#O#D{W+ zf7?uy?2UOIBkxX@qg3t4za{ihA62#VLIy&Aa6zLfcfbT&7}cR9+};yzPcLO(Dd^s9f85h2Fkd0ENe(7%4>ke~i#2{EO8 zLX{-SE-RNrv3V^tz65{y@)+L`bK-IUCH%m${LqgTV2P~O65GBPtHzk+F)OZNqV==+ z;rnNYADA0{V0LKir)rwX`mea-6rqxIk2*rzMq75-+ODkYM~|@U6)$xHL+U4&Q+Acm zpdA*JpjmCX3AIv@j{TbT5#3)QgsT0uq&Vrgwsw@D(znhA35Fu@{7!ZpXNJdkD9#X9 z>>bAM)y{`=^mgNB4!jjNnC_Zv^9{B63R=ee;1gBo)-z^>9Hj~X)c#hd_P2WWw{HXG zDcedhyYe=>H}ePCKlJ&vYWl2wUY7jqnZ}aYtaCV@c{}y@l3*&di0Ojd^GTiB+LfUH zx~~aBW$@!z<#qWTFlWbcnvlx2 zdY!&@s$Ra?0sRx7#=csF)U07x)1S@1Rm2wT!7|vJz3eybYVk2%+S(dYA*=Wr)^j3a zNJEt6sWUG8q8gYhFQ^??4twLPV^bJ<@T$nz=)Q)+S@t(h>l=ngaHQvRL&Bo_xqNL* zPD`CU-nz`1BHw3B&N52IDUlty{+g4VVD!nm7%grrU%?Oj4`IG>o!HXkn!*-nPKc9D zBh>Q0t&!uJ=8uk?@}6$Fhd1tb8~yt$hAn zXC5nH#V99S0glCg>noE1370bh#DB&t^~n{&{mM>YKlo?4M?Rl7#sL8CG4z3I>f(SO zED*?Uw%_vIj*TcdPew)>zNr~q{R3#d+L|QhhoJ{h9Iz2{55wkKpnXbj^ z6nE-p&Kz)NTBF#JKOOYRasu7Cx6?rG>G^u+6h<*~lrwXvP;{}etz#0YV^%)HN6U67 zuggZJjNnLP${3u0f6V~Sk^yYD2e6&~h+?vNCxeFV6mTgR5pkd!s9;#DTsA3K4H*j+ z8d4m=LAw2q7W&&c=@5@RC7XgGegf{M?^M3%-ir~3n9%o0VRm(Ir@yQdPqhYt&VIfj zhW8YBLtNYC{<2dsrMO1#WUFITJN-N2d-?a6V0aViyiHO=o%gW3=wyE*4MAZ({})gn zC{+G)?viWeF{(1YuL{ZQ1DI92?sbu(XjKAB-aSOVja{xVTuOEo z95O8(V5NU4=M|Ptpkx&6z}Zl0VgC5pB1>5{RZ7j>U+0yXhx#mT&Ko3X3!~O~-;iJ2 zN(>*)kW1q*6b!WM!;PY$w6l-ltJjm!s{<#p^5N_dNUgr{?Df^94F+);T#pF?6*JuAi2LlT*Ap z(^&s}*+^%QU8~7N24!g<@%TckG7&$Sp<1?0`HQhzHbATXDVZ6HE0#WBO_9igRz4Uv z%bSs}GHKO0#4zE^m{yZcp%3;6eiGNe4x4d(nK9z}1)JmgHw2rpD`!p}f69OMQ|*z# z^3lQmb^fwFEaV+pmDsZ~Gdff1v{nB}(5mb+#)tb0_Ric|P08hUV>1R)7IYlsYaY^w z_eea#Bex8q?WkTO)%OP5?wO-n1&5J!S#G(f)Db$b52z}>O3pG1#OjPY$4b`t_Q}!V}{#z+WEZO`A0a=bnO6)cvYveW+=1;$6R_MYO zDLGNHBh$NuT&)GN-{U-Vj@v9b)p`TkNCNGEP#*={{OF5xM$OWGGBfW$N$Gz8#(=v7 zL5F5@(kazMBoQCET$O{rP4=igF{Q4QcODq7Z^JD}10)A!_!amDpj+24>i)9>mR`wk zHO^H}5Mu#JJ)z$1W*=u%X!?IVZZ{nhsZs)yQaY4tY%0h@^?G733!MsCrn*Xn*~PW0 zTnQo($#ryxo`WMDH$9GMcW}|vb4Y2|bK>Bg~zgc83mhIDI5W+PQQsJ+A5 zLL1Rdc8`_CJ`EHuYCBlB&jx${w6}fR>MeHH>#C(r`C5NkxKf4}QzWI*jIGOfqIAep zmY(U|0>MWNt`@jMn*{x~Y)NNr7j{ME4(U!0`pw_gzqE1xnEpuz{+|BT3ts=<(7)mv z{xSU%6yfjbUkKp(@919z#-INY@JVz3uKvm5`S0l8#^irY{{+$ad**MHoML}Fd^S@& zMzt^AUut1g|0CuPWM;T@@Dxe^h7GQ3!mkbTGSj@5B4;T?nY z*Ej4zBc;r57=w%H9oBvX_MjJl`zmC@HV!SAc~QOT?cg2-ey))7Cy;p*QstC)L)j&V7Qm-9X&QhNB~lgDruoW=d4iH8mWVu zIM?ZV)GKnI;AWS^`!RCPDh!n_ROy0}l-?CO{Q_Gu%5YlMaOPghQdQ!4&E2N*fvzNn ze-OSuKK$}rS`b$42#pw{62%CSFCNrkR_KpbcCnP_i#71VMqJ8^pq*TAV?w{CQC2m| z9w`^#N5&wjCCJYsV+r)E_~+{)72kDn#s3SdjPy=bJh^9+W^mZ*J85U=jyx-i5@(Y> zOXTP5C{SUez3cjw%G9g5pIRfwAdjH=louWws==%m^|h|zfLCZ#>vBO9!0poFEvtZc z^IJ@_zD~CM?0wKfBXILat}YA? z%Qex+9cdIK8a~8d5XyN;A7Q|0{t=Wl{d(?P`XK*~xoQfeyS>K8ws)B;_AYmo&SP@E zdCI+N%FF7l3C}mZ4gBq4-*^d@jhb*Deyb2y5z~}hcOHH`lwaPh`(Xw z|5XeXmX=3c4_l6heT$jpg+c=;484z%HXXG+zeUU#TG)Da99bfk{-Vxl6RgOg)@!8o zN|cv>=O`&yHqOG(W!8$dWv0c-<=2i666;E5x{B{DRq3+VVgR>m3*xaNKuNxP7`Xoy zoZnm`24Kx)9&501^O&|cWh*+u?73(@d*REgq{&w6S4xm( zW(sh}Sk#faOluS~tx?R3S4o*3>t&5%rZtM0)+lBsN}3We?l2$rm`hz|rrk_Hv!ifE z=zo1?Lqq9zl@BOrQKgVAOG_sD; z67=56<6@9z(6e(^{0u>+X^36B;r@u+Vwb4Gb@|IYmuVSITE;nHW5;V)&pM8%!McCt zpqBZ?I! zw}kq%C|zKuaPf_K*ernCDqe&j8fIrnw_RATAv|6!RA_s*3op<; z30oTHMg%_{?%*ApQdnG;DpZGy;_t+uBc3F)=SpYlva_t$c)Dv@QD_?s3sp8Ra5^1Y&*8?lmJLZ9bmYvwPdqDxH7Ny9~ zhcZVorI*P`jJ2{er`!52+KDbG0=tz*B@T%p?fDMm;bSUd$St0o4{Fcj6JAANw&Z9G zcWnGTw|RPJjjQ~a&tv)@z#es-Ym!!dFHNyF{fPXb-F_jPt|-Pb1Z4eQ`yF!Yw=aoU#!q%aI%O+;#`Ch!ldE*Yz)0lbC zDXPOOuB8<={T>cd*f$icXh!()+y6uD`OYHuG~XxPdtI;gTK!>Bsq$_!aucd|t+-Bb z44?An0DmUzOQgsdh2dWep+Mm&!gBDrokj7Je9e(!dyLO42=10Y_<6?KDXaP9&F=iryI9+(!gVVAB7M@=zOBMbWi73JSA~y35ZBi>T4DBCeeFRj zjI_4C_K*tSf!#`d?GeK4OCxQ=gvv+!m7!ICj>XK|NI@CGSISu$8h4M27U`>`ee`GE zZ9)wKz9QoRiWx5}`e{Cav4F?LL(uf_DD+qmCvN71N#@j{2(@)M>SQ>(@d4yB1Ugp~ z;4cjZZLUWpcc*JLPNlk0I(kuUWrdKI3sKf-2!48HfIv-QIPwE19%6@wU_29H=t(}L zu7^7CmQyEUD(4*LE#dNYpyvuqddVMDwu^X{!XmV_UJR6}*_|zTBfg^9=HMD26ufxj z4$O!0eqz7%-qd2fD^6MOzOeGv|5u`95ZyFdnd&_8r37=Uw>rkhm|X za^aB^+LA+`oRkL=<%dG@^93w;9we|&;`d4XK8fE){N0Uwi(RR&`|g;0S4YNL`L0&J ztCjC+JfAj}7j0Ug zEkfA69GazsYZ31+_7PUyqqI|B+BuheCWY*h zn$4kBA+1DwCWVkky1Y1d6AxlfNu`paTDoMfe6(Si^%41)20r4iWIy0g(kL+DeS)!I zNX3%bUB`(1lO!GFafr4aBJ*7|?XGr8dag-L(PGrt4|%sRj;CcDef5lE2Zis9jH66x z16|_%#UaAK71V^r$$;&lK-IWY_Apv)qKtC0Qx!j7AnTq04~FHGw7OHi*+ySZDN=wG zK+NqlPfgo#veKkQyuWB6TtIJ5G2hm_y~B5lH`oKGlqKX_psM`oIMuBAfQcHwQ}ulF zq0}YQd`gjLB6ZR9#ZOxhD;Cxcu{O2)8m0TPZriAF$=lNX)6D1xY{|B0Udofa#dJVcge-)`8|-0awJ7j7 zWmF4)cg4|;z#nTrbH)8h ztN9ZWgMmL*e5BQW=!$C%{GsBbj@pnbE(At~cmuM#NJ?ThE!Y~*S2z}q+ba^jtY>=A^K;ZY0KiD|g7L@^$zS2fiRS+S+|`To%AJ zg5Kc&(8+0IE(;@>^p-F+Y!V-Mb@zFQ{?Hile$rn0eX(IFykbPXZwMs({^}#yDaX=W>@mP5P{4 zCqLX*Z>No%t0^7&5#MfSuG?9VpfoztIn-0p7D0ES#j@Ph*5`F;J#?7!@&=_=2*Zzi z@Q;x9v-;m8$F3J97edhVjW>IYG;7p%R=ySZBNTd{F{Qgeu@RT{k$P;K6wHQe(&*w>cF_3!i7{x49Bv z!f2;c{H+cpKINn^Fju}IJ%JL}vdQ5~Ml)*wf48tjMC^ALv%cr^S8_a##|bfE(x1QS zp0_}|z^u4ol$Q2@Pd<0w#AD`7moCIDMnh)4%KE%_>P-~Q2kuMOI`!2=^~G3!ohPN! z_X{Sfu5`hAd~6jRPCAbvmeMOkKMDEyo8Xx1u2&~!`%d`J19F~{o4etoJDsV&$st*@ zUKNz76O;t zCSCZKM-^S7xGJ{*MCOEk&a$`^>^zitmLlbhXsHtpB=UdWX22{Jae$R=(w!Pkyn92m z?jC8kASuP{+{O3QFVOBkjkY6l7TxwjCp;=9NFMd@yz@~eb@9wc$J(2)+GbTunzel% zl5M$D?|F4 zrfK!K7XssMNIa39<~!vNI|KOU_LNNR1#d3|TsI_cTV48sD^Pj^Vi#F2#09c$h)vv? z$VD{k1vfvOi92QQITJYHd#7z+&;34dK=z`dgl^yqoY1Pj1NgPY)?muJqAM&i6cJiv z)IJ`oT%>&0{$8dTG#_dtTAA!1Nkj;B1D#XhRhZ){Qx4pJnK>>NXYVWB#Hg#mJa%A& zFwKY2QNidBTd~-g&0??}{7qs&OBxuOlD&vfu#GK#{8h|5GE|IP)HZ)Czd7=wR{tlv z-c)-AEcJf}XppcGZCCl)FJGH;Ul?naUhkIW)IEOGHig+-Jfm6F#zRdBfE6t_@02x1 zcY$lj--<#3m?@}cE(Qc>;@5rz&MZ?N{b-1oncayIqYj_JO%1)>Go{Ov9w&BOy8OqS z&=5NIEm$Z1Y}ReBVqpKCR9 z{-T^e%sHz(KZq*`u6A=AIDOdWQl14a_}-6P;*`IoqU}8hCXxLmA-NU_$s^i-K5{vz73)XUNNA>a$D4@w-Q%b*0Si{pFjl>21sRDXyQ-q^=Z|=Q9s)6E&a*eTJ_`n zz!AJwWfDLzz13a$VF$rr$c1W8|9V#oX5Di;9=K15O@o9u*Hr$9`okXvTL<$Y!fvyb zHP)d}tYcz^D$#A97djG-YnuCVgY4|9J+>W(&Msv?KlGXG!(IKBBVc2Rd0(|fWaXlr z1$g@)$%YWbA(0NULpn5xKM~g5!CxzX3AAL`-|#2-{?@$TRNnvF?|YWpvn&bs z02kR0deUE3H7*nS%kS>*7n9mgtNNK7Pw#z?ZD7^U3F@ovSjR$K^&6Lj?^5AL750h<_yHCEjgVkgJ*>iwDqOC@PB<<4D!&TPP~k_c{3>jy@L(wC z`l@v*>{sERtMD-u{)Gx>3R!2>zpHSg3jbP#eUS#a9IVdQT65Kl z#Bxlrb=+QWuJT_IiNC{&XEV56{y0O*AAiv*2gyXf;M+T(;&*?WiMbam{^wTdy}sS9 zzCFpe`l?11K6a&q532BtZ%4j;5hg%)ncI<~w(GLudzE=ieY^CZq@0r~Jb1W-Uv zRrtIL|0Xd~j(Q%mTz0CWJtEJ4rDtuCfuT)|GH4^`A6&`%8ghvoI z`dv&|`y+Dry$NfF=30a`0X&}PYW{Yxn76`w8@G2~}(0bal+zJe2H#UwWI z`OHkoQIGucSl7dnV-lz(x>-eoLCps-C}|;DE?iyAwHPDs`jj^(e%Emh`!4QoD?lrj zbaCph;L5k8i%al|E_1?=q!R>An{x*`{X3mW?<~;HHS)(*yWF>l0F<3_b>HJA*#%Cf z$Y19;^2)tUrfWnng#9!30^MP{t|z=ePftve!*hW?CoM^gHZ0KZE2g?esh81T(kS)r zw42(m|sz*{9 zg2d*;G~}gQfy1vP7RQuc<*zHQ++GEU^(r-?&DqURsUWo*-WA9?w6`9NTXgW@JW#B2 z9>+QDt@~mZy`z4f^*D}Wn-3pr;^o>*7!c$xoQouQf5+R4-dVGnFV3Qw+fjKwhUHkI z1<#MDJfhogt#?eI`D&L~86#tF6Sp#{_ z(FN_nbF2icZwA8=#{m~Dw?Ze1vSd$$!C}S^Q(t`3(kx_czx(ivGKdDrOg zk1puAbUqeK-nFBP+ArPtYvqza&a}U!jjW$M(Ifq^;sT=suffS>^dY~vUyhIc8#IY0H_74z2#tdAX|SfkPVR5U-CUjvYl0gHYif?#(? zKIz2|BePV23r`=iJqi5O&%x02#s3tav7zzm8>pSVVy{uLwg=dr^;`ZzrMx2aXNDSO zQl4tdtil;Tjid3Qk3ss-5K@s88;yTQ#oJ}};y1!brZBfTL7AR{3L|agKorhvWH@3t z29XgmC%p1CiO0b5B+;!Bdwo~0lB`;z`Dr%q}iZ8WI`k zNa6!lqJO7MnM%};OGE8%XMb&dMT#V9^^d`GoRv<{&II~r%|oJ9tg}ptwL0IO=J&X@l{AGMG)ey&_76e z2bB|8tmf4I=)trb6%Q=}M;=eY0gO~~8OK=<^lVv(uAz|ehl?y=P5iK=y(~5rXdo7q z99KWIv7xP%4^%Wh6cF8^YJe}(f8OJJE3#6)0?!fs@<{znM&Q$h)ZZT+Eo1!&2@Vjw zz4fQT(_DQW1TK<$yvyW;|rDc&_c z5DQ&(iqDK(%X`89xX69L9?v~SV3^&X24np-b|>~5>%U_Mn~aL#c7MQCWqF$}OGDjT zugv;~OxM4mscX8F-E!A0C_1Vz79ggh0h3&->K7`1O+5A>n34&+Xz(~*%`hPxXcf_i zT&8J4N)pE469$n36G z>)3x71oRbwnEbGVQP26%feoPi5h{FCg>P2jV=8L6vFS?(p^)QG18TI0y$ihZA#K%3a?SQt|iyaPTXNgrZkl! z9eac-kfCy9lH)eX;dTT-E^<3mVE$@%zd+vYDo6BSkI?_6KM1I*A%Z8D&oC|d&~#5{ z--r#i#s+dvF=9u}_!4vGpjiCN1`7T{u4Cr7Jag{#vDgX=6rJW1tP*#B!kRp#gEO3B z;M6lsJ&XM~S%)jvi(YGur`3Rb8nA?|XxRwryjj(GrPPTX(?$DaDo}R3jiJ;%X8a1f zJ<&9Y&rdYtrVKHV@^B_LE*^(Z_x;#_;;D^w6c^yS#o!2pRego;nW>!h8qlxT+^t3?w zeA873A=}LA8>^xc1L^63^xGv9XrQA(A{~MBs{`p7f%H4bjQcb03t6#Nc9O0Mq-Ux^ zTB3ze^tGm|M2G>AjNDM-?Io4fy`JRQr61@P($4fFY*x~Ey5!hP#Pku260e(Kg3{v; z2?D0T!hOdu?;{O$m{}vpsv1XlunK1e(qql6>s8oEV^#M`Vu3)_!(zJ=G}rD#nweD? z>*!Re^8@LLrt2Xy%V~A+cKU9*ZtK~VJLt3Nn!$z_E#X>3&M%gyg1;SI<;!UO?4tst zbjEZ)XimM%n)mz`)ye#iSb!vd46uEIJ?#MK!fkL(A`qXGDDE2EOOfqlw(Mn)lNQLi zI*=1RqePqGi#}?duB5=p-3|BJ(%tdD^ zota`=F=4UVlL$%xi*ZSG_?ZhJ+@7amH5W7Vt|*`}TTBIj)(w$N7_g^$7=dZPvllGV zMGF?$jC-#yZjiuZiP#JSuVI;G0F%IDU)9Bun=vJTLiBCeBE<)HGyHU3ABysP&8z605)K=n&YtWxufl18+1Hp89sq4oJM3(S zIj+#0n{55KIxw4ix;b;Q+K%(n1Nqk~Xv?&ZtDNGmtdCiRBGZsD;#CoOf3sQmt=;!E zcH3r$V3F6$6RcmWS$@3(9fNKFz$QCo<3%a;c1rCp5U>7)EBj zjfg~!(Q`)WIU_+(1l5SdPStaA^qee^Jz1NP*t_+dg?i4NAPdBn+p)^cgs$dB56IT0 z2P$}KHGyCAie!3LCCD`CfoIfnBTq8D#Ve9&k4lgk(*rxyvz8~Bj_`_PYF7y|d3vBl zJ)3!wDamEEapk3a$b>4Yg9r&J*(8Sf+v}N%`1}WS(UI!J)cp}jXcTp z7OzOAJu0DIJ$I;QEl)BX;T6f$t`b7(*`l7!JVg{tCQ0E#LeG-JCxiWX@(4$e(9Mo| z!ndh#xrA5CEXvQ7GE*u>W<$luh^v?pl&oTImVkV9TO_7D67%aw%v+I|BLvK;j=11i zS7eAI&s6wx z75*Ypy%w!Lx?h8jTjQgcT%ph4=&A*$+ylzCwjKG`@D&sGTmoO_leSdj`TV@232gNTzh{XR8iaWM>9Vz zzMp+%KmE#1`qe%3tGnk{_f1)bU%OX6qY^gqly%Q5vZQyYgjy>>03(vnq7s^U_FCU| zdx1~uj(@X)z1tM*mG^=@RZUNL>wWS6AA&cleX@Q&RBf_o5XX9~laEwbEsXq6E}}>L zcQq?Q-=jU~byo1NE=E1mMp~~#>y>4_(yZ5=)~i^(Dr7dTP(?H(6KTb5jD}w7%p1x~Tjl>p969 zrk?x1%2^BCiqnnd$77>e&tIZc7)#5KJEK`ITq5fQ$%?gMyRBbdA}cP#mLKmE&DwQ| ztPq2jAMYE@8ooqUj<@B<`$e)2`{ta(vK`w*nz{PdNN-)d-za{{T)p5KwM))6Dh^H; zd611ls_xLtJ{?9ui~!xsf3ZGXFW+jpsw zVHXEYSF+rRrPvlJmTT;@!qvcnX4@4J`t9^0-0pGPDxX3N;M@4Zz${%_|IIQj~&b+6i z#lKfxhmAnNG{FVLN_L>g4mKEp`F3!JQ87n?EQ9@-Kil>tngR>fgFNYHDNAul-w25> zdB{AX2Q01`#N1;|{CLH^agB!#CCnVO25X5G-e<~*6$4k_h-~rd`0;HcmA_-fi@FKB z_N#ByYMA_H#LJVoP>&m%>KnQuU#r;(2~<2mwwvSbhd(0hs|H~im@|`MA|xv&0v@j3 zbmKHtc>FLJhKOen2rJ_C_i(^X>8`$keytm2PQ^nP#1crhA$|8~OkDdYEq;h&oA#z_ zh#6mNmfmu6u&bZL*PbNKMXtCxc&?vABqHR*F{TIu3wx|gH=h90Hz(Ce-jpLNTxeL&)!)^HeTdgm z3QTEIkrPMbRGX|Cqk$Q?5~k7mimCMa3g+^9tp=7Gtg=9`&qOPr(rNm9^^GuAZ`4 z>nmH-vspdeOsT#yPCZ@fDd&>Da*TS8QqPg)~aW_dWO`qMLnB&g57?t{(y>)$cVF^ zzxunUy!hJRO=bnW`9KcOeksAyW#-zYXw4%&95mNnOC^NR)kL6r?avu9iPv@p)3u~k zC+CYY|BLQO=B05xGcR@Z%Iv&dY3W~4=Nd^VF-l9nPiX9Cu}UXj+Msr#D83H=P8b&0 z#EDzozq+s6^N81Z5Ug;R38i&fuF=y$OJ>`vK-8Z4DF)`)5?=MPCV=QVK zrKoAZtylMx*vVf8^1h6n+!e^{ik%z|YCgyD$uQ{7Eu6BIul-C7f#4gj(F{pJ|*Z?pqyu` z=OAN5co2Vc5QV;gu<-@FAt57OPF(pM&#Q@)As!b>rL3Zkq_>4+zkI-05jiRyIF_Dp z4IIn*r3i7Sy;%7_E|k!`=17SYHJzC9Iq0-57FXMgHU0`EFuZ3TBFYhPgutKX52pF? z!~I{hAAhxPYgK~R;W*?2)PR#ff;v#-vs^-)`G6+Dkr(c55B`A?VRT;=>mC+xkI2kM zA9SgVwAlWj2nx{aFfe-v=i8+?@^!C|74^^Svs2Dk^R2C1OU@+tY}bQry0Lfb>|K8B ztzQP_d>MOdS71(8?5*LzoN(;0z*QnZWY2$FK8;eKGcl>joI1iPMh>$$vvfFIgWZBw2%07|%u`N%gtUl333dWSvGU;W53|4OY z>VLuVbqKMFjzC+WRX@;{(2b7>3;(+8i69vn92Sy?6D0tH;!si}Ax9$~Zfb^n!z~uJ zm7_5*0)zr5Lp${b-wSQUtSYb!du)ShY(I3C4vw6Mu?g1)5^faD+{k)jY;R;eU2m_a zzc!wc6a6dlOyGke_=K?S>VB{oGhifl_|L^^YnHQg&|pmyXR#grv*vUDixr{_;extx#5s=w^2! zHQ(6?f(+zJN_pX+w-Wgtn`%q--Qt^%$^KC?(q-oI)a0J*4oE}tdQ*{CKi&Xct=L^5G&z^YU-$%463RtsxpTdnW^qyW~t>4sLdLb{miHt%yH zRW_*$cSk6`4ny%ZG9RcpU+K6m;mSaQ2lsr(ag$M!3w{p*o;wt4@8Dfmx_Y)(;Ptv& zFWB&Uoy?Yk*Xv{j2)tg$BIp7C?;?!PEZoe_CO-7)&ot>cL{1l(DukBI{3DDmcn=`t zKZ=c|kQwj5rlXmU+VdM`T9@34)465tH`86X6HrFvY%}RhD!7d(FSqnq@8UfgUDOk7 zuSi6V(^li3yJ!n+^y^$V1Y85maRdBiNKvi%6=1=#FY8E@oAAm${8Z+mtIo@aVX^pm zSx;CpayWB`3dSc+qm`TJp92wsrk4&trg*1_M5#k8wnWh}EjrggI-`e1qO{j|2qAj5 z$3v-AOXpu~r!5_(Gmf>blv;HXpb)^3@E%@jf<_I7NO_0 z`CLDev)A5huf1NL^}IjNB0~DV!`HA{76Yk2Hw7p*wRS$V{B|^N5gpC>;(r65Rn#)1 ze5>tmUYayY05WBiAY|Go!NTpMGGS!OMFNs(7wO5QQ38`GqXZ`fqpWHsq)fR;pi*#= zViy}4s(%ElT)Z>9;M;sWkk?CJDB6j@SJXoIJ>2M=i(yU^R~Fh4jgzGN%=zr6CVjRq zmh+iwue(M$ulIw>_EeF~ze~M#>0HwIg=oi7?|o{@sN=CI7lGoYj7m~?j{;CLWmF%9 zBn1E`Zxq*ku{`=_Xb!gZSJ(8Fw2Uv!ck!!rt0(xvR3Wr5uK(ZjiKuQfhfgN59Z$u`TWtp=^`9NgZ02n?O|K;FnUA&^P_oB$>+s*7}gmf z@8HtrL>?Di)~{zLm8MGV?eZbst9*tO3}DgF(dy?onGpoC)ey)wle+_LOvd~<{879ApKZ1?SqLA6aMtrT zfEdR@{9pdz^!x*a;NKsAT!j25d3(@waS`iq!oM>vNr;x*^ZXhE?Wj>KlW z-$nD>?+>T0Q#TA94efO4*&5(;fje|{KO&<{LK0RS3!`bpSvmQrxFTs zOhuO}B~c3hlr8c|=XTB`Ip@U77JD_1e=6s5v7B=qlQ9L+7l>brk2YNg@bf`D;rUG< zLr!P_7bzj9VkH^VMx8{616W>2=S6Ji@T;;PCJF{8uDk$qL*iV3fCQ3gUDAwyQ7=N2pcIOPQB8KSk@NMP&WQZ zTH3f_tk?0SHQ8wo#;ic-m#GiX>c4sw9<^ zVXl=*ouqJz?4aUiDn_1j6?c=LD@hRY?qgJ<3!SYzQ?io?gSVQg8XeSF$?O-LLp25( zsbNeJa+0|((*=DkqKVp_q%Kq0$&^NQLmAd)zpdF*nl()_zrD((GJ_sfQccsQ;od=6 zA<9ZvR=JjILY0*jMTw|pg83~W7T=l4_hxPb{|lYw7x#wig+Gg-k0n2W3$Ol2XLSJo zfLFZa`zRF?Ir$jDV7u*N#W)gcC?8@RZa)XpK@;K9;pKCNh|?P%I>_btzM_N9h~l-L zXu4saEFU?nXhUq|(24PqWg!lHBlmP^LFkou*`kSkC40t~;ZplJ`B`wOuU#$lZQS7i z`YGgNw!h?IX~F1OcEdtb39ig#K zE+T+W)nOF`Y|MTu(dSx`B+=!{64=U$DIr;sEvFUgWQmo}rt>vc=w6ZOOBL(9ipZoM zm#+p@$;R*k2_lw|WOCn;RUt1q=L%^^Mm|qAQ*XN+6QhKueIzW!s8*I=`=%~yU*}KX z@OQnD&wI(bS3<={=TwuyhUl0n&ms)|Lc$>brS$vpTd^Z|d)n9qt~PU}jFm2Vp52~maC4IrxCETqH^KU|~FD2d{1OYXO#!J3L!y9tW1q=0{VU_r1i`i;H%p;YF6V3q67k^1WS+Z?lAuu>Ij@4uzj7>uBsf zE3^^~W$4xLODhq;@pV3nqou2x98hxJl=AbEUw0R#rr|5Sk4nw9Hs?m~Q1!C9)ei*w z-}GTYd>asdLr%OZ_qVz1hAo}(FXh)A8%CgC_*>^{(J`l$wOhU$V*<7)_{H0~r47j! zoPi3|+gRM=L5mB$WH_;%Hu_3C`Z$q@gwV#{Dh=^+ZM2d-;~L=f5ooGEM)Itqq3TKd z9^-*+m-P7Ij>5|?p8%YCU6=Ba()LFt)rP!HFf*|bUw#LrgY}0N=9E<|sxRrN=KLyN z8mG*1-oZg^;{sY8J&1>f^TJrs}6T1}n5)Tt{{Ogklbv zDrV(~sq5tU++1Q>6~0L@=9g~iTQnbYR&YdCKYiQPZntQj$dWy*4tw0gKOpswlJ}ug zC+wYmE~tHnTM8VCe}iM@yZYL6K2jK7&TC;ziCg=S+P(FtcUX~qI?Fo#g&Z6GmbS$0 z!#KNQOQ%=9Rm@vS`*;Gb$_v5^i)k`(J^HO!wX#VtJm&Q{Jj z1!WDn29ng2xbj7ofu(NtsvE!oFVwGFQ}Xtp3OhxC*AqE)4^~=mUmOehxFd1AFUt2Q zy2R*L`JP1H74c!Ql8)G2`vBWm$=lM1jX$lql)Iys*D-(L|dqQX6wL^cCaF zTdG#UZ4pm_&8=j0@v5qGJ3ov4uBM3_#jEbUEW6Dw!O7kH<(oKFIisn>$X^ny%c07p z?bp%!&z85z9;_{V^$HGtEZU)VIcMOae{n~9 zw$M_1YHC|e(6$PHYpIsDq|NJ+@4}!hZ_27&-s0`_iy#GcnvGRn;Bh+bJyh>2?fL=& zE;>M)@A}OTj`W(xZC*w+;-2b{lX<+RIaK|Hecz`&^EW7I-}eK%Ucg@f1_z>?@bc9_ zQRBxkZMVhq9`SZ1Zp-o5H7#2@Y-DOT`%F%Gc5PienTEtx;ma;bMq#SSuZ6QPk4e5TbQK*RQdI994s#y4WUg#@r z=_}piy_({`bac&w7mn*g+juEQvX-|YW`wFI?|X>Wu*cAyeUI9uKVO3}O!%YO6VHn? z;KWyRJZvBPw{%z+^!}W`4BD@+X<-VoUs|a7q5Aa$Kh)&tsV1kUtNKOum}ydL6;E8! z?!B9uoX=}=Dvh2O#B&o;L-y6~HO@gP*837U=wb@Jp$c?T&dZnUlBjN1QEl9jBPB0~ zI9C}h?Svd}4T;yOAKLy2y&P(CMJo*FU}*hj3Ta+|!;V7_cBQ z=h@tfML=Er!QMIvWuzVosOY#&G)#QR!CeO^1gXIPOg3T23aqR^$D$YWmg*B z3Ve8<6K}I7w{BI^>#2TH(dJ;Es~=Vu3TioxQ~+Se^JS1%8WW-g3$5DHS&T2fvW>fR|OJ4ozhHXDgT<2jGS!`>Eez2&X%OHUS} zvzzUKW=&@-4?&3=z&_Eue5-V{1kyai(T#a^%1 z?EP@jc9?TB7pyn<>gF$jDO-e*9?xAV12HoD>ipteK&!{$;|)>ldt1S9FT^>Hx0+z( zrwqfbCh|FP^>4@-lhT&|omS9%LlakiJMj&YfrhV7qORB+>h*Rs9vFPR z?2LbkqEX7Rc~l-09|05NZQ&?^SYd2-C^mI)UBi&;5!;y}4tkvevjm@%AIp!;4H1DA zzct5|rw)nD&52DvD}HOPe`9ED?y%VO-1x0|{*B?Wxo5|wpJO=!^NJ5v{VFg;XY%i^ z|KJ(1*7fQTtp3%tUQ=RnPVq*v6<)u?Th+YDg%RTtyrvPylvD0XKE zzqrPZ!q`NTP~~s}$45G^@fxu}j(7AkG(bg-LM&ixVovOvXT@$C+SpkbyKR``{)>-R ztv6QA-go^Y;ey}Ai?jjCkksZUZr}tk(M_{niui_q$8^MgF*mdx#fRN|!DP)rqTl6c9!`k%076 z5306|M5^nvp`Yos*b`N|%f`HqKOsuxIUj~_|TbYk# z8@9wYbqD^ESeC=}mAC-y6L*s#Z}x`=WuyGi@StRl0XzscP6rQv0W5I%gImZRy}&|# zr0(@$f``TfXVt#d#!Yg%)wPZ44;ANj-e*uT+t-g=~d;}Ol0PRF}bx#o>cca0m+BSp>t@b-WL${#Bvcv1o?!(;rgKk+m|37r7D8Tu{ z!1r}^V@aFys9ra{B~i+L+~2GuOMctE8HBLF0^b#VdmI$A!RF` zh$XgNcdvSJRPI$e% zk#%fHaZ}YF0Gxfl|F?P~4Wj2pXj=5H-2M0V!Fb)dmqJhX z=W#M)h@;wX)|u{q);WuA{3+Bskr(q0W#P-K)Srz~?Z7@+f3li@QhzOEjf|$Boue~5 z36Bx4JCD!Vx2)1gf364p2|fEC{QErrrt6A!(Ws}>u_juSB)rQ@PJ#Dy8mN$wTXMkX4FN&cjvCe!q*Xr zD4}_|6Ag`$iz>-z^vP?-%RTPPNB}&grFZ?7c#bdK6{-8LyZc~n9f5HtztMmBvb{UR zwamNUakbaEcYm3B_g;5}it$di^_~1im;W{Iat#HD{`6kEjy_rEe*fh=?sxf*-S1C- z$uE7$3&y?$kw?AdeZIP7cyRxhNbuZe>{qxXrvBL9CGBbdvEw!960d5^`K|@plmFld zD``B03G!ZQ%*^@)!Lu*BM6CW;hotWR(zWW3HTvW#e@t8K*Ny#kcWq;T*FAr72%xPw zJ>UH4+r5QX*!6cVg1#)g-rA}An65A7K72(#@5f8pocE(3()WHu{sUg+>(*x> zoRbW{fJOSnqvgdFRu}MFa9YSzsuI+vd^}ygS<(r0@=fv@_sXVsYTu0V-^ZIcFrabV zrcL{5_gc9*)Z`!Mm)3vLAOH0U$2oj_{ie5TU-MsXrVql`{&R9l_kZlhqi;_>4hMRQ z=NuH8bF$}{1Ka?n9*zY(7ii6WhW9Q%Bsfho#82{aN0Z)tK^55 zH)BZgb~f(g@}LK=nqPFtYwm6dPg#j30gva5SFnui@UXb&hL``2C?U+6;VE4>Wrmlp zrHCU%cuKQJ!~p-VD>^EdtMC+@!8dTd5xHZ^(W0Kql#hQ;QFEy4vXYJ=CGGBLsvB1Y z$xE`<%k-%@J=yrC9+#U$q1Oe$WN@!y-ehngoc|~mai$ZKbchth#BO*+-NbLwz6T6wl@bc|4S}t!5;eoh~NGo`u!rE@D zX2~bR6FIJfYJ};Q?pJsu0S%kfY+>yot7YLp;fb3X+X{y_%hJ)+_*U-lp1^UkA3kS% zDDZOSJ$S=$bgc37yzS%Gq@a3bh?US-U!k|&+M;fCdlVeQmQ6{<-EY7Q(8l_%E#*3| zyJ(}9b5!W)rlTa-R2%+?{Z3*EOY%~9`R_U5VW+pDv2#>t!zN<<1{!vFIU&f9<_*jW zV&SOJu1&r8W(dS;58BXs-8`<>(3>)c?!1tFeu(i}w*O;HIx{|Qou&H!DkX1C-J2N1 zNk7Pm4@i3j~$|MDjuQbp{6@7}^_-~qq=cfT=? z5_T@Ri+@nE$lpKzGu_*b*)am|Z!&<`z?Zp(+I8+l4TD*sh<|tF|3(Tk>5E_DSMvyn z^Io0bZd`38Zhr*de6OXzi^*PeMfx&x4CxQOyi& z+bD10qhIIE=uK^ELpHpReUK((j~gNXIy{%xqFw(R*ia4!IOrUDu*Ypcc_Vw=#yOvi zU;Rkp2aK+-pSf%YWAa8m;`MU=@WxQ_D|2qf>wL=dIU4G;=d=7V<6l3X&;<4Q=DW9~ zuEG+BPHNnM4?dT+v9aA9RAlhG;9s{N3_ekwB)y~6$V0*4Ps9gx`~S?} zA^#J83e<;*QHNn%q8;K)#vj!s$U?3gi7Qd!<)OqY-ch)@_+a6>(P*M`69x0F4C1WL zEj)s8C|tjn0gpa3?=>!EOmdqE%!6q;aWiJ}g2a9K;jy(ZK4->5_D-bs?tjpp!R#p9 zDNj%bn_S!}AeA&GE3%GMlXY0qm;^D|`(@ita$rg1UH2@BFMypuWyhhg8{~l@Dc{V? zzvm%*XDd5KJEfCn5gKTv0X^?*0kY++AH7(%=9QS6N7t>z;#?^R$2p%-h8M_@)>~P$ z3onc#D??uEoEtf4hRKN+d{0#O%I|sDhP9^NCSSFB)Q4PWiN?t;*FA8i>EY`&!+N=e zlPK5>xU2rXL5*g7+HU}ym(VwZ0yvdN@KYw;CmHx5Mw@Dqp30%yq?SNt-dBx%*Zg-r}M0Y4RZp^L0ZqTz@|^ zk~(G?=sID4rQvIm;0sM~X`T;aQfSCElJlMj{3xUZbS0+M<`nNp+?10J`^W$SQ=2-04ib6tGe_W*@~fs8rMhO_=amgg1xz+h5ERrptzAEXom)%?j7|h!A`edeES(z8GnyD482kGub6KrxUMm0 zG7e#nr8xSOKT-hye*gY9yMM=n{`K$NzejI=lIqO>_wm@#M}=S~YVUhm=pf>4|7ZLC_CrtMo6E6MV&3ObQ~Kqv=+w4PQVS8` zfVs|v;6TK`qlrnr!9!Urcp%P2ypPzPBpT`6$QirE^HWdWoUO0Aa_8$XEq|)Ry09~> z#bfDs^axTz?=kr!wWqa0CC`OP{?T<$;J{56N`YH z#u6Q8%5bts6x4aIB&Ix+Q@nw-V0{P-WqC$ERLra81>7sk^%rP0Z@2}5sTZU08#VEY zTOvFszQQ?-k=iZ)MyJDS6Z)2dF$VGy*@6-GS&+Z zv$d?3&R6p#5pyt`LpSJtVh$W&!Sji{-;$_6`YNK)MVkj&FD!5U*Q?)Rb!9IWUK-wo zS}$-82)Xs`8s~gN`UJtx#N(t>Up4O7$9v-6%-Pgg`?|1VsKq-rZbMM|_{LBx z!KB3s^iy(tM~jtyVZTQPB+i|c z&dOI|$u({@MW@0FFQ?+!M+hxGW0|~4DW(| zE8X0GrCV6(6ln?9|IxA!j4^A$fc$%*KYxF6!u)k8vjloQ9PFGrX|Pl^#3}*@Qk88t zO%)kb?fxhXZ79jy_b*xdM5A&R2Ly}8483|H>p;TtpNFp!-P!`k|h=RN)$`T`W0 zDYD6Pxc-36;(+;(@qIB3!-TB)W4}~0f4En+D?s!%_~ZQ?>$Pdz(Ud|q(057o*d>kJ z#rb2F|=?nj7rao?^CV6ju(AbxA&Xm zw*Hg6KXa19^)K5L2MM(Uf0VlY%x}T?lEQFeiy@?u@++z#c1s6SmUndT27Mx6CT{9u zwln2Zc?CYnD+-2{Ctr2@oIfLqjrs8XRnWWsn_T41#V!YuxuJMVb!Yc3g@N9CZs!e) ztgcE`e-SSoNwOb6d3(IzyWR!ysra4Q<<0UO46bwIQ}crByt)R?R0iiCuO=2|BwyuZ z3lp{46IU+8?Q(*KWapy?iJJp{4+>c@zLfE9(0I#&@p1|zQG^}i8t~5ff>h}!dT-E> z1O2@`6ie}$8#(B~8e-wc?IvXVGALc}oN$FgoNd3wiJcegSnC6c0!~A|I5l3}k*X~S z){S>35zvHG{~)BpkZvRYjxKfH(QV|8vTJ^CBkJF-<4O=MGOnag28cO{P zlk42to+AH-;d2I@8^4hZ7vY6})C^pAW%!v!IVEpqcp3Cs5mR3Q`7`HN=i^_;(@qb24~FPx6c|6pUj@G=TfYgz(5i zn~z7hBBG8Fe93LzzIwj55rog%I2W4Ut?hyDNd7KspNJce`GW-qgJi;U03Ybqa^u(K z%FF2=H9t2pKRO11lRt6yPxCW0J-&2*%>(0hTfzWuqp*MG^P2V{%-@4!AN+)~|5r1U zSDqU>6lyFw7CqQGqF?=SN4ypcFwd+BKhs;ZR-M4uKor2$zfhj`-0q4z%)f)?5%XQQ zc~EHW_?rC>e4iP(rnoU&Kik&d| zEafh(-@BDZiv8Fs840bfJwT4ScbgvIn6(wb%6ffxy=!eNad`J0)>9_RK0#-!b^A`F zd>OM(H+D0^nT#-Xp7Stab47>1K;zuC5=sT66|eW2By!A?#j^fdKy=?__#FuJF69@1 z!x|NU98Wz^_;FOa;RTPVMDnonf#5{JqT(%uq`QH;?%-(mU4;#oz%7+^754&dL_{t_ zAv%>8oI*4WO(onz_m;qpiPdbd4yt|)m&RpPm25#)WDpCBvw#lsmh;8e8o_ozS}u^L zIH28+I54xNWP&1(36PiC*v3veX`uM)}5y+=mVG0Xv5xuGZ{i~UIfCZF2MoA+*~*1bFUv%8mnn8s#eDVPa>>)(U-OThco zfAB{>D~rNf92rq){wX^RP+^^lS9*~EvZ!oiFu+w?21EFAD(NDyyNmKDqXjRe5 zYd>ov6k+SES82x-2&Ys3zmk;~e?W>~?>XsoUueqox@lD+By(SEKFcuO$yT>eqk{SjJ;n>`zMhXZF-tRTl zHHC^df)nRVC|W5=JuzoUNcsiZ8`gct@!x7ogj(!JZ{6I-?T?3AbbWz!1J`lf@RQa5 zR=Zlr--#x^J-2TE-=>K{33`I~D9$jE&pJXCJwH?XwF*0wWtES-At==K;)hzg8XN26&655d8(AU6$LLU*uCLhL#b{NEHSlr_J zaA7>mMzxI@Q6$|~?r3*zrRrARyLYqOjNvuCF?*1=@;w*gN3t`i1dhqw5`tA)dXCvf->Z>_f_{7`}l22LzTctOPalA})``)Pm}@<< zNRWkuo0#arKj-EhH>;@~4ow&bt#b->wMfd7C7&co#c*dM*BqudQJ~)&iKk#f|e7^P?DQoGe&^k>RW?u`auwk$pgWOjo zs~hT8|E*#6^b{~H`=pLa`R6%IkD9u!c+i~T@p)TE3>#G5*A}1G>@KqK6Y>Hl)9EAA z5jW}{EF2X5n>sK&L2y@&>09(uUg`YHx(5q_8$Z*H&zblrY3adF$8Vf6t|2`>gRHqz|cO z-w!enp84hb{qtA$FPl6aoZpOOweZbudiT^%|H$7V$Yth#kXX3+Zr{iB$ zTv=mRn;r9rm+DKOsjxe16EDrb*{)i7*1|t{@90zW^BLt!KdKMvY_7JejXZDSA53L* z;bYYC7XCA5o%k7H6ZhpY7(t~|!;$3!U zRpP0~%IpdhnI7z8VFvruFBSxKUL%<#XcEyOJ=h;n$6NRd{e5b={yzCUe@`6jAKTp` ztGB_h0)JK3uXevuoW^V5e8LO=`#D@fRe()R^ErxRr_fLgB|&hSr4V{~jmi1?y;slo-0)OnObb1<%26q9BUi zjg;{vxrrRkJ^hQ~k^=IwV0_s<8pbm}!NH~_Bq5MNCaFx{E+r~=~M5#(-Buj$>8y9`9!_|G0547% zH_JU0r)bGUqIR`OtswtL{8o~n4CM|v(4kg%S+ZUQqFv-JdgH&StIc|mjwP9y2m>)L z^#Ckrgf}Zl924==9#u6{GsuBdwMDP-esYQHwPydoYHHWSc&&#EZd5gof~7Q2qNXK| z*fNwmtX3;kI*(C}g|KRorDJVi<_jtnLQ)NER&^NK)()z_O?4L5waT}w#wOKZp;{SV z=Rs;b;ZI-Cure+JOvK(!t!U6wGOr1#{a3DKuM2^AScVsG7m*MbG05V4R zQRQ1&y4bGU0jF(f2BgcXWb&jtvUO()!}0)qx)2K15A z#ViE30_YcrCYi8at!=%V1Ov1PLP$GcxlOb7CLMT6&D|b$`T3=_0dRY#>W*xSw?uMIhcY_8a^=`7YB2x3v)MxsijbQ$&Z@;2=z z*2DINRD>BLOjl>Ito9DoW{23`LqVh+q@6UAEh3Ln>z#Z~+< z@_&#Lv{gIZ*8xXZgX|BhX{M&CS#Ju6lw-_1;QgiA{U&8*bf!APwy;eklsA*1&fGv` zWFtzs$U&ke8yfVbCO5TOZDz{=X7*YdnZeW94L9;a!#*lEKTdnhiS_;I7JEs!HnQX@ zpqg5%5Cdm7&EO96+sZNu&}MI##G`dHc(iV*>!|Xa&4BBhz4?FhX!GMd+RVp=q%6xB z!=L?%z185qrF>^vhTY6@CmV8hLZ4JT=(?qF0-b~+Sn3|YQRwTk^ngt=Bz57kx z+Wj(bnfDKK*ZMluz+*%YlyN_L=V<<%$G?e$GRl9%D{YRK&NHpX<)j*|D_MZz`6u0y zJhzhE2M^4$-0F|)8w$sm;3C zy!?vF&Gk1BS^0Ku<*T27*>CL3O?>~NiYBs>9qao%P1dyBPsHcY&I0348;^~uecg_z zSta{$Y{wct4H;uX zf8>$Z?E6W7H9Yp=f`>EM>4z7%(sVWp&mMQBT&9Rp&O=sHkW6WkdnTGfX^eX|**!aa zpVb`eO4D4;S=97OUXYQg^l`7O0nOr0-u&P0>0H;&99N3@t-8`;SGv-bmbubTTxo?X z{mPY^D6w}QUQH2vXH2!U0~zoDlcSu}pQ9QKj50aS5*+}Ioxof}<0_$XjuDy8U_b+G z>@(o6XIbS4xYzh=aRrLI37G44kg+k>a0itT8)L3vqoObNxB);p+uNuQ5;%dm7S)eF z*F(T0NL5MplJD^EX)O{Do-TBs22VtMM*D#1aKN^&0sn%Hqvk_xJ+k`714Mnkr^=XZ zp;o`uq_`&NowcME#I&4@&lZM->PMCePHOTx(IB^a7Q!7<-Kvcw| zD|6;dz-c$VbR87KKnG_sqb`%D(P!~132l}P362jNB+{fK;!pU1Lgf?0ynxqMWvfTR z86aMh24RsnIRn6q%6cntBl5&t_c7Yq#)!1gcL03RrMY(B=ilu*kVD^4Cuz*;Gha@s z9Gg-9D!XqprXtCYY%l4w!2JHYA%JJO^2h~X)IJ-3!md5NQO>Zweff&p?I{1~e zYi~KmJ7C#)6qWr~(p_>t?{sqQ^Iq;F)fzV~y}?+wF|m?a#QxhBh=>JE(!pRa2mq8p z^p1mS$IZI?ta0D<4sesKtEDDQvZl(+8cDdxv#r#t!6ypcjA(E53K#gIimSmiL=yg- zSq+96^|y%7NNP7R4Ur`s)|Bz!>K0qTcy8v|cyNH&$}FVu;60RmTu@;v&lqKecYKtg~o&~D?@jT2W#j1!k!(#cz#*Dwl$9|{j)kZNe za39hv55SMR35~EX(r-wJQtcD?ah6X$(8iDJJLOV^eRKS^P)&g5z$cNXSJ=W-fL~I4aeyNt&rNm+3(%ADqLWUz z^t>9GF~`hU1vqCnue7px4aC!5227Py_(X1;FK2!6MZeE{BzuMVvcBr(mcAQi1$ZPQ zNaE^bttIXlGv3OtG2_h3iOl#>_)%lVpKfxn2nIA}TvTE9>Nf{w#u=P3GM}x-89a3lrGzUuo|x-9vLSas~_f#Q1zXDUASyTr{Q zDZmH&3UD$1V%Q6mRbo)M{w|gO5Uww``{DXB{ldkU`sEUS69q4!5XZ>2CXs_zC`n$5 zSr~7pMiO5IrDZp=;HXmU4VsT(cs#$s+fFToMR z35YW4^eWl>e7={MN*8?fCG_Ax13Ook&M5I%n#fQU!VsiX=DxZ^9Q_Q4{Asl2KG(;- zcUto%YuGXNSGkXXwvDj|lV)qpSGc<1j?-w(9dXRinzz`SSz2?S>oCRnb3OLl>CSVR z28OY8y8SvWcu+`d&|QmJ8gyUtcg9L|U)y7BMhEog0AI~iZ$^WHar7)ja*6w@mc+D( zzNphrmF`GaQVM8!WwoqD|?hD*95;<+Un?-wF>iI0yd~b(tG}%a9 z4Tczf(X}uBD^Qo(R`A7&_oY+!WrKm#>TYwmJ@h`+>OSkZn;yFNPp($iAmoxYuv$G( zL!=mgwFuxlhW{NnC?qD!>yH3)rYiNA13mwY3#V207ZwOZpfarI_;w#=Oz+C4S)izY zof2Jal<=Erjr!BGtOci3Uu<7Hy;40ma)WK;*myX~6ZPtTf2@)OA1Jvk$3ainUGRvs}SUB@}9`Gq1!-%~Ex1)5+l{F-YRm3xTzD}9b@y<7$YpF#81%5tuG!CGMX ztpyDhysJ}B?y3G27l-`{fWwSG`Y-+~*X%88NaJ{s>(_Z!PJdj@r2=#8M*h!S(4;zTBR$N?J;**)`C2@|5e1#?^`*=CbHivC z;}ka@&7`9VUfB=p>cur87hQcsc8Q(%)Y3-iNbS*r#Om_<;5b8Gll#^T z>YFI32+KtdmW#nmVC`zjJth|U{(^x#G%_s@bxR&{r={XpQ=W_Ovs{7RM8xoVIZG`*)@cnJE&UA}E%s*g=?>QdNGI?Ca)ym%?mlSN88#-n zUIn^H=hfrJnPJ#)t$r}WMy`E9vX6_PlD^p)Hn<3^E`i&L)isTAvK5*ih(Q<|O#KGs zNZDez=i4>}a8ProdSq#jjW2E62+RwR#gus?u;#G#16ere*88<^__GbwbDRfsC&R+w z=J=Erj-Zf1Rv+EsL~(}*^y5Y}Q+SrlCE|I0V)|~@PL}bY_>&E*tcDVNkGIqF~mGnIxjbVR3#twgDGR9=! zEM+1VtlCM89sc$ObO$hY_+thMd>CT~Tc)3}Bj)BzHZo`I@YfgactA&^zy@Su(qy+e z;htTmU}(+p2*7uaN4^W@0q|MHk`?x;l*p2WFyKp_nL|*h889;koOQ}l!Ujv3JJ_*- z>!S1{&IbF0zhLmi=GGN-!aff8n`Q>iH1Oiguxt5msuS9NjNJ@V2bk>&#~jSv^|#g{e=wAOV6i`KGg$J~7v(=2SuwjVj9Y{~JMRvCaL7f|9xk>o2L}{|ZX~ zxdbKnHD6HDBAp;8#f_7bl%(WM2uh3U>cvwcD4lPD(&Jc7N zVYcb0b7-p4xXppxC^2c#5YKcxUisqpXEMr_taKjnn?sC$$6y~o1~ zuH~BhiGrUea>j8=8lnb43TD+wM?BrgT5tNZ*<8FfT?&K*tPRdCb{JDeui>7OLCdTXkhWq%yQ%S0Ua+p3oa}g7_G(L z`EJs0KpwVrP=?X1goxeoHoPMYdGy5<)(NqRX1Rgrox~-p(0b%#42VuLvDn^>COTXT zsGTA{2W*y`7hBwYjQY-cZk*21YdNn<&l%J+$?qdu0Y9UOtq2ZQEFNc1_2e@=9_n9 zWO9ZaS~0^uY=v*cOUFjYkRz`O=Rf6J3NmdjX$O*^ra5xM?go0~$P@l78=FCIvfK1^ z!%FijH-%1CSZa9j016A9d5~Xv7qVJVN&X(Ld)oY>3%(;P=GP1Wr7X zN+clYpdS+wAib4hwwQ6*YO-P@Xv6G2^uhU7xfO5{j6VwBrP~QDS6QD-@(~R2ZCBTc z5Lq^zlSoQVVDSYU`W5x-`9i9bc62UpU_fezM>hi!AJfUzW||2seA2u}eGh!%53G0c z&*`oA8)Ei!fVC4HEU3ZPtS7mfifdr5%sZ>zjo%fN+i6Hf4X&OvaJrzr^uKG_b2u6GmX3^S~Lq<)2s!QB8PXwPXO%-YkT8%-HC z7+%!pfz6g43@CN`S0ZWA#UnEW|0~F?~m85JWj4}Y}f(PJ6 z9qa9@>{GJF_MyOOHSZ1-CBa+$q9lAHmblwg6K2t2%UT44w)O9Vk5LQ3&8;Tz?8Fro zNxn#(LX{a~cHL9Es%d^%$kQeQy+s!RQ*E`GK#z<&={O07FS~>64}P4)Ec;-@7xkS{ z$6sNM(|2Zc2Ao2Nss=Lj&|tbxOk{>pXRbqd8i8-I9N4HMoDI6NNQpr6KwnQ`)baac zm4tFMgJAPBFzooKUf9v1Gy;34gcS{&5xDOHKc_Y9_?v4t=x`?MHB%(cPF;UunN6-c zkiMLDi4i0>-t))>4gCHV!~}5L^>6qE^3AA&8KmTA{{4UA9_w#)WT*-1u(~ryW?1rf z{`9{R+?W+eR5Z!i4=*ROG{R+n;( ze0tB_zv3cj^`~63I@ZF!at%SZalFViq~e~kpKt-~uxWgWYoQFLFxA&*xK^v`j%+l1 z{hqsIxCuV{FI;Qdw7x&!8mPbL?tkVYSm-5O10>eRr?|E*@T)~G`92pKkQP8I{ci{; zU(BZuCCY_AjDKI1P3L|NUw3)yNOm+KWy%>R38nh+@tj~v>Qb@M@U+z<_F2l!3^q4( zG;}P~TU4_(@xY29o`HUNc_=X6e2jFQ;pJzqx&FPr$_9%x>Bz0zWCFt5xrxW~&7rK< zf<4Y}e0yl;pJelsB>Jj-&Eic~TD-|E$;x*Ff3`&yZ*r(|o%yrv%Pm@8>l!*+4f*jZ z+3$1YXzZ50$_+uV$%0(@(fu#`d_iN!(9V(l{n>g(eL|lBtxDuvVcu!uG6b0|fqUAiei-IW6On50{BZ^4R0!u~% zKP`4Ep2ze6sRT46t=BfO-C)p4Hm?Fo6ocmM<{ef~yy+Y4c2i{U;TJq3*6t4QiRpKv zKD%ISkZ4%acjA&SeWYd?9R`mD4$sO%t$6FG@5~#yJ4QQ-N3m2wP7IROz^CAH-w|;< zAgl_nQ1Ko$Uu<$+yBpHszpE>Y*`{krU;C%7+k0?J>F=)a-)&00t1ELjV@OHg>0fGh z^;=Pgx~|#=rH<4rhFohjzE`$lXq=qF%(POq^L4tn)G>;hF=tk3<&8IKn@UbrdCql0 zp3JQ*uMXLX`uEatBp~rr97*7HWl@*3+X;3LJgm~X%ZbIAF5XOT6c8@-2o!?^Ev%8;O$u6i*TLnerfNLVdH)5C1zS8c}+z&1^q2s8J9c z-cF+_nM51FmL=DEW4+a}OVJ=+Utf7qd!4Cd*?N~0+O&S7iz4 z1@f|laLtklC3HZ0p;EviNVhX+oC(Lxm-xqC7VZw-h&=5J5vpl>DpK9V*Yt=^s8Pwh zy=?8s({9?VQFp`bS$Bh7L?o7*95rSgeA=HayTQ`RKoYro8L;rj@K|#k3KuD~DWX3W zY@Dc-0MG;M+Q3Tb9>ll-G}wcuud=zUV2n|1OAYvd+KoKtKhf*lta@VRgA)822s|!$=;p9Lsg{NIJLVt1sYduO+ zJ#@)$DixO!$k&x}Zg~6(}=kP5dlEex(J8DfaR8^bxgq}naP3b4**W0Wo+DZ(Y z#?ns}7g)7TPem*Iv>ZAIK{F^-%}jQJjLxRA0g|P*!L(?j)bn8SRA;7r+igoz^RQks z_wtXm?DR80Xb+0topo4DZN6AspRpy5dhKWzIQ_96V=R2GHs7(dmd-L@#<&&g6;oSO z)0KE&Zb%$qO26rqHHDWC_DT`FhQpblbx(7(yNs( ztn#4G&sMJY`PhWd*q#wT+ZCsYlrz%%<7aDMx1+${&KbT7t~f6o8x}8X!Y66*HSzM6 zYdM_<&K6UJRwP67o;4qVf6|}HKS}y`<8LpPX5I0(9Ile7e?JJT8SuAnh==XR-!^e? zK?ARZ>z~tOSX{CZ!QxI#TuF9aVlP5)w@N&uGaHh;l5%c}roxW_hEn(Rtlt~8b@;aS6ESJRaS-C(7;uGHq9 zY4WJ~^J058*_HBL&FQo$Cil5H+!mj^-P=Ij(eCLi_r=ToR$Xa=E5%%Csw*var5UbN z=)N(*^>i7}*h=$ePy{cTZVWy*fJdL-y__nL*nrLN3|C#z-jk z&LmoplvU6c1&tZUQM!y;?AxeFvNq-{uwxK~DFhW+su?{6zY7nh)?I)s*x?O0)GTI~ z3U|Qh7*RE9<2YTBiU2is@rv(td!Sq2)Y|Y1-)s~y@IrE^DwnU>mAn|_OB4iAikgay z7)2GcEBYJg`>PqLW4P_gm|eP-3^0B`qM;D!?>4zrsb+HgcXegVE<;K#5qwb}CP4kJ zc+*{1Z6C#jueaN+0r{j_r^lrEU1~dix5-5mu&`-<_YIm)@w>j|#8MWqw4LykDQgO= z>1_5aLI%H^M({z1UNmrmYT}Jll9DvP+hJqP=67`u(EB7qK;BU*>RHU0>EM@WSFqeZ zQIyVoo5&FTF‹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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{) 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 diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Headers/webp/decode.h b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Headers/webp/decode.h deleted file mode 100755 index 4c5e74a..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Headers/webp/decode.h +++ /dev/null @@ -1,493 +0,0 @@ -// Copyright 2010 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. -// ----------------------------------------------------------------------------- -// -// Main decoding functions for WebP images. -// -// Author: Skal (pascal.massimino@gmail.com) - -#ifndef WEBP_WEBP_DECODE_H_ -#define WEBP_WEBP_DECODE_H_ - -#include "./types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define WEBP_DECODER_ABI_VERSION 0x0208 // 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 VP8StatusCode VP8StatusCode; -// typedef enum WEBP_CSP_MODE WEBP_CSP_MODE; -typedef struct WebPRGBABuffer WebPRGBABuffer; -typedef struct WebPYUVABuffer WebPYUVABuffer; -typedef struct WebPDecBuffer WebPDecBuffer; -typedef struct WebPIDecoder WebPIDecoder; -typedef struct WebPBitstreamFeatures WebPBitstreamFeatures; -typedef struct WebPDecoderOptions WebPDecoderOptions; -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); - -// 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); - -// 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); - -// 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); - -// 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); - -// 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); - -// 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); - - -// Decode WebP images pointed to by 'data' to Y'UV format(*). The pointer -// returned is the Y samples buffer. Upon return, *u and *v will point to -// the U and V chroma data. These U and V buffers need NOT be passed to -// WebPFree(), unlike the returned Y luma one. The dimension of the U and V -// planes are both (*width + 1) / 2 and (*height + 1)/ 2. -// Upon return, the Y buffer has a stride returned as '*stride', while U and V -// 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); - -// Releases memory returned by the WebPDecode*() functions above. -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 -// available in this buffer is indicated by 'output_buffer_size'. If this -// storage is not sufficient (or an error occurred), NULL is returned. -// Otherwise, output_buffer is returned, for convenience. -// 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( - 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( - 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( - 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( - 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( - const uint8_t* data, size_t data_size, - uint8_t* output_buffer, size_t output_buffer_size, int output_stride); - -// WebPDecodeYUVInto() is a variant of WebPDecodeYUV() that operates directly -// into pre-allocated luma/chroma plane buffers. This function requires the -// strides to be passed: one for the luma plane and one for each of the -// chroma ones. The size of each plane buffer is passed as 'luma_size', -// '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( - 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, - uint8_t* v, size_t v_size, int v_stride); - -//------------------------------------------------------------------------------ -// Output colorspaces and buffer - -// Colorspaces -// Note: the naming describes the byte-ordering of packed samples in memory. -// For instance, MODE_BGRA relates to samples ordered as B,G,R,A,B,G,R,A,... -// Non-capital names (e.g.:MODE_Argb) relates to pre-multiplied RGB channels. -// RGBA-4444 and RGB-565 colorspaces are represented by following byte-order: -// RGBA-4444: [r3 r2 r1 r0 g3 g2 g1 g0], [b3 b2 b1 b0 a3 a2 a1 a0], ... -// RGB-565: [r4 r3 r2 r1 r0 g5 g4 g3], [g2 g1 g0 b4 b3 b2 b1 b0], ... -// In the case WEBP_SWAP_16BITS_CSP is defined, the bytes are swapped for -// these two modes: -// RGBA-4444: [b3 b2 b1 b0 a3 a2 a1 a0], [r3 r2 r1 r0 g3 g2 g1 g0], ... -// RGB-565: [g2 g1 g0 b4 b3 b2 b1 b0], [r4 r3 r2 r1 r0 g5 g4 g3], ... - -typedef enum WEBP_CSP_MODE { - MODE_RGB = 0, MODE_RGBA = 1, - MODE_BGR = 2, MODE_BGRA = 3, - MODE_ARGB = 4, MODE_RGBA_4444 = 5, - MODE_RGB_565 = 6, - // RGB-premultiplied transparent modes (alpha value is preserved) - MODE_rgbA = 7, - MODE_bgrA = 8, - MODE_Argb = 9, - MODE_rgbA_4444 = 10, - // YUV modes must come after RGB ones. - MODE_YUV = 11, MODE_YUVA = 12, // yuv 4:2:0 - MODE_LAST = 13 -} WEBP_CSP_MODE; - -// Some useful macros: -static WEBP_INLINE int WebPIsPremultipliedMode(WEBP_CSP_MODE mode) { - return (mode == MODE_rgbA || mode == MODE_bgrA || mode == MODE_Argb || - mode == MODE_rgbA_4444); -} - -static WEBP_INLINE int WebPIsAlphaMode(WEBP_CSP_MODE mode) { - return (mode == MODE_RGBA || mode == MODE_BGRA || mode == MODE_ARGB || - mode == MODE_RGBA_4444 || mode == MODE_YUVA || - WebPIsPremultipliedMode(mode)); -} - -static WEBP_INLINE int WebPIsRGBMode(WEBP_CSP_MODE mode) { - return (mode < MODE_YUV); -} - -//------------------------------------------------------------------------------ -// WebPDecBuffer: Generic structure for describing the output sample buffer. - -struct WebPRGBABuffer { // view as RGBA - uint8_t* rgba; // pointer to RGBA samples - int stride; // stride in bytes from one scanline to the next. - size_t size; // total size of the *rgba buffer. -}; - -struct WebPYUVABuffer { // view as YUVA - uint8_t* y, *u, *v, *a; // pointer to luma, chroma U/V, alpha samples - int y_stride; // luma stride - int u_stride, v_stride; // chroma strides - int a_stride; // alpha stride - size_t y_size; // luma plane size - size_t u_size, v_size; // chroma planes size - size_t a_size; // alpha-plane size -}; - -// Output buffer -struct WebPDecBuffer { - WEBP_CSP_MODE colorspace; // Colorspace. - int width, height; // Dimensions. - int is_external_memory; // If non-zero, 'internal_memory' pointer is not - // used. If value is '2' or more, the external - // memory is considered 'slow' and multiple - // read/write will be avoided. - union { - WebPRGBABuffer RGBA; - WebPYUVABuffer YUVA; - } u; // Nameless union of buffer parameters. - uint32_t pad[4]; // padding for later use - - uint8_t* private_memory; // Internally allocated memory (only when - // is_external_memory is 0). Should not be used - // externally, but accessed via the buffer union. -}; - -// Internal, version-checked, entry point -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 -static WEBP_INLINE int WebPInitDecBuffer(WebPDecBuffer* buffer) { - return WebPInitDecBufferInternal(buffer, WEBP_DECODER_ABI_VERSION); -} - -// 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); - -//------------------------------------------------------------------------------ -// Enumeration of the status codes - -typedef enum VP8StatusCode { - VP8_STATUS_OK = 0, - VP8_STATUS_OUT_OF_MEMORY, - VP8_STATUS_INVALID_PARAM, - VP8_STATUS_BITSTREAM_ERROR, - VP8_STATUS_UNSUPPORTED_FEATURE, - VP8_STATUS_SUSPENDED, - VP8_STATUS_USER_ABORT, - VP8_STATUS_NOT_ENOUGH_DATA -} VP8StatusCode; - -//------------------------------------------------------------------------------ -// Incremental decoding -// -// This API allows streamlined decoding of partial data. -// Picture can be incrementally decoded as data become available thanks to the -// WebPIDecoder object. This object can be left in a SUSPENDED state if the -// picture is only partially decoded, pending additional input. -// Code example: -// -// WebPInitDecBuffer(&output_buffer); -// output_buffer.colorspace = mode; -// ... -// WebPIDecoder* idec = WebPINewDecoder(&output_buffer); -// while (additional_data_is_available) { -// // ... (get additional data in some new_data[] buffer) -// status = WebPIAppend(idec, new_data, new_data_size); -// if (status != VP8_STATUS_OK && status != VP8_STATUS_SUSPENDED) { -// break; // an error occurred. -// } -// -// // The above call decodes the current available buffer. -// // Part of the image can now be refreshed by calling -// // WebPIDecGetRGB()/WebPIDecGetYUVA() etc. -// } -// WebPIDelete(idec); - -// Creates a new incremental decoder with the supplied buffer parameter. -// This output_buffer can be passed NULL, in which case a default output buffer -// is used (with MODE_RGB). Otherwise, an internal reference to 'output_buffer' -// is kept, which means that the lifespan of 'output_buffer' must be larger than -// that of the returned WebPIDecoder object. -// The supplied 'output_buffer' content MUST NOT be changed between calls to -// WebPIAppend() or WebPIUpdate() unless 'output_buffer.is_external_memory' is -// not set to 0. In such a case, it is allowed to modify the pointers, size and -// stride of output_buffer.u.RGBA or output_buffer.u.YUVA, provided they remain -// 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); - -// This function allocates and initializes an incremental-decoder object, which -// will output the RGB/A samples specified by 'csp' into a preallocated -// buffer 'output_buffer'. The size of this buffer is at least -// 'output_buffer_size' and the stride (distance in bytes between two scanlines) -// is specified by 'output_stride'. -// Additionally, output_buffer can be passed NULL in which case the output -// buffer will be allocated automatically when the decoding starts. The -// 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_CSP_MODE csp, - uint8_t* output_buffer, size_t output_buffer_size, int output_stride); - -// This function allocates and initializes an incremental-decoder object, which -// will output the raw luma/chroma samples into a preallocated planes if -// supplied. The luma plane is specified by its pointer 'luma', its size -// 'luma_size' and its stride 'luma_stride'. Similarly, the chroma-u plane -// is specified by the 'u', 'u_size' and 'u_stride' parameters, and the chroma-v -// plane by 'v' and 'v_size'. And same for the alpha-plane. The 'a' pointer -// can be pass NULL in case one is not interested in the transparency plane. -// Conversely, 'luma' can be passed NULL if no preallocated planes are supplied. -// 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( - 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, - uint8_t* a, size_t a_size, int a_stride); - -// Deprecated version of the above, without the alpha plane. -// Kept for backward compatibility. -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); - -// 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( - WebPIDecoder* idec, const uint8_t* data, size_t data_size); - -// A variant of the above function to be used when data buffer contains -// partial data from the beginning. In this case data buffer is not copied -// 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( - WebPIDecoder* idec, const uint8_t* data, size_t data_size); - -// Returns the RGB/A image decoded so far. Returns NULL if output params -// are not initialized yet. The RGB/A output type corresponds to the colorspace -// 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( - 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( - 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); - -// Deprecated alpha-less version of WebPIDecGetYUVA(): it will ignore the -// alpha information (if present). Kept for backward compatibility. -static WEBP_INLINE uint8_t* WebPIDecGetYUV( - const WebPIDecoder* idec, int* last_y, uint8_t** u, uint8_t** v, - int* width, int* height, int* stride, int* uv_stride) { - return WebPIDecGetYUVA(idec, last_y, u, v, NULL, width, height, - stride, uv_stride, NULL); -} - -// Generic call to retrieve information about the displayable area. -// If non NULL, the left/right/width/height pointers are filled with the visible -// rectangular area so far. -// 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( - const WebPIDecoder* idec, int* left, int* top, int* width, int* height); - -//------------------------------------------------------------------------------ -// Advanced decoding parametrization -// -// Code sample for using the advanced decoding API -/* - // A) Init a configuration object - WebPDecoderConfig config; - CHECK(WebPInitDecoderConfig(&config)); - - // B) optional: retrieve the bitstream's features. - CHECK(WebPGetFeatures(data, data_size, &config.input) == VP8_STATUS_OK); - - // C) Adjust 'config', if needed - config.no_fancy_upsampling = 1; - config.output.colorspace = MODE_BGRA; - // etc. - - // Note that you can also make config.output point to an externally - // supplied memory buffer, provided it's big enough to store the decoded - // picture. Otherwise, config.output will just be used to allocate memory - // and store the decoded picture. - - // D) Decode! - CHECK(WebPDecode(data, data_size, &config) == VP8_STATUS_OK); - - // E) Decoded image is now in config.output (and config.output.u.RGBA) - - // F) Reclaim memory allocated in config's object. It's safe to call - // this function even if the memory is external and wasn't allocated - // by WebPDecode(). - WebPFreeDecBuffer(&config.output); -*/ - -// Features gathered from the bitstream -struct WebPBitstreamFeatures { - int width; // Width in pixels, as read from the bitstream. - int height; // Height in pixels, as read from the bitstream. - int has_alpha; // True if the bitstream contains an alpha channel. - int has_animation; // True if the bitstream is an animation. - int format; // 0 = undefined (/mixed), 1 = lossy, 2 = lossless - - uint32_t pad[5]; // padding for later use -}; - -// Internal, version-checked, entry point -WEBP_EXTERN(VP8StatusCode) WebPGetFeaturesInternal( - const uint8_t*, size_t, WebPBitstreamFeatures*, int); - -// Retrieve features from the bitstream. The *features structure is filled -// with information gathered from the bitstream. -// Returns VP8_STATUS_OK when the features are successfully retrieved. Returns -// VP8_STATUS_NOT_ENOUGH_DATA when more data is needed to retrieve the -// features from headers. Returns error in other cases. -static WEBP_INLINE VP8StatusCode WebPGetFeatures( - const uint8_t* data, size_t data_size, - WebPBitstreamFeatures* features) { - return WebPGetFeaturesInternal(data, data_size, features, - WEBP_DECODER_ABI_VERSION); -} - -// Decoding options -struct WebPDecoderOptions { - int bypass_filtering; // if true, skip the in-loop filtering - int no_fancy_upsampling; // if true, use faster pointwise upsampler - int use_cropping; // if true, cropping is applied _first_ - int crop_left, crop_top; // top-left position for cropping. - // Will be snapped to even values. - int crop_width, crop_height; // dimension of the cropping area - int use_scaling; // if true, scaling is applied _afterward_ - int scaled_width, scaled_height; // final resolution - int use_threads; // if true, use multi-threaded decoding - int dithering_strength; // dithering strength (0=Off, 100=full) - int flip; // flip output vertically - int alpha_dithering_strength; // alpha dithering strength in [0..100] - - uint32_t pad[5]; // padding for later use -}; - -// Main object storing the configuration for advanced decoding. -struct WebPDecoderConfig { - WebPBitstreamFeatures input; // Immutable bitstream features (optional) - WebPDecBuffer output; // Output buffer (can point to external mem) - WebPDecoderOptions options; // Decoding options -}; - -// Internal, version-checked, entry point -WEBP_EXTERN(int) WebPInitDecoderConfigInternal(WebPDecoderConfig*, int); - -// Initialize the configuration as empty. This function must always be -// called first, unless WebPGetFeatures() is to be called. -// Returns false in case of mismatched version. -static WEBP_INLINE int WebPInitDecoderConfig(WebPDecoderConfig* config) { - return WebPInitDecoderConfigInternal(config, WEBP_DECODER_ABI_VERSION); -} - -// Instantiate a new incremental decoder object with the requested -// configuration. The bitstream can be passed using 'data' and 'data_size' -// parameter, in which case the features will be parsed and stored into -// config->input. Otherwise, 'data' can be NULL and no parsing will occur. -// Note that 'config' can be NULL too, in which case a default configuration -// is used. If 'config' is not NULL, it must outlive the WebPIDecoder object -// as some references to its fields will be used. No internal copy of 'config' -// is made. -// 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); - -// 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); - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif /* WEBP_WEBP_DECODE_H_ */ diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Headers/webp/encode.h b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Headers/webp/encode.h deleted file mode 100755 index 35fde1d..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Headers/webp/encode.h +++ /dev/null @@ -1,542 +0,0 @@ -// 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. -// ----------------------------------------------------------------------------- -// -// WebP encoder: main interface -// -// Author: Skal (pascal.massimino@gmail.com) - -#ifndef WEBP_WEBP_ENCODE_H_ -#define WEBP_WEBP_ENCODE_H_ - -#include "./types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define WEBP_ENCODER_ABI_VERSION 0x020e // 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 WebPImageHint WebPImageHint; -// typedef enum WebPEncCSP WebPEncCSP; -// typedef enum WebPPreset WebPPreset; -// typedef enum WebPEncodingError WebPEncodingError; -typedef struct WebPConfig WebPConfig; -typedef struct WebPPicture WebPPicture; // main structure for I/O -typedef struct WebPAuxStats WebPAuxStats; -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); - -//------------------------------------------------------------------------------ -// One-stop-shop call! No questions asked: - -// Returns the size of the compressed data (pointed to by *output), or 0 if -// an error occurred. The compressed data must be released by the caller -// using the call 'WebPFree(*output)'. -// 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, - 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) 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, - 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) 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); - -//------------------------------------------------------------------------------ -// Coding parameters - -// Image characteristics hint for the underlying encoder. -typedef enum WebPImageHint { - WEBP_HINT_DEFAULT = 0, // default preset. - WEBP_HINT_PICTURE, // digital picture, like portrait, inner shot - WEBP_HINT_PHOTO, // outdoor photograph, with natural lighting - WEBP_HINT_GRAPH, // Discrete tone image (graph, map-tile etc). - WEBP_HINT_LAST -} WebPImageHint; - -// Compression parameters. -struct WebPConfig { - int lossless; // Lossless encoding (0=lossy(default), 1=lossless). - float quality; // between 0 (smallest file) and 100 (biggest) - 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 - // try to achieve. Takes precedence over target_size. - int segments; // maximum number of segments to use, in [1..4] - int sns_strength; // Spatial Noise Shaping. 0=off, 100=maximum. - int filter_strength; // range: [0 = off .. 100 = strongest] - int filter_sharpness; // range: [0 = off .. 7 = least sharp] - int filter_type; // filtering type: 0 = simple, 1 = strong (only used - // if filter_strength > 0 or autofilter > 0) - int autofilter; // Auto adjust filter's strength [0 = off, 1 = on] - int alpha_compression; // Algorithm for encoding the alpha plane (0 = none, - // 1 = compressed with WebP lossless). Default is 1. - int alpha_filtering; // Predictive filtering method for alpha plane. - // 0: none, 1: fast, 2: best. Default if 1. - int alpha_quality; // Between 0 (smallest size) and 100 (lossless). - // Default is 100. - int pass; // number of entropy-analysis passes (in [1..10]). - - int show_compressed; // if true, export the compressed picture back. - // In-loop filtering is not applied. - int preprocessing; // preprocessing filter: - // 0=none, 1=segment-smooth, 2=pseudo-random dithering - int partitions; // log2(number of token partitions) in [0..3]. Default - // is set to 0 for easier progressive decoding. - int partition_limit; // quality degradation allowed to fit the 512k limit - // on prediction modes coding (0: no degradation, - // 100: maximum possible degradation). - int emulate_jpeg_size; // If true, compression parameters will be remapped - // to better match the expected output size from - // JPEG compression. Generally, the output size will - // be similar but the degradation will be lower. - int thread_level; // If non-zero, try and use multi-threaded encoding. - int low_memory; // If set, reduce memory usage (but increase CPU use). - - int near_lossless; // Near lossless encoding [0 = max loss .. 100 = off - // (default)]. - int exact; // if non-zero, preserve the exact RGB values under - // transparent area. Otherwise, discard this invisible - // RGB information for better compression. The default - // value is 0. - - int use_delta_palette; // reserved for future lossless feature - int use_sharp_yuv; // if needed, use sharp (and slow) RGB->YUV conversion - - uint32_t pad[2]; // padding for later use -}; - -// Enumerate some predefined settings for WebPConfig, depending on the type -// of source picture. These presets are used when calling WebPConfigPreset(). -typedef enum WebPPreset { - WEBP_PRESET_DEFAULT = 0, // default preset. - WEBP_PRESET_PICTURE, // digital picture, like portrait, inner shot - WEBP_PRESET_PHOTO, // outdoor photograph, with natural lighting - WEBP_PRESET_DRAWING, // hand or line drawing, with high-contrast details - WEBP_PRESET_ICON, // small-sized colorful images - WEBP_PRESET_TEXT // text-like -} WebPPreset; - -// Internal, version-checked, entry point -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() -// must have succeeded before using the 'config' object. -// Note that the default values are lossless=0 and quality=75. -static WEBP_INLINE int WebPConfigInit(WebPConfig* config) { - return WebPConfigInitInternal(config, WEBP_PRESET_DEFAULT, 75.f, - WEBP_ENCODER_ABI_VERSION); -} - -// This function will initialize the configuration according to a predefined -// set of parameters (referred to by 'preset') and a given quality factor. -// This function can be called as a replacement to WebPConfigInit(). Will -// return false in case of error. -static WEBP_INLINE int WebPConfigPreset(WebPConfig* config, - WebPPreset preset, float quality) { - return WebPConfigInitInternal(config, preset, quality, - WEBP_ENCODER_ABI_VERSION); -} - -// Activate the lossless compression mode with the desired efficiency level -// between 0 (fastest, lowest compression) and 9 (slower, best compression). -// A good default level is '6', providing a fair tradeoff between compression -// 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); - -// Returns true if 'config' is non-NULL and all configuration parameters are -// within their valid ranges. -WEBP_EXTERN(int) WebPValidateConfig(const WebPConfig* config); - -//------------------------------------------------------------------------------ -// Input / Output -// Structure for storing auxiliary statistics (mostly for lossy encoding). - -struct WebPAuxStats { - int coded_size; // final size - - float PSNR[5]; // peak-signal-to-noise ratio for Y/U/V/All/Alpha - int block_count[3]; // number of intra4/intra16/skipped macroblocks - int header_bytes[2]; // approximate number of bytes spent for header - // and mode-partition #0 - int residual_bytes[3][4]; // approximate number of bytes spent for - // DC/AC/uv coefficients for each (0..3) segments. - int segment_size[4]; // number of macroblocks in each segments - int segment_quant[4]; // quantizer values for each segments - int segment_level[4]; // filtering strength for each segments [0..63] - - int alpha_data_size; // size of the transparency data - int layer_data_size; // size of the enhancement layer data - - // lossless encoder statistics - uint32_t lossless_features; // bit0:predictor bit1:cross-color transform - // bit2:subtract-green bit3:color indexing - int histogram_bits; // number of precision bits of histogram - int transform_bits; // precision bits for transform - int cache_bits; // number of bits for color cache lookup - int palette_size; // number of color in palette, if used - int lossless_size; // final lossless size - int lossless_hdr_size; // lossless header (transform, huffman etc) size - int lossless_data_size; // lossless image data size - - uint32_t pad[2]; // padding for later use -}; - -// Signature for output function. Should return true if writing was successful. -// data/data_size is the segment of data to write, and 'picture' is for -// reference (and so one can make use of picture->custom_ptr). -typedef int (*WebPWriterFunction)(const uint8_t* data, size_t data_size, - const WebPPicture* picture); - -// WebPMemoryWrite: a special WebPWriterFunction that writes to memory using -// the following WebPMemoryWriter object (to be set as a custom_ptr). -struct WebPMemoryWriter { - uint8_t* mem; // final buffer (of size 'max_size', larger than 'size'). - size_t size; // final size - size_t max_size; // total capacity - uint32_t pad[1]; // padding for later use -}; - -// The following must be called first before any use. -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); -// 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); - -// 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 -// everything is OK. -typedef int (*WebPProgressHook)(int percent, const WebPPicture* picture); - -// Color spaces. -typedef enum WebPEncCSP { - // chroma sampling - WEBP_YUV420 = 0, // 4:2:0 - WEBP_YUV420A = 4, // alpha channel variant - WEBP_CSP_UV_MASK = 3, // bit-mask to get the UV sampling factors - WEBP_CSP_ALPHA_BIT = 4 // bit that is set if alpha is present -} WebPEncCSP; - -// Encoding error conditions. -typedef enum WebPEncodingError { - VP8_ENC_OK = 0, - VP8_ENC_ERROR_OUT_OF_MEMORY, // memory error allocating objects - VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY, // memory error while flushing bits - VP8_ENC_ERROR_NULL_PARAMETER, // a pointer parameter is NULL - VP8_ENC_ERROR_INVALID_CONFIGURATION, // configuration is invalid - VP8_ENC_ERROR_BAD_DIMENSION, // picture has invalid width/height - VP8_ENC_ERROR_PARTITION0_OVERFLOW, // partition is bigger than 512k - VP8_ENC_ERROR_PARTITION_OVERFLOW, // partition is bigger than 16M - VP8_ENC_ERROR_BAD_WRITE, // error while flushing bytes - VP8_ENC_ERROR_FILE_TOO_BIG, // file is bigger than 4G - VP8_ENC_ERROR_USER_ABORT, // abort request by user - VP8_ENC_ERROR_LAST // list terminator. always last. -} WebPEncodingError; - -// maximum width/height allowed (inclusive), in pixels -#define WEBP_MAX_DIMENSION 16383 - -// Main exchange structure (input samples, output bytes, statistics) -struct WebPPicture { - // INPUT - ////////////// - // Main flag for encoder selecting between ARGB or YUV input. - // It is recommended to use ARGB input (*argb, argb_stride) for lossless - // compression, and YUV input (*y, *u, *v, etc.) for lossy compression - // since these are the respective native colorspace for these formats. - int use_argb; - - // YUV input (mostly used for input to lossy compression) - WebPEncCSP colorspace; // colorspace: should be YUV420 for now (=Y'CbCr). - int width, height; // dimensions (less or equal to WEBP_MAX_DIMENSION) - uint8_t *y, *u, *v; // pointers to luma/chroma planes. - int y_stride, uv_stride; // luma/chroma strides. - uint8_t* a; // pointer to the alpha plane - int a_stride; // stride of the alpha plane - uint32_t pad1[2]; // padding for later use - - // ARGB input (mostly used for input to lossless compression) - uint32_t* argb; // Pointer to argb (32 bit) plane. - int argb_stride; // This is stride in pixels units, not bytes. - uint32_t pad2[3]; // padding for later use - - // OUTPUT - /////////////// - // Byte-emission hook, to store compressed bytes as they are ready. - WebPWriterFunction writer; // can be NULL - void* custom_ptr; // can be used by the writer. - - // map for extra information (only for lossy compression mode) - int extra_info_type; // 1: intra type, 2: segment, 3: quant - // 4: intra-16 prediction mode, - // 5: chroma prediction mode, - // 6: bit cost, 7: distortion - uint8_t* extra_info; // if not NULL, points to an array of size - // ((width + 15) / 16) * ((height + 15) / 16) that - // will be filled with a macroblock map, depending - // on extra_info_type. - - // STATS AND REPORTS - /////////////////////////// - // Pointer to side statistics (updated only if not NULL) - WebPAuxStats* stats; - - // Error code for the latest error encountered during encoding - WebPEncodingError error_code; - - // If not NULL, report progress during encoding. - WebPProgressHook progress_hook; - - void* user_data; // this field is free to be set to any value and - // used during callbacks (like progress-report e.g.). - - uint32_t pad3[3]; // padding for later use - - // Unused for now - uint8_t *pad4, *pad5; - uint32_t pad6[8]; // padding for later use - - // PRIVATE FIELDS - //////////////////// - void* memory_; // row chunk of memory for yuva planes - void* memory_argb_; // and for argb too. - void* pad7[2]; // padding for later use -}; - -// Internal, version-checked, entry point -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 -// 'picture' object. -// Note that, by default, use_argb is false and colorspace is WEBP_YUV420. -static WEBP_INLINE int WebPPictureInit(WebPPicture* picture) { - return WebPPictureInitInternal(picture, WEBP_ENCODER_ABI_VERSION); -} - -//------------------------------------------------------------------------------ -// WebPPicture utils - -// Convenience allocation / deallocation based on picture->width/height: -// 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); - -// 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); - -// 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); - -// Compute the single distortion for packed planes of samples. -// 'src' will be compared to 'ref', and the raw distortion stored into -// '*distortion'. The refined metric (log(MSE), log(1 - ssim),...' will be -// stored in '*result'. -// '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); - -// 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( - const WebPPicture* src, const WebPPicture* ref, - int metric_type, // 0 = PSNR, 1 = SSIM, 2 = LSIM - float result[5]); - -// self-crops a picture to the rectangle defined by top/left/width/height. -// Returns false in case of memory allocation error, or if the rectangle is -// outside of the source picture. -// The rectangle for the view is defined by the top-left corner pixel -// coordinates (left, top) as well as its width and height. This rectangle -// 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); - -// 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 -// as its width and height. This rectangle 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. -// Picture 'src' must out-live 'dst' picture. Self-extraction of view is allowed -// ('src' equal to 'dst') as a mean of fast-cropping (but note that doing so, -// the original dimension will be lost). Picture 'dst' need not be initialized -// 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); - -// 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); - -// 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); - -// 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( - WebPPicture* picture, const uint8_t* rgb, int rgb_stride); -// Same, but for RGBA buffer. -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( - WebPPicture* picture, const uint8_t* rgbx, int rgbx_stride); - -// Variants of the above, but taking BGR(A|X) input. -WEBP_EXTERN(int) WebPPictureImportBGR( - WebPPicture* picture, const uint8_t* bgr, int bgr_stride); -WEBP_EXTERN(int) WebPPictureImportBGRA( - WebPPicture* picture, const uint8_t* bgra, int bgra_stride); -WEBP_EXTERN(int) WebPPictureImportBGRX( - WebPPicture* picture, const uint8_t* bgrx, int bgrx_stride); - -// Converts picture->argb data to the YUV420A format. The 'colorspace' -// parameter is deprecated and should be equal to WEBP_YUV420. -// Upon return, picture->use_argb is set to false. The presence of real -// 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*/); - -// 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( - WebPPicture* picture, WebPEncCSP colorspace, float dithering); - -// Performs 'sharp' RGBA->YUVA420 downsampling and colorspace conversion. -// Downsampling is handled with extra care in case of color clipping. This -// 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); -// kept for backward compatibility: -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 -// ARGB incurs a small loss too. -// 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); - -// 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); - -// 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); - -// 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); - -//------------------------------------------------------------------------------ -// Main call - -// Main encoding call, after config and picture have been initialized. -// 'picture' must be less than 16384x16384 in dimension (cf WEBP_MAX_DIMENSION), -// and the 'config' object must be a valid one. -// Returns false in case of error, true otherwise. -// In case of error, picture->error_code is updated accordingly. -// 'picture' can hold the source samples in both YUV(A) or ARGB input, depending -// on the value of 'picture->use_argb'. It is highly recommended to use -// 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); - -//------------------------------------------------------------------------------ - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif /* WEBP_WEBP_ENCODE_H_ */ diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Headers/webp/types.h b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Headers/webp/types.h deleted file mode 100755 index 98fff35..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Headers/webp/types.h +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2010 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. -// ----------------------------------------------------------------------------- -// -// Common types -// -// Author: Skal (pascal.massimino@gmail.com) - -#ifndef WEBP_WEBP_TYPES_H_ -#define WEBP_WEBP_TYPES_H_ - -#include // for size_t - -#ifndef _MSC_VER -#include -#if defined(__cplusplus) || !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) -#define WEBP_INLINE inline -#else -#define WEBP_INLINE -#endif -#else -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef signed short int16_t; -typedef unsigned short uint16_t; -typedef signed int int32_t; -typedef unsigned int uint32_t; -typedef unsigned long long int uint64_t; -typedef long long int int64_t; -#define WEBP_INLINE __forceinline -#endif /* _MSC_VER */ - -#ifndef WEBP_EXTERN -// 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 -# else -# define WEBP_EXTERN(type) extern type -# endif /* __GNUC__ >= 4 */ -#endif /* WEBP_EXTERN */ - -// Macro to check ABI compatibility (same major revision number) -#define WEBP_ABI_IS_INCOMPATIBLE(a, b) (((a) >> 8) != ((b) >> 8)) - -#endif /* WEBP_WEBP_TYPES_H_ */ diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings deleted file mode 100755 index 12797dc83ba16b2489b05f7846405f236f70ad30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcma)&O$&lx5QOL4uaJ%reI2?)mxL^c4hh}O%A(Y;FY3ov&#Pn*ZxFJs?#|B6&f}@3 zYH~DDs!)OU+Ul;AmeelfOh+oI60$>H^B(iJ=DVRojz8)|bqD&EqiS$gcw7xN&>8d+ z+)7jUW3r<@QO#!;x>8xdR8`M1<7>mFj16;eA2mLe3}uO;lCOoLF46kI<-u?&)!P`% z^&dsw4mdEsH`LkcqU^xUMn{BB<3a~an=pNkeoDvOUbq%AU)(vBuMytFc#>!aBEY49 P?FMaQE - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - webp - CFBundleGetInfoString - libwebp 0.6.0 - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - webp - CFBundlePackageType - FMWK - CFBundleShortVersionString - 0.6.0 - CFBundleSignature - ???? - CFBundleVersion - 0.6.0 - - diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Resources/LICENSE.webp.txt b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Resources/LICENSE.webp.txt deleted file mode 100755 index 15993f8..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/Resources/LICENSE.webp.txt +++ /dev/null @@ -1,34 +0,0 @@ -The source code to this library used with SDL_image can be found here: -http://www.libsdl.org/projects/SDL_image/libs/ ---- - -Copyright (c) 2010, Google Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/webp b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/Versions/Current/webp deleted file mode 100755 index 6d7fd7fa3cfb452dd8ab86346b2bb6eb85507876..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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{) 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 diff --git a/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/webp b/extension/SDL2_image-2.0.3/Xcode/Frameworks/webp.framework/webp deleted file mode 100755 index 6d7fd7fa3cfb452dd8ab86346b2bb6eb85507876..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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{) 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 diff --git a/extension/SDL2_image-2.0.3/Xcode/Info-Framework.plist b/extension/SDL2_image-2.0.3/Xcode/Info-Framework.plist deleted file mode 100755 index ba9b546..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/Info-Framework.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - SDL2_image - CFBundleIdentifier - org.libsdl.SDL2-image - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - SDL2_image - CFBundlePackageType - FMWK - CFBundleShortVersionString - 2.0.3 - CFBundleVersion - 2.0.3 - - diff --git a/extension/SDL2_image-2.0.3/Xcode/SDL_image.xcodeproj/project.pbxproj b/extension/SDL2_image-2.0.3/Xcode/SDL_image.xcodeproj/project.pbxproj deleted file mode 100755 index 9328ec9..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/SDL_image.xcodeproj/project.pbxproj +++ /dev/null @@ -1,751 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 007288A80F0DA79800C302A9 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 007288A60F0DA79800C302A9 /* ApplicationServices.framework */; }; - AA50AA471F9C7C50003B9C0C /* IMG_svg.c in Sources */ = {isa = PBXBuildFile; fileRef = AA50AA461F9C7C50003B9C0C /* IMG_svg.c */; }; - AA579DF2161C07E6005F809B /* IMG_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE2161C07E6005F809B /* IMG_bmp.c */; }; - AA579DF3161C07E7005F809B /* IMG_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE2161C07E6005F809B /* IMG_bmp.c */; }; - AA579DF4161C07E7005F809B /* IMG_gif.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE3161C07E6005F809B /* IMG_gif.c */; }; - AA579DF5161C07E7005F809B /* IMG_gif.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE3161C07E6005F809B /* IMG_gif.c */; }; - AA579DF6161C07E7005F809B /* IMG_ImageIO.m in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE4161C07E6005F809B /* IMG_ImageIO.m */; }; - AA579DF7161C07E7005F809B /* IMG_ImageIO.m in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE4161C07E6005F809B /* IMG_ImageIO.m */; }; - AA579DF8161C07E7005F809B /* IMG_jpg.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE5161C07E6005F809B /* IMG_jpg.c */; }; - AA579DF9161C07E7005F809B /* IMG_jpg.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE5161C07E6005F809B /* IMG_jpg.c */; }; - AA579DFA161C07E7005F809B /* IMG_lbm.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE6161C07E6005F809B /* IMG_lbm.c */; }; - AA579DFB161C07E7005F809B /* IMG_lbm.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE6161C07E6005F809B /* IMG_lbm.c */; }; - AA579DFC161C07E7005F809B /* IMG_pcx.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE7161C07E6005F809B /* IMG_pcx.c */; }; - AA579DFD161C07E7005F809B /* IMG_pcx.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE7161C07E6005F809B /* IMG_pcx.c */; }; - AA579DFE161C07E7005F809B /* IMG_png.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE8161C07E6005F809B /* IMG_png.c */; }; - AA579DFF161C07E7005F809B /* IMG_png.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE8161C07E6005F809B /* IMG_png.c */; }; - AA579E00161C07E7005F809B /* IMG_pnm.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE9161C07E6005F809B /* IMG_pnm.c */; }; - AA579E01161C07E7005F809B /* IMG_pnm.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DE9161C07E6005F809B /* IMG_pnm.c */; }; - AA579E02161C07E7005F809B /* IMG_tga.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DEA161C07E6005F809B /* IMG_tga.c */; }; - AA579E03161C07E7005F809B /* IMG_tga.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DEA161C07E6005F809B /* IMG_tga.c */; }; - AA579E04161C07E7005F809B /* IMG_tif.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DEB161C07E6005F809B /* IMG_tif.c */; }; - AA579E05161C07E7005F809B /* IMG_tif.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DEB161C07E6005F809B /* IMG_tif.c */; }; - AA579E06161C07E7005F809B /* IMG_webp.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DEC161C07E6005F809B /* IMG_webp.c */; }; - AA579E07161C07E7005F809B /* IMG_webp.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DEC161C07E6005F809B /* IMG_webp.c */; }; - AA579E08161C07E7005F809B /* IMG_xcf.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DED161C07E6005F809B /* IMG_xcf.c */; }; - AA579E09161C07E7005F809B /* IMG_xcf.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DED161C07E6005F809B /* IMG_xcf.c */; }; - AA579E0A161C07E7005F809B /* IMG_xpm.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DEE161C07E6005F809B /* IMG_xpm.c */; }; - AA579E0B161C07E7005F809B /* IMG_xpm.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DEE161C07E6005F809B /* IMG_xpm.c */; }; - AA579E0C161C07E7005F809B /* IMG_xv.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DEF161C07E6005F809B /* IMG_xv.c */; }; - AA579E0D161C07E7005F809B /* IMG_xv.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DEF161C07E6005F809B /* IMG_xv.c */; }; - AA579E0E161C07E7005F809B /* IMG_xxx.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DF0161C07E6005F809B /* IMG_xxx.c */; }; - AA579E0F161C07E7005F809B /* IMG_xxx.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DF0161C07E6005F809B /* IMG_xxx.c */; }; - AA579E10161C07E7005F809B /* IMG.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DF1161C07E6005F809B /* IMG.c */; }; - AA579E11161C07E7005F809B /* IMG.c in Sources */ = {isa = PBXBuildFile; fileRef = AA579DF1161C07E6005F809B /* IMG.c */; }; - AADBAC88175C6AAB004F8ED2 /* webp.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = AA9EE77514B27A62008773C0 /* webp.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; - AADBAC89175C6B4C004F8ED2 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 007288A60F0DA79800C302A9 /* ApplicationServices.framework */; }; - AADBAC8A175C6B4F004F8ED2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61F85449145A19BC002CA294 /* Foundation.framework */; }; - BE1FA71A07AF4C44004B6283 /* SDL_image.h in Headers */ = {isa = PBXBuildFile; fileRef = 1014BAEA010A4B677F000001 /* SDL_image.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BE1FA76307AF7335004B6283 /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1FA76207AF7335004B6283 /* SDL2.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - BE1FA74C07AF4C45004B6283 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; - proxyType = 1; - remoteGlobalIDString = BE1FA71807AF4C44004B6283; - remoteInfo = Framework; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - AA9EE77214B27810008773C0 /* Copy Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - AADBAC88175C6AAB004F8ED2 /* webp.framework in Copy Frameworks */, - ); - name = "Copy Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 007288A60F0DA79800C302A9 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; - 1014BAEA010A4B677F000001 /* SDL_image.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SDL_image.h; path = ../SDL_image.h; sourceTree = SOURCE_ROOT; }; - 61F85449145A19BC002CA294 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - AA50AA461F9C7C50003B9C0C /* IMG_svg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_svg.c; path = ../IMG_svg.c; sourceTree = ""; }; - AA579DE2161C07E6005F809B /* IMG_bmp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_bmp.c; path = ../IMG_bmp.c; sourceTree = ""; }; - AA579DE3161C07E6005F809B /* IMG_gif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_gif.c; path = ../IMG_gif.c; sourceTree = ""; }; - AA579DE4161C07E6005F809B /* IMG_ImageIO.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IMG_ImageIO.m; path = ../IMG_ImageIO.m; sourceTree = ""; }; - AA579DE5161C07E6005F809B /* IMG_jpg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_jpg.c; path = ../IMG_jpg.c; sourceTree = ""; }; - AA579DE6161C07E6005F809B /* IMG_lbm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_lbm.c; path = ../IMG_lbm.c; sourceTree = ""; }; - AA579DE7161C07E6005F809B /* IMG_pcx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_pcx.c; path = ../IMG_pcx.c; sourceTree = ""; }; - AA579DE8161C07E6005F809B /* IMG_png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_png.c; path = ../IMG_png.c; sourceTree = ""; }; - AA579DE9161C07E6005F809B /* IMG_pnm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_pnm.c; path = ../IMG_pnm.c; sourceTree = ""; }; - AA579DEA161C07E6005F809B /* IMG_tga.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_tga.c; path = ../IMG_tga.c; sourceTree = ""; }; - AA579DEB161C07E6005F809B /* IMG_tif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_tif.c; path = ../IMG_tif.c; sourceTree = ""; }; - AA579DEC161C07E6005F809B /* IMG_webp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_webp.c; path = ../IMG_webp.c; sourceTree = ""; }; - AA579DED161C07E6005F809B /* IMG_xcf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_xcf.c; path = ../IMG_xcf.c; sourceTree = ""; }; - AA579DEE161C07E6005F809B /* IMG_xpm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_xpm.c; path = ../IMG_xpm.c; sourceTree = ""; }; - AA579DEF161C07E6005F809B /* IMG_xv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_xv.c; path = ../IMG_xv.c; sourceTree = ""; }; - AA579DF0161C07E6005F809B /* IMG_xxx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_xxx.c; path = ../IMG_xxx.c; sourceTree = ""; }; - AA579DF1161C07E6005F809B /* IMG.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG.c; path = ../IMG.c; sourceTree = ""; }; - AA9EE77514B27A62008773C0 /* webp.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = webp.framework; path = Frameworks/webp.framework; sourceTree = ""; }; - BE1FA72D07AF4C44004B6283 /* Info-Framework.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-Framework.plist"; sourceTree = ""; }; - BE1FA72E07AF4C45004B6283 /* SDL2_image.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SDL2_image.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - BE1FA74107AF4C45004B6283 /* libSDL2_image.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL2_image.a; sourceTree = BUILT_PRODUCTS_DIR; }; - BE1FA74507AF4C45004B6283 /* Create DMG */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "Create DMG"; sourceTree = BUILT_PRODUCTS_DIR; }; - BE1FA76207AF7335004B6283 /* SDL2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2.framework; path = /Library/Frameworks/SDL2.framework; sourceTree = ""; }; - F59C710300D5CB5801000001 /* ReadMe.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ReadMe.txt; sourceTree = ""; }; - F59C710400D5CB5801000001 /* Welcome.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Welcome.txt; sourceTree = ""; }; - F59C710600D5CB5801000001 /* SDL_image.info */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SDL_image.info; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - BE1FA72A07AF4C44004B6283 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - AADBAC89175C6B4C004F8ED2 /* ApplicationServices.framework in Frameworks */, - AADBAC8A175C6B4F004F8ED2 /* Foundation.framework in Frameworks */, - BE1FA76307AF7335004B6283 /* SDL2.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BE1FA73F07AF4C45004B6283 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 007288A80F0DA79800C302A9 /* ApplicationServices.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0153844A006D81B07F000001 /* Public Headers */ = { - isa = PBXGroup; - children = ( - 1014BAEA010A4B677F000001 /* SDL_image.h */, - ); - name = "Public Headers"; - sourceTree = ""; - }; - 034768DDFF38A45A11DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 089C1665FE841158C02AAC07 /* Resources */, - BE1FA72E07AF4C45004B6283 /* SDL2_image.framework */, - BE1FA74107AF4C45004B6283 /* libSDL2_image.a */, - BE1FA74507AF4C45004B6283 /* Create DMG */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* SDL_imageFramework */ = { - isa = PBXGroup; - children = ( - F59C70FC00D5CB5801000001 /* pkg-support */, - 0153844A006D81B07F000001 /* Public Headers */, - 08FB77ACFE841707C02AAC07 /* Library Source */, - BE1FA76107AF72F5004B6283 /* Frameworks */, - 034768DDFF38A45A11DB9C8B /* Products */, - BE1FA72D07AF4C44004B6283 /* Info-Framework.plist */, - ); - name = SDL_imageFramework; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - ); - name = Resources; - sourceTree = ""; - }; - 08FB77ACFE841707C02AAC07 /* Library Source */ = { - isa = PBXGroup; - children = ( - AA579DF1161C07E6005F809B /* IMG.c */, - AA579DE4161C07E6005F809B /* IMG_ImageIO.m */, - AA579DE2161C07E6005F809B /* IMG_bmp.c */, - AA579DE3161C07E6005F809B /* IMG_gif.c */, - AA579DE5161C07E6005F809B /* IMG_jpg.c */, - AA579DE6161C07E6005F809B /* IMG_lbm.c */, - AA579DE7161C07E6005F809B /* IMG_pcx.c */, - AA579DE8161C07E6005F809B /* IMG_png.c */, - AA579DE9161C07E6005F809B /* IMG_pnm.c */, - AA50AA461F9C7C50003B9C0C /* IMG_svg.c */, - AA579DEA161C07E6005F809B /* IMG_tga.c */, - AA579DEB161C07E6005F809B /* IMG_tif.c */, - AA579DEC161C07E6005F809B /* IMG_webp.c */, - AA579DED161C07E6005F809B /* IMG_xcf.c */, - AA579DEE161C07E6005F809B /* IMG_xpm.c */, - AA579DEF161C07E6005F809B /* IMG_xv.c */, - AA579DF0161C07E6005F809B /* IMG_xxx.c */, - ); - name = "Library Source"; - sourceTree = ""; - }; - BE1FA76007AF72B1004B6283 /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - 007288A60F0DA79800C302A9 /* ApplicationServices.framework */, - 61F85449145A19BC002CA294 /* Foundation.framework */, - BE1FA76207AF7335004B6283 /* SDL2.framework */, - AA9EE77514B27A62008773C0 /* webp.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - BE1FA76107AF72F5004B6283 /* Frameworks */ = { - isa = PBXGroup; - children = ( - BE1FA76007AF72B1004B6283 /* Linked Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - F59C70FC00D5CB5801000001 /* pkg-support */ = { - isa = PBXGroup; - children = ( - F59C710100D5CB5801000001 /* resources */, - F59C710600D5CB5801000001 /* SDL_image.info */, - ); - path = "pkg-support"; - sourceTree = SOURCE_ROOT; - }; - F59C710100D5CB5801000001 /* resources */ = { - isa = PBXGroup; - children = ( - F59C710300D5CB5801000001 /* ReadMe.txt */, - F59C710400D5CB5801000001 /* Welcome.txt */, - ); - path = resources; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - BE1FA71907AF4C44004B6283 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - BE1FA71A07AF4C44004B6283 /* SDL_image.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BE1FA73007AF4C45004B6283 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - BE1FA71807AF4C44004B6283 /* Framework */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00B7E3AA097EB73D00826121 /* Build configuration list for PBXNativeTarget "Framework" */; - buildPhases = ( - BE1FA71907AF4C44004B6283 /* Headers */, - BE1FA71B07AF4C44004B6283 /* Resources */, - BE1FA71C07AF4C44004B6283 /* Sources */, - BE1FA72A07AF4C44004B6283 /* Frameworks */, - BE1FA72B07AF4C44004B6283 /* Rez */, - AA9EE77214B27810008773C0 /* Copy Frameworks */, - AA9EE77314B2782A008773C0 /* Create Frameworks symlink */, - AA9EE77414B27854008773C0 /* Convert SDL includes to SDL Framework includes */, - ); - buildRules = ( - ); - comments = "Installed into ~/Library/Frameworks/SDL_image.framework\n\nAdd -framework SDL_image to your linker flags\nAdd ~/Library/Frameworks/SDL_image.framework/Headers to your header search path\nAdd ~/Library/Frameworks to your library search path"; - dependencies = ( - ); - name = Framework; - productInstallPath = "@executable_path/../Frameworks"; - productName = SDL_image; - productReference = BE1FA72E07AF4C45004B6283 /* SDL2_image.framework */; - productType = "com.apple.product-type.framework"; - }; - BE1FA72F07AF4C45004B6283 /* Static Library */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00B7E3AE097EB73D00826121 /* Build configuration list for PBXNativeTarget "Static Library" */; - buildPhases = ( - BE1FA73007AF4C45004B6283 /* Headers */, - BE1FA73107AF4C45004B6283 /* Sources */, - BE1FA73F07AF4C45004B6283 /* Frameworks */, - BE1FA74007AF4C45004B6283 /* Rez */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Static Library"; - productInstallPath = /usr/local/lib; - productName = "Static Library"; - productReference = BE1FA74107AF4C45004B6283 /* libSDL2_image.a */; - productType = "com.apple.product-type.library.static"; - }; - BE1FA74207AF4C45004B6283 /* Create DMG */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00B7E3B2097EB73D00826121 /* Build configuration list for PBXNativeTarget "Create DMG" */; - buildPhases = ( - BE1FA74407AF4C45004B6283 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - BE1FA74D07AF4C45004B6283 /* PBXTargetDependency */, - ); - name = "Create DMG"; - productInstallPath = /usr/local/bin; - productName = "Standard Package"; - productReference = BE1FA74507AF4C45004B6283 /* Create DMG */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0630; - }; - buildConfigurationList = 00B7E3B6097EB73D00826121 /* Build configuration list for PBXProject "SDL_image" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* SDL_imageFramework */; - productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */; - projectDirPath = ""; - projectRoot = ..; - targets = ( - BE1FA71807AF4C44004B6283 /* Framework */, - BE1FA72F07AF4C45004B6283 /* Static Library */, - BE1FA74207AF4C45004B6283 /* Create DMG */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - BE1FA71B07AF4C44004B6283 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXRezBuildPhase section */ - BE1FA72B07AF4C44004B6283 /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BE1FA74007AF4C45004B6283 /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXRezBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - AA9EE77314B2782A008773C0 /* Create Frameworks symlink */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Create Frameworks symlink"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "cd $SYMROOT/$CONFIGURATION/$FULL_PRODUCT_NAME\nif ! [ -L Frameworks ]; then\n rm -f Frameworks\n ln -s Versions/Current/Frameworks Frameworks\nfi"; - }; - AA9EE77414B27854008773C0 /* Convert SDL includes to SDL Framework includes */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Convert SDL includes to SDL Framework includes"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "cd $SYMROOT/$CONFIGURATION/$PUBLIC_HEADERS_FOLDER_PATH\nHEADER=SDL_image.h\nsed 's,#include \"\\(.*\\)\",#include ,' <$HEADER >$HEADER.new\nmv $HEADER.new $HEADER"; - }; - BE1FA74407AF4C45004B6283 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "PRODUCT_NAME=SDL2_image\n\n# Sign framework\nif [ \"$SDL_CODESIGN_IDENTITY\" != \"\" ]; then\n codesign --force --deep --sign \"$SDL_CODESIGN_IDENTITY\" $TARGET_BUILD_DIR/$PRODUCT_NAME.framework/Versions/A\nfi\n\n# clean up the framework, remove headers, extra files\nmkdir -p build/dmg-tmp\nxcrun CpMac -r $TARGET_BUILD_DIR/$PRODUCT_NAME.framework build/dmg-tmp/\ncp pkg-support/resources/ReadMe.txt build/dmg-tmp\n\n# remove the .DS_Store files if any (we may want to provide one in the future for fancy .dmgs)\nrm -rf build/dmg-tmp/.DS_Store\n\n# create the dmg\nhdiutil create -ov -fs HFS+ -volname $PRODUCT_NAME -srcfolder build/dmg-tmp build/$PRODUCT_NAME.dmg\n\n# clean up\nrm -rf build/dmg-tmp"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - BE1FA71C07AF4C44004B6283 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - AA579DF2161C07E6005F809B /* IMG_bmp.c in Sources */, - AA579DF4161C07E7005F809B /* IMG_gif.c in Sources */, - AA579DF6161C07E7005F809B /* IMG_ImageIO.m in Sources */, - AA579DF8161C07E7005F809B /* IMG_jpg.c in Sources */, - AA579DFA161C07E7005F809B /* IMG_lbm.c in Sources */, - AA579DFC161C07E7005F809B /* IMG_pcx.c in Sources */, - AA579DFE161C07E7005F809B /* IMG_png.c in Sources */, - AA579E00161C07E7005F809B /* IMG_pnm.c in Sources */, - AA579E02161C07E7005F809B /* IMG_tga.c in Sources */, - AA579E04161C07E7005F809B /* IMG_tif.c in Sources */, - AA579E06161C07E7005F809B /* IMG_webp.c in Sources */, - AA579E08161C07E7005F809B /* IMG_xcf.c in Sources */, - AA579E0A161C07E7005F809B /* IMG_xpm.c in Sources */, - AA579E0C161C07E7005F809B /* IMG_xv.c in Sources */, - AA579E0E161C07E7005F809B /* IMG_xxx.c in Sources */, - AA579E10161C07E7005F809B /* IMG.c in Sources */, - AA50AA471F9C7C50003B9C0C /* IMG_svg.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BE1FA73107AF4C45004B6283 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - AA579DF3161C07E7005F809B /* IMG_bmp.c in Sources */, - AA579DF5161C07E7005F809B /* IMG_gif.c in Sources */, - AA579DF7161C07E7005F809B /* IMG_ImageIO.m in Sources */, - AA579DF9161C07E7005F809B /* IMG_jpg.c in Sources */, - AA579DFB161C07E7005F809B /* IMG_lbm.c in Sources */, - AA579DFD161C07E7005F809B /* IMG_pcx.c in Sources */, - AA579DFF161C07E7005F809B /* IMG_png.c in Sources */, - AA579E01161C07E7005F809B /* IMG_pnm.c in Sources */, - AA579E03161C07E7005F809B /* IMG_tga.c in Sources */, - AA579E05161C07E7005F809B /* IMG_tif.c in Sources */, - AA579E07161C07E7005F809B /* IMG_webp.c in Sources */, - AA579E09161C07E7005F809B /* IMG_xcf.c in Sources */, - AA579E0B161C07E7005F809B /* IMG_xpm.c in Sources */, - AA579E0D161C07E7005F809B /* IMG_xv.c in Sources */, - AA579E0F161C07E7005F809B /* IMG_xxx.c in Sources */, - AA579E11161C07E7005F809B /* IMG.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - BE1FA74D07AF4C45004B6283 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = BE1FA71807AF4C44004B6283 /* Framework */; - targetProxy = BE1FA74C07AF4C45004B6283 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 007288110F0DA5BA00C302A9 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(FRAMEWORK_SEARCH_PATHS_QUOTED)", - "$(HOME)/Library/Frameworks", - /Library/Frameworks, - ); - FRAMEWORK_SEARCH_PATHS_QUOTED = "\"$(SRCROOT)/Frameworks\""; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - LOAD_BMP, - LOAD_GIF, - LOAD_JPG, - LOAD_LBM, - LOAD_PCX, - LOAD_PNG, - LOAD_PNM, - LOAD_SVG, - LOAD_TGA, - LOAD_TIF, - LOAD_WEBP, - LOAD_XPM, - LOAD_XV, - ); - GCC_SYMBOLS_PRIVATE_EXTERN = YES; - HEADER_SEARCH_PATHS = ( - "$(HEADER_SEARCH_PATHS_QUOTED)", - "$(HOME)/Library/Frameworks/SDL.framework/Headers", - /Library/Frameworks/SDL.framework/Headers, - ); - HEADER_SEARCH_PATHS_QUOTED = "\"$(SRCROOT)/Frameworks/webp.framework/Headers\""; - MACOSX_DEPLOYMENT_TARGET = 10.5; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = SDL2_image; - SDKROOT = macosx; - USER_HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS_QUOTED) $(HOME)/Library/Frameworks/SDL2.framework/Headers /Library/Frameworks/SDL2.framework/Headers"; - }; - name = Debug; - }; - 007288120F0DA5BA00C302A9 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 3.1.0; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/Frameworks\"", - ); - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Info-Framework.plist"; - INSTALL_PATH = "@rpath"; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.6; - OTHER_LDFLAGS = ( - "-weak_framework", - webp, - ); - WRAPPER_EXTENSION = framework; - }; - name = Debug; - }; - 007288130F0DA5BA00C302A9 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - FRAMEWORK_SEARCH_PATHS = ""; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - LOAD_BMP, - LOAD_GIF, - LOAD_JPG, - LOAD_LBM, - LOAD_PCX, - LOAD_PNG, - LOAD_PNM, - LOAD_SVG, - LOAD_TGA, - LOAD_TIF, - LOAD_WEBP, - LOAD_XPM, - LOAD_XV, - ); - HEADER_SEARCH_PATHS = ( - /Library/Frameworks/SDL.framework/Headers, - "~/Library/Frameworks/SDL.framework/Headers", - ); - LIBRARY_STYLE = STATIC; - OTHER_CFLAGS = ""; - OTHER_LIBTOOL_FLAGS = ""; - OTHER_REZFLAGS = ""; - REZ_EXECUTABLE = YES; - SECTORDER_FLAGS = ""; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 007288140F0DA5BA00C302A9 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - OTHER_REZFLAGS = ""; - PRODUCT_NAME = "Create DMG"; - REZ_EXECUTABLE = YES; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - ZERO_LINK = YES; - }; - name = Debug; - }; - 007288150F0DA5C400C302A9 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEPLOYMENT_POSTPROCESSING = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(FRAMEWORK_SEARCH_PATHS_QUOTED)", - "$(HOME)/Library/Frameworks", - /Library/Frameworks, - ); - FRAMEWORK_SEARCH_PATHS_QUOTED = "\"$(SRCROOT)/Frameworks\""; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - LOAD_BMP, - LOAD_GIF, - LOAD_JPG, - LOAD_LBM, - LOAD_PCX, - LOAD_PNG, - LOAD_PNM, - LOAD_SVG, - LOAD_TGA, - LOAD_TIF, - LOAD_WEBP, - LOAD_XPM, - LOAD_XV, - ); - GCC_SYMBOLS_PRIVATE_EXTERN = YES; - HEADER_SEARCH_PATHS = ( - "$(HEADER_SEARCH_PATHS_QUOTED)", - "$(HOME)/Library/Frameworks/SDL.framework/Headers", - /Library/Frameworks/SDL.framework/Headers, - ); - HEADER_SEARCH_PATHS_QUOTED = "\"$(SRCROOT)/Frameworks/webp.framework/Headers\""; - MACOSX_DEPLOYMENT_TARGET = 10.5; - PRODUCT_NAME = SDL2_image; - SDKROOT = macosx; - SEPARATE_STRIP = YES; - STRIP_STYLE = "non-global"; - USER_HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS_QUOTED) $(HOME)/Library/Frameworks/SDL2.framework/Headers /Library/Frameworks/SDL2.framework/Headers"; - }; - name = Release; - }; - 007288160F0DA5C400C302A9 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 3.1.0; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/Frameworks\"", - ); - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Info-Framework.plist"; - INSTALL_PATH = "@rpath"; - LD_RUNPATH_SEARCH_PATHS = "@loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.6; - OTHER_LDFLAGS = ( - "-weak_framework", - webp, - ); - WRAPPER_EXTENSION = framework; - }; - name = Release; - }; - 007288170F0DA5C400C302A9 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - FRAMEWORK_SEARCH_PATHS = ""; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - LOAD_BMP, - LOAD_GIF, - LOAD_JPG, - LOAD_LBM, - LOAD_PCX, - LOAD_PNG, - LOAD_PNM, - LOAD_SVG, - LOAD_TGA, - LOAD_TIF, - LOAD_WEBP, - LOAD_XPM, - LOAD_XV, - ); - HEADER_SEARCH_PATHS = ( - /Library/Frameworks/SDL.framework/Headers, - "~/Library/Frameworks/SDL.framework/Headers", - ); - LIBRARY_STYLE = STATIC; - OTHER_CFLAGS = ""; - OTHER_LIBTOOL_FLAGS = ""; - OTHER_REZFLAGS = ""; - REZ_EXECUTABLE = YES; - SECTORDER_FLAGS = ""; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 007288180F0DA5C400C302A9 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - OTHER_REZFLAGS = ""; - PRODUCT_NAME = "Create DMG"; - REZ_EXECUTABLE = YES; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - ZERO_LINK = NO; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 00B7E3AA097EB73D00826121 /* Build configuration list for PBXNativeTarget "Framework" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 007288160F0DA5C400C302A9 /* Release */, - 007288120F0DA5BA00C302A9 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 00B7E3AE097EB73D00826121 /* Build configuration list for PBXNativeTarget "Static Library" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 007288170F0DA5C400C302A9 /* Release */, - 007288130F0DA5BA00C302A9 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 00B7E3B2097EB73D00826121 /* Build configuration list for PBXNativeTarget "Create DMG" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 007288180F0DA5C400C302A9 /* Release */, - 007288140F0DA5BA00C302A9 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 00B7E3B6097EB73D00826121 /* Build configuration list for PBXProject "SDL_image" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 007288150F0DA5C400C302A9 /* Release */, - 007288110F0DA5BA00C302A9 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/extension/SDL2_image-2.0.3/Xcode/package b/extension/SDL2_image-2.0.3/Xcode/package deleted file mode 100755 index 6e6b570..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/package +++ /dev/null @@ -1,272 +0,0 @@ -#! /bin/csh -ef - -set prog = `/usr/bin/basename $0` -set usage = "Usage: $prog [-f] root-dir info-file [tiff-file] [-d dest-dir] [-r resource-dir] [-traditional | -gnutar]" -set noglob - -if (-x /usr/bin/mkbom) then - set mkbom=/usr/bin/mkbom - set lsbom=/usr/bin/lsbom -else - set mkbom=/usr/etc/mkbom - set lsbom=/usr/etc/lsbom -endif - -if (-x /usr/bin/awk) then - set awk=/usr/bin/awk -else - set awk=/bin/awk -endif - -set gnutar=/usr/bin/gnutar -set tar=/usr/bin/tar -set pax=/bin/pax - -# gather parameters -if ($#argv == 0) then - echo $usage - exit(1) -endif - -while ( $#argv > 0 ) - switch ( $argv[1] ) - case -d: - if ( $?destDir ) then - echo ${prog}: dest-dir parameter already set to ${destDir}. - echo $usage - exit(1) - else if ( $#argv < 2 ) then - echo ${prog}: -d option requires destination directory. - echo $usage - exit(1) - else - set destDir = $argv[2] - shift; shift - breaksw - endif - case -f: - if ( $?rootDir ) then - echo ${prog}: root-dir parameter already set to ${rootDir}. - echo $usage - exit(1) - else if ( $#argv < 2 ) then - echo ${prog}: -f option requires package root directory. - echo $usage - exit(1) - else - set rootDir = $argv[2] - set fflag - shift; shift - breaksw - endif - case -r: - if ( $?resDir ) then - echo ${prog}: resource-dir parameter already set to ${resDir}. - echo $usage - exit(1) - else if ( $#argv < 2 ) then - echo ${prog}: -r option requires package resource directory. - echo $usage - exit(1) - else - set resDir = $argv[2] - shift; shift - breaksw - endif - case -traditional: - set usetar - unset usegnutar - unset usepax - breaksw - case -gnutar: - set usegnutar - unset usepax - unset usetar - case -B: - # We got long file names, better use bigtar instead - #set archiver = /NextAdmin/Installer.app/Resources/installer_bigtar - echo 2>&1 ${prog}: -B flag is no longer relevant. - shift - breaksw - case -*: - echo ${prog}: Unknown option: $argv[1] - echo $usage - exit(1) - case *.info: - if ( $?info ) then - echo ${prog}: info-file parameter already set to ${info}. - echo $usage - exit(1) - else - set info = "$argv[1]" - shift - breaksw - endif - case *.tiff: - if ( $?tiff ) then - echo ${prog}: tiff-file parameter already set to ${tiff}. - echo $usage - exit(1) - else - set tiff = "$argv[1]" - shift - breaksw - endif - default: - if ( $?rootDir ) then - echo ${prog}: unrecognized parameter: $argv[1] - echo $usage - exit(1) - else - set rootDir = "$argv[1]" - shift - breaksw - endif - endsw -end - -# check for mandatory parameters -if ( ! $?rootDir ) then - echo ${prog}: missing root-dir parameter. - echo $usage - exit(1) -else if ( ! $?info) then - echo ${prog}: missing info-file parameter. - echo $usage - exit(1) -endif - -# destDir gets default value if unset on command line -if ( $?destDir ) then - /bin/mkdir -p $destDir -else - set destDir = . -endif - -# derive the root name for the package from the root name of the info file -set root = `/usr/bin/basename $info .info` - -# create package directory -set pkg = ${destDir}/${root}.pkg -echo Generating Installer package $pkg ... -if ( -e $pkg ) /bin/rm -rf $pkg -/bin/mkdir -p -m 755 $pkg - -# (gnu)tar/pax and compress root directory to package archive -echo -n " creating package archive ... " -if ( $?fflag ) then - set pkgTop = ${rootDir:t} - set parent = ${rootDir:h} - if ( "$parent" == "$pkgTop" ) set parent = "." -else - set parent = $rootDir - set pkgTop = . -endif -if ( $?usetar ) then - set pkgArchive = $pkg/$root.tar.Z - (cd $parent; $tar -w $pkgTop) | /usr/bin/compress -f -c > $pkgArchive -else if ( $?usegnutar ) then - set pkgArchive = $pkg/$root.tar.gz - (cd $parent; $gnutar zcf $pkgArchive $pkgTop) -else - set pkgArchive = $pkg/$root.pax.gz - (cd $parent; $pax -w -z -x cpio $pkgTop) > $pkgArchive -endif -/bin/chmod 444 $pkgArchive -echo done. - -# copy info file to package -set pkgInfo = $pkg/$root.info -echo -n " copying ${info:t} ... " -/bin/cp $info $pkgInfo -/bin/chmod 444 $pkgInfo -echo done. - -# copy tiff file to package -if ( $?tiff ) then - set pkgTiff = $pkg/$root.tiff - echo -n " copying ${tiff:t} ... " - /bin/cp $tiff $pkgTiff - /bin/chmod 444 $pkgTiff - echo done. -endif - -# copy resources to package -if ( $?resDir ) then - echo -n " copying ${resDir:t} ... " - - # don't want to see push/pop output - pushd $resDir > /dev/null - # get lists of resources. We'll want to change - # permissions on just these things later. - set directoriesInResDir = `find . -type d` - set filesInResDir = `find . -type f` - popd > /dev/null - - # copy the resource directory contents into the package directory - foreach resFile (`ls $resDir`) - cp -r $resDir/$resFile $pkg - end - - pushd $pkg > /dev/null - # Change all directories to +r+x, except the package - # directory itself - foreach resFileItem ($directoriesInResDir) - if ( $resFileItem != "." ) then - chmod 555 $resFileItem - endif - end - # change all flat files to read only - foreach resFileItem ($filesInResDir) - chmod 444 $resFileItem - end - popd > /dev/null - - echo done. -endif - -# generate bom file -set pkgBom = $pkg/$root.bom -echo -n " generating bom file ... " -/bin/rm -f $pkgBom -if ( $?fflag ) then - $mkbom $parent $pkgBom >& /dev/null -else - $mkbom $rootDir $pkgBom >& /dev/null -endif -/bin/chmod 444 $pkgArchive -echo done. - -# generate sizes file -set pkgSizes = $pkg/$root.sizes -echo -n " generating sizes file ... " - -# compute number of files in package -set numFiles = `$lsbom -s $pkgBom | /usr/bin/wc -l` - -# compute package size when compressed -@ compressedSize = `/usr/bin/du -k -s $pkg | $awk '{print $1}'` -@ compressedSize += 3 # add 1KB each for sizes, location, status files - -@ infoSize = `/bin/ls -s $pkgInfo | $awk '{print $1}'` -@ bomSize = `/bin/ls -s $pkgBom | $awk '{print $1}'` -if ( $?tiff ) then - @ tiffSize = `/bin/ls -s $pkgTiff | $awk '{print $1}'` -else - @ tiffSize = 0 -endif - -@ installedSize = `/usr/bin/du -k -s $rootDir | $awk '{print $1}'` -@ installedSize += $infoSize + $bomSize + $tiffSize + 3 - -# echo size parameters to sizes file -echo NumFiles $numFiles > $pkgSizes -echo InstalledSize $installedSize >> $pkgSizes -echo CompressedSize $compressedSize >> $pkgSizes -echo done. -echo " ... finished generating $pkg." - -exit(0) - -# end package - diff --git a/extension/SDL2_image-2.0.3/Xcode/pkg-support/SDL_image.info b/extension/SDL2_image-2.0.3/Xcode/pkg-support/SDL_image.info deleted file mode 100755 index fa02a8f..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/pkg-support/SDL_image.info +++ /dev/null @@ -1,15 +0,0 @@ -Title SDL_image 1.2.4 -Version 1 -Description SDL_image Library for Mac OS X (http://www.libsdl.org/projects/SDL_image) -DefaultLocation /Library/Frameworks -Diskname (null) -DeleteWarning -NeedsAuthorization NO -DisableStop NO -UseUserMask NO -Application NO -Relocatable YES -Required NO -InstallOnly NO -RequiresReboot NO -InstallFat NO diff --git a/extension/SDL2_image-2.0.3/Xcode/pkg-support/mkpackage.sh b/extension/SDL2_image-2.0.3/Xcode/pkg-support/mkpackage.sh deleted file mode 100755 index 478c0c1..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/pkg-support/mkpackage.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# Generic script to create a package with Project Builder in mind -# There should only be one version of this script for all projects! - -FRAMEWORK="$1" -VARIANT="$2" - -PACKAGE="$FRAMEWORK" -PACKAGE_RESOURCES="pkg-support/resources" - -echo "Building package for $FRAMEWORK.framework" -echo "Will fetch resources from $PACKAGE_RESOURCES" -echo "Will create the package $PACKAGE.pkg" - -# create a copy of the framework -mkdir -p build/pkg-tmp -xcrun CpMac -r "build/$FRAMEWORK.framework" build/pkg-tmp/ - -./package build/pkg-tmp "pkg-support/$PACKAGE.info" -d build -r "$PACKAGE_RESOURCES" - -# remove temporary files -rm -rf build/pkg-tmp - -# compress -(cd build; tar -zcvf "$PACKAGE.pkg.tar.gz" "$PACKAGE.pkg") - diff --git a/extension/SDL2_image-2.0.3/Xcode/pkg-support/resources/ReadMe.txt b/extension/SDL2_image-2.0.3/Xcode/pkg-support/resources/ReadMe.txt deleted file mode 100755 index 73686f7..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/pkg-support/resources/ReadMe.txt +++ /dev/null @@ -1,26 +0,0 @@ -SDL_image is an example portable image loading library for use with SDL. - -The source code is available from: http://www.libsdl.org/projects/SDL_image - -This library is distributed under the terms of the zlib license: http://www.zlib.net/zlib_license.html - -This packages contains the SDL2_image.framework for OS X. Conforming with Apple guidelines, this framework contains both the SDL runtime component and development header files. - -Requirements: -You must have the SDL2.framework installed. - -To Install: -Copy the SDL2_image.framework to /Library/Frameworks - -You may alternatively install it in /Library/Frameworks if your access privileges are not high enough. (Be aware that the Xcode templates we provide in the SDL Developer Extras package may require some adjustment for your system if you do this.) - - - - -(Partial) History of PB/Xcode projects: -2009-09-21 - Updated for 64-bit (Snow Leopard) Universal Binaries. - Switched to 10.4 minimum requirement. - Switched to ImageIO backend for distribution. - Static libraries of libpng and libjpeg are no longer maintained and may eventually be removed. - -2006-01-31 - First entry in history. Updated for Universal Binaries. Static libraries of libpng and libjpeg have been brought up-to-date and built as Universal. diff --git a/extension/SDL2_image-2.0.3/Xcode/pkg-support/resources/Welcome.txt b/extension/SDL2_image-2.0.3/Xcode/pkg-support/resources/Welcome.txt deleted file mode 100755 index 8993c91..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/pkg-support/resources/Welcome.txt +++ /dev/null @@ -1,3 +0,0 @@ -This package installs the SDL_image library into /Library/Frameworks. You can also install it in -/Library/Frameworks if your access privileges are not high enough. - diff --git a/extension/SDL2_image-2.0.3/Xcode/showimage/English.lproj/InfoPlist.strings b/extension/SDL2_image-2.0.3/Xcode/showimage/English.lproj/InfoPlist.strings deleted file mode 100755 index 1a9590d86d74085eebd038fe84c0e03852722da6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 532 zcmbV|OAoJZ2|qqyv+^0;-`d_zvh6oGpbZ{-BuY2J|IGmEbJ!*y^gSBWMqt zF9-e|)u_o^l&cQ9MlEA@bq|LlME zGHz@fhh&lXTjD=Sr;d6Rb)ylR9y^~jVlqfFjdi9=X4cD}!=_JmJLZALDca*aOOwn} LcxIZl`BD1;kMmi6 diff --git a/extension/SDL2_image-2.0.3/Xcode/showimage/Info-showimage__Upgraded_.plist b/extension/SDL2_image-2.0.3/Xcode/showimage/Info-showimage__Upgraded_.plist deleted file mode 100755 index c98d6e2..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/showimage/Info-showimage__Upgraded_.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - showimage - CFBundleIconFile - - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - APPL - CFBundleSignature - ???? - CFBundleVersion - 0.1 - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/extension/SDL2_image-2.0.3/Xcode/showimage/SDLMain.h b/extension/SDL2_image-2.0.3/Xcode/showimage/SDLMain.h deleted file mode 100755 index c56d90c..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/showimage/SDLMain.h +++ /dev/null @@ -1,16 +0,0 @@ -/* SDLMain.m - main entry point for our Cocoa-ized SDL app - Initial Version: Darrell Walisser - Non-NIB-Code & other changes: Max Horn - - Feel free to customize this file to suit your needs -*/ - -#ifndef _SDLMain_h_ -#define _SDLMain_h_ - -#import - -@interface SDLMain : NSObject -@end - -#endif /* _SDLMain_h_ */ diff --git a/extension/SDL2_image-2.0.3/Xcode/showimage/SDLMain.m b/extension/SDL2_image-2.0.3/Xcode/showimage/SDLMain.m deleted file mode 100755 index 6a2247b..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/showimage/SDLMain.m +++ /dev/null @@ -1,383 +0,0 @@ -/* SDLMain.m - main entry point for our Cocoa-ized SDL app - Initial Version: Darrell Walisser - Non-NIB-Code & other changes: Max Horn - - Feel free to customize this file to suit your needs -*/ - -#include -#include "SDLMain.h" -#include /* for MAXPATHLEN */ -#include - -/* For some reaon, Apple removed setAppleMenu from the headers in 10.4, - but the method still is there and works. To avoid warnings, we declare - it ourselves here. */ -@interface NSApplication(SDL_Missing_Methods) -- (void)setAppleMenu:(NSMenu *)menu; -@end - -/* Use this flag to determine whether we use SDLMain.nib or not */ -#define SDL_USE_NIB_FILE 0 - -/* Use this flag to determine whether we use CPS (docking) or not */ -#define SDL_USE_CPS 1 -#ifdef SDL_USE_CPS -/* Portions of CPS.h */ -typedef struct CPSProcessSerNum -{ - UInt32 lo; - UInt32 hi; -} CPSProcessSerNum; - -extern OSErr CPSGetCurrentProcess( CPSProcessSerNum *psn); -extern OSErr CPSEnableForegroundOperation( CPSProcessSerNum *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5); -extern OSErr CPSSetFrontProcess( CPSProcessSerNum *psn); - -#endif /* SDL_USE_CPS */ - -static int gArgc; -static char **gArgv; -static BOOL gFinderLaunch; -static BOOL gCalledAppMainline = FALSE; - -static NSString *getApplicationName(void) -{ - const NSDictionary *dict; - NSString *appName = 0; - - /* Determine the application name */ - dict = (const NSDictionary *)CFBundleGetInfoDictionary(CFBundleGetMainBundle()); - if (dict) - appName = [dict objectForKey: @"CFBundleName"]; - - if (![appName length]) - appName = [[NSProcessInfo processInfo] processName]; - - return appName; -} - -#if SDL_USE_NIB_FILE -/* A helper category for NSString */ -@interface NSString (ReplaceSubString) -- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString; -@end -#endif - -@interface SDLApplication : NSApplication -@end - -@implementation SDLApplication -/* Invoked from the Quit menu item */ -- (void)terminate:(id)sender -{ - /* Post a SDL_QUIT event */ - SDL_Event event; - event.type = SDL_QUIT; - SDL_PushEvent(&event); -} -@end - -/* The main class of the application, the application's delegate */ -@implementation SDLMain - -/* Set the working directory to the .app's parent directory */ -- (void) setupWorkingDirectory:(BOOL)shouldChdir -{ - if (shouldChdir) - { - char parentdir[MAXPATHLEN]; - CFURLRef url = CFBundleCopyBundleURL(CFBundleGetMainBundle()); - CFURLRef url2 = CFURLCreateCopyDeletingLastPathComponent(0, url); - if (CFURLGetFileSystemRepresentation(url2, 1, (UInt8 *)parentdir, MAXPATHLEN)) { - chdir(parentdir); /* chdir to the binary app's parent */ - } - CFRelease(url); - CFRelease(url2); - } -} - -#if SDL_USE_NIB_FILE - -/* Fix menu to contain the real app name instead of "SDL App" */ -- (void)fixMenu:(NSMenu *)aMenu withAppName:(NSString *)appName -{ - NSRange aRange; - NSEnumerator *enumerator; - NSMenuItem *menuItem; - - aRange = [[aMenu title] rangeOfString:@"SDL App"]; - if (aRange.length != 0) - [aMenu setTitle: [[aMenu title] stringByReplacingRange:aRange with:appName]]; - - enumerator = [[aMenu itemArray] objectEnumerator]; - while ((menuItem = [enumerator nextObject])) - { - aRange = [[menuItem title] rangeOfString:@"SDL App"]; - if (aRange.length != 0) - [menuItem setTitle: [[menuItem title] stringByReplacingRange:aRange with:appName]]; - if ([menuItem hasSubmenu]) - [self fixMenu:[menuItem submenu] withAppName:appName]; - } - [ aMenu sizeToFit ]; -} - -#else - -static void setApplicationMenu(void) -{ - /* warning: this code is very odd */ - NSMenu *appleMenu; - NSMenuItem *menuItem; - NSString *title; - NSString *appName; - - appName = getApplicationName(); - appleMenu = [[NSMenu alloc] initWithTitle:@""]; - - /* Add menu items */ - title = [@"About " stringByAppendingString:appName]; - [appleMenu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""]; - - [appleMenu addItem:[NSMenuItem separatorItem]]; - - title = [@"Hide " stringByAppendingString:appName]; - [appleMenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@"h"]; - - menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:@"Hide Others" action:@selector(hideOtherApplications:) keyEquivalent:@"h"]; - [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)]; - - [appleMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""]; - - [appleMenu addItem:[NSMenuItem separatorItem]]; - - title = [@"Quit " stringByAppendingString:appName]; - [appleMenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@"q"]; - - - /* Put menu into the menubar */ - menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""]; - [menuItem setSubmenu:appleMenu]; - [[NSApp mainMenu] addItem:menuItem]; - - /* Tell the application object that this is now the application menu */ - [NSApp setAppleMenu:appleMenu]; - - /* Finally give up our references to the objects */ - [appleMenu release]; - [menuItem release]; -} - -/* Create a window menu */ -static void setupWindowMenu(void) -{ - NSMenu *windowMenu; - NSMenuItem *windowMenuItem; - NSMenuItem *menuItem; - - windowMenu = [[NSMenu alloc] initWithTitle:@"Window"]; - - /* "Minimize" item */ - menuItem = [[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@"m"]; - [windowMenu addItem:menuItem]; - [menuItem release]; - - /* Put menu into the menubar */ - windowMenuItem = [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""]; - [windowMenuItem setSubmenu:windowMenu]; - [[NSApp mainMenu] addItem:windowMenuItem]; - - /* Tell the application object that this is now the window menu */ - [NSApp setWindowsMenu:windowMenu]; - - /* Finally give up our references to the objects */ - [windowMenu release]; - [windowMenuItem release]; -} - -/* Replacement for NSApplicationMain */ -static void CustomApplicationMain (int argc, char **argv) -{ - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - SDLMain *sdlMain; - - /* Ensure the application object is initialised */ - [SDLApplication sharedApplication]; - -#ifdef SDL_USE_CPS - { - CPSProcessSerNum PSN; - /* Tell the dock about us */ - if (!CPSGetCurrentProcess(&PSN)) - if (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103)) - if (!CPSSetFrontProcess(&PSN)) - [SDLApplication sharedApplication]; - } -#endif /* SDL_USE_CPS */ - - /* Set up the menubar */ - [NSApp setMainMenu:[[NSMenu alloc] init]]; - setApplicationMenu(); - setupWindowMenu(); - - /* Create SDLMain and make it the app delegate */ - sdlMain = [[SDLMain alloc] init]; - [NSApp setDelegate:sdlMain]; - - /* Start the main event loop */ - [NSApp run]; - - [sdlMain release]; - [pool release]; -} - -#endif - - -/* - * Catch document open requests...this lets us notice files when the app - * was launched by double-clicking a document, or when a document was - * dragged/dropped on the app's icon. You need to have a - * CFBundleDocumentsType section in your Info.plist to get this message, - * apparently. - * - * Files are added to gArgv, so to the app, they'll look like command line - * arguments. Previously, apps launched from the finder had nothing but - * an argv[0]. - * - * This message may be received multiple times to open several docs on launch. - * - * This message is ignored once the app's mainline has been called. - */ -- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename -{ - const char *temparg; - size_t arglen; - char *arg; - char **newargv; - - if (!gFinderLaunch) /* MacOS is passing command line args. */ - return FALSE; - - if (gCalledAppMainline) /* app has started, ignore this document. */ - return FALSE; - - temparg = [filename UTF8String]; - arglen = SDL_strlen(temparg) + 1; - arg = (char *) SDL_malloc(arglen); - if (arg == NULL) - return FALSE; - - newargv = (char **) realloc(gArgv, sizeof (char *) * (gArgc + 2)); - if (newargv == NULL) - { - SDL_free(arg); - return FALSE; - } - gArgv = newargv; - - SDL_strlcpy(arg, temparg, arglen); - gArgv[gArgc++] = arg; - gArgv[gArgc] = NULL; - return TRUE; -} - - -/* Called when the internal event loop has just started running */ -- (void) applicationDidFinishLaunching: (NSNotification *) note -{ - int status; - - /* Set the working directory to the .app's parent directory */ - [self setupWorkingDirectory:gFinderLaunch]; - -#if SDL_USE_NIB_FILE - /* Set the main menu to contain the real app name instead of "SDL App" */ - [self fixMenu:[NSApp mainMenu] withAppName:getApplicationName()]; -#endif - - /* Hand off to main application code */ - gCalledAppMainline = TRUE; - status = SDL_main (gArgc, gArgv); - - /* We're done, thank you for playing */ - exit(status); -} -@end - - -@implementation NSString (ReplaceSubString) - -- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString -{ - unsigned int bufferSize; - unsigned int selfLen = [self length]; - unsigned int aStringLen = [aString length]; - unichar *buffer; - NSRange localRange; - NSString *result; - - bufferSize = selfLen + aStringLen - aRange.length; - buffer = (unichar *)NSAllocateMemoryPages(bufferSize*sizeof(unichar)); - - /* Get first part into buffer */ - localRange.location = 0; - localRange.length = aRange.location; - [self getCharacters:buffer range:localRange]; - - /* Get middle part into buffer */ - localRange.location = 0; - localRange.length = aStringLen; - [aString getCharacters:(buffer+aRange.location) range:localRange]; - - /* Get last part into buffer */ - localRange.location = aRange.location + aRange.length; - localRange.length = selfLen - localRange.location; - [self getCharacters:(buffer+aRange.location+aStringLen) range:localRange]; - - /* Build output string */ - result = [NSString stringWithCharacters:buffer length:bufferSize]; - - NSDeallocateMemoryPages(buffer, bufferSize); - - return result; -} - -@end - - - -#ifdef main -# undef main -#endif - - -/* Main entry point to executable - should *not* be SDL_main! */ -int main (int argc, char **argv) -{ - /* Copy the arguments into a global variable */ - /* This is passed if we are launched by double-clicking */ - if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) { - gArgv = (char **) SDL_malloc(sizeof (char *) * 2); - gArgv[0] = argv[0]; - gArgv[1] = NULL; - gArgc = 1; - gFinderLaunch = YES; - } else { - int i; - gArgc = argc; - gArgv = (char **) SDL_malloc(sizeof (char *) * (argc+1)); - for (i = 0; i <= argc; i++) - gArgv[i] = argv[i]; - gFinderLaunch = NO; - } - -#if SDL_USE_NIB_FILE - [SDLApplication poseAsClass:[NSApplication class]]; - NSApplicationMain (argc, argv); -#else - CustomApplicationMain (argc, argv); -#endif - return 0; -} - diff --git a/extension/SDL2_image-2.0.3/Xcode/showimage/showimage.xcodeproj/project.pbxproj b/extension/SDL2_image-2.0.3/Xcode/showimage/showimage.xcodeproj/project.pbxproj deleted file mode 100755 index 88f79b0..0000000 --- a/extension/SDL2_image-2.0.3/Xcode/showimage/showimage.xcodeproj/project.pbxproj +++ /dev/null @@ -1,340 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - BE1FA82C07AF9002004B6283 /* SDLMain.h in Headers */ = {isa = PBXBuildFile; fileRef = F5A47A9D01A0482F01D3D55B /* SDLMain.h */; }; - BE1FA82E07AF9002004B6283 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - BE1FA83007AF9002004B6283 /* SDLMain.m in Sources */ = {isa = PBXBuildFile; fileRef = F5A47A9E01A0483001D3D55B /* SDLMain.m */; }; - BE1FA83107AF9002004B6283 /* showimage.c in Sources */ = {isa = PBXBuildFile; fileRef = F5A068FF01CD8555012F876B /* showimage.c */; }; - BE1FA83307AF9002004B6283 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - BE1FA83407AF9002004B6283 /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1FA82007AF8F33004B6283 /* SDL.framework */; }; - BE1FA83507AF9002004B6283 /* SDL_image.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1FA82207AF8F44004B6283 /* SDL_image.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - BE1FA82007AF8F33004B6283 /* SDL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL.framework; path = /Library/Frameworks/SDL.framework; sourceTree = ""; }; - BE1FA82207AF8F44004B6283 /* SDL_image.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL_image.framework; path = /Library/Frameworks/SDL_image.framework; sourceTree = ""; }; - BE1FA83607AF9002004B6283 /* Info-showimage__Upgraded_.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-showimage__Upgraded_.plist"; sourceTree = ""; }; - BE1FA83707AF9002004B6283 /* showimage.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = showimage.app; sourceTree = BUILT_PRODUCTS_DIR; }; - F5A068FF01CD8555012F876B /* showimage.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = showimage.c; path = ../../showimage.c; sourceTree = SOURCE_ROOT; }; - F5A47A9D01A0482F01D3D55B /* SDLMain.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLMain.h; sourceTree = SOURCE_ROOT; }; - F5A47A9E01A0483001D3D55B /* SDLMain.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLMain.m; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - BE1FA83207AF9002004B6283 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - BE1FA83307AF9002004B6283 /* Cocoa.framework in Frameworks */, - BE1FA83407AF9002004B6283 /* SDL.framework in Frameworks */, - BE1FA83507AF9002004B6283 /* SDL_image.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* Classes */ = { - isa = PBXGroup; - children = ( - F5A47A9D01A0482F01D3D55B /* SDLMain.h */, - F5A47A9E01A0483001D3D55B /* SDLMain.m */, - ); - name = Classes; - sourceTree = ""; - }; - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - BE1FA82207AF8F44004B6283 /* SDL_image.framework */, - BE1FA82007AF8F33004B6283 /* SDL.framework */, - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 29B97325FDCFA39411CA2CEA /* Foundation.framework */, - 29B97324FDCFA39411CA2CEA /* AppKit.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - BE1FA83707AF9002004B6283 /* showimage.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* SDL App */ = { - isa = PBXGroup; - children = ( - 080E96DDFE201D6D7F000001 /* Classes */, - 29B97315FDCFA39411CA2CEA /* Other Sources */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - BE1FA83607AF9002004B6283 /* Info-showimage__Upgraded_.plist */, - ); - name = "SDL App"; - sourceTree = ""; - }; - 29B97315FDCFA39411CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - F5A068FF01CD8555012F876B /* showimage.c */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - BE1FA82B07AF9002004B6283 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - BE1FA82C07AF9002004B6283 /* SDLMain.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - BE1FA82A07AF9002004B6283 /* showimage */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00B7E55F097EF9A500826121 /* Build configuration list for PBXNativeTarget "showimage" */; - buildPhases = ( - BE1FA82B07AF9002004B6283 /* Headers */, - BE1FA82D07AF9002004B6283 /* Resources */, - BE1FA82F07AF9002004B6283 /* Sources */, - BE1FA83207AF9002004B6283 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = showimage; - productInstallPath = "$(HOME)/Applications"; - productName = "SDL App"; - productReference = BE1FA83707AF9002004B6283 /* showimage.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0420; - }; - buildConfigurationList = 00B7E563097EF9A500826121 /* Build configuration list for PBXProject "showimage" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* SDL App */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - BE1FA82A07AF9002004B6283 /* showimage */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - BE1FA82D07AF9002004B6283 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BE1FA82E07AF9002004B6283 /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - BE1FA82F07AF9002004B6283 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BE1FA83007AF9002004B6283 /* SDLMain.m in Sources */, - BE1FA83107AF9002004B6283 /* showimage.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C165DFE840E0CC02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 00B7E560097EF9A500826121 /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(HOME)/Library/Frameworks", - /Library/Frameworks, - ); - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - HEADER_SEARCH_PATHS = ( - "$(HOME)/Library/Frameworks/SDL.framework/Headers", - /Library/Frameworks/SDL.framework/Headers, - ); - INFOPLIST_FILE = "Info-showimage__Upgraded_.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - LIBRARY_SEARCH_PATHS = ""; - PRODUCT_NAME = showimage; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = app; - }; - name = Development; - }; - 00B7E561097EF9A500826121 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(HOME)/Library/Frameworks", - /Library/Frameworks, - ); - HEADER_SEARCH_PATHS = ( - "$(HOME)/Library/Frameworks/SDL.framework/Headers", - /Library/Frameworks/SDL.framework/Headers, - ); - INFOPLIST_FILE = "Info-showimage__Upgraded_.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - LIBRARY_SEARCH_PATHS = ""; - PRODUCT_NAME = showimage; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = app; - }; - name = Deployment; - }; - 00B7E562097EF9A500826121 /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(HOME)/Library/Frameworks", - /Library/Frameworks, - ); - HEADER_SEARCH_PATHS = ( - "$(HOME)/Library/Frameworks/SDL.framework/Headers", - /Library/Frameworks/SDL.framework/Headers, - ); - INFOPLIST_FILE = "Info-showimage__Upgraded_.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - LIBRARY_SEARCH_PATHS = ""; - PRODUCT_NAME = showimage; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = app; - }; - name = Default; - }; - 00B7E564097EF9A500826121 /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Development; - }; - 00B7E565097EF9A500826121 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Deployment; - }; - 00B7E566097EF9A500826121 /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Default; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 00B7E55F097EF9A500826121 /* Build configuration list for PBXNativeTarget "showimage" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00B7E560097EF9A500826121 /* Development */, - 00B7E561097EF9A500826121 /* Deployment */, - 00B7E562097EF9A500826121 /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; - 00B7E563097EF9A500826121 /* Build configuration list for PBXProject "showimage" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00B7E564097EF9A500826121 /* Development */, - 00B7E565097EF9A500826121 /* Deployment */, - 00B7E566097EF9A500826121 /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/extension/SDL2_image-2.0.3/acinclude/libtool.m4 b/extension/SDL2_image-2.0.3/acinclude/libtool.m4 deleted file mode 100755 index 03771a7..0000000 --- a/extension/SDL2_image-2.0.3/acinclude/libtool.m4 +++ /dev/null @@ -1,7373 +0,0 @@ -############################################################################## -# Based on libtool-2.2.6a -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 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) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 Free Software Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# 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 GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -]) - -# serial 56 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.58])dnl We use AC_INCLUDES_DEFAULT -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 - -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_CC_BASENAME(CC) -# ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -m4_defun([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` -]) - - -# _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 -_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_CMD_RELOAD])dnl -m4_require([_LT_CHECK_MAGIC_METHOD])dnl -m4_require([_LT_CMD_OLD_ARCHIVE])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl - -_LT_CONFIG_LIBTOOL_INIT([ -# See if we are running on zsh, and set the options which 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 -_LT_PROG_ECHO_BACKSLASH - -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 "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# 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. -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' - -# 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_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 "X$][$1" | $Xsed -e "$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 "X$" | $Xsed -e "$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' - -# Quote evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - 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 "X\\\\\$\$var"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Fix-up fallback echo if it was mangled by the above quoting rules. -case \$lt_ECHO in -*'\\\[$]0 --fallback-echo"')dnl " - lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` - ;; -esac - -_LT_OUTPUT_LIBTOOL_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]) -cat >"$CONFIG_LT" <<_LTEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate a libtool stub with the current configuration. - -lt_cl_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_LTEOF - -cat >>"$CONFIG_LT" <<\_LTEOF -AS_SHELL_SANITIZE -_AS_PREPARE - -exec AS_MESSAGE_FD>&1 -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) 2008 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. -if test "$no_create" != yes; then - lt_cl_success=: - test "$silent" = yes && - 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) -fi -])# 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 which 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 - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -_LT_COPYING -_LT_LIBTOOL_TAGS - -# ### BEGIN LIBTOOL CONFIG -_LT_LIBTOOL_CONFIG_VARS -_LT_LIBTOOL_TAG_VARS -# ### END LIBTOOL CONFIG - -_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 "X${COLLECT_NAMES+set}" != Xset; 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - _LT_PROG_XSI_SHELLFNS - - sed -n '/^# Generated shell functions inserted here/,$p' "$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' - TIMESTAMP='$TIMESTAMP' - 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)], - [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 - - -# _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([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)]) -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], []) - - -# _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 test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; 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" - ]) - 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 "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; 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" != ":"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac -]) - - -# _LT_DARWIN_LINKER_FEATURES -# -------------------------- -# 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 - _LT_TAGVAR(whole_archive_flag_spec, $1)='' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" - case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=echo - _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 "$lt_cv_apple_cc_single_mod" != "yes"; 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 -# ----------------------- -# 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. -m4_defun([_LT_SYS_MODULE_PATH_AIX], -[m4_require([_LT_DECL_SED])dnl -AC_LINK_IFELSE(AC_LANG_PROGRAM,[ -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -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 "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi],[]) -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -])# _LT_SYS_MODULE_PATH_AIX - - -# _LT_SHELL_INIT(ARG) -# ------------------- -m4_define([_LT_SHELL_INIT], -[ifdef([AC_DIVERSION_NOTICE], - [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], - [AC_DIVERT_PUSH(NOTICE)]) -$1 -AC_DIVERT_POP -])# _LT_SHELL_INIT - - -# _LT_PROG_ECHO_BACKSLASH -# ----------------------- -# Add some code to the start of the generated configure script which -# will find an echo command which doesn't interpret backslashes. -m4_defun([_LT_PROG_ECHO_BACKSLASH], -[_LT_SHELL_INIT([ -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$lt_ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` - ;; -esac - -ECHO=${lt_ECHO-echo} -if test "X[$]1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X[$]1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then - # Yippee, $ECHO works! - : -else - # Restart under the correct shell. - exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} -fi - -if test "X[$]1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<_LT_EOF -[$]* -_LT_EOF - exit 0 -fi - -# 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 - -if test -z "$lt_ECHO"; then - if test "X${echo_test_string+set}" != Xset; then - # find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if { echo_test_string=`eval $cmd`; } 2>/dev/null && - { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null - then - break - fi - done - fi - - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : - else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$ECHO" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - ECHO='print -r' - elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} - else - # Try using printf. - ECHO='printf %s\n' - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - ECHO="$CONFIG_SHELL [$]0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$CONFIG_SHELL [$]0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do - if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "[$]0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} - else - # Oops. We lost completely, so just stick with echo. - ECHO=echo - fi - fi - fi - fi - fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -lt_ECHO=$ECHO -if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then - lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" -fi - -AC_SUBST(lt_ECHO) -]) -_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) -_LT_DECL([], [ECHO], [1], - [An echo program that does not interpret backslashes]) -])# _LT_PROG_ECHO_BACKSLASH - - -# _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 "x$enable_libtool_lock" != xno && 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 which ABI we are using. - 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 which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" = yes; 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* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - 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*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|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" - ;; - powerpc64le-*linux*) - LD="${LD-ld} -m elf64lppc" - ;; - powerpc64-*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 x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -sparc*-*solaris*) - # Find out which ABI we are using. - 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*) LD="${LD-ld} -m elf64_sparc" ;; - *) - 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_CMD_OLD_ARCHIVE -# ------------------- -m4_defun([_LT_CMD_OLD_ARCHIVE], -[AC_CHECK_TOOL(AR, ar, false) -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -_LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1]) - -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 - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi -_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_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" - # 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:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 x"[$]$2" = xyes; 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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/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 x"[$]$2" = xyes; 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; - ;; - - beos*) - # On BeOS, this test takes a really really long time. - # So we just punt and use a minimum line length of 8192. - 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; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # 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 - ;; - - 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"; 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"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ - = "XX$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 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 "$cross_compiling" = yes; 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 __oline__ "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 - -void fnord() { int i=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; - /* 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 "x$enable_dlopen" != xyes; 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 - ]) - ;; - - *) - 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 "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && 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 "x$lt_cv_dlopen_self" = xyes; 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:__oline__: $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:__oline__: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; 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 "$hard_links" = no; 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 in which 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 "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then - - # We can hardcode non-existent directories. - if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && - # 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 "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && - test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; 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 "$_LT_TAGVAR(hardcode_action, $1)" = relink || - test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; 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_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 -AC_MSG_CHECKING([dynamic linker characteristics]) -m4_if([$1], - [], [ -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then - # 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 -e 's/;/ /g'` - else - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # 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` - 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" - else - 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; } -}'` - sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` -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 - 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 - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; 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 - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # 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}' - else - # 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' - fi - 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=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $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 - 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,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) - 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}' - soname_spec='`echo ${libname} | sed -e 's/^lib//'`${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - #soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - soname_spec='`echo ${libname} | $SED -e 's/^lib//'`${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - 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 - ;; - 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 - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # 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 - 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 - ;; - -freebsd1*) - dynamic_linker=no - ;; - -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[[123]]*) 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} $libname${shared_ext}' - 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 - ;; - -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 - 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 "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - 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' - ;; - -interix[[3-9]]*) - 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' - 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 "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - 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 - ;; - -# This must be Linux ELF. -linux* | k*bsd*-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' - 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 - 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], - [shlibpath_overrides_runpath=yes])]) - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - - # 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 - - # Append ld.so.conf contents 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;/^$/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' - ;; - -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 - 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*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - 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 - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[[89]] | openbsd2.[[89]].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -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 - 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 "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux - 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 - 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=freebsd-elf - 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 "$with_gnu_ld" = yes; 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 - 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 - 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 "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -fi - -_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([], [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], [2], - [Run-time system search path for libraries]) -])# _LT_SYS_DYNAMIC_LINKER - - -# _LT_PATH_TOOL_PREFIX(TOOL) -# -------------------------- -# find a file program which 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 which 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 - -AC_ARG_WITH([gnu-ld], - [AS_HELP_STRING([--with-gnu-ld], - [assume the C compiler uses GNU ld @<:@default=no@:>@])], - [test "$withval" = no || with_gnu_ld=yes], - [with_gnu_ld=no])dnl - -ac_prog=ld -if test "$GCC" = yes; 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 "$with_gnu_ld" = yes; 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 /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 - 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 - lt_cv_deplibs_check_method=pass_all - ;; - -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 - ;; - -gnu*) - 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]) 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 Linux ELF. -linux* | k*bsd*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - 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*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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 - ;; -esac -]) -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_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 - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - 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 "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) - 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:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:__oline__: $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:__oline__: 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_LIB_M -# -------- -# check for math library -AC_DEFUN([LT_LIB_M], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case $host in -*-*-beos* | *-*-cygwin* | *-*-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 "$GCC" = yes; then - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' - - _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([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 "$host_cpu" = ia64; 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 - -# 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 -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$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 -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/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 - # and D for any global 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};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print 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 - - # 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 -#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. */ -const struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[[]] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$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_save_LIBS="$LIBS" - lt_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_save_LIBS" - CFLAGS="$lt_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 "$pipe_works" = yes; 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 - -_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_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_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)= - -AC_MSG_CHECKING([for $compiler option to produce PIC]) -m4_if([$1], [CXX], [ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; 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 "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - 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']) - ;; - 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)= - ;; - 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 "$host_cpu" = ia64; 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 - ;; - 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 "$host_cpu" != ia64; 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) - 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*) - # IBM XL 8.0 on PPC - _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*) - ;; - *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*) - # 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 "$GCC" = yes; 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 "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - 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']) - ;; - - 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' - ;; - - 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 - 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 "$host_cpu" = ia64; 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 - ;; - - 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']) - ;; - - 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) - 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' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # 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*) - # IBM XL C 8.0/Fortran 10.1 on PPC - _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)='-Wl,' - ;; - *Sun\ F*) - # 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)='' - ;; - 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*) - _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 which 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_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], - [How to pass a linker flag through the compiler]) - -# -# 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]) - -# -# 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_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' - 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 AIX nm, but means don't demangle with GNU 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")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; - cygwin* | mingw* | cegcc*) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] -], [ - 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_flag_spec_ld, $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 "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - _LT_TAGVAR(ld_shlibs, $1)=yes - if test "$with_gnu_ld" = yes; 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 2>&1` in - *\ [[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 "$host_cpu" != ia64; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH -*** so that a non-GNU linker is found, and then restart. - -_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(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/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' - - 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 (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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 - ;; - - 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) - tmp_diet=no - if test "$host_os" = linux-dietlibc; 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 "$tmp_diet" = no - then - tmp_addflag= - 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; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # 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; $ECHO \"$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' ;; - xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - 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; $ECHO \"$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 "x$supports_anon_versioning" = xyes; 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 - xlf*) - # 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)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' - _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; 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 $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - netbsd*) - 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 $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' - 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 $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 - ;; - - 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 can not -*** 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 $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 - - if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; 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 "$GCC" = yes && 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 "$host_cpu" = ia64; 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 AIX nm, but means don't demangle with GNU 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")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | 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 - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - 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,' - - if test "$GCC" = yes; 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 "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - 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_use_runtimelinking" = yes; 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 - _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 "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; 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 - _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' - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - 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. - _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 `$ECHO "X$deplibs" | $Xsed -e '\''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(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - ;; - - 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 - ;; - - freebsd1*) - _LT_TAGVAR(ld_shlibs, $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 -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 "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $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 $output_objdir/$soname = $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 "$GCC" = yes -a "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${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 "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $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 "$GCC" = yes -a "$with_gnu_ld" = no; 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 -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${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' - ;; - *) - _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 "$with_gnu_ld" = no; 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 "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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. - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - AC_LINK_IFELSE(int foo(void) {}, - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - ) - LDFLAGS="$save_LDFLAGS" - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -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" && $ECHO "X-set_version $verstring" | $Xsed` -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 - ;; - - netbsd*) - 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*) - 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__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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 - case $host_os in - openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - ;; - *) - _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' - ;; - esac - 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 - _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; 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" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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 "$GCC" = yes; 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}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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 "X-set_version $verstring" | $Xsed` -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 "$GCC" = yes; then - wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${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 ${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 "$GCC" = yes; 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 "x$host_vendor" = xsequent; 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 "$GCC" = yes; 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 can NOT 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 "$GCC" = yes; 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 x$host_vendor = xsni; 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 "$_LT_TAGVAR(ld_shlibs, $1)" = no && 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 "$enable_shared" = yes && test "$GCC" = yes; 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_MSG_CHECKING([whether -lc should be explicitly linked in]) - $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_TAGVAR(archive_cmds_need_lc, $1)=no - else - _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* - AC_MSG_RESULT([$_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_flag_spec_ld], [1], - [[If ld is used when linking, 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([], [fix_srcfile_path], [1], - [Fix the shell variable $srcfile for the compiler]) -_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([], [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 which 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 "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - 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 "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_CONFIG($1) -fi -AC_LANG_POP -CC="$lt_save_CC" -])# _LT_LANG_C_CONFIG - - -# _LT_PROG_CXX -# ------------ -# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ -# compiler, we have our own version here. -m4_defun([_LT_PROG_CXX], -[ -pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) -AC_PROG_CXX -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP -else - _lt_caught_CXX_error=yes -fi -popdef([AC_MSG_ERROR]) -])# _LT_PROG_CXX - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([_LT_PROG_CXX], []) - - -# _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], -[AC_REQUIRE([_LT_PROG_CXX])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_EGREP])dnl - -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_flag_spec_ld, $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(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 "$_lt_caught_CXX_error" != yes; 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_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++"} - 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 "$GXX" = yes; 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 "$GXX" = yes; 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 "$with_gnu_ld" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -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 "\-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 "$host_cpu" = ia64; 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 - # need to do runtime linking. - 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 - ;; - 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,' - - if test "$GXX" = yes; 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 "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - 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_use_runtimelinking" = yes; 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 - _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 "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; 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 - _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' - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared - # libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - 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*) - # _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(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 (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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 - ;; - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; - - 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 - ;; - - freebsd[[12]]*) - # 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 - ;; - - gnu*) - ;; - - 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 $output_objdir/$soname = $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; $ECHO "X$list" | $Xsed' - ;; - *) - if test "$GXX" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $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 $with_gnu_ld = no; 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; $ECHO "X$list" | $Xsed' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; 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 -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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 "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -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) - 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; $ECHO "X$list" | $Xsed' - - _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 | $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 | $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 | $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 | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - *) # Version 6 will 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; $ECHO \"$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=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' - ;; - xl*) - # 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 "x$supports_anon_versioning" = xyes; 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; $ECHO \"$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='echo' - - # 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 - ;; - - openbsd2*) - # C++ shared libraries are fairly broken - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - openbsd*) - 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__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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=echo - 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" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -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" && $ECHO "X-set_version $verstring" | $Xsed` -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 "X-set_version $verstring" | $Xsed` -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=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; 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" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${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 "\-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*) - # 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='echo' - - # 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 "$GXX" = yes && test "$with_gnu_ld" = no; 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 -nostdlib $LDFLAGS $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 -nostdlib ${wl}-M $wl$lib.exp -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 "\-L"' - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $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 -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 "\-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 can NOT 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(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 "$_LT_TAGVAR(ld_shlibs, $1)" = no && 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 - 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 "$_lt_caught_CXX_error" != yes - -AC_LANG_POP -])# _LT_LANG_CXX_CONFIG - - -# _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 -# 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 -]) -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 $p in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test $p = "-L" || - test $p = "-R"; then - prev=$p - continue - else - prev= - fi - - if test "$pre_test_object_deps_done" = no; then - case $p 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 - ;; - - *.$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 "$pre_test_object_deps_done" = no; 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 - -# 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)= - ;; - -linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; - -solaris*) - case $cc_basename in - CC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - # Adding this requires a known-good setup of shared libraries for - # Sun compiler versions before 5.6, else PIC objects from an old - # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; -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_PROG_F77 -# ------------ -# Since AC_PROG_F77 is broken, in that it returns the empty string -# if there is no fortran compiler, we have our own version here. -m4_defun([_LT_PROG_F77], -[ -pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) -AC_PROG_F77 -if test -z "$F77" || test "X$F77" = "Xno"; then - _lt_disable_F77=yes -fi -popdef([AC_MSG_ERROR]) -])# _LT_PROG_F77 - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([_LT_PROG_F77], []) - - -# _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_REQUIRE([_LT_PROG_F77])dnl -AC_LANG_PUSH(Fortran 77) - -_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_flag_spec_ld, $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(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 "$_lt_disable_F77" != yes; 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 - CC=${F77-"f77"} - 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 "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - 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 "$enable_shared" = yes || 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" -fi # test "$_lt_disable_F77" != yes - -AC_LANG_POP -])# _LT_LANG_F77_CONFIG - - -# _LT_PROG_FC -# ----------- -# Since AC_PROG_FC is broken, in that it returns the empty string -# if there is no fortran compiler, we have our own version here. -m4_defun([_LT_PROG_FC], -[ -pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) -AC_PROG_FC -if test -z "$FC" || test "X$FC" = "Xno"; then - _lt_disable_FC=yes -fi -popdef([AC_MSG_ERROR]) -])# _LT_PROG_FC - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([_LT_PROG_FC], []) - - -# _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_REQUIRE([_LT_PROG_FC])dnl -AC_LANG_PUSH(Fortran) - -_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_flag_spec_ld, $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(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 "$_lt_disable_FC" != yes; 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 - CC=${FC-"f95"} - 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 "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - 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 "$enable_shared" = yes || 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" -fi # test "$_lt_disable_FC" != yes - -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_GCC=$GCC -GCC=yes -CC=${GCJ-"gcj"} -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 - -## 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" -])# _LT_LANG_GCJ_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_GCC=$GCC -GCC= -CC=${RC-"windres"} -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" -])# _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 "x${GCJFLAGS+set}" = xset || 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_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_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 $lt_ac_count -gt 10 && 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], -[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -AC_MSG_RESULT([$xsi_shell]) -_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) - -AC_MSG_CHECKING([whether the shell understands "+="]) -lt_shell_append=no -( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -AC_MSG_RESULT([$lt_shell_append]) -_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) - -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_PROG_XSI_SHELLFNS -# --------------------- -# Bourne and XSI compatible variants of some useful shell functions. -m4_defun([_LT_PROG_XSI_SHELLFNS], -[case $xsi_shell in - yes) - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac -} - -# func_basename file -func_basename () -{ - func_basename_result="${1##*/}" -} - -# 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" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}" -} - -# func_stripname 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). -func_stripname () -{ - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"} -} - -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=${1%%=*} - func_opt_split_arg=${1#*=} -} - -# func_lo2o object -func_lo2o () -{ - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=${1%.*}.lo -} - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=$(( $[*] )) -} - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=${#1} -} - -_LT_EOF - ;; - *) # Bourne compatible functions. - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} - -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -} - -dnl func_dirname_and_basename -dnl A portable version of this function is already defined in general.m4sh -dnl so there is no need for it here. - -# func_stripname 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). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; - esac -} - -# sed scripts: -my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' -my_sed_long_arg='1s/^-[[^=]]*=//' - -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` - func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` -} - -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` -} - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "$[@]"` -} - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` -} - -_LT_EOF -esac - -case $lt_shell_append in - yes) - cat << \_LT_EOF >> "$cfgfile" - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$[1]+=\$[2]" -} -_LT_EOF - ;; - *) - cat << \_LT_EOF >> "$cfgfile" - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$[1]=\$$[1]\$[2]" -} - -_LT_EOF - ;; - esac -]) - diff --git a/extension/SDL2_image-2.0.3/acinclude/ltoptions.m4 b/extension/SDL2_image-2.0.3/acinclude/ltoptions.m4 deleted file mode 100755 index d4df679..0000000 --- a/extension/SDL2_image-2.0.3/acinclude/ltoptions.m4 +++ /dev/null @@ -1,370 +0,0 @@ -############################################################################## -# Helper functions for option handling. -*- Autoconf -*- -# -# Copyright (C) 2004, 2005, 2007, 2008 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 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_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], [0], [Assembler program])dnl - -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl - -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [0], [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_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], - [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], - [pic_mode=default]) - -test -z "$pic_mode" && 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/extension/SDL2_image-2.0.3/acinclude/ltsugar.m4 b/extension/SDL2_image-2.0.3/acinclude/ltsugar.m4 deleted file mode 100755 index 02a939d..0000000 --- a/extension/SDL2_image-2.0.3/acinclude/ltsugar.m4 +++ /dev/null @@ -1,125 +0,0 @@ -############################################################################## -# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2008 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/extension/SDL2_image-2.0.3/acinclude/ltversion.m4 b/extension/SDL2_image-2.0.3/acinclude/ltversion.m4 deleted file mode 100755 index 83a83f2..0000000 --- a/extension/SDL2_image-2.0.3/acinclude/ltversion.m4 +++ /dev/null @@ -1,25 +0,0 @@ -############################################################################## -# ltversion.m4 -- version numbers -*- Autoconf -*- -# -# Copyright (C) 2004 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. - -# Generated from ltversion.in. - -# serial 3012 ltversion.m4 -# This file is part of GNU Libtool - -m4_define([LT_PACKAGE_VERSION], [2.2.6]) -m4_define([LT_PACKAGE_REVISION], [1.3012]) - -AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.2.6' -macro_revision='1.3012' -_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) -_LT_DECL(, macro_revision, 0) -]) - diff --git a/extension/SDL2_image-2.0.3/acinclude/lt~obsolete.m4 b/extension/SDL2_image-2.0.3/acinclude/lt~obsolete.m4 deleted file mode 100755 index 3b2acd4..0000000 --- a/extension/SDL2_image-2.0.3/acinclude/lt~obsolete.m4 +++ /dev/null @@ -1,93 +0,0 @@ -############################################################################## -# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007 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 4 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_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) -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])]) diff --git a/extension/SDL2_image-2.0.3/acinclude/pkg.m4 b/extension/SDL2_image-2.0.3/acinclude/pkg.m4 deleted file mode 100755 index 0048a3f..0000000 --- a/extension/SDL2_image-2.0.3/acinclude/pkg.m4 +++ /dev/null @@ -1,157 +0,0 @@ -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# -# Copyright © 2004 Scott James Remnant . -# -# 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 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, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# 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. - -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- -AC_DEFUN([PKG_PROG_PKG_CONFIG], -[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi - -fi[]dnl -])# PKG_PROG_PKG_CONFIG - -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# -# Similar to PKG_CHECK_MODULES, make sure that the first instance of -# this or PKG_CHECK_MODULES is called, or make sure to call -# PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_EXISTS], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_ifval([$2], [$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) - - -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- -m4_define([_PKG_CONFIG], -[if test -n "$PKG_CONFIG"; then - if test -n "$$1"; then - pkg_cv_[]$1="$$1" - else - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], - [pkg_failed=yes]) - fi -else - pkg_failed=untried -fi[]dnl -])# _PKG_CONFIG - -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- -AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED - - -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_MODULES], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - -pkg_failed=no -AC_MSG_CHECKING([for $1]) - -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) - -if test $pkg_failed = yes; then - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - - ifelse([$4], , [AC_MSG_ERROR(dnl -[Package requirements ($2) were not met: - -$$1_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -_PKG_TEXT -])], - [AC_MSG_RESULT([no]) - $4]) -elif test $pkg_failed = untried; then - ifelse([$4], , [AC_MSG_FAILURE(dnl -[The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -_PKG_TEXT - -To get pkg-config, see .])], - [$4]) -else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - ifelse([$3], , :, [$3]) -fi[]dnl -])# PKG_CHECK_MODULES diff --git a/extension/SDL2_image-2.0.3/acinclude/sdl2.m4 b/extension/SDL2_image-2.0.3/acinclude/sdl2.m4 deleted file mode 100755 index a03b2d2..0000000 --- a/extension/SDL2_image-2.0.3/acinclude/sdl2.m4 +++ /dev/null @@ -1,202 +0,0 @@ -# Configure paths for SDL -# Sam Lantinga 9/21/99 -# stolen from Manish Singh -# stolen back from Frank Belew -# stolen from Manish Singh -# Shamelessly stolen from Owen Taylor - -# serial 1 - -dnl AM_PATH_SDL2([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) -dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS -dnl -AC_DEFUN([AM_PATH_SDL2], -[dnl -dnl Get the cflags and libraries from the sdl2-config script -dnl -AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)], - sdl_prefix="$withval", sdl_prefix="") -AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)], - sdl_exec_prefix="$withval", sdl_exec_prefix="") -AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program], - , enable_sdltest=yes) - - min_sdl_version=ifelse([$1], ,2.0.0,$1) - - if test "x$sdl_prefix$sdl_exec_prefix" = x ; then - PKG_CHECK_MODULES([SDL], [sdl2 >= $min_sdl_version], - [sdl_pc=yes], - [sdl_pc=no]) - else - sdl_pc=no - if test x$sdl_exec_prefix != x ; then - sdl_config_args="$sdl_config_args --exec-prefix=$sdl_exec_prefix" - if test x${SDL2_CONFIG+set} != xset ; then - SDL2_CONFIG=$sdl_exec_prefix/bin/sdl2-config - fi - fi - if test x$sdl_prefix != x ; then - sdl_config_args="$sdl_config_args --prefix=$sdl_prefix" - if test x${SDL2_CONFIG+set} != xset ; then - SDL2_CONFIG=$sdl_prefix/bin/sdl2-config - fi - fi - fi - - if test "x$sdl_pc" = xyes ; then - no_sdl="" - SDL2_CONFIG="pkg-config sdl2" - else - as_save_PATH="$PATH" - if test "x$prefix" != xNONE && test "$cross_compiling" != yes; then - PATH="$prefix/bin:$prefix/usr/bin:$PATH" - fi - AC_PATH_PROG(SDL2_CONFIG, sdl2-config, no, [$PATH]) - PATH="$as_save_PATH" - AC_MSG_CHECKING(for SDL - version >= $min_sdl_version) - no_sdl="" - - if test "$SDL2_CONFIG" = "no" ; then - no_sdl=yes - else - SDL_CFLAGS=`$SDL2_CONFIG $sdl_config_args --cflags` - SDL_LIBS=`$SDL2_CONFIG $sdl_config_args --libs` - - sdl_major_version=`$SDL2_CONFIG $sdl_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - sdl_minor_version=`$SDL2_CONFIG $sdl_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - sdl_micro_version=`$SDL2_CONFIG $sdl_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - if test "x$enable_sdltest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_CXXFLAGS="$CXXFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $SDL_CFLAGS" - CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" - LIBS="$LIBS $SDL_LIBS" -dnl -dnl Now check if the installed SDL is sufficiently new. (Also sanity -dnl checks the results of sdl2-config to some extent -dnl - rm -f conf.sdltest - AC_TRY_RUN([ -#include -#include -#include -#include "SDL.h" - -char* -my_strdup (char *str) -{ - char *new_str; - - if (str) - { - new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); - strcpy (new_str, str); - } - else - new_str = NULL; - - return new_str; -} - -int main (int argc, char *argv[]) -{ - int major, minor, micro; - char *tmp_version; - - /* This hangs on some systems (?) - system ("touch conf.sdltest"); - */ - { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } - - /* HP/UX 9 (%@#!) writes to sscanf strings */ - tmp_version = my_strdup("$min_sdl_version"); - if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { - printf("%s, bad version string\n", "$min_sdl_version"); - exit(1); - } - - if (($sdl_major_version > major) || - (($sdl_major_version == major) && ($sdl_minor_version > minor)) || - (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) - { - return 0; - } - else - { - printf("\n*** 'sdl2-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); - printf("*** of SDL required is %d.%d.%d. If sdl2-config is correct, then it is\n", major, minor, micro); - printf("*** best to upgrade to the required version.\n"); - printf("*** If sdl2-config was wrong, set the environment variable SDL2_CONFIG\n"); - printf("*** to point to the correct copy of sdl2-config, and remove the file\n"); - printf("*** config.cache before re-running configure\n"); - return 1; - } -} - -],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) - CFLAGS="$ac_save_CFLAGS" - CXXFLAGS="$ac_save_CXXFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - if test "x$no_sdl" = x ; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi - fi - if test "x$no_sdl" = x ; then - ifelse([$2], , :, [$2]) - else - if test "$SDL2_CONFIG" = "no" ; then - echo "*** The sdl2-config script installed by SDL could not be found" - echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" - echo "*** your path, or set the SDL2_CONFIG environment variable to the" - echo "*** full path to sdl2-config." - else - if test -f conf.sdltest ; then - : - else - echo "*** Could not run SDL test program, checking why..." - CFLAGS="$CFLAGS $SDL_CFLAGS" - CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" - LIBS="$LIBS $SDL_LIBS" - AC_TRY_LINK([ -#include -#include "SDL.h" - -int main(int argc, char *argv[]) -{ return 0; } -#undef main -#define main K_and_R_C_main -], [ return 0; ], - [ echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding SDL or finding the wrong" - echo "*** version of SDL. If it is not finding SDL, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], - [ echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means SDL was incorrectly installed" - echo "*** or that you have moved SDL since it was installed. In the latter case, you" - echo "*** may want to edit the sdl2-config script: $SDL2_CONFIG" ]) - CFLAGS="$ac_save_CFLAGS" - CXXFLAGS="$ac_save_CXXFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - SDL_CFLAGS="" - SDL_LIBS="" - ifelse([$3], , :, [$3]) - fi - AC_SUBST(SDL_CFLAGS) - AC_SUBST(SDL_LIBS) - rm -f conf.sdltest -]) diff --git a/extension/SDL2_image-2.0.3/aclocal.m4 b/extension/SDL2_image-2.0.3/aclocal.m4 deleted file mode 100755 index ce7d84f..0000000 --- a/extension/SDL2_image-2.0.3/aclocal.m4 +++ /dev/null @@ -1,1256 +0,0 @@ -# generated automatically by aclocal 1.14 -*- Autoconf -*- - -# Copyright (C) 1996-2013 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'.])]) - -# 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])]) - -# Copyright (C) 2002-2013 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.14' -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.14], [], - [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.14])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001-2013 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], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997-2013 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-2013 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-2013 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-2013 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. 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 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-2013 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}" != 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-2013 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-2013 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-2013 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-2013 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-2013 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-2013 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-2013 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-2013 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-2013 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-2013 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-2013 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([acinclude/libtool.m4]) -m4_include([acinclude/ltoptions.m4]) -m4_include([acinclude/ltsugar.m4]) -m4_include([acinclude/ltversion.m4]) -m4_include([acinclude/lt~obsolete.m4]) -m4_include([acinclude/pkg.m4]) -m4_include([acinclude/sdl2.m4]) diff --git a/extension/SDL2_image-2.0.3/autogen.sh b/extension/SDL2_image-2.0.3/autogen.sh deleted file mode 100755 index c4ec5b4..0000000 --- a/extension/SDL2_image-2.0.3/autogen.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -# -aclocal -I acinclude -automake --foreign --include-deps --add-missing --copy -autoconf - -#./configure $* -echo "Now you are ready to run ./configure" diff --git a/extension/SDL2_image-2.0.3/compile b/extension/SDL2_image-2.0.3/compile deleted file mode 100755 index 531136b..0000000 --- a/extension/SDL2_image-2.0.3/compile +++ /dev/null @@ -1,347 +0,0 @@ -#! /bin/sh -# Wrapper for compilers which do not understand '-c -o'. - -scriptversion=2012-10-14.11; # UTC - -# Copyright (C) 1999-2013 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/extension/SDL2_image-2.0.3/config.guess b/extension/SDL2_image-2.0.3/config.guess deleted file mode 100755 index a744844..0000000 --- a/extension/SDL2_image-2.0.3/config.guess +++ /dev/null @@ -1,1476 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright 1992-2017 Free Software Foundation, Inc. - -timestamp='2017-08-08' - -# 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-2017 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 ;; - *:Redox:*:*) - echo ${UNAME_MACHINE}-unknown-redox - 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) - UNAME_PROCESSOR=x86_64 ;; - i386) - UNAME_PROCESSOR=i586 ;; - esac - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - 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 - # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc - if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_PPC >/dev/null - then - UNAME_PROCESSOR=powerpc - 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 ;; - NSX-*:NONSTOP_KERNEL:*:*) - echo nsx-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/extension/SDL2_image-2.0.3/config.sub b/extension/SDL2_image-2.0.3/config.sub deleted file mode 100755 index dcf4133..0000000 --- a/extension/SDL2_image-2.0.3/config.sub +++ /dev/null @@ -1,1868 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright 1992-2017 Free Software Foundation, Inc. - -timestamp='2017-04-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"). - - -# 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-2017 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 | ia16 | 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 \ - | wasm32 \ - | 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 - ;; - nacl64*) - basic_machine=x86_64-pc - os=-nacl - ;; - nacl*) - basic_machine=i686-pc - os=-nacl - ;; - pnacl*) - # le32-unknown-pnacl comes from http://www.chromium.org/nativeclient/pnacl/stability-of-the-pnacl-bitcode-abi - basic_machine=le32-unknown - os=-pnacl - ;; - # 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-* | ia16-* | 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-* \ - | wasm32-* \ - | 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 - ;; - pnacl) - basic_machine=le32-unknown - os=-pnacl - ;; - 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 - ;; - nsx-tandem) - basic_machine=nsx-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 - ;; - wasm32) - basic_machine=wasm32-unknown - ;; - 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* | -glidix* \ - | -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* | -redox*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nacl*) - os=-nacl - ;; - -pnacl*) - os=-pnacl - ;; - -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 - ;; - -cegcc*) - os=-cegcc - ;; - -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*) - os=-nacl - ;; - -pnacl*) - os=-pnacl - ;; - -ios) - ;; - -emscripten*) - ;; - -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 - ;; - pru-*) - os=-elf - ;; - *-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/extension/SDL2_image-2.0.3/configure b/extension/SDL2_image-2.0.3/configure deleted file mode 100755 index 6dfd018..0000000 --- a/extension/SDL2_image-2.0.3/configure +++ /dev/null @@ -1,15717 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69. -# -# -# 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 \$(( 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 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'" - - - -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$lt_ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` - ;; -esac - -ECHO=${lt_ECHO-echo} -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then - # Yippee, $ECHO works! - : -else - # Restart under the correct shell. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<_LT_EOF -$* -_LT_EOF - exit 0 -fi - -# 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 - -if test -z "$lt_ECHO"; then - if test "X${echo_test_string+set}" != Xset; then - # find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if { echo_test_string=`eval $cmd`; } 2>/dev/null && - { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null - then - break - fi - done - fi - - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : - else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$ECHO" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - ECHO='print -r' - elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - ECHO='printf %s\n' - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - ECHO="$CONFIG_SHELL $0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$CONFIG_SHELL $0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do - if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "$0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - ECHO=echo - fi - fi - fi - fi - fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -lt_ECHO=$ECHO -if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then - lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" -fi - - - - -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= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= -PACKAGE_URL= - -ac_unique_file="README.txt" -# 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 -IMG_LIBS -LIBWEBP_LIBS -LIBWEBP_CFLAGS -LIBPNG_LIBS -LIBPNG_CFLAGS -SDL2_CONFIG -SDL_LIBS -SDL_CFLAGS -PKG_CONFIG -SDL_VERSION -USE_VERSION_RC_FALSE -USE_VERSION_RC_TRUE -USE_IMAGEIO_FALSE -USE_IMAGEIO_TRUE -WINDRES -am__fastdepOBJC_FALSE -am__fastdepOBJC_TRUE -OBJCDEPMODE -ac_ct_OBJC -OBJCFLAGS -OBJC -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -AM_DEFAULT_V -AM_V -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -am__nodep -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__quote -am__include -DEPDIR -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -LT_AGE -LT_REVISION -LT_CURRENT -LT_RELEASE -CPP -OTOOL64 -OTOOL -LIPO -NMEDIT -DSYMUTIL -lt_ECHO -RANLIB -STRIP -AR -LN_S -NM -ac_ct_DUMPBIN -DUMPBIN -LD -FGREP -EGREP -GREP -SED -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -LIBTOOL -OBJDUMP -DLLTOOL -AS -VERSION -BINARY_AGE -INTERFACE_AGE -MICRO_VERSION -MINOR_VERSION -MAJOR_VERSION -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 -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_shared -enable_static -with_pic -enable_fast_install -with_gnu_ld -enable_libtool_lock -enable_dependency_tracking -enable_silent_rules -enable_imageio -with_sdl_prefix -with_sdl_exec_prefix -enable_sdltest -enable_bmp -enable_gif -enable_jpg -enable_jpg_shared -enable_lbm -enable_pcx -enable_png -enable_png_shared -enable_pnm -enable_svg -enable_tga -enable_tif -enable_tif_shared -enable_xcf -enable_xpm -enable_xv -enable_webp -enable_webp_shared -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP -OBJC -OBJCFLAGS -PKG_CONFIG -SDL_CFLAGS -SDL_LIBS -LIBPNG_CFLAGS -LIBPNG_LIBS -LIBWEBP_CFLAGS -LIBWEBP_LIBS' - - -# 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' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE}' -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 ;; - - -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 -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 this package 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] - --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/PACKAGE] - --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 - - 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-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-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") - --enable-imageio use native Mac OS X frameworks for loading images - [default=yes] - --disable-sdltest Do not try to compile and run a test SDL program - --enable-bmp support loading BMP/ICO/CUR images [default=yes] - --enable-gif support loading GIF images [default=yes] - --enable-jpg support loading JPG images [default=yes] - --enable-jpg-shared dynamically load JPG support [[default=yes]] - --enable-lbm support loading LBM images [default=yes] - --enable-pcx support loading PCX images [default=yes] - --enable-png support loading PNG images [default=yes] - --enable-png-shared dynamically load PNG support [[default=yes]] - --enable-pnm support loading PNM images [default=yes] - --enable-svg support loading SVG images [default=yes] - --enable-tga support loading TGA images [default=yes] - --enable-tif support loading TIFF images [default=yes] - --enable-tif-shared dynamically load TIFF support [[default=yes]] - --enable-xcf support loading XCF images [default=yes] - --enable-xpm support loading XPM images [default=yes] - --enable-xv support loading XV images [default=yes] - --enable-webp support loading WEBP images [default=yes] - --enable-webp-shared dynamically load WEBP support [[default=yes]] - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-sdl-prefix=PFX Prefix where SDL is installed (optional) - --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional) - -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 - CPP C preprocessor - OBJC Objective C compiler command - OBJCFLAGS Objective C compiler flags - PKG_CONFIG path to pkg-config utility - SDL_CFLAGS C compiler flags for SDL, overriding pkg-config - SDL_LIBS linker flags for SDL, overriding pkg-config - LIBPNG_CFLAGS - C compiler flags for LIBPNG, overriding pkg-config - LIBPNG_LIBS linker flags for LIBPNG, overriding pkg-config - LIBWEBP_CFLAGS - C compiler flags for LIBWEBP, overriding pkg-config - LIBWEBP_LIBS - linker flags for LIBWEBP, overriding pkg-config - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to the package provider. -_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 -configure -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_objc_try_compile LINENO -# ----------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_objc_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_objc_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_objc_try_compile - -# 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;} - ;; -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 $as_me, 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 - - - - -# Making releases: -# MICRO_VERSION += 1; -# INTERFACE_AGE += 1; -# BINARY_AGE += 1; -# if any functions have been added, set INTERFACE_AGE to 0. -# if backwards compatibility has been broken, -# set BINARY_AGE and INTERFACE_AGE to 0. - -MAJOR_VERSION=2 -MINOR_VERSION=0 -MICRO_VERSION=3 -INTERFACE_AGE=1 -BINARY_AGE=3 -VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION - - - - - - - - -# libtool versioning -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.2.6' -macro_revision='1.3012' - - - - - - - - - - - - - -ltmain="$ac_aux_dir/ltmain.sh" - -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 - - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -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 - - -{ $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 "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -ac_prog=ld -if test "$GCC" = yes; 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 "$with_gnu_ld" = yes; 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 - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - 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 "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$ac_tool_prefix"; then - for ac_prog in "dumpbin -symbols" "link -dump -symbols" - 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 -symbols" "link -dump -symbols" -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 - - - 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:4051: $ac_compile\"" >&5) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&5 - (eval echo "\"\$as_me:4054: $NM \\\"conftest.$ac_objext\\\"\"" >&5) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&5 - (eval echo "\"\$as_me:4057: 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; - ;; - - beos*) - # On BeOS, this test takes a really really long time. - # So we just punt and use a minimum line length of 8192. - 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; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # 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 - ;; - - 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"; 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"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ - = "XX$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 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"} - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 -$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 -$as_echo "$xsi_shell" >&6; } - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 -$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } -lt_shell_append=no -( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 -$as_echo "$lt_shell_append" >&6; } - - -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 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 - darwin*) - if test "$GCC" = yes; 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 -# which 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_deplibs_check_method=pass_all - 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 - 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 - lt_cv_deplibs_check_method=pass_all - ;; - -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 - ;; - -gnu*) - 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]) 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 Linux ELF. -linux* | k*bsd*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - 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*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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 - ;; -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_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}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; 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}ar" - $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 - - -fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; 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="ar" - $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 - - 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 -else - AR="$ac_cv_prog_AR" -fi - -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru - - - - - - - - - - - -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 - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 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 "$host_cpu" = ia64; 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 - -# 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 -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$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 -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/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 - # and D for any global 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};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print 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 - - # 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 -#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. */ -const struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$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_save_LIBS="$LIBS" - lt_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_save_LIBS" - CFLAGS="$lt_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 "$pipe_works" = yes; 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 - - - - - - - - - - - - - - - - - - - - - - - -# Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -fi - -test "x$enable_libtool_lock" != xno && 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 which ABI we are using. - 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 which ABI we are using. - echo '#line 5268 "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 "$lt_cv_prog_gnu_ld" = yes; 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* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - 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*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|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" - ;; - powerpc64le-*linux*) - LD="${LD-ld} -m elf64lppc" - ;; - powerpc64-*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 x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -sparc*-*solaris*) - # Find out which ABI we are using. - 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*) LD="${LD-ld} -m elf64_sparc" ;; - *) - 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" - - - 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 test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; 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; } - 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 "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; 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" != ":"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - 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_win32_dll=yes - -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. -set dummy ${ac_tool_prefix}as; 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_AS+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # 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_AS="${ac_tool_prefix}as" - $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 -AS=$ac_cv_prog_AS -if test -n "$AS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 -$as_echo "$AS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_AS"; then - ac_ct_AS=$AS - # Extract the first word of "as", so it can be a program name with args. -set dummy as; 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_AS+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AS"; then - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # 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_AS="as" - $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_AS=$ac_cv_prog_ac_ct_AS -if test -n "$ac_ct_AS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 -$as_echo "$ac_ct_AS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AS" = x; then - AS="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 - AS=$ac_ct_AS - fi -else - AS="$ac_cv_prog_AS" -fi - - 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 - - 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 - - ;; -esac - -test -z "$AS" && AS=as - - - - - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - - - enable_dlopen=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; pic_mode="$withval" -else - pic_mode=default -fi - - -test -z "$pic_mode" && pic_mode=default - - - - - - - - # 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 - - - - - - - - - - - -# 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 "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# 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. -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' - -# 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 - -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - -# 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 "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag=' -fno-builtin' - - { $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" - # 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:7098: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:7102: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; 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= - -{ $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 test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - ;; - - 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' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - 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 - 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 "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - 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' - ;; - - 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) - 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' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # 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*) - # IBM XL C 8.0/Fortran 10.1 on PPC - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-qpic' - lt_prog_compiler_static='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Wl,' - ;; - *Sun\ F*) - # 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='' - ;; - 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*) - 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 which 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}: result: $lt_prog_compiler_pic" >&5 -$as_echo "$lt_prog_compiler_pic" >&6; } - - - - - - -# -# 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" - # 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:7437: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:7441: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 x"$lt_cv_prog_compiler_pic_works" = xyes; 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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/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 x"$lt_cv_prog_compiler_static_works" = xyes; 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:7542: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:7546: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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:7597: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:7601: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; 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 "$hard_links" = no; 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_flag_spec_ld= - 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 "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs=yes - if test "$with_gnu_ld" = yes; 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 2>&1` in - *\ [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 "$host_cpu" != ia64; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH -*** so that a non-GNU linker is found, and then restart. - -_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' - 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/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - - 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 (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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 - ;; - - 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) - tmp_diet=no - if test "$host_os" = linux-dietlibc; 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 "$tmp_diet" = no - then - tmp_addflag= - 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; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # 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; $ECHO \"$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' ;; - xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - 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; $ECHO \"$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 "x$supports_anon_versioning" = xyes; 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 - xlf*) - # 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= - hardcode_libdir_flag_spec_ld='-rpath $libdir' - archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; 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 $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - else - ld_shlibs=no - fi - ;; - - netbsd*) - 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 $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' - 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 $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 - ;; - - 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 can not -*** 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 $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 - - if test "$ld_shlibs" = no; 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 "$GCC" = yes && 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 "$host_cpu" = ia64; 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 AIX nm, but means don't demangle with GNU 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")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | 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 - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - 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,' - - if test "$GCC" = yes; 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 "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - 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_use_runtimelinking" = yes; 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. - 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 - } - }' -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 "$aix_libpath"; then - 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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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 "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; 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. - 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 - } - }' -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 "$aix_libpath"; then - 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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' - archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - 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. - 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 `$ECHO "X$deplibs" | $Xsed -e '\''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' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes=yes - ;; - - darwin* | rhapsody*) - - - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='' - link_all_deplibs=yes - allow_undefined_flag="$_lt_dar_allow_undefined" - case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=echo - 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 - ;; - - freebsd1*) - ld_shlibs=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 -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $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 $output_objdir/$soname = $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 "$GCC" = yes -a "$with_gnu_ld" = no; then - archive_cmds='$CC -shared -fPIC ${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 "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld='+b $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 "$GCC" = yes -a "$with_gnu_ld" = no; 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 -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared -fPIC ${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' - ;; - *) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; 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 "$GCC" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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. - 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) {} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -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 - ;; - - netbsd*) - 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*) - 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__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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 - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; 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" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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 "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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 "X-set_version $verstring" | $Xsed` -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 "$GCC" = yes; then - wlarc='${wl}' - archive_cmds='$CC -shared ${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 ${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 "$GCC" = yes; 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 "x$host_vendor" = xsequent; 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 "$GCC" = yes; 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 can NOT 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 "$GCC" = yes; 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 x$host_vendor = xsni; 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 "$ld_shlibs" = no && 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 "$enable_shared" = yes && test "$GCC" = yes; 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; } - $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 - archive_cmds_need_lc=no - else - archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 -$as_echo "$archive_cmds_need_lc" >&6; } - ;; - 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 "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then - # 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 -e 's/;/ /g'` - else - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # 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` - 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" - else - 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; } -}'` - sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` -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 - 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 - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; 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 - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # 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}' - else - # 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' - fi - 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=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $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 - 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,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) - 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}' - soname_spec='`echo ${libname} | sed -e 's/^lib//'`${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - #soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - soname_spec='`echo ${libname} | $SED -e 's/^lib//'`${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - 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 - ;; - 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 - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # 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 - 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 - ;; - -freebsd1*) - dynamic_linker=no - ;; - -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[123]*) 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} $libname${shared_ext}' - 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 - ;; - -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 - 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 "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - 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' - ;; - -interix[3-9]*) - 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' - 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 "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - 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 - ;; - -# This must be Linux ELF. -linux* | k*bsd*-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' - 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 - 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 : - 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 - - # 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 - - # Append ld.so.conf contents 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;/^$/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' - ;; - -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 - 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*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - 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 - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -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 - 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 "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux - 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 - 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=freebsd-elf - 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 "$with_gnu_ld" = yes; 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 - 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 - 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 "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $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 "X$hardcode_automatic" = "Xyes" ; then - - # We can hardcode non-existent directories. - if test "$hardcode_direct" != no && - # 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 "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; 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 "$hardcode_action" = relink || - test "$inherit_rpath" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - - - - - - if test "x$enable_dlopen" != xyes; 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 - - ;; - - *) - 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 "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && 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 "$cross_compiling" = yes; 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 9966 "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 - -void fnord() { int i=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; - /* 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 "x$lt_cv_dlopen_self" = xyes; 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 "$cross_compiling" = yes; 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 10062 "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 - -void fnord() { int i=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; - /* 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 which 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 "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[4-9]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - 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 "$enable_shared" = yes || 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: - - - -LT_RELEASE=$MAJOR_VERSION.$MINOR_VERSION -LT_CURRENT=`expr $MICRO_VERSION - $INTERFACE_AGE` -LT_REVISION=$INTERFACE_AGE -LT_AGE=`expr $BINARY_AGE - $INTERFACE_AGE` - - - - - - - - -am__api_version='1.14' - -# 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"` - -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}" != 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 - -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 - - -# 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=SDL2_image - VERSION=$VERSION - - -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. 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 -' - - - - - -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 - - - -# 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 - - -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 - -{ $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 - - -ac_ext=m -ac_cpp='$OBJCPP $CPPFLAGS' -ac_compile='$OBJC -c $OBJCFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$OBJC -o conftest$ac_exeext $OBJCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_objc_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in gcc objcc objc cc CC - 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_OBJC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJC"; then - ac_cv_prog_OBJC="$OBJC" # 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_OBJC="$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 -OBJC=$ac_cv_prog_OBJC -if test -n "$OBJC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJC" >&5 -$as_echo "$OBJC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$OBJC" && break - done -fi -if test -z "$OBJC"; then - ac_ct_OBJC=$OBJC - for ac_prog in gcc objcc objc cc CC -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_OBJC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJC"; then - ac_cv_prog_ac_ct_OBJC="$ac_ct_OBJC" # 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_OBJC="$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_OBJC=$ac_cv_prog_ac_ct_OBJC -if test -n "$ac_ct_OBJC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJC" >&5 -$as_echo "$ac_ct_OBJC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_OBJC" && break -done - - if test "x$ac_ct_OBJC" = x; then - OBJC="gcc" - 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 - OBJC=$ac_ct_OBJC - fi -fi - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for Objective 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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Objective C compiler" >&5 -$as_echo_n "checking whether we are using the GNU Objective C compiler... " >&6; } -if ${ac_cv_objc_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_objc_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_objc_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objc_compiler_gnu" >&5 -$as_echo "$ac_cv_objc_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GOBJC=yes -else - GOBJC= -fi -ac_test_OBJCFLAGS=${OBJCFLAGS+set} -ac_save_OBJCFLAGS=$OBJCFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $OBJC accepts -g" >&5 -$as_echo_n "checking whether $OBJC accepts -g... " >&6; } -if ${ac_cv_prog_objc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_objc_werror_flag=$ac_objc_werror_flag - ac_objc_werror_flag=yes - ac_cv_prog_objc_g=no - OBJCFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_objc_try_compile "$LINENO"; then : - ac_cv_prog_objc_g=yes -else - OBJCFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_objc_try_compile "$LINENO"; then : - -else - ac_objc_werror_flag=$ac_save_objc_werror_flag - OBJCFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_objc_try_compile "$LINENO"; then : - ac_cv_prog_objc_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_objc_werror_flag=$ac_save_objc_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_objc_g" >&5 -$as_echo "$ac_cv_prog_objc_g" >&6; } -if test "$ac_test_OBJCFLAGS" = set; then - OBJCFLAGS=$ac_save_OBJCFLAGS -elif test $ac_cv_prog_objc_g = yes; then - if test "$GOBJC" = yes; then - OBJCFLAGS="-g -O2" - else - OBJCFLAGS="-g" - fi -else - if test "$GOBJC" = yes; then - OBJCFLAGS="-O2" - else - OBJCFLAGS= - 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 - -depcc="$OBJC" am_compiler_list='gcc3 gcc' - -{ $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_OBJC_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_OBJC_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 - - - 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_OBJC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_OBJC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_OBJC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_OBJC_dependencies_compiler_type" >&6; } -OBJCDEPMODE=depmode=$am_cv_OBJC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_OBJC_dependencies_compiler_type" = gcc3; then - am__fastdepOBJC_TRUE= - am__fastdepOBJC_FALSE='#' -else - am__fastdepOBJC_TRUE='#' - am__fastdepOBJC_FALSE= -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if ${ac_cv_c_inline+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __cplusplus -typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } -#endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_inline=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 -$as_echo "$ac_cv_c_inline" >&6; } - -case $ac_cv_c_inline in - inline | yes) ;; - *) - case $ac_cv_c_inline in - no) ac_val=;; - *) ac_val=$ac_cv_c_inline;; - esac - cat >>confdefs.h <<_ACEOF -#ifndef __cplusplus -#define inline $ac_val -#endif -_ACEOF - ;; -esac - - -{ $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 - -if test -z "$host_alias"; then - hostaliaswindres= -else - hostaliaswindres="$host_alias-windres" -fi -for ac_prog in windres $hostaliaswindres $host_os-windres -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_WINDRES+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$WINDRES"; then - ac_cv_prog_WINDRES="$WINDRES" # 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_WINDRES="$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 -WINDRES=$ac_cv_prog_WINDRES -if test -n "$WINDRES"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5 -$as_echo "$WINDRES" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$WINDRES" && break -done - - -case "$host" in - *-*-beos*) - ac_default_prefix=/boot/develop/tools/gnupro - ;; - *-*-cygwin* | *-*-mingw32*) - if test "$build" != "$host"; then # cross-compiling - # Default cross-compile location - ac_default_prefix=/usr/local/cross-tools/$host - else - # Look for the location of the tools and install there - if test "$BUILD_PREFIX" != ""; then - ac_default_prefix=$BUILD_PREFIX - fi - fi - if test x$WINDRES != x; then - use_version_rc=true - fi - ;; - *-*-darwin*) - # Check whether --enable-imageio was given. -if test "${enable_imageio+set}" = set; then : - enableval=$enable_imageio; -else - enable_imageio=yes -fi - - if test x$enable_imageio = xyes; then - IMG_LIBS="-Wl,-framework,ApplicationServices -lobjc $IMG_LIBS" - else - CFLAGS="$CFLAGS -DSDL_IMAGE_USE_COMMON_BACKEND" - fi - ;; -esac - if test x$enable_imageio = xyes; then - USE_IMAGEIO_TRUE= - USE_IMAGEIO_FALSE='#' -else - USE_IMAGEIO_TRUE='#' - USE_IMAGEIO_FALSE= -fi - - if test x$use_version_rc = xtrue; then - USE_VERSION_RC_TRUE= - USE_VERSION_RC_FALSE='#' -else - USE_VERSION_RC_TRUE='#' - USE_VERSION_RC_FALSE= -fi - - -base_libdir=`echo \${libdir} | sed 's/.*\/\(.*\)/\1/; q'` - -find_lib() -{ - gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'` - gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'` - env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'` - if test "$cross_compiling" = yes; then - host_lib_path="" - else - host_lib_path="/usr/$base_libdir /usr/local/$base_libdir" - fi - for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do - lib=`ls -- $path/$1 2>/dev/null | sed -e '/\.so\..*\./d' -e 's,.*/,,' | sort | tail -1` - if test x$lib != x; then - echo $lib - return - fi - done -} - -SDL_VERSION=2.0.8 - - - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -$as_echo "$ac_pt_PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - 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 - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 -$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; 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" >&5 -$as_echo "no" >&6; } - PKG_CONFIG="" - fi - -fi - -# Check whether --with-sdl-prefix was given. -if test "${with_sdl_prefix+set}" = set; then : - withval=$with_sdl_prefix; sdl_prefix="$withval" -else - sdl_prefix="" -fi - - -# Check whether --with-sdl-exec-prefix was given. -if test "${with_sdl_exec_prefix+set}" = set; then : - withval=$with_sdl_exec_prefix; sdl_exec_prefix="$withval" -else - sdl_exec_prefix="" -fi - -# Check whether --enable-sdltest was given. -if test "${enable_sdltest+set}" = set; then : - enableval=$enable_sdltest; -else - enable_sdltest=yes -fi - - - min_sdl_version=$SDL_VERSION - - if test "x$sdl_prefix$sdl_exec_prefix" = x ; then - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5 -$as_echo_n "checking for SDL... " >&6; } - -if test -n "$PKG_CONFIG"; then - if test -n "$SDL_CFLAGS"; then - pkg_cv_SDL_CFLAGS="$SDL_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl2 >= \$min_sdl_version\""; } >&5 - ($PKG_CONFIG --exists --print-errors "sdl2 >= $min_sdl_version") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SDL_CFLAGS=`$PKG_CONFIG --cflags "sdl2 >= $min_sdl_version" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi -if test -n "$PKG_CONFIG"; then - if test -n "$SDL_LIBS"; then - pkg_cv_SDL_LIBS="$SDL_LIBS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl2 >= \$min_sdl_version\""; } >&5 - ($PKG_CONFIG --exists --print-errors "sdl2 >= $min_sdl_version") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SDL_LIBS=`$PKG_CONFIG --libs "sdl2 >= $min_sdl_version" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sdl2 >= $min_sdl_version"` - else - SDL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sdl2 >= $min_sdl_version"` - fi - # Put the nasty error message in config.log where it belongs - echo "$SDL_PKG_ERRORS" >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - sdl_pc=no -elif test $pkg_failed = untried; then - sdl_pc=no -else - SDL_CFLAGS=$pkg_cv_SDL_CFLAGS - SDL_LIBS=$pkg_cv_SDL_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - sdl_pc=yes -fi - else - sdl_pc=no - if test x$sdl_exec_prefix != x ; then - sdl_config_args="$sdl_config_args --exec-prefix=$sdl_exec_prefix" - if test x${SDL2_CONFIG+set} != xset ; then - SDL2_CONFIG=$sdl_exec_prefix/bin/sdl2-config - fi - fi - if test x$sdl_prefix != x ; then - sdl_config_args="$sdl_config_args --prefix=$sdl_prefix" - if test x${SDL2_CONFIG+set} != xset ; then - SDL2_CONFIG=$sdl_prefix/bin/sdl2-config - fi - fi - fi - - if test "x$sdl_pc" = xyes ; then - no_sdl="" - SDL2_CONFIG="pkg-config sdl2" - else - as_save_PATH="$PATH" - if test "x$prefix" != xNONE && test "$cross_compiling" != yes; then - PATH="$prefix/bin:$prefix/usr/bin:$PATH" - fi - # Extract the first word of "sdl2-config", so it can be a program name with args. -set dummy sdl2-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_SDL2_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $SDL2_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_SDL2_CONFIG="$SDL2_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_SDL2_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 - - test -z "$ac_cv_path_SDL2_CONFIG" && ac_cv_path_SDL2_CONFIG="no" - ;; -esac -fi -SDL2_CONFIG=$ac_cv_path_SDL2_CONFIG -if test -n "$SDL2_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SDL2_CONFIG" >&5 -$as_echo "$SDL2_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - PATH="$as_save_PATH" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL - version >= $min_sdl_version" >&5 -$as_echo_n "checking for SDL - version >= $min_sdl_version... " >&6; } - no_sdl="" - - if test "$SDL2_CONFIG" = "no" ; then - no_sdl=yes - else - SDL_CFLAGS=`$SDL2_CONFIG $sdl_config_args --cflags` - SDL_LIBS=`$SDL2_CONFIG $sdl_config_args --libs` - - sdl_major_version=`$SDL2_CONFIG $sdl_config_args --version | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` - sdl_minor_version=`$SDL2_CONFIG $sdl_config_args --version | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` - sdl_micro_version=`$SDL2_CONFIG $sdl_config_args --version | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` - if test "x$enable_sdltest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_CXXFLAGS="$CXXFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $SDL_CFLAGS" - CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" - LIBS="$LIBS $SDL_LIBS" - rm -f conf.sdltest - if test "$cross_compiling" = yes; then : - echo $ac_n "cross compiling; assumed OK... $ac_c" -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -#include "SDL.h" - -char* -my_strdup (char *str) -{ - char *new_str; - - if (str) - { - new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); - strcpy (new_str, str); - } - else - new_str = NULL; - - return new_str; -} - -int main (int argc, char *argv[]) -{ - int major, minor, micro; - char *tmp_version; - - /* This hangs on some systems (?) - system ("touch conf.sdltest"); - */ - { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } - - /* HP/UX 9 (%@#!) writes to sscanf strings */ - tmp_version = my_strdup("$min_sdl_version"); - if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { - printf("%s, bad version string\n", "$min_sdl_version"); - exit(1); - } - - if (($sdl_major_version > major) || - (($sdl_major_version == major) && ($sdl_minor_version > minor)) || - (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) - { - return 0; - } - else - { - printf("\n*** 'sdl2-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); - printf("*** of SDL required is %d.%d.%d. If sdl2-config is correct, then it is\n", major, minor, micro); - printf("*** best to upgrade to the required version.\n"); - printf("*** If sdl2-config was wrong, set the environment variable SDL2_CONFIG\n"); - printf("*** to point to the correct copy of sdl2-config, and remove the file\n"); - printf("*** config.cache before re-running configure\n"); - return 1; - } -} - - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - no_sdl=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - CFLAGS="$ac_save_CFLAGS" - CXXFLAGS="$ac_save_CXXFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - if test "x$no_sdl" = x ; 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" >&5 -$as_echo "no" >&6; } - fi - fi - if test "x$no_sdl" = x ; then - : - else - if test "$SDL2_CONFIG" = "no" ; then - echo "*** The sdl2-config script installed by SDL could not be found" - echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" - echo "*** your path, or set the SDL2_CONFIG environment variable to the" - echo "*** full path to sdl2-config." - else - if test -f conf.sdltest ; then - : - else - echo "*** Could not run SDL test program, checking why..." - CFLAGS="$CFLAGS $SDL_CFLAGS" - CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" - LIBS="$LIBS $SDL_LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include "SDL.h" - -int main(int argc, char *argv[]) -{ return 0; } -#undef main -#define main K_and_R_C_main - -int -main () -{ - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding SDL or finding the wrong" - echo "*** version of SDL. If it is not finding SDL, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" -else - echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means SDL was incorrectly installed" - echo "*** or that you have moved SDL since it was installed. In the latter case, you" - echo "*** may want to edit the sdl2-config script: $SDL2_CONFIG" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$ac_save_CFLAGS" - CXXFLAGS="$ac_save_CXXFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - SDL_CFLAGS="" - SDL_LIBS="" - as_fn_error $? "*** SDL version $SDL_VERSION not found!" "$LINENO" 5 - - fi - - - rm -f conf.sdltest - -CFLAGS="$CFLAGS $SDL_CFLAGS" -LIBS="$LIBS $SDL_LIBS" -saved_LIBS="$LIBS" - -# Check whether --enable-bmp was given. -if test "${enable_bmp+set}" = set; then : - enableval=$enable_bmp; -else - enable_bmp=yes -fi - -# Check whether --enable-gif was given. -if test "${enable_gif+set}" = set; then : - enableval=$enable_gif; -else - enable_gif=yes -fi - -# Check whether --enable-jpg was given. -if test "${enable_jpg+set}" = set; then : - enableval=$enable_jpg; -else - enable_jpg=yes -fi - -# Check whether --enable-jpg-shared was given. -if test "${enable_jpg_shared+set}" = set; then : - enableval=$enable_jpg_shared; -else - enable_jpg_shared=yes -fi - -# Check whether --enable-lbm was given. -if test "${enable_lbm+set}" = set; then : - enableval=$enable_lbm; -else - enable_lbm=yes -fi - -# Check whether --enable-pcx was given. -if test "${enable_pcx+set}" = set; then : - enableval=$enable_pcx; -else - enable_pcx=yes -fi - -# Check whether --enable-png was given. -if test "${enable_png+set}" = set; then : - enableval=$enable_png; -else - enable_png=yes -fi - -# Check whether --enable-png-shared was given. -if test "${enable_png_shared+set}" = set; then : - enableval=$enable_png_shared; -else - enable_png_shared=yes -fi - -# Check whether --enable-pnm was given. -if test "${enable_pnm+set}" = set; then : - enableval=$enable_pnm; -else - enable_pnm=yes -fi - -# Check whether --enable-svg was given. -if test "${enable_svg+set}" = set; then : - enableval=$enable_svg; -else - enable_svg=yes -fi - -# Check whether --enable-tga was given. -if test "${enable_tga+set}" = set; then : - enableval=$enable_tga; -else - enable_tga=yes -fi - -# Check whether --enable-tif was given. -if test "${enable_tif+set}" = set; then : - enableval=$enable_tif; -else - enable_tif=yes -fi - -# Check whether --enable-tif-shared was given. -if test "${enable_tif_shared+set}" = set; then : - enableval=$enable_tif_shared; -else - enable_tif_shared=yes -fi - -# Check whether --enable-xcf was given. -if test "${enable_xcf+set}" = set; then : - enableval=$enable_xcf; -else - enable_xcf=yes -fi - -# Check whether --enable-xpm was given. -if test "${enable_xpm+set}" = set; then : - enableval=$enable_xpm; -else - enable_xpm=yes -fi - -# Check whether --enable-xv was given. -if test "${enable_xv+set}" = set; then : - enableval=$enable_xv; -else - enable_xv=yes -fi - -# Check whether --enable-webp was given. -if test "${enable_webp+set}" = set; then : - enableval=$enable_webp; -else - enable_webp=yes -fi - -# Check whether --enable-webp-shared was given. -if test "${enable_webp_shared+set}" = set; then : - enableval=$enable_webp_shared; -else - enable_webp_shared=yes -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ImageIO support" >&5 -$as_echo_n "checking for ImageIO support... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_imageio" >&5 -$as_echo "$enable_imageio" >&6; } - -if (test x$enable_jpg = xyes || test x$enable_tif = xyes) && test x$enable_imageio != xyes; then - 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 : - have_jpg_hdr=yes -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_CreateDecompress in -ljpeg" >&5 -$as_echo_n "checking for jpeg_CreateDecompress in -ljpeg... " >&6; } -if ${ac_cv_lib_jpeg_jpeg_CreateDecompress+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ljpeg $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_CreateDecompress (); -int -main () -{ -return jpeg_CreateDecompress (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_jpeg_jpeg_CreateDecompress=yes -else - ac_cv_lib_jpeg_jpeg_CreateDecompress=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_CreateDecompress" >&5 -$as_echo "$ac_cv_lib_jpeg_jpeg_CreateDecompress" >&6; } -if test "x$ac_cv_lib_jpeg_jpeg_CreateDecompress" = xyes; then : - have_jpg_lib=yes -fi - - if test x$have_jpg_hdr = xyes -a x$have_jpg_lib = xyes; then - if test x$enable_jpg = xyes; then - $as_echo "#define LOAD_JPG 1" >>confdefs.h - - fi - LIBS="-ljpeg $LIBS" - - case "$host" in - *-*-darwin*) - jpg_lib=`find_lib libjpeg.dylib` - ;; - *-*-cygwin* | *-*-mingw32*) - jpg_lib=`find_lib "libjpeg*.dll"` - ;; - *) - jpg_lib=`find_lib "libjpeg[0-9]*.so.*"` - if test x$jpg_lib = x; then - jpg_lib=`find_lib "libjpeg.so.*"` - fi - ;; - esac - elif test x$enable_jpg = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Unable to find JPEG library (http://www.ijg.org/)" >&5 -$as_echo "$as_me: WARNING: *** Unable to find JPEG library (http://www.ijg.org/)" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: JPG image loading disabled" >&5 -$as_echo "$as_me: WARNING: JPG image loading disabled" >&2;} - fi -fi - -if test x$enable_png = xyes -a x$enable_imageio != xyes; then - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBPNG" >&5 -$as_echo_n "checking for LIBPNG... " >&6; } - -if test -n "$PKG_CONFIG"; then - if test -n "$LIBPNG_CFLAGS"; then - pkg_cv_LIBPNG_CFLAGS="$LIBPNG_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libpng") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBPNG_CFLAGS=`$PKG_CONFIG --cflags "libpng" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi -if test -n "$PKG_CONFIG"; then - if test -n "$LIBPNG_LIBS"; then - pkg_cv_LIBPNG_LIBS="$LIBPNG_LIBS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libpng") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBPNG_LIBS=`$PKG_CONFIG --libs "libpng" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - LIBPNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libpng"` - else - LIBPNG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libpng"` - fi - # Put the nasty error message in config.log where it belongs - echo "$LIBPNG_PKG_ERRORS" >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - 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 : - - have_png_hdr=yes - LIBPNG_CFLAGS="" - -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for png_create_read_struct in -lpng" >&5 -$as_echo_n "checking for png_create_read_struct in -lpng... " >&6; } -if ${ac_cv_lib_png_png_create_read_struct+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpng -lz $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_create_read_struct (); -int -main () -{ -return png_create_read_struct (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_png_png_create_read_struct=yes -else - ac_cv_lib_png_png_create_read_struct=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_png_png_create_read_struct" >&5 -$as_echo "$ac_cv_lib_png_png_create_read_struct" >&6; } -if test "x$ac_cv_lib_png_png_create_read_struct" = xyes; then : - - have_png_lib=yes - LIBPNG_LIBS="-lpng -lz" - -fi - - -elif test $pkg_failed = untried; then - 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 : - - have_png_hdr=yes - LIBPNG_CFLAGS="" - -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for png_create_read_struct in -lpng" >&5 -$as_echo_n "checking for png_create_read_struct in -lpng... " >&6; } -if ${ac_cv_lib_png_png_create_read_struct+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpng -lz $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_create_read_struct (); -int -main () -{ -return png_create_read_struct (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_png_png_create_read_struct=yes -else - ac_cv_lib_png_png_create_read_struct=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_png_png_create_read_struct" >&5 -$as_echo "$ac_cv_lib_png_png_create_read_struct" >&6; } -if test "x$ac_cv_lib_png_png_create_read_struct" = xyes; then : - - have_png_lib=yes - LIBPNG_LIBS="-lpng -lz" - -fi - - -else - LIBPNG_CFLAGS=$pkg_cv_LIBPNG_CFLAGS - LIBPNG_LIBS=$pkg_cv_LIBPNG_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - have_png_hdr=yes - have_png_lib=yes - -fi - if test x$have_png_hdr = xyes -a x$have_png_lib = xyes; then - $as_echo "#define LOAD_PNG 1" >>confdefs.h - - - case "$host" in - *-*-darwin*) - png_lib=`find_lib libpng.dylib` - ;; - *-*-cygwin* | *-*-mingw32*) - png_lib=`find_lib "libpng*.dll"` - ;; - *) - png_lib=`find_lib "libpng[0-9]*.so.*"` - if test x$png_lib = x; then - png_lib=`find_lib "libpng.so.*"` - fi - ;; - esac - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Unable to find PNG library (http://www.libpng.org/pub/png/libpng.html)" >&5 -$as_echo "$as_me: WARNING: *** Unable to find PNG library (http://www.libpng.org/pub/png/libpng.html)" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PNG image loading disabled" >&5 -$as_echo "$as_me: WARNING: PNG image loading disabled" >&2;} - fi -fi - -if test x$enable_tif = xyes -a x$enable_imageio != xyes; then - 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 : - have_tif_hdr=yes -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIFFClientOpen in -ltiff" >&5 -$as_echo_n "checking for TIFFClientOpen in -ltiff... " >&6; } -if ${ac_cv_lib_tiff_TIFFClientOpen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltiff -lz $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 TIFFClientOpen (); -int -main () -{ -return TIFFClientOpen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_tiff_TIFFClientOpen=yes -else - ac_cv_lib_tiff_TIFFClientOpen=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_TIFFClientOpen" >&5 -$as_echo "$ac_cv_lib_tiff_TIFFClientOpen" >&6; } -if test "x$ac_cv_lib_tiff_TIFFClientOpen" = xyes; then : - have_tif_lib=yes -fi - - if test x$have_tif_hdr = xyes -a x$have_tif_lib = xyes; then - $as_echo "#define LOAD_TIF 1" >>confdefs.h - - - case "$host" in - *-*-darwin*) - tif_lib=`find_lib libtiff.dylib` - ;; - *-*-cygwin* | *-*-mingw32*) - tif_lib=`find_lib "libtiff-*.dll"` - ;; - *) - tif_lib=`find_lib "libtiff[0-9]*.so.*"` - if test x$tif_lib = x; then - tif_lib=`find_lib "libtiff.so.*"` - fi - ;; - esac - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Unable to find Tiff library (http://www.remotesensing.org/libtiff/)" >&5 -$as_echo "$as_me: WARNING: *** Unable to find Tiff library (http://www.remotesensing.org/libtiff/)" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: TIF image loading disabled" >&5 -$as_echo "$as_me: WARNING: TIF image loading disabled" >&2;} - fi -fi - -if test x$enable_webp = xyes; then - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBWEBP" >&5 -$as_echo_n "checking for LIBWEBP... " >&6; } - -if test -n "$PKG_CONFIG"; then - if test -n "$LIBWEBP_CFLAGS"; then - pkg_cv_LIBWEBP_CFLAGS="$LIBWEBP_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libwebp\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libwebp") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBWEBP_CFLAGS=`$PKG_CONFIG --cflags "libwebp" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi -if test -n "$PKG_CONFIG"; then - if test -n "$LIBWEBP_LIBS"; then - pkg_cv_LIBWEBP_LIBS="$LIBWEBP_LIBS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libwebp\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libwebp") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBWEBP_LIBS=`$PKG_CONFIG --libs "libwebp" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - LIBWEBP_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libwebp"` - else - LIBWEBP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libwebp"` - fi - # Put the nasty error message in config.log where it belongs - echo "$LIBWEBP_PKG_ERRORS" >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_fn_c_check_header_mongrel "$LINENO" "webp/decode.h" "ac_cv_header_webp_decode_h" "$ac_includes_default" -if test "x$ac_cv_header_webp_decode_h" = xyes; then : - - have_webp_hdr=yes - LIBWEBP_CFLAGS="" - -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for WebPGetDecoderVersion in -lwebp" >&5 -$as_echo_n "checking for WebPGetDecoderVersion in -lwebp... " >&6; } -if ${ac_cv_lib_webp_WebPGetDecoderVersion+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lwebp -lm $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 WebPGetDecoderVersion (); -int -main () -{ -return WebPGetDecoderVersion (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_webp_WebPGetDecoderVersion=yes -else - ac_cv_lib_webp_WebPGetDecoderVersion=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_webp_WebPGetDecoderVersion" >&5 -$as_echo "$ac_cv_lib_webp_WebPGetDecoderVersion" >&6; } -if test "x$ac_cv_lib_webp_WebPGetDecoderVersion" = xyes; then : - - have_webp_lib=yes - LIBWEBP_LIBS="-lwebp" - -fi - - -elif test $pkg_failed = untried; then - ac_fn_c_check_header_mongrel "$LINENO" "webp/decode.h" "ac_cv_header_webp_decode_h" "$ac_includes_default" -if test "x$ac_cv_header_webp_decode_h" = xyes; then : - - have_webp_hdr=yes - LIBWEBP_CFLAGS="" - -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for WebPGetDecoderVersion in -lwebp" >&5 -$as_echo_n "checking for WebPGetDecoderVersion in -lwebp... " >&6; } -if ${ac_cv_lib_webp_WebPGetDecoderVersion+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lwebp -lm $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 WebPGetDecoderVersion (); -int -main () -{ -return WebPGetDecoderVersion (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_webp_WebPGetDecoderVersion=yes -else - ac_cv_lib_webp_WebPGetDecoderVersion=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_webp_WebPGetDecoderVersion" >&5 -$as_echo "$ac_cv_lib_webp_WebPGetDecoderVersion" >&6; } -if test "x$ac_cv_lib_webp_WebPGetDecoderVersion" = xyes; then : - - have_webp_lib=yes - LIBWEBP_LIBS="-lwebp" - -fi - - -else - LIBWEBP_CFLAGS=$pkg_cv_LIBWEBP_CFLAGS - LIBWEBP_LIBS=$pkg_cv_LIBWEBP_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - have_webp_hdr=yes - have_webp_lib=yes - -fi - if test x$have_webp_hdr = xyes -a x$have_webp_lib = xyes; then - $as_echo "#define LOAD_WEBP 1" >>confdefs.h - - - case "$host" in - *-*-darwin*) - webp_lib=`find_lib libwebp.dylib` - ;; - *-*-cygwin* | *-*-mingw32*) - webp_lib=`find_lib "libwebp*.dll"` - ;; - *) - webp_lib=`find_lib "libwebp[0-9]*.so.*"` - if test x$webp_lib = x; then - webp_lib=`find_lib "libwebp.so.*"` - fi - ;; - esac - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Unable to find WEBP library (http://code.google.com/intl/en-US/speed/webp/index.html)" >&5 -$as_echo "$as_me: WARNING: *** Unable to find WEBP library (http://code.google.com/intl/en-US/speed/webp/index.html)" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: WEBP Pimage loading disabled" >&5 -$as_echo "$as_me: WARNING: WEBP Pimage loading disabled" >&2;} - fi -fi - -if test x$enable_bmp = xyes; then - $as_echo "#define LOAD_BMP 1" >>confdefs.h - -fi - -if test x$enable_gif = xyes; then - $as_echo "#define LOAD_GIF 1" >>confdefs.h - -fi - -if test x$enable_lbm = xyes; then - $as_echo "#define LOAD_LBM 1" >>confdefs.h - -fi - -if test x$enable_pcx = xyes; then - $as_echo "#define LOAD_PCX 1" >>confdefs.h - -fi - -if test x$enable_pnm = xyes; then - $as_echo "#define LOAD_PNM 1" >>confdefs.h - -fi - -if test x$enable_svg = xyes; then - $as_echo "#define LOAD_SVG 1" >>confdefs.h - -fi - -if test x$enable_tga = xyes; then - $as_echo "#define LOAD_TGA 1" >>confdefs.h - -fi - -if test x$enable_xcf = xyes; then - $as_echo "#define LOAD_XCF 1" >>confdefs.h - -fi - -if test x$enable_xpm = xyes; then - $as_echo "#define LOAD_XPM 1" >>confdefs.h - -fi - -if test x$enable_xv = xyes; then - $as_echo "#define LOAD_XV 1" >>confdefs.h - -fi - -if test x$enable_webp = xyes -a x$have_webp_hdr = xyes -a x$have_webp_lib = xyes; then - CFLAGS="$LIBWEBP_CFLAGS $CFLAGS" - if test x$enable_webp_shared = xyes && test x$webp_lib != x; then - echo "-- dynamic libwebp -> $webp_lib" - cat >>confdefs.h <<_ACEOF -#define LOAD_WEBP_DYNAMIC "$webp_lib" -_ACEOF - - else - IMG_LIBS="$LIBWEBP_LIBS $IMG_LIBS" - fi -fi - -if test x$enable_tif = xyes -a x$have_tif_hdr = xyes -a x$have_tif_lib = xyes; then - if test x$enable_tif_shared = xyes && test x$tif_lib != x; then - echo "-- dynamic libtiff -> $tif_lib" - cat >>confdefs.h <<_ACEOF -#define LOAD_TIF_DYNAMIC "$tif_lib" -_ACEOF - - else - if test x$have_libjpeg = xyes; then - # Disable dynamic jpeg since we're linking it explicitly - jpg_lib='' - fi - IMG_LIBS="-ltiff -lz $IMG_LIBS" - fi -fi -if test x$enable_jpg = xyes -a x$have_jpg_hdr = xyes -a x$have_jpg_lib = xyes; then - if test x$enable_jpg_shared = xyes && test x$jpg_lib != x; then - echo "-- dynamic libjpeg -> $jpg_lib" - cat >>confdefs.h <<_ACEOF -#define LOAD_JPG_DYNAMIC "$jpg_lib" -_ACEOF - - else - IMG_LIBS="-ljpeg $IMG_LIBS" - fi -fi -if test x$enable_png = xyes -a x$have_png_hdr = xyes -a x$have_png_lib = xyes; then - CFLAGS="$LIBPNG_CFLAGS $CFLAGS" - if test x$enable_png_shared = xyes && test x$png_lib != x; then - echo "-- dynamic libpng -> $png_lib" - cat >>confdefs.h <<_ACEOF -#define LOAD_PNG_DYNAMIC "$png_lib" -_ACEOF - - else - IMG_LIBS="$LIBPNG_LIBS $IMG_LIBS" - fi -fi - -LIBS="$saved_LIBS" - - - - -OBJCFLAGS=$CFLAGS - -# Finally create all the generated files -ac_config_files="$ac_config_files Makefile SDL2_image.spec SDL2_image.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}' - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -ac_script=' -:mline -/\\$/{ - N - s,\\\n,, - b mline -} -t clear -:clear -s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g -t quote -s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g -t quote -b any -:quote -s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g -s/\[/\\&/g -s/\]/\\&/g -s/\$/$$/g -H -:any -${ - g - s/^\n// - s/\n/ /g - p -} -' -DEFS=`sed -n "$ac_script" confdefs.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 -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 -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepOBJC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${USE_IMAGEIO_TRUE}" && test -z "${USE_IMAGEIO_FALSE}"; then - as_fn_error $? "conditional \"USE_IMAGEIO\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${USE_VERSION_RC_TRUE}" && test -z "${USE_VERSION_RC_FALSE}"; then - as_fn_error $? "conditional \"USE_VERSION_RC\" 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 $as_me, 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 - - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -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 - -Configuration files: -$config_files - -Configuration commands: -$config_commands - -Report bugs to the package provider." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -config.status -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;; - --he | --h | --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 -# - - -# 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 "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' -macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' -AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' -enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' -enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' -pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' -enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' -host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' -host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' -host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' -build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' -build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' -build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' -SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' -Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' -GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' -EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' -FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' -LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' -NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' -LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' -max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' -ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' -exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' -lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' -lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' -lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' -reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' -reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' -deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' -file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' -AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' -AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' -STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' -RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' -old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' -CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' -CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' -compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' -GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' -objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' -SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' -ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' -MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' -need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' -DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' -NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' -LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' -OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' -OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' -libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' -shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' -extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' -archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' -export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' -archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' -archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' -module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' -module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' -with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' -allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' -no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' -inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' -link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' -fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' -always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' -export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' -exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' -include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' -prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' -file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' -variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' -need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' -need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' -version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' -runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' -shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' -shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' -libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' -library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' -soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' -postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' -finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' -sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' -sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' -enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' -enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' -enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' -old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' -striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' - -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# Quote evaled strings. -for var in SED \ -GREP \ -EGREP \ -FGREP \ -LD \ -NM \ -LN_S \ -lt_SP2NL \ -lt_NL2SP \ -reload_flag \ -deplibs_check_method \ -file_magic_cmd \ -AR \ -AR_FLAGS \ -STRIP \ -RANLIB \ -CC \ -CFLAGS \ -compiler \ -lt_cv_sys_global_symbol_pipe \ -lt_cv_sys_global_symbol_to_cdecl \ -lt_cv_sys_global_symbol_to_c_name_address \ -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -SHELL \ -ECHO \ -lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_wl \ -lt_prog_compiler_pic \ -lt_prog_compiler_static \ -lt_cv_prog_compiler_c_o \ -need_locks \ -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_flag_spec_ld \ -hardcode_libdir_separator \ -fix_srcfile_path \ -exclude_expsyms \ -include_expsyms \ -file_list_spec \ -variables_saved_for_relink \ -libname_spec \ -library_names_spec \ -soname_spec \ -finish_eval \ -old_striplib \ -striplib; do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - 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 \ -postinstall_cmds \ -postuninstall_cmds \ -finish_cmds \ -sys_lib_search_path_spec \ -sys_lib_dlsearch_path_spec; do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Fix-up fallback echo if it was mangled by the above quoting rules. -case \$lt_ECHO in -*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` - ;; -esac - -ac_aux_dir='$ac_aux_dir' -xsi_shell='$xsi_shell' -lt_shell_append='$lt_shell_append' - -# See if we are running on zsh, and set the options which 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' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile' - - - -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - -_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 - "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "SDL2_image.spec") CONFIG_FILES="$CONFIG_FILES SDL2_image.spec" ;; - "SDL2_image.pc") CONFIG_FILES="$CONFIG_FILES SDL2_image.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_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" - - -eval set X " :F $CONFIG_FILES :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 - ;; - - - :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 - "libtool":C) - - # See if we are running on zsh, and set the options which 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 - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 Free Software Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# 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 GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - - -# The names of the tagged configurations supported by this script. -available_tags="" - -# ### BEGIN LIBTOOL CONFIG - -# Which release of libtool.m4 was used? -macro_version=$macro_version -macro_revision=$macro_revision - -# Assembler program. -AS=$AS - -# DLL creation program. -DLLTOOL=$DLLTOOL - -# Object dumper program. -OBJDUMP=$OBJDUMP - -# 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 - -# 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 - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# 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 - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# 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 - -# 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 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 of the directory that contains temporary libtool files. -objdir=$objdir - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# An echo program that does not interpret backslashes. -ECHO=$lt_ECHO - -# 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 - -# 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 - -# 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 - -# Run-time system search path for libraries. -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# 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 - -# 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 - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic - -# 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 - -# If ld is used when linking, flag to hardcode \$libdir into a binary -# during linking. This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld - -# 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 - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - -# 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 - -# 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 - - 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 "X${COLLECT_NAMES+set}" != Xset; 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - case $xsi_shell in - yes) - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac -} - -# func_basename file -func_basename () -{ - func_basename_result="${1##*/}" -} - -# 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" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}" -} - -# func_stripname 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). -func_stripname () -{ - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"} -} - -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=${1%%=*} - func_opt_split_arg=${1#*=} -} - -# func_lo2o object -func_lo2o () -{ - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=${1%.*}.lo -} - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=$(( $* )) -} - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=${#1} -} - -_LT_EOF - ;; - *) # Bourne compatible functions. - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} - -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -} - - -# func_stripname 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). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; - esac -} - -# sed scripts: -my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' -my_sed_long_arg='1s/^-[^=]*=//' - -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` - func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` -} - -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` -} - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "$@"` -} - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` -} - -_LT_EOF -esac - -case $lt_shell_append in - yes) - cat << \_LT_EOF >> "$cfgfile" - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$1+=\$2" -} -_LT_EOF - ;; - *) - cat << \_LT_EOF >> "$cfgfile" - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$1=\$$1\$2" -} - -_LT_EOF - ;; - esac - - - sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - - ;; - "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 -} - ;; - - 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 - diff --git a/extension/SDL2_image-2.0.3/configure.in b/extension/SDL2_image-2.0.3/configure.in deleted file mode 100755 index 730671d..0000000 --- a/extension/SDL2_image-2.0.3/configure.in +++ /dev/null @@ -1,389 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_INIT(README.txt) - -dnl Set various version strings - taken gratefully from the GTk sources - -# Making releases: -# MICRO_VERSION += 1; -# INTERFACE_AGE += 1; -# BINARY_AGE += 1; -# if any functions have been added, set INTERFACE_AGE to 0. -# if backwards compatibility has been broken, -# set BINARY_AGE and INTERFACE_AGE to 0. - -MAJOR_VERSION=2 -MINOR_VERSION=0 -MICRO_VERSION=3 -INTERFACE_AGE=1 -BINARY_AGE=3 -VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION - -AC_SUBST(MAJOR_VERSION) -AC_SUBST(MINOR_VERSION) -AC_SUBST(MICRO_VERSION) -AC_SUBST(INTERFACE_AGE) -AC_SUBST(BINARY_AGE) -AC_SUBST(VERSION) - -# libtool versioning -LT_INIT([win32-dll]) - -LT_RELEASE=$MAJOR_VERSION.$MINOR_VERSION -LT_CURRENT=`expr $MICRO_VERSION - $INTERFACE_AGE` -LT_REVISION=$INTERFACE_AGE -LT_AGE=`expr $BINARY_AGE - $INTERFACE_AGE` - -AC_SUBST(LT_RELEASE) -AC_SUBST(LT_CURRENT) -AC_SUBST(LT_REVISION) -AC_SUBST(LT_AGE) - -dnl Detect the canonical build and host environments -AC_CANONICAL_HOST - -dnl Setup for automake -AM_INIT_AUTOMAKE(SDL2_image, $VERSION) - -dnl Check for tools -AC_PROG_LIBTOOL -AC_PROG_CC -AC_PROG_OBJC -AC_C_INLINE -AC_PROG_INSTALL -AC_PROG_MAKE_SET -if test -z "$host_alias"; then - hostaliaswindres= -else - hostaliaswindres="$host_alias-windres" -fi -AC_CHECK_PROGS(WINDRES, [windres $hostaliaswindres $host_os-windres]) - -case "$host" in - *-*-beos*) - ac_default_prefix=/boot/develop/tools/gnupro - ;; - *-*-cygwin* | *-*-mingw32*) - if test "$build" != "$host"; then # cross-compiling - # Default cross-compile location - ac_default_prefix=/usr/local/cross-tools/$host - else - # Look for the location of the tools and install there - if test "$BUILD_PREFIX" != ""; then - ac_default_prefix=$BUILD_PREFIX - fi - fi - if test x$WINDRES != x; then - use_version_rc=true - fi - ;; - *-*-darwin*) - AC_ARG_ENABLE([imageio], [AC_HELP_STRING([--enable-imageio], [use native Mac OS X frameworks for loading images [default=yes]])], - [], [enable_imageio=yes]) - if test x$enable_imageio = xyes; then - IMG_LIBS="-Wl,-framework,ApplicationServices -lobjc $IMG_LIBS" - else - CFLAGS="$CFLAGS -DSDL_IMAGE_USE_COMMON_BACKEND" - fi - ;; -esac -AM_CONDITIONAL(USE_IMAGEIO, test x$enable_imageio = xyes) -AM_CONDITIONAL(USE_VERSION_RC, test x$use_version_rc = xtrue) - -dnl set this to use on systems that use lib64 instead of lib -base_libdir=`echo \${libdir} | sed 's/.*\/\(.*\)/\1/; q'` - -dnl Function to find a library in the compiler search path -find_lib() -{ - gcc_bin_path=[`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`] - gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`] - env_lib_path=[`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'`] - if test "$cross_compiling" = yes; then - host_lib_path="" - else - host_lib_path="/usr/$base_libdir /usr/local/$base_libdir" - fi - for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do - lib=[`ls -- $path/$1 2>/dev/null | sed -e '/\.so\..*\./d' -e 's,.*/,,' | sort | tail -1`] - if test x$lib != x; then - echo $lib - return - fi - done -} - -dnl Check for SDL -SDL_VERSION=2.0.8 -AC_SUBST(SDL_VERSION) -AM_PATH_SDL2($SDL_VERSION, - :, - AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!]) -) -CFLAGS="$CFLAGS $SDL_CFLAGS" -LIBS="$LIBS $SDL_LIBS" -saved_LIBS="$LIBS" - -dnl Check command-line options -AC_ARG_ENABLE([bmp], [AC_HELP_STRING([--enable-bmp], [support loading BMP/ICO/CUR images [default=yes]])], - [], [enable_bmp=yes]) -AC_ARG_ENABLE([gif], [AC_HELP_STRING([--enable-gif], [support loading GIF images [default=yes]])], - [], [enable_gif=yes]) -AC_ARG_ENABLE([jpg], [AC_HELP_STRING([--enable-jpg], [support loading JPG images [default=yes]])], - [], [enable_jpg=yes]) -AC_ARG_ENABLE([jpg-shared], AC_HELP_STRING([--enable-jpg-shared], [dynamically load JPG support [[default=yes]]]), - [], [enable_jpg_shared=yes]) -AC_ARG_ENABLE([lbm], [AC_HELP_STRING([--enable-lbm], [support loading LBM images [default=yes]])], - [], [enable_lbm=yes]) -AC_ARG_ENABLE([pcx], [AC_HELP_STRING([--enable-pcx], [support loading PCX images [default=yes]])], - [], [enable_pcx=yes]) -AC_ARG_ENABLE([png], [AC_HELP_STRING([--enable-png], [support loading PNG images [default=yes]])], - [], [enable_png=yes]) -AC_ARG_ENABLE([png-shared], AC_HELP_STRING([--enable-png-shared], [dynamically load PNG support [[default=yes]]]), - [], [enable_png_shared=yes]) -AC_ARG_ENABLE([pnm], [AC_HELP_STRING([--enable-pnm], [support loading PNM images [default=yes]])], - [], [enable_pnm=yes]) -AC_ARG_ENABLE([svg], [AC_HELP_STRING([--enable-svg], [support loading SVG images [default=yes]])], - [], [enable_svg=yes]) -AC_ARG_ENABLE([tga], [AC_HELP_STRING([--enable-tga], [support loading TGA images [default=yes]])], - [], [enable_tga=yes]) -AC_ARG_ENABLE([tif], [AC_HELP_STRING([--enable-tif], [support loading TIFF images [default=yes]])], - [], [enable_tif=yes]) -AC_ARG_ENABLE([tif-shared], AC_HELP_STRING([--enable-tif-shared], [dynamically load TIFF support [[default=yes]]]), - [], [enable_tif_shared=yes]) -AC_ARG_ENABLE([xcf], [AC_HELP_STRING([--enable-xcf], [support loading XCF images [default=yes]])], - [], [enable_xcf=yes]) -AC_ARG_ENABLE([xpm], [AC_HELP_STRING([--enable-xpm], [support loading XPM images [default=yes]])], - [], [enable_xpm=yes]) -AC_ARG_ENABLE([xv], [AC_HELP_STRING([--enable-xv], [support loading XV images [default=yes]])], - [], [enable_xv=yes]) -AC_ARG_ENABLE([webp], [AC_HELP_STRING([--enable-webp], [support loading WEBP images [default=yes]])], - [], [enable_webp=yes]) -AC_ARG_ENABLE([webp-shared], AC_HELP_STRING([--enable-webp-shared], [dynamically load WEBP support [[default=yes]]]), - [], [enable_webp_shared=yes]) - -dnl Show a message when we use ImageIO support so it's not a surprise -AC_MSG_CHECKING([for ImageIO support]) -AC_MSG_RESULT($enable_imageio) - -if (test x$enable_jpg = xyes || test x$enable_tif = xyes) && test x$enable_imageio != xyes; then - AC_CHECK_HEADER([jpeglib.h], [have_jpg_hdr=yes]) - AC_CHECK_LIB([jpeg], [jpeg_CreateDecompress], [have_jpg_lib=yes]) - if test x$have_jpg_hdr = xyes -a x$have_jpg_lib = xyes; then - if test x$enable_jpg = xyes; then - AC_DEFINE([LOAD_JPG]) - fi - LIBS="-ljpeg $LIBS" - - case "$host" in - *-*-darwin*) - jpg_lib=[`find_lib libjpeg.dylib`] - ;; - *-*-cygwin* | *-*-mingw32*) - jpg_lib=[`find_lib "libjpeg*.dll"`] - ;; - *) - jpg_lib=[`find_lib "libjpeg[0-9]*.so.*"`] - if test x$jpg_lib = x; then - jpg_lib=[`find_lib "libjpeg.so.*"`] - fi - ;; - esac - elif test x$enable_jpg = xyes; then - AC_MSG_WARN([*** Unable to find JPEG library (http://www.ijg.org/)]) - AC_MSG_WARN([JPG image loading disabled]) - fi -fi - -if test x$enable_png = xyes -a x$enable_imageio != xyes; then - PKG_CHECK_MODULES([LIBPNG], [libpng], [dnl - have_png_hdr=yes - have_png_lib=yes - ], [dnl - AC_CHECK_HEADER([png.h], [ - have_png_hdr=yes - LIBPNG_CFLAGS="" - ]) - AC_CHECK_LIB([png], [png_create_read_struct], [ - have_png_lib=yes - LIBPNG_LIBS="-lpng -lz" - ], [], [-lz]) - ]) - if test x$have_png_hdr = xyes -a x$have_png_lib = xyes; then - AC_DEFINE([LOAD_PNG]) - - case "$host" in - *-*-darwin*) - png_lib=[`find_lib libpng.dylib`] - ;; - *-*-cygwin* | *-*-mingw32*) - png_lib=[`find_lib "libpng*.dll"`] - ;; - *) - png_lib=[`find_lib "libpng[0-9]*.so.*"`] - if test x$png_lib = x; then - png_lib=[`find_lib "libpng.so.*"`] - fi - ;; - esac - else - AC_MSG_WARN([*** Unable to find PNG library (http://www.libpng.org/pub/png/libpng.html)]) - AC_MSG_WARN([PNG image loading disabled]) - fi -fi - -if test x$enable_tif = xyes -a x$enable_imageio != xyes; then - AC_CHECK_HEADER([tiffio.h], [have_tif_hdr=yes]) - AC_CHECK_LIB([tiff], [TIFFClientOpen], [have_tif_lib=yes], [], [-lz]) - if test x$have_tif_hdr = xyes -a x$have_tif_lib = xyes; then - AC_DEFINE([LOAD_TIF]) - - case "$host" in - *-*-darwin*) - tif_lib=[`find_lib libtiff.dylib`] - ;; - *-*-cygwin* | *-*-mingw32*) - tif_lib=[`find_lib "libtiff-*.dll"`] - ;; - *) - tif_lib=[`find_lib "libtiff[0-9]*.so.*"`] - if test x$tif_lib = x; then - tif_lib=[`find_lib "libtiff.so.*"`] - fi - ;; - esac - else - AC_MSG_WARN([*** Unable to find Tiff library (http://www.remotesensing.org/libtiff/)]) - AC_MSG_WARN([TIF image loading disabled]) - fi -fi - -if test x$enable_webp = xyes; then - PKG_CHECK_MODULES([LIBWEBP], [libwebp], [dnl - have_webp_hdr=yes - have_webp_lib=yes - ], [dnl - AC_CHECK_HEADER([webp/decode.h], [ - have_webp_hdr=yes - LIBWEBP_CFLAGS="" - ]) - AC_CHECK_LIB([webp], [WebPGetDecoderVersion], [ - have_webp_lib=yes - LIBWEBP_LIBS="-lwebp" - ], [], [-lm]) - ]) - if test x$have_webp_hdr = xyes -a x$have_webp_lib = xyes; then - AC_DEFINE([LOAD_WEBP]) - - case "$host" in - *-*-darwin*) - webp_lib=[`find_lib libwebp.dylib`] - ;; - *-*-cygwin* | *-*-mingw32*) - webp_lib=[`find_lib "libwebp*.dll"`] - ;; - *) - webp_lib=[`find_lib "libwebp[0-9]*.so.*"`] - if test x$webp_lib = x; then - webp_lib=[`find_lib "libwebp.so.*"`] - fi - ;; - esac - else - AC_MSG_WARN([*** Unable to find WEBP library (http://code.google.com/intl/en-US/speed/webp/index.html)]) - AC_MSG_WARN([WEBP Pimage loading disabled]) - fi -fi - -if test x$enable_bmp = xyes; then - AC_DEFINE([LOAD_BMP]) -fi - -if test x$enable_gif = xyes; then - AC_DEFINE([LOAD_GIF]) -fi - -if test x$enable_lbm = xyes; then - AC_DEFINE([LOAD_LBM]) -fi - -if test x$enable_pcx = xyes; then - AC_DEFINE([LOAD_PCX]) -fi - -if test x$enable_pnm = xyes; then - AC_DEFINE([LOAD_PNM]) -fi - -if test x$enable_svg = xyes; then - AC_DEFINE([LOAD_SVG]) -fi - -if test x$enable_tga = xyes; then - AC_DEFINE([LOAD_TGA]) -fi - -if test x$enable_xcf = xyes; then - AC_DEFINE([LOAD_XCF]) -fi - -if test x$enable_xpm = xyes; then - AC_DEFINE([LOAD_XPM]) -fi - -if test x$enable_xv = xyes; then - AC_DEFINE([LOAD_XV]) -fi - -if test x$enable_webp = xyes -a x$have_webp_hdr = xyes -a x$have_webp_lib = xyes; then - CFLAGS="$LIBWEBP_CFLAGS $CFLAGS" - if test x$enable_webp_shared = xyes && test x$webp_lib != x; then - echo "-- dynamic libwebp -> $webp_lib" - AC_DEFINE_UNQUOTED(LOAD_WEBP_DYNAMIC, "$webp_lib") - else - IMG_LIBS="$LIBWEBP_LIBS $IMG_LIBS" - fi -fi - -if test x$enable_tif = xyes -a x$have_tif_hdr = xyes -a x$have_tif_lib = xyes; then - if test x$enable_tif_shared = xyes && test x$tif_lib != x; then - echo "-- dynamic libtiff -> $tif_lib" - AC_DEFINE_UNQUOTED(LOAD_TIF_DYNAMIC, "$tif_lib") - else - if test x$have_libjpeg = xyes; then - # Disable dynamic jpeg since we're linking it explicitly - jpg_lib='' - fi - IMG_LIBS="-ltiff -lz $IMG_LIBS" - fi -fi -if test x$enable_jpg = xyes -a x$have_jpg_hdr = xyes -a x$have_jpg_lib = xyes; then - if test x$enable_jpg_shared = xyes && test x$jpg_lib != x; then - echo "-- dynamic libjpeg -> $jpg_lib" - AC_DEFINE_UNQUOTED(LOAD_JPG_DYNAMIC, "$jpg_lib") - else - IMG_LIBS="-ljpeg $IMG_LIBS" - fi -fi -if test x$enable_png = xyes -a x$have_png_hdr = xyes -a x$have_png_lib = xyes; then - CFLAGS="$LIBPNG_CFLAGS $CFLAGS" - if test x$enable_png_shared = xyes && test x$png_lib != x; then - echo "-- dynamic libpng -> $png_lib" - AC_DEFINE_UNQUOTED(LOAD_PNG_DYNAMIC, "$png_lib") - else - IMG_LIBS="$LIBPNG_LIBS $IMG_LIBS" - fi -fi - -LIBS="$saved_LIBS" - -AC_SUBST([WINDRES]) -AC_SUBST([IMG_LIBS]) - -OBJCFLAGS=$CFLAGS - -# Finally create all the generated files -AC_OUTPUT([ -Makefile -SDL2_image.spec -SDL2_image.pc -]) diff --git a/extension/SDL2_image-2.0.3/debian/changelog b/extension/SDL2_image-2.0.3/debian/changelog deleted file mode 100755 index 459a316..0000000 --- a/extension/SDL2_image-2.0.3/debian/changelog +++ /dev/null @@ -1,339 +0,0 @@ -libsdl2-image (2.0.3) UNRELEASED; urgency=low - - * Updated to version 2.0.3 - - -- Sam Lantinga Sun, 28 Jan 2018 21:31:07 -0800 - -libsdl2-image (2.0.2) UNRELEASED; urgency=low - - * Updated to version 2.0.2 - - -- Sam Lantinga Sun, 22 Oct 2017 13:38:34 -0800 - -libsdl2-image (2.0.1) UNRELEASED; urgency=low - - * Updated to version 2.0.1 - - -- Sam Lantinga Thu, 07 Jan 2016 12:02:13 -0800 - -libsdl2-image (2.0.0) unstable; urgency=low - - * Updated library version to 2.0 for consistency with SDL 2.0 - - -- Sam Lantinga Tue, 26 Feb 2013 15:48:41 -0800 - -libsdl2-image (1.2.12) unstable; urgency=low - - * sdl-image for SDL2. Initial release. - - -- Sam Lantinga Fri, 15 Feb 2013 13:09:44 -0800 - -sdl-image1.2 (1.2.10-3) unstable; urgency=low - - [ Felix Geyer ] - * Drop ancient Conflicts. - * Wrap (Build-)Depends in debian/control. - * Switch to dh(1) debian/rules. - * Enable parallel building. - * Drop .la file. - * Drop local dpkg-shlibdeps overrides. - * Remove all patches since they were disabled anyway. - * Switch to source format 3.0 (quilt). - * Update to Standards-Version 3.9.2, no further changes necessary. - * Switch to debhelper compat level v9. - - Exports build flags. - - Build for multiarch. (Closes: #651006) - * Override lintian warning package-name-doesnt-match-sonames. - * Fix building with libpng 1.5. (Closes: #636007) - - Add libpng15.diff. - - (Build-)Depend on libpng-dev instead of libpng12-dev. - * Add myself as uploader. - * Update Vcs control fields to the new git repository. - * Improve copyright file. - - [ Dominique Dumont ] - * control: allowed DM uploads. Set dev pkg to multi-arch: same - * copyright: converted to DEP-5 debian/copyright - * source: override package-needs-versioned-debhelper-build-depends - warning - - -- Felix Geyer Thu, 01 Dec 2011 13:11:22 +0100 - -sdl-image1.2 (1.2.10-2.1) unstable; urgency=low - - * Non-maintainer upload. - * Empty dependency_libs (Closes: #619536). - * Fix configure flags (Closes: #591190). - - -- Luk Claes Sun, 26 Jun 2011 17:58:00 +0200 - -sdl-image1.2 (1.2.10-2) unstable; urgency=low - - [ Aurelien Jarno ] - * Add myself to uploaders. - * Bump shlibs (Closes: #563452). - * (Build-)Depends on libjpeg-dev instead of libjpeg62-dev - (Closes: #569241). - - -- Aurelien Jarno Thu, 11 Feb 2010 15:12:43 +0100 - -sdl-image1.2 (1.2.10-1) unstable; urgency=low - - [ Barry deFreese ] - * Have SDL Team take over maintenance. - + With permission from Michael Koch. - + Thanks to Michael for all of his previous work. - * Add myself to uploaders. - * Add VCS tags. - * New upstream release. - - -- Barry deFreese Mon, 16 Nov 2009 14:30:11 -0500 - -sdl-image1.2 (1.2.8-1) unstable; urgency=low - - * New upstream release. - - adds pkg-config support (Closes: #515123) - - -- Michael Koch Thu, 22 Oct 2009 23:09:13 +0200 - -sdl-image1.2 (1.2.7-2) unstable; urgency=low - - * debian/control: - - Added ${misc:Depends} to all Depends. - - Updated Standards-Version to 3.8.3. - - -- Michael Koch Mon, 31 Aug 2009 08:17:06 +0200 - -sdl-image1.2 (1.2.7-1) unstable; urgency=low - - * New upstream release. - * debian/control: Build-Depends on debhelper (>= 5). - * debian/control: Updated Standards-Version to 3.8.2. - * debian/control: Add Homepage field. - * debian/watch: Updated watch file for easier upstream updates. - - -- Michael Koch Tue, 21 Jul 2009 21:08:48 +0200 - -sdl-image1.2 (1.2.6-3) unstable; urgency=low - - * CVE-2008-0544: Fix heap based buffer overflow. - * Force library to link libjpeg and libtif and not dlopen them during - runtime. - - -- Michael Koch Tue, 05 Feb 2008 23:10:31 +0100 - -sdl-image1.2 (1.2.6-2) unstable; urgency=high - - * Fixed buffer overflow when reading GIFs. CVE pending. - * Updated Standards-Version to 3.7.3. - - -- Michael Koch Sun, 27 Jan 2008 23:44:23 +0100 - -sdl-image1.2 (1.2.6-1) unstable; urgency=low - - * New upstream release. Closes: #437005. - * Replaced obsolete ${Source-Version}. - * Handle errors better in clean target. - - -- Michael Koch Sat, 11 Aug 2007 16:42:46 +0200 - -sdl-image1.2 (1.2.5-3) unstable; urgency=low - - * Updated config.guess and config.sub (Closes: #401526). - - -- Michael Koch Tue, 16 Jan 2007 08:38:19 +0100 - -sdl-image1.2 (1.2.5-2) unstable; urgency=low - - * Added patch to make SDL_image 1.2 less segfault. Thanks to Margarita - Manterola for the patch (Closes: #378173). - - -- Michael Koch Sat, 22 Jul 2006 04:30:39 +0000 - -sdl-image1.2 (1.2.5-1) unstable; urgency=low - - * New upstream release - * Updated Build-Depends and Depends to SDL 1.2.10 - * Updated minimum shlibs version to 1.2.5 - * Updated Standards-Version to 3.7.2 - * Simplified watch file - * Fixed address of FSF in debian/copyright - - -- Michael Koch Fri, 9 Jun 2006 07:21:47 +0000 - -sdl-image1.2 (1.2.4-1) unstable; urgency=low - - * New upstream release - * debian/copyright: Fixed header for license text (Closes: #290199) - * Updated config.guess and config.sub (Closes: #267493) - * debian/rules: Use dh_installman instead of dh_installmanpages - - -- Michael Koch Wed, 23 Feb 2005 10:44:58 +0000 - -sdl-image1.2 (1.2.3-6) unstable; urgency=low - - * Fixed download URL in debian/copyright - * Added debian/watch - * Add -ltiff before -ljpeg. Added debian/patches/bug267169.diff for this - (Closes: #267169) - - -- Michael Koch Tue, 16 Nov 2004 18:24:14 +0000 - -sdl-image1.2 (1.2.3-5) unstable; urgency=low - - * libsdl-image1.2-dev: Updated Depends to use libtiff4-dev (Closes: #262160) - Thanks to Jochen Friedrich. - - -- Michael Koch Fri, 30 Jul 2004 20:27:09 +0200 - -sdl-image1.2 (1.2.3-4) unstable; urgency=low - - * Build-Depend on libtiff4-dev. - * debian/copyright: Updated download URL, author mail address - and copyrigth notice. - * libsdl-image1.2-dev: Updated section to libdevel. - - -- Michael Koch Sun, 25 Jul 2004 20:44:14 +0200 - -sdl-image1.2 (1.2.3-3) unstable; urgency=low - - * Added patch from Ivo Danihelka - (Closes: 256660). - * Updated Standards-Version to 3.6.1. - * Build depend on debhelper (>= 4.0.0). - * Use debian/compat instead of DH_COMPAT. - * Raised debhelper compat level to 4. - * Use dh_install instead of dh_movefiles. - - -- Michael Koch Thu, 8 Jul 2004 11:39:58 +0200 - -sdl-image1.2 (1.2.3-2) unstable; urgency=low - - * Build-Depends on libpng12-dev not libpng3-dev. - * libsdl-image1.2-dev: Depends on libpng12-dev instead of libpng3-dev. - * Bumped Standards-Version to 3.5.10. - - -- Michael Koch Mon, 23 Jun 2003 05:38:52 +0000 - -sdl-image1.2 (1.2.3-1) unstable; urgency=low - - * New upstream version. - * Conflicts with packages explicitely linking libpng2 (Closes: #178802). - * Bumped Standards-Version to 3.5.9. - * Fixed "noopt" handling in debian/rules. - * Changed debian/shlibs.local to fix libsdl1.2debian dependency. - - -- Michael Koch Thu, 20 Mar 2003 12:48:26 +0100 - -sdl-image1.2 (1.2.2-5) unstable; urgency=low - - * Bumped Standards-Version to 3.5.8. - - -- Michael Koch Thu, 12 Dec 2002 19:48:39 +0100 - -sdl-image1.2 (1.2.2-4) unstable; urgency=low - - * Support "noopt" option and dropped "debug". - * Enabled TIFF and XCF support. - * Cleaned up debian rules. - - -- Michael Koch Wed, 23 Oct 2002 17:07:37 +0200 - -sdl-image1.2 (1.2.2-3) unstable; urgency=low - - * Updated Standard-Version to 3.5.7. - - -- Michael Koch Thu, 5 Sep 2002 16:59:08 +0200 - -sdl-image1.2 (1.2.2-2) unstable; urgency=low - - * New maintainer (Closes: #158940). - * Build-Depend on libpng3-dev (Closes: #153871, #156033). - * libsdl-image1.2-dev depend on libpng3-dev. - * added AM_MAINTAINER_MODE to configure.in to get rid of conflicts to - aclocal, autoconf, automake (Closes: #153851). - * use debhelper compat mode 3 (Build-Depend on debhelper >> 3.0). - * add support for DEB_HOST_GNU_TYPE, DEB_BUILD_GNU_TYPE and - DEB_BUILD_OPTIONS. - * removed postinst script. debhelper does all automatically. - * reworked debian/rules - - -- Michael Koch Wed, 4 Sep 2002 09:29:11 +0200 - -sdl-image1.2 (1.2.2-1) unstable; urgency=low - - * new upstream version (closes: #150670) - * build-depend on new SDL 1.2.4 - * patch acinclude.m4, configure.in - * re-run libtoolize --force --copy; aclocal; patch aclocal.m4 to include - SDL_LIBS_FOR_LIBS, then run automake --foreign; autoconf - * depend on libpng-dev, not on (older) libpng2-dev (closes: #152302) - - -- Christian T. Steigies Mon, 8 Jul 2002 23:03:25 -0400 - -sdl-image1.2 (1.2.1-2) unstable; urgency=low - - * libsdl-image1.2-dev should depend on -dev packages, thanks Junichi - * Ok, I've had enough. To make it build on slower arches as well we now - build-conflict with aclocal, autoconf, automake - * "missing" has to be executable - - -- Christian T. Steigies Sat, 13 Apr 2002 22:15:49 -0400 - -sdl-image1.2 (1.2.1-1.1) unstable; urgency=low - - * NMU - * built against libsdl1.2 1.2.2-3.3 - * acinclude.m4: removed copy of sdl.m4 - * configure.in: IMG_LIBS should use SDL_LIBS_FOR_LIBS, not SDL_LIBS - * re-ran libtoolize --force --copy; aclocal; automake --foreign; autoconf - * debian/control: - - updated Build-Depends and Depends on libsdl1.2 to 1.2.2-3.3 - - tweaked package descriptions - - -- Branden Robinson Tue, 25 Dec 2001 05:45:38 -0500 - -sdl-image1.2 (1.2.1-1) unstable; urgency=low - - * new upstream version - * tried to add Branden's fixes again in Makefile.am, aclocal.m4 and - configure.in - * re-ran libtoolize --force --copy; aclocal; automake --foreign; autoconf - - -- Christian T. Steigies Tue, 18 Dec 2001 21:21:39 -0500 - -sdl-image1.2 (1.2.0-2) unstable; urgency=low - - * fix section in control file, libsdl-image1.2 goes in libs, -dev in devel - - -- Christian T. Steigies Mon, 12 Nov 2001 21:15:11 -0500 - -sdl-image1.2 (1.2.0-1.1) unstable; urgency=low - - * NMU to fix the Big SDL and X Extension Library Problem (Closes: #115051) - * built against libsdl1.2 1.2.2-3.1 - * Thanks to Eric Gillespie, Jr. for help preparing this solution. - * Makefile.am: use @SDL_LIBS_FOR_LIBS@ for the SDL image library itself, - and @SDL_LIBS@ for the sample program - * acinclude.m4: removed copy of sdl.m4 - * configure.in: don't define LIBS here - * re-ran libtoolize --force --copy; aclocal; automake --foreign; autoconf - * debian/control: - - bumped Standards-Version - - add Build-Depends on zlib1g-dev - - add versioning of (>= 1.2.2-3.1) to Build-Dep on libsdl1.2-dev - (it contains the logic for @SDL_LIBS_FOR_LIBS@) - - add versioning of (>= 1.2.2-3.1) to libsdl-image1.2-dev's dependency on - libsdl1.2-dev - * debian/postinst: only run ldconfig if $1 = "configure" - * debian/rules: - - remove some crack-smoking file deletion from the build rule (it always - fails, and is taken care of in the install rule) - - -- Branden Robinson Wed, 10 Oct 2001 12:33:40 -0500 - -sdl-image1.2 (1.2.0-1) unstable; urgency=low - - * sdl-image for SDL1.2. Initial Release. (closes: #94452) - - -- Christian T. Steigies Fri, 20 Apr 2001 15:19:03 -0400 diff --git a/extension/SDL2_image-2.0.3/debian/compat b/extension/SDL2_image-2.0.3/debian/compat deleted file mode 100755 index ec63514..0000000 --- a/extension/SDL2_image-2.0.3/debian/compat +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/extension/SDL2_image-2.0.3/debian/control b/extension/SDL2_image-2.0.3/debian/control deleted file mode 100755 index 5b32633..0000000 --- a/extension/SDL2_image-2.0.3/debian/control +++ /dev/null @@ -1,47 +0,0 @@ -Source: libsdl2-image -Section: libs -Priority: optional -Maintainer: Debian SDL packages maintainers -Uploaders: Barry deFreese , - Aurelien Jarno , - Felix Geyer , - Sam Lantinga -Standards-Version: 3.9.2 -Build-Depends: debhelper (>= 8.9.0~), - dh-autoreconf, - dpkg-dev (>= 1.16.1~), - libsdl2-dev (>= 2.0.0), - libjpeg-dev, - libpng-dev, - libtiff4-dev, - zlib1g-dev -Homepage: http://www.libsdl.org/projects/SDL_image/ - -Package: libsdl2-image -Architecture: any -Multi-Arch: same -Pre-Depends: ${misc:Pre-Depends} -Depends: ${misc:Depends}, - ${shlibs:Depends} -Description: Image loading library for Simple DirectMedia Layer 2.0 - This is a simple library to load images of various formats as SDL surfaces. - This library currently supports BMP, PPM, PCX, GIF, JPEG, PNG, TIFF, and XPM - formats. - . - This package contains the shared library. - -Package: libsdl2-image-dev -Section: libdevel -Architecture: any -Multi-Arch: same -Depends: ${misc:Depends}, - libsdl2-image (= ${binary:Version}), - libc6-dev, - libsdl2-dev (>= 2.0.0) -Description: development files for SDL 2.0 image loading library - This is a simple library to load images of various formats as SDL surfaces. - This library currently supports BMP, PPM, PCX, GIF, JPEG, PNG, TIFF, and XPM - formats. - . - This package contains files needed if you wish to use the SDL image - library in your own programs. diff --git a/extension/SDL2_image-2.0.3/debian/copyright b/extension/SDL2_image-2.0.3/debian/copyright deleted file mode 100755 index 33d70aa..0000000 --- a/extension/SDL2_image-2.0.3/debian/copyright +++ /dev/null @@ -1,47 +0,0 @@ -Format: http://dep.debian.net/deps/dep5/ -Upstream-Name: SDL_image -Upstream-Contact: Sam Lantinga -Source: downloaded from http://www.libsdl.org/projects/SDL_image/ - -Files: * -Copyright: 1997-2018 Sam Lantinga - 2009 Eric Wing - 1990, 1991, 1993 David Koblas - 1996 Torsten Martinsen - 1998 Philippe Lavoie -License: zlib/libpng - -Files: debian/* -Copyright: 2011, Felix Geyer - 2010, Aurelien Jarno - 2009, Barry deFreese - 2002-2009 Michael Koch - 2001,2002, Christian T. Steigies -License: LGPL-2.1+ - -License: zlib/libpng - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - . - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - . - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - -License: LGPL-2.1+ - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or (at - your option) any later version. - . - On Debian systems, the complete text of version 2.1 of the GNU Lesser - Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. - diff --git a/extension/SDL2_image-2.0.3/debian/docs b/extension/SDL2_image-2.0.3/debian/docs deleted file mode 100755 index 71dfd5b..0000000 --- a/extension/SDL2_image-2.0.3/debian/docs +++ /dev/null @@ -1 +0,0 @@ -README.txt diff --git a/extension/SDL2_image-2.0.3/debian/examples/Makefile b/extension/SDL2_image-2.0.3/debian/examples/Makefile deleted file mode 100755 index 8d94bed..0000000 --- a/extension/SDL2_image-2.0.3/debian/examples/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# Makefile for showimage - -CC = gcc -CFLAGS = $(shell sdl2-config --cflags) -Wall -O -LIBS = $(shell sdl2-config --libs) -lSDL2_image -EXE = showimage - -all: $(EXE) - -showimage: showimage.c Makefile - $(CC) -o $@ $@.c $(CFLAGS) $(LIBS) - -clean: - -rm *.o $(EXE) diff --git a/extension/SDL2_image-2.0.3/debian/libsdl2-image-dev.examples b/extension/SDL2_image-2.0.3/debian/libsdl2-image-dev.examples deleted file mode 100755 index 57afbcc..0000000 --- a/extension/SDL2_image-2.0.3/debian/libsdl2-image-dev.examples +++ /dev/null @@ -1,2 +0,0 @@ -debian/examples/Makefile -showimage.c diff --git a/extension/SDL2_image-2.0.3/debian/libsdl2-image-dev.install b/extension/SDL2_image-2.0.3/debian/libsdl2-image-dev.install deleted file mode 100755 index d05ca2e..0000000 --- a/extension/SDL2_image-2.0.3/debian/libsdl2-image-dev.install +++ /dev/null @@ -1,4 +0,0 @@ -usr/include -usr/lib/*/lib*.a -usr/lib/*/lib*.so -usr/lib/*/pkgconfig diff --git a/extension/SDL2_image-2.0.3/debian/libsdl2-image.install b/extension/SDL2_image-2.0.3/debian/libsdl2-image.install deleted file mode 100755 index 3ddde58..0000000 --- a/extension/SDL2_image-2.0.3/debian/libsdl2-image.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/*/lib*.so.* diff --git a/extension/SDL2_image-2.0.3/debian/libsdl2-image.lintian-overrides b/extension/SDL2_image-2.0.3/debian/libsdl2-image.lintian-overrides deleted file mode 100755 index ff815a5..0000000 --- a/extension/SDL2_image-2.0.3/debian/libsdl2-image.lintian-overrides +++ /dev/null @@ -1 +0,0 @@ -libsdl2-image: package-name-doesnt-match-sonames libSDL2-image diff --git a/extension/SDL2_image-2.0.3/debian/rules b/extension/SDL2_image-2.0.3/debian/rules deleted file mode 100755 index df91baa..0000000 --- a/extension/SDL2_image-2.0.3/debian/rules +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/make -f - -confflags = --disable-webp --disable-jpg-shared --disable-png-shared --disable-tif-shared - -%: - dh $@ --with autoreconf --parallel - -override_dh_autoreconf: - dh_autoreconf ./autogen.sh - -override_dh_auto_configure: - dh_auto_configure -- $(confflags) - -override_dh_auto_installchangelogs: - dh_auto_installchangelogs -- CHANGES - -override_dh_compress: - dh_compress -Xshowimage.c diff --git a/extension/SDL2_image-2.0.3/debian/source/format b/extension/SDL2_image-2.0.3/debian/source/format deleted file mode 100755 index 89ae9db..0000000 --- a/extension/SDL2_image-2.0.3/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (native) diff --git a/extension/SDL2_image-2.0.3/debian/source/lintian-overrides b/extension/SDL2_image-2.0.3/debian/source/lintian-overrides deleted file mode 100755 index 57c5566..0000000 --- a/extension/SDL2_image-2.0.3/debian/source/lintian-overrides +++ /dev/null @@ -1 +0,0 @@ -sdl2-image source: package-needs-versioned-debhelper-build-depends 9 diff --git a/extension/SDL2_image-2.0.3/debian/watch b/extension/SDL2_image-2.0.3/debian/watch deleted file mode 100755 index f4195a9..0000000 --- a/extension/SDL2_image-2.0.3/debian/watch +++ /dev/null @@ -1,2 +0,0 @@ -version=3 -http://www.libsdl.org/projects/SDL_image/release/ (?:.*/)?SDL_image-?_?([\w+\d+\.]+|\d+)\.tar\.gz debian uupdate diff --git a/extension/SDL2_image-2.0.3/depcomp b/extension/SDL2_image-2.0.3/depcomp deleted file mode 100755 index ca5ea4e..0000000 --- a/extension/SDL2_image-2.0.3/depcomp +++ /dev/null @@ -1,584 +0,0 @@ -#! /bin/sh -# depcomp - compile a program generating dependencies as side-effects - -scriptversion=2006-10-15.18 - -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 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, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. - -# 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 outputing dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit $? - ;; -esac - -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" - -# 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 - -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 -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## 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). -## - 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 -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## 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. - tr ' ' ' -' < "$tmpdepfile" | -## 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. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -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 -eq 0; then : - else - 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 ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> $depfile - echo >> $depfile - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> $depfile - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -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. - stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` - tmpdepfile="$stripped.u" - if test "$libtool" = yes; then - "$@" -Wc,-M - else - "$@" -M - fi - stat=$? - - if test -f "$tmpdepfile"; then : - else - stripped=`echo "$stripped" | sed 's,^.*/,,'` - tmpdepfile="$stripped.u" - fi - - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - - if test -f "$tmpdepfile"; then - outname="$stripped.o" - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -icc) - # Intel's C compiler understands `-MD -MF file'. However on - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - 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. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - 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 -eq 0; then : - else - 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,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" - # Add `dependent.h:' lines. - sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" - else - echo "#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. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - # With Tru64 cc, shared objects can also be used to make a - # static library. This mechanism is used in libtool 1.4 series to - # handle both shared and static libraries in a single compilation. - # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. - # - # With libtool 1.5 this exception was removed, and libtool now - # 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.libs/$base.lo.d # libtool 1.4 - tmpdepfile2=$dir$base.o.d # libtool 1.5 - tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 - tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.o.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - tmpdepfile4=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -#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 $1 != '--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:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - 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 $1 != '--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no - for arg in "$@"; do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - 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. - -*|$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" - cat < "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - 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 $1 != '--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, regardless of -o, - # because we must use -o when running libtool. - "$@" || exit $? - IFS=" " - for arg - do - case "$arg" in - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -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-end: "$" -# End: diff --git a/extension/SDL2_image-2.0.3/gcc-fat.sh b/extension/SDL2_image-2.0.3/gcc-fat.sh deleted file mode 100755 index 1601c9d..0000000 --- a/extension/SDL2_image-2.0.3/gcc-fat.sh +++ /dev/null @@ -1,103 +0,0 @@ -#!/bin/sh -# -# Build Universal binaries on Mac OS X, thanks Ryan! -# -# Usage: ./configure CC="sh gcc-fat.sh" && make && rm -rf x86 x64 - -DEVELOPER="`xcode-select -print-path`/Platforms/MacOSX.platform/Developer" - -# Intel 32-bit compiler flags (10.6 runtime compatibility) -GCC_COMPILE_X86="gcc -arch i386 -mmacosx-version-min=10.6 \ --DMAC_OS_X_VERSION_MIN_REQUIRED=1040 \ --I/usr/local/include" - -GCC_LINK_X86="-mmacosx-version-min=10.6" - -# Intel 64-bit compiler flags (10.6 runtime compatibility) -GCC_COMPILE_X64="gcc -arch x86_64 -mmacosx-version-min=10.6 \ --DMAC_OS_X_VERSION_MIN_REQUIRED=1050 \ --I/usr/local/include" - -GCC_LINK_X64="-mmacosx-version-min=10.6" - -# Output both PowerPC and Intel object files -args="$*" -compile=yes -link=yes -while test x$1 != x; do - case $1 in - --version) exec gcc $1;; - -v) exec gcc $1;; - -V) exec gcc $1;; - -print-prog-name=*) exec gcc $1;; - -print-search-dirs) exec gcc $1;; - -E) GCC_COMPILE_X86="$GCC_COMPILE_X86 -E" - GCC_COMPILE_X64="$GCC_COMPILE_X64 -E" - compile=no; link=no;; - -c) link=no;; - -o) output=$2;; - *.c|*.cc|*.cpp|*.S) source=$1;; - esac - shift -done -if test x$link = xyes; then - GCC_COMPILE_X86="$GCC_COMPILE_X86 $GCC_LINK_X86" - GCC_COMPILE_X64="$GCC_COMPILE_X64 $GCC_LINK_X64" -fi -if test x"$output" = x; then - if test x$link = xyes; then - output=a.out - elif test x$compile = xyes; then - output=`echo $source | sed -e 's|.*/||' -e 's|\(.*\)\.[^\.]*|\1|'`.o - fi -fi - -# Compile X86 32-bit -if test x"$output" != x; then - dir=x86/`dirname $output` - if test -d $dir; then - : - else - mkdir -p $dir - fi -fi -set -- $args -while test x$1 != x; do - if test -f "x86/$1" && test "$1" != "$output"; then - x86_args="$x86_args x86/$1" - else - x86_args="$x86_args $1" - fi - shift -done -$GCC_COMPILE_X86 $x86_args || exit $? -if test x"$output" != x; then - cp $output x86/$output -fi - -# Compile X86 32-bit -if test x"$output" != x; then - dir=x64/`dirname $output` - if test -d $dir; then - : - else - mkdir -p $dir - fi -fi -set -- $args -while test x$1 != x; do - if test -f "x64/$1" && test "$1" != "$output"; then - x64_args="$x64_args x64/$1" - else - x64_args="$x64_args $1" - fi - shift -done -$GCC_COMPILE_X64 $x64_args || exit $? -if test x"$output" != x; then - cp $output x64/$output -fi - -if test x"$output" != x; then - lipo -create -o $output x86/$output x64/$output -fi diff --git a/extension/SDL2_image-2.0.3/install-sh b/extension/SDL2_image-2.0.3/install-sh deleted file mode 100755 index 4fbbae7..0000000 --- a/extension/SDL2_image-2.0.3/install-sh +++ /dev/null @@ -1,507 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2006-10-14.15 - -# 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. - -nl=' -' -IFS=" "" $nl" - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -posix_glob= -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -chmodcmd=$chmodprog -chowncmd= -chgrpcmd= -stripcmd= -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src= -dst= -dir_arg= -dstarg= -no_target_directory= - -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: --c (ignored) --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. ---help display this help and exit. ---version display version info and exit. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG -" - -while test $# -ne 0; do - case $1 in - -c) shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - shift - shift - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -s) stripcmd=$stripprog - shift - continue;; - - -t) dstarg=$2 - shift - shift - continue;; - - -T) no_target_directory=true - shift - continue;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac -done - -if test $# -ne 0 && test -z "$dir_arg$dstarg"; 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 "$dstarg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dstarg" - shift # fnord - fi - shift # arg - dstarg=$arg - 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 - trap '(exit $?); exit' 1 2 13 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 starting with `-'. - 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 "$dstarg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - - dst=$dstarg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst ;; - esac - - # 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 -n "$no_target_directory"; then - echo "$0: $dstarg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dst=$dstdir/`basename "$src"` - dstdir_status=0 - else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - - 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. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/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-writeable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 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 - - case $posix_glob in - '') - if (set -f) 2>/dev/null; then - posix_glob=true - else - posix_glob=false - fi ;; - esac - - oIFS=$IFS - IFS=/ - $posix_glob && set -f - set fnord $dstdir - shift - $posix_glob && set +f - IFS=$oIFS - - prefixes= - - for d - do - test -z "$d" && 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"; } && - - # Now 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. - { - if test -f "$dst"; then - $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 - } - else - : - fi - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - } || 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-end: "$" -# End: diff --git a/extension/SDL2_image-2.0.3/ltmain.sh b/extension/SDL2_image-2.0.3/ltmain.sh deleted file mode 100755 index 5e04f08..0000000 --- a/extension/SDL2_image-2.0.3/ltmain.sh +++ /dev/null @@ -1,8407 +0,0 @@ -# Generated from ltmain.m4sh. - -# ltmain.sh (GNU libtool) 2.2.6 -# Written by Gordon Matzigkeit , 1996 - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 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 GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, -# or obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -# Usage: $progname [OPTION]... [MODE-ARG]... -# -# Provide generalized library-building support services. -# -# --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 -# --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 informational messages (default) -# --version print version information -# -h, --help print short or 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. -# 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) -# $progname: (GNU libtool) 2.2.6 -# automake: $automake_version -# autoconf: $autoconf_version -# -# Report bugs to . - -PROGRAM=ltmain.sh -PACKAGE=libtool -VERSION=2.2.6 -TIMESTAMP="" -package_revision=1.3012 - -# 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 - -# NLS nuisances: We save the old values to restore during execute mode. -# Only set LANG and LC_ALL to C if already set. -# These must not be set unconditionally because not all systems understand -# e.g. LANG=C (notably SCO). -lt_user_locale= -lt_safe_locale= -for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -do - eval "if test \"\${$lt_var+set}\" = set; then - save_$lt_var=\$$lt_var - $lt_var=C - export $lt_var - lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" - lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" - fi" -done - -$lt_unset CDPATH - - - - - -: ${CP="cp -f"} -: ${ECHO="echo"} -: ${EGREP="/usr/bin/grep -E"} -: ${FGREP="/usr/bin/grep -F"} -: ${GREP="/usr/bin/grep"} -: ${LN_S="ln -s"} -: ${MAKE="make"} -: ${MKDIR="mkdir"} -: ${MV="mv -f"} -: ${RM="rm -f"} -: ${SED="/opt/local/bin/gsed"} -: ${SHELL="${CONFIG_SHELL-/bin/sh}"} -: ${Xsed="$SED -e 1s/^X//"} - -# Global variables: -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. - -exit_status=$EXIT_SUCCESS - -# Make sure IFS has a sensible default -lt_nl=' -' -IFS=" $lt_nl" - -dirname="s,/[^/]*$,," -basename="s,^.*/,," - -# 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" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi - func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -} - -# Generated shell functions inserted here. - -# 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: -# In the unlikely event $progname began with a '-', it would play havoc with -# func_echo (imagine progname=-n), so we prepend ./ in that case: -func_dirname_and_basename "$progpath" -progname=$func_basename_result -case $progname in - -*) progname=./$progname ;; -esac - -# Make sure we have an absolute path for reexecution: -case $progpath in - [\\/]*|[A-Za-z]:\\*) ;; - *[\\/]*) - progdir=$func_dirname_result - progdir=`cd "$progdir" && pwd` - progpath="$progdir/$progname" - ;; - *) - save_IFS="$IFS" - IFS=: - for progdir in $PATH; do - IFS="$save_IFS" - test -x "$progdir/$progname" && break - done - IFS="$save_IFS" - test -n "$progdir" || progdir=`pwd` - progpath="$progdir/$progname" - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed="${SED}"' -e 1s/^X//' -sed_quote_subst='s/\([`"$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Re-`\' parameter expansions in output of double_quote_subst that were -# `\'-ed in input to the same. If an odd number of `\' preceded a '$' -# in input to 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 '$'. -bs='\\' -bs2='\\\\' -bs4='\\\\\\\\' -dollar='\$' -sed_double_backslash="\ - s/$bs4/&\\ -/g - s/^$bs2$dollar/$bs&/ - s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g - s/\n//g" - -# Standard options: -opt_dry_run=false -opt_help=false -opt_quiet=false -opt_verbose=false -opt_warning=: - -# func_echo arg... -# Echo program name prefixed message, along with the current mode -# name if it has been set yet. -func_echo () -{ - $ECHO "$progname${mode+: }$mode: $*" -} - -# func_verbose arg... -# Echo program name prefixed message in verbose mode only. -func_verbose () -{ - $opt_verbose && 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_error arg... -# Echo program name prefixed message to standard error. -func_error () -{ - $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 -} - -# func_warning arg... -# Echo program name prefixed warning message to standard error. -func_warning () -{ - $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 - - # bash bug again: - : -} - -# func_fatal_error arg... -# Echo program name prefixed message to standard error, and exit. -func_fatal_error () -{ - func_error ${1+"$@"} - exit $EXIT_FAILURE -} - -# func_fatal_help arg... -# Echo program name prefixed message to standard error, followed by -# a help hint, and exit. -func_fatal_help () -{ - func_error ${1+"$@"} - func_fatal_error "$help" -} -help="Try \`$progname --help' for more information." ## default - - -# func_grep expression filename -# Check whether EXPRESSION matches any line of FILENAME, without output. -func_grep () -{ - $GREP "$1" "$2" >/dev/null 2>&1 -} - - -# func_mkdir_p directory-path -# Make sure the entire path to DIRECTORY-PATH is available. -func_mkdir_p () -{ - my_directory_path="$1" - my_dir_list= - - if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then - - # Protect directory names starting with `-' - case $my_directory_path in - -*) my_directory_path="./$my_directory_path" ;; - esac - - # While some portion of DIR does not yet exist... - while test ! -d "$my_directory_path"; do - # ...make a list in topmost first order. Use a colon delimited - # list incase some portion of path contains whitespace. - my_dir_list="$my_directory_path:$my_dir_list" - - # If the last portion added has no slash in it, the list is done - case $my_directory_path in */*) ;; *) break ;; esac - - # ...otherwise throw away the child directory and loop - my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` - done - my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` - - save_mkdir_p_IFS="$IFS"; IFS=':' - for my_dir in $my_dir_list; do - IFS="$save_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 "$my_dir" 2>/dev/null || : - done - IFS="$save_mkdir_p_IFS" - - # Bail out if we (or some other process) failed to create a directory. - test -d "$my_directory_path" || \ - func_fatal_error "Failed to create \`$1'" - fi -} - - -# func_mktempdir [string] -# Make a temporary directory that won't clash with other running -# libtool processes, and avoids race conditions if possible. If -# given, STRING is the basename for that directory. -func_mktempdir () -{ - my_template="${TMPDIR-/tmp}/${1-$progname}" - - if test "$opt_dry_run" = ":"; then - # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" - else - - # If mktemp works, use that first and foremost - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` - - if test ! -d "$my_tmpdir"; then - # Failing that, at least try and use $RANDOM to avoid a race - my_tmpdir="${my_template}-${RANDOM-0}$$" - - save_mktempdir_umask=`umask` - umask 0077 - $MKDIR "$my_tmpdir" - umask $save_mktempdir_umask - fi - - # If we're not in dry-run mode, bomb out on failure - test -d "$my_tmpdir" || \ - func_fatal_error "cannot create temporary directory \`$my_tmpdir'" - fi - - $ECHO "X$my_tmpdir" | $Xsed -} - - -# func_quote_for_eval arg -# Aesthetically quote ARG to be evaled later. -# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT -# is double-quoted, suitable for a subsequent eval, whereas -# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters -# which are still active within double quotes backslashified. -func_quote_for_eval () -{ - case $1 in - *[\\\`\"\$]*) - func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; - *) - func_quote_for_eval_unquoted_result="$1" ;; - esac - - case $func_quote_for_eval_unquoted_result in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and and variable - # expansion for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" - ;; - *) - func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" - esac -} - - -# 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 () -{ - case $1 in - *[\\\`\"]*) - my_arg=`$ECHO "X$1" | $Xsed \ - -e "$double_quote_subst" -e "$sed_double_backslash"` ;; - *) - my_arg="$1" ;; - esac - - case $my_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. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - my_arg="\"$my_arg\"" - ;; - esac - - func_quote_for_expand_result="$my_arg" -} - - -# func_show_eval cmd [fail_exp] -# Unless opt_silent 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 () -{ - my_cmd="$1" - my_fail_exp="${2-:}" - - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } - - if ${opt_dry_run-false}; then :; else - eval "$my_cmd" - my_status=$? - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi -} - - -# func_show_eval_locale cmd [fail_exp] -# Unless opt_silent 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 () -{ - my_cmd="$1" - my_fail_exp="${2-:}" - - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } - - if ${opt_dry_run-false}; then :; else - eval "$lt_user_locale - $my_cmd" - my_status=$? - eval "$lt_safe_locale" - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi -} - - - - - -# func_version -# Echo version message to standard output and exit. -func_version () -{ - $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { - s/^# // - s/^# *$// - s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ - p - }' < "$progpath" - exit $? -} - -# func_usage -# Echo short help message to standard output and exit. -func_usage () -{ - $SED -n '/^# Usage:/,/# -h/ { - s/^# // - s/^# *$// - s/\$progname/'$progname'/ - p - }' < "$progpath" - $ECHO - $ECHO "run \`$progname --help | more' for full usage" - exit $? -} - -# func_help -# Echo long help message to standard output and exit. -func_help () -{ - $SED -n '/^# Usage:/,/# Report bugs to/ { - s/^# // - s/^# *$// - s*\$progname*'$progname'* - s*\$host*'"$host"'* - s*\$SHELL*'"$SHELL"'* - s*\$LTCC*'"$LTCC"'* - s*\$LTCFLAGS*'"$LTCFLAGS"'* - s*\$LD*'"$LD"'* - s/\$with_gnu_ld/'"$with_gnu_ld"'/ - s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ - p - }' < "$progpath" - exit $? -} - -# func_missing_arg argname -# Echo program name prefixed message to standard error and set global -# exit_cmd. -func_missing_arg () -{ - func_error "missing argument for $1" - exit_cmd=exit -} - -exit_cmd=: - - - - - -# Check that we have a working $ECHO. -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then - # Yippee, $ECHO works! - : -else - # Restart under the correct shell, and then maybe $ECHO will work. - exec $SHELL "$progpath" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat </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 -} - -# Parse options once, thoroughly. This comes as soon as possible in -# the script to make things like `libtool --version' happen quickly. -{ - - # 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 - - # Parse non-mode specific arguments: - while test "$#" -gt 0; do - opt="$1" - shift - - case $opt in - --config) func_config ;; - - --debug) preserve_args="$preserve_args $opt" - func_echo "enabling shell trace mode" - opt_debug='set -x' - $opt_debug - ;; - - -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break - execute_dlfiles="$execute_dlfiles $1" - shift - ;; - - --dry-run | -n) opt_dry_run=: ;; - --features) func_features ;; - --finish) mode="finish" ;; - - --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break - 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 $opt" - exit_cmd=exit - break - ;; - esac - - mode="$1" - shift - ;; - - --preserve-dup-deps) - opt_duplicate_deps=: ;; - - --quiet|--silent) preserve_args="$preserve_args $opt" - opt_silent=: - ;; - - --verbose| -v) preserve_args="$preserve_args $opt" - opt_silent=false - ;; - - --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break - preserve_args="$preserve_args $opt $1" - func_enable_tag "$1" # tagname is set here - shift - ;; - - # Separate optargs to long options: - -dlopen=*|--mode=*|--tag=*) - func_opt_split "$opt" - set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} - shift - ;; - - -\?|-h) func_usage ;; - --help) opt_help=: ;; - --version) func_version ;; - - -*) func_fatal_help "unrecognized option \`$opt'" ;; - - *) nonopt="$opt" - break - ;; - esac - done - - - case $host in - *cygwin* | *mingw* | *pw32* | *cegcc*) - # don't eliminate duplications in $postdeps and $predeps - opt_duplicate_compiler_generated_deps=: - ;; - *) - opt_duplicate_compiler_generated_deps=$opt_duplicate_deps - ;; - esac - - # Having warned about all mis-specified options, bail out if - # anything was wrong. - $exit_cmd $EXIT_FAILURE -} - -# 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 -} - - -## ----------- ## -## Main. ## -## ----------- ## - -$opt_help || { - # Sanity checks first: - func_check_version_match - - if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - func_fatal_configuration "not configured to build any kind of library" - fi - - test -z "$mode" && func_fatal_error "error: you must specify a MODE." - - - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" - - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$execute_dlfiles" && test "$mode" != execute; 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=$mode' for more information." -} - - -# 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 \ - | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 -} - -# 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 "$lalib_p" = yes -} - -# 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 () -{ - func_lalib_p "$1" -} - -# 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_ltwrapper_scriptname_result="" - if func_ltwrapper_executable_p "$1"; then - func_dirname_and_basename "$1" "" "." - func_stripname '' '.exe' "$func_basename_result" - func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" - fi -} - -# 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 () -{ - $opt_debug - save_ifs=$IFS; IFS='~' - for cmd in $1; do - IFS=$save_ifs - eval cmd=\"$cmd\" - 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 () -{ - $opt_debug - case $1 in - */* | *\\*) . "$1" ;; - *) . "./$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 () -{ - $opt_debug - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted= - for arg in $CC; do - func_quote_for_eval "$arg" - CC_quoted="$CC_quoted $func_quote_for_eval_result" - done - 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 "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; - # 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_quote_for_eval "$arg" - CC_quoted="$CC_quoted $func_quote_for_eval_result" - done - case "$@ " in - " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) - # 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 "$build_libtool_libs" = yes; then - write_lobj=\'${2}\' - else - write_lobj=none - fi - - if test "$build_old_libs" = yes; then - write_oldobj=\'${3}\' - else - write_oldobj=none - fi - - $opt_dry_run || { - cat >${write_libobj}T <?"'"'"' &()|`$[]' \ - && 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 "$build_old_libs" = yes; 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 "$pic_mode" = no && test "$deplibs_check_method" != pass_all; 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 "$compiler_c_o" = no; then - output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e '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 "$need_locks" = yes; 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 "$need_locks" = warn; 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 - removelist="$removelist $output_obj" - $ECHO "$srcfile" > "$lockfile" - fi - - $opt_dry_run || $RM $removelist - removelist="$removelist $lockfile" - trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 - - if test -n "$fix_srcfile_path"; then - eval srcfile=\"$fix_srcfile_path\" - fi - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result - - # Only build a PIC object if we are building libtool libraries. - if test "$build_libtool_libs" = yes; then - # Without this assignment, base_compile gets emptied. - fbsd_hideous_sh_bug=$base_compile - - if test "$pic_mode" != no; 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 - command="$command -o $lobj" - fi - - func_show_eval_locale "$command" \ - 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' - - if test "$need_locks" = warn && - 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 "$suppress_opt" = yes; then - suppress_output=' >/dev/null 2>&1' - fi - fi - - # Only build a position-dependent object if we build old libraries. - if test "$build_old_libs" = yes; then - if test "$pic_mode" != yes; then - # Don't build PIC code - command="$base_compile $qsrcfile$pie_flag" - else - command="$base_compile $qsrcfile $pic_flag" - fi - if test "$compiler_c_o" = yes; then - command="$command -o $obj" - fi - - # Suppress compiler output if we already did a PIC compilation. - command="$command$suppress_output" - func_show_eval_locale "$command" \ - '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - - if test "$need_locks" = warn && - 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 "$need_locks" != no; then - removelist=$lockfile - $RM "$lockfile" - fi - } - - exit $EXIT_SUCCESS -} - -$opt_help || { -test "$mode" = compile && func_mode_compile ${1+"$@"} -} - -func_mode_help () -{ - # We need to display help for each of the modes. - case $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 building PIC objects only - -prefer-non-pic try to building 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 - -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 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 - -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 - -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 - -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 \`$mode'" - ;; - esac - - $ECHO - $ECHO "Try \`$progname --help' for more information about other modes." - - exit $? -} - - # Now that we've collected a possible --mode arg, show help if necessary - $opt_help && func_mode_help - - -# func_mode_execute arg... -func_mode_execute () -{ - $opt_debug - # 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 $execute_dlfiles; do - test -f "$file" \ - || func_fatal_help "\`$file' is not a file" - - dir= - case $file in - *.la) - # 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 - dir="$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 - -*) ;; - *) - # 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_quote_for_eval "$file" - args="$args $func_quote_for_eval_result" - done - - if test "X$opt_dry_run" = Xfalse; then - 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" - else - # 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 - fi -} - -test "$mode" = execute && func_mode_execute ${1+"$@"} - - -# func_mode_finish arg... -func_mode_finish () -{ - $opt_debug - libdirs="$nonopt" - admincmds= - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do - libdirs="$libdirs $dir" - done - - 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" || admincmds="$admincmds - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - $opt_silent && exit $EXIT_SUCCESS - - $ECHO "X----------------------------------------------------------------------" | $Xsed - $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 "X----------------------------------------------------------------------" | $Xsed - exit $EXIT_SUCCESS -} - -test "$mode" = finish && func_mode_finish ${1+"$@"} - - -# func_mode_install arg... -func_mode_install () -{ - $opt_debug - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || - # Allow the use of GNU shtool's install command. - $ECHO "X$nonopt" | $GREP shtool >/dev/null; 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" - install_prog="$install_prog$func_quote_for_eval_result" - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=no - stripme= - for arg - do - if test -n "$dest"; then - files="$files $dest" - dest=$arg - continue - fi - - case $arg in - -d) isdir=yes ;; - -f) - case " $install_prog " in - *[\\\ /]cp\ *) ;; - *) prev=$arg ;; - esac - ;; - -g | -m | -o) - prev=$arg - ;; - -s) - stripme=" -s" - continue - ;; - -*) - ;; - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - prev= - else - dest=$arg - continue - fi - ;; - esac - - # Aesthetically quote the argument. - func_quote_for_eval "$arg" - install_prog="$install_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 -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=yes - if test "$isdir" = yes; 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. - staticlibs="$staticlibs $file" - ;; - - *.la) - # 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 "*) ;; - *) current_libdirs="$current_libdirs $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) future_libdirs="$future_libdirs $libdir" ;; - esac - fi - - func_dirname "$file" "/" "" - dir="$func_dirname_result" - dir="$dir$objdir" - - if test -n "$relink_command"; then - # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -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 "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` - else - relink_command=`$ECHO "X$relink_command" | $Xsed -e "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_prog $dir/$srcname $destdir/$realname" \ - 'exit $?' - tstripme="$stripme" - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - 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" && staticlibs="$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 "$build_old_libs" = yes; 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=yes - 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 "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test - if test -n "$libdir" && test ! -f "$libfile"; then - func_warning "\`$lib' has not been installed in \`$libdir'" - finalize=no - fi - done - - relink_command= - func_source "$wrapper" - - outputname= - if test "$fast_install" = no && test -n "$relink_command"; then - $opt_dry_run || { - if test "$finalize" = yes; then - tmpdir=`func_mktempdir` - func_basename "$file$stripped_ext" - file="$func_basename_result" - outputname="$tmpdir/$file" - # Replace the output file specification. - relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` - - $opt_silent || { - 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 "X$file$stripped_ext" | $Xsed -e "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_show_eval "$install_prog \$file \$oldlib" 'exit $?' - - if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $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 "$mode" = install && 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 () -{ - $opt_debug - my_outputname="$1" - my_originator="$2" - my_pic_p="${3-no}" - my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` - my_dlsyms= - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; 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$TIMESTAMP) $VERSION */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -/* External symbol declarations for the compiler. */\ -" - - if test "$dlself" = yes; 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 "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - for progfile in $progfiles; do - func_verbose "extracting global C symbols from \`$progfile'" - $opt_dry_run || eval "$NM $progfile | $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" - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - 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 - - $ECHO >> "$output_objdir/$my_dlsyms" "\ - -/* The mapping between symbol names and symbols. */ -typedef struct { - const char *name; - void *address; -} lt_dlsymlist; -" - case $host in - *cygwin* | *mingw* | *cegcc* ) - $ECHO >> "$output_objdir/$my_dlsyms" "\ -/* DATA imports from DLLs on WIN32 con't be const, because - runtime relocations are performed -- see ld's documentation - on pseudo-relocs. */" - lt_dlsym_const= ;; - *osf5*) - echo >> "$output_objdir/$my_dlsyms" "\ -/* This system does not cope well with relocations in const data */" - lt_dlsym_const= ;; - *) - lt_dlsym_const=const ;; - esac - - $ECHO >> "$output_objdir/$my_dlsyms" "\ -extern $lt_dlsym_const lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[]; -$lt_dlsym_const lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[] = -{\ - { \"$my_originator\", (void *) 0 }," - - 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" ;; - *) - if test "X$my_pic_p" != Xno; then - pic_flag_for_symtable=" $pic_flag" - fi - ;; - esac - ;; - esac - symtab_cflags= - for arg in $LTCFLAGS; do - case $arg in - -pie | -fpie | -fPIE) ;; - *) symtab_cflags="$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"' - - # 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 "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - else - compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` - fi - ;; - *) - compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "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 "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` - fi -} - -# 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. -func_win32_libid () -{ - $opt_debug - 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 - 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 - win32_nmres=`eval $NM -f posix -A $1 | - $SED -n -e ' - 1,100{ - / I /{ - s,.*,import, - p - q - } - }'` - 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_extract_an_archive dir oldlib -func_extract_an_archive () -{ - $opt_debug - f_ex_an_ar_dir="$1"; shift - f_ex_an_ar_oldlib="$1" - func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' - 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 () -{ - $opt_debug - 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` - darwin_base_archive=`basename "$darwin_archive"` - 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 "$basename" | sort -u` - darwin_file= - darwin_files= - for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | $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 | $NL2SP` - done - - func_extract_archives_result="$my_oldobjs" -} - - - -# func_emit_wrapper_part1 [arg=no] -# -# Emit the first part of a libtool wrapper script on stdout. -# For more information, see the description associated with -# func_emit_wrapper(), below. -func_emit_wrapper_part1 () -{ - func_emit_wrapper_part1_arg1=no - if test -n "$1" ; then - func_emit_wrapper_part1_arg1=$1 - fi - - $ECHO "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $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. -Xsed='${SED} -e 1s/^X//' -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 - ECHO=\"$qecho\" - file=\"\$0\" - # Make sure echo works. - if test \"X\$1\" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift - elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then - # Yippee, \$ECHO works! - : - else - # Restart under the correct shell, and then maybe \$ECHO will work. - exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} - fi - fi\ -" - $ECHO "\ - - # Find the directory that this script lives in. - thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e '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 \"X\$file\" | \$Xsed -e '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 \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` - done -" -} -# end: func_emit_wrapper_part1 - -# func_emit_wrapper_part2 [arg=no] -# -# Emit the second part of a libtool wrapper script on stdout. -# For more information, see the description associated with -# func_emit_wrapper(), below. -func_emit_wrapper_part2 () -{ - func_emit_wrapper_part2_arg1=no - if test -n "$1" ; then - func_emit_wrapper_part2_arg1=$1 - fi - - $ECHO "\ - - # Usually 'no', except on cygwin/mingw when embedded into - # the cwrapper. - WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_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 \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; - $objdir ) thisdir=. ;; - esac - fi - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" -" - - if test "$fast_install" = yes; 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" - - # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && 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 \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` - - export $shlibpath_var -" - fi - - # fixup the dll searchpath if we need to. - if test -n "$dllsearchpath"; then - $ECHO "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - - $ECHO "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2* | *-cegcc*) - $ECHO "\ - exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -" - ;; - - *) - $ECHO "\ - exec \"\$progdir/\$program\" \${1+\"\$@\"} -" - ;; - esac - $ECHO "\ - \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 - exit 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\ -" -} -# end: func_emit_wrapper_part2 - - -# 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 in which it is stored is -# the $objdir directory. This is a cygwin/mingw-specific -# behavior. -func_emit_wrapper () -{ - func_emit_wrapper_arg1=no - if test -n "$1" ; then - func_emit_wrapper_arg1=$1 - fi - - # split this up so that func_emit_cwrapperexe_src - # can call each part independently. - func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" - func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" -} - - -# func_to_host_path arg -# -# Convert paths to host format when used with build tools. -# Intended for use with "native" mingw (where libtool itself -# is running under the msys shell), or in the following cross- -# build environments: -# $build $host -# mingw (msys) mingw [e.g. native] -# cygwin mingw -# *nix + wine mingw -# where wine is equipped with the `winepath' executable. -# In the native mingw case, the (msys) shell automatically -# converts paths for any non-msys applications it launches, -# but that facility isn't available from inside the cwrapper. -# Similar accommodations are necessary for $host mingw and -# $build cygwin. Calling this function does no harm for other -# $host/$build combinations not listed above. -# -# ARG is the path (on $build) that should be converted to -# the proper representation for $host. The result is stored -# in $func_to_host_path_result. -func_to_host_path () -{ - func_to_host_path_result="$1" - if test -n "$1" ; then - case $host in - *mingw* ) - lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - case $build in - *mingw* ) # actually, msys - # awkward: cmd appends spaces to result - lt_sed_strip_trailing_spaces="s/[ ]*\$//" - func_to_host_path_tmp1=`( cmd //c echo "$1" |\ - $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` - func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - *cygwin* ) - func_to_host_path_tmp1=`cygpath -w "$1"` - func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - * ) - # Unfortunately, winepath does not exit with a non-zero - # error code, so we are forced to check the contents of - # stdout. On the other hand, if the command is not - # found, the shell will set an exit code of 127 and print - # *an error message* to stdout. So we must check for both - # error code of zero AND non-empty stdout, which explains - # the odd construction: - func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` - if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then - func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ - $SED -e "$lt_sed_naive_backslashify"` - else - # Allow warning below. - func_to_host_path_result="" - fi - ;; - esac - if test -z "$func_to_host_path_result" ; then - #func_error "Could not determine host path corresponding to" - #func_error " '$1'" - #func_error "Continuing, but uninstalled executables may not work." - # Fallback: - func_to_host_path_result="$1" - fi - ;; - esac - fi -} -# end: func_to_host_path - -# func_to_host_pathlist arg -# -# Convert pathlists to host format when used with build tools. -# See func_to_host_path(), above. This function supports the -# following $build/$host combinations (but does no harm for -# combinations not listed here): -# $build $host -# mingw (msys) mingw [e.g. native] -# cygwin mingw -# *nix + wine mingw -# -# 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. -# -# ARG is a pathlist (on $build) that should be converted to -# the proper representation on $host. The result is stored -# in $func_to_host_pathlist_result. -func_to_host_pathlist () -{ - func_to_host_pathlist_result="$1" - if test -n "$1" ; then - case $host in - *mingw* ) - lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - # 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_to_host_pathlist_tmp2="$1" - # Once set for this call, this variable should not be - # reassigned. It is used in tha fallback case. - func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ - $SED -e 's|^:*||' -e 's|:*$||'` - case $build in - *mingw* ) # Actually, msys. - # Awkward: cmd appends spaces to result. - lt_sed_strip_trailing_spaces="s/[ ]*\$//" - func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ - $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` - func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - *cygwin* ) - func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` - func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - * ) - # unfortunately, winepath doesn't convert pathlists - func_to_host_pathlist_result="" - func_to_host_pathlist_oldIFS=$IFS - IFS=: - for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do - IFS=$func_to_host_pathlist_oldIFS - if test -n "$func_to_host_pathlist_f" ; then - func_to_host_path "$func_to_host_pathlist_f" - if test -n "$func_to_host_path_result" ; then - if test -z "$func_to_host_pathlist_result" ; then - func_to_host_pathlist_result="$func_to_host_path_result" - else - func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" - fi - fi - fi - IFS=: - done - IFS=$func_to_host_pathlist_oldIFS - ;; - esac - if test -z "$func_to_host_pathlist_result" ; then - func_error "Could not determine the host path(s) corresponding to" - func_error " '$1'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback. This may break if $1 contains DOS-style drive - # specifications. The fix is not to complicate the expression - # below, but for the user to provide a working wine installation - # with winepath so that path translation in the cross-to-mingw - # case works properly. - lt_replace_pathsep_nix_to_dos="s|:|;|g" - func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ - $SED -e "$lt_replace_pathsep_nix_to_dos"` - fi - # Now, add the leading and trailing path separators back - case "$1" in - :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" - ;; - esac - case "$1" in - *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" - ;; - esac - ;; - esac - fi -} -# end: func_to_host_pathlist - -# 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 -# define setmode _setmode -#else -# include -# include -# ifdef __CYGWIN__ -# include -# define HAVE_SETENV -# ifdef __STRICT_ANSI__ -char *realpath (const char *, char *); -int putenv (char *); -int setenv (const char *, const char *, int); -# endif -# endif -#endif -#include -#include -#include -#include -#include -#include -#include -#include - -#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 - -#ifdef _MSC_VER -# define S_IXUSR _S_IEXEC -# define stat _stat -# ifndef _INTPTR_T_DEFINED -# define intptr_t int -# endif -#endif - -#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 */ - -#ifdef __CYGWIN__ -# define FOPEN_WB "wb" -#endif - -#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 ((void *) stale); stale = 0; } \ -} while (0) - -#undef LTWRAPPER_DEBUGPRINTF -#if defined DEBUGWRAPPER -# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args -static void -ltwrapper_debugprintf (const char *fmt, ...) -{ - va_list args; - va_start (args, fmt); - (void) vfprintf (stderr, fmt, args); - va_end (args); -} -#else -# define LTWRAPPER_DEBUGPRINTF(args) -#endif - -const char *program_name = NULL; - -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_fatal (const char *message, ...); -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_opt_process_env_set (const char *arg); -void lt_opt_process_env_prepend (const char *arg); -void lt_opt_process_env_append (const char *arg); -int lt_split_name_value (const char *arg, char** name, char** value); -void lt_update_exe_path (const char *name, const char *value); -void lt_update_lib_path (const char *name, const char *value); - -static const char *script_text_part1 = -EOF - - func_emit_wrapper_part1 yes | - $SED -e 's/\([\\"]\)/\\\1/g' \ - -e 's/^/ "/' -e 's/$/\\n"/' - echo ";" - cat <"))); - for (i = 0; i < newargc; i++) - { - LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); - } - -EOF - - case $host_os in - mingw*) - cat <<"EOF" - /* execv doesn't actually work on mingw as expected on unix */ - rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); - if (rval == -1) - { - /* failed to start process */ - LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); - return 127; - } - return rval; -EOF - ;; - *) - cat <<"EOF" - execv (lt_argv_zero, newargz); - return rval; /* =127, but avoids unused variable warning */ -EOF - ;; - esac - - cat <<"EOF" -} - -void * -xmalloc (size_t num) -{ - void *p = (void *) malloc (num); - if (!p) - lt_fatal ("Memory exhausted"); - - return p; -} - -char * -xstrdup (const char *string) -{ - return string ? strcpy ((char *) xmalloc (strlen (string) + 1), - string) : NULL; -} - -const char * -base_name (const char *name) -{ - const char *base; - -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - /* Skip over the disk name in MSDOS pathnames. */ - if (isalpha ((unsigned char) name[0]) && name[1] == ':') - name += 2; -#endif - - for (base = name; *name; name++) - if (IS_DIR_SEPARATOR (*name)) - base = name + 1; - return base; -} - -int -check_executable (const char *path) -{ - struct stat st; - - LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", - path ? (*path ? path : "EMPTY!") : "NULL!")); - if ((!path) || (!*path)) - return 0; - - if ((stat (path, &st) >= 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; - - LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", - path ? (*path ? path : "EMPTY!") : "NULL!")); - 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]; - int tmp_len; - char *concat_name; - - LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", - wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); - - 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 = 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 ("getcwd failed"); - 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 ("getcwd failed"); - 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) - { - LTWRAPPER_DEBUGPRINTF (("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 - { - char *errstr = strerror (errno); - lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); - } - } - XFREE (tmp_pathspec); - - if (!has_symlinks) - { - return xstrdup (pathspec); - } - - tmp_pathspec = realpath (pathspec, buf); - if (tmp_pathspec == 0) - { - lt_fatal ("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 (strcmp (str, pat) == 0) - *str = '\0'; - } - return str; -} - -static void -lt_error_core (int exit_status, const char *mode, - const char *message, va_list ap) -{ - fprintf (stderr, "%s: %s: ", program_name, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - - if (exit_status >= 0) - exit (exit_status); -} - -void -lt_fatal (const char *message, ...) -{ - va_list ap; - va_start (ap, message); - lt_error_core (EXIT_FAILURE, "FATAL", message, ap); - va_end (ap); -} - -void -lt_setenv (const char *name, const char *value) -{ - LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", - (name ? name : ""), - (value ? value : ""))); - { -#ifdef HAVE_SETENV - /* always make a copy, for consistency with !HAVE_SETENV */ - char *str = xstrdup (value); - setenv (name, str, 1); -#else - int 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) - { - int orig_value_len = strlen (orig_value); - int 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; -} - -int -lt_split_name_value (const char *arg, char** name, char** value) -{ - const char *p; - int len; - if (!arg || !*arg) - return 1; - - p = strchr (arg, (int)'='); - - if (!p) - return 1; - - *value = xstrdup (++p); - - len = strlen (arg) - strlen (*value); - *name = XMALLOC (char, len); - strncpy (*name, arg, len-1); - (*name)[len - 1] = '\0'; - - return 0; -} - -void -lt_opt_process_env_set (const char *arg) -{ - char *name = NULL; - char *value = NULL; - - if (lt_split_name_value (arg, &name, &value) != 0) - { - XFREE (name); - XFREE (value); - lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); - } - - lt_setenv (name, value); - XFREE (name); - XFREE (value); -} - -void -lt_opt_process_env_prepend (const char *arg) -{ - char *name = NULL; - char *value = NULL; - char *new_value = NULL; - - if (lt_split_name_value (arg, &name, &value) != 0) - { - XFREE (name); - XFREE (value); - lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); - } - - new_value = lt_extend_str (getenv (name), value, 0); - lt_setenv (name, new_value); - XFREE (new_value); - XFREE (name); - XFREE (value); -} - -void -lt_opt_process_env_append (const char *arg) -{ - char *name = NULL; - char *value = NULL; - char *new_value = NULL; - - if (lt_split_name_value (arg, &name, &value) != 0) - { - XFREE (name); - XFREE (value); - lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); - } - - new_value = lt_extend_str (getenv (name), value, 1); - lt_setenv (name, new_value); - XFREE (new_value); - XFREE (name); - XFREE (value); -} - -void -lt_update_exe_path (const char *name, const char *value) -{ - LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", - (name ? name : ""), - (value ? 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 #' */ - int len = strlen (new_value); - while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) - { - new_value[len-1] = '\0'; - } - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -void -lt_update_lib_path (const char *name, const char *value) -{ - LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", - (name ? name : ""), - (value ? 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 -} -# end: func_emit_cwrapperexe_src - -# func_mode_link arg... -func_mode_link () -{ - $opt_debug - 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 - # which 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 which 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 - dlfiles= - dlprefiles= - dlself=no - export_dynamic=no - export_symbols= - export_symbols_regex= - generated= - libobjs= - ltlibs= - module=no - no_install=no - objs= - non_pic_objects= - precious_files_regex= - prefer_static_libs=no - preload=no - 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 "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" - build_old_libs=no - break - ;; - -all-static | -static | -static-libtool-libs) - case $arg in - -all-static) - if test "$build_libtool_libs" = yes && 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 - dlfiles|dlprefiles) - if test "$preload" = no; then - # Add the symbol object into the linking commands. - func_append compile_command " @SYMFILE@" - func_append finalize_command " @SYMFILE@" - preload=yes - fi - case $arg in - *.la | *.lo) ;; # We handle these cases below. - force) - if test "$dlself" = no; then - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - self) - if test "$prev" = dlprefiles; then - dlself=yes - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then - dlself=yes - else - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - *) - if test "$prev" = dlfiles; then - dlfiles="$dlfiles $arg" - else - dlprefiles="$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 "*) ;; - *) deplibs="$deplibs $qarg.ltframework" # this is fixed later - ;; - esac - ;; - esac - prev= - continue - ;; - inst_prefix) - inst_prefix_dir="$arg" - prev= - continue - ;; - objectlist) - if test -f "$arg"; then - save_arg=$arg - moreargs= - for fil in `cat "$save_arg"` - do -# moreargs="$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 "$pic_object" = none && - test "$non_pic_object" = none; 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 "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$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 "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; 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 "$pic_object" = none ; 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 - ;; - 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 "$prev" = rpath; then - case "$rpath " in - *" $arg "*) ;; - *) rpath="$rpath $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; - *) xrpath="$xrpath $arg" ;; - esac - fi - prev= - continue - ;; - shrext) - shrext_cmds="$arg" - prev= - continue - ;; - weak) - weak_libs="$weak_libs $arg" - prev= - continue - ;; - xcclinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xcompiler) - compiler_flags="$compiler_flags $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xlinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$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 - ;; - - -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$arg" = "X-export-symbols"; 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" - dir=$func_stripname_result - if test -z "$dir"; 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 - # 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 "*) ;; - *) - deplibs="$deplibs -L$dir" - lib_search_path="$lib_search_path $dir" - ;; - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$dir:"*) ;; - ::) dllsearchpath=$dir;; - *) dllsearchpath="$dllsearchpath:$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) dllsearchpath="$dllsearchpath:$testbindir";; - esac - ;; - esac - continue - ;; - - -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) - # 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$arg" = "X-lc" && continue - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework - deplibs="$deplibs System.ltframework" - continue - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - test "X$arg" = "X-lc" && continue - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - test "X$arg" = "X-lc" && continue - ;; - esac - elif test "X$arg" = "X-lc_r"; then - case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - deplibs="$deplibs $arg" - 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) - compiler_flags="$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) - compiler_flags="$compiler_flags $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - case "$new_inherited_linker_flags " in - *" $arg "*) ;; - * ) new_inherited_linker_flags="$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 - ;; - - -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_fatal_error "only absolute run-paths are allowed" - ;; - esac - case "$xrpath " in - *" $dir "*) ;; - *) xrpath="$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" - arg="$arg $wl$func_quote_for_eval_result" - compiler_flags="$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" - arg="$arg $wl$func_quote_for_eval_result" - compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" - linker_flags="$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" - ;; - - # -64, -mips[0-9] enable 64-bit mode on the SGI compiler - # -r[0-9][0-9]* specifies the processor on the SGI compiler - # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler - # +DA*, +DD* enable 64-bit mode on the HP compiler - # -q* pass through compiler args for the IBM compiler - # -m*, -t[45]*, -txscale* pass through architecture-specific - # compiler args for GCC - # -F/path gives path to uninstalled frameworks, gcc on darwin - # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC - # @file GCC response files - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - func_append compile_command " $arg" - func_append finalize_command " $arg" - compiler_flags="$compiler_flags $arg" - continue - ;; - - # Some other compiler flag. - -* | +*) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - - *.$objext) - # A standard object. - objs="$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 "$pic_object" = none && - test "$non_pic_object" = none; 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 "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$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 "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; 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 "$pic_object" = none ; 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. - deplibs="$deplibs $arg" - old_deplibs="$old_deplibs $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - - if test "$prev" = dlfiles; then - # This library was specified with -dlopen. - dlfiles="$dlfiles $arg" - prev= - elif test "$prev" = dlprefiles; then - # The library was specified with -dlpreopen. - dlprefiles="$dlprefiles $arg" - prev= - else - deplibs="$deplibs $arg" - 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 "$export_dynamic" = yes && 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 \"X\${$shlibpath_var}\" \| \$Xsed -e \'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\" - - func_dirname "$output" "/" "" - output_objdir="$func_dirname_result$objdir" - # 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_duplicate_deps ; then - case "$libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - libs="$libs $deplib" - done - - if test "$linkmode" = lib; 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 "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; - esac - pre_post_deps="$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=no - 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 "$linkmode,$pass" = "lib,link"; 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 "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan"; then - libs="$deplibs" - deplibs= - fi - if test "$linkmode" = prog; then - case $pass in - dlopen) libs="$dlfiles" ;; - dlpreopen) libs="$dlprefiles" ;; - link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; - esac - fi - if test "$linkmode,$pass" = "lib,dlpreopen"; then - # Collect and forward deplibs of preopened libtool libs - for lib in $dlprefiles; do - # Ignore non-libtool-libs - dependency_libs= - case $lib in - *.la) func_source "$lib" ;; - esac - - # Collect preopened libtool deplibs, except any this library - # has declared as weak libs - for deplib in $dependency_libs; do - deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` - case " $weak_libs " in - *" $deplib_base "*) ;; - *) deplibs="$deplibs $deplib" ;; - esac - done - done - libs="$dlprefiles" - fi - if test "$pass" = dlopen; then - # Collect dlpreopened libraries - save_deplibs="$deplibs" - deplibs= - fi - - for deplib in $libs; do - lib= - found=no - case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - compiler_flags="$compiler_flags $deplib" - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; - esac - fi - fi - continue - ;; - -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - func_warning "\`-l' is ignored for archives/objects" - continue - fi - func_stripname '-l' '' "$deplib" - name=$func_stripname_result - if test "$linkmode" = lib; 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 "$search_ext" = ".la"; then - found=yes - else - found=no - fi - break 2 - fi - done - done - if test "$found" != yes; then - # deplib doesn't seem to be a libtool library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - else # 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 "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; 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=no - func_dirname "$lib" "" "." - ladir="$func_dirname_result" - lib=$ladir/$old_library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - fi - ;; - *) ;; - esac - fi - fi - ;; # -l - *.ltframework) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; - esac - fi - fi - continue - ;; - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" - func_stripname '-L' '' "$deplib" - newlib_search_path="$newlib_search_path $func_stripname_result" - ;; - prog) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - if test "$pass" = scan; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - func_stripname '-L' '' "$deplib" - newlib_search_path="$newlib_search_path $func_stripname_result" - ;; - *) - func_warning "\`-L' is ignored for archives/objects" - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test "$pass" = link; then - func_stripname '-R' '' "$deplib" - dir=$func_stripname_result - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; - *.la) lib="$deplib" ;; - *.$libext) - if test "$pass" = conv; 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=no - case $deplibs_check_method in - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - valid_a_lib=yes - fi - ;; - pass_all) - valid_a_lib=yes - ;; - esac - if test "$valid_a_lib" != yes; then - $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." - else - $ECHO - $ECHO "*** Warning: Linking the shared library $output against the" - $ECHO "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - fi - ;; - esac - continue - ;; - prog) - if test "$pass" != link; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - continue - ;; - esac # linkmode - ;; # *.$libext - *.lo | *.$objext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - elif test "$linkmode" = prog; then - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - newdlprefiles="$newdlprefiles $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - newdlfiles="$newdlfiles $deplib" - fi - fi - continue - ;; - %DEPLIBS%) - alldeplibs=yes - continue - ;; - esac # case $deplib - - if test "$found" = yes || test -f "$lib"; then : - else - func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" - fi - - # 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 "X$inherited_linker_flags" | $Xsed -e '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 "*) ;; - *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; - esac - done - fi - dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then - test -n "$dlopen" && dlfiles="$dlfiles $dlopen" - test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" - fi - - if test "$pass" = conv; 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. - convenience="$convenience $ladir/$objdir/$old_library" - old_convenience="$old_convenience $ladir/$objdir/$old_library" - elif test "$linkmode" != prog && test "$linkmode" != lib; then - func_fatal_error "\`$lib' is not a convenience library" - fi - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_duplicate_deps ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done - continue - fi # $pass = conv - - - # Get the name of the library we link against. - linklib= - for l in $old_library $library_names; do - linklib="$l" - done - 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 "$pass" = dlopen; then - if test -z "$libdir"; then - func_fatal_error "cannot -dlopen a convenience library: \`$lib'" - fi - if test -z "$dlname" || - test "$dlopen_support" != yes || - test "$build_libtool_libs" = no; 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. - dlprefiles="$dlprefiles $lib $dependency_libs" - else - newdlfiles="$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 "X$installed" = Xyes; then - if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - func_warning "library \`$lib' was moved." - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" - else - dir="$libdir" - absdir="$libdir" - fi - test "X$hardcode_automatic" = Xyes && 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 - notinst_path="$notinst_path $abs_ladir" - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - notinst_path="$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 "$pass" = dlpreopen; then - if test -z "$libdir" && test "$linkmode" = prog; then - func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" - fi - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - newdlprefiles="$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" && \ - dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - newdlprefiles="$newdlprefiles $dir/$dlname" - else - newdlprefiles="$newdlprefiles $dir/$linklib" - fi - fi # $pass = dlpreopen - - if test -z "$libdir"; then - # Link the convenience library - if test "$linkmode" = lib; then - deplibs="$dir/$old_library $deplibs" - elif test "$linkmode,$pass" = "prog,link"; 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 "$linkmode" = prog && test "$pass" != link; then - newlib_search_path="$newlib_search_path $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=no - if test "$link_all_deplibs" != no || test -z "$library_names" || - test "$build_libtool_libs" = no; then - linkalldeplibs=yes - fi - - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - newlib_search_path="$newlib_search_path $func_stripname_result" - ;; - esac - # Need to link against all dependency_libs? - if test "$linkalldeplibs" = yes; 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_duplicate_deps ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done # for deplib - continue - fi # $linkmode = prog... - - if test "$linkmode,$pass" = "prog,link"; then - if test -n "$library_names" && - { { test "$prefer_static_libs" = no || - test "$prefer_static_libs,$installed" = "built,yes"; } || - 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:"*) ;; - *) temp_rpath="$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 "*) ;; - *) compile_rpath="$compile_rpath $absdir" - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" - esac - ;; - esac - fi # $linkmode,$pass = prog,link... - - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && - 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 "$use_static_libs" = built && test "$installed" = yes; then - use_static_libs=no - fi - if test -n "$library_names" && - { test "$use_static_libs" = no || test -z "$old_library"; }; then - case $host in - *cygwin* | *mingw* | *cegcc*) - # No point in relinking DLLs because paths are not encoded - notinst_deplibs="$notinst_deplibs $lib" - need_relink=no - ;; - *) - if test "$installed" = no; then - notinst_deplibs="$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 "$shouldnotlink" = yes && test "$pass" = link; then - $ECHO - if test "$linkmode" = prog; 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 "$linkmode" = lib && - test "$hardcode_into_libs" = yes; 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 "*) ;; - *) compile_rpath="$compile_rpath $absdir" - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$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*) - 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 "$linkmode" = prog || test "$mode" != relink; then - add_shlibpath= - add_dir= - add= - lib_linked=yes - case $hardcode_action in - immediate | unsupported) - if test "$hardcode_direct" = no; 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 can not - # 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 "$hardcode_minus_L" = no; then - case $host in - *-*-sunos*) add_shlibpath="$dir" ;; - esac - add_dir="-L$dir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = no; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - relink) - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - *) lib_linked=no ;; - esac - - if test "$lib_linked" != yes; then - func_fatal_configuration "unsupported hardcode properties" - fi - - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; - *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; - esac - fi - if test "$linkmode" = prog; 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 "$hardcode_direct" != yes && - test "$hardcode_minus_L" != yes && - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; - esac - fi - fi - fi - - if test "$linkmode" = prog || test "$mode" = relink; then - add_shlibpath= - add_dir= - add= - # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; - esac - add="-l$name" - elif test "$hardcode_automatic" = yes; 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 - [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - fi - - if test "$linkmode" = prog; 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 "$linkmode" = prog; 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 "$hardcode_direct" != unsupported; 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 "$build_libtool_libs" = yes; then - # Not a shared library - if test "$deplibs_check_method" != pass_all; 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 can not 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 "$module" = yes; 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 "$build_old_libs" = no; 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 "$linkmode" = lib; then - if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || - test "$build_old_libs" = yes || - test "$link_static" = yes; }; 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 "*) ;; - *) xrpath="$xrpath $temp_xrpath";; - esac;; - *) temp_deplibs="$temp_deplibs $libdir";; - esac - done - dependency_libs="$temp_deplibs" - fi - - newlib_search_path="$newlib_search_path $absdir" - # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" - if $opt_duplicate_deps ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done - - if test "$link_all_deplibs" != no; then - # Add the search paths of all dependency libraries - for deplib in $dependency_libs; do - case $deplib in - -L*) path="$deplib" ;; - *.la) - 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 - compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" - linker_flags="$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 "$pass" = link; then - if test "$linkmode" = "prog"; then - compile_deplibs="$new_inherited_linker_flags $compile_deplibs" - finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" - else - compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - fi - fi - dependency_libs="$newdependency_libs" - if test "$pass" = dlpreopen; then - # Link the dlpreopened libraries before other libraries - for deplib in $save_deplibs; do - deplibs="$deplib $deplibs" - done - fi - if test "$pass" != dlopen; then - if test "$pass" != conv; then - # 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 "*) ;; - *) lib_search_path="$lib_search_path $dir" ;; - esac - done - newlib_search_path= - fi - - if test "$linkmode,$pass" != "prog,link"; then - vars="deplibs" - else - vars="compile_deplibs finalize_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 "*) ;; - *) tmp_libs="$tmp_libs $deplib" ;; - esac - ;; - *) tmp_libs="$tmp_libs $deplib" ;; - esac - done - eval $var=\"$tmp_libs\" - done # for var - fi - # 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 - tmp_libs="$tmp_libs $i" - fi - done - dependency_libs=$tmp_libs - done # for pass - if test "$linkmode" = prog; then - dlfiles="$newdlfiles" - fi - if test "$linkmode" = prog || test "$linkmode" = lib; then - dlprefiles="$newdlprefiles" - fi - - case $linkmode in - oldlib) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; 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" - objs="$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 "$module" = no && \ - func_fatal_help "libtool library \`$output' must begin with \`lib'" - - if test "$need_lib_prefix" != no; 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 "$deplibs_check_method" != pass_all; 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!" - libobjs="$libobjs $objs" - fi - fi - - test "$dlself" != no && \ - func_warning "\`-dlopen self' is ignored for libtool libraries" - - set dummy $rpath - shift - test "$#" -gt 1 && \ - func_warning "ignoring multiple \`-rpath's for a libtool library" - - install_libdir="$1" - - oldlibs= - if test -z "$rpath"; then - if test "$build_libtool_libs" = yes; 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 - # which has an extra 1 added just for fun - # - case $version_type in - darwin|linux|osf|windows|none) - func_arith $number_major + $number_minor - current=$func_arith_result - age="$number_minor" - revision="$number_revision" - ;; - freebsd-aout|freebsd-elf|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 - ;; - 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" - ;; - - freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; - ;; - - freebsd-elf) - major=".$current" - versuffix=".$current" - ;; - - irix | nonstopux) - if test "X$lt_irix_increment" = "Xno"; 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 "$loop" -ne 0; 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) - 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 "$loop" -ne 0; 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. - verstring="$verstring:${current}.0" - ;; - - qnx) - major=".$current" - versuffix=".$current" - ;; - - sunos) - major=".$current" - versuffix=".$current.$revision" - ;; - - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. - 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 "$need_version" = no; then - versuffix= - else - versuffix=".0.0" - fi - fi - - # Remove version info from name if versioning should be avoided - if test "$avoid_version" = yes && test "$need_version" = no; then - major= - versuffix= - verstring="" - fi - - # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - func_warning "undefined symbols not allowed in $host shared libraries" - build_libtool_libs=no - build_old_libs=yes - fi - else - # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" - fi - - fi - - func_generate_dlsyms "$libname" "$libname" "yes" - libobjs="$libobjs $symfileobj" - test "X$libobjs" = "X " && libobjs= - - if test "$mode" != relink; 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 "X$precious_files_regex" != "X"; then - if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 - then - continue - fi - fi - removelist="$removelist $p" - ;; - *) ;; - esac - done - test -n "$removelist" && \ - func_show_eval "${RM}r \$removelist" - fi - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - oldlibs="$oldlibs $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - #for path in $notinst_path; do - # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` - # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` - # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "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 - temp_xrpath="$temp_xrpath -R$libdir" - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; - esac - done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; 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 "*) ;; - *) dlfiles="$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 "*) ;; - *) dlprefiles="$dlprefiles $lib" ;; - esac - done - - if test "$build_libtool_libs" = yes; then - if test -n "$rpath"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework - deplibs="$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 "$build_libtool_need_lc" = "yes"; then - deplibs="$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` - 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 "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; - esac - done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | - $SED -e 10q | - $EGREP "$file_magic_regex" > /dev/null; then - newdeplibs="$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. - newdeplibs="$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 "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) - newdeplibs="$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 \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ - $EGREP "$match_pattern_regex" > /dev/null; then - newdeplibs="$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. - newdeplibs="$newdeplibs $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs="" - tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ - -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - for i in $predeps $postdeps ; do - # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` - done - fi - if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | - $GREP . >/dev/null; then - $ECHO - if test "X$deplibs_check_method" = "Xnone"; 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 - fi - ;; - 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 "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` - ;; - esac - - if test "$droppeddeps" = yes; then - if test "$module" = yes; 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 "$build_old_libs" = no; 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 "$allow_undefined" = no; 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 "$build_old_libs" = no; 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 "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - deplibs=`$ECHO "X $deplibs" | $Xsed -e '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 "*) - new_libs="$new_libs -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; - esac - ;; - *) new_libs="$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 "$build_libtool_libs" = yes; then - if test "$hardcode_into_libs" = yes; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" - test "$mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $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"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - dep_rpath="$dep_rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$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" - if test -n "$hardcode_libdir_flag_spec_ld"; then - eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - rpath="$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 "$mode" != relink && 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 - linknames="$linknames $link" - done - - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$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" - delfiles="$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 - if test "x`$SED 1q $export_symbols`" != xEXPORTS; then - # 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 - fi - ;; - esac - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || 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 cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - func_len " $cmd" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - func_show_eval "$cmd" 'exit $?' - 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 "X$skipped_export" != "X:"; 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 "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' - fi - - if test "X$skipped_export" != "X:" && 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 - delfiles="$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 "*) ;; - *) - tmp_deplibs="$tmp_deplibs $test_deplib" - ;; - esac - done - deplibs="$tmp_deplibs" - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec" && - test "$compiler_needs_object" = yes && - 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" - generated="$generated $gentop" - - func_extract_archives $gentop $convenience - libobjs="$libobjs $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - linker_flags="$linker_flags $flag" - fi - - # Make a backup of the uninstalled library when relinking - if test "$mode" = relink; 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 "$module" = yes && 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 "X$skipped_export" != "X:" && - 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 - output_la=`$ECHO "X$output" | $Xsed -e "$basename"` - - # 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 "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then - output=${output_objdir}/${output_la}.lnkscript - func_verbose "creating GNU ld script: $output" - $ECHO 'INPUT (' > $output - for obj in $save_libobjs - do - $ECHO "$obj" >> $output - done - $ECHO ')' >> $output - delfiles="$delfiles $output" - elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then - output=${output_objdir}/${output_la}.lnk - func_verbose "creating linker input file list: $output" - : > $output - set x $save_libobjs - shift - firstobj= - if test "$compiler_needs_object" = yes; then - firstobj="$1 " - shift - fi - for obj - do - $ECHO "$obj" >> $output - done - delfiles="$delfiles $output" - output=$firstobj\"$file_list_spec$output\" - 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 "X$objlist" = X || - 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 "$k" -eq 1 ; then - # The first file doesn't have a previous command to add. - eval concat_cmds=\"$reload_cmds $objlist $last_robj\" - else - # All subsequent reloadable object files will link in - # the last one created. - eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$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~ - eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" - if test -n "$last_robj"; then - eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" - fi - delfiles="$delfiles $output" - - else - output= - fi - - if ${skipped_export-false}; then - 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 - 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_silent || { - 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 "$mode" = relink; 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 - - if ${skipped_export-false}; then - 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 "X$include_expsyms" | $Xsed | $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 - delfiles="$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 - 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 "$module" = yes && 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" - generated="$generated $gentop" - - func_extract_archives $gentop $dlprefiles - libobjs="$libobjs $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $opt_silent || { - 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 "$mode" = relink; 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 "$mode" = relink; 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 "$module" = yes || test "$export_dynamic" = yes; then - # On all known operating systems, these are identical. - dlname="$soname" - fi - fi - ;; - - obj) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; 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= - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec and hope we can get by with - # turning comma into space.. - wl= - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` - else - gentop="$output_objdir/${obj}x" - generated="$generated $gentop" - - func_extract_archives $gentop $convenience - reload_conv_objs="$reload_objs $func_extract_archives_result" - fi - fi - - # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - - 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 - - if test "$build_libtool_libs" != yes; then - 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 - fi - - if test -n "$pic_flag" || test "$pic_mode" != default; 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" - - test "$preload" = yes \ - && test "$dlopen_support" = unknown \ - && test "$dlopen_self" = unknown \ - && test "$dlopen_self_static" = unknown && \ - 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 "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` - finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e '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 "$tagname" = CXX ; then - case ${MACOSX_DEPLOYMENT_TARGET-10.0} in - 10.[0123]) - compile_command="$compile_command ${wl}-bind_at_load" - finalize_command="$finalize_command ${wl}-bind_at_load" - ;; - esac - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e '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 "*) - new_libs="$new_libs -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $compile_deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; - esac - ;; - *) new_libs="$new_libs $deplib" ;; - esac - done - compile_deplibs="$new_libs" - - - compile_command="$compile_command $compile_deplibs" - finalize_command="$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 "*) ;; - *) finalize_rpath="$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"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$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;; - *) dllsearchpath="$dllsearchpath:$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) dllsearchpath="$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"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; - *) finalize_perm_rpath="$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 "$build_old_libs" = yes; then - # Transform all the library objects into standard objects. - compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - fi - - func_generate_dlsyms "$outputname" "@PROGRAM@" "no" - - # template prelinking step - if test -n "$prelink_cmds"; then - func_execute_cmds "$prelink_cmds" 'exit $?' - fi - - wrappers_required=yes - case $host in - *cygwin* | *mingw* ) - if test "$build_libtool_libs" != yes; then - wrappers_required=no - fi - ;; - *cegcc) - # Disable wrappers for cegcc, we are cross compiling anyway. - wrappers_required=no - ;; - *) - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - wrappers_required=no - fi - ;; - esac - if test "$wrappers_required" = no; then - # Replace the output file specification. - compile_command=`$ECHO "X$compile_command" | $Xsed -e '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=$?' - - # 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 - fi - - 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 - rpath="$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 - rpath="$rpath$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - fi - - if test "$no_install" = yes; 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 "X$link_command" | $Xsed -e '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 $?' - exit $EXIT_SUCCESS - fi - - if test "$hardcode_action" = relink; then - # 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" - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then - relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` - else - # fast_install is set to needless - relink_command= - fi - else - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - fi - fi - - # Replace the output file specification. - link_command=`$ECHO "X$link_command" | $Xsed -e '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 $?' - - # 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 "X$relink_command" | $Xsed -e "$sed_quote_subst"` - fi - - # Quote $ECHO for shipping. - if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then - case $progpath in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; - *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; - esac - qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` - else - qecho=`$ECHO "X$ECHO" | $Xsed -e "$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 - - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save $symfileobj" - addlibs="$convenience" - build_libtool_libs=no - else - if test "$build_libtool_libs" = module; then - oldobjs="$libobjs_save" - build_libtool_libs=no - else - oldobjs="$old_deplibs $non_pic_objects" - if test "$preload" = yes && test -f "$symfileobj"; then - oldobjs="$oldobjs $symfileobj" - fi - fi - addlibs="$old_convenience" - fi - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" - - func_extract_archives $gentop $addlibs - oldobjs="$oldobjs $func_extract_archives_result" - fi - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; 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" - generated="$generated $gentop" - - func_extract_archives $gentop $dlprefiles - oldobjs="$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" - generated="$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" - oldobjs="$oldobjs $gentop/$newobj" - ;; - *) oldobjs="$oldobjs $obj" ;; - esac - done - fi - 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 - 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 "X$oldobjs" = "X" ; 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 "$build_old_libs" = yes && 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 "X$relink_command" | $Xsed -e "$sed_quote_subst"` - if test "$hardcode_automatic" = yes ; then - relink_command= - fi - - # Only create the output if not a dry run. - $opt_dry_run || { - for installed in no yes; do - if test "$installed" = yes; 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" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" - newdependency_libs="$newdependency_libs $libdir/$name" - ;; - *) newdependency_libs="$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" - newdlfiles="$newdlfiles $libdir/$name" - ;; - *) newdlfiles="$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" - newdlprefiles="$newdlprefiles $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 - newdlfiles="$newdlfiles $abs" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - newdlprefiles="$newdlprefiles $abs" - done - dlprefiles="$newdlprefiles" - fi - $RM $output - # place dlname in correct position for cygwin - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; - esac - $ECHO > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $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 can not 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 "$installed" = no && test "$need_relink" = yes; 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 -} - -{ test "$mode" = link || test "$mode" = relink; } && - func_mode_link ${1+"$@"} - - -# func_mode_uninstall arg... -func_mode_uninstall () -{ - $opt_debug - RM="$nonopt" - files= - rmforce= - 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) RM="$RM $arg"; rmforce=yes ;; - -*) RM="$RM $arg" ;; - *) files="$files $arg" ;; - esac - done - - test -z "$RM" && \ - func_fatal_help "you must specify an RM program" - - rmdirs= - - origobjdir="$objdir" - for file in $files; do - func_dirname "$file" "" "." - dir="$func_dirname_result" - if test "X$dir" = X.; then - objdir="$origobjdir" - else - objdir="$dir/$origobjdir" - fi - func_basename "$file" - name="$func_basename_result" - test "$mode" = uninstall && objdir="$dir" - - # Remember objdir for removal later, being careful to avoid duplicates - if test "$mode" = clean; then - case " $rmdirs " in - *" $objdir "*) ;; - *) rmdirs="$rmdirs $objdir" ;; - 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 test "$rmforce" = yes; 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 - rmfiles="$rmfiles $objdir/$n" - done - test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" - - case "$mode" in - clean) - case " $library_names " in - # " " in the beginning catches empty $dlname - *" $dlname "*) ;; - *) rmfiles="$rmfiles $objdir/$dlname" ;; - esac - test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || 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 "$pic_object" != none; then - rmfiles="$rmfiles $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" && - test "$non_pic_object" != none; then - rmfiles="$rmfiles $dir/$non_pic_object" - fi - fi - ;; - - *) - if test "$mode" = clean ; 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 - rmfiles="$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 - rmfiles="$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 - rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then - rmfiles="$rmfiles $objdir/lt-$name" - fi - if test "X$noexename" != "X$name" ; then - rmfiles="$rmfiles $objdir/lt-${noexename}.c" - fi - fi - fi - ;; - esac - func_show_eval "$RM $rmfiles" 'exit_status=1' - done - objdir="$origobjdir" - - # 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 -} - -{ test "$mode" = uninstall || test "$mode" = clean; } && - func_mode_uninstall ${1+"$@"} - -test -z "$mode" && { - help="$generic_help" - func_fatal_help "you must specify a MODE" -} - -test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode \`$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 -# in which 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: -# vi:sw=2 - diff --git a/extension/SDL2_image-2.0.3/miniz.h b/extension/SDL2_image-2.0.3/miniz.h deleted file mode 100755 index 93c5983..0000000 --- a/extension/SDL2_image-2.0.3/miniz.h +++ /dev/null @@ -1,4933 +0,0 @@ -/* miniz.c v1.15 - public domain deflate/inflate, zlib-subset, ZIP reading/writing/appending, PNG writing - See "unlicense" statement at the end of this file. - Rich Geldreich , last updated Oct. 13, 2013 - Implements RFC 1950: http://www.ietf.org/rfc/rfc1950.txt and RFC 1951: http://www.ietf.org/rfc/rfc1951.txt - - Most API's defined in miniz.c are optional. For example, to disable the archive related functions just define - MINIZ_NO_ARCHIVE_APIS, or to get rid of all stdio usage define MINIZ_NO_STDIO (see the list below for more macros). - - * Change History - 10/13/13 v1.15 r4 - Interim bugfix release while I work on the next major release with Zip64 support (almost there!): - - Critical fix for the MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY bug (thanks kahmyong.moon@hp.com) which could cause locate files to not find files. This bug - would only have occured in earlier versions if you explicitly used this flag, OR if you used mz_zip_extract_archive_file_to_heap() or mz_zip_add_mem_to_archive_file_in_place() - (which used this flag). If you can't switch to v1.15 but want to fix this bug, just remove the uses of this flag from both helper funcs (and of course don't use the flag). - - Bugfix in mz_zip_reader_extract_to_mem_no_alloc() from kymoon when pUser_read_buf is not NULL and compressed size is > uncompressed size - - Fixing mz_zip_reader_extract_*() funcs so they don't try to extract compressed data from directory entries, to account for weird zipfiles which contain zero-size compressed data on dir entries. - Hopefully this fix won't cause any issues on weird zip archives, because it assumes the low 16-bits of zip external attributes are DOS attributes (which I believe they always are in practice). - - Fixing mz_zip_reader_is_file_a_directory() so it doesn't check the internal attributes, just the filename and external attributes - - mz_zip_reader_init_file() - missing MZ_FCLOSE() call if the seek failed - - Added cmake support for Linux builds which builds all the examples, tested with clang v3.3 and gcc v4.6. - - Clang fix for tdefl_write_image_to_png_file_in_memory() from toffaletti - - Merged MZ_FORCEINLINE fix from hdeanclark - - Fix include before config #ifdef, thanks emil.brink - - Added tdefl_write_image_to_png_file_in_memory_ex(): supports Y flipping (super useful for OpenGL apps), and explicit control over the compression level (so you can - set it to 1 for real-time compression). - - Merged in some compiler fixes from paulharris's github repro. - - Retested this build under Windows (VS 2010, including static analysis), tcc 0.9.26, gcc v4.6 and clang v3.3. - - Added example6.c, which dumps an image of the mandelbrot set to a PNG file. - - Modified example2 to help test the MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY flag more. - - In r3: Bugfix to mz_zip_writer_add_file() found during merge: Fix possible src file fclose() leak if alignment bytes+local header file write faiiled - - In r4: Minor bugfix to mz_zip_writer_add_from_zip_reader(): Was pushing the wrong central dir header offset, appears harmless in this release, but it became a problem in the zip64 branch - 5/20/12 v1.14 - MinGW32/64 GCC 4.6.1 compiler fixes: added MZ_FORCEINLINE, #include (thanks fermtect). - 5/19/12 v1.13 - From jason@cornsyrup.org and kelwert@mtu.edu - Fix mz_crc32() so it doesn't compute the wrong CRC-32's when mz_ulong is 64-bit. - - Temporarily/locally slammed in "typedef unsigned long mz_ulong" and re-ran a randomized regression test on ~500k files. - - Eliminated a bunch of warnings when compiling with GCC 32-bit/64. - - Ran all examples, miniz.c, and tinfl.c through MSVC 2008's /analyze (static analysis) option and fixed all warnings (except for the silly - "Use of the comma-operator in a tested expression.." analysis warning, which I purposely use to work around a MSVC compiler warning). - - Created 32-bit and 64-bit Codeblocks projects/workspace. Built and tested Linux executables. The codeblocks workspace is compatible with Linux+Win32/x64. - - Added miniz_tester solution/project, which is a useful little app derived from LZHAM's tester app that I use as part of the regression test. - - Ran miniz.c and tinfl.c through another series of regression testing on ~500,000 files and archives. - - Modified example5.c so it purposely disables a bunch of high-level functionality (MINIZ_NO_STDIO, etc.). (Thanks to corysama for the MINIZ_NO_STDIO bug report.) - - Fix ftell() usage in examples so they exit with an error on files which are too large (a limitation of the examples, not miniz itself). - 4/12/12 v1.12 - More comments, added low-level example5.c, fixed a couple minor level_and_flags issues in the archive API's. - level_and_flags can now be set to MZ_DEFAULT_COMPRESSION. Thanks to Bruce Dawson for the feedback/bug report. - 5/28/11 v1.11 - Added statement from unlicense.org - 5/27/11 v1.10 - Substantial compressor optimizations: - - Level 1 is now ~4x faster than before. The L1 compressor's throughput now varies between 70-110MB/sec. on a - - Core i7 (actual throughput varies depending on the type of data, and x64 vs. x86). - - Improved baseline L2-L9 compression perf. Also, greatly improved compression perf. issues on some file types. - - Refactored the compression code for better readability and maintainability. - - Added level 10 compression level (L10 has slightly better ratio than level 9, but could have a potentially large - drop in throughput on some files). - 5/15/11 v1.09 - Initial stable release. - - * Low-level Deflate/Inflate implementation notes: - - Compression: Use the "tdefl" API's. The compressor supports raw, static, and dynamic blocks, lazy or - greedy parsing, match length filtering, RLE-only, and Huffman-only streams. It performs and compresses - approximately as well as zlib. - - Decompression: Use the "tinfl" API's. The entire decompressor is implemented as a single function - coroutine: see tinfl_decompress(). It supports decompression into a 32KB (or larger power of 2) wrapping buffer, or into a memory - block large enough to hold the entire file. - - The low-level tdefl/tinfl API's do not make any use of dynamic memory allocation. - - * zlib-style API notes: - - miniz.c implements a fairly large subset of zlib. There's enough functionality present for it to be a drop-in - zlib replacement in many apps: - The z_stream struct, optional memory allocation callbacks - deflateInit/deflateInit2/deflate/deflateReset/deflateEnd/deflateBound - inflateInit/inflateInit2/inflate/inflateEnd - compress, compress2, compressBound, uncompress - CRC-32, Adler-32 - Using modern, minimal code size, CPU cache friendly routines. - Supports raw deflate streams or standard zlib streams with adler-32 checking. - - Limitations: - The callback API's are not implemented yet. No support for gzip headers or zlib static dictionaries. - I've tried to closely emulate zlib's various flavors of stream flushing and return status codes, but - there are no guarantees that miniz.c pulls this off perfectly. - - * PNG writing: See the tdefl_write_image_to_png_file_in_memory() function, originally written by - Alex Evans. Supports 1-4 bytes/pixel images. - - * ZIP archive API notes: - - The ZIP archive API's where designed with simplicity and efficiency in mind, with just enough abstraction to - get the job done with minimal fuss. There are simple API's to retrieve file information, read files from - existing archives, create new archives, append new files to existing archives, or clone archive data from - one archive to another. It supports archives located in memory or the heap, on disk (using stdio.h), - or you can specify custom file read/write callbacks. - - - Archive reading: Just call this function to read a single file from a disk archive: - - void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name, - size_t *pSize, mz_uint zip_flags); - - For more complex cases, use the "mz_zip_reader" functions. Upon opening an archive, the entire central - directory is located and read as-is into memory, and subsequent file access only occurs when reading individual files. - - - Archives file scanning: The simple way is to use this function to scan a loaded archive for a specific file: - - int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags); - - The locate operation can optionally check file comments too, which (as one example) can be used to identify - multiple versions of the same file in an archive. This function uses a simple linear search through the central - directory, so it's not very fast. - - Alternately, you can iterate through all the files in an archive (using mz_zip_reader_get_num_files()) and - retrieve detailed info on each file by calling mz_zip_reader_file_stat(). - - - Archive creation: Use the "mz_zip_writer" functions. The ZIP writer immediately writes compressed file data - to disk and builds an exact image of the central directory in memory. The central directory image is written - all at once at the end of the archive file when the archive is finalized. - - The archive writer can optionally align each file's local header and file data to any power of 2 alignment, - which can be useful when the archive will be read from optical media. Also, the writer supports placing - arbitrary data blobs at the very beginning of ZIP archives. Archives written using either feature are still - readable by any ZIP tool. - - - Archive appending: The simple way to add a single file to an archive is to call this function: - - mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name, - const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags); - - The archive will be created if it doesn't already exist, otherwise it'll be appended to. - Note the appending is done in-place and is not an atomic operation, so if something goes wrong - during the operation it's possible the archive could be left without a central directory (although the local - file headers and file data will be fine, so the archive will be recoverable). - - For more complex archive modification scenarios: - 1. The safest way is to use a mz_zip_reader to read the existing archive, cloning only those bits you want to - preserve into a new archive using using the mz_zip_writer_add_from_zip_reader() function (which compiles the - compressed file data as-is). When you're done, delete the old archive and rename the newly written archive, and - you're done. This is safe but requires a bunch of temporary disk space or heap memory. - - 2. Or, you can convert an mz_zip_reader in-place to an mz_zip_writer using mz_zip_writer_init_from_reader(), - append new files as needed, then finalize the archive which will write an updated central directory to the - original archive. (This is basically what mz_zip_add_mem_to_archive_file_in_place() does.) There's a - possibility that the archive's central directory could be lost with this method if anything goes wrong, though. - - - ZIP archive support limitations: - No zip64 or spanning support. Extraction functions can only handle unencrypted, stored or deflated files. - Requires streams capable of seeking. - - * This is a header file library, like stb_image.c. To get only a header file, either cut and paste the - below header, or create miniz.h, #define MINIZ_HEADER_FILE_ONLY, and then include miniz.c from it. - - * Important: For best perf. be sure to customize the below macros for your target platform: - #define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1 - #define MINIZ_LITTLE_ENDIAN 1 - #define MINIZ_HAS_64BIT_REGISTERS 1 - - * On platforms using glibc, Be sure to "#define _LARGEFILE64_SOURCE 1" before including miniz.c to ensure miniz - uses the 64-bit variants: fopen64(), stat64(), etc. Otherwise you won't be able to process large files - (i.e. 32-bit stat() fails for me on files > 0x7FFFFFFF bytes). -*/ - -#ifndef MINIZ_HEADER_INCLUDED -#define MINIZ_HEADER_INCLUDED - -/*#include */ - -// Defines to completely disable specific portions of miniz.c: -// If all macros here are defined the only functionality remaining will be CRC-32, adler-32, tinfl, and tdefl. - -// Define MINIZ_NO_STDIO to disable all usage and any functions which rely on stdio for file I/O. -#define MINIZ_NO_STDIO - -// If MINIZ_NO_TIME is specified then the ZIP archive functions will not be able to get the current time, or -// get/set file times, and the C run-time funcs that get/set times won't be called. -// The current downside is the times written to your archives will be from 1979. -#define MINIZ_NO_TIME - -// Define MINIZ_NO_ARCHIVE_APIS to disable all ZIP archive API's. -#define MINIZ_NO_ARCHIVE_APIS - -// Define MINIZ_NO_ARCHIVE_APIS to disable all writing related ZIP archive API's. -#define MINIZ_NO_ARCHIVE_WRITING_APIS - -// Define MINIZ_NO_ZLIB_APIS to remove all ZLIB-style compression/decompression API's. -#define MINIZ_NO_ZLIB_APIS - -// Define MINIZ_NO_ZLIB_COMPATIBLE_NAME to disable zlib names, to prevent conflicts against stock zlib. -#define MINIZ_NO_ZLIB_COMPATIBLE_NAMES - -// Define MINIZ_NO_MALLOC to disable all calls to malloc, free, and realloc. -// Note if MINIZ_NO_MALLOC is defined then the user must always provide custom user alloc/free/realloc -// callbacks to the zlib and archive API's, and a few stand-alone helper API's which don't provide custom user -// functions (such as tdefl_compress_mem_to_heap() and tinfl_decompress_mem_to_heap()) won't work. -//#define MINIZ_NO_MALLOC -#define MINIZ_SDL_MALLOC - -// Define MINIZ_STATIC_FUNCTIONS to make all functions static. You probably -// want this if you're using miniz in a library -#define MINIZ_STATIC_FUNCTIONS - -#if defined(__TINYC__) && (defined(__linux) || defined(__linux__)) - // TODO: Work around "error: include file 'sys\utime.h' when compiling with tcc on Linux - #define MINIZ_NO_TIME -#endif - -#if !defined(MINIZ_NO_TIME) && !defined(MINIZ_NO_ARCHIVE_APIS) - #include -#endif - -#if defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || defined(__i386) || defined(__i486__) || defined(__i486) || defined(i386) || defined(__ia64__) || defined(__x86_64__) -// MINIZ_X86_OR_X64_CPU is only used to help set the below macros. -#define MINIZ_X86_OR_X64_CPU 1 -#endif - -#if (__BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__) || MINIZ_X86_OR_X64_CPU -// Set MINIZ_LITTLE_ENDIAN to 1 if the processor is little endian. -#define MINIZ_LITTLE_ENDIAN 1 -#endif - -#if MINIZ_X86_OR_X64_CPU -// Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient integer loads and stores from unaligned addresses. -#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1 -#endif - -#if defined(_M_X64) || defined(_WIN64) || defined(__MINGW64__) || defined(_LP64) || defined(__LP64__) || defined(__ia64__) || defined(__x86_64__) -// Set MINIZ_HAS_64BIT_REGISTERS to 1 if operations on 64-bit integers are reasonably fast (and don't involve compiler generated calls to helper functions). -#define MINIZ_HAS_64BIT_REGISTERS 1 -#endif - -#ifdef MINIZ_STATIC_FUNCTIONS -#define MINIZ_STATIC static -#else -#define MINIZ_STATIC -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -// ------------------- zlib-style API Definitions. - -// For more compatibility with zlib, miniz.c uses unsigned long for some parameters/struct members. Beware: mz_ulong can be either 32 or 64-bits! -typedef unsigned long mz_ulong; - -// mz_free() internally uses the MZ_FREE() macro (which by default calls free() unless you've modified the MZ_MALLOC macro) to release a block allocated from the heap. -MINIZ_STATIC void mz_free(void *p); - -#define MZ_ADLER32_INIT (1) -// mz_adler32() returns the initial adler-32 value to use when called with ptr==NULL. -MINIZ_STATIC mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len); - -#define MZ_CRC32_INIT (0) -// mz_crc32() returns the initial CRC-32 value to use when called with ptr==NULL. -MINIZ_STATIC mz_ulong mz_crc32(mz_ulong crc, const unsigned char *ptr, size_t buf_len); - -// Compression strategies. -enum { MZ_DEFAULT_STRATEGY = 0, MZ_FILTERED = 1, MZ_HUFFMAN_ONLY = 2, MZ_RLE = 3, MZ_FIXED = 4 }; - -// Method -#define MZ_DEFLATED 8 - -#ifndef MINIZ_NO_ZLIB_APIS - -// Heap allocation callbacks. -// Note that mz_alloc_func parameter types purpsosely differ from zlib's: items/size is size_t, not unsigned long. -typedef void *(*mz_alloc_func)(void *opaque, size_t items, size_t size); -typedef void (*mz_free_func)(void *opaque, void *address); -typedef void *(*mz_realloc_func)(void *opaque, void *address, size_t items, size_t size); - -#define MZ_VERSION "9.1.15" -#define MZ_VERNUM 0x91F0 -#define MZ_VER_MAJOR 9 -#define MZ_VER_MINOR 1 -#define MZ_VER_REVISION 15 -#define MZ_VER_SUBREVISION 0 - -// Flush values. For typical usage you only need MZ_NO_FLUSH and MZ_FINISH. The other values are for advanced use (refer to the zlib docs). -enum { MZ_NO_FLUSH = 0, MZ_PARTIAL_FLUSH = 1, MZ_SYNC_FLUSH = 2, MZ_FULL_FLUSH = 3, MZ_FINISH = 4, MZ_BLOCK = 5 }; - -// Return status codes. MZ_PARAM_ERROR is non-standard. -enum { MZ_OK = 0, MZ_STREAM_END = 1, MZ_NEED_DICT = 2, MZ_ERRNO = -1, MZ_STREAM_ERROR = -2, MZ_DATA_ERROR = -3, MZ_MEM_ERROR = -4, MZ_BUF_ERROR = -5, MZ_VERSION_ERROR = -6, MZ_PARAM_ERROR = -10000 }; - -// Compression levels: 0-9 are the standard zlib-style levels, 10 is best possible compression (not zlib compatible, and may be very slow), MZ_DEFAULT_COMPRESSION=MZ_DEFAULT_LEVEL. -enum { MZ_NO_COMPRESSION = 0, MZ_BEST_SPEED = 1, MZ_BEST_COMPRESSION = 9, MZ_UBER_COMPRESSION = 10, MZ_DEFAULT_LEVEL = 6, MZ_DEFAULT_COMPRESSION = -1 }; - -// Window bits -#define MZ_DEFAULT_WINDOW_BITS 15 - -struct mz_internal_state; - -// Compression/decompression stream struct. -typedef struct mz_stream_s -{ - const unsigned char *next_in; // pointer to next byte to read - unsigned int avail_in; // number of bytes available at next_in - mz_ulong total_in; // total number of bytes consumed so far - - unsigned char *next_out; // pointer to next byte to write - unsigned int avail_out; // number of bytes that can be written to next_out - mz_ulong total_out; // total number of bytes produced so far - - char *msg; // error msg (unused) - struct mz_internal_state *state; // internal state, allocated by zalloc/zfree - - mz_alloc_func zalloc; // optional heap allocation function (defaults to malloc) - mz_free_func zfree; // optional heap free function (defaults to free) - void *opaque; // heap alloc function user pointer - - int data_type; // data_type (unused) - mz_ulong adler; // adler32 of the source or uncompressed data - mz_ulong reserved; // not used -} mz_stream; - -typedef mz_stream *mz_streamp; - -// Returns the version string of miniz.c. -MINIZ_STATIC const char *mz_version(void); - -// mz_deflateInit() initializes a compressor with default options: -// Parameters: -// pStream must point to an initialized mz_stream struct. -// level must be between [MZ_NO_COMPRESSION, MZ_BEST_COMPRESSION]. -// level 1 enables a specially optimized compression function that's been optimized purely for performance, not ratio. -// (This special func. is currently only enabled when MINIZ_USE_UNALIGNED_LOADS_AND_STORES and MINIZ_LITTLE_ENDIAN are defined.) -// Return values: -// MZ_OK on success. -// MZ_STREAM_ERROR if the stream is bogus. -// MZ_PARAM_ERROR if the input parameters are bogus. -// MZ_MEM_ERROR on out of memory. -MINIZ_STATIC int mz_deflateInit(mz_streamp pStream, int level); - -// mz_deflateInit2() is like mz_deflate(), except with more control: -// Additional parameters: -// method must be MZ_DEFLATED -// window_bits must be MZ_DEFAULT_WINDOW_BITS (to wrap the deflate stream with zlib header/adler-32 footer) or -MZ_DEFAULT_WINDOW_BITS (raw deflate/no header or footer) -// mem_level must be between [1, 9] (it's checked but ignored by miniz.c) -MINIZ_STATIC int mz_deflateInit2(mz_streamp pStream, int level, int method, int window_bits, int mem_level, int strategy); - -// Quickly resets a compressor without having to reallocate anything. Same as calling mz_deflateEnd() followed by mz_deflateInit()/mz_deflateInit2(). -MINIZ_STATIC int mz_deflateReset(mz_streamp pStream); - -// mz_deflate() compresses the input to output, consuming as much of the input and producing as much output as possible. -// Parameters: -// pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and avail_out members. -// flush may be MZ_NO_FLUSH, MZ_PARTIAL_FLUSH/MZ_SYNC_FLUSH, MZ_FULL_FLUSH, or MZ_FINISH. -// Return values: -// MZ_OK on success (when flushing, or if more input is needed but not available, and/or there's more output to be written but the output buffer is full). -// MZ_STREAM_END if all input has been consumed and all output bytes have been written. Don't call mz_deflate() on the stream anymore. -// MZ_STREAM_ERROR if the stream is bogus. -// MZ_PARAM_ERROR if one of the parameters is invalid. -// MZ_BUF_ERROR if no forward progress is possible because the input and/or output buffers are empty. (Fill up the input buffer or free up some output space and try again.) -MINIZ_STATIC int mz_deflate(mz_streamp pStream, int flush); - -// mz_deflateEnd() deinitializes a compressor: -// Return values: -// MZ_OK on success. -// MZ_STREAM_ERROR if the stream is bogus. -MINIZ_STATIC int mz_deflateEnd(mz_streamp pStream); - -// mz_deflateBound() returns a (very) conservative upper bound on the amount of data that could be generated by deflate(), assuming flush is set to only MZ_NO_FLUSH or MZ_FINISH. -MINIZ_STATIC mz_ulong mz_deflateBound(mz_streamp pStream, mz_ulong source_len); - -// Single-call compression functions mz_compress() and mz_compress2(): -// Returns MZ_OK on success, or one of the error codes from mz_deflate() on failure. -MINIZ_STATIC int mz_compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len); -MINIZ_STATIC int mz_compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len, int level); - -// mz_compressBound() returns a (very) conservative upper bound on the amount of data that could be generated by calling mz_compress(). -MINIZ_STATIC mz_ulong mz_compressBound(mz_ulong source_len); - -// Initializes a decompressor. -MINIZ_STATIC int mz_inflateInit(mz_streamp pStream); - -// mz_inflateInit2() is like mz_inflateInit() with an additional option that controls the window size and whether or not the stream has been wrapped with a zlib header/footer: -// window_bits must be MZ_DEFAULT_WINDOW_BITS (to parse zlib header/footer) or -MZ_DEFAULT_WINDOW_BITS (raw deflate). -MINIZ_STATIC int mz_inflateInit2(mz_streamp pStream, int window_bits); - -// Decompresses the input stream to the output, consuming only as much of the input as needed, and writing as much to the output as possible. -// Parameters: -// pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and avail_out members. -// flush may be MZ_NO_FLUSH, MZ_SYNC_FLUSH, or MZ_FINISH. -// On the first call, if flush is MZ_FINISH it's assumed the input and output buffers are both sized large enough to decompress the entire stream in a single call (this is slightly faster). -// MZ_FINISH implies that there are no more source bytes available beside what's already in the input buffer, and that the output buffer is large enough to hold the rest of the decompressed data. -// Return values: -// MZ_OK on success. Either more input is needed but not available, and/or there's more output to be written but the output buffer is full. -// MZ_STREAM_END if all needed input has been consumed and all output bytes have been written. For zlib streams, the adler-32 of the decompressed data has also been verified. -// MZ_STREAM_ERROR if the stream is bogus. -// MZ_DATA_ERROR if the deflate stream is invalid. -// MZ_PARAM_ERROR if one of the parameters is invalid. -// MZ_BUF_ERROR if no forward progress is possible because the input buffer is empty but the inflater needs more input to continue, or if the output buffer is not large enough. Call mz_inflate() again -// with more input data, or with more room in the output buffer (except when using single call decompression, described above). -MINIZ_STATIC int mz_inflate(mz_streamp pStream, int flush); - -// Deinitializes a decompressor. -MINIZ_STATIC int mz_inflateEnd(mz_streamp pStream); - -// Single-call decompression. -// Returns MZ_OK on success, or one of the error codes from mz_inflate() on failure. -MINIZ_STATIC int mz_uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len); - -// Returns a string description of the specified error code, or NULL if the error code is invalid. -MINIZ_STATIC const char *mz_error(int err); - -// Redefine zlib-compatible names to miniz equivalents, so miniz.c can be used as a drop-in replacement for the subset of zlib that miniz.c supports. -// Define MINIZ_NO_ZLIB_COMPATIBLE_NAMES to disable zlib-compatibility if you use zlib in the same project. -#ifndef MINIZ_NO_ZLIB_COMPATIBLE_NAMES - typedef unsigned char Byte; - typedef unsigned int uInt; - typedef mz_ulong uLong; - typedef Byte Bytef; - typedef uInt uIntf; - typedef char charf; - typedef int intf; - typedef void *voidpf; - typedef uLong uLongf; - typedef void *voidp; - typedef void *const voidpc; - #define Z_NULL 0 - #define Z_NO_FLUSH MZ_NO_FLUSH - #define Z_PARTIAL_FLUSH MZ_PARTIAL_FLUSH - #define Z_SYNC_FLUSH MZ_SYNC_FLUSH - #define Z_FULL_FLUSH MZ_FULL_FLUSH - #define Z_FINISH MZ_FINISH - #define Z_BLOCK MZ_BLOCK - #define Z_OK MZ_OK - #define Z_STREAM_END MZ_STREAM_END - #define Z_NEED_DICT MZ_NEED_DICT - #define Z_ERRNO MZ_ERRNO - #define Z_STREAM_ERROR MZ_STREAM_ERROR - #define Z_DATA_ERROR MZ_DATA_ERROR - #define Z_MEM_ERROR MZ_MEM_ERROR - #define Z_BUF_ERROR MZ_BUF_ERROR - #define Z_VERSION_ERROR MZ_VERSION_ERROR - #define Z_PARAM_ERROR MZ_PARAM_ERROR - #define Z_NO_COMPRESSION MZ_NO_COMPRESSION - #define Z_BEST_SPEED MZ_BEST_SPEED - #define Z_BEST_COMPRESSION MZ_BEST_COMPRESSION - #define Z_DEFAULT_COMPRESSION MZ_DEFAULT_COMPRESSION - #define Z_DEFAULT_STRATEGY MZ_DEFAULT_STRATEGY - #define Z_FILTERED MZ_FILTERED - #define Z_HUFFMAN_ONLY MZ_HUFFMAN_ONLY - #define Z_RLE MZ_RLE - #define Z_FIXED MZ_FIXED - #define Z_DEFLATED MZ_DEFLATED - #define Z_DEFAULT_WINDOW_BITS MZ_DEFAULT_WINDOW_BITS - #define alloc_func mz_alloc_func - #define free_func mz_free_func - #define internal_state mz_internal_state - #define z_stream mz_stream - #define deflateInit mz_deflateInit - #define deflateInit2 mz_deflateInit2 - #define deflateReset mz_deflateReset - #define deflate mz_deflate - #define deflateEnd mz_deflateEnd - #define deflateBound mz_deflateBound - #define compress mz_compress - #define compress2 mz_compress2 - #define compressBound mz_compressBound - #define inflateInit mz_inflateInit - #define inflateInit2 mz_inflateInit2 - #define inflate mz_inflate - #define inflateEnd mz_inflateEnd - #define uncompress mz_uncompress - #define crc32 mz_crc32 - #define adler32 mz_adler32 - #define MAX_WBITS 15 - #define MAX_MEM_LEVEL 9 - #define zError mz_error - #define ZLIB_VERSION MZ_VERSION - #define ZLIB_VERNUM MZ_VERNUM - #define ZLIB_VER_MAJOR MZ_VER_MAJOR - #define ZLIB_VER_MINOR MZ_VER_MINOR - #define ZLIB_VER_REVISION MZ_VER_REVISION - #define ZLIB_VER_SUBREVISION MZ_VER_SUBREVISION - #define zlibVersion mz_version - #define zlib_version mz_version() -#endif // #ifndef MINIZ_NO_ZLIB_COMPATIBLE_NAMES - -#endif // MINIZ_NO_ZLIB_APIS - -// ------------------- Types and macros - -typedef unsigned char mz_uint8; -typedef signed short mz_int16; -typedef unsigned short mz_uint16; -typedef unsigned int mz_uint32; -typedef unsigned int mz_uint; -typedef long long mz_int64; -typedef unsigned long long mz_uint64; -typedef int mz_bool; - -#define MZ_FALSE (0) -#define MZ_TRUE (1) - -// An attempt to work around MSVC's spammy "warning C4127: conditional expression is constant" message. -#ifdef _MSC_VER - #define MZ_MACRO_END while (0, 0) -#else - #define MZ_MACRO_END while (0) -#endif - -// ------------------- ZIP archive reading/writing - -#ifndef MINIZ_NO_ARCHIVE_APIS - -enum -{ - MZ_ZIP_MAX_IO_BUF_SIZE = 64*1024, - MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE = 260, - MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE = 256 -}; - -typedef struct -{ - mz_uint32 m_file_index; - mz_uint32 m_central_dir_ofs; - mz_uint16 m_version_made_by; - mz_uint16 m_version_needed; - mz_uint16 m_bit_flag; - mz_uint16 m_method; -#ifndef MINIZ_NO_TIME - time_t m_time; -#endif - mz_uint32 m_crc32; - mz_uint64 m_comp_size; - mz_uint64 m_uncomp_size; - mz_uint16 m_internal_attr; - mz_uint32 m_external_attr; - mz_uint64 m_local_header_ofs; - mz_uint32 m_comment_size; - char m_filename[MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE]; - char m_comment[MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE]; -} mz_zip_archive_file_stat; - -typedef size_t (*mz_file_read_func)(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n); -typedef size_t (*mz_file_write_func)(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n); - -struct mz_zip_internal_state_tag; -typedef struct mz_zip_internal_state_tag mz_zip_internal_state; - -typedef enum -{ - MZ_ZIP_MODE_INVALID = 0, - MZ_ZIP_MODE_READING = 1, - MZ_ZIP_MODE_WRITING = 2, - MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED = 3 -} mz_zip_mode; - -typedef struct mz_zip_archive_tag -{ - mz_uint64 m_archive_size; - mz_uint64 m_central_directory_file_ofs; - mz_uint m_total_files; - mz_zip_mode m_zip_mode; - - mz_uint m_file_offset_alignment; - - mz_alloc_func m_pAlloc; - mz_free_func m_pFree; - mz_realloc_func m_pRealloc; - void *m_pAlloc_opaque; - - mz_file_read_func m_pRead; - mz_file_write_func m_pWrite; - void *m_pIO_opaque; - - mz_zip_internal_state *m_pState; - -} mz_zip_archive; - -typedef enum -{ - MZ_ZIP_FLAG_CASE_SENSITIVE = 0x0100, - MZ_ZIP_FLAG_IGNORE_PATH = 0x0200, - MZ_ZIP_FLAG_COMPRESSED_DATA = 0x0400, - MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY = 0x0800 -} mz_zip_flags; - -// ZIP archive reading - -// Inits a ZIP archive reader. -// These functions read and validate the archive's central directory. -MINIZ_STATIC mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size, mz_uint32 flags); -MINIZ_STATIC mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem, size_t size, mz_uint32 flags); - -#ifndef MINIZ_NO_STDIO -MINIZ_STATIC mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint32 flags); -#endif - -// Returns the total number of files in the archive. -MINIZ_STATIC mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip); - -// Returns detailed information about an archive file entry. -MINIZ_STATIC mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index, mz_zip_archive_file_stat *pStat); - -// Determines if an archive file entry is a directory entry. -MINIZ_STATIC mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip, mz_uint file_index); -MINIZ_STATIC mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip, mz_uint file_index); - -// Retrieves the filename of an archive file entry. -// Returns the number of bytes written to pFilename, or if filename_buf_size is 0 this function returns the number of bytes needed to fully store the filename. -MINIZ_STATIC mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_index, char *pFilename, mz_uint filename_buf_size); - -// Attempts to locates a file in the archive's central directory. -// Valid flags: MZ_ZIP_FLAG_CASE_SENSITIVE, MZ_ZIP_FLAG_IGNORE_PATH -// Returns -1 if the file cannot be found. -MINIZ_STATIC int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags); - -// Extracts a archive file to a memory buffer using no memory allocation. -MINIZ_STATIC mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size); -MINIZ_STATIC mz_bool mz_zip_reader_extract_file_to_mem_no_alloc(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size); - -// Extracts a archive file to a memory buffer. -MINIZ_STATIC mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags); -MINIZ_STATIC mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags); - -// Extracts a archive file to a dynamically allocated heap buffer. -MINIZ_STATIC void *mz_zip_reader_extract_to_heap(mz_zip_archive *pZip, mz_uint file_index, size_t *pSize, mz_uint flags); -MINIZ_STATIC void *mz_zip_reader_extract_file_to_heap(mz_zip_archive *pZip, const char *pFilename, size_t *pSize, mz_uint flags); - -// Extracts a archive file using a callback function to output the file's data. -MINIZ_STATIC mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip, mz_uint file_index, mz_file_write_func pCallback, void *pOpaque, mz_uint flags); -MINIZ_STATIC mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip, const char *pFilename, mz_file_write_func pCallback, void *pOpaque, mz_uint flags); - -#ifndef MINIZ_NO_STDIO -// Extracts a archive file to a disk file and sets its last accessed and modified times. -// This function only extracts files, not archive directory records. -MINIZ_STATIC mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file_index, const char *pDst_filename, mz_uint flags); -MINIZ_STATIC mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip, const char *pArchive_filename, const char *pDst_filename, mz_uint flags); -#endif - -// Ends archive reading, freeing all allocations, and closing the input archive file if mz_zip_reader_init_file() was used. -MINIZ_STATIC mz_bool mz_zip_reader_end(mz_zip_archive *pZip); - -// ZIP archive writing - -#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS - -// Inits a ZIP archive writer. -MINIZ_STATIC mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size); -MINIZ_STATIC mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_t initial_allocation_size); - -#ifndef MINIZ_NO_STDIO -MINIZ_STATIC mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_reserve_at_beginning); -#endif - -// Converts a ZIP archive reader object into a writer object, to allow efficient in-place file appends to occur on an existing archive. -// For archives opened using mz_zip_reader_init_file, pFilename must be the archive's filename so it can be reopened for writing. If the file can't be reopened, mz_zip_reader_end() will be called. -// For archives opened using mz_zip_reader_init_mem, the memory block must be growable using the realloc callback (which defaults to realloc unless you've overridden it). -// Finally, for archives opened using mz_zip_reader_init, the mz_zip_archive's user provided m_pWrite function cannot be NULL. -// Note: In-place archive modification is not recommended unless you know what you're doing, because if execution stops or something goes wrong before -// the archive is finalized the file's central directory will be hosed. -MINIZ_STATIC mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip, const char *pFilename); - -// Adds the contents of a memory buffer to an archive. These functions record the current local time into the archive. -// To add a directory entry, call this method with an archive name ending in a forwardslash with empty buffer. -// level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION. -MINIZ_STATIC mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, mz_uint level_and_flags); -MINIZ_STATIC mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, mz_uint64 uncomp_size, mz_uint32 uncomp_crc32); - -#ifndef MINIZ_NO_STDIO -// Adds the contents of a disk file to an archive. This function also records the disk file's modified time into the archive. -// level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION. -MINIZ_STATIC mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name, const char *pSrc_filename, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags); -#endif - -// Adds a file to an archive by fully cloning the data from another archive. -// This function fully clones the source file's compressed data (no recompression), along with its full filename, extra data, and comment fields. -MINIZ_STATIC mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip, mz_zip_archive *pSource_zip, mz_uint file_index); - -// Finalizes the archive by writing the central directory records followed by the end of central directory record. -// After an archive is finalized, the only valid call on the mz_zip_archive struct is mz_zip_writer_end(). -// An archive must be manually finalized by calling this function for it to be valid. -MINIZ_STATIC mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip); -MINIZ_STATIC mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void **pBuf, size_t *pSize); - -// Ends archive writing, freeing all allocations, and closing the output file if mz_zip_writer_init_file() was used. -// Note for the archive to be valid, it must have been finalized before ending. -MINIZ_STATIC mz_bool mz_zip_writer_end(mz_zip_archive *pZip); - -// Misc. high-level helper functions: - -// mz_zip_add_mem_to_archive_file_in_place() efficiently (but not atomically) appends a memory blob to a ZIP archive. -// level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION. -MINIZ_STATIC mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags); - -// Reads a single file from an archive into a heap block. -// Returns NULL on failure. -MINIZ_STATIC void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name, size_t *pSize, mz_uint zip_flags); - -#endif // #ifndef MINIZ_NO_ARCHIVE_WRITING_APIS - -#endif // #ifndef MINIZ_NO_ARCHIVE_APIS - -// ------------------- Low-level Decompression API Definitions - -// Decompression flags used by tinfl_decompress(). -// TINFL_FLAG_PARSE_ZLIB_HEADER: If set, the input has a valid zlib header and ends with an adler32 checksum (it's a valid zlib stream). Otherwise, the input is a raw deflate stream. -// TINFL_FLAG_HAS_MORE_INPUT: If set, there are more input bytes available beyond the end of the supplied input buffer. If clear, the input buffer contains all remaining input. -// TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF: If set, the output buffer is large enough to hold the entire decompressed stream. If clear, the output buffer is at least the size of the dictionary (typically 32KB). -// TINFL_FLAG_COMPUTE_ADLER32: Force adler-32 checksum computation of the decompressed bytes. -enum -{ - TINFL_FLAG_PARSE_ZLIB_HEADER = 1, - TINFL_FLAG_HAS_MORE_INPUT = 2, - TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF = 4, - TINFL_FLAG_COMPUTE_ADLER32 = 8 -}; - -// High level decompression functions: -// tinfl_decompress_mem_to_heap() decompresses a block in memory to a heap block allocated via malloc(). -// On entry: -// pSrc_buf, src_buf_len: Pointer and size of the Deflate or zlib source data to decompress. -// On return: -// Function returns a pointer to the decompressed data, or NULL on failure. -// *pOut_len will be set to the decompressed data's size, which could be larger than src_buf_len on uncompressible data. -// The caller must call mz_free() on the returned block when it's no longer needed. -MINIZ_STATIC void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags); - -// tinfl_decompress_mem_to_mem() decompresses a block in memory to another block in memory. -// Returns TINFL_DECOMPRESS_MEM_TO_MEM_FAILED on failure, or the number of bytes written on success. -#define TINFL_DECOMPRESS_MEM_TO_MEM_FAILED ((size_t)(-1)) -MINIZ_STATIC size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags); - -// tinfl_decompress_mem_to_callback() decompresses a block in memory to an internal 32KB buffer, and a user provided callback function will be called to flush the buffer. -// Returns 1 on success or 0 on failure. -typedef int (*tinfl_put_buf_func_ptr)(const void* pBuf, int len, void *pUser); -MINIZ_STATIC int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size, tinfl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags); - -struct tinfl_decompressor_tag; typedef struct tinfl_decompressor_tag tinfl_decompressor; - -// Max size of LZ dictionary. -#define TINFL_LZ_DICT_SIZE 32768 - -// Return status. -typedef enum -{ - TINFL_STATUS_BAD_PARAM = -3, - TINFL_STATUS_ADLER32_MISMATCH = -2, - TINFL_STATUS_FAILED = -1, - TINFL_STATUS_DONE = 0, - TINFL_STATUS_NEEDS_MORE_INPUT = 1, - TINFL_STATUS_HAS_MORE_OUTPUT = 2 -} tinfl_status; - -// Initializes the decompressor to its initial state. -#define tinfl_init(r) do { (r)->m_state = 0; } MZ_MACRO_END -#define tinfl_get_adler32(r) (r)->m_check_adler32 - -// Main low-level decompressor coroutine function. This is the only function actually needed for decompression. All the other functions are just high-level helpers for improved usability. -// This is a universal API, i.e. it can be used as a building block to build any desired higher level decompression API. In the limit case, it can be called once per every byte input or output. -MINIZ_STATIC tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size, mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size, const mz_uint32 decomp_flags); - -// Internal/private bits follow. -enum -{ - TINFL_MAX_HUFF_TABLES = 3, TINFL_MAX_HUFF_SYMBOLS_0 = 288, TINFL_MAX_HUFF_SYMBOLS_1 = 32, TINFL_MAX_HUFF_SYMBOLS_2 = 19, - TINFL_FAST_LOOKUP_BITS = 10, TINFL_FAST_LOOKUP_SIZE = 1 << TINFL_FAST_LOOKUP_BITS -}; - -typedef struct -{ - mz_uint8 m_code_size[TINFL_MAX_HUFF_SYMBOLS_0]; - mz_int16 m_look_up[TINFL_FAST_LOOKUP_SIZE], m_tree[TINFL_MAX_HUFF_SYMBOLS_0 * 2]; -} tinfl_huff_table; - -#if MINIZ_HAS_64BIT_REGISTERS - #define TINFL_USE_64BIT_BITBUF 1 -#endif - -#if TINFL_USE_64BIT_BITBUF - typedef mz_uint64 tinfl_bit_buf_t; - #define TINFL_BITBUF_SIZE (64) -#else - typedef mz_uint32 tinfl_bit_buf_t; - #define TINFL_BITBUF_SIZE (32) -#endif - -struct tinfl_decompressor_tag -{ - mz_uint32 m_state, m_num_bits, m_zhdr0, m_zhdr1, m_z_adler32, m_final, m_type, m_check_adler32, m_dist, m_counter, m_num_extra, m_table_sizes[TINFL_MAX_HUFF_TABLES]; - tinfl_bit_buf_t m_bit_buf; - size_t m_dist_from_out_buf_start; - tinfl_huff_table m_tables[TINFL_MAX_HUFF_TABLES]; - mz_uint8 m_raw_header[4], m_len_codes[TINFL_MAX_HUFF_SYMBOLS_0 + TINFL_MAX_HUFF_SYMBOLS_1 + 137]; -}; - -// ------------------- Low-level Compression API Definitions - -// Set TDEFL_LESS_MEMORY to 1 to use less memory (compression will be slightly slower, and raw/dynamic blocks will be output more frequently). -#define TDEFL_LESS_MEMORY 0 - -// tdefl_init() compression flags logically OR'd together (low 12 bits contain the max. number of probes per dictionary search): -// TDEFL_DEFAULT_MAX_PROBES: The compressor defaults to 128 dictionary probes per dictionary search. 0=Huffman only, 1=Huffman+LZ (fastest/crap compression), 4095=Huffman+LZ (slowest/best compression). -enum -{ - TDEFL_HUFFMAN_ONLY = 0, TDEFL_DEFAULT_MAX_PROBES = 128, TDEFL_MAX_PROBES_MASK = 0xFFF -}; - -// TDEFL_WRITE_ZLIB_HEADER: If set, the compressor outputs a zlib header before the deflate data, and the Adler-32 of the source data at the end. Otherwise, you'll get raw deflate data. -// TDEFL_COMPUTE_ADLER32: Always compute the adler-32 of the input data (even when not writing zlib headers). -// TDEFL_GREEDY_PARSING_FLAG: Set to use faster greedy parsing, instead of more efficient lazy parsing. -// TDEFL_NONDETERMINISTIC_PARSING_FLAG: Enable to decrease the compressor's initialization time to the minimum, but the output may vary from run to run given the same input (depending on the contents of memory). -// TDEFL_RLE_MATCHES: Only look for RLE matches (matches with a distance of 1) -// TDEFL_FILTER_MATCHES: Discards matches <= 5 chars if enabled. -// TDEFL_FORCE_ALL_STATIC_BLOCKS: Disable usage of optimized Huffman tables. -// TDEFL_FORCE_ALL_RAW_BLOCKS: Only use raw (uncompressed) deflate blocks. -// The low 12 bits are reserved to control the max # of hash probes per dictionary lookup (see TDEFL_MAX_PROBES_MASK). -enum -{ - TDEFL_WRITE_ZLIB_HEADER = 0x01000, - TDEFL_COMPUTE_ADLER32 = 0x02000, - TDEFL_GREEDY_PARSING_FLAG = 0x04000, - TDEFL_NONDETERMINISTIC_PARSING_FLAG = 0x08000, - TDEFL_RLE_MATCHES = 0x10000, - TDEFL_FILTER_MATCHES = 0x20000, - TDEFL_FORCE_ALL_STATIC_BLOCKS = 0x40000, - TDEFL_FORCE_ALL_RAW_BLOCKS = 0x80000 -}; - -// High level compression functions: -// tdefl_compress_mem_to_heap() compresses a block in memory to a heap block allocated via malloc(). -// On entry: -// pSrc_buf, src_buf_len: Pointer and size of source block to compress. -// flags: The max match finder probes (default is 128) logically OR'd against the above flags. Higher probes are slower but improve compression. -// On return: -// Function returns a pointer to the compressed data, or NULL on failure. -// *pOut_len will be set to the compressed data's size, which could be larger than src_buf_len on uncompressible data. -// The caller must free() the returned block when it's no longer needed. -MINIZ_STATIC void *tdefl_compress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags); - -// tdefl_compress_mem_to_mem() compresses a block in memory to another block in memory. -// Returns 0 on failure. -MINIZ_STATIC size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags); - -// Compresses an image to a compressed PNG file in memory. -// On entry: -// pImage, w, h, and num_chans describe the image to compress. num_chans may be 1, 2, 3, or 4. -// The image pitch in bytes per scanline will be w*num_chans. The leftmost pixel on the top scanline is stored first in memory. -// level may range from [0,10], use MZ_NO_COMPRESSION, MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc. or a decent default is MZ_DEFAULT_LEVEL -// If flip is true, the image will be flipped on the Y axis (useful for OpenGL apps). -// On return: -// Function returns a pointer to the compressed data, or NULL on failure. -// *pLen_out will be set to the size of the PNG image file. -// The caller must mz_free() the returned heap block (which will typically be larger than *pLen_out) when it's no longer needed. -MINIZ_STATIC void *tdefl_write_image_to_png_file_in_memory_ex(const void *pImage, int w, int h, int num_chans, int bpl, size_t *pLen_out, mz_uint level, mz_bool flip); -MINIZ_STATIC void *tdefl_write_image_to_png_file_in_memory(const void *pImage, int w, int h, int num_chans, int bpl, size_t *pLen_out); - -// Output stream interface. The compressor uses this interface to write compressed data. It'll typically be called TDEFL_OUT_BUF_SIZE at a time. -typedef mz_bool (*tdefl_put_buf_func_ptr)(const void* pBuf, int len, void *pUser); - -// tdefl_compress_mem_to_output() compresses a block to an output stream. The above helpers use this function internally. -MINIZ_STATIC mz_bool tdefl_compress_mem_to_output(const void *pBuf, size_t buf_len, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags); - -enum { TDEFL_MAX_HUFF_TABLES = 3, TDEFL_MAX_HUFF_SYMBOLS_0 = 288, TDEFL_MAX_HUFF_SYMBOLS_1 = 32, TDEFL_MAX_HUFF_SYMBOLS_2 = 19, TDEFL_LZ_DICT_SIZE = 32768, TDEFL_LZ_DICT_SIZE_MASK = TDEFL_LZ_DICT_SIZE - 1, TDEFL_MIN_MATCH_LEN = 3, TDEFL_MAX_MATCH_LEN = 258 }; - -// TDEFL_OUT_BUF_SIZE MUST be large enough to hold a single entire compressed output block (using static/fixed Huffman codes). -#if TDEFL_LESS_MEMORY -enum { TDEFL_LZ_CODE_BUF_SIZE = 24 * 1024, TDEFL_OUT_BUF_SIZE = (TDEFL_LZ_CODE_BUF_SIZE * 13 ) / 10, TDEFL_MAX_HUFF_SYMBOLS = 288, TDEFL_LZ_HASH_BITS = 12, TDEFL_LEVEL1_HASH_SIZE_MASK = 4095, TDEFL_LZ_HASH_SHIFT = (TDEFL_LZ_HASH_BITS + 2) / 3, TDEFL_LZ_HASH_SIZE = 1 << TDEFL_LZ_HASH_BITS }; -#else -enum { TDEFL_LZ_CODE_BUF_SIZE = 64 * 1024, TDEFL_OUT_BUF_SIZE = (TDEFL_LZ_CODE_BUF_SIZE * 13 ) / 10, TDEFL_MAX_HUFF_SYMBOLS = 288, TDEFL_LZ_HASH_BITS = 15, TDEFL_LEVEL1_HASH_SIZE_MASK = 4095, TDEFL_LZ_HASH_SHIFT = (TDEFL_LZ_HASH_BITS + 2) / 3, TDEFL_LZ_HASH_SIZE = 1 << TDEFL_LZ_HASH_BITS }; -#endif - -// The low-level tdefl functions below may be used directly if the above helper functions aren't flexible enough. The low-level functions don't make any heap allocations, unlike the above helper functions. -typedef enum -{ - TDEFL_STATUS_BAD_PARAM = -2, - TDEFL_STATUS_PUT_BUF_FAILED = -1, - TDEFL_STATUS_OKAY = 0, - TDEFL_STATUS_DONE = 1, -} tdefl_status; - -// Must map to MZ_NO_FLUSH, MZ_SYNC_FLUSH, etc. enums -typedef enum -{ - TDEFL_NO_FLUSH = 0, - TDEFL_SYNC_FLUSH = 2, - TDEFL_FULL_FLUSH = 3, - TDEFL_FINISH = 4 -} tdefl_flush; - -// tdefl's compression state structure. -typedef struct -{ - tdefl_put_buf_func_ptr m_pPut_buf_func; - void *m_pPut_buf_user; - mz_uint m_flags, m_max_probes[2]; - int m_greedy_parsing; - mz_uint m_adler32, m_lookahead_pos, m_lookahead_size, m_dict_size; - mz_uint8 *m_pLZ_code_buf, *m_pLZ_flags, *m_pOutput_buf, *m_pOutput_buf_end; - mz_uint m_num_flags_left, m_total_lz_bytes, m_lz_code_buf_dict_pos, m_bits_in, m_bit_buffer; - mz_uint m_saved_match_dist, m_saved_match_len, m_saved_lit, m_output_flush_ofs, m_output_flush_remaining, m_finished, m_block_index, m_wants_to_finish; - tdefl_status m_prev_return_status; - const void *m_pIn_buf; - void *m_pOut_buf; - size_t *m_pIn_buf_size, *m_pOut_buf_size; - tdefl_flush m_flush; - const mz_uint8 *m_pSrc; - size_t m_src_buf_left, m_out_buf_ofs; - mz_uint8 m_dict[TDEFL_LZ_DICT_SIZE + TDEFL_MAX_MATCH_LEN - 1]; - mz_uint16 m_huff_count[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS]; - mz_uint16 m_huff_codes[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS]; - mz_uint8 m_huff_code_sizes[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS]; - mz_uint8 m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE]; - mz_uint16 m_next[TDEFL_LZ_DICT_SIZE]; - mz_uint16 m_hash[TDEFL_LZ_HASH_SIZE]; - mz_uint8 m_output_buf[TDEFL_OUT_BUF_SIZE]; -} tdefl_compressor; - -// Initializes the compressor. -// There is no corresponding deinit() function because the tdefl API's do not dynamically allocate memory. -// pBut_buf_func: If NULL, output data will be supplied to the specified callback. In this case, the user should call the tdefl_compress_buffer() API for compression. -// If pBut_buf_func is NULL the user should always call the tdefl_compress() API. -// flags: See the above enums (TDEFL_HUFFMAN_ONLY, TDEFL_WRITE_ZLIB_HEADER, etc.) -MINIZ_STATIC tdefl_status tdefl_init(tdefl_compressor *d, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags); - -// Compresses a block of data, consuming as much of the specified input buffer as possible, and writing as much compressed data to the specified output buffer as possible. -MINIZ_STATIC tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf, size_t *pIn_buf_size, void *pOut_buf, size_t *pOut_buf_size, tdefl_flush flush); - -// tdefl_compress_buffer() is only usable when the tdefl_init() is called with a non-NULL tdefl_put_buf_func_ptr. -// tdefl_compress_buffer() always consumes the entire input buffer. -MINIZ_STATIC tdefl_status tdefl_compress_buffer(tdefl_compressor *d, const void *pIn_buf, size_t in_buf_size, tdefl_flush flush); - -MINIZ_STATIC tdefl_status tdefl_get_prev_return_status(tdefl_compressor *d); -MINIZ_STATIC mz_uint32 tdefl_get_adler32(tdefl_compressor *d); - -// Can't use tdefl_create_comp_flags_from_zip_params if MINIZ_NO_ZLIB_APIS isn't defined, because it uses some of its macros. -#ifndef MINIZ_NO_ZLIB_APIS -// Create tdefl_compress() flags given zlib-style compression parameters. -// level may range from [0,10] (where 10 is absolute max compression, but may be much slower on some files) -// window_bits may be -15 (raw deflate) or 15 (zlib) -// strategy may be either MZ_DEFAULT_STRATEGY, MZ_FILTERED, MZ_HUFFMAN_ONLY, MZ_RLE, or MZ_FIXED -MINIZ_STATIC mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy); -#endif // #ifndef MINIZ_NO_ZLIB_APIS - -#ifdef __cplusplus -} -#endif - -#endif // MINIZ_HEADER_INCLUDED - -// ------------------- End of Header: Implementation follows. (If you only want the header, define MINIZ_HEADER_FILE_ONLY.) - -#ifndef MINIZ_HEADER_FILE_ONLY - -typedef unsigned char mz_validate_uint16[sizeof(mz_uint16)==2 ? 1 : -1]; -typedef unsigned char mz_validate_uint32[sizeof(mz_uint32)==4 ? 1 : -1]; -typedef unsigned char mz_validate_uint64[sizeof(mz_uint64)==8 ? 1 : -1]; - -/*#include */ - -#ifndef MZ_ASSERT -#include -#define MZ_ASSERT(x) assert(x) -#endif - -#ifdef MINIZ_NO_MALLOC - #define MZ_MALLOC(x) NULL - #define MZ_FREE(x) (void)x, ((void)0) - #define MZ_REALLOC(p, x) NULL -#elif defined(MINIZ_SDL_MALLOC) - #define MZ_MALLOC(x) SDL_malloc(x) - #define MZ_FREE(x) SDL_free(x) - #define MZ_REALLOC(p, x) SDL_realloc(p, x) -#else - #define MZ_MALLOC(x) malloc(x) - #define MZ_FREE(x) free(x) - #define MZ_REALLOC(p, x) realloc(p, x) -#endif - -#define MZ_MAX(a,b) (((a)>(b))?(a):(b)) -#define MZ_MIN(a,b) (((a)<(b))?(a):(b)) -#define MZ_CLEAR_OBJ(obj) memset(&(obj), 0, sizeof(obj)) - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN - #define MZ_READ_LE16(p) *((const mz_uint16 *)(p)) - #define MZ_READ_LE32(p) *((const mz_uint32 *)(p)) -#else - #define MZ_READ_LE16(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U)) - #define MZ_READ_LE32(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U) | ((mz_uint32)(((const mz_uint8 *)(p))[2]) << 16U) | ((mz_uint32)(((const mz_uint8 *)(p))[3]) << 24U)) -#endif - -#ifdef _MSC_VER - #define MZ_FORCEINLINE __forceinline -#elif defined(__GNUC__) - #define MZ_FORCEINLINE inline __attribute__((__always_inline__)) -#else - #define MZ_FORCEINLINE inline -#endif - -#ifdef __cplusplus - extern "C" { -#endif - -// ------------------- zlib-style API's - -mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len) -{ - mz_uint32 i, s1 = (mz_uint32)(adler & 0xffff), s2 = (mz_uint32)(adler >> 16); size_t block_len = buf_len % 5552; - if (!ptr) return MZ_ADLER32_INIT; - while (buf_len) { - for (i = 0; i + 7 < block_len; i += 8, ptr += 8) { - s1 += ptr[0], s2 += s1; s1 += ptr[1], s2 += s1; s1 += ptr[2], s2 += s1; s1 += ptr[3], s2 += s1; - s1 += ptr[4], s2 += s1; s1 += ptr[5], s2 += s1; s1 += ptr[6], s2 += s1; s1 += ptr[7], s2 += s1; - } - for ( ; i < block_len; ++i) s1 += *ptr++, s2 += s1; - s1 %= 65521U, s2 %= 65521U; buf_len -= block_len; block_len = 5552; - } - return (s2 << 16) + s1; -} - -// Karl Malbrain's compact CRC-32. See "A compact CCITT crc16 and crc32 C implementation that balances processor cache usage against speed": http://www.geocities.com/malbrain/ -mz_ulong mz_crc32(mz_ulong crc, const mz_uint8 *ptr, size_t buf_len) -{ - static const mz_uint32 s_crc32[16] = { 0, 0x1db71064, 0x3b6e20c8, 0x26d930ac, 0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c, - 0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c, 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c }; - mz_uint32 crcu32 = (mz_uint32)crc; - if (!ptr) return MZ_CRC32_INIT; - crcu32 = ~crcu32; while (buf_len--) { mz_uint8 b = *ptr++; crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b & 0xF)]; crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b >> 4)]; } - return ~crcu32; -} - -MINIZ_STATIC void mz_free(void *p) -{ - MZ_FREE(p); -} - -#ifndef MINIZ_NO_ZLIB_APIS - -static void *def_alloc_func(void *opaque, size_t items, size_t size) { (void)opaque, (void)items, (void)size; return MZ_MALLOC(items * size); } -static void def_free_func(void *opaque, void *address) { (void)opaque, (void)address; MZ_FREE(address); } -static void *def_realloc_func(void *opaque, void *address, size_t items, size_t size) { (void)opaque, (void)address, (void)items, (void)size; return MZ_REALLOC(address, items * size); } - -const char *mz_version(void) -{ - return MZ_VERSION; -} - -int mz_deflateInit(mz_streamp pStream, int level) -{ - return mz_deflateInit2(pStream, level, MZ_DEFLATED, MZ_DEFAULT_WINDOW_BITS, 9, MZ_DEFAULT_STRATEGY); -} - -int mz_deflateInit2(mz_streamp pStream, int level, int method, int window_bits, int mem_level, int strategy) -{ - tdefl_compressor *pComp; - mz_uint comp_flags = TDEFL_COMPUTE_ADLER32 | tdefl_create_comp_flags_from_zip_params(level, window_bits, strategy); - - if (!pStream) return MZ_STREAM_ERROR; - if ((method != MZ_DEFLATED) || ((mem_level < 1) || (mem_level > 9)) || ((window_bits != MZ_DEFAULT_WINDOW_BITS) && (-window_bits != MZ_DEFAULT_WINDOW_BITS))) return MZ_PARAM_ERROR; - - pStream->data_type = 0; - pStream->adler = MZ_ADLER32_INIT; - pStream->msg = NULL; - pStream->reserved = 0; - pStream->total_in = 0; - pStream->total_out = 0; - if (!pStream->zalloc) pStream->zalloc = def_alloc_func; - if (!pStream->zfree) pStream->zfree = def_free_func; - - pComp = (tdefl_compressor *)pStream->zalloc(pStream->opaque, 1, sizeof(tdefl_compressor)); - if (!pComp) - return MZ_MEM_ERROR; - - pStream->state = (struct mz_internal_state *)pComp; - - if (tdefl_init(pComp, NULL, NULL, comp_flags) != TDEFL_STATUS_OKAY) - { - mz_deflateEnd(pStream); - return MZ_PARAM_ERROR; - } - - return MZ_OK; -} - -int mz_deflateReset(mz_streamp pStream) -{ - if ((!pStream) || (!pStream->state) || (!pStream->zalloc) || (!pStream->zfree)) return MZ_STREAM_ERROR; - pStream->total_in = pStream->total_out = 0; - tdefl_init((tdefl_compressor*)pStream->state, NULL, NULL, ((tdefl_compressor*)pStream->state)->m_flags); - return MZ_OK; -} - -int mz_deflate(mz_streamp pStream, int flush) -{ - size_t in_bytes, out_bytes; - mz_ulong orig_total_in, orig_total_out; - int mz_status = MZ_OK; - - if ((!pStream) || (!pStream->state) || (flush < 0) || (flush > MZ_FINISH) || (!pStream->next_out)) return MZ_STREAM_ERROR; - if (!pStream->avail_out) return MZ_BUF_ERROR; - - if (flush == MZ_PARTIAL_FLUSH) flush = MZ_SYNC_FLUSH; - - if (((tdefl_compressor*)pStream->state)->m_prev_return_status == TDEFL_STATUS_DONE) - return (flush == MZ_FINISH) ? MZ_STREAM_END : MZ_BUF_ERROR; - - orig_total_in = pStream->total_in; orig_total_out = pStream->total_out; - for ( ; ; ) - { - tdefl_status defl_status; - in_bytes = pStream->avail_in; out_bytes = pStream->avail_out; - - defl_status = tdefl_compress((tdefl_compressor*)pStream->state, pStream->next_in, &in_bytes, pStream->next_out, &out_bytes, (tdefl_flush)flush); - pStream->next_in += (mz_uint)in_bytes; pStream->avail_in -= (mz_uint)in_bytes; - pStream->total_in += (mz_uint)in_bytes; pStream->adler = tdefl_get_adler32((tdefl_compressor*)pStream->state); - - pStream->next_out += (mz_uint)out_bytes; pStream->avail_out -= (mz_uint)out_bytes; - pStream->total_out += (mz_uint)out_bytes; - - if (defl_status < 0) - { - mz_status = MZ_STREAM_ERROR; - break; - } - else if (defl_status == TDEFL_STATUS_DONE) - { - mz_status = MZ_STREAM_END; - break; - } - else if (!pStream->avail_out) - break; - else if ((!pStream->avail_in) && (flush != MZ_FINISH)) - { - if ((flush) || (pStream->total_in != orig_total_in) || (pStream->total_out != orig_total_out)) - break; - return MZ_BUF_ERROR; // Can't make forward progress without some input. - } - } - return mz_status; -} - -int mz_deflateEnd(mz_streamp pStream) -{ - if (!pStream) return MZ_STREAM_ERROR; - if (pStream->state) - { - pStream->zfree(pStream->opaque, pStream->state); - pStream->state = NULL; - } - return MZ_OK; -} - -mz_ulong mz_deflateBound(mz_streamp pStream, mz_ulong source_len) -{ - (void)pStream; - // This is really over conservative. (And lame, but it's actually pretty tricky to compute a true upper bound given the way tdefl's blocking works.) - return MZ_MAX(128 + (source_len * 110) / 100, 128 + source_len + ((source_len / (31 * 1024)) + 1) * 5); -} - -int mz_compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len, int level) -{ - int status; - mz_stream stream; - memset(&stream, 0, sizeof(stream)); - - // In case mz_ulong is 64-bits (argh I hate longs). - if ((source_len | *pDest_len) > 0xFFFFFFFFU) return MZ_PARAM_ERROR; - - stream.next_in = pSource; - stream.avail_in = (mz_uint32)source_len; - stream.next_out = pDest; - stream.avail_out = (mz_uint32)*pDest_len; - - status = mz_deflateInit(&stream, level); - if (status != MZ_OK) return status; - - status = mz_deflate(&stream, MZ_FINISH); - if (status != MZ_STREAM_END) - { - mz_deflateEnd(&stream); - return (status == MZ_OK) ? MZ_BUF_ERROR : status; - } - - *pDest_len = stream.total_out; - return mz_deflateEnd(&stream); -} - -int mz_compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len) -{ - return mz_compress2(pDest, pDest_len, pSource, source_len, MZ_DEFAULT_COMPRESSION); -} - -mz_ulong mz_compressBound(mz_ulong source_len) -{ - return mz_deflateBound(NULL, source_len); -} - -typedef struct -{ - tinfl_decompressor m_decomp; - mz_uint m_dict_ofs, m_dict_avail, m_first_call, m_has_flushed; int m_window_bits; - mz_uint8 m_dict[TINFL_LZ_DICT_SIZE]; - tinfl_status m_last_status; -} inflate_state; - -int mz_inflateInit2(mz_streamp pStream, int window_bits) -{ - inflate_state *pDecomp; - if (!pStream) return MZ_STREAM_ERROR; - if ((window_bits != MZ_DEFAULT_WINDOW_BITS) && (-window_bits != MZ_DEFAULT_WINDOW_BITS)) return MZ_PARAM_ERROR; - - pStream->data_type = 0; - pStream->adler = 0; - pStream->msg = NULL; - pStream->total_in = 0; - pStream->total_out = 0; - pStream->reserved = 0; - if (!pStream->zalloc) pStream->zalloc = def_alloc_func; - if (!pStream->zfree) pStream->zfree = def_free_func; - - pDecomp = (inflate_state*)pStream->zalloc(pStream->opaque, 1, sizeof(inflate_state)); - if (!pDecomp) return MZ_MEM_ERROR; - - pStream->state = (struct mz_internal_state *)pDecomp; - - tinfl_init(&pDecomp->m_decomp); - pDecomp->m_dict_ofs = 0; - pDecomp->m_dict_avail = 0; - pDecomp->m_last_status = TINFL_STATUS_NEEDS_MORE_INPUT; - pDecomp->m_first_call = 1; - pDecomp->m_has_flushed = 0; - pDecomp->m_window_bits = window_bits; - - return MZ_OK; -} - -int mz_inflateInit(mz_streamp pStream) -{ - return mz_inflateInit2(pStream, MZ_DEFAULT_WINDOW_BITS); -} - -int mz_inflate(mz_streamp pStream, int flush) -{ - inflate_state* pState; - mz_uint n, first_call, decomp_flags = TINFL_FLAG_COMPUTE_ADLER32; - size_t in_bytes, out_bytes, orig_avail_in; - tinfl_status status; - - if ((!pStream) || (!pStream->state)) return MZ_STREAM_ERROR; - if (flush == MZ_PARTIAL_FLUSH) flush = MZ_SYNC_FLUSH; - if ((flush) && (flush != MZ_SYNC_FLUSH) && (flush != MZ_FINISH)) return MZ_STREAM_ERROR; - - pState = (inflate_state*)pStream->state; - if (pState->m_window_bits > 0) decomp_flags |= TINFL_FLAG_PARSE_ZLIB_HEADER; - orig_avail_in = pStream->avail_in; - - first_call = pState->m_first_call; pState->m_first_call = 0; - if (pState->m_last_status < 0) return MZ_DATA_ERROR; - - if (pState->m_has_flushed && (flush != MZ_FINISH)) return MZ_STREAM_ERROR; - pState->m_has_flushed |= (flush == MZ_FINISH); - - if ((flush == MZ_FINISH) && (first_call)) - { - // MZ_FINISH on the first call implies that the input and output buffers are large enough to hold the entire compressed/decompressed file. - decomp_flags |= TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF; - in_bytes = pStream->avail_in; out_bytes = pStream->avail_out; - status = tinfl_decompress(&pState->m_decomp, pStream->next_in, &in_bytes, pStream->next_out, pStream->next_out, &out_bytes, decomp_flags); - pState->m_last_status = status; - pStream->next_in += (mz_uint)in_bytes; pStream->avail_in -= (mz_uint)in_bytes; pStream->total_in += (mz_uint)in_bytes; - pStream->adler = tinfl_get_adler32(&pState->m_decomp); - pStream->next_out += (mz_uint)out_bytes; pStream->avail_out -= (mz_uint)out_bytes; pStream->total_out += (mz_uint)out_bytes; - - if (status < 0) - return MZ_DATA_ERROR; - else if (status != TINFL_STATUS_DONE) - { - pState->m_last_status = TINFL_STATUS_FAILED; - return MZ_BUF_ERROR; - } - return MZ_STREAM_END; - } - // flush != MZ_FINISH then we must assume there's more input. - if (flush != MZ_FINISH) decomp_flags |= TINFL_FLAG_HAS_MORE_INPUT; - - if (pState->m_dict_avail) - { - n = MZ_MIN(pState->m_dict_avail, pStream->avail_out); - memcpy(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n); - pStream->next_out += n; pStream->avail_out -= n; pStream->total_out += n; - pState->m_dict_avail -= n; pState->m_dict_ofs = (pState->m_dict_ofs + n) & (TINFL_LZ_DICT_SIZE - 1); - return ((pState->m_last_status == TINFL_STATUS_DONE) && (!pState->m_dict_avail)) ? MZ_STREAM_END : MZ_OK; - } - - for ( ; ; ) - { - in_bytes = pStream->avail_in; - out_bytes = TINFL_LZ_DICT_SIZE - pState->m_dict_ofs; - - status = tinfl_decompress(&pState->m_decomp, pStream->next_in, &in_bytes, pState->m_dict, pState->m_dict + pState->m_dict_ofs, &out_bytes, decomp_flags); - pState->m_last_status = status; - - pStream->next_in += (mz_uint)in_bytes; pStream->avail_in -= (mz_uint)in_bytes; - pStream->total_in += (mz_uint)in_bytes; pStream->adler = tinfl_get_adler32(&pState->m_decomp); - - pState->m_dict_avail = (mz_uint)out_bytes; - - n = MZ_MIN(pState->m_dict_avail, pStream->avail_out); - memcpy(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n); - pStream->next_out += n; pStream->avail_out -= n; pStream->total_out += n; - pState->m_dict_avail -= n; pState->m_dict_ofs = (pState->m_dict_ofs + n) & (TINFL_LZ_DICT_SIZE - 1); - - if (status < 0) - return MZ_DATA_ERROR; // Stream is corrupted (there could be some uncompressed data left in the output dictionary - oh well). - else if ((status == TINFL_STATUS_NEEDS_MORE_INPUT) && (!orig_avail_in)) - return MZ_BUF_ERROR; // Signal caller that we can't make forward progress without supplying more input or by setting flush to MZ_FINISH. - else if (flush == MZ_FINISH) - { - // The output buffer MUST be large to hold the remaining uncompressed data when flush==MZ_FINISH. - if (status == TINFL_STATUS_DONE) - return pState->m_dict_avail ? MZ_BUF_ERROR : MZ_STREAM_END; - // status here must be TINFL_STATUS_HAS_MORE_OUTPUT, which means there's at least 1 more byte on the way. If there's no more room left in the output buffer then something is wrong. - else if (!pStream->avail_out) - return MZ_BUF_ERROR; - } - else if ((status == TINFL_STATUS_DONE) || (!pStream->avail_in) || (!pStream->avail_out) || (pState->m_dict_avail)) - break; - } - - return ((status == TINFL_STATUS_DONE) && (!pState->m_dict_avail)) ? MZ_STREAM_END : MZ_OK; -} - -int mz_inflateEnd(mz_streamp pStream) -{ - if (!pStream) - return MZ_STREAM_ERROR; - if (pStream->state) - { - pStream->zfree(pStream->opaque, pStream->state); - pStream->state = NULL; - } - return MZ_OK; -} - -int mz_uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len) -{ - mz_stream stream; - int status; - memset(&stream, 0, sizeof(stream)); - - // In case mz_ulong is 64-bits (argh I hate longs). - if ((source_len | *pDest_len) > 0xFFFFFFFFU) return MZ_PARAM_ERROR; - - stream.next_in = pSource; - stream.avail_in = (mz_uint32)source_len; - stream.next_out = pDest; - stream.avail_out = (mz_uint32)*pDest_len; - - status = mz_inflateInit(&stream); - if (status != MZ_OK) - return status; - - status = mz_inflate(&stream, MZ_FINISH); - if (status != MZ_STREAM_END) - { - mz_inflateEnd(&stream); - return ((status == MZ_BUF_ERROR) && (!stream.avail_in)) ? MZ_DATA_ERROR : status; - } - *pDest_len = stream.total_out; - - return mz_inflateEnd(&stream); -} - -const char *mz_error(int err) -{ - static struct { int m_err; const char *m_pDesc; } s_error_descs[] = - { - { MZ_OK, "" }, { MZ_STREAM_END, "stream end" }, { MZ_NEED_DICT, "need dictionary" }, { MZ_ERRNO, "file error" }, { MZ_STREAM_ERROR, "stream error" }, - { MZ_DATA_ERROR, "data error" }, { MZ_MEM_ERROR, "out of memory" }, { MZ_BUF_ERROR, "buf error" }, { MZ_VERSION_ERROR, "version error" }, { MZ_PARAM_ERROR, "parameter error" } - }; - mz_uint i; for (i = 0; i < sizeof(s_error_descs) / sizeof(s_error_descs[0]); ++i) if (s_error_descs[i].m_err == err) return s_error_descs[i].m_pDesc; - return NULL; -} - -#endif //MINIZ_NO_ZLIB_APIS - -// ------------------- Low-level Decompression (completely independent from all compression API's) - -#define TINFL_MEMCPY(d, s, l) memcpy(d, s, l) -#define TINFL_MEMSET(p, c, l) memset(p, c, l) - -#define TINFL_CR_BEGIN switch(r->m_state) { case 0: -#define TINFL_CR_RETURN(state_index, result) do { status = result; r->m_state = state_index; goto common_exit; case state_index:; } MZ_MACRO_END -#define TINFL_CR_RETURN_FOREVER(state_index, result) do { for ( ; ; ) { TINFL_CR_RETURN(state_index, result); } } MZ_MACRO_END -#define TINFL_CR_FINISH } - -// TODO: If the caller has indicated that there's no more input, and we attempt to read beyond the input buf, then something is wrong with the input because the inflator never -// reads ahead more than it needs to. Currently TINFL_GET_BYTE() pads the end of the stream with 0's in this scenario. -#define TINFL_GET_BYTE(state_index, c) do { \ - if (pIn_buf_cur >= pIn_buf_end) { \ - for ( ; ; ) { \ - if (decomp_flags & TINFL_FLAG_HAS_MORE_INPUT) { \ - TINFL_CR_RETURN(state_index, TINFL_STATUS_NEEDS_MORE_INPUT); \ - if (pIn_buf_cur < pIn_buf_end) { \ - c = *pIn_buf_cur++; \ - break; \ - } \ - } else { \ - c = 0; \ - break; \ - } \ - } \ - } else c = *pIn_buf_cur++; } MZ_MACRO_END - -#define TINFL_NEED_BITS(state_index, n) do { mz_uint c; TINFL_GET_BYTE(state_index, c); bit_buf |= (((tinfl_bit_buf_t)c) << num_bits); num_bits += 8; } while (num_bits < (mz_uint)(n)) -#define TINFL_SKIP_BITS(state_index, n) do { if (num_bits < (mz_uint)(n)) { TINFL_NEED_BITS(state_index, n); } bit_buf >>= (n); num_bits -= (n); } MZ_MACRO_END -#define TINFL_GET_BITS(state_index, b, n) do { if (num_bits < (mz_uint)(n)) { TINFL_NEED_BITS(state_index, n); } b = bit_buf & ((1 << (n)) - 1); bit_buf >>= (n); num_bits -= (n); } MZ_MACRO_END - -// TINFL_HUFF_BITBUF_FILL() is only used rarely, when the number of bytes remaining in the input buffer falls below 2. -// It reads just enough bytes from the input stream that are needed to decode the next Huffman code (and absolutely no more). It works by trying to fully decode a -// Huffman code by using whatever bits are currently present in the bit buffer. If this fails, it reads another byte, and tries again until it succeeds or until the -// bit buffer contains >=15 bits (deflate's max. Huffman code size). -#define TINFL_HUFF_BITBUF_FILL(state_index, pHuff) \ - do { \ - temp = (pHuff)->m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]; \ - if (temp >= 0) { \ - code_len = temp >> 9; \ - if ((code_len) && (num_bits >= code_len)) \ - break; \ - } else if (num_bits > TINFL_FAST_LOOKUP_BITS) { \ - code_len = TINFL_FAST_LOOKUP_BITS; \ - do { \ - temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; \ - } while ((temp < 0) && (num_bits >= (code_len + 1))); if (temp >= 0) break; \ - } TINFL_GET_BYTE(state_index, c); bit_buf |= (((tinfl_bit_buf_t)c) << num_bits); num_bits += 8; \ - } while (num_bits < 15); - -// TINFL_HUFF_DECODE() decodes the next Huffman coded symbol. It's more complex than you would initially expect because the zlib API expects the decompressor to never read -// beyond the final byte of the deflate stream. (In other words, when this macro wants to read another byte from the input, it REALLY needs another byte in order to fully -// decode the next Huffman code.) Handling this properly is particularly important on raw deflate (non-zlib) streams, which aren't followed by a byte aligned adler-32. -// The slow path is only executed at the very end of the input buffer. -#define TINFL_HUFF_DECODE(state_index, sym, pHuff) do { \ - int temp; mz_uint code_len, c; \ - if (num_bits < 15) { \ - if ((pIn_buf_end - pIn_buf_cur) < 2) { \ - TINFL_HUFF_BITBUF_FILL(state_index, pHuff); \ - } else { \ - bit_buf |= (((tinfl_bit_buf_t)pIn_buf_cur[0]) << num_bits) | (((tinfl_bit_buf_t)pIn_buf_cur[1]) << (num_bits + 8)); pIn_buf_cur += 2; num_bits += 16; \ - } \ - } \ - if ((temp = (pHuff)->m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) \ - code_len = temp >> 9, temp &= 511; \ - else { \ - code_len = TINFL_FAST_LOOKUP_BITS; do { temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; } while (temp < 0); \ - } sym = temp; bit_buf >>= code_len; num_bits -= code_len; } MZ_MACRO_END - -tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size, mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size, const mz_uint32 decomp_flags) -{ - static const int s_length_base[31] = { 3,4,5,6,7,8,9,10,11,13, 15,17,19,23,27,31,35,43,51,59, 67,83,99,115,131,163,195,227,258,0,0 }; - static const int s_length_extra[31]= { 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 }; - static const int s_dist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193, 257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0}; - static const int s_dist_extra[32] = { 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; - static const mz_uint8 s_length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 }; - static const int s_min_table_sizes[3] = { 257, 1, 4 }; - - tinfl_status status = TINFL_STATUS_FAILED; mz_uint32 num_bits, dist, counter, num_extra; tinfl_bit_buf_t bit_buf; - const mz_uint8 *pIn_buf_cur = pIn_buf_next, *const pIn_buf_end = pIn_buf_next + *pIn_buf_size; - mz_uint8 *pOut_buf_cur = pOut_buf_next, *const pOut_buf_end = pOut_buf_next + *pOut_buf_size; - size_t out_buf_size_mask = (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF) ? (size_t)-1 : ((pOut_buf_next - pOut_buf_start) + *pOut_buf_size) - 1, dist_from_out_buf_start; - - // Ensure the output buffer's size is a power of 2, unless the output buffer is large enough to hold the entire output file (in which case it doesn't matter). - if (((out_buf_size_mask + 1) & out_buf_size_mask) || (pOut_buf_next < pOut_buf_start)) { *pIn_buf_size = *pOut_buf_size = 0; return TINFL_STATUS_BAD_PARAM; } - - num_bits = r->m_num_bits; bit_buf = r->m_bit_buf; dist = r->m_dist; counter = r->m_counter; num_extra = r->m_num_extra; dist_from_out_buf_start = r->m_dist_from_out_buf_start; - TINFL_CR_BEGIN - - bit_buf = num_bits = dist = counter = num_extra = r->m_zhdr0 = r->m_zhdr1 = 0; r->m_z_adler32 = r->m_check_adler32 = 1; - if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) - { - TINFL_GET_BYTE(1, r->m_zhdr0); TINFL_GET_BYTE(2, r->m_zhdr1); - counter = (((r->m_zhdr0 * 256 + r->m_zhdr1) % 31 != 0) || (r->m_zhdr1 & 32) || ((r->m_zhdr0 & 15) != 8)); - if (!(decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)) counter |= (((1U << (8U + (r->m_zhdr0 >> 4))) > 32768U) || ((out_buf_size_mask + 1) < (size_t)(1U << (8U + (r->m_zhdr0 >> 4))))); - if (counter) { TINFL_CR_RETURN_FOREVER(36, TINFL_STATUS_FAILED); } - } - - do - { - TINFL_GET_BITS(3, r->m_final, 3); r->m_type = r->m_final >> 1; - if (r->m_type == 0) - { - TINFL_SKIP_BITS(5, num_bits & 7); - for (counter = 0; counter < 4; ++counter) { if (num_bits) TINFL_GET_BITS(6, r->m_raw_header[counter], 8); else TINFL_GET_BYTE(7, r->m_raw_header[counter]); } - if ((counter = (r->m_raw_header[0] | (r->m_raw_header[1] << 8))) != (mz_uint)(0xFFFF ^ (r->m_raw_header[2] | (r->m_raw_header[3] << 8)))) { TINFL_CR_RETURN_FOREVER(39, TINFL_STATUS_FAILED); } - while ((counter) && (num_bits)) - { - TINFL_GET_BITS(51, dist, 8); - while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(52, TINFL_STATUS_HAS_MORE_OUTPUT); } - *pOut_buf_cur++ = (mz_uint8)dist; - counter--; - } - while (counter) - { - size_t n; while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(9, TINFL_STATUS_HAS_MORE_OUTPUT); } - while (pIn_buf_cur >= pIn_buf_end) - { - if (decomp_flags & TINFL_FLAG_HAS_MORE_INPUT) - { - TINFL_CR_RETURN(38, TINFL_STATUS_NEEDS_MORE_INPUT); - } - else - { - TINFL_CR_RETURN_FOREVER(40, TINFL_STATUS_FAILED); - } - } - n = MZ_MIN(MZ_MIN((size_t)(pOut_buf_end - pOut_buf_cur), (size_t)(pIn_buf_end - pIn_buf_cur)), counter); - TINFL_MEMCPY(pOut_buf_cur, pIn_buf_cur, n); pIn_buf_cur += n; pOut_buf_cur += n; counter -= (mz_uint)n; - } - } - else if (r->m_type == 3) - { - TINFL_CR_RETURN_FOREVER(10, TINFL_STATUS_FAILED); - } - else - { - if (r->m_type == 1) - { - mz_uint8 *p = r->m_tables[0].m_code_size; mz_uint i; - r->m_table_sizes[0] = 288; r->m_table_sizes[1] = 32; TINFL_MEMSET(r->m_tables[1].m_code_size, 5, 32); - for ( i = 0; i <= 143; ++i) *p++ = 8; for ( ; i <= 255; ++i) *p++ = 9; for ( ; i <= 279; ++i) *p++ = 7; for ( ; i <= 287; ++i) *p++ = 8; - } - else - { - for (counter = 0; counter < 3; counter++) { TINFL_GET_BITS(11, r->m_table_sizes[counter], "\05\05\04"[counter]); r->m_table_sizes[counter] += s_min_table_sizes[counter]; } - MZ_CLEAR_OBJ(r->m_tables[2].m_code_size); for (counter = 0; counter < r->m_table_sizes[2]; counter++) { mz_uint s; TINFL_GET_BITS(14, s, 3); r->m_tables[2].m_code_size[s_length_dezigzag[counter]] = (mz_uint8)s; } - r->m_table_sizes[2] = 19; - } - for ( ; (int)r->m_type >= 0; r->m_type--) - { - int tree_next, tree_cur; tinfl_huff_table *pTable; - mz_uint i, j, used_syms, total, sym_index, next_code[17], total_syms[16]; pTable = &r->m_tables[r->m_type]; MZ_CLEAR_OBJ(total_syms); MZ_CLEAR_OBJ(pTable->m_look_up); MZ_CLEAR_OBJ(pTable->m_tree); - for (i = 0; i < r->m_table_sizes[r->m_type]; ++i) total_syms[pTable->m_code_size[i]]++; - used_syms = 0, total = 0; next_code[0] = next_code[1] = 0; - for (i = 1; i <= 15; ++i) { used_syms += total_syms[i]; next_code[i + 1] = (total = ((total + total_syms[i]) << 1)); } - if ((65536 != total) && (used_syms > 1)) - { - TINFL_CR_RETURN_FOREVER(35, TINFL_STATUS_FAILED); - } - for (tree_next = -1, sym_index = 0; sym_index < r->m_table_sizes[r->m_type]; ++sym_index) - { - mz_uint rev_code = 0, l, cur_code, code_size = pTable->m_code_size[sym_index]; if (!code_size) continue; - cur_code = next_code[code_size]++; for (l = code_size; l > 0; l--, cur_code >>= 1) rev_code = (rev_code << 1) | (cur_code & 1); - if (code_size <= TINFL_FAST_LOOKUP_BITS) { mz_int16 k = (mz_int16)((code_size << 9) | sym_index); while (rev_code < TINFL_FAST_LOOKUP_SIZE) { pTable->m_look_up[rev_code] = k; rev_code += (1 << code_size); } continue; } - if (0 == (tree_cur = pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)])) { pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)] = (mz_int16)tree_next; tree_cur = tree_next; tree_next -= 2; } - rev_code >>= (TINFL_FAST_LOOKUP_BITS - 1); - for (j = code_size; j > (TINFL_FAST_LOOKUP_BITS + 1); j--) - { - tree_cur -= ((rev_code >>= 1) & 1); - if (!pTable->m_tree[-tree_cur - 1]) { pTable->m_tree[-tree_cur - 1] = (mz_int16)tree_next; tree_cur = tree_next; tree_next -= 2; } else tree_cur = pTable->m_tree[-tree_cur - 1]; - } - tree_cur -= ((rev_code >>= 1) & 1); pTable->m_tree[-tree_cur - 1] = (mz_int16)sym_index; - } - if (r->m_type == 2) - { - for (counter = 0; counter < (r->m_table_sizes[0] + r->m_table_sizes[1]); ) - { - mz_uint s; TINFL_HUFF_DECODE(16, dist, &r->m_tables[2]); if (dist < 16) { r->m_len_codes[counter++] = (mz_uint8)dist; continue; } - if ((dist == 16) && (!counter)) - { - TINFL_CR_RETURN_FOREVER(17, TINFL_STATUS_FAILED); - } - num_extra = "\02\03\07"[dist - 16]; TINFL_GET_BITS(18, s, num_extra); s += "\03\03\013"[dist - 16]; - TINFL_MEMSET(r->m_len_codes + counter, (dist == 16) ? r->m_len_codes[counter - 1] : 0, s); counter += s; - } - if ((r->m_table_sizes[0] + r->m_table_sizes[1]) != counter) - { - TINFL_CR_RETURN_FOREVER(21, TINFL_STATUS_FAILED); - } - TINFL_MEMCPY(r->m_tables[0].m_code_size, r->m_len_codes, r->m_table_sizes[0]); TINFL_MEMCPY(r->m_tables[1].m_code_size, r->m_len_codes + r->m_table_sizes[0], r->m_table_sizes[1]); - } - } - for ( ; ; ) - { - mz_uint8 *pSrc; - for ( ; ; ) - { - if (((pIn_buf_end - pIn_buf_cur) < 4) || ((pOut_buf_end - pOut_buf_cur) < 2)) - { - TINFL_HUFF_DECODE(23, counter, &r->m_tables[0]); - if (counter >= 256) - break; - while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(24, TINFL_STATUS_HAS_MORE_OUTPUT); } - *pOut_buf_cur++ = (mz_uint8)counter; - } - else - { - int sym2; mz_uint code_len; -#if TINFL_USE_64BIT_BITBUF - if (num_bits < 30) { bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE32(pIn_buf_cur)) << num_bits); pIn_buf_cur += 4; num_bits += 32; } -#else - if (num_bits < 15) { bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); pIn_buf_cur += 2; num_bits += 16; } -#endif - if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) - code_len = sym2 >> 9; - else - { - code_len = TINFL_FAST_LOOKUP_BITS; do { sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; } while (sym2 < 0); - } - counter = sym2; bit_buf >>= code_len; num_bits -= code_len; - if (counter & 256) - break; - -#if !TINFL_USE_64BIT_BITBUF - if (num_bits < 15) { bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); pIn_buf_cur += 2; num_bits += 16; } -#endif - if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) - code_len = sym2 >> 9; - else - { - code_len = TINFL_FAST_LOOKUP_BITS; do { sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; } while (sym2 < 0); - } - bit_buf >>= code_len; num_bits -= code_len; - - pOut_buf_cur[0] = (mz_uint8)counter; - if (sym2 & 256) - { - pOut_buf_cur++; - counter = sym2; - break; - } - pOut_buf_cur[1] = (mz_uint8)sym2; - pOut_buf_cur += 2; - } - } - if ((counter &= 511) == 256) break; - - num_extra = s_length_extra[counter - 257]; counter = s_length_base[counter - 257]; - if (num_extra) { mz_uint extra_bits; TINFL_GET_BITS(25, extra_bits, num_extra); counter += extra_bits; } - - TINFL_HUFF_DECODE(26, dist, &r->m_tables[1]); - num_extra = s_dist_extra[dist]; dist = s_dist_base[dist]; - if (num_extra) { mz_uint extra_bits; TINFL_GET_BITS(27, extra_bits, num_extra); dist += extra_bits; } - - dist_from_out_buf_start = pOut_buf_cur - pOut_buf_start; - if ((dist > dist_from_out_buf_start) && (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)) - { - TINFL_CR_RETURN_FOREVER(37, TINFL_STATUS_FAILED); - } - - pSrc = pOut_buf_start + ((dist_from_out_buf_start - dist) & out_buf_size_mask); - - if ((MZ_MAX(pOut_buf_cur, pSrc) + counter) > pOut_buf_end) - { - while (counter--) - { - while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(53, TINFL_STATUS_HAS_MORE_OUTPUT); } - *pOut_buf_cur++ = pOut_buf_start[(dist_from_out_buf_start++ - dist) & out_buf_size_mask]; - } - continue; - } -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES - else if ((counter >= 9) && (counter <= dist)) - { - const mz_uint8 *pSrc_end = pSrc + (counter & ~7); - do - { - ((mz_uint32 *)pOut_buf_cur)[0] = ((const mz_uint32 *)pSrc)[0]; - ((mz_uint32 *)pOut_buf_cur)[1] = ((const mz_uint32 *)pSrc)[1]; - pOut_buf_cur += 8; - } while ((pSrc += 8) < pSrc_end); - if ((counter &= 7) < 3) - { - if (counter) - { - pOut_buf_cur[0] = pSrc[0]; - if (counter > 1) - pOut_buf_cur[1] = pSrc[1]; - pOut_buf_cur += counter; - } - continue; - } - } -#endif - do - { - pOut_buf_cur[0] = pSrc[0]; - pOut_buf_cur[1] = pSrc[1]; - pOut_buf_cur[2] = pSrc[2]; - pOut_buf_cur += 3; pSrc += 3; - } while ((int)(counter -= 3) > 2); - if ((int)counter > 0) - { - pOut_buf_cur[0] = pSrc[0]; - if ((int)counter > 1) - pOut_buf_cur[1] = pSrc[1]; - pOut_buf_cur += counter; - } - } - } - } while (!(r->m_final & 1)); - if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) - { - TINFL_SKIP_BITS(32, num_bits & 7); for (counter = 0; counter < 4; ++counter) { mz_uint s; if (num_bits) TINFL_GET_BITS(41, s, 8); else TINFL_GET_BYTE(42, s); r->m_z_adler32 = (r->m_z_adler32 << 8) | s; } - } - TINFL_CR_RETURN_FOREVER(34, TINFL_STATUS_DONE); - TINFL_CR_FINISH - -common_exit: - r->m_num_bits = num_bits; r->m_bit_buf = bit_buf; r->m_dist = dist; r->m_counter = counter; r->m_num_extra = num_extra; r->m_dist_from_out_buf_start = dist_from_out_buf_start; - *pIn_buf_size = pIn_buf_cur - pIn_buf_next; *pOut_buf_size = pOut_buf_cur - pOut_buf_next; - if ((decomp_flags & (TINFL_FLAG_PARSE_ZLIB_HEADER | TINFL_FLAG_COMPUTE_ADLER32)) && (status >= 0)) - { - const mz_uint8 *ptr = pOut_buf_next; size_t buf_len = *pOut_buf_size; - mz_uint32 i, s1 = r->m_check_adler32 & 0xffff, s2 = r->m_check_adler32 >> 16; size_t block_len = buf_len % 5552; - while (buf_len) - { - for (i = 0; i + 7 < block_len; i += 8, ptr += 8) - { - s1 += ptr[0], s2 += s1; s1 += ptr[1], s2 += s1; s1 += ptr[2], s2 += s1; s1 += ptr[3], s2 += s1; - s1 += ptr[4], s2 += s1; s1 += ptr[5], s2 += s1; s1 += ptr[6], s2 += s1; s1 += ptr[7], s2 += s1; - } - for ( ; i < block_len; ++i) s1 += *ptr++, s2 += s1; - s1 %= 65521U, s2 %= 65521U; buf_len -= block_len; block_len = 5552; - } - r->m_check_adler32 = (s2 << 16) + s1; if ((status == TINFL_STATUS_DONE) && (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) && (r->m_check_adler32 != r->m_z_adler32)) status = TINFL_STATUS_ADLER32_MISMATCH; - } - return status; -} - -// Higher level helper functions. -void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags) -{ - tinfl_decompressor decomp; void *pBuf = NULL, *pNew_buf; size_t src_buf_ofs = 0, out_buf_capacity = 0; - *pOut_len = 0; - tinfl_init(&decomp); - for ( ; ; ) - { - size_t src_buf_size = src_buf_len - src_buf_ofs, dst_buf_size = out_buf_capacity - *pOut_len, new_out_buf_capacity; - tinfl_status status = tinfl_decompress(&decomp, (const mz_uint8*)pSrc_buf + src_buf_ofs, &src_buf_size, (mz_uint8*)pBuf, pBuf ? (mz_uint8*)pBuf + *pOut_len : NULL, &dst_buf_size, - (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF); - if ((status < 0) || (status == TINFL_STATUS_NEEDS_MORE_INPUT)) - { - MZ_FREE(pBuf); *pOut_len = 0; return NULL; - } - src_buf_ofs += src_buf_size; - *pOut_len += dst_buf_size; - if (status == TINFL_STATUS_DONE) break; - new_out_buf_capacity = out_buf_capacity * 2; if (new_out_buf_capacity < 128) new_out_buf_capacity = 128; - pNew_buf = MZ_REALLOC(pBuf, new_out_buf_capacity); - if (!pNew_buf) - { - MZ_FREE(pBuf); *pOut_len = 0; return NULL; - } - pBuf = pNew_buf; out_buf_capacity = new_out_buf_capacity; - } - return pBuf; -} - -size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags) -{ - tinfl_decompressor decomp; tinfl_status status; tinfl_init(&decomp); - status = tinfl_decompress(&decomp, (const mz_uint8*)pSrc_buf, &src_buf_len, (mz_uint8*)pOut_buf, (mz_uint8*)pOut_buf, &out_buf_len, (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF); - return (status != TINFL_STATUS_DONE) ? TINFL_DECOMPRESS_MEM_TO_MEM_FAILED : out_buf_len; -} - -int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size, tinfl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) -{ - int result = 0; - tinfl_decompressor decomp; - mz_uint8 *pDict = (mz_uint8*)MZ_MALLOC(TINFL_LZ_DICT_SIZE); size_t in_buf_ofs = 0, dict_ofs = 0; - if (!pDict) - return TINFL_STATUS_FAILED; - tinfl_init(&decomp); - for ( ; ; ) - { - size_t in_buf_size = *pIn_buf_size - in_buf_ofs, dst_buf_size = TINFL_LZ_DICT_SIZE - dict_ofs; - tinfl_status status = tinfl_decompress(&decomp, (const mz_uint8*)pIn_buf + in_buf_ofs, &in_buf_size, pDict, pDict + dict_ofs, &dst_buf_size, - (flags & ~(TINFL_FLAG_HAS_MORE_INPUT | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF))); - in_buf_ofs += in_buf_size; - if ((dst_buf_size) && (!(*pPut_buf_func)(pDict + dict_ofs, (int)dst_buf_size, pPut_buf_user))) - break; - if (status != TINFL_STATUS_HAS_MORE_OUTPUT) - { - result = (status == TINFL_STATUS_DONE); - break; - } - dict_ofs = (dict_ofs + dst_buf_size) & (TINFL_LZ_DICT_SIZE - 1); - } - MZ_FREE(pDict); - *pIn_buf_size = in_buf_ofs; - return result; -} - -// ------------------- Low-level Compression (independent from all decompression API's) - -// Purposely making these tables static for faster init and thread safety. -static const mz_uint16 s_tdefl_len_sym[256] = { - 257,258,259,260,261,262,263,264,265,265,266,266,267,267,268,268,269,269,269,269,270,270,270,270,271,271,271,271,272,272,272,272, - 273,273,273,273,273,273,273,273,274,274,274,274,274,274,274,274,275,275,275,275,275,275,275,275,276,276,276,276,276,276,276,276, - 277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278, - 279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280, - 281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281, - 282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282, - 283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283, - 284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,285 }; - -static const mz_uint8 s_tdefl_len_extra[256] = { - 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0 }; - -static const mz_uint8 s_tdefl_small_dist_sym[512] = { - 0,1,2,3,4,4,5,5,6,6,6,6,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17 }; - -static const mz_uint8 s_tdefl_small_dist_extra[512] = { - 0,0,0,0,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7 }; - -static const mz_uint8 s_tdefl_large_dist_sym[128] = { - 0,0,18,19,20,20,21,21,22,22,22,22,23,23,23,23,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26, - 26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29 }; - -static const mz_uint8 s_tdefl_large_dist_extra[128] = { - 0,0,8,8,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13 }; - -// Radix sorts tdefl_sym_freq[] array by 16-bit key m_key. Returns ptr to sorted values. -typedef struct { mz_uint16 m_key, m_sym_index; } tdefl_sym_freq; -static tdefl_sym_freq* tdefl_radix_sort_syms(mz_uint num_syms, tdefl_sym_freq* pSyms0, tdefl_sym_freq* pSyms1) -{ - mz_uint32 total_passes = 2, pass_shift, pass, i, hist[256 * 2]; tdefl_sym_freq* pCur_syms = pSyms0, *pNew_syms = pSyms1; MZ_CLEAR_OBJ(hist); - for (i = 0; i < num_syms; i++) { mz_uint freq = pSyms0[i].m_key; hist[freq & 0xFF]++; hist[256 + ((freq >> 8) & 0xFF)]++; } - while ((total_passes > 1) && (num_syms == hist[(total_passes - 1) * 256])) total_passes--; - for (pass_shift = 0, pass = 0; pass < total_passes; pass++, pass_shift += 8) - { - const mz_uint32* pHist = &hist[pass << 8]; - mz_uint offsets[256], cur_ofs = 0; - for (i = 0; i < 256; i++) { offsets[i] = cur_ofs; cur_ofs += pHist[i]; } - for (i = 0; i < num_syms; i++) pNew_syms[offsets[(pCur_syms[i].m_key >> pass_shift) & 0xFF]++] = pCur_syms[i]; - { tdefl_sym_freq* t = pCur_syms; pCur_syms = pNew_syms; pNew_syms = t; } - } - return pCur_syms; -} - -// tdefl_calculate_minimum_redundancy() originally written by: Alistair Moffat, alistair@cs.mu.oz.au, Jyrki Katajainen, jyrki@diku.dk, November 1996. -static void tdefl_calculate_minimum_redundancy(tdefl_sym_freq *A, int n) -{ - int root, leaf, next, avbl, used, dpth; - if (n==0) return; else if (n==1) { A[0].m_key = 1; return; } - A[0].m_key += A[1].m_key; root = 0; leaf = 2; - for (next=1; next < n-1; next++) - { - if (leaf>=n || A[root].m_key=n || (root=0; next--) A[next].m_key = A[A[next].m_key].m_key+1; - avbl = 1; used = dpth = 0; root = n-2; next = n-1; - while (avbl>0) - { - while (root>=0 && (int)A[root].m_key==dpth) { used++; root--; } - while (avbl>used) { A[next--].m_key = (mz_uint16)(dpth); avbl--; } - avbl = 2*used; dpth++; used = 0; - } -} - -// Limits canonical Huffman code table's max code size. -enum { TDEFL_MAX_SUPPORTED_HUFF_CODESIZE = 32 }; -static void tdefl_huffman_enforce_max_code_size(int *pNum_codes, int code_list_len, int max_code_size) -{ - int i; mz_uint32 total = 0; if (code_list_len <= 1) return; - for (i = max_code_size + 1; i <= TDEFL_MAX_SUPPORTED_HUFF_CODESIZE; i++) pNum_codes[max_code_size] += pNum_codes[i]; - for (i = max_code_size; i > 0; i--) total += (((mz_uint32)pNum_codes[i]) << (max_code_size - i)); - while (total != (1UL << max_code_size)) - { - pNum_codes[max_code_size]--; - for (i = max_code_size - 1; i > 0; i--) if (pNum_codes[i]) { pNum_codes[i]--; pNum_codes[i + 1] += 2; break; } - total--; - } -} - -static void tdefl_optimize_huffman_table(tdefl_compressor *d, int table_num, int table_len, int code_size_limit, int static_table) -{ - int i, j, l, num_codes[1 + TDEFL_MAX_SUPPORTED_HUFF_CODESIZE]; mz_uint next_code[TDEFL_MAX_SUPPORTED_HUFF_CODESIZE + 1]; MZ_CLEAR_OBJ(num_codes); - if (static_table) - { - for (i = 0; i < table_len; i++) num_codes[d->m_huff_code_sizes[table_num][i]]++; - } - else - { - tdefl_sym_freq syms0[TDEFL_MAX_HUFF_SYMBOLS], syms1[TDEFL_MAX_HUFF_SYMBOLS], *pSyms; - int num_used_syms = 0; - const mz_uint16 *pSym_count = &d->m_huff_count[table_num][0]; - for (i = 0; i < table_len; i++) if (pSym_count[i]) { syms0[num_used_syms].m_key = (mz_uint16)pSym_count[i]; syms0[num_used_syms++].m_sym_index = (mz_uint16)i; } - - pSyms = tdefl_radix_sort_syms(num_used_syms, syms0, syms1); tdefl_calculate_minimum_redundancy(pSyms, num_used_syms); - - for (i = 0; i < num_used_syms; i++) num_codes[pSyms[i].m_key]++; - - tdefl_huffman_enforce_max_code_size(num_codes, num_used_syms, code_size_limit); - - MZ_CLEAR_OBJ(d->m_huff_code_sizes[table_num]); MZ_CLEAR_OBJ(d->m_huff_codes[table_num]); - for (i = 1, j = num_used_syms; i <= code_size_limit; i++) - for (l = num_codes[i]; l > 0; l--) d->m_huff_code_sizes[table_num][pSyms[--j].m_sym_index] = (mz_uint8)(i); - } - - next_code[1] = 0; for (j = 0, i = 2; i <= code_size_limit; i++) next_code[i] = j = ((j + num_codes[i - 1]) << 1); - - for (i = 0; i < table_len; i++) - { - mz_uint rev_code = 0, code, code_size; if ((code_size = d->m_huff_code_sizes[table_num][i]) == 0) continue; - code = next_code[code_size]++; for (l = code_size; l > 0; l--, code >>= 1) rev_code = (rev_code << 1) | (code & 1); - d->m_huff_codes[table_num][i] = (mz_uint16)rev_code; - } -} - -#define TDEFL_PUT_BITS(b, l) do { \ - mz_uint bits = b; mz_uint len = l; MZ_ASSERT(bits <= ((1U << len) - 1U)); \ - d->m_bit_buffer |= (bits << d->m_bits_in); d->m_bits_in += len; \ - while (d->m_bits_in >= 8) { \ - if (d->m_pOutput_buf < d->m_pOutput_buf_end) \ - *d->m_pOutput_buf++ = (mz_uint8)(d->m_bit_buffer); \ - d->m_bit_buffer >>= 8; \ - d->m_bits_in -= 8; \ - } \ -} MZ_MACRO_END - -#define TDEFL_RLE_PREV_CODE_SIZE() { if (rle_repeat_count) { \ - if (rle_repeat_count < 3) { \ - d->m_huff_count[2][prev_code_size] = (mz_uint16)(d->m_huff_count[2][prev_code_size] + rle_repeat_count); \ - while (rle_repeat_count--) packed_code_sizes[num_packed_code_sizes++] = prev_code_size; \ - } else { \ - d->m_huff_count[2][16] = (mz_uint16)(d->m_huff_count[2][16] + 1); packed_code_sizes[num_packed_code_sizes++] = 16; packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_repeat_count - 3); \ -} rle_repeat_count = 0; } } - -#define TDEFL_RLE_ZERO_CODE_SIZE() { if (rle_z_count) { \ - if (rle_z_count < 3) { \ - d->m_huff_count[2][0] = (mz_uint16)(d->m_huff_count[2][0] + rle_z_count); while (rle_z_count--) packed_code_sizes[num_packed_code_sizes++] = 0; \ - } else if (rle_z_count <= 10) { \ - d->m_huff_count[2][17] = (mz_uint16)(d->m_huff_count[2][17] + 1); packed_code_sizes[num_packed_code_sizes++] = 17; packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_z_count - 3); \ - } else { \ - d->m_huff_count[2][18] = (mz_uint16)(d->m_huff_count[2][18] + 1); packed_code_sizes[num_packed_code_sizes++] = 18; packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_z_count - 11); \ -} rle_z_count = 0; } } - -static mz_uint8 s_tdefl_packed_code_size_syms_swizzle[] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; - -static void tdefl_start_dynamic_block(tdefl_compressor *d) -{ - int num_lit_codes, num_dist_codes, num_bit_lengths; mz_uint i, total_code_sizes_to_pack, num_packed_code_sizes, rle_z_count, rle_repeat_count, packed_code_sizes_index; - mz_uint8 code_sizes_to_pack[TDEFL_MAX_HUFF_SYMBOLS_0 + TDEFL_MAX_HUFF_SYMBOLS_1], packed_code_sizes[TDEFL_MAX_HUFF_SYMBOLS_0 + TDEFL_MAX_HUFF_SYMBOLS_1], prev_code_size = 0xFF; - - d->m_huff_count[0][256] = 1; - - tdefl_optimize_huffman_table(d, 0, TDEFL_MAX_HUFF_SYMBOLS_0, 15, MZ_FALSE); - tdefl_optimize_huffman_table(d, 1, TDEFL_MAX_HUFF_SYMBOLS_1, 15, MZ_FALSE); - - for (num_lit_codes = 286; num_lit_codes > 257; num_lit_codes--) if (d->m_huff_code_sizes[0][num_lit_codes - 1]) break; - for (num_dist_codes = 30; num_dist_codes > 1; num_dist_codes--) if (d->m_huff_code_sizes[1][num_dist_codes - 1]) break; - - memcpy(code_sizes_to_pack, &d->m_huff_code_sizes[0][0], num_lit_codes); - memcpy(code_sizes_to_pack + num_lit_codes, &d->m_huff_code_sizes[1][0], num_dist_codes); - total_code_sizes_to_pack = num_lit_codes + num_dist_codes; num_packed_code_sizes = 0; rle_z_count = 0; rle_repeat_count = 0; - - memset(&d->m_huff_count[2][0], 0, sizeof(d->m_huff_count[2][0]) * TDEFL_MAX_HUFF_SYMBOLS_2); - for (i = 0; i < total_code_sizes_to_pack; i++) - { - mz_uint8 code_size = code_sizes_to_pack[i]; - if (!code_size) - { - TDEFL_RLE_PREV_CODE_SIZE(); - if (++rle_z_count == 138) { TDEFL_RLE_ZERO_CODE_SIZE(); } - } - else - { - TDEFL_RLE_ZERO_CODE_SIZE(); - if (code_size != prev_code_size) - { - TDEFL_RLE_PREV_CODE_SIZE(); - d->m_huff_count[2][code_size] = (mz_uint16)(d->m_huff_count[2][code_size] + 1); packed_code_sizes[num_packed_code_sizes++] = code_size; - } - else if (++rle_repeat_count == 6) - { - TDEFL_RLE_PREV_CODE_SIZE(); - } - } - prev_code_size = code_size; - } - if (rle_repeat_count) { TDEFL_RLE_PREV_CODE_SIZE(); } else { TDEFL_RLE_ZERO_CODE_SIZE(); } - - tdefl_optimize_huffman_table(d, 2, TDEFL_MAX_HUFF_SYMBOLS_2, 7, MZ_FALSE); - - TDEFL_PUT_BITS(2, 2); - - TDEFL_PUT_BITS(num_lit_codes - 257, 5); - TDEFL_PUT_BITS(num_dist_codes - 1, 5); - - for (num_bit_lengths = 18; num_bit_lengths >= 0; num_bit_lengths--) if (d->m_huff_code_sizes[2][s_tdefl_packed_code_size_syms_swizzle[num_bit_lengths]]) break; - num_bit_lengths = MZ_MAX(4, (num_bit_lengths + 1)); TDEFL_PUT_BITS(num_bit_lengths - 4, 4); - for (i = 0; (int)i < num_bit_lengths; i++) TDEFL_PUT_BITS(d->m_huff_code_sizes[2][s_tdefl_packed_code_size_syms_swizzle[i]], 3); - - for (packed_code_sizes_index = 0; packed_code_sizes_index < num_packed_code_sizes; ) - { - mz_uint code = packed_code_sizes[packed_code_sizes_index++]; MZ_ASSERT(code < TDEFL_MAX_HUFF_SYMBOLS_2); - TDEFL_PUT_BITS(d->m_huff_codes[2][code], d->m_huff_code_sizes[2][code]); - if (code >= 16) TDEFL_PUT_BITS(packed_code_sizes[packed_code_sizes_index++], "\02\03\07"[code - 16]); - } -} - -static void tdefl_start_static_block(tdefl_compressor *d) -{ - mz_uint i; - mz_uint8 *p = &d->m_huff_code_sizes[0][0]; - - for (i = 0; i <= 143; ++i) *p++ = 8; - for ( ; i <= 255; ++i) *p++ = 9; - for ( ; i <= 279; ++i) *p++ = 7; - for ( ; i <= 287; ++i) *p++ = 8; - - memset(d->m_huff_code_sizes[1], 5, 32); - - tdefl_optimize_huffman_table(d, 0, 288, 15, MZ_TRUE); - tdefl_optimize_huffman_table(d, 1, 32, 15, MZ_TRUE); - - TDEFL_PUT_BITS(1, 2); -} - -static const mz_uint mz_bitmasks[17] = { 0x0000, 0x0001, 0x0003, 0x0007, 0x000F, 0x001F, 0x003F, 0x007F, 0x00FF, 0x01FF, 0x03FF, 0x07FF, 0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF }; - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN && MINIZ_HAS_64BIT_REGISTERS -static mz_bool tdefl_compress_lz_codes(tdefl_compressor *d) -{ - mz_uint flags; - mz_uint8 *pLZ_codes; - mz_uint8 *pOutput_buf = d->m_pOutput_buf; - mz_uint8 *pLZ_code_buf_end = d->m_pLZ_code_buf; - mz_uint64 bit_buffer = d->m_bit_buffer; - mz_uint bits_in = d->m_bits_in; - -#define TDEFL_PUT_BITS_FAST(b, l) { bit_buffer |= (((mz_uint64)(b)) << bits_in); bits_in += (l); } - - flags = 1; - for (pLZ_codes = d->m_lz_code_buf; pLZ_codes < pLZ_code_buf_end; flags >>= 1) - { - if (flags == 1) - flags = *pLZ_codes++ | 0x100; - - if (flags & 1) - { - mz_uint s0, s1, n0, n1, sym, num_extra_bits; - mz_uint match_len = pLZ_codes[0], match_dist = *(const mz_uint16 *)(pLZ_codes + 1); pLZ_codes += 3; - - MZ_ASSERT(d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); - TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][s_tdefl_len_sym[match_len]], d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); - TDEFL_PUT_BITS_FAST(match_len & mz_bitmasks[s_tdefl_len_extra[match_len]], s_tdefl_len_extra[match_len]); - - // This sequence coaxes MSVC into using cmov's vs. jmp's. - s0 = s_tdefl_small_dist_sym[match_dist & 511]; - n0 = s_tdefl_small_dist_extra[match_dist & 511]; - s1 = s_tdefl_large_dist_sym[match_dist >> 8]; - n1 = s_tdefl_large_dist_extra[match_dist >> 8]; - sym = (match_dist < 512) ? s0 : s1; - num_extra_bits = (match_dist < 512) ? n0 : n1; - - MZ_ASSERT(d->m_huff_code_sizes[1][sym]); - TDEFL_PUT_BITS_FAST(d->m_huff_codes[1][sym], d->m_huff_code_sizes[1][sym]); - TDEFL_PUT_BITS_FAST(match_dist & mz_bitmasks[num_extra_bits], num_extra_bits); - } - else - { - mz_uint lit = *pLZ_codes++; - MZ_ASSERT(d->m_huff_code_sizes[0][lit]); - TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); - - if (((flags & 2) == 0) && (pLZ_codes < pLZ_code_buf_end)) - { - flags >>= 1; - lit = *pLZ_codes++; - MZ_ASSERT(d->m_huff_code_sizes[0][lit]); - TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); - - if (((flags & 2) == 0) && (pLZ_codes < pLZ_code_buf_end)) - { - flags >>= 1; - lit = *pLZ_codes++; - MZ_ASSERT(d->m_huff_code_sizes[0][lit]); - TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); - } - } - } - - if (pOutput_buf >= d->m_pOutput_buf_end) - return MZ_FALSE; - - *(mz_uint64*)pOutput_buf = bit_buffer; - pOutput_buf += (bits_in >> 3); - bit_buffer >>= (bits_in & ~7); - bits_in &= 7; - } - -#undef TDEFL_PUT_BITS_FAST - - d->m_pOutput_buf = pOutput_buf; - d->m_bits_in = 0; - d->m_bit_buffer = 0; - - while (bits_in) - { - mz_uint32 n = MZ_MIN(bits_in, 16); - TDEFL_PUT_BITS((mz_uint)bit_buffer & mz_bitmasks[n], n); - bit_buffer >>= n; - bits_in -= n; - } - - TDEFL_PUT_BITS(d->m_huff_codes[0][256], d->m_huff_code_sizes[0][256]); - - return (d->m_pOutput_buf < d->m_pOutput_buf_end); -} -#else -static mz_bool tdefl_compress_lz_codes(tdefl_compressor *d) -{ - mz_uint flags; - mz_uint8 *pLZ_codes; - - flags = 1; - for (pLZ_codes = d->m_lz_code_buf; pLZ_codes < d->m_pLZ_code_buf; flags >>= 1) - { - if (flags == 1) - flags = *pLZ_codes++ | 0x100; - if (flags & 1) - { - mz_uint sym, num_extra_bits; - mz_uint match_len = pLZ_codes[0], match_dist = (pLZ_codes[1] | (pLZ_codes[2] << 8)); pLZ_codes += 3; - - MZ_ASSERT(d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); - TDEFL_PUT_BITS(d->m_huff_codes[0][s_tdefl_len_sym[match_len]], d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); - TDEFL_PUT_BITS(match_len & mz_bitmasks[s_tdefl_len_extra[match_len]], s_tdefl_len_extra[match_len]); - - if (match_dist < 512) - { - sym = s_tdefl_small_dist_sym[match_dist]; num_extra_bits = s_tdefl_small_dist_extra[match_dist]; - } - else - { - sym = s_tdefl_large_dist_sym[match_dist >> 8]; num_extra_bits = s_tdefl_large_dist_extra[match_dist >> 8]; - } - MZ_ASSERT(d->m_huff_code_sizes[1][sym]); - TDEFL_PUT_BITS(d->m_huff_codes[1][sym], d->m_huff_code_sizes[1][sym]); - TDEFL_PUT_BITS(match_dist & mz_bitmasks[num_extra_bits], num_extra_bits); - } - else - { - mz_uint lit = *pLZ_codes++; - MZ_ASSERT(d->m_huff_code_sizes[0][lit]); - TDEFL_PUT_BITS(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); - } - } - - TDEFL_PUT_BITS(d->m_huff_codes[0][256], d->m_huff_code_sizes[0][256]); - - return (d->m_pOutput_buf < d->m_pOutput_buf_end); -} -#endif // MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN && MINIZ_HAS_64BIT_REGISTERS - -static mz_bool tdefl_compress_block(tdefl_compressor *d, mz_bool static_block) -{ - if (static_block) - tdefl_start_static_block(d); - else - tdefl_start_dynamic_block(d); - return tdefl_compress_lz_codes(d); -} - -static int tdefl_flush_block(tdefl_compressor *d, int flush) -{ - mz_uint saved_bit_buf, saved_bits_in; - mz_uint8 *pSaved_output_buf; - mz_bool comp_block_succeeded = MZ_FALSE; - int n, use_raw_block = ((d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS) != 0) && (d->m_lookahead_pos - d->m_lz_code_buf_dict_pos) <= d->m_dict_size; - mz_uint8 *pOutput_buf_start = ((d->m_pPut_buf_func == NULL) && ((*d->m_pOut_buf_size - d->m_out_buf_ofs) >= TDEFL_OUT_BUF_SIZE)) ? ((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs) : d->m_output_buf; - - d->m_pOutput_buf = pOutput_buf_start; - d->m_pOutput_buf_end = d->m_pOutput_buf + TDEFL_OUT_BUF_SIZE - 16; - - MZ_ASSERT(!d->m_output_flush_remaining); - d->m_output_flush_ofs = 0; - d->m_output_flush_remaining = 0; - - *d->m_pLZ_flags = (mz_uint8)(*d->m_pLZ_flags >> d->m_num_flags_left); - d->m_pLZ_code_buf -= (d->m_num_flags_left == 8); - - if ((d->m_flags & TDEFL_WRITE_ZLIB_HEADER) && (!d->m_block_index)) - { - TDEFL_PUT_BITS(0x78, 8); TDEFL_PUT_BITS(0x01, 8); - } - - TDEFL_PUT_BITS(flush == TDEFL_FINISH, 1); - - pSaved_output_buf = d->m_pOutput_buf; saved_bit_buf = d->m_bit_buffer; saved_bits_in = d->m_bits_in; - - if (!use_raw_block) - comp_block_succeeded = tdefl_compress_block(d, (d->m_flags & TDEFL_FORCE_ALL_STATIC_BLOCKS) || (d->m_total_lz_bytes < 48)); - - // If the block gets expanded, forget the current contents of the output buffer and send a raw block instead. - if ( ((use_raw_block) || ((d->m_total_lz_bytes) && ((d->m_pOutput_buf - pSaved_output_buf + 1U) >= d->m_total_lz_bytes))) && - ((d->m_lookahead_pos - d->m_lz_code_buf_dict_pos) <= d->m_dict_size) ) - { - mz_uint i; d->m_pOutput_buf = pSaved_output_buf; d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in; - TDEFL_PUT_BITS(0, 2); - if (d->m_bits_in) { TDEFL_PUT_BITS(0, 8 - d->m_bits_in); } - for (i = 2; i; --i, d->m_total_lz_bytes ^= 0xFFFF) - { - TDEFL_PUT_BITS(d->m_total_lz_bytes & 0xFFFF, 16); - } - for (i = 0; i < d->m_total_lz_bytes; ++i) - { - TDEFL_PUT_BITS(d->m_dict[(d->m_lz_code_buf_dict_pos + i) & TDEFL_LZ_DICT_SIZE_MASK], 8); - } - } - // Check for the extremely unlikely (if not impossible) case of the compressed block not fitting into the output buffer when using dynamic codes. - else if (!comp_block_succeeded) - { - d->m_pOutput_buf = pSaved_output_buf; d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in; - tdefl_compress_block(d, MZ_TRUE); - } - - if (flush) - { - if (flush == TDEFL_FINISH) - { - if (d->m_bits_in) { TDEFL_PUT_BITS(0, 8 - d->m_bits_in); } - if (d->m_flags & TDEFL_WRITE_ZLIB_HEADER) { mz_uint i, a = d->m_adler32; for (i = 0; i < 4; i++) { TDEFL_PUT_BITS((a >> 24) & 0xFF, 8); a <<= 8; } } - } - else - { - mz_uint i, z = 0; TDEFL_PUT_BITS(0, 3); if (d->m_bits_in) { TDEFL_PUT_BITS(0, 8 - d->m_bits_in); } for (i = 2; i; --i, z ^= 0xFFFF) { TDEFL_PUT_BITS(z & 0xFFFF, 16); } - } - } - - MZ_ASSERT(d->m_pOutput_buf < d->m_pOutput_buf_end); - - memset(&d->m_huff_count[0][0], 0, sizeof(d->m_huff_count[0][0]) * TDEFL_MAX_HUFF_SYMBOLS_0); - memset(&d->m_huff_count[1][0], 0, sizeof(d->m_huff_count[1][0]) * TDEFL_MAX_HUFF_SYMBOLS_1); - - d->m_pLZ_code_buf = d->m_lz_code_buf + 1; d->m_pLZ_flags = d->m_lz_code_buf; d->m_num_flags_left = 8; d->m_lz_code_buf_dict_pos += d->m_total_lz_bytes; d->m_total_lz_bytes = 0; d->m_block_index++; - - if ((n = (int)(d->m_pOutput_buf - pOutput_buf_start)) != 0) - { - if (d->m_pPut_buf_func) - { - *d->m_pIn_buf_size = d->m_pSrc - (const mz_uint8 *)d->m_pIn_buf; - if (!(*d->m_pPut_buf_func)(d->m_output_buf, n, d->m_pPut_buf_user)) - return (d->m_prev_return_status = TDEFL_STATUS_PUT_BUF_FAILED); - } - else if (pOutput_buf_start == d->m_output_buf) - { - int bytes_to_copy = (int)MZ_MIN((size_t)n, (size_t)(*d->m_pOut_buf_size - d->m_out_buf_ofs)); - memcpy((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf, bytes_to_copy); - d->m_out_buf_ofs += bytes_to_copy; - if ((n -= bytes_to_copy) != 0) - { - d->m_output_flush_ofs = bytes_to_copy; - d->m_output_flush_remaining = n; - } - } - else - { - d->m_out_buf_ofs += n; - } - } - - return d->m_output_flush_remaining; -} - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES -#define TDEFL_READ_UNALIGNED_WORD(p) *(const mz_uint16*)(p) -static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint lookahead_pos, mz_uint max_dist, mz_uint max_match_len, mz_uint *pMatch_dist, mz_uint *pMatch_len) -{ - mz_uint dist, pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK, match_len = *pMatch_len, probe_pos = pos, next_probe_pos, probe_len; - mz_uint num_probes_left = d->m_max_probes[match_len >= 32]; - const mz_uint16 *s = (const mz_uint16*)(d->m_dict + pos), *p, *q; - mz_uint16 c01 = TDEFL_READ_UNALIGNED_WORD(&d->m_dict[pos + match_len - 1]), s01 = TDEFL_READ_UNALIGNED_WORD(s); - MZ_ASSERT(max_match_len <= TDEFL_MAX_MATCH_LEN); if (max_match_len <= match_len) return; - for ( ; ; ) - { - for ( ; ; ) - { - if (--num_probes_left == 0) return; - #define TDEFL_PROBE \ - next_probe_pos = d->m_next[probe_pos]; \ - if ((!next_probe_pos) || ((dist = (mz_uint16)(lookahead_pos - next_probe_pos)) > max_dist)) return; \ - probe_pos = next_probe_pos & TDEFL_LZ_DICT_SIZE_MASK; \ - if (TDEFL_READ_UNALIGNED_WORD(&d->m_dict[probe_pos + match_len - 1]) == c01) break; - TDEFL_PROBE; TDEFL_PROBE; TDEFL_PROBE; - } - if (!dist) break; q = (const mz_uint16*)(d->m_dict + probe_pos); if (TDEFL_READ_UNALIGNED_WORD(q) != s01) continue; p = s; probe_len = 32; - do { } while ( (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && - (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (--probe_len > 0) ); - if (!probe_len) - { - *pMatch_dist = dist; *pMatch_len = MZ_MIN(max_match_len, TDEFL_MAX_MATCH_LEN); break; - } - else if ((probe_len = ((mz_uint)(p - s) * 2) + (mz_uint)(*(const mz_uint8*)p == *(const mz_uint8*)q)) > match_len) - { - *pMatch_dist = dist; if ((*pMatch_len = match_len = MZ_MIN(max_match_len, probe_len)) == max_match_len) break; - c01 = TDEFL_READ_UNALIGNED_WORD(&d->m_dict[pos + match_len - 1]); - } - } -} -#else -static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint lookahead_pos, mz_uint max_dist, mz_uint max_match_len, mz_uint *pMatch_dist, mz_uint *pMatch_len) -{ - mz_uint dist, pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK, match_len = *pMatch_len, probe_pos = pos, next_probe_pos, probe_len; - mz_uint num_probes_left = d->m_max_probes[match_len >= 32]; - const mz_uint8 *s = d->m_dict + pos, *p, *q; - mz_uint8 c0 = d->m_dict[pos + match_len], c1 = d->m_dict[pos + match_len - 1]; - MZ_ASSERT(max_match_len <= TDEFL_MAX_MATCH_LEN); if (max_match_len <= match_len) return; - for ( ; ; ) - { - for ( ; ; ) - { - if (--num_probes_left == 0) return; - #define TDEFL_PROBE \ - next_probe_pos = d->m_next[probe_pos]; \ - if ((!next_probe_pos) || ((dist = (mz_uint16)(lookahead_pos - next_probe_pos)) > max_dist)) return; \ - probe_pos = next_probe_pos & TDEFL_LZ_DICT_SIZE_MASK; \ - if ((d->m_dict[probe_pos + match_len] == c0) && (d->m_dict[probe_pos + match_len - 1] == c1)) break; - TDEFL_PROBE; TDEFL_PROBE; TDEFL_PROBE; - } - if (!dist) break; p = s; q = d->m_dict + probe_pos; for (probe_len = 0; probe_len < max_match_len; probe_len++) if (*p++ != *q++) break; - if (probe_len > match_len) - { - *pMatch_dist = dist; if ((*pMatch_len = match_len = probe_len) == max_match_len) return; - c0 = d->m_dict[pos + match_len]; c1 = d->m_dict[pos + match_len - 1]; - } - } -} -#endif // #if MINIZ_USE_UNALIGNED_LOADS_AND_STORES - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN -static mz_bool tdefl_compress_fast(tdefl_compressor *d) -{ - // Faster, minimally featured LZRW1-style match+parse loop with better register utilization. Intended for applications where raw throughput is valued more highly than ratio. - mz_uint lookahead_pos = d->m_lookahead_pos, lookahead_size = d->m_lookahead_size, dict_size = d->m_dict_size, total_lz_bytes = d->m_total_lz_bytes, num_flags_left = d->m_num_flags_left; - mz_uint8 *pLZ_code_buf = d->m_pLZ_code_buf, *pLZ_flags = d->m_pLZ_flags; - mz_uint cur_pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK; - - while ((d->m_src_buf_left) || ((d->m_flush) && (lookahead_size))) - { - const mz_uint TDEFL_COMP_FAST_LOOKAHEAD_SIZE = 4096; - mz_uint dst_pos = (lookahead_pos + lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK; - mz_uint num_bytes_to_process = (mz_uint)MZ_MIN(d->m_src_buf_left, TDEFL_COMP_FAST_LOOKAHEAD_SIZE - lookahead_size); - d->m_src_buf_left -= num_bytes_to_process; - lookahead_size += num_bytes_to_process; - - while (num_bytes_to_process) - { - mz_uint32 n = MZ_MIN(TDEFL_LZ_DICT_SIZE - dst_pos, num_bytes_to_process); - memcpy(d->m_dict + dst_pos, d->m_pSrc, n); - if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) - memcpy(d->m_dict + TDEFL_LZ_DICT_SIZE + dst_pos, d->m_pSrc, MZ_MIN(n, (TDEFL_MAX_MATCH_LEN - 1) - dst_pos)); - d->m_pSrc += n; - dst_pos = (dst_pos + n) & TDEFL_LZ_DICT_SIZE_MASK; - num_bytes_to_process -= n; - } - - dict_size = MZ_MIN(TDEFL_LZ_DICT_SIZE - lookahead_size, dict_size); - if ((!d->m_flush) && (lookahead_size < TDEFL_COMP_FAST_LOOKAHEAD_SIZE)) break; - - while (lookahead_size >= 4) - { - mz_uint cur_match_dist, cur_match_len = 1; - mz_uint8 *pCur_dict = d->m_dict + cur_pos; - mz_uint first_trigram = (*(const mz_uint32 *)pCur_dict) & 0xFFFFFF; - mz_uint hash = (first_trigram ^ (first_trigram >> (24 - (TDEFL_LZ_HASH_BITS - 8)))) & TDEFL_LEVEL1_HASH_SIZE_MASK; - mz_uint probe_pos = d->m_hash[hash]; - d->m_hash[hash] = (mz_uint16)lookahead_pos; - - if (((cur_match_dist = (mz_uint16)(lookahead_pos - probe_pos)) <= dict_size) && ((*(const mz_uint32 *)(d->m_dict + (probe_pos &= TDEFL_LZ_DICT_SIZE_MASK)) & 0xFFFFFF) == first_trigram)) - { - const mz_uint16 *p = (const mz_uint16 *)pCur_dict; - const mz_uint16 *q = (const mz_uint16 *)(d->m_dict + probe_pos); - mz_uint32 probe_len = 32; - do { } while ( (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && - (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (--probe_len > 0) ); - cur_match_len = ((mz_uint)(p - (const mz_uint16 *)pCur_dict) * 2) + (mz_uint)(*(const mz_uint8 *)p == *(const mz_uint8 *)q); - if (!probe_len) - cur_match_len = cur_match_dist ? TDEFL_MAX_MATCH_LEN : 0; - - if ((cur_match_len < TDEFL_MIN_MATCH_LEN) || ((cur_match_len == TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 8U*1024U))) - { - cur_match_len = 1; - *pLZ_code_buf++ = (mz_uint8)first_trigram; - *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1); - d->m_huff_count[0][(mz_uint8)first_trigram]++; - } - else - { - mz_uint32 s0, s1; - cur_match_len = MZ_MIN(cur_match_len, lookahead_size); - - MZ_ASSERT((cur_match_len >= TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 1) && (cur_match_dist <= TDEFL_LZ_DICT_SIZE)); - - cur_match_dist--; - - pLZ_code_buf[0] = (mz_uint8)(cur_match_len - TDEFL_MIN_MATCH_LEN); - *(mz_uint16 *)(&pLZ_code_buf[1]) = (mz_uint16)cur_match_dist; - pLZ_code_buf += 3; - *pLZ_flags = (mz_uint8)((*pLZ_flags >> 1) | 0x80); - - s0 = s_tdefl_small_dist_sym[cur_match_dist & 511]; - s1 = s_tdefl_large_dist_sym[cur_match_dist >> 8]; - d->m_huff_count[1][(cur_match_dist < 512) ? s0 : s1]++; - - d->m_huff_count[0][s_tdefl_len_sym[cur_match_len - TDEFL_MIN_MATCH_LEN]]++; - } - } - else - { - *pLZ_code_buf++ = (mz_uint8)first_trigram; - *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1); - d->m_huff_count[0][(mz_uint8)first_trigram]++; - } - - if (--num_flags_left == 0) { num_flags_left = 8; pLZ_flags = pLZ_code_buf++; } - - total_lz_bytes += cur_match_len; - lookahead_pos += cur_match_len; - dict_size = MZ_MIN(dict_size + cur_match_len, TDEFL_LZ_DICT_SIZE); - cur_pos = (cur_pos + cur_match_len) & TDEFL_LZ_DICT_SIZE_MASK; - MZ_ASSERT(lookahead_size >= cur_match_len); - lookahead_size -= cur_match_len; - - if (pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) - { - int n; - d->m_lookahead_pos = lookahead_pos; d->m_lookahead_size = lookahead_size; d->m_dict_size = dict_size; - d->m_total_lz_bytes = total_lz_bytes; d->m_pLZ_code_buf = pLZ_code_buf; d->m_pLZ_flags = pLZ_flags; d->m_num_flags_left = num_flags_left; - if ((n = tdefl_flush_block(d, 0)) != 0) - return (n < 0) ? MZ_FALSE : MZ_TRUE; - total_lz_bytes = d->m_total_lz_bytes; pLZ_code_buf = d->m_pLZ_code_buf; pLZ_flags = d->m_pLZ_flags; num_flags_left = d->m_num_flags_left; - } - } - - while (lookahead_size) - { - mz_uint8 lit = d->m_dict[cur_pos]; - - total_lz_bytes++; - *pLZ_code_buf++ = lit; - *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1); - if (--num_flags_left == 0) { num_flags_left = 8; pLZ_flags = pLZ_code_buf++; } - - d->m_huff_count[0][lit]++; - - lookahead_pos++; - dict_size = MZ_MIN(dict_size + 1, TDEFL_LZ_DICT_SIZE); - cur_pos = (cur_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK; - lookahead_size--; - - if (pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) - { - int n; - d->m_lookahead_pos = lookahead_pos; d->m_lookahead_size = lookahead_size; d->m_dict_size = dict_size; - d->m_total_lz_bytes = total_lz_bytes; d->m_pLZ_code_buf = pLZ_code_buf; d->m_pLZ_flags = pLZ_flags; d->m_num_flags_left = num_flags_left; - if ((n = tdefl_flush_block(d, 0)) != 0) - return (n < 0) ? MZ_FALSE : MZ_TRUE; - total_lz_bytes = d->m_total_lz_bytes; pLZ_code_buf = d->m_pLZ_code_buf; pLZ_flags = d->m_pLZ_flags; num_flags_left = d->m_num_flags_left; - } - } - } - - d->m_lookahead_pos = lookahead_pos; d->m_lookahead_size = lookahead_size; d->m_dict_size = dict_size; - d->m_total_lz_bytes = total_lz_bytes; d->m_pLZ_code_buf = pLZ_code_buf; d->m_pLZ_flags = pLZ_flags; d->m_num_flags_left = num_flags_left; - return MZ_TRUE; -} -#endif // MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN - -static MZ_FORCEINLINE void tdefl_record_literal(tdefl_compressor *d, mz_uint8 lit) -{ - d->m_total_lz_bytes++; - *d->m_pLZ_code_buf++ = lit; - *d->m_pLZ_flags = (mz_uint8)(*d->m_pLZ_flags >> 1); if (--d->m_num_flags_left == 0) { d->m_num_flags_left = 8; d->m_pLZ_flags = d->m_pLZ_code_buf++; } - d->m_huff_count[0][lit]++; -} - -static MZ_FORCEINLINE void tdefl_record_match(tdefl_compressor *d, mz_uint match_len, mz_uint match_dist) -{ - mz_uint32 s0, s1; - - MZ_ASSERT((match_len >= TDEFL_MIN_MATCH_LEN) && (match_dist >= 1) && (match_dist <= TDEFL_LZ_DICT_SIZE)); - - d->m_total_lz_bytes += match_len; - - d->m_pLZ_code_buf[0] = (mz_uint8)(match_len - TDEFL_MIN_MATCH_LEN); - - match_dist -= 1; - d->m_pLZ_code_buf[1] = (mz_uint8)(match_dist & 0xFF); - d->m_pLZ_code_buf[2] = (mz_uint8)(match_dist >> 8); d->m_pLZ_code_buf += 3; - - *d->m_pLZ_flags = (mz_uint8)((*d->m_pLZ_flags >> 1) | 0x80); if (--d->m_num_flags_left == 0) { d->m_num_flags_left = 8; d->m_pLZ_flags = d->m_pLZ_code_buf++; } - - s0 = s_tdefl_small_dist_sym[match_dist & 511]; s1 = s_tdefl_large_dist_sym[(match_dist >> 8) & 127]; - d->m_huff_count[1][(match_dist < 512) ? s0 : s1]++; - - if (match_len >= TDEFL_MIN_MATCH_LEN) d->m_huff_count[0][s_tdefl_len_sym[match_len - TDEFL_MIN_MATCH_LEN]]++; -} - -static mz_bool tdefl_compress_normal(tdefl_compressor *d) -{ - const mz_uint8 *pSrc = d->m_pSrc; size_t src_buf_left = d->m_src_buf_left; - tdefl_flush flush = d->m_flush; - - while ((src_buf_left) || ((flush) && (d->m_lookahead_size))) - { - mz_uint len_to_move, cur_match_dist, cur_match_len, cur_pos; - // Update dictionary and hash chains. Keeps the lookahead size equal to TDEFL_MAX_MATCH_LEN. - if ((d->m_lookahead_size + d->m_dict_size) >= (TDEFL_MIN_MATCH_LEN - 1)) - { - mz_uint dst_pos = (d->m_lookahead_pos + d->m_lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK, ins_pos = d->m_lookahead_pos + d->m_lookahead_size - 2; - mz_uint hash = (d->m_dict[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] << TDEFL_LZ_HASH_SHIFT) ^ d->m_dict[(ins_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK]; - mz_uint num_bytes_to_process = (mz_uint)MZ_MIN(src_buf_left, TDEFL_MAX_MATCH_LEN - d->m_lookahead_size); - const mz_uint8 *pSrc_end = pSrc + num_bytes_to_process; - src_buf_left -= num_bytes_to_process; - d->m_lookahead_size += num_bytes_to_process; - while (pSrc != pSrc_end) - { - mz_uint8 c = *pSrc++; d->m_dict[dst_pos] = c; if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) d->m_dict[TDEFL_LZ_DICT_SIZE + dst_pos] = c; - hash = ((hash << TDEFL_LZ_HASH_SHIFT) ^ c) & (TDEFL_LZ_HASH_SIZE - 1); - d->m_next[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] = d->m_hash[hash]; d->m_hash[hash] = (mz_uint16)(ins_pos); - dst_pos = (dst_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK; ins_pos++; - } - } - else - { - while ((src_buf_left) && (d->m_lookahead_size < TDEFL_MAX_MATCH_LEN)) - { - mz_uint8 c = *pSrc++; - mz_uint dst_pos = (d->m_lookahead_pos + d->m_lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK; - src_buf_left--; - d->m_dict[dst_pos] = c; - if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) - d->m_dict[TDEFL_LZ_DICT_SIZE + dst_pos] = c; - if ((++d->m_lookahead_size + d->m_dict_size) >= TDEFL_MIN_MATCH_LEN) - { - mz_uint ins_pos = d->m_lookahead_pos + (d->m_lookahead_size - 1) - 2; - mz_uint hash = ((d->m_dict[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] << (TDEFL_LZ_HASH_SHIFT * 2)) ^ (d->m_dict[(ins_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK] << TDEFL_LZ_HASH_SHIFT) ^ c) & (TDEFL_LZ_HASH_SIZE - 1); - d->m_next[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] = d->m_hash[hash]; d->m_hash[hash] = (mz_uint16)(ins_pos); - } - } - } - d->m_dict_size = MZ_MIN(TDEFL_LZ_DICT_SIZE - d->m_lookahead_size, d->m_dict_size); - if ((!flush) && (d->m_lookahead_size < TDEFL_MAX_MATCH_LEN)) - break; - - // Simple lazy/greedy parsing state machine. - len_to_move = 1; cur_match_dist = 0; cur_match_len = d->m_saved_match_len ? d->m_saved_match_len : (TDEFL_MIN_MATCH_LEN - 1); cur_pos = d->m_lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK; - if (d->m_flags & (TDEFL_RLE_MATCHES | TDEFL_FORCE_ALL_RAW_BLOCKS)) - { - if ((d->m_dict_size) && (!(d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS))) - { - mz_uint8 c = d->m_dict[(cur_pos - 1) & TDEFL_LZ_DICT_SIZE_MASK]; - cur_match_len = 0; while (cur_match_len < d->m_lookahead_size) { if (d->m_dict[cur_pos + cur_match_len] != c) break; cur_match_len++; } - if (cur_match_len < TDEFL_MIN_MATCH_LEN) cur_match_len = 0; else cur_match_dist = 1; - } - } - else - { - tdefl_find_match(d, d->m_lookahead_pos, d->m_dict_size, d->m_lookahead_size, &cur_match_dist, &cur_match_len); - } - if (((cur_match_len == TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 8U*1024U)) || (cur_pos == cur_match_dist) || ((d->m_flags & TDEFL_FILTER_MATCHES) && (cur_match_len <= 5))) - { - cur_match_dist = cur_match_len = 0; - } - if (d->m_saved_match_len) - { - if (cur_match_len > d->m_saved_match_len) - { - tdefl_record_literal(d, (mz_uint8)d->m_saved_lit); - if (cur_match_len >= 128) - { - tdefl_record_match(d, cur_match_len, cur_match_dist); - d->m_saved_match_len = 0; len_to_move = cur_match_len; - } - else - { - d->m_saved_lit = d->m_dict[cur_pos]; d->m_saved_match_dist = cur_match_dist; d->m_saved_match_len = cur_match_len; - } - } - else - { - tdefl_record_match(d, d->m_saved_match_len, d->m_saved_match_dist); - len_to_move = d->m_saved_match_len - 1; d->m_saved_match_len = 0; - } - } - else if (!cur_match_dist) - tdefl_record_literal(d, d->m_dict[MZ_MIN(cur_pos, sizeof(d->m_dict) - 1)]); - else if ((d->m_greedy_parsing) || (d->m_flags & TDEFL_RLE_MATCHES) || (cur_match_len >= 128)) - { - tdefl_record_match(d, cur_match_len, cur_match_dist); - len_to_move = cur_match_len; - } - else - { - d->m_saved_lit = d->m_dict[MZ_MIN(cur_pos, sizeof(d->m_dict) - 1)]; d->m_saved_match_dist = cur_match_dist; d->m_saved_match_len = cur_match_len; - } - // Move the lookahead forward by len_to_move bytes. - d->m_lookahead_pos += len_to_move; - MZ_ASSERT(d->m_lookahead_size >= len_to_move); - d->m_lookahead_size -= len_to_move; - d->m_dict_size = MZ_MIN(d->m_dict_size + len_to_move, TDEFL_LZ_DICT_SIZE); - // Check if it's time to flush the current LZ codes to the internal output buffer. - if ( (d->m_pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) || - ( (d->m_total_lz_bytes > 31*1024) && (((((mz_uint)(d->m_pLZ_code_buf - d->m_lz_code_buf) * 115) >> 7) >= d->m_total_lz_bytes) || (d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS))) ) - { - int n; - d->m_pSrc = pSrc; d->m_src_buf_left = src_buf_left; - if ((n = tdefl_flush_block(d, 0)) != 0) - return (n < 0) ? MZ_FALSE : MZ_TRUE; - } - } - - d->m_pSrc = pSrc; d->m_src_buf_left = src_buf_left; - return MZ_TRUE; -} - -static tdefl_status tdefl_flush_output_buffer(tdefl_compressor *d) -{ - if (d->m_pIn_buf_size) - { - *d->m_pIn_buf_size = d->m_pSrc - (const mz_uint8 *)d->m_pIn_buf; - } - - if (d->m_pOut_buf_size) - { - size_t n = MZ_MIN(*d->m_pOut_buf_size - d->m_out_buf_ofs, d->m_output_flush_remaining); - memcpy((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf + d->m_output_flush_ofs, n); - d->m_output_flush_ofs += (mz_uint)n; - d->m_output_flush_remaining -= (mz_uint)n; - d->m_out_buf_ofs += n; - - *d->m_pOut_buf_size = d->m_out_buf_ofs; - } - - return (d->m_finished && !d->m_output_flush_remaining) ? TDEFL_STATUS_DONE : TDEFL_STATUS_OKAY; -} - -tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf, size_t *pIn_buf_size, void *pOut_buf, size_t *pOut_buf_size, tdefl_flush flush) -{ - if (!d) - { - if (pIn_buf_size) *pIn_buf_size = 0; - if (pOut_buf_size) *pOut_buf_size = 0; - return TDEFL_STATUS_BAD_PARAM; - } - - d->m_pIn_buf = pIn_buf; d->m_pIn_buf_size = pIn_buf_size; - d->m_pOut_buf = pOut_buf; d->m_pOut_buf_size = pOut_buf_size; - d->m_pSrc = (const mz_uint8 *)(pIn_buf); d->m_src_buf_left = pIn_buf_size ? *pIn_buf_size : 0; - d->m_out_buf_ofs = 0; - d->m_flush = flush; - - if ( ((d->m_pPut_buf_func != NULL) == ((pOut_buf != NULL) || (pOut_buf_size != NULL))) || (d->m_prev_return_status != TDEFL_STATUS_OKAY) || - (d->m_wants_to_finish && (flush != TDEFL_FINISH)) || (pIn_buf_size && *pIn_buf_size && !pIn_buf) || (pOut_buf_size && *pOut_buf_size && !pOut_buf) ) - { - if (pIn_buf_size) *pIn_buf_size = 0; - if (pOut_buf_size) *pOut_buf_size = 0; - return (d->m_prev_return_status = TDEFL_STATUS_BAD_PARAM); - } - d->m_wants_to_finish |= (flush == TDEFL_FINISH); - - if ((d->m_output_flush_remaining) || (d->m_finished)) - return (d->m_prev_return_status = tdefl_flush_output_buffer(d)); - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN - if (((d->m_flags & TDEFL_MAX_PROBES_MASK) == 1) && - ((d->m_flags & TDEFL_GREEDY_PARSING_FLAG) != 0) && - ((d->m_flags & (TDEFL_FILTER_MATCHES | TDEFL_FORCE_ALL_RAW_BLOCKS | TDEFL_RLE_MATCHES)) == 0)) - { - if (!tdefl_compress_fast(d)) - return d->m_prev_return_status; - } - else -#endif // #if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN - { - if (!tdefl_compress_normal(d)) - return d->m_prev_return_status; - } - - if ((d->m_flags & (TDEFL_WRITE_ZLIB_HEADER | TDEFL_COMPUTE_ADLER32)) && (pIn_buf)) - d->m_adler32 = (mz_uint32)mz_adler32(d->m_adler32, (const mz_uint8 *)pIn_buf, d->m_pSrc - (const mz_uint8 *)pIn_buf); - - if ((flush) && (!d->m_lookahead_size) && (!d->m_src_buf_left) && (!d->m_output_flush_remaining)) - { - if (tdefl_flush_block(d, flush) < 0) - return d->m_prev_return_status; - d->m_finished = (flush == TDEFL_FINISH); - if (flush == TDEFL_FULL_FLUSH) { MZ_CLEAR_OBJ(d->m_hash); MZ_CLEAR_OBJ(d->m_next); d->m_dict_size = 0; } - } - - return (d->m_prev_return_status = tdefl_flush_output_buffer(d)); -} - -tdefl_status tdefl_compress_buffer(tdefl_compressor *d, const void *pIn_buf, size_t in_buf_size, tdefl_flush flush) -{ - MZ_ASSERT(d->m_pPut_buf_func); return tdefl_compress(d, pIn_buf, &in_buf_size, NULL, NULL, flush); -} - -tdefl_status tdefl_init(tdefl_compressor *d, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) -{ - d->m_pPut_buf_func = pPut_buf_func; d->m_pPut_buf_user = pPut_buf_user; - d->m_flags = (mz_uint)(flags); d->m_max_probes[0] = 1 + ((flags & 0xFFF) + 2) / 3; d->m_greedy_parsing = (flags & TDEFL_GREEDY_PARSING_FLAG) != 0; - d->m_max_probes[1] = 1 + (((flags & 0xFFF) >> 2) + 2) / 3; - if (!(flags & TDEFL_NONDETERMINISTIC_PARSING_FLAG)) MZ_CLEAR_OBJ(d->m_hash); - d->m_lookahead_pos = d->m_lookahead_size = d->m_dict_size = d->m_total_lz_bytes = d->m_lz_code_buf_dict_pos = d->m_bits_in = 0; - d->m_output_flush_ofs = d->m_output_flush_remaining = d->m_finished = d->m_block_index = d->m_bit_buffer = d->m_wants_to_finish = 0; - d->m_pLZ_code_buf = d->m_lz_code_buf + 1; d->m_pLZ_flags = d->m_lz_code_buf; d->m_num_flags_left = 8; - d->m_pOutput_buf = d->m_output_buf; d->m_pOutput_buf_end = d->m_output_buf; d->m_prev_return_status = TDEFL_STATUS_OKAY; - d->m_saved_match_dist = d->m_saved_match_len = d->m_saved_lit = 0; d->m_adler32 = 1; - d->m_pIn_buf = NULL; d->m_pOut_buf = NULL; - d->m_pIn_buf_size = NULL; d->m_pOut_buf_size = NULL; - d->m_flush = TDEFL_NO_FLUSH; d->m_pSrc = NULL; d->m_src_buf_left = 0; d->m_out_buf_ofs = 0; - memset(&d->m_huff_count[0][0], 0, sizeof(d->m_huff_count[0][0]) * TDEFL_MAX_HUFF_SYMBOLS_0); - memset(&d->m_huff_count[1][0], 0, sizeof(d->m_huff_count[1][0]) * TDEFL_MAX_HUFF_SYMBOLS_1); - return TDEFL_STATUS_OKAY; -} - -tdefl_status tdefl_get_prev_return_status(tdefl_compressor *d) -{ - return d->m_prev_return_status; -} - -mz_uint32 tdefl_get_adler32(tdefl_compressor *d) -{ - return d->m_adler32; -} - -mz_bool tdefl_compress_mem_to_output(const void *pBuf, size_t buf_len, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) -{ - tdefl_compressor *pComp; mz_bool succeeded; if (((buf_len) && (!pBuf)) || (!pPut_buf_func)) return MZ_FALSE; - pComp = (tdefl_compressor*)MZ_MALLOC(sizeof(tdefl_compressor)); if (!pComp) return MZ_FALSE; - succeeded = (tdefl_init(pComp, pPut_buf_func, pPut_buf_user, flags) == TDEFL_STATUS_OKAY); - succeeded = succeeded && (tdefl_compress_buffer(pComp, pBuf, buf_len, TDEFL_FINISH) == TDEFL_STATUS_DONE); - MZ_FREE(pComp); return succeeded; -} - -typedef struct -{ - size_t m_size, m_capacity; - mz_uint8 *m_pBuf; - mz_bool m_expandable; -} tdefl_output_buffer; - -static mz_bool tdefl_output_buffer_putter(const void *pBuf, int len, void *pUser) -{ - tdefl_output_buffer *p = (tdefl_output_buffer *)pUser; - size_t new_size = p->m_size + len; - if (new_size > p->m_capacity) - { - size_t new_capacity = p->m_capacity; mz_uint8 *pNew_buf; if (!p->m_expandable) return MZ_FALSE; - do { new_capacity = MZ_MAX(128U, new_capacity << 1U); } while (new_size > new_capacity); - pNew_buf = (mz_uint8*)MZ_REALLOC(p->m_pBuf, new_capacity); if (!pNew_buf) return MZ_FALSE; - p->m_pBuf = pNew_buf; p->m_capacity = new_capacity; - } - memcpy((mz_uint8*)p->m_pBuf + p->m_size, pBuf, len); p->m_size = new_size; - return MZ_TRUE; -} - -void *tdefl_compress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags) -{ - tdefl_output_buffer out_buf; MZ_CLEAR_OBJ(out_buf); - if (!pOut_len) return MZ_FALSE; else *pOut_len = 0; - out_buf.m_expandable = MZ_TRUE; - if (!tdefl_compress_mem_to_output(pSrc_buf, src_buf_len, tdefl_output_buffer_putter, &out_buf, flags)) return NULL; - *pOut_len = out_buf.m_size; return out_buf.m_pBuf; -} - -size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags) -{ - tdefl_output_buffer out_buf; MZ_CLEAR_OBJ(out_buf); - if (!pOut_buf) return 0; - out_buf.m_pBuf = (mz_uint8*)pOut_buf; out_buf.m_capacity = out_buf_len; - if (!tdefl_compress_mem_to_output(pSrc_buf, src_buf_len, tdefl_output_buffer_putter, &out_buf, flags)) return 0; - return out_buf.m_size; -} - -#ifndef MINIZ_NO_ZLIB_APIS -static const mz_uint s_tdefl_num_probes[11] = { 0, 1, 6, 32, 16, 32, 128, 256, 512, 768, 1500 }; - -// level may actually range from [0,10] (10 is a "hidden" max level, where we want a bit more compression and it's fine if throughput to fall off a cliff on some files). -mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy) -{ - mz_uint comp_flags = s_tdefl_num_probes[(level >= 0) ? MZ_MIN(10, level) : MZ_DEFAULT_LEVEL] | ((level <= 3) ? TDEFL_GREEDY_PARSING_FLAG : 0); - if (window_bits > 0) comp_flags |= TDEFL_WRITE_ZLIB_HEADER; - - if (!level) comp_flags |= TDEFL_FORCE_ALL_RAW_BLOCKS; - else if (strategy == MZ_FILTERED) comp_flags |= TDEFL_FILTER_MATCHES; - else if (strategy == MZ_HUFFMAN_ONLY) comp_flags &= ~TDEFL_MAX_PROBES_MASK; - else if (strategy == MZ_FIXED) comp_flags |= TDEFL_FORCE_ALL_STATIC_BLOCKS; - else if (strategy == MZ_RLE) comp_flags |= TDEFL_RLE_MATCHES; - - return comp_flags; -} -#endif //MINIZ_NO_ZLIB_APIS - -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable:4204) // nonstandard extension used : non-constant aggregate initializer (also supported by GNU C and C99, so no big deal) -#endif - -// Simple PNG writer function by Alex Evans, 2011. Released into the public domain: https://gist.github.com/908299, more context at -// http://altdevblogaday.org/2011/04/06/a-smaller-jpg-encoder/. -// This is actually a modification of Alex's original code so PNG files generated by this function pass pngcheck. -MINIZ_STATIC void *tdefl_write_image_to_png_file_in_memory_ex(const void *pImage, int w, int h, int num_chans, int bpl, size_t *pLen_out, mz_uint level, mz_bool flip) -{ - // Using a local copy of this array here in case MINIZ_NO_ZLIB_APIS was defined. - static const mz_uint s_tdefl_png_num_probes[11] = { 0, 1, 6, 32, 16, 32, 128, 256, 512, 768, 1500 }; - tdefl_compressor *pComp = (tdefl_compressor *)MZ_MALLOC(sizeof(tdefl_compressor)); tdefl_output_buffer out_buf; int i, y, z; mz_uint32 c; *pLen_out = 0; - if (!pComp) return NULL; - MZ_CLEAR_OBJ(out_buf); out_buf.m_expandable = MZ_TRUE; out_buf.m_capacity = 57+MZ_MAX(64, (1+bpl)*h); if (NULL == (out_buf.m_pBuf = (mz_uint8*)MZ_MALLOC(out_buf.m_capacity))) { MZ_FREE(pComp); return NULL; } - // write dummy header - for (z = 41; z; --z) tdefl_output_buffer_putter(&z, 1, &out_buf); - // compress image data - tdefl_init(pComp, tdefl_output_buffer_putter, &out_buf, s_tdefl_png_num_probes[MZ_MIN(10, level)] | TDEFL_WRITE_ZLIB_HEADER); - for (y = 0; y < h; ++y) { tdefl_compress_buffer(pComp, &z, 1, TDEFL_NO_FLUSH); tdefl_compress_buffer(pComp, (mz_uint8*)pImage + (flip ? (h - 1 - y) : y) * bpl, bpl, TDEFL_NO_FLUSH); } - if (tdefl_compress_buffer(pComp, NULL, 0, TDEFL_FINISH) != TDEFL_STATUS_DONE) { MZ_FREE(pComp); MZ_FREE(out_buf.m_pBuf); return NULL; } - // write real header - *pLen_out = out_buf.m_size-41; - { - static const mz_uint8 chans[] = {0x00, 0x00, 0x04, 0x02, 0x06}; - mz_uint8 pnghdr[41]={0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52, - 0,0,(mz_uint8)(w>>8),(mz_uint8)w,0,0,(mz_uint8)(h>>8),(mz_uint8)h,8,chans[num_chans],0,0,0,0,0,0,0, - (mz_uint8)(*pLen_out>>24),(mz_uint8)(*pLen_out>>16),(mz_uint8)(*pLen_out>>8),(mz_uint8)*pLen_out,0x49,0x44,0x41,0x54}; - c=(mz_uint32)mz_crc32(MZ_CRC32_INIT,pnghdr+12,17); for (i=0; i<4; ++i, c<<=8) ((mz_uint8*)(pnghdr+29))[i]=(mz_uint8)(c>>24); - memcpy(out_buf.m_pBuf, pnghdr, 41); - } - // write footer (IDAT CRC-32, followed by IEND chunk) - if (!tdefl_output_buffer_putter("\0\0\0\0\0\0\0\0\x49\x45\x4e\x44\xae\x42\x60\x82", 16, &out_buf)) { *pLen_out = 0; MZ_FREE(pComp); MZ_FREE(out_buf.m_pBuf); return NULL; } - c = (mz_uint32)mz_crc32(MZ_CRC32_INIT,out_buf.m_pBuf+41-4, *pLen_out+4); for (i=0; i<4; ++i, c<<=8) (out_buf.m_pBuf+out_buf.m_size-16)[i] = (mz_uint8)(c >> 24); - // compute final size of file, grab compressed data buffer and return - *pLen_out += 57; MZ_FREE(pComp); return out_buf.m_pBuf; -} -MINIZ_STATIC void *tdefl_write_image_to_png_file_in_memory(const void *pImage, int w, int h, int num_chans, int bpl, size_t *pLen_out) -{ - // Level 6 corresponds to TDEFL_DEFAULT_MAX_PROBES or MZ_DEFAULT_LEVEL (but we can't depend on MZ_DEFAULT_LEVEL being available in case the zlib API's where #defined out) - return tdefl_write_image_to_png_file_in_memory_ex(pImage, w, h, num_chans, bpl, pLen_out, 6, MZ_FALSE); -} - -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -// ------------------- .ZIP archive reading - -#ifndef MINIZ_NO_ARCHIVE_APIS - -#ifdef MINIZ_NO_STDIO - #define MZ_FILE void * -#else - #include - #include - - #if defined(_MSC_VER) || defined(__MINGW64__) - static FILE *mz_fopen(const char *pFilename, const char *pMode) - { - FILE* pFile = NULL; - fopen_s(&pFile, pFilename, pMode); - return pFile; - } - static FILE *mz_freopen(const char *pPath, const char *pMode, FILE *pStream) - { - FILE* pFile = NULL; - if (freopen_s(&pFile, pPath, pMode, pStream)) - return NULL; - return pFile; - } - #ifndef MINIZ_NO_TIME - #include - #endif - #define MZ_FILE FILE - #define MZ_FOPEN mz_fopen - #define MZ_FCLOSE fclose - #define MZ_FREAD fread - #define MZ_FWRITE fwrite - #define MZ_FTELL64 _ftelli64 - #define MZ_FSEEK64 _fseeki64 - #define MZ_FILE_STAT_STRUCT _stat - #define MZ_FILE_STAT _stat - #define MZ_FFLUSH fflush - #define MZ_FREOPEN mz_freopen - #define MZ_DELETE_FILE remove - #elif defined(__MINGW32__) - #ifndef MINIZ_NO_TIME - #include - #endif - #define MZ_FILE FILE - #define MZ_FOPEN(f, m) fopen(f, m) - #define MZ_FCLOSE fclose - #define MZ_FREAD fread - #define MZ_FWRITE fwrite - #define MZ_FTELL64 ftello64 - #define MZ_FSEEK64 fseeko64 - #define MZ_FILE_STAT_STRUCT _stat - #define MZ_FILE_STAT _stat - #define MZ_FFLUSH fflush - #define MZ_FREOPEN(f, m, s) freopen(f, m, s) - #define MZ_DELETE_FILE remove - #elif defined(__TINYC__) - #ifndef MINIZ_NO_TIME - #include - #endif - #define MZ_FILE FILE - #define MZ_FOPEN(f, m) fopen(f, m) - #define MZ_FCLOSE fclose - #define MZ_FREAD fread - #define MZ_FWRITE fwrite - #define MZ_FTELL64 ftell - #define MZ_FSEEK64 fseek - #define MZ_FILE_STAT_STRUCT stat - #define MZ_FILE_STAT stat - #define MZ_FFLUSH fflush - #define MZ_FREOPEN(f, m, s) freopen(f, m, s) - #define MZ_DELETE_FILE remove - #elif defined(__GNUC__) && _LARGEFILE64_SOURCE - #ifndef MINIZ_NO_TIME - #include - #endif - #define MZ_FILE FILE - #define MZ_FOPEN(f, m) fopen64(f, m) - #define MZ_FCLOSE fclose - #define MZ_FREAD fread - #define MZ_FWRITE fwrite - #define MZ_FTELL64 ftello64 - #define MZ_FSEEK64 fseeko64 - #define MZ_FILE_STAT_STRUCT stat64 - #define MZ_FILE_STAT stat64 - #define MZ_FFLUSH fflush - #define MZ_FREOPEN(p, m, s) freopen64(p, m, s) - #define MZ_DELETE_FILE remove - #else - #ifndef MINIZ_NO_TIME - #include - #endif - #define MZ_FILE FILE - #define MZ_FOPEN(f, m) fopen(f, m) - #define MZ_FCLOSE fclose - #define MZ_FREAD fread - #define MZ_FWRITE fwrite - #define MZ_FTELL64 ftello - #define MZ_FSEEK64 fseeko - #define MZ_FILE_STAT_STRUCT stat - #define MZ_FILE_STAT stat - #define MZ_FFLUSH fflush - #define MZ_FREOPEN(f, m, s) freopen(f, m, s) - #define MZ_DELETE_FILE remove - #endif // #ifdef _MSC_VER -#endif // #ifdef MINIZ_NO_STDIO - -#define MZ_TOLOWER(c) ((((c) >= 'A') && ((c) <= 'Z')) ? ((c) - 'A' + 'a') : (c)) - -// Various ZIP archive enums. To completely avoid cross platform compiler alignment and platform endian issues, miniz.c doesn't use structs for any of this stuff. -enum -{ - // ZIP archive identifiers and record sizes - MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG = 0x06054b50, MZ_ZIP_CENTRAL_DIR_HEADER_SIG = 0x02014b50, MZ_ZIP_LOCAL_DIR_HEADER_SIG = 0x04034b50, - MZ_ZIP_LOCAL_DIR_HEADER_SIZE = 30, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE = 46, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE = 22, - // Central directory header record offsets - MZ_ZIP_CDH_SIG_OFS = 0, MZ_ZIP_CDH_VERSION_MADE_BY_OFS = 4, MZ_ZIP_CDH_VERSION_NEEDED_OFS = 6, MZ_ZIP_CDH_BIT_FLAG_OFS = 8, - MZ_ZIP_CDH_METHOD_OFS = 10, MZ_ZIP_CDH_FILE_TIME_OFS = 12, MZ_ZIP_CDH_FILE_DATE_OFS = 14, MZ_ZIP_CDH_CRC32_OFS = 16, - MZ_ZIP_CDH_COMPRESSED_SIZE_OFS = 20, MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS = 24, MZ_ZIP_CDH_FILENAME_LEN_OFS = 28, MZ_ZIP_CDH_EXTRA_LEN_OFS = 30, - MZ_ZIP_CDH_COMMENT_LEN_OFS = 32, MZ_ZIP_CDH_DISK_START_OFS = 34, MZ_ZIP_CDH_INTERNAL_ATTR_OFS = 36, MZ_ZIP_CDH_EXTERNAL_ATTR_OFS = 38, MZ_ZIP_CDH_LOCAL_HEADER_OFS = 42, - // Local directory header offsets - MZ_ZIP_LDH_SIG_OFS = 0, MZ_ZIP_LDH_VERSION_NEEDED_OFS = 4, MZ_ZIP_LDH_BIT_FLAG_OFS = 6, MZ_ZIP_LDH_METHOD_OFS = 8, MZ_ZIP_LDH_FILE_TIME_OFS = 10, - MZ_ZIP_LDH_FILE_DATE_OFS = 12, MZ_ZIP_LDH_CRC32_OFS = 14, MZ_ZIP_LDH_COMPRESSED_SIZE_OFS = 18, MZ_ZIP_LDH_DECOMPRESSED_SIZE_OFS = 22, - MZ_ZIP_LDH_FILENAME_LEN_OFS = 26, MZ_ZIP_LDH_EXTRA_LEN_OFS = 28, - // End of central directory offsets - MZ_ZIP_ECDH_SIG_OFS = 0, MZ_ZIP_ECDH_NUM_THIS_DISK_OFS = 4, MZ_ZIP_ECDH_NUM_DISK_CDIR_OFS = 6, MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS = 8, - MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS = 10, MZ_ZIP_ECDH_CDIR_SIZE_OFS = 12, MZ_ZIP_ECDH_CDIR_OFS_OFS = 16, MZ_ZIP_ECDH_COMMENT_SIZE_OFS = 20, -}; - -typedef struct -{ - void *m_p; - size_t m_size, m_capacity; - mz_uint m_element_size; -} mz_zip_array; - -struct mz_zip_internal_state_tag -{ - mz_zip_array m_central_dir; - mz_zip_array m_central_dir_offsets; - mz_zip_array m_sorted_central_dir_offsets; - MZ_FILE *m_pFile; - void *m_pMem; - size_t m_mem_size; - size_t m_mem_capacity; -}; - -#define MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(array_ptr, element_size) (array_ptr)->m_element_size = element_size -#define MZ_ZIP_ARRAY_ELEMENT(array_ptr, element_type, index) ((element_type *)((array_ptr)->m_p))[index] - -static MZ_FORCEINLINE void mz_zip_array_clear(mz_zip_archive *pZip, mz_zip_array *pArray) -{ - pZip->m_pFree(pZip->m_pAlloc_opaque, pArray->m_p); - memset(pArray, 0, sizeof(mz_zip_array)); -} - -static mz_bool mz_zip_array_ensure_capacity(mz_zip_archive *pZip, mz_zip_array *pArray, size_t min_new_capacity, mz_uint growing) -{ - void *pNew_p; size_t new_capacity = min_new_capacity; MZ_ASSERT(pArray->m_element_size); if (pArray->m_capacity >= min_new_capacity) return MZ_TRUE; - if (growing) { new_capacity = MZ_MAX(1, pArray->m_capacity); while (new_capacity < min_new_capacity) new_capacity *= 2; } - if (NULL == (pNew_p = pZip->m_pRealloc(pZip->m_pAlloc_opaque, pArray->m_p, pArray->m_element_size, new_capacity))) return MZ_FALSE; - pArray->m_p = pNew_p; pArray->m_capacity = new_capacity; - return MZ_TRUE; -} - -static MZ_FORCEINLINE mz_bool mz_zip_array_reserve(mz_zip_archive *pZip, mz_zip_array *pArray, size_t new_capacity, mz_uint growing) -{ - if (new_capacity > pArray->m_capacity) { if (!mz_zip_array_ensure_capacity(pZip, pArray, new_capacity, growing)) return MZ_FALSE; } - return MZ_TRUE; -} - -static MZ_FORCEINLINE mz_bool mz_zip_array_resize(mz_zip_archive *pZip, mz_zip_array *pArray, size_t new_size, mz_uint growing) -{ - if (new_size > pArray->m_capacity) { if (!mz_zip_array_ensure_capacity(pZip, pArray, new_size, growing)) return MZ_FALSE; } - pArray->m_size = new_size; - return MZ_TRUE; -} - -static MZ_FORCEINLINE mz_bool mz_zip_array_ensure_room(mz_zip_archive *pZip, mz_zip_array *pArray, size_t n) -{ - return mz_zip_array_reserve(pZip, pArray, pArray->m_size + n, MZ_TRUE); -} - -static MZ_FORCEINLINE mz_bool mz_zip_array_push_back(mz_zip_archive *pZip, mz_zip_array *pArray, const void *pElements, size_t n) -{ - size_t orig_size = pArray->m_size; if (!mz_zip_array_resize(pZip, pArray, orig_size + n, MZ_TRUE)) return MZ_FALSE; - memcpy((mz_uint8*)pArray->m_p + orig_size * pArray->m_element_size, pElements, n * pArray->m_element_size); - return MZ_TRUE; -} - -#ifndef MINIZ_NO_TIME -static time_t mz_zip_dos_to_time_t(int dos_time, int dos_date) -{ - struct tm tm; - memset(&tm, 0, sizeof(tm)); tm.tm_isdst = -1; - tm.tm_year = ((dos_date >> 9) & 127) + 1980 - 1900; tm.tm_mon = ((dos_date >> 5) & 15) - 1; tm.tm_mday = dos_date & 31; - tm.tm_hour = (dos_time >> 11) & 31; tm.tm_min = (dos_time >> 5) & 63; tm.tm_sec = (dos_time << 1) & 62; - return mktime(&tm); -} - -static void mz_zip_time_to_dos_time(time_t time, mz_uint16 *pDOS_time, mz_uint16 *pDOS_date) -{ -#ifdef _MSC_VER - struct tm tm_struct; - struct tm *tm = &tm_struct; - errno_t err = localtime_s(tm, &time); - if (err) - { - *pDOS_date = 0; *pDOS_time = 0; - return; - } -#else - struct tm *tm = localtime(&time); -#endif - *pDOS_time = (mz_uint16)(((tm->tm_hour) << 11) + ((tm->tm_min) << 5) + ((tm->tm_sec) >> 1)); - *pDOS_date = (mz_uint16)(((tm->tm_year + 1900 - 1980) << 9) + ((tm->tm_mon + 1) << 5) + tm->tm_mday); -} -#endif - -#ifndef MINIZ_NO_STDIO -static mz_bool mz_zip_get_file_modified_time(const char *pFilename, mz_uint16 *pDOS_time, mz_uint16 *pDOS_date) -{ -#ifdef MINIZ_NO_TIME - (void)pFilename; *pDOS_date = *pDOS_time = 0; -#else - struct MZ_FILE_STAT_STRUCT file_stat; - // On Linux with x86 glibc, this call will fail on large files (>= 0x80000000 bytes) unless you compiled with _LARGEFILE64_SOURCE. Argh. - if (MZ_FILE_STAT(pFilename, &file_stat) != 0) - return MZ_FALSE; - mz_zip_time_to_dos_time(file_stat.st_mtime, pDOS_time, pDOS_date); -#endif // #ifdef MINIZ_NO_TIME - return MZ_TRUE; -} - -#ifndef MINIZ_NO_TIME -static mz_bool mz_zip_set_file_times(const char *pFilename, time_t access_time, time_t modified_time) -{ - struct utimbuf t; t.actime = access_time; t.modtime = modified_time; - return !utime(pFilename, &t); -} -#endif // #ifndef MINIZ_NO_TIME -#endif // #ifndef MINIZ_NO_STDIO - -static mz_bool mz_zip_reader_init_internal(mz_zip_archive *pZip, mz_uint32 flags) -{ - (void)flags; - if ((!pZip) || (pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_INVALID)) - return MZ_FALSE; - - if (!pZip->m_pAlloc) pZip->m_pAlloc = def_alloc_func; - if (!pZip->m_pFree) pZip->m_pFree = def_free_func; - if (!pZip->m_pRealloc) pZip->m_pRealloc = def_realloc_func; - - pZip->m_zip_mode = MZ_ZIP_MODE_READING; - pZip->m_archive_size = 0; - pZip->m_central_directory_file_ofs = 0; - pZip->m_total_files = 0; - - if (NULL == (pZip->m_pState = (mz_zip_internal_state *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(mz_zip_internal_state)))) - return MZ_FALSE; - memset(pZip->m_pState, 0, sizeof(mz_zip_internal_state)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir, sizeof(mz_uint8)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir_offsets, sizeof(mz_uint32)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_sorted_central_dir_offsets, sizeof(mz_uint32)); - return MZ_TRUE; -} - -static MZ_FORCEINLINE mz_bool mz_zip_reader_filename_less(const mz_zip_array *pCentral_dir_array, const mz_zip_array *pCentral_dir_offsets, mz_uint l_index, mz_uint r_index) -{ - const mz_uint8 *pL = &MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_array, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_offsets, mz_uint32, l_index)), *pE; - const mz_uint8 *pR = &MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_array, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_offsets, mz_uint32, r_index)); - mz_uint l_len = MZ_READ_LE16(pL + MZ_ZIP_CDH_FILENAME_LEN_OFS), r_len = MZ_READ_LE16(pR + MZ_ZIP_CDH_FILENAME_LEN_OFS); - mz_uint8 l = 0, r = 0; - pL += MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; pR += MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; - pE = pL + MZ_MIN(l_len, r_len); - while (pL < pE) - { - if ((l = MZ_TOLOWER(*pL)) != (r = MZ_TOLOWER(*pR))) - break; - pL++; pR++; - } - return (pL == pE) ? (l_len < r_len) : (l < r); -} - -#define MZ_SWAP_UINT32(a, b) do { mz_uint32 t = a; a = b; b = t; } MZ_MACRO_END - -// Heap sort of lowercased filenames, used to help accelerate plain central directory searches by mz_zip_reader_locate_file(). (Could also use qsort(), but it could allocate memory.) -static void mz_zip_reader_sort_central_dir_offsets_by_filename(mz_zip_archive *pZip) -{ - mz_zip_internal_state *pState = pZip->m_pState; - const mz_zip_array *pCentral_dir_offsets = &pState->m_central_dir_offsets; - const mz_zip_array *pCentral_dir = &pState->m_central_dir; - mz_uint32 *pIndices = &MZ_ZIP_ARRAY_ELEMENT(&pState->m_sorted_central_dir_offsets, mz_uint32, 0); - const int size = pZip->m_total_files; - int start = (size - 2) >> 1, end; - while (start >= 0) - { - int child, root = start; - for ( ; ; ) - { - if ((child = (root << 1) + 1) >= size) - break; - child += (((child + 1) < size) && (mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[child], pIndices[child + 1]))); - if (!mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[root], pIndices[child])) - break; - MZ_SWAP_UINT32(pIndices[root], pIndices[child]); root = child; - } - start--; - } - - end = size - 1; - while (end > 0) - { - int child, root = 0; - MZ_SWAP_UINT32(pIndices[end], pIndices[0]); - for ( ; ; ) - { - if ((child = (root << 1) + 1) >= end) - break; - child += (((child + 1) < end) && mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[child], pIndices[child + 1])); - if (!mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[root], pIndices[child])) - break; - MZ_SWAP_UINT32(pIndices[root], pIndices[child]); root = child; - } - end--; - } -} - -static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip, mz_uint32 flags) -{ - mz_uint cdir_size, num_this_disk, cdir_disk_index; - mz_uint64 cdir_ofs; - mz_int64 cur_file_ofs; - const mz_uint8 *p; - mz_uint32 buf_u32[4096 / sizeof(mz_uint32)]; mz_uint8 *pBuf = (mz_uint8 *)buf_u32; - mz_bool sort_central_dir = ((flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0); - // Basic sanity checks - reject files which are too small, and check the first 4 bytes of the file to make sure a local header is there. - if (pZip->m_archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) - return MZ_FALSE; - // Find the end of central directory record by scanning the file from the end towards the beginning. - cur_file_ofs = MZ_MAX((mz_int64)pZip->m_archive_size - (mz_int64)sizeof(buf_u32), 0); - for ( ; ; ) - { - int i, n = (int)MZ_MIN(sizeof(buf_u32), pZip->m_archive_size - cur_file_ofs); - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, n) != (mz_uint)n) - return MZ_FALSE; - for (i = n - 4; i >= 0; --i) - if (MZ_READ_LE32(pBuf + i) == MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG) - break; - if (i >= 0) - { - cur_file_ofs += i; - break; - } - if ((!cur_file_ofs) || ((pZip->m_archive_size - cur_file_ofs) >= (0xFFFF + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE))) - return MZ_FALSE; - cur_file_ofs = MZ_MAX(cur_file_ofs - (sizeof(buf_u32) - 3), 0); - } - // Read and verify the end of central directory record. - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) != MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) - return MZ_FALSE; - if ((MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_SIG_OFS) != MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG) || - ((pZip->m_total_files = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS)) != MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS))) - return MZ_FALSE; - - num_this_disk = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_THIS_DISK_OFS); - cdir_disk_index = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_DISK_CDIR_OFS); - if (((num_this_disk | cdir_disk_index) != 0) && ((num_this_disk != 1) || (cdir_disk_index != 1))) - return MZ_FALSE; - - if ((cdir_size = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_SIZE_OFS)) < pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) - return MZ_FALSE; - - cdir_ofs = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_OFS_OFS); - if ((cdir_ofs + (mz_uint64)cdir_size) > pZip->m_archive_size) - return MZ_FALSE; - - pZip->m_central_directory_file_ofs = cdir_ofs; - - if (pZip->m_total_files) - { - mz_uint i, n; - - // Read the entire central directory into a heap block, and allocate another heap block to hold the unsorted central dir file record offsets, and another to hold the sorted indices. - if ((!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir, cdir_size, MZ_FALSE)) || - (!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir_offsets, pZip->m_total_files, MZ_FALSE))) - return MZ_FALSE; - - if (sort_central_dir) - { - if (!mz_zip_array_resize(pZip, &pZip->m_pState->m_sorted_central_dir_offsets, pZip->m_total_files, MZ_FALSE)) - return MZ_FALSE; - } - - if (pZip->m_pRead(pZip->m_pIO_opaque, cdir_ofs, pZip->m_pState->m_central_dir.m_p, cdir_size) != cdir_size) - return MZ_FALSE; - - // Now create an index into the central directory file records, do some basic sanity checking on each record, and check for zip64 entries (which are not yet supported). - p = (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p; - for (n = cdir_size, i = 0; i < pZip->m_total_files; ++i) - { - mz_uint total_header_size, comp_size, decomp_size, disk_index; - if ((n < MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) || (MZ_READ_LE32(p) != MZ_ZIP_CENTRAL_DIR_HEADER_SIG)) - return MZ_FALSE; - MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, i) = (mz_uint32)(p - (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p); - if (sort_central_dir) - MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_sorted_central_dir_offsets, mz_uint32, i) = i; - comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); - decomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS); - if (((!MZ_READ_LE32(p + MZ_ZIP_CDH_METHOD_OFS)) && (decomp_size != comp_size)) || (decomp_size && !comp_size) || (decomp_size == 0xFFFFFFFF) || (comp_size == 0xFFFFFFFF)) - return MZ_FALSE; - disk_index = MZ_READ_LE16(p + MZ_ZIP_CDH_DISK_START_OFS); - if ((disk_index != num_this_disk) && (disk_index != 1)) - return MZ_FALSE; - if (((mz_uint64)MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS) + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + comp_size) > pZip->m_archive_size) - return MZ_FALSE; - if ((total_header_size = MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS)) > n) - return MZ_FALSE; - n -= total_header_size; p += total_header_size; - } - } - - if (sort_central_dir) - mz_zip_reader_sort_central_dir_offsets_by_filename(pZip); - - return MZ_TRUE; -} - -mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size, mz_uint32 flags) -{ - if ((!pZip) || (!pZip->m_pRead)) - return MZ_FALSE; - if (!mz_zip_reader_init_internal(pZip, flags)) - return MZ_FALSE; - pZip->m_archive_size = size; - if (!mz_zip_reader_read_central_dir(pZip, flags)) - { - mz_zip_reader_end(pZip); - return MZ_FALSE; - } - return MZ_TRUE; -} - -static size_t mz_zip_mem_read_func(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n) -{ - mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; - size_t s = (file_ofs >= pZip->m_archive_size) ? 0 : (size_t)MZ_MIN(pZip->m_archive_size - file_ofs, n); - memcpy(pBuf, (const mz_uint8 *)pZip->m_pState->m_pMem + file_ofs, s); - return s; -} - -mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem, size_t size, mz_uint32 flags) -{ - if (!mz_zip_reader_init_internal(pZip, flags)) - return MZ_FALSE; - pZip->m_archive_size = size; - pZip->m_pRead = mz_zip_mem_read_func; - pZip->m_pIO_opaque = pZip; -#ifdef __cplusplus - pZip->m_pState->m_pMem = const_cast(pMem); -#else - pZip->m_pState->m_pMem = (void *)pMem; -#endif - pZip->m_pState->m_mem_size = size; - if (!mz_zip_reader_read_central_dir(pZip, flags)) - { - mz_zip_reader_end(pZip); - return MZ_FALSE; - } - return MZ_TRUE; -} - -#ifndef MINIZ_NO_STDIO -static size_t mz_zip_file_read_func(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n) -{ - mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; - mz_int64 cur_ofs = MZ_FTELL64(pZip->m_pState->m_pFile); - if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pZip->m_pState->m_pFile, (mz_int64)file_ofs, SEEK_SET)))) - return 0; - return MZ_FREAD(pBuf, 1, n, pZip->m_pState->m_pFile); -} - -mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint32 flags) -{ - mz_uint64 file_size; - MZ_FILE *pFile = MZ_FOPEN(pFilename, "rb"); - if (!pFile) - return MZ_FALSE; - if (MZ_FSEEK64(pFile, 0, SEEK_END)) - { - MZ_FCLOSE(pFile); - return MZ_FALSE; - } - file_size = MZ_FTELL64(pFile); - if (!mz_zip_reader_init_internal(pZip, flags)) - { - MZ_FCLOSE(pFile); - return MZ_FALSE; - } - pZip->m_pRead = mz_zip_file_read_func; - pZip->m_pIO_opaque = pZip; - pZip->m_pState->m_pFile = pFile; - pZip->m_archive_size = file_size; - if (!mz_zip_reader_read_central_dir(pZip, flags)) - { - mz_zip_reader_end(pZip); - return MZ_FALSE; - } - return MZ_TRUE; -} -#endif // #ifndef MINIZ_NO_STDIO - -mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip) -{ - return pZip ? pZip->m_total_files : 0; -} - -static MZ_FORCEINLINE const mz_uint8 *mz_zip_reader_get_cdh(mz_zip_archive *pZip, mz_uint file_index) -{ - if ((!pZip) || (!pZip->m_pState) || (file_index >= pZip->m_total_files) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) - return NULL; - return &MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index)); -} - -mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip, mz_uint file_index) -{ - mz_uint m_bit_flag; - const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index); - if (!p) - return MZ_FALSE; - m_bit_flag = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS); - return (m_bit_flag & 1); -} - -mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip, mz_uint file_index) -{ - mz_uint filename_len, external_attr; - const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index); - if (!p) - return MZ_FALSE; - - // First see if the filename ends with a '/' character. - filename_len = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); - if (filename_len) - { - if (*(p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_len - 1) == '/') - return MZ_TRUE; - } - - // Bugfix: This code was also checking if the internal attribute was non-zero, which wasn't correct. - // Most/all zip writers (hopefully) set DOS file/directory attributes in the low 16-bits, so check for the DOS directory flag and ignore the source OS ID in the created by field. - // FIXME: Remove this check? Is it necessary - we already check the filename. - external_attr = MZ_READ_LE32(p + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS); - if ((external_attr & 0x10) != 0) - return MZ_TRUE; - - return MZ_FALSE; -} - -mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index, mz_zip_archive_file_stat *pStat) -{ - mz_uint n; - const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index); - if ((!p) || (!pStat)) - return MZ_FALSE; - - // Unpack the central directory record. - pStat->m_file_index = file_index; - pStat->m_central_dir_ofs = MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index); - pStat->m_version_made_by = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_MADE_BY_OFS); - pStat->m_version_needed = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_NEEDED_OFS); - pStat->m_bit_flag = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS); - pStat->m_method = MZ_READ_LE16(p + MZ_ZIP_CDH_METHOD_OFS); -#ifndef MINIZ_NO_TIME - pStat->m_time = mz_zip_dos_to_time_t(MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_TIME_OFS), MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_DATE_OFS)); -#endif - pStat->m_crc32 = MZ_READ_LE32(p + MZ_ZIP_CDH_CRC32_OFS); - pStat->m_comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); - pStat->m_uncomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS); - pStat->m_internal_attr = MZ_READ_LE16(p + MZ_ZIP_CDH_INTERNAL_ATTR_OFS); - pStat->m_external_attr = MZ_READ_LE32(p + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS); - pStat->m_local_header_ofs = MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS); - - // Copy as much of the filename and comment as possible. - n = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); n = MZ_MIN(n, MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE - 1); - memcpy(pStat->m_filename, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n); pStat->m_filename[n] = '\0'; - - n = MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS); n = MZ_MIN(n, MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE - 1); - pStat->m_comment_size = n; - memcpy(pStat->m_comment, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS), n); pStat->m_comment[n] = '\0'; - - return MZ_TRUE; -} - -mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_index, char *pFilename, mz_uint filename_buf_size) -{ - mz_uint n; - const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index); - if (!p) { if (filename_buf_size) pFilename[0] = '\0'; return 0; } - n = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); - if (filename_buf_size) - { - n = MZ_MIN(n, filename_buf_size - 1); - memcpy(pFilename, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n); - pFilename[n] = '\0'; - } - return n + 1; -} - -static MZ_FORCEINLINE mz_bool mz_zip_reader_string_equal(const char *pA, const char *pB, mz_uint len, mz_uint flags) -{ - mz_uint i; - if (flags & MZ_ZIP_FLAG_CASE_SENSITIVE) - return 0 == memcmp(pA, pB, len); - for (i = 0; i < len; ++i) - if (MZ_TOLOWER(pA[i]) != MZ_TOLOWER(pB[i])) - return MZ_FALSE; - return MZ_TRUE; -} - -static MZ_FORCEINLINE int mz_zip_reader_filename_compare(const mz_zip_array *pCentral_dir_array, const mz_zip_array *pCentral_dir_offsets, mz_uint l_index, const char *pR, mz_uint r_len) -{ - const mz_uint8 *pL = &MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_array, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_offsets, mz_uint32, l_index)), *pE; - mz_uint l_len = MZ_READ_LE16(pL + MZ_ZIP_CDH_FILENAME_LEN_OFS); - mz_uint8 l = 0, r = 0; - pL += MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; - pE = pL + MZ_MIN(l_len, r_len); - while (pL < pE) - { - if ((l = MZ_TOLOWER(*pL)) != (r = MZ_TOLOWER(*pR))) - break; - pL++; pR++; - } - return (pL == pE) ? (int)(l_len - r_len) : (l - r); -} - -static int mz_zip_reader_locate_file_binary_search(mz_zip_archive *pZip, const char *pFilename) -{ - mz_zip_internal_state *pState = pZip->m_pState; - const mz_zip_array *pCentral_dir_offsets = &pState->m_central_dir_offsets; - const mz_zip_array *pCentral_dir = &pState->m_central_dir; - mz_uint32 *pIndices = &MZ_ZIP_ARRAY_ELEMENT(&pState->m_sorted_central_dir_offsets, mz_uint32, 0); - const int size = pZip->m_total_files; - const mz_uint filename_len = (mz_uint)strlen(pFilename); - int l = 0, h = size - 1; - while (l <= h) - { - int m = (l + h) >> 1, file_index = pIndices[m], comp = mz_zip_reader_filename_compare(pCentral_dir, pCentral_dir_offsets, file_index, pFilename, filename_len); - if (!comp) - return file_index; - else if (comp < 0) - l = m + 1; - else - h = m - 1; - } - return -1; -} - -int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags) -{ - mz_uint file_index; size_t name_len, comment_len; - if ((!pZip) || (!pZip->m_pState) || (!pName) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) - return -1; - if (((flags & (MZ_ZIP_FLAG_IGNORE_PATH | MZ_ZIP_FLAG_CASE_SENSITIVE)) == 0) && (!pComment) && (pZip->m_pState->m_sorted_central_dir_offsets.m_size)) - return mz_zip_reader_locate_file_binary_search(pZip, pName); - name_len = strlen(pName); if (name_len > 0xFFFF) return -1; - comment_len = pComment ? strlen(pComment) : 0; if (comment_len > 0xFFFF) return -1; - for (file_index = 0; file_index < pZip->m_total_files; file_index++) - { - const mz_uint8 *pHeader = &MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index)); - mz_uint filename_len = MZ_READ_LE16(pHeader + MZ_ZIP_CDH_FILENAME_LEN_OFS); - const char *pFilename = (const char *)pHeader + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; - if (filename_len < name_len) - continue; - if (comment_len) - { - mz_uint file_extra_len = MZ_READ_LE16(pHeader + MZ_ZIP_CDH_EXTRA_LEN_OFS), file_comment_len = MZ_READ_LE16(pHeader + MZ_ZIP_CDH_COMMENT_LEN_OFS); - const char *pFile_comment = pFilename + filename_len + file_extra_len; - if ((file_comment_len != comment_len) || (!mz_zip_reader_string_equal(pComment, pFile_comment, file_comment_len, flags))) - continue; - } - if ((flags & MZ_ZIP_FLAG_IGNORE_PATH) && (filename_len)) - { - int ofs = filename_len - 1; - do - { - if ((pFilename[ofs] == '/') || (pFilename[ofs] == '\\') || (pFilename[ofs] == ':')) - break; - } while (--ofs >= 0); - ofs++; - pFilename += ofs; filename_len -= ofs; - } - if ((filename_len == name_len) && (mz_zip_reader_string_equal(pName, pFilename, filename_len, flags))) - return file_index; - } - return -1; -} - -mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size) -{ - int status = TINFL_STATUS_DONE; - mz_uint64 needed_size, cur_file_ofs, comp_remaining, out_buf_ofs = 0, read_buf_size, read_buf_ofs = 0, read_buf_avail; - mz_zip_archive_file_stat file_stat; - void *pRead_buf; - mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; - tinfl_decompressor inflator; - - if ((buf_size) && (!pBuf)) - return MZ_FALSE; - - if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) - return MZ_FALSE; - - // Empty file, or a directory (but not always a directory - I've seen odd zips with directories that have compressed data which inflates to 0 bytes) - if (!file_stat.m_comp_size) - return MZ_TRUE; - - // Entry is a subdirectory (I've seen old zips with dir entries which have compressed deflate data which inflates to 0 bytes, but these entries claim to uncompress to 512 bytes in the headers). - // I'm torn how to handle this case - should it fail instead? - if (mz_zip_reader_is_file_a_directory(pZip, file_index)) - return MZ_TRUE; - - // Encryption and patch files are not supported. - if (file_stat.m_bit_flag & (1 | 32)) - return MZ_FALSE; - - // This function only supports stored and deflate. - if ((!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (file_stat.m_method != 0) && (file_stat.m_method != MZ_DEFLATED)) - return MZ_FALSE; - - // Ensure supplied output buffer is large enough. - needed_size = (flags & MZ_ZIP_FLAG_COMPRESSED_DATA) ? file_stat.m_comp_size : file_stat.m_uncomp_size; - if (buf_size < needed_size) - return MZ_FALSE; - - // Read and parse the local directory entry. - cur_file_ofs = file_stat.m_local_header_ofs; - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) - return MZ_FALSE; - if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) - return MZ_FALSE; - - cur_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); - if ((cur_file_ofs + file_stat.m_comp_size) > pZip->m_archive_size) - return MZ_FALSE; - - if ((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!file_stat.m_method)) - { - // The file is stored or the caller has requested the compressed data. - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, (size_t)needed_size) != needed_size) - return MZ_FALSE; - return ((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) != 0) || (mz_crc32(MZ_CRC32_INIT, (const mz_uint8 *)pBuf, (size_t)file_stat.m_uncomp_size) == file_stat.m_crc32); - } - - // Decompress the file either directly from memory or from a file input buffer. - tinfl_init(&inflator); - - if (pZip->m_pState->m_pMem) - { - // Read directly from the archive in memory. - pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + cur_file_ofs; - read_buf_size = read_buf_avail = file_stat.m_comp_size; - comp_remaining = 0; - } - else if (pUser_read_buf) - { - // Use a user provided read buffer. - if (!user_read_buf_size) - return MZ_FALSE; - pRead_buf = (mz_uint8 *)pUser_read_buf; - read_buf_size = user_read_buf_size; - read_buf_avail = 0; - comp_remaining = file_stat.m_comp_size; - } - else - { - // Temporarily allocate a read buffer. - read_buf_size = MZ_MIN(file_stat.m_comp_size, MZ_ZIP_MAX_IO_BUF_SIZE); -#ifdef _MSC_VER - if (((0, sizeof(size_t) == sizeof(mz_uint32))) && (read_buf_size > 0x7FFFFFFF)) -#else - if (((sizeof(size_t) == sizeof(mz_uint32))) && (read_buf_size > 0x7FFFFFFF)) -#endif - return MZ_FALSE; - if (NULL == (pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)read_buf_size))) - return MZ_FALSE; - read_buf_avail = 0; - comp_remaining = file_stat.m_comp_size; - } - - do - { - size_t in_buf_size, out_buf_size = (size_t)(file_stat.m_uncomp_size - out_buf_ofs); - if ((!read_buf_avail) && (!pZip->m_pState->m_pMem)) - { - read_buf_avail = MZ_MIN(read_buf_size, comp_remaining); - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) - { - status = TINFL_STATUS_FAILED; - break; - } - cur_file_ofs += read_buf_avail; - comp_remaining -= read_buf_avail; - read_buf_ofs = 0; - } - in_buf_size = (size_t)read_buf_avail; - status = tinfl_decompress(&inflator, (mz_uint8 *)pRead_buf + read_buf_ofs, &in_buf_size, (mz_uint8 *)pBuf, (mz_uint8 *)pBuf + out_buf_ofs, &out_buf_size, TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF | (comp_remaining ? TINFL_FLAG_HAS_MORE_INPUT : 0)); - read_buf_avail -= in_buf_size; - read_buf_ofs += in_buf_size; - out_buf_ofs += out_buf_size; - } while (status == TINFL_STATUS_NEEDS_MORE_INPUT); - - if (status == TINFL_STATUS_DONE) - { - // Make sure the entire file was decompressed, and check its CRC. - if ((out_buf_ofs != file_stat.m_uncomp_size) || (mz_crc32(MZ_CRC32_INIT, (const mz_uint8 *)pBuf, (size_t)file_stat.m_uncomp_size) != file_stat.m_crc32)) - status = TINFL_STATUS_FAILED; - } - - if ((!pZip->m_pState->m_pMem) && (!pUser_read_buf)) - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - - return status == TINFL_STATUS_DONE; -} - -mz_bool mz_zip_reader_extract_file_to_mem_no_alloc(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size) -{ - int file_index = mz_zip_reader_locate_file(pZip, pFilename, NULL, flags); - if (file_index < 0) - return MZ_FALSE; - return mz_zip_reader_extract_to_mem_no_alloc(pZip, file_index, pBuf, buf_size, flags, pUser_read_buf, user_read_buf_size); -} - -mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags) -{ - return mz_zip_reader_extract_to_mem_no_alloc(pZip, file_index, pBuf, buf_size, flags, NULL, 0); -} - -mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags) -{ - return mz_zip_reader_extract_file_to_mem_no_alloc(pZip, pFilename, pBuf, buf_size, flags, NULL, 0); -} - -void *mz_zip_reader_extract_to_heap(mz_zip_archive *pZip, mz_uint file_index, size_t *pSize, mz_uint flags) -{ - mz_uint64 comp_size, uncomp_size, alloc_size; - const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index); - void *pBuf; - - if (pSize) - *pSize = 0; - if (!p) - return NULL; - - comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); - uncomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS); - - alloc_size = (flags & MZ_ZIP_FLAG_COMPRESSED_DATA) ? comp_size : uncomp_size; -#ifdef _MSC_VER - if (((0, sizeof(size_t) == sizeof(mz_uint32))) && (alloc_size > 0x7FFFFFFF)) -#else - if (((sizeof(size_t) == sizeof(mz_uint32))) && (alloc_size > 0x7FFFFFFF)) -#endif - return NULL; - if (NULL == (pBuf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)alloc_size))) - return NULL; - - if (!mz_zip_reader_extract_to_mem(pZip, file_index, pBuf, (size_t)alloc_size, flags)) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return NULL; - } - - if (pSize) *pSize = (size_t)alloc_size; - return pBuf; -} - -void *mz_zip_reader_extract_file_to_heap(mz_zip_archive *pZip, const char *pFilename, size_t *pSize, mz_uint flags) -{ - int file_index = mz_zip_reader_locate_file(pZip, pFilename, NULL, flags); - if (file_index < 0) - { - if (pSize) *pSize = 0; - return MZ_FALSE; - } - return mz_zip_reader_extract_to_heap(pZip, file_index, pSize, flags); -} - -mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip, mz_uint file_index, mz_file_write_func pCallback, void *pOpaque, mz_uint flags) -{ - int status = TINFL_STATUS_DONE; mz_uint file_crc32 = MZ_CRC32_INIT; - mz_uint64 read_buf_size, read_buf_ofs = 0, read_buf_avail, comp_remaining, out_buf_ofs = 0, cur_file_ofs; - mz_zip_archive_file_stat file_stat; - void *pRead_buf = NULL; void *pWrite_buf = NULL; - mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; - - if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) - return MZ_FALSE; - - // Empty file, or a directory (but not always a directory - I've seen odd zips with directories that have compressed data which inflates to 0 bytes) - if (!file_stat.m_comp_size) - return MZ_TRUE; - - // Entry is a subdirectory (I've seen old zips with dir entries which have compressed deflate data which inflates to 0 bytes, but these entries claim to uncompress to 512 bytes in the headers). - // I'm torn how to handle this case - should it fail instead? - if (mz_zip_reader_is_file_a_directory(pZip, file_index)) - return MZ_TRUE; - - // Encryption and patch files are not supported. - if (file_stat.m_bit_flag & (1 | 32)) - return MZ_FALSE; - - // This function only supports stored and deflate. - if ((!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (file_stat.m_method != 0) && (file_stat.m_method != MZ_DEFLATED)) - return MZ_FALSE; - - // Read and parse the local directory entry. - cur_file_ofs = file_stat.m_local_header_ofs; - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) - return MZ_FALSE; - if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) - return MZ_FALSE; - - cur_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); - if ((cur_file_ofs + file_stat.m_comp_size) > pZip->m_archive_size) - return MZ_FALSE; - - // Decompress the file either directly from memory or from a file input buffer. - if (pZip->m_pState->m_pMem) - { - pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + cur_file_ofs; - read_buf_size = read_buf_avail = file_stat.m_comp_size; - comp_remaining = 0; - } - else - { - read_buf_size = MZ_MIN(file_stat.m_comp_size, MZ_ZIP_MAX_IO_BUF_SIZE); - if (NULL == (pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)read_buf_size))) - return MZ_FALSE; - read_buf_avail = 0; - comp_remaining = file_stat.m_comp_size; - } - - if ((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!file_stat.m_method)) - { - // The file is stored or the caller has requested the compressed data. - if (pZip->m_pState->m_pMem) - { -#ifdef _MSC_VER - if (((0, sizeof(size_t) == sizeof(mz_uint32))) && (file_stat.m_comp_size > 0xFFFFFFFF)) -#else - if (((sizeof(size_t) == sizeof(mz_uint32))) && (file_stat.m_comp_size > 0xFFFFFFFF)) -#endif - return MZ_FALSE; - if (pCallback(pOpaque, out_buf_ofs, pRead_buf, (size_t)file_stat.m_comp_size) != file_stat.m_comp_size) - status = TINFL_STATUS_FAILED; - else if (!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) - file_crc32 = (mz_uint32)mz_crc32(file_crc32, (const mz_uint8 *)pRead_buf, (size_t)file_stat.m_comp_size); - cur_file_ofs += file_stat.m_comp_size; - out_buf_ofs += file_stat.m_comp_size; - comp_remaining = 0; - } - else - { - while (comp_remaining) - { - read_buf_avail = MZ_MIN(read_buf_size, comp_remaining); - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) - { - status = TINFL_STATUS_FAILED; - break; - } - - if (!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) - file_crc32 = (mz_uint32)mz_crc32(file_crc32, (const mz_uint8 *)pRead_buf, (size_t)read_buf_avail); - - if (pCallback(pOpaque, out_buf_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) - { - status = TINFL_STATUS_FAILED; - break; - } - cur_file_ofs += read_buf_avail; - out_buf_ofs += read_buf_avail; - comp_remaining -= read_buf_avail; - } - } - } - else - { - tinfl_decompressor inflator; - tinfl_init(&inflator); - - if (NULL == (pWrite_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, TINFL_LZ_DICT_SIZE))) - status = TINFL_STATUS_FAILED; - else - { - do - { - mz_uint8 *pWrite_buf_cur = (mz_uint8 *)pWrite_buf + (out_buf_ofs & (TINFL_LZ_DICT_SIZE - 1)); - size_t in_buf_size, out_buf_size = TINFL_LZ_DICT_SIZE - (out_buf_ofs & (TINFL_LZ_DICT_SIZE - 1)); - if ((!read_buf_avail) && (!pZip->m_pState->m_pMem)) - { - read_buf_avail = MZ_MIN(read_buf_size, comp_remaining); - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) - { - status = TINFL_STATUS_FAILED; - break; - } - cur_file_ofs += read_buf_avail; - comp_remaining -= read_buf_avail; - read_buf_ofs = 0; - } - - in_buf_size = (size_t)read_buf_avail; - status = tinfl_decompress(&inflator, (const mz_uint8 *)pRead_buf + read_buf_ofs, &in_buf_size, (mz_uint8 *)pWrite_buf, pWrite_buf_cur, &out_buf_size, comp_remaining ? TINFL_FLAG_HAS_MORE_INPUT : 0); - read_buf_avail -= in_buf_size; - read_buf_ofs += in_buf_size; - - if (out_buf_size) - { - if (pCallback(pOpaque, out_buf_ofs, pWrite_buf_cur, out_buf_size) != out_buf_size) - { - status = TINFL_STATUS_FAILED; - break; - } - file_crc32 = (mz_uint32)mz_crc32(file_crc32, pWrite_buf_cur, out_buf_size); - if ((out_buf_ofs += out_buf_size) > file_stat.m_uncomp_size) - { - status = TINFL_STATUS_FAILED; - break; - } - } - } while ((status == TINFL_STATUS_NEEDS_MORE_INPUT) || (status == TINFL_STATUS_HAS_MORE_OUTPUT)); - } - } - - if ((status == TINFL_STATUS_DONE) && (!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA))) - { - // Make sure the entire file was decompressed, and check its CRC. - if ((out_buf_ofs != file_stat.m_uncomp_size) || (file_crc32 != file_stat.m_crc32)) - status = TINFL_STATUS_FAILED; - } - - if (!pZip->m_pState->m_pMem) - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - if (pWrite_buf) - pZip->m_pFree(pZip->m_pAlloc_opaque, pWrite_buf); - - return status == TINFL_STATUS_DONE; -} - -mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip, const char *pFilename, mz_file_write_func pCallback, void *pOpaque, mz_uint flags) -{ - int file_index = mz_zip_reader_locate_file(pZip, pFilename, NULL, flags); - if (file_index < 0) - return MZ_FALSE; - return mz_zip_reader_extract_to_callback(pZip, file_index, pCallback, pOpaque, flags); -} - -#ifndef MINIZ_NO_STDIO -static size_t mz_zip_file_write_callback(void *pOpaque, mz_uint64 ofs, const void *pBuf, size_t n) -{ - (void)ofs; return MZ_FWRITE(pBuf, 1, n, (MZ_FILE*)pOpaque); -} - -mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file_index, const char *pDst_filename, mz_uint flags) -{ - mz_bool status; - mz_zip_archive_file_stat file_stat; - MZ_FILE *pFile; - if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) - return MZ_FALSE; - pFile = MZ_FOPEN(pDst_filename, "wb"); - if (!pFile) - return MZ_FALSE; - status = mz_zip_reader_extract_to_callback(pZip, file_index, mz_zip_file_write_callback, pFile, flags); - if (MZ_FCLOSE(pFile) == EOF) - return MZ_FALSE; -#ifndef MINIZ_NO_TIME - if (status) - mz_zip_set_file_times(pDst_filename, file_stat.m_time, file_stat.m_time); -#endif - return status; -} -#endif // #ifndef MINIZ_NO_STDIO - -mz_bool mz_zip_reader_end(mz_zip_archive *pZip) -{ - if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) - return MZ_FALSE; - - if (pZip->m_pState) - { - mz_zip_internal_state *pState = pZip->m_pState; pZip->m_pState = NULL; - mz_zip_array_clear(pZip, &pState->m_central_dir); - mz_zip_array_clear(pZip, &pState->m_central_dir_offsets); - mz_zip_array_clear(pZip, &pState->m_sorted_central_dir_offsets); - -#ifndef MINIZ_NO_STDIO - if (pState->m_pFile) - { - MZ_FCLOSE(pState->m_pFile); - pState->m_pFile = NULL; - } -#endif // #ifndef MINIZ_NO_STDIO - - pZip->m_pFree(pZip->m_pAlloc_opaque, pState); - } - pZip->m_zip_mode = MZ_ZIP_MODE_INVALID; - - return MZ_TRUE; -} - -#ifndef MINIZ_NO_STDIO -mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip, const char *pArchive_filename, const char *pDst_filename, mz_uint flags) -{ - int file_index = mz_zip_reader_locate_file(pZip, pArchive_filename, NULL, flags); - if (file_index < 0) - return MZ_FALSE; - return mz_zip_reader_extract_to_file(pZip, file_index, pDst_filename, flags); -} -#endif - -// ------------------- .ZIP archive writing - -#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS - -static void mz_write_le16(mz_uint8 *p, mz_uint16 v) { p[0] = (mz_uint8)v; p[1] = (mz_uint8)(v >> 8); } -static void mz_write_le32(mz_uint8 *p, mz_uint32 v) { p[0] = (mz_uint8)v; p[1] = (mz_uint8)(v >> 8); p[2] = (mz_uint8)(v >> 16); p[3] = (mz_uint8)(v >> 24); } -#define MZ_WRITE_LE16(p, v) mz_write_le16((mz_uint8 *)(p), (mz_uint16)(v)) -#define MZ_WRITE_LE32(p, v) mz_write_le32((mz_uint8 *)(p), (mz_uint32)(v)) - -mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size) -{ - if ((!pZip) || (pZip->m_pState) || (!pZip->m_pWrite) || (pZip->m_zip_mode != MZ_ZIP_MODE_INVALID)) - return MZ_FALSE; - - if (pZip->m_file_offset_alignment) - { - // Ensure user specified file offset alignment is a power of 2. - if (pZip->m_file_offset_alignment & (pZip->m_file_offset_alignment - 1)) - return MZ_FALSE; - } - - if (!pZip->m_pAlloc) pZip->m_pAlloc = def_alloc_func; - if (!pZip->m_pFree) pZip->m_pFree = def_free_func; - if (!pZip->m_pRealloc) pZip->m_pRealloc = def_realloc_func; - - pZip->m_zip_mode = MZ_ZIP_MODE_WRITING; - pZip->m_archive_size = existing_size; - pZip->m_central_directory_file_ofs = 0; - pZip->m_total_files = 0; - - if (NULL == (pZip->m_pState = (mz_zip_internal_state *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(mz_zip_internal_state)))) - return MZ_FALSE; - memset(pZip->m_pState, 0, sizeof(mz_zip_internal_state)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir, sizeof(mz_uint8)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir_offsets, sizeof(mz_uint32)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_sorted_central_dir_offsets, sizeof(mz_uint32)); - return MZ_TRUE; -} - -static size_t mz_zip_heap_write_func(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n) -{ - mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; - mz_zip_internal_state *pState = pZip->m_pState; - mz_uint64 new_size = MZ_MAX(file_ofs + n, pState->m_mem_size); -#ifdef _MSC_VER - if ((!n) || ((0, sizeof(size_t) == sizeof(mz_uint32)) && (new_size > 0x7FFFFFFF))) -#else - if ((!n) || ((sizeof(size_t) == sizeof(mz_uint32)) && (new_size > 0x7FFFFFFF))) -#endif - return 0; - if (new_size > pState->m_mem_capacity) - { - void *pNew_block; - size_t new_capacity = MZ_MAX(64, pState->m_mem_capacity); while (new_capacity < new_size) new_capacity *= 2; - if (NULL == (pNew_block = pZip->m_pRealloc(pZip->m_pAlloc_opaque, pState->m_pMem, 1, new_capacity))) - return 0; - pState->m_pMem = pNew_block; pState->m_mem_capacity = new_capacity; - } - memcpy((mz_uint8 *)pState->m_pMem + file_ofs, pBuf, n); - pState->m_mem_size = (size_t)new_size; - return n; -} - -mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_t initial_allocation_size) -{ - pZip->m_pWrite = mz_zip_heap_write_func; - pZip->m_pIO_opaque = pZip; - if (!mz_zip_writer_init(pZip, size_to_reserve_at_beginning)) - return MZ_FALSE; - if (0 != (initial_allocation_size = MZ_MAX(initial_allocation_size, size_to_reserve_at_beginning))) - { - if (NULL == (pZip->m_pState->m_pMem = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, initial_allocation_size))) - { - mz_zip_writer_end(pZip); - return MZ_FALSE; - } - pZip->m_pState->m_mem_capacity = initial_allocation_size; - } - return MZ_TRUE; -} - -#ifndef MINIZ_NO_STDIO -static size_t mz_zip_file_write_func(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n) -{ - mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; - mz_int64 cur_ofs = MZ_FTELL64(pZip->m_pState->m_pFile); - if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pZip->m_pState->m_pFile, (mz_int64)file_ofs, SEEK_SET)))) - return 0; - return MZ_FWRITE(pBuf, 1, n, pZip->m_pState->m_pFile); -} - -mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_reserve_at_beginning) -{ - MZ_FILE *pFile; - pZip->m_pWrite = mz_zip_file_write_func; - pZip->m_pIO_opaque = pZip; - if (!mz_zip_writer_init(pZip, size_to_reserve_at_beginning)) - return MZ_FALSE; - if (NULL == (pFile = MZ_FOPEN(pFilename, "wb"))) - { - mz_zip_writer_end(pZip); - return MZ_FALSE; - } - pZip->m_pState->m_pFile = pFile; - if (size_to_reserve_at_beginning) - { - mz_uint64 cur_ofs = 0; char buf[4096]; MZ_CLEAR_OBJ(buf); - do - { - size_t n = (size_t)MZ_MIN(sizeof(buf), size_to_reserve_at_beginning); - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_ofs, buf, n) != n) - { - mz_zip_writer_end(pZip); - return MZ_FALSE; - } - cur_ofs += n; size_to_reserve_at_beginning -= n; - } while (size_to_reserve_at_beginning); - } - return MZ_TRUE; -} -#endif // #ifndef MINIZ_NO_STDIO - -mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip, const char *pFilename) -{ - mz_zip_internal_state *pState; - if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) - return MZ_FALSE; - // No sense in trying to write to an archive that's already at the support max size - if ((pZip->m_total_files == 0xFFFF) || ((pZip->m_archive_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_ZIP_LOCAL_DIR_HEADER_SIZE) > 0xFFFFFFFF)) - return MZ_FALSE; - - pState = pZip->m_pState; - - if (pState->m_pFile) - { -#ifdef MINIZ_NO_STDIO - pFilename; return MZ_FALSE; -#else - // Archive is being read from stdio - try to reopen as writable. - if (pZip->m_pIO_opaque != pZip) - return MZ_FALSE; - if (!pFilename) - return MZ_FALSE; - pZip->m_pWrite = mz_zip_file_write_func; - if (NULL == (pState->m_pFile = MZ_FREOPEN(pFilename, "r+b", pState->m_pFile))) - { - // The mz_zip_archive is now in a bogus state because pState->m_pFile is NULL, so just close it. - mz_zip_reader_end(pZip); - return MZ_FALSE; - } -#endif // #ifdef MINIZ_NO_STDIO - } - else if (pState->m_pMem) - { - // Archive lives in a memory block. Assume it's from the heap that we can resize using the realloc callback. - if (pZip->m_pIO_opaque != pZip) - return MZ_FALSE; - pState->m_mem_capacity = pState->m_mem_size; - pZip->m_pWrite = mz_zip_heap_write_func; - } - // Archive is being read via a user provided read function - make sure the user has specified a write function too. - else if (!pZip->m_pWrite) - return MZ_FALSE; - - // Start writing new files at the archive's current central directory location. - pZip->m_archive_size = pZip->m_central_directory_file_ofs; - pZip->m_zip_mode = MZ_ZIP_MODE_WRITING; - pZip->m_central_directory_file_ofs = 0; - - return MZ_TRUE; -} - -mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, mz_uint level_and_flags) -{ - return mz_zip_writer_add_mem_ex(pZip, pArchive_name, pBuf, buf_size, NULL, 0, level_and_flags, 0, 0); -} - -typedef struct -{ - mz_zip_archive *m_pZip; - mz_uint64 m_cur_archive_file_ofs; - mz_uint64 m_comp_size; -} mz_zip_writer_add_state; - -static mz_bool mz_zip_writer_add_put_buf_callback(const void* pBuf, int len, void *pUser) -{ - mz_zip_writer_add_state *pState = (mz_zip_writer_add_state *)pUser; - if ((int)pState->m_pZip->m_pWrite(pState->m_pZip->m_pIO_opaque, pState->m_cur_archive_file_ofs, pBuf, len) != len) - return MZ_FALSE; - pState->m_cur_archive_file_ofs += len; - pState->m_comp_size += len; - return MZ_TRUE; -} - -static mz_bool mz_zip_writer_create_local_dir_header(mz_zip_archive *pZip, mz_uint8 *pDst, mz_uint16 filename_size, mz_uint16 extra_size, mz_uint64 uncomp_size, mz_uint64 comp_size, mz_uint32 uncomp_crc32, mz_uint16 method, mz_uint16 bit_flags, mz_uint16 dos_time, mz_uint16 dos_date) -{ - (void)pZip; - memset(pDst, 0, MZ_ZIP_LOCAL_DIR_HEADER_SIZE); - MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_SIG_OFS, MZ_ZIP_LOCAL_DIR_HEADER_SIG); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_VERSION_NEEDED_OFS, method ? 20 : 0); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_BIT_FLAG_OFS, bit_flags); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_METHOD_OFS, method); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_FILE_TIME_OFS, dos_time); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_FILE_DATE_OFS, dos_date); - MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_CRC32_OFS, uncomp_crc32); - MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_COMPRESSED_SIZE_OFS, comp_size); - MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_DECOMPRESSED_SIZE_OFS, uncomp_size); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_FILENAME_LEN_OFS, filename_size); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_EXTRA_LEN_OFS, extra_size); - return MZ_TRUE; -} - -static mz_bool mz_zip_writer_create_central_dir_header(mz_zip_archive *pZip, mz_uint8 *pDst, mz_uint16 filename_size, mz_uint16 extra_size, mz_uint16 comment_size, mz_uint64 uncomp_size, mz_uint64 comp_size, mz_uint32 uncomp_crc32, mz_uint16 method, mz_uint16 bit_flags, mz_uint16 dos_time, mz_uint16 dos_date, mz_uint64 local_header_ofs, mz_uint32 ext_attributes) -{ - (void)pZip; - memset(pDst, 0, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_SIG_OFS, MZ_ZIP_CENTRAL_DIR_HEADER_SIG); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_VERSION_NEEDED_OFS, method ? 20 : 0); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_BIT_FLAG_OFS, bit_flags); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_METHOD_OFS, method); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_FILE_TIME_OFS, dos_time); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_FILE_DATE_OFS, dos_date); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_CRC32_OFS, uncomp_crc32); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS, comp_size); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS, uncomp_size); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_FILENAME_LEN_OFS, filename_size); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_EXTRA_LEN_OFS, extra_size); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_COMMENT_LEN_OFS, comment_size); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS, ext_attributes); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_LOCAL_HEADER_OFS, local_header_ofs); - return MZ_TRUE; -} - -static mz_bool mz_zip_writer_add_to_central_dir(mz_zip_archive *pZip, const char *pFilename, mz_uint16 filename_size, const void *pExtra, mz_uint16 extra_size, const void *pComment, mz_uint16 comment_size, mz_uint64 uncomp_size, mz_uint64 comp_size, mz_uint32 uncomp_crc32, mz_uint16 method, mz_uint16 bit_flags, mz_uint16 dos_time, mz_uint16 dos_date, mz_uint64 local_header_ofs, mz_uint32 ext_attributes) -{ - mz_zip_internal_state *pState = pZip->m_pState; - mz_uint32 central_dir_ofs = (mz_uint32)pState->m_central_dir.m_size; - size_t orig_central_dir_size = pState->m_central_dir.m_size; - mz_uint8 central_dir_header[MZ_ZIP_CENTRAL_DIR_HEADER_SIZE]; - - // No zip64 support yet - if ((local_header_ofs > 0xFFFFFFFF) || (((mz_uint64)pState->m_central_dir.m_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size + extra_size + comment_size) > 0xFFFFFFFF)) - return MZ_FALSE; - - if (!mz_zip_writer_create_central_dir_header(pZip, central_dir_header, filename_size, extra_size, comment_size, uncomp_size, comp_size, uncomp_crc32, method, bit_flags, dos_time, dos_date, local_header_ofs, ext_attributes)) - return MZ_FALSE; - - if ((!mz_zip_array_push_back(pZip, &pState->m_central_dir, central_dir_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)) || - (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pFilename, filename_size)) || - (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pExtra, extra_size)) || - (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pComment, comment_size)) || - (!mz_zip_array_push_back(pZip, &pState->m_central_dir_offsets, ¢ral_dir_ofs, 1))) - { - // Try to push the central directory array back into its original state. - mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); - return MZ_FALSE; - } - - return MZ_TRUE; -} - -static mz_bool mz_zip_writer_validate_archive_name(const char *pArchive_name) -{ - // Basic ZIP archive filename validity checks: Valid filenames cannot start with a forward slash, cannot contain a drive letter, and cannot use DOS-style backward slashes. - if (*pArchive_name == '/') - return MZ_FALSE; - while (*pArchive_name) - { - if ((*pArchive_name == '\\') || (*pArchive_name == ':')) - return MZ_FALSE; - pArchive_name++; - } - return MZ_TRUE; -} - -static mz_uint mz_zip_writer_compute_padding_needed_for_file_alignment(mz_zip_archive *pZip) -{ - mz_uint32 n; - if (!pZip->m_file_offset_alignment) - return 0; - n = (mz_uint32)(pZip->m_archive_size & (pZip->m_file_offset_alignment - 1)); - return (pZip->m_file_offset_alignment - n) & (pZip->m_file_offset_alignment - 1); -} - -static mz_bool mz_zip_writer_write_zeros(mz_zip_archive *pZip, mz_uint64 cur_file_ofs, mz_uint32 n) -{ - char buf[4096]; - memset(buf, 0, MZ_MIN(sizeof(buf), n)); - while (n) - { - mz_uint32 s = MZ_MIN(sizeof(buf), n); - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_file_ofs, buf, s) != s) - return MZ_FALSE; - cur_file_ofs += s; n -= s; - } - return MZ_TRUE; -} - -mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, mz_uint64 uncomp_size, mz_uint32 uncomp_crc32) -{ - mz_uint16 method = 0, dos_time = 0, dos_date = 0; - mz_uint level, ext_attributes = 0, num_alignment_padding_bytes; - mz_uint64 local_dir_header_ofs = pZip->m_archive_size, cur_archive_file_ofs = pZip->m_archive_size, comp_size = 0; - size_t archive_name_size; - mz_uint8 local_dir_header[MZ_ZIP_LOCAL_DIR_HEADER_SIZE]; - tdefl_compressor *pComp = NULL; - mz_bool store_data_uncompressed; - mz_zip_internal_state *pState; - - if ((int)level_and_flags < 0) - level_and_flags = MZ_DEFAULT_LEVEL; - level = level_and_flags & 0xF; - store_data_uncompressed = ((!level) || (level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)); - - if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || ((buf_size) && (!pBuf)) || (!pArchive_name) || ((comment_size) && (!pComment)) || (pZip->m_total_files == 0xFFFF) || (level > MZ_UBER_COMPRESSION)) - return MZ_FALSE; - - pState = pZip->m_pState; - - if ((!(level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (uncomp_size)) - return MZ_FALSE; - // No zip64 support yet - if ((buf_size > 0xFFFFFFFF) || (uncomp_size > 0xFFFFFFFF)) - return MZ_FALSE; - if (!mz_zip_writer_validate_archive_name(pArchive_name)) - return MZ_FALSE; - -#ifndef MINIZ_NO_TIME - { - time_t cur_time; time(&cur_time); - mz_zip_time_to_dos_time(cur_time, &dos_time, &dos_date); - } -#endif // #ifndef MINIZ_NO_TIME - - archive_name_size = strlen(pArchive_name); - if (archive_name_size > 0xFFFF) - return MZ_FALSE; - - num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); - - // no zip64 support yet - if ((pZip->m_total_files == 0xFFFF) || ((pZip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + comment_size + archive_name_size) > 0xFFFFFFFF)) - return MZ_FALSE; - - if ((archive_name_size) && (pArchive_name[archive_name_size - 1] == '/')) - { - // Set DOS Subdirectory attribute bit. - ext_attributes |= 0x10; - // Subdirectories cannot contain data. - if ((buf_size) || (uncomp_size)) - return MZ_FALSE; - } - - // Try to do any allocations before writing to the archive, so if an allocation fails the file remains unmodified. (A good idea if we're doing an in-place modification.) - if ((!mz_zip_array_ensure_room(pZip, &pState->m_central_dir, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + archive_name_size + comment_size)) || (!mz_zip_array_ensure_room(pZip, &pState->m_central_dir_offsets, 1))) - return MZ_FALSE; - - if ((!store_data_uncompressed) && (buf_size)) - { - if (NULL == (pComp = (tdefl_compressor *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(tdefl_compressor)))) - return MZ_FALSE; - } - - if (!mz_zip_writer_write_zeros(pZip, cur_archive_file_ofs, num_alignment_padding_bytes + sizeof(local_dir_header))) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - return MZ_FALSE; - } - local_dir_header_ofs += num_alignment_padding_bytes; - if (pZip->m_file_offset_alignment) { MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); } - cur_archive_file_ofs += num_alignment_padding_bytes + sizeof(local_dir_header); - - MZ_CLEAR_OBJ(local_dir_header); - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != archive_name_size) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - return MZ_FALSE; - } - cur_archive_file_ofs += archive_name_size; - - if (!(level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) - { - uncomp_crc32 = (mz_uint32)mz_crc32(MZ_CRC32_INIT, (const mz_uint8*)pBuf, buf_size); - uncomp_size = buf_size; - if (uncomp_size <= 3) - { - level = 0; - store_data_uncompressed = MZ_TRUE; - } - } - - if (store_data_uncompressed) - { - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pBuf, buf_size) != buf_size) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - return MZ_FALSE; - } - - cur_archive_file_ofs += buf_size; - comp_size = buf_size; - - if (level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA) - method = MZ_DEFLATED; - } - else if (buf_size) - { - mz_zip_writer_add_state state; - - state.m_pZip = pZip; - state.m_cur_archive_file_ofs = cur_archive_file_ofs; - state.m_comp_size = 0; - - if ((tdefl_init(pComp, mz_zip_writer_add_put_buf_callback, &state, tdefl_create_comp_flags_from_zip_params(level, -15, MZ_DEFAULT_STRATEGY)) != TDEFL_STATUS_OKAY) || - (tdefl_compress_buffer(pComp, pBuf, buf_size, TDEFL_FINISH) != TDEFL_STATUS_DONE)) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - return MZ_FALSE; - } - - comp_size = state.m_comp_size; - cur_archive_file_ofs = state.m_cur_archive_file_ofs; - - method = MZ_DEFLATED; - } - - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - pComp = NULL; - - // no zip64 support yet - if ((comp_size > 0xFFFFFFFF) || (cur_archive_file_ofs > 0xFFFFFFFF)) - return MZ_FALSE; - - if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, 0, uncomp_size, comp_size, uncomp_crc32, method, 0, dos_time, dos_date)) - return MZ_FALSE; - - if (pZip->m_pWrite(pZip->m_pIO_opaque, local_dir_header_ofs, local_dir_header, sizeof(local_dir_header)) != sizeof(local_dir_header)) - return MZ_FALSE; - - if (!mz_zip_writer_add_to_central_dir(pZip, pArchive_name, (mz_uint16)archive_name_size, NULL, 0, pComment, comment_size, uncomp_size, comp_size, uncomp_crc32, method, 0, dos_time, dos_date, local_dir_header_ofs, ext_attributes)) - return MZ_FALSE; - - pZip->m_total_files++; - pZip->m_archive_size = cur_archive_file_ofs; - - return MZ_TRUE; -} - -#ifndef MINIZ_NO_STDIO -mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name, const char *pSrc_filename, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags) -{ - mz_uint uncomp_crc32 = MZ_CRC32_INIT, level, num_alignment_padding_bytes; - mz_uint16 method = 0, dos_time = 0, dos_date = 0, ext_attributes = 0; - mz_uint64 local_dir_header_ofs = pZip->m_archive_size, cur_archive_file_ofs = pZip->m_archive_size, uncomp_size = 0, comp_size = 0; - size_t archive_name_size; - mz_uint8 local_dir_header[MZ_ZIP_LOCAL_DIR_HEADER_SIZE]; - MZ_FILE *pSrc_file = NULL; - - if ((int)level_and_flags < 0) - level_and_flags = MZ_DEFAULT_LEVEL; - level = level_and_flags & 0xF; - - if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || (!pArchive_name) || ((comment_size) && (!pComment)) || (level > MZ_UBER_COMPRESSION)) - return MZ_FALSE; - if (level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA) - return MZ_FALSE; - if (!mz_zip_writer_validate_archive_name(pArchive_name)) - return MZ_FALSE; - - archive_name_size = strlen(pArchive_name); - if (archive_name_size > 0xFFFF) - return MZ_FALSE; - - num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); - - // no zip64 support yet - if ((pZip->m_total_files == 0xFFFF) || ((pZip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + comment_size + archive_name_size) > 0xFFFFFFFF)) - return MZ_FALSE; - - if (!mz_zip_get_file_modified_time(pSrc_filename, &dos_time, &dos_date)) - return MZ_FALSE; - - pSrc_file = MZ_FOPEN(pSrc_filename, "rb"); - if (!pSrc_file) - return MZ_FALSE; - MZ_FSEEK64(pSrc_file, 0, SEEK_END); - uncomp_size = MZ_FTELL64(pSrc_file); - MZ_FSEEK64(pSrc_file, 0, SEEK_SET); - - if (uncomp_size > 0xFFFFFFFF) - { - // No zip64 support yet - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - if (uncomp_size <= 3) - level = 0; - - if (!mz_zip_writer_write_zeros(pZip, cur_archive_file_ofs, num_alignment_padding_bytes + sizeof(local_dir_header))) - { - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - local_dir_header_ofs += num_alignment_padding_bytes; - if (pZip->m_file_offset_alignment) { MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); } - cur_archive_file_ofs += num_alignment_padding_bytes + sizeof(local_dir_header); - - MZ_CLEAR_OBJ(local_dir_header); - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != archive_name_size) - { - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - cur_archive_file_ofs += archive_name_size; - - if (uncomp_size) - { - mz_uint64 uncomp_remaining = uncomp_size; - void *pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, MZ_ZIP_MAX_IO_BUF_SIZE); - if (!pRead_buf) - { - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - - if (!level) - { - while (uncomp_remaining) - { - mz_uint n = (mz_uint)MZ_MIN(MZ_ZIP_MAX_IO_BUF_SIZE, uncomp_remaining); - if ((MZ_FREAD(pRead_buf, 1, n, pSrc_file) != n) || (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pRead_buf, n) != n)) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - uncomp_crc32 = (mz_uint32)mz_crc32(uncomp_crc32, (const mz_uint8 *)pRead_buf, n); - uncomp_remaining -= n; - cur_archive_file_ofs += n; - } - comp_size = uncomp_size; - } - else - { - mz_bool result = MZ_FALSE; - mz_zip_writer_add_state state; - tdefl_compressor *pComp = (tdefl_compressor *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(tdefl_compressor)); - if (!pComp) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - - state.m_pZip = pZip; - state.m_cur_archive_file_ofs = cur_archive_file_ofs; - state.m_comp_size = 0; - - if (tdefl_init(pComp, mz_zip_writer_add_put_buf_callback, &state, tdefl_create_comp_flags_from_zip_params(level, -15, MZ_DEFAULT_STRATEGY)) != TDEFL_STATUS_OKAY) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - - for ( ; ; ) - { - size_t in_buf_size = (mz_uint32)MZ_MIN(uncomp_remaining, MZ_ZIP_MAX_IO_BUF_SIZE); - tdefl_status status; - - if (MZ_FREAD(pRead_buf, 1, in_buf_size, pSrc_file) != in_buf_size) - break; - - uncomp_crc32 = (mz_uint32)mz_crc32(uncomp_crc32, (const mz_uint8 *)pRead_buf, in_buf_size); - uncomp_remaining -= in_buf_size; - - status = tdefl_compress_buffer(pComp, pRead_buf, in_buf_size, uncomp_remaining ? TDEFL_NO_FLUSH : TDEFL_FINISH); - if (status == TDEFL_STATUS_DONE) - { - result = MZ_TRUE; - break; - } - else if (status != TDEFL_STATUS_OKAY) - break; - } - - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - - if (!result) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - - comp_size = state.m_comp_size; - cur_archive_file_ofs = state.m_cur_archive_file_ofs; - - method = MZ_DEFLATED; - } - - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - } - - MZ_FCLOSE(pSrc_file); pSrc_file = NULL; - - // no zip64 support yet - if ((comp_size > 0xFFFFFFFF) || (cur_archive_file_ofs > 0xFFFFFFFF)) - return MZ_FALSE; - - if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, 0, uncomp_size, comp_size, uncomp_crc32, method, 0, dos_time, dos_date)) - return MZ_FALSE; - - if (pZip->m_pWrite(pZip->m_pIO_opaque, local_dir_header_ofs, local_dir_header, sizeof(local_dir_header)) != sizeof(local_dir_header)) - return MZ_FALSE; - - if (!mz_zip_writer_add_to_central_dir(pZip, pArchive_name, (mz_uint16)archive_name_size, NULL, 0, pComment, comment_size, uncomp_size, comp_size, uncomp_crc32, method, 0, dos_time, dos_date, local_dir_header_ofs, ext_attributes)) - return MZ_FALSE; - - pZip->m_total_files++; - pZip->m_archive_size = cur_archive_file_ofs; - - return MZ_TRUE; -} -#endif // #ifndef MINIZ_NO_STDIO - -mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip, mz_zip_archive *pSource_zip, mz_uint file_index) -{ - mz_uint n, bit_flags, num_alignment_padding_bytes; - mz_uint64 comp_bytes_remaining, local_dir_header_ofs; - mz_uint64 cur_src_file_ofs, cur_dst_file_ofs; - mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; - mz_uint8 central_header[MZ_ZIP_CENTRAL_DIR_HEADER_SIZE]; - size_t orig_central_dir_size; - mz_zip_internal_state *pState; - void *pBuf; const mz_uint8 *pSrc_central_header; - - if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING)) - return MZ_FALSE; - if (NULL == (pSrc_central_header = mz_zip_reader_get_cdh(pSource_zip, file_index))) - return MZ_FALSE; - pState = pZip->m_pState; - - num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); - - // no zip64 support yet - if ((pZip->m_total_files == 0xFFFF) || ((pZip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) > 0xFFFFFFFF)) - return MZ_FALSE; - - cur_src_file_ofs = MZ_READ_LE32(pSrc_central_header + MZ_ZIP_CDH_LOCAL_HEADER_OFS); - cur_dst_file_ofs = pZip->m_archive_size; - - if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) - return MZ_FALSE; - if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) - return MZ_FALSE; - cur_src_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE; - - if (!mz_zip_writer_write_zeros(pZip, cur_dst_file_ofs, num_alignment_padding_bytes)) - return MZ_FALSE; - cur_dst_file_ofs += num_alignment_padding_bytes; - local_dir_header_ofs = cur_dst_file_ofs; - if (pZip->m_file_offset_alignment) { MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); } - - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) - return MZ_FALSE; - cur_dst_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE; - - n = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); - comp_bytes_remaining = n + MZ_READ_LE32(pSrc_central_header + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); - - if (NULL == (pBuf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)MZ_MAX(sizeof(mz_uint32) * 4, MZ_MIN(MZ_ZIP_MAX_IO_BUF_SIZE, comp_bytes_remaining))))) - return MZ_FALSE; - - while (comp_bytes_remaining) - { - n = (mz_uint)MZ_MIN(MZ_ZIP_MAX_IO_BUF_SIZE, comp_bytes_remaining); - if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pBuf, n) != n) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return MZ_FALSE; - } - cur_src_file_ofs += n; - - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pBuf, n) != n) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return MZ_FALSE; - } - cur_dst_file_ofs += n; - - comp_bytes_remaining -= n; - } - - bit_flags = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_BIT_FLAG_OFS); - if (bit_flags & 8) - { - // Copy data descriptor - if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pBuf, sizeof(mz_uint32) * 4) != sizeof(mz_uint32) * 4) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return MZ_FALSE; - } - - n = sizeof(mz_uint32) * ((MZ_READ_LE32(pBuf) == 0x08074b50) ? 4 : 3); - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pBuf, n) != n) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return MZ_FALSE; - } - - cur_src_file_ofs += n; - cur_dst_file_ofs += n; - } - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - - // no zip64 support yet - if (cur_dst_file_ofs > 0xFFFFFFFF) - return MZ_FALSE; - - orig_central_dir_size = pState->m_central_dir.m_size; - - memcpy(central_header, pSrc_central_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE); - MZ_WRITE_LE32(central_header + MZ_ZIP_CDH_LOCAL_HEADER_OFS, local_dir_header_ofs); - if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, central_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)) - return MZ_FALSE; - - n = MZ_READ_LE16(pSrc_central_header + MZ_ZIP_CDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pSrc_central_header + MZ_ZIP_CDH_EXTRA_LEN_OFS) + MZ_READ_LE16(pSrc_central_header + MZ_ZIP_CDH_COMMENT_LEN_OFS); - if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pSrc_central_header + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n)) - { - mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); - return MZ_FALSE; - } - - if (pState->m_central_dir.m_size > 0xFFFFFFFF) - return MZ_FALSE; - n = (mz_uint32)orig_central_dir_size; - if (!mz_zip_array_push_back(pZip, &pState->m_central_dir_offsets, &n, 1)) - { - mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); - return MZ_FALSE; - } - - pZip->m_total_files++; - pZip->m_archive_size = cur_dst_file_ofs; - - return MZ_TRUE; -} - -mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip) -{ - mz_zip_internal_state *pState; - mz_uint64 central_dir_ofs, central_dir_size; - mz_uint8 hdr[MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE]; - - if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING)) - return MZ_FALSE; - - pState = pZip->m_pState; - - // no zip64 support yet - if ((pZip->m_total_files > 0xFFFF) || ((pZip->m_archive_size + pState->m_central_dir.m_size + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) > 0xFFFFFFFF)) - return MZ_FALSE; - - central_dir_ofs = 0; - central_dir_size = 0; - if (pZip->m_total_files) - { - // Write central directory - central_dir_ofs = pZip->m_archive_size; - central_dir_size = pState->m_central_dir.m_size; - pZip->m_central_directory_file_ofs = central_dir_ofs; - if (pZip->m_pWrite(pZip->m_pIO_opaque, central_dir_ofs, pState->m_central_dir.m_p, (size_t)central_dir_size) != central_dir_size) - return MZ_FALSE; - pZip->m_archive_size += central_dir_size; - } - - // Write end of central directory record - MZ_CLEAR_OBJ(hdr); - MZ_WRITE_LE32(hdr + MZ_ZIP_ECDH_SIG_OFS, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG); - MZ_WRITE_LE16(hdr + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS, pZip->m_total_files); - MZ_WRITE_LE16(hdr + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS, pZip->m_total_files); - MZ_WRITE_LE32(hdr + MZ_ZIP_ECDH_CDIR_SIZE_OFS, central_dir_size); - MZ_WRITE_LE32(hdr + MZ_ZIP_ECDH_CDIR_OFS_OFS, central_dir_ofs); - - if (pZip->m_pWrite(pZip->m_pIO_opaque, pZip->m_archive_size, hdr, sizeof(hdr)) != sizeof(hdr)) - return MZ_FALSE; -#ifndef MINIZ_NO_STDIO - if ((pState->m_pFile) && (MZ_FFLUSH(pState->m_pFile) == EOF)) - return MZ_FALSE; -#endif // #ifndef MINIZ_NO_STDIO - - pZip->m_archive_size += sizeof(hdr); - - pZip->m_zip_mode = MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED; - return MZ_TRUE; -} - -mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void **pBuf, size_t *pSize) -{ - if ((!pZip) || (!pZip->m_pState) || (!pBuf) || (!pSize)) - return MZ_FALSE; - if (pZip->m_pWrite != mz_zip_heap_write_func) - return MZ_FALSE; - if (!mz_zip_writer_finalize_archive(pZip)) - return MZ_FALSE; - - *pBuf = pZip->m_pState->m_pMem; - *pSize = pZip->m_pState->m_mem_size; - pZip->m_pState->m_pMem = NULL; - pZip->m_pState->m_mem_size = pZip->m_pState->m_mem_capacity = 0; - return MZ_TRUE; -} - -mz_bool mz_zip_writer_end(mz_zip_archive *pZip) -{ - mz_zip_internal_state *pState; - mz_bool status = MZ_TRUE; - if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || ((pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) && (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED))) - return MZ_FALSE; - - pState = pZip->m_pState; - pZip->m_pState = NULL; - mz_zip_array_clear(pZip, &pState->m_central_dir); - mz_zip_array_clear(pZip, &pState->m_central_dir_offsets); - mz_zip_array_clear(pZip, &pState->m_sorted_central_dir_offsets); - -#ifndef MINIZ_NO_STDIO - if (pState->m_pFile) - { - MZ_FCLOSE(pState->m_pFile); - pState->m_pFile = NULL; - } -#endif // #ifndef MINIZ_NO_STDIO - - if ((pZip->m_pWrite == mz_zip_heap_write_func) && (pState->m_pMem)) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pState->m_pMem); - pState->m_pMem = NULL; - } - - pZip->m_pFree(pZip->m_pAlloc_opaque, pState); - pZip->m_zip_mode = MZ_ZIP_MODE_INVALID; - return status; -} - -#ifndef MINIZ_NO_STDIO -mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags) -{ - mz_bool status, created_new_archive = MZ_FALSE; - mz_zip_archive zip_archive; - struct MZ_FILE_STAT_STRUCT file_stat; - MZ_CLEAR_OBJ(zip_archive); - if ((int)level_and_flags < 0) - level_and_flags = MZ_DEFAULT_LEVEL; - if ((!pZip_filename) || (!pArchive_name) || ((buf_size) && (!pBuf)) || ((comment_size) && (!pComment)) || ((level_and_flags & 0xF) > MZ_UBER_COMPRESSION)) - return MZ_FALSE; - if (!mz_zip_writer_validate_archive_name(pArchive_name)) - return MZ_FALSE; - if (MZ_FILE_STAT(pZip_filename, &file_stat) != 0) - { - // Create a new archive. - if (!mz_zip_writer_init_file(&zip_archive, pZip_filename, 0)) - return MZ_FALSE; - created_new_archive = MZ_TRUE; - } - else - { - // Append to an existing archive. - if (!mz_zip_reader_init_file(&zip_archive, pZip_filename, level_and_flags | MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY)) - return MZ_FALSE; - if (!mz_zip_writer_init_from_reader(&zip_archive, pZip_filename)) - { - mz_zip_reader_end(&zip_archive); - return MZ_FALSE; - } - } - status = mz_zip_writer_add_mem_ex(&zip_archive, pArchive_name, pBuf, buf_size, pComment, comment_size, level_and_flags, 0, 0); - // Always finalize, even if adding failed for some reason, so we have a valid central directory. (This may not always succeed, but we can try.) - if (!mz_zip_writer_finalize_archive(&zip_archive)) - status = MZ_FALSE; - if (!mz_zip_writer_end(&zip_archive)) - status = MZ_FALSE; - if ((!status) && (created_new_archive)) - { - // It's a new archive and something went wrong, so just delete it. - int ignoredStatus = MZ_DELETE_FILE(pZip_filename); - (void)ignoredStatus; - } - return status; -} - -void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name, size_t *pSize, mz_uint flags) -{ - int file_index; - mz_zip_archive zip_archive; - void *p = NULL; - - if (pSize) - *pSize = 0; - - if ((!pZip_filename) || (!pArchive_name)) - return NULL; - - MZ_CLEAR_OBJ(zip_archive); - if (!mz_zip_reader_init_file(&zip_archive, pZip_filename, flags | MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY)) - return NULL; - - if ((file_index = mz_zip_reader_locate_file(&zip_archive, pArchive_name, NULL, flags)) >= 0) - p = mz_zip_reader_extract_to_heap(&zip_archive, file_index, pSize, flags); - - mz_zip_reader_end(&zip_archive); - return p; -} - -#endif // #ifndef MINIZ_NO_STDIO - -#endif // #ifndef MINIZ_NO_ARCHIVE_WRITING_APIS - -#endif // #ifndef MINIZ_NO_ARCHIVE_APIS - -#ifdef __cplusplus -} -#endif - -#endif // MINIZ_HEADER_FILE_ONLY - -/* - This is free and unencumbered software released into the public domain. - - Anyone is free to copy, modify, publish, use, compile, sell, or - distribute this software, either in source code form or as a compiled - binary, for any purpose, commercial or non-commercial, and by any - means. - - In jurisdictions that recognize copyright laws, the author or authors - of this software dedicate any and all copyright interest in the - software to the public domain. We make this dedication for the benefit - of the public at large and to the detriment of our heirs and - successors. We intend this dedication to be an overt act of - relinquishment in perpetuity of all present and future rights to this - software under copyright law. - - 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 AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR - OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - OTHER DEALINGS IN THE SOFTWARE. - - For more information, please refer to -*/ diff --git a/extension/SDL2_image-2.0.3/missing b/extension/SDL2_image-2.0.3/missing deleted file mode 100755 index cdea514..0000000 --- a/extension/SDL2_image-2.0.3/missing +++ /dev/null @@ -1,215 +0,0 @@ -#! /bin/sh -# Common wrapper for a few potentially missing GNU programs. - -scriptversion=2012-06-26.16; # UTC - -# Copyright (C) 1996-2013 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 'automa4te' 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/extension/SDL2_image-2.0.3/nanosvg.h b/extension/SDL2_image-2.0.3/nanosvg.h deleted file mode 100755 index ffe5d0d..0000000 --- a/extension/SDL2_image-2.0.3/nanosvg.h +++ /dev/null @@ -1,3033 +0,0 @@ -/* - * Copyright (c) 2013-14 Mikko Mononen memon@inside.org - * - * This software is provided 'as-is', without any express or implied - * warranty. In no event will the authors be held liable for any damages - * arising from the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software - * in a product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * 3. This notice may not be removed or altered from any source distribution. - * - * The SVG parser is based on Anti-Grain Geometry 2.4 SVG example - * Copyright (C) 2002-2004 Maxim Shemanarev (McSeem) (http://www.antigrain.com/) - * - * Arc calculation code based on canvg (https://code.google.com/p/canvg/) - * - * Bounding box calculation based on http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html - * - */ - -#ifndef NANOSVG_H -#define NANOSVG_H - -#ifdef __cplusplus -extern "C" { -#endif - -// NanoSVG is a simple stupid single-header-file SVG parse. The output of the parser is a list of cubic bezier shapes. -// -// The library suits well for anything from rendering scalable icons in your editor application to prototyping a game. -// -// NanoSVG supports a wide range of SVG features, but something may be missing, feel free to create a pull request! -// -// The shapes in the SVG images are transformed by the viewBox and converted to specified units. -// That is, you should get the same looking data as your designed in your favorite app. -// -// NanoSVG can return the paths in few different units. For example if you want to render an image, you may choose -// to get the paths in pixels, or if you are feeding the data into a CNC-cutter, you may want to use millimeters. -// -// The units passed to NanoVG should be one of: 'px', 'pt', 'pc' 'mm', 'cm', or 'in'. -// DPI (dots-per-inch) controls how the unit conversion is done. -// -// If you don't know or care about the units stuff, "px" and 96 should get you going. - - -/* Example Usage: - // Load - NSVGImage* image; - image = nsvgParseFromFile("test.svg", "px", 96); - printf("size: %f x %f\n", image->width, image->height); - // Use... - for (NSVGshape *shape = image->shapes; shape != NULL; shape = shape->next) { - for (NSVGpath *path = shape->paths; path != NULL; path = path->next) { - for (int i = 0; i < path->npts-1; i += 3) { - float* p = &path->pts[i*2]; - drawCubicBez(p[0],p[1], p[2],p[3], p[4],p[5], p[6],p[7]); - } - } - } - // Delete - nsvgDelete(image); -*/ - -enum NSVGpaintType { - NSVG_PAINT_NONE = 0, - NSVG_PAINT_COLOR = 1, - NSVG_PAINT_LINEAR_GRADIENT = 2, - NSVG_PAINT_RADIAL_GRADIENT = 3 -}; - -enum NSVGspreadType { - NSVG_SPREAD_PAD = 0, - NSVG_SPREAD_REFLECT = 1, - NSVG_SPREAD_REPEAT = 2 -}; - -enum NSVGlineJoin { - NSVG_JOIN_MITER = 0, - NSVG_JOIN_ROUND = 1, - NSVG_JOIN_BEVEL = 2 -}; - -enum NSVGlineCap { - NSVG_CAP_BUTT = 0, - NSVG_CAP_ROUND = 1, - NSVG_CAP_SQUARE = 2 -}; - -enum NSVGfillRule { - NSVG_FILLRULE_NONZERO = 0, - NSVG_FILLRULE_EVENODD = 1 -}; - -enum NSVGflags { - NSVG_FLAGS_VISIBLE = 0x01 -}; - -typedef struct NSVGgradientStop { - unsigned int color; - float offset; -} NSVGgradientStop; - -typedef struct NSVGgradient { - float xform[6]; - char spread; - float fx, fy; - int nstops; - NSVGgradientStop stops[1]; -} NSVGgradient; - -typedef struct NSVGpaint { - char type; - union { - unsigned int color; - NSVGgradient* gradient; - }; -} NSVGpaint; - -typedef struct NSVGpath -{ - float* pts; // Cubic bezier points: x0,y0, [cpx1,cpx1,cpx2,cpy2,x1,y1], ... - int npts; // Total number of bezier points. - char closed; // Flag indicating if shapes should be treated as closed. - float bounds[4]; // Tight bounding box of the shape [minx,miny,maxx,maxy]. - struct NSVGpath* next; // Pointer to next path, or NULL if last element. -} NSVGpath; - -typedef struct NSVGshape -{ - char id[64]; // Optional 'id' attr of the shape or its group - NSVGpaint fill; // Fill paint - NSVGpaint stroke; // Stroke paint - float opacity; // Opacity of the shape. - float strokeWidth; // Stroke width (scaled). - float strokeDashOffset; // Stroke dash offset (scaled). - float strokeDashArray[8]; // Stroke dash array (scaled). - char strokeDashCount; // Number of dash values in dash array. - char strokeLineJoin; // Stroke join type. - char strokeLineCap; // Stroke cap type. - float miterLimit; // Miter limit - char fillRule; // Fill rule, see NSVGfillRule. - unsigned char flags; // Logical or of NSVG_FLAGS_* flags - float bounds[4]; // Tight bounding box of the shape [minx,miny,maxx,maxy]. - NSVGpath* paths; // Linked list of paths in the image. - struct NSVGshape* next; // Pointer to next shape, or NULL if last element. -} NSVGshape; - -typedef struct NSVGimage -{ - float width; // Width of the image. - float height; // Height of the image. - NSVGshape* shapes; // Linked list of shapes in the image. -} NSVGimage; - -// Parses SVG file from a file, returns SVG image as paths. -NSVGimage* nsvgParseFromFile(const char* filename, const char* units, float dpi); - -// Parses SVG file from a null terminated string, returns SVG image as paths. -// Important note: changes the string. -NSVGimage* nsvgParse(char* input, const char* units, float dpi); - -// Deletes list of paths. -void nsvgDelete(NSVGimage* image); - -#ifdef __cplusplus -} -#endif - -#endif // NANOSVG_H - -#ifdef NANOSVG_IMPLEMENTATION - -/* -#include -#include -#include -*/ - -#define NSVG_PI (3.14159265358979323846264338327f) -#define NSVG_KAPPA90 (0.5522847493f) // Length proportional to radius of a cubic bezier handle for 90deg arcs. - -#define NSVG_ALIGN_MIN 0 -#define NSVG_ALIGN_MID 1 -#define NSVG_ALIGN_MAX 2 -#define NSVG_ALIGN_NONE 0 -#define NSVG_ALIGN_MEET 1 -#define NSVG_ALIGN_SLICE 2 - -#define NSVG_NOTUSED(v) do { (void)(1 ? (void)0 : ( (void)(v) ) ); } while(0) -#define NSVG_RGB(r, g, b) (((unsigned int)r) | ((unsigned int)g << 8) | ((unsigned int)b << 16)) - -#ifdef _MSC_VER - #pragma warning (disable: 4996) // Switch off security warnings - #pragma warning (disable: 4100) // Switch off unreferenced formal parameter warnings - #ifdef __cplusplus - #define NSVG_INLINE inline - #else - #define NSVG_INLINE - #endif -#else - #define NSVG_INLINE inline -#endif - - -static int nsvg__isspace(char c) -{ - return strchr(" \t\n\v\f\r", c) != 0; -} - -static int nsvg__isdigit(char c) -{ - return c >= '0' && c <= '9'; -} - -static int nsvg__isnum(char c) -{ - return strchr("0123456789+-.eE", c) != 0; -} - -static NSVG_INLINE float nsvg__minf(float a, float b) { return a < b ? a : b; } -static NSVG_INLINE float nsvg__maxf(float a, float b) { return a > b ? a : b; } - - -// Simple XML parser - -#define NSVG_XML_TAG 1 -#define NSVG_XML_CONTENT 2 -#define NSVG_XML_MAX_ATTRIBS 256 - -static void nsvg__parseContent(char* s, - void (*contentCb)(void* ud, const char* s), - void* ud) -{ - // Trim start white spaces - while (*s && nsvg__isspace(*s)) s++; - if (!*s) return; - - if (contentCb) - (*contentCb)(ud, s); -} - -static void nsvg__parseElement(char* s, - void (*startelCb)(void* ud, const char* el, const char** attr), - void (*endelCb)(void* ud, const char* el), - void* ud) -{ - const char* attr[NSVG_XML_MAX_ATTRIBS]; - int nattr = 0; - char* name; - int start = 0; - int end = 0; - char quote; - - // Skip white space after the '<' - while (*s && nsvg__isspace(*s)) s++; - - // Check if the tag is end tag - if (*s == '/') { - s++; - end = 1; - } else { - start = 1; - } - - // Skip comments, data and preprocessor stuff. - if (!*s || *s == '?' || *s == '!') - return; - - // Get tag name - name = s; - while (*s && !nsvg__isspace(*s)) s++; - if (*s) { *s++ = '\0'; } - - // Get attribs - while (!end && *s && nattr < NSVG_XML_MAX_ATTRIBS-3) { - char* name = NULL; - char* value = NULL; - - // Skip white space before the attrib name - while (*s && nsvg__isspace(*s)) s++; - if (!*s) break; - if (*s == '/') { - end = 1; - break; - } - name = s; - // Find end of the attrib name. - while (*s && !nsvg__isspace(*s) && *s != '=') s++; - if (*s) { *s++ = '\0'; } - // Skip until the beginning of the value. - while (*s && *s != '\"' && *s != '\'') s++; - if (!*s) break; - quote = *s; - s++; - // Store value and find the end of it. - value = s; - while (*s && *s != quote) s++; - if (*s) { *s++ = '\0'; } - - // Store only well formed attributes - if (name && value) { - attr[nattr++] = name; - attr[nattr++] = value; - } - } - - // List terminator - attr[nattr++] = 0; - attr[nattr++] = 0; - - // Call callbacks. - if (start && startelCb) - (*startelCb)(ud, name, attr); - if (end && endelCb) - (*endelCb)(ud, name); -} - -int nsvg__parseXML(char* input, - void (*startelCb)(void* ud, const char* el, const char** attr), - void (*endelCb)(void* ud, const char* el), - void (*contentCb)(void* ud, const char* s), - void* ud) -{ - char* s = input; - char* mark = s; - int state = NSVG_XML_CONTENT; - while (*s) { - if (*s == '<' && state == NSVG_XML_CONTENT) { - // Start of a tag - *s++ = '\0'; - nsvg__parseContent(mark, contentCb, ud); - mark = s; - state = NSVG_XML_TAG; - } else if (*s == '>' && state == NSVG_XML_TAG) { - // Start of a content or new tag. - *s++ = '\0'; - nsvg__parseElement(mark, startelCb, endelCb, ud); - mark = s; - state = NSVG_XML_CONTENT; - } else { - s++; - } - } - - return 1; -} - - -/* Simple SVG parser. */ - -#define NSVG_MAX_ATTR 128 - -enum NSVGgradientUnits { - NSVG_USER_SPACE = 0, - NSVG_OBJECT_SPACE = 1 -}; - -#define NSVG_MAX_DASHES 8 - -enum NSVGunits { - NSVG_UNITS_USER, - NSVG_UNITS_PX, - NSVG_UNITS_PT, - NSVG_UNITS_PC, - NSVG_UNITS_MM, - NSVG_UNITS_CM, - NSVG_UNITS_IN, - NSVG_UNITS_PERCENT, - NSVG_UNITS_EM, - NSVG_UNITS_EX -}; - -typedef struct NSVGcoordinate { - float value; - int units; -} NSVGcoordinate; - -typedef struct NSVGlinearData { - NSVGcoordinate x1, y1, x2, y2; -} NSVGlinearData; - -typedef struct NSVGradialData { - NSVGcoordinate cx, cy, r, fx, fy; -} NSVGradialData; - -typedef struct NSVGgradientData -{ - char id[64]; - char ref[64]; - char type; - union { - NSVGlinearData linear; - NSVGradialData radial; - }; - char spread; - char units; - float xform[6]; - int nstops; - NSVGgradientStop* stops; - struct NSVGgradientData* next; -} NSVGgradientData; - -typedef struct NSVGattrib -{ - char id[64]; - float xform[6]; - unsigned int fillColor; - unsigned int strokeColor; - float opacity; - float fillOpacity; - float strokeOpacity; - char fillGradient[64]; - char strokeGradient[64]; - float strokeWidth; - float strokeDashOffset; - float strokeDashArray[NSVG_MAX_DASHES]; - int strokeDashCount; - char strokeLineJoin; - char strokeLineCap; - float miterLimit; - char fillRule; - float fontSize; - unsigned int stopColor; - float stopOpacity; - float stopOffset; - char hasFill; - char hasStroke; - char visible; -} NSVGattrib; - -typedef struct NSVGstyles -{ - char* name; - char* description; - struct NSVGstyles* next; -} NSVGstyles; - -typedef struct NSVGparser -{ - NSVGattrib attr[NSVG_MAX_ATTR]; - int attrHead; - float* pts; - int npts; - int cpts; - NSVGpath* plist; - NSVGimage* image; - NSVGstyles* styles; - NSVGgradientData* gradients; - NSVGshape* shapesTail; - float viewMinx, viewMiny, viewWidth, viewHeight; - int alignX, alignY, alignType; - float dpi; - char pathFlag; - char defsFlag; - char styleFlag; -} NSVGparser; - -static void nsvg__xformIdentity(float* t) -{ - t[0] = 1.0f; t[1] = 0.0f; - t[2] = 0.0f; t[3] = 1.0f; - t[4] = 0.0f; t[5] = 0.0f; -} - -static void nsvg__xformSetTranslation(float* t, float tx, float ty) -{ - t[0] = 1.0f; t[1] = 0.0f; - t[2] = 0.0f; t[3] = 1.0f; - t[4] = tx; t[5] = ty; -} - -static void nsvg__xformSetScale(float* t, float sx, float sy) -{ - t[0] = sx; t[1] = 0.0f; - t[2] = 0.0f; t[3] = sy; - t[4] = 0.0f; t[5] = 0.0f; -} - -static void nsvg__xformSetSkewX(float* t, float a) -{ - t[0] = 1.0f; t[1] = 0.0f; - t[2] = tanf(a); t[3] = 1.0f; - t[4] = 0.0f; t[5] = 0.0f; -} - -static void nsvg__xformSetSkewY(float* t, float a) -{ - t[0] = 1.0f; t[1] = tanf(a); - t[2] = 0.0f; t[3] = 1.0f; - t[4] = 0.0f; t[5] = 0.0f; -} - -static void nsvg__xformSetRotation(float* t, float a) -{ - float cs = cosf(a), sn = sinf(a); - t[0] = cs; t[1] = sn; - t[2] = -sn; t[3] = cs; - t[4] = 0.0f; t[5] = 0.0f; -} - -static void nsvg__xformMultiply(float* t, float* s) -{ - float t0 = t[0] * s[0] + t[1] * s[2]; - float t2 = t[2] * s[0] + t[3] * s[2]; - float t4 = t[4] * s[0] + t[5] * s[2] + s[4]; - t[1] = t[0] * s[1] + t[1] * s[3]; - t[3] = t[2] * s[1] + t[3] * s[3]; - t[5] = t[4] * s[1] + t[5] * s[3] + s[5]; - t[0] = t0; - t[2] = t2; - t[4] = t4; -} - -static void nsvg__xformInverse(float* inv, float* t) -{ - double invdet, det = (double)t[0] * t[3] - (double)t[2] * t[1]; - if (det > -1e-6 && det < 1e-6) { - nsvg__xformIdentity(t); - return; - } - invdet = 1.0 / det; - inv[0] = (float)(t[3] * invdet); - inv[2] = (float)(-t[2] * invdet); - inv[4] = (float)(((double)t[2] * t[5] - (double)t[3] * t[4]) * invdet); - inv[1] = (float)(-t[1] * invdet); - inv[3] = (float)(t[0] * invdet); - inv[5] = (float)(((double)t[1] * t[4] - (double)t[0] * t[5]) * invdet); -} - -static void nsvg__xformPremultiply(float* t, float* s) -{ - float s2[6]; - memcpy(s2, s, sizeof(float)*6); - nsvg__xformMultiply(s2, t); - memcpy(t, s2, sizeof(float)*6); -} - -static void nsvg__xformPoint(float* dx, float* dy, float x, float y, float* t) -{ - *dx = x*t[0] + y*t[2] + t[4]; - *dy = x*t[1] + y*t[3] + t[5]; -} - -static void nsvg__xformVec(float* dx, float* dy, float x, float y, float* t) -{ - *dx = x*t[0] + y*t[2]; - *dy = x*t[1] + y*t[3]; -} - -#define NSVG_EPSILON (1e-12) - -static int nsvg__ptInBounds(float* pt, float* bounds) -{ - return pt[0] >= bounds[0] && pt[0] <= bounds[2] && pt[1] >= bounds[1] && pt[1] <= bounds[3]; -} - - -static double nsvg__evalBezier(double t, double p0, double p1, double p2, double p3) -{ - double it = 1.0-t; - return it*it*it*p0 + 3.0*it*it*t*p1 + 3.0*it*t*t*p2 + t*t*t*p3; -} - -static void nsvg__curveBounds(float* bounds, float* curve) -{ - int i, j, count; - double roots[2], a, b, c, b2ac, t, v; - float* v0 = &curve[0]; - float* v1 = &curve[2]; - float* v2 = &curve[4]; - float* v3 = &curve[6]; - - // Start the bounding box by end points - bounds[0] = nsvg__minf(v0[0], v3[0]); - bounds[1] = nsvg__minf(v0[1], v3[1]); - bounds[2] = nsvg__maxf(v0[0], v3[0]); - bounds[3] = nsvg__maxf(v0[1], v3[1]); - - // Bezier curve fits inside the convex hull of it's control points. - // If control points are inside the bounds, we're done. - if (nsvg__ptInBounds(v1, bounds) && nsvg__ptInBounds(v2, bounds)) - return; - - // Add bezier curve inflection points in X and Y. - for (i = 0; i < 2; i++) { - a = -3.0 * v0[i] + 9.0 * v1[i] - 9.0 * v2[i] + 3.0 * v3[i]; - b = 6.0 * v0[i] - 12.0 * v1[i] + 6.0 * v2[i]; - c = 3.0 * v1[i] - 3.0 * v0[i]; - count = 0; - if (fabs(a) < NSVG_EPSILON) { - if (fabs(b) > NSVG_EPSILON) { - t = -c / b; - if (t > NSVG_EPSILON && t < 1.0-NSVG_EPSILON) - roots[count++] = t; - } - } else { - b2ac = b*b - 4.0*c*a; - if (b2ac > NSVG_EPSILON) { - t = (-b + sqrt(b2ac)) / (2.0 * a); - if (t > NSVG_EPSILON && t < 1.0-NSVG_EPSILON) - roots[count++] = t; - t = (-b - sqrt(b2ac)) / (2.0 * a); - if (t > NSVG_EPSILON && t < 1.0-NSVG_EPSILON) - roots[count++] = t; - } - } - for (j = 0; j < count; j++) { - v = nsvg__evalBezier(roots[j], v0[i], v1[i], v2[i], v3[i]); - bounds[0+i] = nsvg__minf(bounds[0+i], (float)v); - bounds[2+i] = nsvg__maxf(bounds[2+i], (float)v); - } - } -} - -static NSVGparser* nsvg__createParser() -{ - NSVGparser* p; - p = (NSVGparser*)malloc(sizeof(NSVGparser)); - if (p == NULL) goto error; - memset(p, 0, sizeof(NSVGparser)); - - p->image = (NSVGimage*)malloc(sizeof(NSVGimage)); - if (p->image == NULL) goto error; - memset(p->image, 0, sizeof(NSVGimage)); - - // Init style - nsvg__xformIdentity(p->attr[0].xform); - memset(p->attr[0].id, 0, sizeof p->attr[0].id); - p->attr[0].fillColor = NSVG_RGB(0,0,0); - p->attr[0].strokeColor = NSVG_RGB(0,0,0); - p->attr[0].opacity = 1; - p->attr[0].fillOpacity = 1; - p->attr[0].strokeOpacity = 1; - p->attr[0].stopOpacity = 1; - p->attr[0].strokeWidth = 1; - p->attr[0].strokeLineJoin = NSVG_JOIN_MITER; - p->attr[0].strokeLineCap = NSVG_CAP_BUTT; - p->attr[0].miterLimit = 4; - p->attr[0].fillRule = NSVG_FILLRULE_NONZERO; - p->attr[0].hasFill = 1; - p->attr[0].visible = 1; - - return p; - -error: - if (p) { - if (p->image) free(p->image); - free(p); - } - return NULL; -} -static void nsvg__deleteStyles(NSVGstyles* style) { - while (style) { - NSVGstyles *next = style->next; - if (style->name!= NULL) - free(style->name); - if (style->description != NULL) - free(style->description); - free(style); - style = next; - } -} - -static void nsvg__deletePaths(NSVGpath* path) -{ - while (path) { - NSVGpath *next = path->next; - if (path->pts != NULL) - free(path->pts); - free(path); - path = next; - } -} - -static void nsvg__deletePaint(NSVGpaint* paint) -{ - if (paint->type == NSVG_PAINT_LINEAR_GRADIENT || paint->type == NSVG_PAINT_RADIAL_GRADIENT) - free(paint->gradient); -} - -static void nsvg__deleteGradientData(NSVGgradientData* grad) -{ - NSVGgradientData* next; - while (grad != NULL) { - next = grad->next; - free(grad->stops); - free(grad); - grad = next; - } -} - -static void nsvg__deleteParser(NSVGparser* p) -{ - if (p != NULL) { - nsvg__deleteStyles(p->styles); - nsvg__deletePaths(p->plist); - nsvg__deleteGradientData(p->gradients); - nsvgDelete(p->image); - free(p->pts); - free(p); - } -} - -static void nsvg__resetPath(NSVGparser* p) -{ - p->npts = 0; -} - -static void nsvg__addPoint(NSVGparser* p, float x, float y) -{ - if (p->npts+1 > p->cpts) { - p->cpts = p->cpts ? p->cpts*2 : 8; - p->pts = (float*)realloc(p->pts, p->cpts*2*sizeof(float)); - if (!p->pts) return; - } - p->pts[p->npts*2+0] = x; - p->pts[p->npts*2+1] = y; - p->npts++; -} - -static void nsvg__moveTo(NSVGparser* p, float x, float y) -{ - if (p->npts > 0) { - p->pts[(p->npts-1)*2+0] = x; - p->pts[(p->npts-1)*2+1] = y; - } else { - nsvg__addPoint(p, x, y); - } -} - -static void nsvg__lineTo(NSVGparser* p, float x, float y) -{ - float px,py, dx,dy; - if (p->npts > 0) { - px = p->pts[(p->npts-1)*2+0]; - py = p->pts[(p->npts-1)*2+1]; - dx = x - px; - dy = y - py; - nsvg__addPoint(p, px + dx/3.0f, py + dy/3.0f); - nsvg__addPoint(p, x - dx/3.0f, y - dy/3.0f); - nsvg__addPoint(p, x, y); - } -} - -static void nsvg__cubicBezTo(NSVGparser* p, float cpx1, float cpy1, float cpx2, float cpy2, float x, float y) -{ - nsvg__addPoint(p, cpx1, cpy1); - nsvg__addPoint(p, cpx2, cpy2); - nsvg__addPoint(p, x, y); -} - -static NSVGattrib* nsvg__getAttr(NSVGparser* p) -{ - return &p->attr[p->attrHead]; -} - -static void nsvg__pushAttr(NSVGparser* p) -{ - if (p->attrHead < NSVG_MAX_ATTR-1) { - p->attrHead++; - memcpy(&p->attr[p->attrHead], &p->attr[p->attrHead-1], sizeof(NSVGattrib)); - } -} - -static void nsvg__popAttr(NSVGparser* p) -{ - if (p->attrHead > 0) - p->attrHead--; -} - -static float nsvg__actualOrigX(NSVGparser* p) -{ - return p->viewMinx; -} - -static float nsvg__actualOrigY(NSVGparser* p) -{ - return p->viewMiny; -} - -static float nsvg__actualWidth(NSVGparser* p) -{ - return p->viewWidth; -} - -static float nsvg__actualHeight(NSVGparser* p) -{ - return p->viewHeight; -} - -static float nsvg__actualLength(NSVGparser* p) -{ - float w = nsvg__actualWidth(p), h = nsvg__actualHeight(p); - return sqrtf(w*w + h*h) / sqrtf(2.0f); -} - -static float nsvg__convertToPixels(NSVGparser* p, NSVGcoordinate c, float orig, float length) -{ - NSVGattrib* attr = nsvg__getAttr(p); - switch (c.units) { - case NSVG_UNITS_USER: return c.value; - case NSVG_UNITS_PX: return c.value; - case NSVG_UNITS_PT: return c.value / 72.0f * p->dpi; - case NSVG_UNITS_PC: return c.value / 6.0f * p->dpi; - case NSVG_UNITS_MM: return c.value / 25.4f * p->dpi; - case NSVG_UNITS_CM: return c.value / 2.54f * p->dpi; - case NSVG_UNITS_IN: return c.value * p->dpi; - case NSVG_UNITS_EM: return c.value * attr->fontSize; - case NSVG_UNITS_EX: return c.value * attr->fontSize * 0.52f; // x-height of Helvetica. - case NSVG_UNITS_PERCENT: return orig + c.value / 100.0f * length; - default: return c.value; - } - return c.value; -} - -static NSVGgradientData* nsvg__findGradientData(NSVGparser* p, const char* id) -{ - NSVGgradientData* grad = p->gradients; - while (grad) { - if (strcmp(grad->id, id) == 0) - return grad; - grad = grad->next; - } - return NULL; -} - -static NSVGgradient* nsvg__createGradient(NSVGparser* p, const char* id, const float* localBounds, char* paintType) -{ - NSVGattrib* attr = nsvg__getAttr(p); - NSVGgradientData* data = NULL; - NSVGgradientData* ref = NULL; - NSVGgradientStop* stops = NULL; - NSVGgradient* grad; - float ox, oy, sw, sh, sl; - int nstops = 0; - - data = nsvg__findGradientData(p, id); - if (data == NULL) return NULL; - - // TODO: use ref to fill in all unset values too. - ref = data; - while (ref != NULL) { - if (stops == NULL && ref->stops != NULL) { - stops = ref->stops; - nstops = ref->nstops; - break; - } - ref = nsvg__findGradientData(p, ref->ref); - } - if (stops == NULL) return NULL; - - grad = (NSVGgradient*)malloc(sizeof(NSVGgradient) + sizeof(NSVGgradientStop)*(nstops-1)); - if (grad == NULL) return NULL; - - // The shape width and height. - if (data->units == NSVG_OBJECT_SPACE) { - ox = localBounds[0]; - oy = localBounds[1]; - sw = localBounds[2] - localBounds[0]; - sh = localBounds[3] - localBounds[1]; - } else { - ox = nsvg__actualOrigX(p); - oy = nsvg__actualOrigY(p); - sw = nsvg__actualWidth(p); - sh = nsvg__actualHeight(p); - } - sl = sqrtf(sw*sw + sh*sh) / sqrtf(2.0f); - - if (data->type == NSVG_PAINT_LINEAR_GRADIENT) { - float x1, y1, x2, y2, dx, dy; - x1 = nsvg__convertToPixels(p, data->linear.x1, ox, sw); - y1 = nsvg__convertToPixels(p, data->linear.y1, oy, sh); - x2 = nsvg__convertToPixels(p, data->linear.x2, ox, sw); - y2 = nsvg__convertToPixels(p, data->linear.y2, oy, sh); - // Calculate transform aligned to the line - dx = x2 - x1; - dy = y2 - y1; - grad->xform[0] = dy; grad->xform[1] = -dx; - grad->xform[2] = dx; grad->xform[3] = dy; - grad->xform[4] = x1; grad->xform[5] = y1; - } else { - float cx, cy, fx, fy, r; - cx = nsvg__convertToPixels(p, data->radial.cx, ox, sw); - cy = nsvg__convertToPixels(p, data->radial.cy, oy, sh); - fx = nsvg__convertToPixels(p, data->radial.fx, ox, sw); - fy = nsvg__convertToPixels(p, data->radial.fy, oy, sh); - r = nsvg__convertToPixels(p, data->radial.r, 0, sl); - // Calculate transform aligned to the circle - grad->xform[0] = r; grad->xform[1] = 0; - grad->xform[2] = 0; grad->xform[3] = r; - grad->xform[4] = cx; grad->xform[5] = cy; - grad->fx = fx / r; - grad->fy = fy / r; - } - - nsvg__xformMultiply(grad->xform, data->xform); - nsvg__xformMultiply(grad->xform, attr->xform); - - grad->spread = data->spread; - memcpy(grad->stops, stops, nstops*sizeof(NSVGgradientStop)); - grad->nstops = nstops; - - *paintType = data->type; - - return grad; -} - -static float nsvg__getAverageScale(float* t) -{ - float sx = sqrtf(t[0]*t[0] + t[2]*t[2]); - float sy = sqrtf(t[1]*t[1] + t[3]*t[3]); - return (sx + sy) * 0.5f; -} - -static void nsvg__getLocalBounds(float* bounds, NSVGshape *shape, float* xform) -{ - NSVGpath* path; - float curve[4*2], curveBounds[4]; - int i, first = 1; - for (path = shape->paths; path != NULL; path = path->next) { - nsvg__xformPoint(&curve[0], &curve[1], path->pts[0], path->pts[1], xform); - for (i = 0; i < path->npts-1; i += 3) { - nsvg__xformPoint(&curve[2], &curve[3], path->pts[(i+1)*2], path->pts[(i+1)*2+1], xform); - nsvg__xformPoint(&curve[4], &curve[5], path->pts[(i+2)*2], path->pts[(i+2)*2+1], xform); - nsvg__xformPoint(&curve[6], &curve[7], path->pts[(i+3)*2], path->pts[(i+3)*2+1], xform); - nsvg__curveBounds(curveBounds, curve); - if (first) { - bounds[0] = curveBounds[0]; - bounds[1] = curveBounds[1]; - bounds[2] = curveBounds[2]; - bounds[3] = curveBounds[3]; - first = 0; - } else { - bounds[0] = nsvg__minf(bounds[0], curveBounds[0]); - bounds[1] = nsvg__minf(bounds[1], curveBounds[1]); - bounds[2] = nsvg__maxf(bounds[2], curveBounds[2]); - bounds[3] = nsvg__maxf(bounds[3], curveBounds[3]); - } - curve[0] = curve[6]; - curve[1] = curve[7]; - } - } -} - -static void nsvg__addShape(NSVGparser* p) -{ - NSVGattrib* attr = nsvg__getAttr(p); - float scale = 1.0f; - NSVGshape* shape; - NSVGpath* path; - int i; - - if (p->plist == NULL) - return; - - shape = (NSVGshape*)malloc(sizeof(NSVGshape)); - if (shape == NULL) goto error; - memset(shape, 0, sizeof(NSVGshape)); - - memcpy(shape->id, attr->id, sizeof shape->id); - scale = nsvg__getAverageScale(attr->xform); - shape->strokeWidth = attr->strokeWidth * scale; - shape->strokeDashOffset = attr->strokeDashOffset * scale; - shape->strokeDashCount = (char)attr->strokeDashCount; - for (i = 0; i < attr->strokeDashCount; i++) - shape->strokeDashArray[i] = attr->strokeDashArray[i] * scale; - shape->strokeLineJoin = attr->strokeLineJoin; - shape->strokeLineCap = attr->strokeLineCap; - shape->miterLimit = attr->miterLimit; - shape->fillRule = attr->fillRule; - shape->opacity = attr->opacity; - - shape->paths = p->plist; - p->plist = NULL; - - // Calculate shape bounds - shape->bounds[0] = shape->paths->bounds[0]; - shape->bounds[1] = shape->paths->bounds[1]; - shape->bounds[2] = shape->paths->bounds[2]; - shape->bounds[3] = shape->paths->bounds[3]; - for (path = shape->paths->next; path != NULL; path = path->next) { - shape->bounds[0] = nsvg__minf(shape->bounds[0], path->bounds[0]); - shape->bounds[1] = nsvg__minf(shape->bounds[1], path->bounds[1]); - shape->bounds[2] = nsvg__maxf(shape->bounds[2], path->bounds[2]); - shape->bounds[3] = nsvg__maxf(shape->bounds[3], path->bounds[3]); - } - - // Set fill - if (attr->hasFill == 0) { - shape->fill.type = NSVG_PAINT_NONE; - } else if (attr->hasFill == 1) { - shape->fill.type = NSVG_PAINT_COLOR; - shape->fill.color = attr->fillColor; - shape->fill.color |= (unsigned int)(attr->fillOpacity*255) << 24; - } else if (attr->hasFill == 2) { - float inv[6], localBounds[4]; - nsvg__xformInverse(inv, attr->xform); - nsvg__getLocalBounds(localBounds, shape, inv); - shape->fill.gradient = nsvg__createGradient(p, attr->fillGradient, localBounds, &shape->fill.type); - if (shape->fill.gradient == NULL) { - shape->fill.type = NSVG_PAINT_NONE; - } - } - - // Set stroke - if (attr->hasStroke == 0) { - shape->stroke.type = NSVG_PAINT_NONE; - } else if (attr->hasStroke == 1) { - shape->stroke.type = NSVG_PAINT_COLOR; - shape->stroke.color = attr->strokeColor; - shape->stroke.color |= (unsigned int)(attr->strokeOpacity*255) << 24; - } else if (attr->hasStroke == 2) { - float inv[6], localBounds[4]; - nsvg__xformInverse(inv, attr->xform); - nsvg__getLocalBounds(localBounds, shape, inv); - shape->stroke.gradient = nsvg__createGradient(p, attr->strokeGradient, localBounds, &shape->stroke.type); - if (shape->stroke.gradient == NULL) - shape->stroke.type = NSVG_PAINT_NONE; - } - - // Set flags - shape->flags = (attr->visible ? NSVG_FLAGS_VISIBLE : 0x00); - - // Add to tail - if (p->image->shapes == NULL) - p->image->shapes = shape; - else - p->shapesTail->next = shape; - p->shapesTail = shape; - - return; - -error: - if (shape) free(shape); -} - -static void nsvg__addPath(NSVGparser* p, char closed) -{ - NSVGattrib* attr = nsvg__getAttr(p); - NSVGpath* path = NULL; - float bounds[4]; - float* curve; - int i; - - if (p->npts < 4) - return; - - if (closed) - nsvg__lineTo(p, p->pts[0], p->pts[1]); - - path = (NSVGpath*)malloc(sizeof(NSVGpath)); - if (path == NULL) goto error; - memset(path, 0, sizeof(NSVGpath)); - - path->pts = (float*)malloc(p->npts*2*sizeof(float)); - if (path->pts == NULL) goto error; - path->closed = closed; - path->npts = p->npts; - - // Transform path. - for (i = 0; i < p->npts; ++i) - nsvg__xformPoint(&path->pts[i*2], &path->pts[i*2+1], p->pts[i*2], p->pts[i*2+1], attr->xform); - - // Find bounds - for (i = 0; i < path->npts-1; i += 3) { - curve = &path->pts[i*2]; - nsvg__curveBounds(bounds, curve); - if (i == 0) { - path->bounds[0] = bounds[0]; - path->bounds[1] = bounds[1]; - path->bounds[2] = bounds[2]; - path->bounds[3] = bounds[3]; - } else { - path->bounds[0] = nsvg__minf(path->bounds[0], bounds[0]); - path->bounds[1] = nsvg__minf(path->bounds[1], bounds[1]); - path->bounds[2] = nsvg__maxf(path->bounds[2], bounds[2]); - path->bounds[3] = nsvg__maxf(path->bounds[3], bounds[3]); - } - } - - path->next = p->plist; - p->plist = path; - - return; - -error: - if (path != NULL) { - if (path->pts != NULL) free(path->pts); - free(path); - } -} - -// We roll our own string to float because the std library one uses locale and messes things up. -static double nsvg__atof(const char* s) -{ - char* cur = (char*)s; - char* end = NULL; - double res = 0.0, sign = 1.0; - long long intPart = 0, fracPart = 0; - char hasIntPart = 0, hasFracPart = 0; - - // Parse optional sign - if (*cur == '+') { - cur++; - } else if (*cur == '-') { - sign = -1; - cur++; - } - - // Parse integer part - if (nsvg__isdigit(*cur)) { - // Parse digit sequence - intPart = strtoll(cur, &end, 10); - if (cur != end) { - res = (double)intPart; - hasIntPart = 1; - cur = end; - } - } - - // Parse fractional part. - if (*cur == '.') { - cur++; // Skip '.' - if (nsvg__isdigit(*cur)) { - // Parse digit sequence - fracPart = strtoll(cur, &end, 10); - if (cur != end) { - res += (double)fracPart / pow(10.0, (double)(end - cur)); - hasFracPart = 1; - cur = end; - } - } - } - - // A valid number should have integer or fractional part. - if (!hasIntPart && !hasFracPart) - return 0.0; - - // Parse optional exponent - if (*cur == 'e' || *cur == 'E') { - int expPart = 0; - cur++; // skip 'E' - expPart = (int)strtol(cur, &end, 10); // Parse digit sequence with sign - if (cur != end) { - res *= pow(10.0, (double)expPart); - } - } - - return res * sign; -} - - -static const char* nsvg__parseNumber(const char* s, char* it, const int size) -{ - const int last = size-1; - int i = 0; - - // sign - if (*s == '-' || *s == '+') { - if (i < last) it[i++] = *s; - s++; - } - // integer part - while (*s && nsvg__isdigit(*s)) { - if (i < last) it[i++] = *s; - s++; - } - if (*s == '.') { - // decimal point - if (i < last) it[i++] = *s; - s++; - // fraction part - while (*s && nsvg__isdigit(*s)) { - if (i < last) it[i++] = *s; - s++; - } - } - // exponent - if (*s == 'e' || *s == 'E') { - if (i < last) it[i++] = *s; - s++; - if (*s == '-' || *s == '+') { - if (i < last) it[i++] = *s; - s++; - } - while (*s && nsvg__isdigit(*s)) { - if (i < last) it[i++] = *s; - s++; - } - } - it[i] = '\0'; - - return s; -} - -static const char* nsvg__getNextPathItem(const char* s, char* it) -{ - it[0] = '\0'; - // Skip white spaces and commas - while (*s && (nsvg__isspace(*s) || *s == ',')) s++; - if (!*s) return s; - if (*s == '-' || *s == '+' || *s == '.' || nsvg__isdigit(*s)) { - s = nsvg__parseNumber(s, it, 64); - } else { - // Parse command - it[0] = *s++; - it[1] = '\0'; - return s; - } - - return s; -} - -static unsigned int nsvg__parseColorHex(const char* str) -{ - unsigned int c = 0, r = 0, g = 0, b = 0; - int n = 0; - str++; // skip # - // Calculate number of characters. - while(str[n] && !nsvg__isspace(str[n])) - n++; - if (n == 6) { - sscanf(str, "%x", &c); - } else if (n == 3) { - sscanf(str, "%x", &c); - c = (c&0xf) | ((c&0xf0) << 4) | ((c&0xf00) << 8); - c |= c<<4; - } - r = (c >> 16) & 0xff; - g = (c >> 8) & 0xff; - b = c & 0xff; - return NSVG_RGB(r,g,b); -} - -static unsigned int nsvg__parseColorRGB(const char* str) -{ - int r = -1, g = -1, b = -1; - char s1[32]="", s2[32]=""; - sscanf(str + 4, "%d%[%%, \t]%d%[%%, \t]%d", &r, s1, &g, s2, &b); - if (strchr(s1, '%')) { - return NSVG_RGB((r*255)/100,(g*255)/100,(b*255)/100); - } else { - return NSVG_RGB(r,g,b); - } -} - -typedef struct NSVGNamedColor { - const char* name; - unsigned int color; -} NSVGNamedColor; - -NSVGNamedColor nsvg__colors[] = { - - { "red", NSVG_RGB(255, 0, 0) }, - { "green", NSVG_RGB( 0, 128, 0) }, - { "blue", NSVG_RGB( 0, 0, 255) }, - { "yellow", NSVG_RGB(255, 255, 0) }, - { "cyan", NSVG_RGB( 0, 255, 255) }, - { "magenta", NSVG_RGB(255, 0, 255) }, - { "black", NSVG_RGB( 0, 0, 0) }, - { "grey", NSVG_RGB(128, 128, 128) }, - { "gray", NSVG_RGB(128, 128, 128) }, - { "white", NSVG_RGB(255, 255, 255) }, - -#ifdef NANOSVG_ALL_COLOR_KEYWORDS - { "aliceblue", NSVG_RGB(240, 248, 255) }, - { "antiquewhite", NSVG_RGB(250, 235, 215) }, - { "aqua", NSVG_RGB( 0, 255, 255) }, - { "aquamarine", NSVG_RGB(127, 255, 212) }, - { "azure", NSVG_RGB(240, 255, 255) }, - { "beige", NSVG_RGB(245, 245, 220) }, - { "bisque", NSVG_RGB(255, 228, 196) }, - { "blanchedalmond", NSVG_RGB(255, 235, 205) }, - { "blueviolet", NSVG_RGB(138, 43, 226) }, - { "brown", NSVG_RGB(165, 42, 42) }, - { "burlywood", NSVG_RGB(222, 184, 135) }, - { "cadetblue", NSVG_RGB( 95, 158, 160) }, - { "chartreuse", NSVG_RGB(127, 255, 0) }, - { "chocolate", NSVG_RGB(210, 105, 30) }, - { "coral", NSVG_RGB(255, 127, 80) }, - { "cornflowerblue", NSVG_RGB(100, 149, 237) }, - { "cornsilk", NSVG_RGB(255, 248, 220) }, - { "crimson", NSVG_RGB(220, 20, 60) }, - { "darkblue", NSVG_RGB( 0, 0, 139) }, - { "darkcyan", NSVG_RGB( 0, 139, 139) }, - { "darkgoldenrod", NSVG_RGB(184, 134, 11) }, - { "darkgray", NSVG_RGB(169, 169, 169) }, - { "darkgreen", NSVG_RGB( 0, 100, 0) }, - { "darkgrey", NSVG_RGB(169, 169, 169) }, - { "darkkhaki", NSVG_RGB(189, 183, 107) }, - { "darkmagenta", NSVG_RGB(139, 0, 139) }, - { "darkolivegreen", NSVG_RGB( 85, 107, 47) }, - { "darkorange", NSVG_RGB(255, 140, 0) }, - { "darkorchid", NSVG_RGB(153, 50, 204) }, - { "darkred", NSVG_RGB(139, 0, 0) }, - { "darksalmon", NSVG_RGB(233, 150, 122) }, - { "darkseagreen", NSVG_RGB(143, 188, 143) }, - { "darkslateblue", NSVG_RGB( 72, 61, 139) }, - { "darkslategray", NSVG_RGB( 47, 79, 79) }, - { "darkslategrey", NSVG_RGB( 47, 79, 79) }, - { "darkturquoise", NSVG_RGB( 0, 206, 209) }, - { "darkviolet", NSVG_RGB(148, 0, 211) }, - { "deeppink", NSVG_RGB(255, 20, 147) }, - { "deepskyblue", NSVG_RGB( 0, 191, 255) }, - { "dimgray", NSVG_RGB(105, 105, 105) }, - { "dimgrey", NSVG_RGB(105, 105, 105) }, - { "dodgerblue", NSVG_RGB( 30, 144, 255) }, - { "firebrick", NSVG_RGB(178, 34, 34) }, - { "floralwhite", NSVG_RGB(255, 250, 240) }, - { "forestgreen", NSVG_RGB( 34, 139, 34) }, - { "fuchsia", NSVG_RGB(255, 0, 255) }, - { "gainsboro", NSVG_RGB(220, 220, 220) }, - { "ghostwhite", NSVG_RGB(248, 248, 255) }, - { "gold", NSVG_RGB(255, 215, 0) }, - { "goldenrod", NSVG_RGB(218, 165, 32) }, - { "greenyellow", NSVG_RGB(173, 255, 47) }, - { "honeydew", NSVG_RGB(240, 255, 240) }, - { "hotpink", NSVG_RGB(255, 105, 180) }, - { "indianred", NSVG_RGB(205, 92, 92) }, - { "indigo", NSVG_RGB( 75, 0, 130) }, - { "ivory", NSVG_RGB(255, 255, 240) }, - { "khaki", NSVG_RGB(240, 230, 140) }, - { "lavender", NSVG_RGB(230, 230, 250) }, - { "lavenderblush", NSVG_RGB(255, 240, 245) }, - { "lawngreen", NSVG_RGB(124, 252, 0) }, - { "lemonchiffon", NSVG_RGB(255, 250, 205) }, - { "lightblue", NSVG_RGB(173, 216, 230) }, - { "lightcoral", NSVG_RGB(240, 128, 128) }, - { "lightcyan", NSVG_RGB(224, 255, 255) }, - { "lightgoldenrodyellow", NSVG_RGB(250, 250, 210) }, - { "lightgray", NSVG_RGB(211, 211, 211) }, - { "lightgreen", NSVG_RGB(144, 238, 144) }, - { "lightgrey", NSVG_RGB(211, 211, 211) }, - { "lightpink", NSVG_RGB(255, 182, 193) }, - { "lightsalmon", NSVG_RGB(255, 160, 122) }, - { "lightseagreen", NSVG_RGB( 32, 178, 170) }, - { "lightskyblue", NSVG_RGB(135, 206, 250) }, - { "lightslategray", NSVG_RGB(119, 136, 153) }, - { "lightslategrey", NSVG_RGB(119, 136, 153) }, - { "lightsteelblue", NSVG_RGB(176, 196, 222) }, - { "lightyellow", NSVG_RGB(255, 255, 224) }, - { "lime", NSVG_RGB( 0, 255, 0) }, - { "limegreen", NSVG_RGB( 50, 205, 50) }, - { "linen", NSVG_RGB(250, 240, 230) }, - { "maroon", NSVG_RGB(128, 0, 0) }, - { "mediumaquamarine", NSVG_RGB(102, 205, 170) }, - { "mediumblue", NSVG_RGB( 0, 0, 205) }, - { "mediumorchid", NSVG_RGB(186, 85, 211) }, - { "mediumpurple", NSVG_RGB(147, 112, 219) }, - { "mediumseagreen", NSVG_RGB( 60, 179, 113) }, - { "mediumslateblue", NSVG_RGB(123, 104, 238) }, - { "mediumspringgreen", NSVG_RGB( 0, 250, 154) }, - { "mediumturquoise", NSVG_RGB( 72, 209, 204) }, - { "mediumvioletred", NSVG_RGB(199, 21, 133) }, - { "midnightblue", NSVG_RGB( 25, 25, 112) }, - { "mintcream", NSVG_RGB(245, 255, 250) }, - { "mistyrose", NSVG_RGB(255, 228, 225) }, - { "moccasin", NSVG_RGB(255, 228, 181) }, - { "navajowhite", NSVG_RGB(255, 222, 173) }, - { "navy", NSVG_RGB( 0, 0, 128) }, - { "oldlace", NSVG_RGB(253, 245, 230) }, - { "olive", NSVG_RGB(128, 128, 0) }, - { "olivedrab", NSVG_RGB(107, 142, 35) }, - { "orange", NSVG_RGB(255, 165, 0) }, - { "orangered", NSVG_RGB(255, 69, 0) }, - { "orchid", NSVG_RGB(218, 112, 214) }, - { "palegoldenrod", NSVG_RGB(238, 232, 170) }, - { "palegreen", NSVG_RGB(152, 251, 152) }, - { "paleturquoise", NSVG_RGB(175, 238, 238) }, - { "palevioletred", NSVG_RGB(219, 112, 147) }, - { "papayawhip", NSVG_RGB(255, 239, 213) }, - { "peachpuff", NSVG_RGB(255, 218, 185) }, - { "peru", NSVG_RGB(205, 133, 63) }, - { "pink", NSVG_RGB(255, 192, 203) }, - { "plum", NSVG_RGB(221, 160, 221) }, - { "powderblue", NSVG_RGB(176, 224, 230) }, - { "purple", NSVG_RGB(128, 0, 128) }, - { "rosybrown", NSVG_RGB(188, 143, 143) }, - { "royalblue", NSVG_RGB( 65, 105, 225) }, - { "saddlebrown", NSVG_RGB(139, 69, 19) }, - { "salmon", NSVG_RGB(250, 128, 114) }, - { "sandybrown", NSVG_RGB(244, 164, 96) }, - { "seagreen", NSVG_RGB( 46, 139, 87) }, - { "seashell", NSVG_RGB(255, 245, 238) }, - { "sienna", NSVG_RGB(160, 82, 45) }, - { "silver", NSVG_RGB(192, 192, 192) }, - { "skyblue", NSVG_RGB(135, 206, 235) }, - { "slateblue", NSVG_RGB(106, 90, 205) }, - { "slategray", NSVG_RGB(112, 128, 144) }, - { "slategrey", NSVG_RGB(112, 128, 144) }, - { "snow", NSVG_RGB(255, 250, 250) }, - { "springgreen", NSVG_RGB( 0, 255, 127) }, - { "steelblue", NSVG_RGB( 70, 130, 180) }, - { "tan", NSVG_RGB(210, 180, 140) }, - { "teal", NSVG_RGB( 0, 128, 128) }, - { "thistle", NSVG_RGB(216, 191, 216) }, - { "tomato", NSVG_RGB(255, 99, 71) }, - { "turquoise", NSVG_RGB( 64, 224, 208) }, - { "violet", NSVG_RGB(238, 130, 238) }, - { "wheat", NSVG_RGB(245, 222, 179) }, - { "whitesmoke", NSVG_RGB(245, 245, 245) }, - { "yellowgreen", NSVG_RGB(154, 205, 50) }, -#endif -}; - -static unsigned int nsvg__parseColorName(const char* str) -{ - int i, ncolors = sizeof(nsvg__colors) / sizeof(NSVGNamedColor); - - for (i = 0; i < ncolors; i++) { - if (strcmp(nsvg__colors[i].name, str) == 0) { - return nsvg__colors[i].color; - } - } - - return NSVG_RGB(128, 128, 128); -} - -static unsigned int nsvg__parseColor(const char* str) -{ - size_t len = 0; - while(*str == ' ') ++str; - len = strlen(str); - if (len >= 1 && *str == '#') - return nsvg__parseColorHex(str); - else if (len >= 4 && str[0] == 'r' && str[1] == 'g' && str[2] == 'b' && str[3] == '(') - return nsvg__parseColorRGB(str); - return nsvg__parseColorName(str); -} - -static float nsvg__parseOpacity(const char* str) -{ - float val = 0; - sscanf(str, "%f", &val); - if (val < 0.0f) val = 0.0f; - if (val > 1.0f) val = 1.0f; - return val; -} - -static float nsvg__parseMiterLimit(const char* str) -{ - float val = 0; - sscanf(str, "%f", &val); - if (val < 0.0f) val = 0.0f; - return val; -} - -static int nsvg__parseUnits(const char* units) -{ - if (units[0] == 'p' && units[1] == 'x') - return NSVG_UNITS_PX; - else if (units[0] == 'p' && units[1] == 't') - return NSVG_UNITS_PT; - else if (units[0] == 'p' && units[1] == 'c') - return NSVG_UNITS_PC; - else if (units[0] == 'm' && units[1] == 'm') - return NSVG_UNITS_MM; - else if (units[0] == 'c' && units[1] == 'm') - return NSVG_UNITS_CM; - else if (units[0] == 'i' && units[1] == 'n') - return NSVG_UNITS_IN; - else if (units[0] == '%') - return NSVG_UNITS_PERCENT; - else if (units[0] == 'e' && units[1] == 'm') - return NSVG_UNITS_EM; - else if (units[0] == 'e' && units[1] == 'x') - return NSVG_UNITS_EX; - return NSVG_UNITS_USER; -} - -static NSVGcoordinate nsvg__parseCoordinateRaw(const char* str) -{ - NSVGcoordinate coord = {0, NSVG_UNITS_USER}; - char units[32]=""; - sscanf(str, "%f%31s", &coord.value, units); - coord.units = nsvg__parseUnits(units); - return coord; -} - -static NSVGcoordinate nsvg__coord(float v, int units) -{ - NSVGcoordinate coord = {v, units}; - return coord; -} - -static float nsvg__parseCoordinate(NSVGparser* p, const char* str, float orig, float length) -{ - NSVGcoordinate coord = nsvg__parseCoordinateRaw(str); - return nsvg__convertToPixels(p, coord, orig, length); -} - -static int nsvg__parseTransformArgs(const char* str, float* args, int maxNa, int* na) -{ - const char* end; - const char* ptr; - char it[64]; - - *na = 0; - ptr = str; - while (*ptr && *ptr != '(') ++ptr; - if (*ptr == 0) - return 1; - end = ptr; - while (*end && *end != ')') ++end; - if (*end == 0) - return 1; - - while (ptr < end) { - if (*ptr == '-' || *ptr == '+' || *ptr == '.' || nsvg__isdigit(*ptr)) { - if (*na >= maxNa) return 0; - ptr = nsvg__parseNumber(ptr, it, 64); - args[(*na)++] = (float)nsvg__atof(it); - } else { - ++ptr; - } - } - return (int)(end - str); -} - - -static int nsvg__parseMatrix(float* xform, const char* str) -{ - float t[6]; - int na = 0; - int len = nsvg__parseTransformArgs(str, t, 6, &na); - if (na != 6) return len; - memcpy(xform, t, sizeof(float)*6); - return len; -} - -static int nsvg__parseTranslate(float* xform, const char* str) -{ - float args[2]; - float t[6]; - int na = 0; - int len = nsvg__parseTransformArgs(str, args, 2, &na); - if (na == 1) args[1] = 0.0; - - nsvg__xformSetTranslation(t, args[0], args[1]); - memcpy(xform, t, sizeof(float)*6); - return len; -} - -static int nsvg__parseScale(float* xform, const char* str) -{ - float args[2]; - int na = 0; - float t[6]; - int len = nsvg__parseTransformArgs(str, args, 2, &na); - if (na == 1) args[1] = args[0]; - nsvg__xformSetScale(t, args[0], args[1]); - memcpy(xform, t, sizeof(float)*6); - return len; -} - -static int nsvg__parseSkewX(float* xform, const char* str) -{ - float args[1]; - int na = 0; - float t[6]; - int len = nsvg__parseTransformArgs(str, args, 1, &na); - nsvg__xformSetSkewX(t, args[0]/180.0f*NSVG_PI); - memcpy(xform, t, sizeof(float)*6); - return len; -} - -static int nsvg__parseSkewY(float* xform, const char* str) -{ - float args[1]; - int na = 0; - float t[6]; - int len = nsvg__parseTransformArgs(str, args, 1, &na); - nsvg__xformSetSkewY(t, args[0]/180.0f*NSVG_PI); - memcpy(xform, t, sizeof(float)*6); - return len; -} - -static int nsvg__parseRotate(float* xform, const char* str) -{ - float args[3]; - int na = 0; - float m[6]; - float t[6]; - int len = nsvg__parseTransformArgs(str, args, 3, &na); - if (na == 1) - args[1] = args[2] = 0.0f; - nsvg__xformIdentity(m); - - if (na > 1) { - nsvg__xformSetTranslation(t, -args[1], -args[2]); - nsvg__xformMultiply(m, t); - } - - nsvg__xformSetRotation(t, args[0]/180.0f*NSVG_PI); - nsvg__xformMultiply(m, t); - - if (na > 1) { - nsvg__xformSetTranslation(t, args[1], args[2]); - nsvg__xformMultiply(m, t); - } - - memcpy(xform, m, sizeof(float)*6); - - return len; -} - -static void nsvg__parseTransform(float* xform, const char* str) -{ - float t[6]; - nsvg__xformIdentity(xform); - while (*str) - { - if (strncmp(str, "matrix", 6) == 0) - str += nsvg__parseMatrix(t, str); - else if (strncmp(str, "translate", 9) == 0) - str += nsvg__parseTranslate(t, str); - else if (strncmp(str, "scale", 5) == 0) - str += nsvg__parseScale(t, str); - else if (strncmp(str, "rotate", 6) == 0) - str += nsvg__parseRotate(t, str); - else if (strncmp(str, "skewX", 5) == 0) - str += nsvg__parseSkewX(t, str); - else if (strncmp(str, "skewY", 5) == 0) - str += nsvg__parseSkewY(t, str); - else{ - ++str; - continue; - } - - nsvg__xformPremultiply(xform, t); - } -} - -static void nsvg__parseUrl(char* id, const char* str) -{ - int i = 0; - str += 4; // "url("; - if (*str == '#') - str++; - while (i < 63 && *str != ')') { - id[i] = *str++; - i++; - } - id[i] = '\0'; -} - -static char nsvg__parseLineCap(const char* str) -{ - if (strcmp(str, "butt") == 0) - return NSVG_CAP_BUTT; - else if (strcmp(str, "round") == 0) - return NSVG_CAP_ROUND; - else if (strcmp(str, "square") == 0) - return NSVG_CAP_SQUARE; - // TODO: handle inherit. - return NSVG_CAP_BUTT; -} - -static char nsvg__parseLineJoin(const char* str) -{ - if (strcmp(str, "miter") == 0) - return NSVG_JOIN_MITER; - else if (strcmp(str, "round") == 0) - return NSVG_JOIN_ROUND; - else if (strcmp(str, "bevel") == 0) - return NSVG_JOIN_BEVEL; - // TODO: handle inherit. - return NSVG_CAP_BUTT; -} - -static char nsvg__parseFillRule(const char* str) -{ - if (strcmp(str, "nonzero") == 0) - return NSVG_FILLRULE_NONZERO; - else if (strcmp(str, "evenodd") == 0) - return NSVG_FILLRULE_EVENODD; - // TODO: handle inherit. - return NSVG_FILLRULE_NONZERO; -} - -static const char* nsvg__getNextDashItem(const char* s, char* it) -{ - int n = 0; - it[0] = '\0'; - // Skip white spaces and commas - while (*s && (nsvg__isspace(*s) || *s == ',')) s++; - // Advance until whitespace, comma or end. - while (*s && (!nsvg__isspace(*s) && *s != ',')) { - if (n < 63) - it[n++] = *s; - s++; - } - it[n++] = '\0'; - return s; -} - -static int nsvg__parseStrokeDashArray(NSVGparser* p, const char* str, float* strokeDashArray) -{ - char item[64]; - int count = 0, i; - float sum = 0.0f; - - // Handle "none" - if (str[0] == 'n') - return 0; - - // Parse dashes - while (*str) { - str = nsvg__getNextDashItem(str, item); - if (!*item) break; - if (count < NSVG_MAX_DASHES) - strokeDashArray[count++] = fabsf(nsvg__parseCoordinate(p, item, 0.0f, nsvg__actualLength(p))); - } - - for (i = 0; i < count; i++) - sum += strokeDashArray[i]; - if (sum <= 1e-6f) - count = 0; - - return count; -} - -static void nsvg__parseStyle(NSVGparser* p, const char* str); - -static int nsvg__parseAttr(NSVGparser* p, const char* name, const char* value) -{ - float xform[6]; - NSVGattrib* attr = nsvg__getAttr(p); - if (!attr) return 0; - - if (strcmp(name, "style") == 0) { - nsvg__parseStyle(p, value); - } else if (strcmp(name, "display") == 0) { - if (strcmp(value, "none") == 0) - attr->visible = 0; - // Don't reset ->visible on display:inline, one display:none hides the whole subtree - - } else if (strcmp(name, "fill") == 0) { - if (strcmp(value, "none") == 0) { - attr->hasFill = 0; - } else if (strncmp(value, "url(", 4) == 0) { - attr->hasFill = 2; - nsvg__parseUrl(attr->fillGradient, value); - } else { - attr->hasFill = 1; - attr->fillColor = nsvg__parseColor(value); - } - } else if (strcmp(name, "opacity") == 0) { - attr->opacity = nsvg__parseOpacity(value); - } else if (strcmp(name, "fill-opacity") == 0) { - attr->fillOpacity = nsvg__parseOpacity(value); - } else if (strcmp(name, "stroke") == 0) { - if (strcmp(value, "none") == 0) { - attr->hasStroke = 0; - } else if (strncmp(value, "url(", 4) == 0) { - attr->hasStroke = 2; - nsvg__parseUrl(attr->strokeGradient, value); - } else { - attr->hasStroke = 1; - attr->strokeColor = nsvg__parseColor(value); - } - } else if (strcmp(name, "stroke-width") == 0) { - attr->strokeWidth = nsvg__parseCoordinate(p, value, 0.0f, nsvg__actualLength(p)); - } else if (strcmp(name, "stroke-dasharray") == 0) { - attr->strokeDashCount = nsvg__parseStrokeDashArray(p, value, attr->strokeDashArray); - } else if (strcmp(name, "stroke-dashoffset") == 0) { - attr->strokeDashOffset = nsvg__parseCoordinate(p, value, 0.0f, nsvg__actualLength(p)); - } else if (strcmp(name, "stroke-opacity") == 0) { - attr->strokeOpacity = nsvg__parseOpacity(value); - } else if (strcmp(name, "stroke-linecap") == 0) { - attr->strokeLineCap = nsvg__parseLineCap(value); - } else if (strcmp(name, "stroke-linejoin") == 0) { - attr->strokeLineJoin = nsvg__parseLineJoin(value); - } else if (strcmp(name, "stroke-miterlimit") == 0) { - attr->miterLimit = nsvg__parseMiterLimit(value); - } else if (strcmp(name, "fill-rule") == 0) { - attr->fillRule = nsvg__parseFillRule(value); - } else if (strcmp(name, "font-size") == 0) { - attr->fontSize = nsvg__parseCoordinate(p, value, 0.0f, nsvg__actualLength(p)); - } else if (strcmp(name, "transform") == 0) { - nsvg__parseTransform(xform, value); - nsvg__xformPremultiply(attr->xform, xform); - } else if (strcmp(name, "stop-color") == 0) { - attr->stopColor = nsvg__parseColor(value); - } else if (strcmp(name, "stop-opacity") == 0) { - attr->stopOpacity = nsvg__parseOpacity(value); - } else if (strcmp(name, "offset") == 0) { - attr->stopOffset = nsvg__parseCoordinate(p, value, 0.0f, 1.0f); - } else if (strcmp(name, "id") == 0) { - strncpy(attr->id, value, 63); - attr->id[63] = '\0'; - } else if (strcmp(name, "class") == 0) { - NSVGstyles* style = p->styles; - while (style) { - if (strcmp(style->name + 1, value) == 0) { - break; - } - style = style->next; - } - if (style) { - nsvg__parseStyle(p, style->description); - } - } - else { - return 0; - } - return 1; -} - -static int nsvg__parseNameValue(NSVGparser* p, const char* start, const char* end) -{ - const char* str; - const char* val; - char name[512]; - char value[512]; - int n; - - str = start; - while (str < end && *str != ':') ++str; - - val = str; - - // Right Trim - while (str > start && (*str == ':' || nsvg__isspace(*str))) --str; - ++str; - - n = (int)(str - start); - if (n > 511) n = 511; - if (n) memcpy(name, start, n); - name[n] = 0; - - while (val < end && (*val == ':' || nsvg__isspace(*val))) ++val; - - n = (int)(end - val); - if (n > 511) n = 511; - if (n) memcpy(value, val, n); - value[n] = 0; - - return nsvg__parseAttr(p, name, value); -} - -static void nsvg__parseStyle(NSVGparser* p, const char* str) -{ - const char* start; - const char* end; - - while (*str) { - // Left Trim - while(*str && nsvg__isspace(*str)) ++str; - start = str; - while(*str && *str != ';') ++str; - end = str; - - // Right Trim - while (end > start && (*end == ';' || nsvg__isspace(*end))) --end; - ++end; - - nsvg__parseNameValue(p, start, end); - if (*str) ++str; - } -} - -static void nsvg__parseAttribs(NSVGparser* p, const char** attr) -{ - int i; - for (i = 0; attr[i]; i += 2) - { - if (strcmp(attr[i], "style") == 0) - nsvg__parseStyle(p, attr[i + 1]); - else - nsvg__parseAttr(p, attr[i], attr[i + 1]); - } -} - -static int nsvg__getArgsPerElement(char cmd) -{ - switch (cmd) { - case 'v': - case 'V': - case 'h': - case 'H': - return 1; - case 'm': - case 'M': - case 'l': - case 'L': - case 't': - case 'T': - return 2; - case 'q': - case 'Q': - case 's': - case 'S': - return 4; - case 'c': - case 'C': - return 6; - case 'a': - case 'A': - return 7; - } - return 0; -} - -static void nsvg__pathMoveTo(NSVGparser* p, float* cpx, float* cpy, float* args, int rel) -{ - if (rel) { - *cpx += args[0]; - *cpy += args[1]; - } else { - *cpx = args[0]; - *cpy = args[1]; - } - nsvg__moveTo(p, *cpx, *cpy); -} - -static void nsvg__pathLineTo(NSVGparser* p, float* cpx, float* cpy, float* args, int rel) -{ - if (rel) { - *cpx += args[0]; - *cpy += args[1]; - } else { - *cpx = args[0]; - *cpy = args[1]; - } - nsvg__lineTo(p, *cpx, *cpy); -} - -static void nsvg__pathHLineTo(NSVGparser* p, float* cpx, float* cpy, float* args, int rel) -{ - if (rel) - *cpx += args[0]; - else - *cpx = args[0]; - nsvg__lineTo(p, *cpx, *cpy); -} - -static void nsvg__pathVLineTo(NSVGparser* p, float* cpx, float* cpy, float* args, int rel) -{ - if (rel) - *cpy += args[0]; - else - *cpy = args[0]; - nsvg__lineTo(p, *cpx, *cpy); -} - -static void nsvg__pathCubicBezTo(NSVGparser* p, float* cpx, float* cpy, - float* cpx2, float* cpy2, float* args, int rel) -{ - float x2, y2, cx1, cy1, cx2, cy2; - - if (rel) { - cx1 = *cpx + args[0]; - cy1 = *cpy + args[1]; - cx2 = *cpx + args[2]; - cy2 = *cpy + args[3]; - x2 = *cpx + args[4]; - y2 = *cpy + args[5]; - } else { - cx1 = args[0]; - cy1 = args[1]; - cx2 = args[2]; - cy2 = args[3]; - x2 = args[4]; - y2 = args[5]; - } - - nsvg__cubicBezTo(p, cx1,cy1, cx2,cy2, x2,y2); - - *cpx2 = cx2; - *cpy2 = cy2; - *cpx = x2; - *cpy = y2; -} - -static void nsvg__pathCubicBezShortTo(NSVGparser* p, float* cpx, float* cpy, - float* cpx2, float* cpy2, float* args, int rel) -{ - float x1, y1, x2, y2, cx1, cy1, cx2, cy2; - - x1 = *cpx; - y1 = *cpy; - if (rel) { - cx2 = *cpx + args[0]; - cy2 = *cpy + args[1]; - x2 = *cpx + args[2]; - y2 = *cpy + args[3]; - } else { - cx2 = args[0]; - cy2 = args[1]; - x2 = args[2]; - y2 = args[3]; - } - - cx1 = 2*x1 - *cpx2; - cy1 = 2*y1 - *cpy2; - - nsvg__cubicBezTo(p, cx1,cy1, cx2,cy2, x2,y2); - - *cpx2 = cx2; - *cpy2 = cy2; - *cpx = x2; - *cpy = y2; -} - -static void nsvg__pathQuadBezTo(NSVGparser* p, float* cpx, float* cpy, - float* cpx2, float* cpy2, float* args, int rel) -{ - float x1, y1, x2, y2, cx, cy; - float cx1, cy1, cx2, cy2; - - x1 = *cpx; - y1 = *cpy; - if (rel) { - cx = *cpx + args[0]; - cy = *cpy + args[1]; - x2 = *cpx + args[2]; - y2 = *cpy + args[3]; - } else { - cx = args[0]; - cy = args[1]; - x2 = args[2]; - y2 = args[3]; - } - - // Convert to cubic bezier - cx1 = x1 + 2.0f/3.0f*(cx - x1); - cy1 = y1 + 2.0f/3.0f*(cy - y1); - cx2 = x2 + 2.0f/3.0f*(cx - x2); - cy2 = y2 + 2.0f/3.0f*(cy - y2); - - nsvg__cubicBezTo(p, cx1,cy1, cx2,cy2, x2,y2); - - *cpx2 = cx; - *cpy2 = cy; - *cpx = x2; - *cpy = y2; -} - -static void nsvg__pathQuadBezShortTo(NSVGparser* p, float* cpx, float* cpy, - float* cpx2, float* cpy2, float* args, int rel) -{ - float x1, y1, x2, y2, cx, cy; - float cx1, cy1, cx2, cy2; - - x1 = *cpx; - y1 = *cpy; - if (rel) { - x2 = *cpx + args[0]; - y2 = *cpy + args[1]; - } else { - x2 = args[0]; - y2 = args[1]; - } - - cx = 2*x1 - *cpx2; - cy = 2*y1 - *cpy2; - - // Convert to cubix bezier - cx1 = x1 + 2.0f/3.0f*(cx - x1); - cy1 = y1 + 2.0f/3.0f*(cy - y1); - cx2 = x2 + 2.0f/3.0f*(cx - x2); - cy2 = y2 + 2.0f/3.0f*(cy - y2); - - nsvg__cubicBezTo(p, cx1,cy1, cx2,cy2, x2,y2); - - *cpx2 = cx; - *cpy2 = cy; - *cpx = x2; - *cpy = y2; -} - -static float nsvg__sqr(float x) { return x*x; } -static float nsvg__vmag(float x, float y) { return sqrtf(x*x + y*y); } - -static float nsvg__vecrat(float ux, float uy, float vx, float vy) -{ - return (ux*vx + uy*vy) / (nsvg__vmag(ux,uy) * nsvg__vmag(vx,vy)); -} - -static float nsvg__vecang(float ux, float uy, float vx, float vy) -{ - float r = nsvg__vecrat(ux,uy, vx,vy); - if (r < -1.0f) r = -1.0f; - if (r > 1.0f) r = 1.0f; - return ((ux*vy < uy*vx) ? -1.0f : 1.0f) * acosf(r); -} - -static void nsvg__pathArcTo(NSVGparser* p, float* cpx, float* cpy, float* args, int rel) -{ - // Ported from canvg (https://code.google.com/p/canvg/) - float rx, ry, rotx; - float x1, y1, x2, y2, cx, cy, dx, dy, d; - float x1p, y1p, cxp, cyp, s, sa, sb; - float ux, uy, vx, vy, a1, da; - float x, y, tanx, tany, a, px = 0, py = 0, ptanx = 0, ptany = 0, t[6]; - float sinrx, cosrx; - int fa, fs; - int i, ndivs; - float hda, kappa; - - rx = fabsf(args[0]); // y radius - ry = fabsf(args[1]); // x radius - rotx = args[2] / 180.0f * NSVG_PI; // x rotation angle - fa = fabsf(args[3]) > 1e-6 ? 1 : 0; // Large arc - fs = fabsf(args[4]) > 1e-6 ? 1 : 0; // Sweep direction - x1 = *cpx; // start point - y1 = *cpy; - if (rel) { // end point - x2 = *cpx + args[5]; - y2 = *cpy + args[6]; - } else { - x2 = args[5]; - y2 = args[6]; - } - - dx = x1 - x2; - dy = y1 - y2; - d = sqrtf(dx*dx + dy*dy); - if (d < 1e-6f || rx < 1e-6f || ry < 1e-6f) { - // The arc degenerates to a line - nsvg__lineTo(p, x2, y2); - *cpx = x2; - *cpy = y2; - return; - } - - sinrx = sinf(rotx); - cosrx = cosf(rotx); - - // Convert to center point parameterization. - // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes - // 1) Compute x1', y1' - x1p = cosrx * dx / 2.0f + sinrx * dy / 2.0f; - y1p = -sinrx * dx / 2.0f + cosrx * dy / 2.0f; - d = nsvg__sqr(x1p)/nsvg__sqr(rx) + nsvg__sqr(y1p)/nsvg__sqr(ry); - if (d > 1) { - d = sqrtf(d); - rx *= d; - ry *= d; - } - // 2) Compute cx', cy' - s = 0.0f; - sa = nsvg__sqr(rx)*nsvg__sqr(ry) - nsvg__sqr(rx)*nsvg__sqr(y1p) - nsvg__sqr(ry)*nsvg__sqr(x1p); - sb = nsvg__sqr(rx)*nsvg__sqr(y1p) + nsvg__sqr(ry)*nsvg__sqr(x1p); - if (sa < 0.0f) sa = 0.0f; - if (sb > 0.0f) - s = sqrtf(sa / sb); - if (fa == fs) - s = -s; - cxp = s * rx * y1p / ry; - cyp = s * -ry * x1p / rx; - - // 3) Compute cx,cy from cx',cy' - cx = (x1 + x2)/2.0f + cosrx*cxp - sinrx*cyp; - cy = (y1 + y2)/2.0f + sinrx*cxp + cosrx*cyp; - - // 4) Calculate theta1, and delta theta. - ux = (x1p - cxp) / rx; - uy = (y1p - cyp) / ry; - vx = (-x1p - cxp) / rx; - vy = (-y1p - cyp) / ry; - a1 = nsvg__vecang(1.0f,0.0f, ux,uy); // Initial angle - da = nsvg__vecang(ux,uy, vx,vy); // Delta angle - -// if (vecrat(ux,uy,vx,vy) <= -1.0f) da = NSVG_PI; -// if (vecrat(ux,uy,vx,vy) >= 1.0f) da = 0; - - if (fs == 0 && da > 0) - da -= 2 * NSVG_PI; - else if (fs == 1 && da < 0) - da += 2 * NSVG_PI; - - // Approximate the arc using cubic spline segments. - t[0] = cosrx; t[1] = sinrx; - t[2] = -sinrx; t[3] = cosrx; - t[4] = cx; t[5] = cy; - - // Split arc into max 90 degree segments. - // The loop assumes an iteration per end point (including start and end), this +1. - ndivs = (int)(fabsf(da) / (NSVG_PI*0.5f) + 1.0f); - hda = (da / (float)ndivs) / 2.0f; - kappa = fabsf(4.0f / 3.0f * (1.0f - cosf(hda)) / sinf(hda)); - if (da < 0.0f) - kappa = -kappa; - - for (i = 0; i <= ndivs; i++) { - a = a1 + da * ((float)i/(float)ndivs); - dx = cosf(a); - dy = sinf(a); - nsvg__xformPoint(&x, &y, dx*rx, dy*ry, t); // position - nsvg__xformVec(&tanx, &tany, -dy*rx * kappa, dx*ry * kappa, t); // tangent - if (i > 0) - nsvg__cubicBezTo(p, px+ptanx,py+ptany, x-tanx, y-tany, x, y); - px = x; - py = y; - ptanx = tanx; - ptany = tany; - } - - *cpx = x2; - *cpy = y2; -} - -static void nsvg__parsePath(NSVGparser* p, const char** attr) -{ - const char* s = NULL; - char cmd = '\0'; - float args[10]; - int nargs; - int rargs = 0; - float cpx, cpy, cpx2, cpy2; - const char* tmp[4]; - char closedFlag; - int i; - char item[64]; - - for (i = 0; attr[i]; i += 2) { - if (strcmp(attr[i], "d") == 0) { - s = attr[i + 1]; - } else { - tmp[0] = attr[i]; - tmp[1] = attr[i + 1]; - tmp[2] = 0; - tmp[3] = 0; - nsvg__parseAttribs(p, tmp); - } - } - - if (s) { - nsvg__resetPath(p); - cpx = 0; cpy = 0; - cpx2 = 0; cpy2 = 0; - closedFlag = 0; - nargs = 0; - - while (*s) { - s = nsvg__getNextPathItem(s, item); - if (!*item) break; - if (nsvg__isnum(item[0])) { - if (nargs < 10) - args[nargs++] = (float)nsvg__atof(item); - if (nargs >= rargs) { - switch (cmd) { - case 'm': - case 'M': - nsvg__pathMoveTo(p, &cpx, &cpy, args, cmd == 'm' ? 1 : 0); - // Moveto can be followed by multiple coordinate pairs, - // which should be treated as linetos. - cmd = (cmd == 'm') ? 'l' : 'L'; - rargs = nsvg__getArgsPerElement(cmd); - cpx2 = cpx; cpy2 = cpy; - break; - case 'l': - case 'L': - nsvg__pathLineTo(p, &cpx, &cpy, args, cmd == 'l' ? 1 : 0); - cpx2 = cpx; cpy2 = cpy; - break; - case 'H': - case 'h': - nsvg__pathHLineTo(p, &cpx, &cpy, args, cmd == 'h' ? 1 : 0); - cpx2 = cpx; cpy2 = cpy; - break; - case 'V': - case 'v': - nsvg__pathVLineTo(p, &cpx, &cpy, args, cmd == 'v' ? 1 : 0); - cpx2 = cpx; cpy2 = cpy; - break; - case 'C': - case 'c': - nsvg__pathCubicBezTo(p, &cpx, &cpy, &cpx2, &cpy2, args, cmd == 'c' ? 1 : 0); - break; - case 'S': - case 's': - nsvg__pathCubicBezShortTo(p, &cpx, &cpy, &cpx2, &cpy2, args, cmd == 's' ? 1 : 0); - break; - case 'Q': - case 'q': - nsvg__pathQuadBezTo(p, &cpx, &cpy, &cpx2, &cpy2, args, cmd == 'q' ? 1 : 0); - break; - case 'T': - case 't': - nsvg__pathQuadBezShortTo(p, &cpx, &cpy, &cpx2, &cpy2, args, cmd == 't' ? 1 : 0); - break; - case 'A': - case 'a': - nsvg__pathArcTo(p, &cpx, &cpy, args, cmd == 'a' ? 1 : 0); - cpx2 = cpx; cpy2 = cpy; - break; - default: - if (nargs >= 2) { - cpx = args[nargs-2]; - cpy = args[nargs-1]; - cpx2 = cpx; cpy2 = cpy; - } - break; - } - nargs = 0; - } - } else { - cmd = item[0]; - rargs = nsvg__getArgsPerElement(cmd); - if (cmd == 'M' || cmd == 'm') { - // Commit path. - if (p->npts > 0) - nsvg__addPath(p, closedFlag); - // Start new subpath. - nsvg__resetPath(p); - closedFlag = 0; - nargs = 0; - } else if (cmd == 'Z' || cmd == 'z') { - closedFlag = 1; - // Commit path. - if (p->npts > 0) { - // Move current point to first point - cpx = p->pts[0]; - cpy = p->pts[1]; - cpx2 = cpx; cpy2 = cpy; - nsvg__addPath(p, closedFlag); - } - // Start new subpath. - nsvg__resetPath(p); - nsvg__moveTo(p, cpx, cpy); - closedFlag = 0; - nargs = 0; - } - } - } - // Commit path. - if (p->npts) - nsvg__addPath(p, closedFlag); - } - - nsvg__addShape(p); -} - -static void nsvg__parseRect(NSVGparser* p, const char** attr) -{ - float x = 0.0f; - float y = 0.0f; - float w = 0.0f; - float h = 0.0f; - float rx = -1.0f; // marks not set - float ry = -1.0f; - int i; - - for (i = 0; attr[i]; i += 2) { - if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { - if (strcmp(attr[i], "x") == 0) x = nsvg__parseCoordinate(p, attr[i+1], nsvg__actualOrigX(p), nsvg__actualWidth(p)); - if (strcmp(attr[i], "y") == 0) y = nsvg__parseCoordinate(p, attr[i+1], nsvg__actualOrigY(p), nsvg__actualHeight(p)); - if (strcmp(attr[i], "width") == 0) w = nsvg__parseCoordinate(p, attr[i+1], 0.0f, nsvg__actualWidth(p)); - if (strcmp(attr[i], "height") == 0) h = nsvg__parseCoordinate(p, attr[i+1], 0.0f, nsvg__actualHeight(p)); - if (strcmp(attr[i], "rx") == 0) rx = fabsf(nsvg__parseCoordinate(p, attr[i+1], 0.0f, nsvg__actualWidth(p))); - if (strcmp(attr[i], "ry") == 0) ry = fabsf(nsvg__parseCoordinate(p, attr[i+1], 0.0f, nsvg__actualHeight(p))); - } - } - - if (rx < 0.0f && ry > 0.0f) rx = ry; - if (ry < 0.0f && rx > 0.0f) ry = rx; - if (rx < 0.0f) rx = 0.0f; - if (ry < 0.0f) ry = 0.0f; - if (rx > w/2.0f) rx = w/2.0f; - if (ry > h/2.0f) ry = h/2.0f; - - if (w != 0.0f && h != 0.0f) { - nsvg__resetPath(p); - - if (rx < 0.00001f || ry < 0.0001f) { - nsvg__moveTo(p, x, y); - nsvg__lineTo(p, x+w, y); - nsvg__lineTo(p, x+w, y+h); - nsvg__lineTo(p, x, y+h); - } else { - // Rounded rectangle - nsvg__moveTo(p, x+rx, y); - nsvg__lineTo(p, x+w-rx, y); - nsvg__cubicBezTo(p, x+w-rx*(1-NSVG_KAPPA90), y, x+w, y+ry*(1-NSVG_KAPPA90), x+w, y+ry); - nsvg__lineTo(p, x+w, y+h-ry); - nsvg__cubicBezTo(p, x+w, y+h-ry*(1-NSVG_KAPPA90), x+w-rx*(1-NSVG_KAPPA90), y+h, x+w-rx, y+h); - nsvg__lineTo(p, x+rx, y+h); - nsvg__cubicBezTo(p, x+rx*(1-NSVG_KAPPA90), y+h, x, y+h-ry*(1-NSVG_KAPPA90), x, y+h-ry); - nsvg__lineTo(p, x, y+ry); - nsvg__cubicBezTo(p, x, y+ry*(1-NSVG_KAPPA90), x+rx*(1-NSVG_KAPPA90), y, x+rx, y); - } - - nsvg__addPath(p, 1); - - nsvg__addShape(p); - } -} - -static void nsvg__parseCircle(NSVGparser* p, const char** attr) -{ - float cx = 0.0f; - float cy = 0.0f; - float r = 0.0f; - int i; - - for (i = 0; attr[i]; i += 2) { - if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { - if (strcmp(attr[i], "cx") == 0) cx = nsvg__parseCoordinate(p, attr[i+1], nsvg__actualOrigX(p), nsvg__actualWidth(p)); - if (strcmp(attr[i], "cy") == 0) cy = nsvg__parseCoordinate(p, attr[i+1], nsvg__actualOrigY(p), nsvg__actualHeight(p)); - if (strcmp(attr[i], "r") == 0) r = fabsf(nsvg__parseCoordinate(p, attr[i+1], 0.0f, nsvg__actualLength(p))); - } - } - - if (r > 0.0f) { - nsvg__resetPath(p); - - nsvg__moveTo(p, cx+r, cy); - nsvg__cubicBezTo(p, cx+r, cy+r*NSVG_KAPPA90, cx+r*NSVG_KAPPA90, cy+r, cx, cy+r); - nsvg__cubicBezTo(p, cx-r*NSVG_KAPPA90, cy+r, cx-r, cy+r*NSVG_KAPPA90, cx-r, cy); - nsvg__cubicBezTo(p, cx-r, cy-r*NSVG_KAPPA90, cx-r*NSVG_KAPPA90, cy-r, cx, cy-r); - nsvg__cubicBezTo(p, cx+r*NSVG_KAPPA90, cy-r, cx+r, cy-r*NSVG_KAPPA90, cx+r, cy); - - nsvg__addPath(p, 1); - - nsvg__addShape(p); - } -} - -static void nsvg__parseEllipse(NSVGparser* p, const char** attr) -{ - float cx = 0.0f; - float cy = 0.0f; - float rx = 0.0f; - float ry = 0.0f; - int i; - - for (i = 0; attr[i]; i += 2) { - if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { - if (strcmp(attr[i], "cx") == 0) cx = nsvg__parseCoordinate(p, attr[i+1], nsvg__actualOrigX(p), nsvg__actualWidth(p)); - if (strcmp(attr[i], "cy") == 0) cy = nsvg__parseCoordinate(p, attr[i+1], nsvg__actualOrigY(p), nsvg__actualHeight(p)); - if (strcmp(attr[i], "rx") == 0) rx = fabsf(nsvg__parseCoordinate(p, attr[i+1], 0.0f, nsvg__actualWidth(p))); - if (strcmp(attr[i], "ry") == 0) ry = fabsf(nsvg__parseCoordinate(p, attr[i+1], 0.0f, nsvg__actualHeight(p))); - } - } - - if (rx > 0.0f && ry > 0.0f) { - - nsvg__resetPath(p); - - nsvg__moveTo(p, cx+rx, cy); - nsvg__cubicBezTo(p, cx+rx, cy+ry*NSVG_KAPPA90, cx+rx*NSVG_KAPPA90, cy+ry, cx, cy+ry); - nsvg__cubicBezTo(p, cx-rx*NSVG_KAPPA90, cy+ry, cx-rx, cy+ry*NSVG_KAPPA90, cx-rx, cy); - nsvg__cubicBezTo(p, cx-rx, cy-ry*NSVG_KAPPA90, cx-rx*NSVG_KAPPA90, cy-ry, cx, cy-ry); - nsvg__cubicBezTo(p, cx+rx*NSVG_KAPPA90, cy-ry, cx+rx, cy-ry*NSVG_KAPPA90, cx+rx, cy); - - nsvg__addPath(p, 1); - - nsvg__addShape(p); - } -} - -static void nsvg__parseLine(NSVGparser* p, const char** attr) -{ - float x1 = 0.0; - float y1 = 0.0; - float x2 = 0.0; - float y2 = 0.0; - int i; - - for (i = 0; attr[i]; i += 2) { - if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { - if (strcmp(attr[i], "x1") == 0) x1 = nsvg__parseCoordinate(p, attr[i + 1], nsvg__actualOrigX(p), nsvg__actualWidth(p)); - if (strcmp(attr[i], "y1") == 0) y1 = nsvg__parseCoordinate(p, attr[i + 1], nsvg__actualOrigY(p), nsvg__actualHeight(p)); - if (strcmp(attr[i], "x2") == 0) x2 = nsvg__parseCoordinate(p, attr[i + 1], nsvg__actualOrigX(p), nsvg__actualWidth(p)); - if (strcmp(attr[i], "y2") == 0) y2 = nsvg__parseCoordinate(p, attr[i + 1], nsvg__actualOrigY(p), nsvg__actualHeight(p)); - } - } - - nsvg__resetPath(p); - - nsvg__moveTo(p, x1, y1); - nsvg__lineTo(p, x2, y2); - - nsvg__addPath(p, 0); - - nsvg__addShape(p); -} - -static void nsvg__parsePoly(NSVGparser* p, const char** attr, int closeFlag) -{ - int i; - const char* s; - float args[2]; - int nargs, npts = 0; - char item[64]; - - nsvg__resetPath(p); - - for (i = 0; attr[i]; i += 2) { - if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { - if (strcmp(attr[i], "points") == 0) { - s = attr[i + 1]; - nargs = 0; - while (*s) { - s = nsvg__getNextPathItem(s, item); - args[nargs++] = (float)nsvg__atof(item); - if (nargs >= 2) { - if (npts == 0) - nsvg__moveTo(p, args[0], args[1]); - else - nsvg__lineTo(p, args[0], args[1]); - nargs = 0; - npts++; - } - } - } - } - } - - nsvg__addPath(p, (char)closeFlag); - - nsvg__addShape(p); -} - -static void nsvg__parseSVG(NSVGparser* p, const char** attr) -{ - int i; - for (i = 0; attr[i]; i += 2) { - if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { - if (strcmp(attr[i], "width") == 0) { - p->image->width = nsvg__parseCoordinate(p, attr[i + 1], 0.0f, 1.0f); - } else if (strcmp(attr[i], "height") == 0) { - p->image->height = nsvg__parseCoordinate(p, attr[i + 1], 0.0f, 1.0f); - } else if (strcmp(attr[i], "viewBox") == 0) { - sscanf(attr[i + 1], "%f%*[%%, \t]%f%*[%%, \t]%f%*[%%, \t]%f", &p->viewMinx, &p->viewMiny, &p->viewWidth, &p->viewHeight); - } else if (strcmp(attr[i], "preserveAspectRatio") == 0) { - if (strstr(attr[i + 1], "none") != 0) { - // No uniform scaling - p->alignType = NSVG_ALIGN_NONE; - } else { - // Parse X align - if (strstr(attr[i + 1], "xMin") != 0) - p->alignX = NSVG_ALIGN_MIN; - else if (strstr(attr[i + 1], "xMid") != 0) - p->alignX = NSVG_ALIGN_MID; - else if (strstr(attr[i + 1], "xMax") != 0) - p->alignX = NSVG_ALIGN_MAX; - // Parse X align - if (strstr(attr[i + 1], "yMin") != 0) - p->alignY = NSVG_ALIGN_MIN; - else if (strstr(attr[i + 1], "yMid") != 0) - p->alignY = NSVG_ALIGN_MID; - else if (strstr(attr[i + 1], "yMax") != 0) - p->alignY = NSVG_ALIGN_MAX; - // Parse meet/slice - p->alignType = NSVG_ALIGN_MEET; - if (strstr(attr[i + 1], "slice") != 0) - p->alignType = NSVG_ALIGN_SLICE; - } - } - } - } -} - -static void nsvg__parseGradient(NSVGparser* p, const char** attr, char type) -{ - int i; - NSVGgradientData* grad = (NSVGgradientData*)malloc(sizeof(NSVGgradientData)); - if (grad == NULL) return; - memset(grad, 0, sizeof(NSVGgradientData)); - grad->units = NSVG_OBJECT_SPACE; - grad->type = type; - if (grad->type == NSVG_PAINT_LINEAR_GRADIENT) { - grad->linear.x1 = nsvg__coord(0.0f, NSVG_UNITS_PERCENT); - grad->linear.y1 = nsvg__coord(0.0f, NSVG_UNITS_PERCENT); - grad->linear.x2 = nsvg__coord(100.0f, NSVG_UNITS_PERCENT); - grad->linear.y2 = nsvg__coord(0.0f, NSVG_UNITS_PERCENT); - } else if (grad->type == NSVG_PAINT_RADIAL_GRADIENT) { - grad->radial.cx = nsvg__coord(50.0f, NSVG_UNITS_PERCENT); - grad->radial.cy = nsvg__coord(50.0f, NSVG_UNITS_PERCENT); - grad->radial.r = nsvg__coord(50.0f, NSVG_UNITS_PERCENT); - } - - nsvg__xformIdentity(grad->xform); - - for (i = 0; attr[i]; i += 2) { - if (strcmp(attr[i], "id") == 0) { - strncpy(grad->id, attr[i+1], 63); - grad->id[63] = '\0'; - } else if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { - if (strcmp(attr[i], "gradientUnits") == 0) { - if (strcmp(attr[i+1], "objectBoundingBox") == 0) - grad->units = NSVG_OBJECT_SPACE; - else - grad->units = NSVG_USER_SPACE; - } else if (strcmp(attr[i], "gradientTransform") == 0) { - nsvg__parseTransform(grad->xform, attr[i + 1]); - } else if (strcmp(attr[i], "cx") == 0) { - grad->radial.cx = nsvg__parseCoordinateRaw(attr[i + 1]); - } else if (strcmp(attr[i], "cy") == 0) { - grad->radial.cy = nsvg__parseCoordinateRaw(attr[i + 1]); - } else if (strcmp(attr[i], "r") == 0) { - grad->radial.r = nsvg__parseCoordinateRaw(attr[i + 1]); - } else if (strcmp(attr[i], "fx") == 0) { - grad->radial.fx = nsvg__parseCoordinateRaw(attr[i + 1]); - } else if (strcmp(attr[i], "fy") == 0) { - grad->radial.fy = nsvg__parseCoordinateRaw(attr[i + 1]); - } else if (strcmp(attr[i], "x1") == 0) { - grad->linear.x1 = nsvg__parseCoordinateRaw(attr[i + 1]); - } else if (strcmp(attr[i], "y1") == 0) { - grad->linear.y1 = nsvg__parseCoordinateRaw(attr[i + 1]); - } else if (strcmp(attr[i], "x2") == 0) { - grad->linear.x2 = nsvg__parseCoordinateRaw(attr[i + 1]); - } else if (strcmp(attr[i], "y2") == 0) { - grad->linear.y2 = nsvg__parseCoordinateRaw(attr[i + 1]); - } else if (strcmp(attr[i], "spreadMethod") == 0) { - if (strcmp(attr[i+1], "pad") == 0) - grad->spread = NSVG_SPREAD_PAD; - else if (strcmp(attr[i+1], "reflect") == 0) - grad->spread = NSVG_SPREAD_REFLECT; - else if (strcmp(attr[i+1], "repeat") == 0) - grad->spread = NSVG_SPREAD_REPEAT; - } else if (strcmp(attr[i], "xlink:href") == 0) { - const char *href = attr[i+1]; - strncpy(grad->ref, href+1, 62); - grad->ref[62] = '\0'; - } - } - } - - grad->next = p->gradients; - p->gradients = grad; -} - -static void nsvg__parseGradientStop(NSVGparser* p, const char** attr) -{ - NSVGattrib* curAttr = nsvg__getAttr(p); - NSVGgradientData* grad; - NSVGgradientStop* stop; - int i, idx; - - curAttr->stopOffset = 0; - curAttr->stopColor = 0; - curAttr->stopOpacity = 1.0f; - - for (i = 0; attr[i]; i += 2) { - nsvg__parseAttr(p, attr[i], attr[i + 1]); - } - - // Add stop to the last gradient. - grad = p->gradients; - if (grad == NULL) return; - - grad->nstops++; - grad->stops = (NSVGgradientStop*)realloc(grad->stops, sizeof(NSVGgradientStop)*grad->nstops); - if (grad->stops == NULL) return; - - // Insert - idx = grad->nstops-1; - for (i = 0; i < grad->nstops-1; i++) { - if (curAttr->stopOffset < grad->stops[i].offset) { - idx = i; - break; - } - } - if (idx != grad->nstops-1) { - for (i = grad->nstops-1; i > idx; i--) - grad->stops[i] = grad->stops[i-1]; - } - - stop = &grad->stops[idx]; - stop->color = curAttr->stopColor; - stop->color |= (unsigned int)(curAttr->stopOpacity*255) << 24; - stop->offset = curAttr->stopOffset; -} - -static void nsvg__startElement(void* ud, const char* el, const char** attr) -{ - NSVGparser* p = (NSVGparser*)ud; - - if (p->defsFlag) { - // Skip everything but gradients in defs - if (strcmp(el, "linearGradient") == 0) { - nsvg__parseGradient(p, attr, NSVG_PAINT_LINEAR_GRADIENT); - } else if (strcmp(el, "radialGradient") == 0) { - nsvg__parseGradient(p, attr, NSVG_PAINT_RADIAL_GRADIENT); - } else if (strcmp(el, "stop") == 0) { - nsvg__parseGradientStop(p, attr); - } - return; - } - - if (strcmp(el, "g") == 0) { - nsvg__pushAttr(p); - nsvg__parseAttribs(p, attr); - } else if (strcmp(el, "path") == 0) { - if (p->pathFlag) // Do not allow nested paths. - return; - nsvg__pushAttr(p); - nsvg__parsePath(p, attr); - nsvg__popAttr(p); - } else if (strcmp(el, "rect") == 0) { - nsvg__pushAttr(p); - nsvg__parseRect(p, attr); - nsvg__popAttr(p); - } else if (strcmp(el, "circle") == 0) { - nsvg__pushAttr(p); - nsvg__parseCircle(p, attr); - nsvg__popAttr(p); - } else if (strcmp(el, "ellipse") == 0) { - nsvg__pushAttr(p); - nsvg__parseEllipse(p, attr); - nsvg__popAttr(p); - } else if (strcmp(el, "line") == 0) { - nsvg__pushAttr(p); - nsvg__parseLine(p, attr); - nsvg__popAttr(p); - } else if (strcmp(el, "polyline") == 0) { - nsvg__pushAttr(p); - nsvg__parsePoly(p, attr, 0); - nsvg__popAttr(p); - } else if (strcmp(el, "polygon") == 0) { - nsvg__pushAttr(p); - nsvg__parsePoly(p, attr, 1); - nsvg__popAttr(p); - } else if (strcmp(el, "linearGradient") == 0) { - nsvg__parseGradient(p, attr, NSVG_PAINT_LINEAR_GRADIENT); - } else if (strcmp(el, "radialGradient") == 0) { - nsvg__parseGradient(p, attr, NSVG_PAINT_RADIAL_GRADIENT); - } else if (strcmp(el, "stop") == 0) { - nsvg__parseGradientStop(p, attr); - } else if (strcmp(el, "defs") == 0) { - p->defsFlag = 1; - } else if (strcmp(el, "svg") == 0) { - nsvg__parseSVG(p, attr); - } else if (strcmp(el, "style") == 0) { - p->styleFlag = 1; - } -} - -static void nsvg__endElement(void* ud, const char* el) -{ - NSVGparser* p = (NSVGparser*)ud; - - if (strcmp(el, "g") == 0) { - nsvg__popAttr(p); - } else if (strcmp(el, "path") == 0) { - p->pathFlag = 0; - } else if (strcmp(el, "defs") == 0) { - p->defsFlag = 0; - } else if (strcmp(el, "style") == 0) { - p->styleFlag = 0; - } -} - -static char *nsvg__strndup(const char *s, size_t n) -{ - char *result; - size_t len = strlen(s); - - if (n < len) - len = n; - - result = (char *)malloc(len + 1); - if (!result) - return 0; - - result[len] = '\0'; - return (char *)memcpy(result, s, len); -} - -static void nsvg__content(void* ud, const char* s) -{ - NSVGparser* p = (NSVGparser*)ud; - if (p->styleFlag) { - - int state = 0; - const char* start; - while (*s) { - char c = *s; - if (nsvg__isspace(c) || c == '{') { - if (state == 1) { - NSVGstyles* next = p->styles; - - p->styles = (NSVGstyles*)malloc(sizeof(NSVGstyles)); - p->styles->next = next; - p->styles->name = nsvg__strndup(start, (size_t)(s - start)); - start = s + 1; - state = 2; - } - } else if (state == 2 && c == '}') { - p->styles->description = nsvg__strndup(start, (size_t)(s - start)); - state = 0; - } - else if (state == 0) { - start = s; - state = 1; - } - s++; - } - // if (*s == '{' && state == NSVG_XML_CONTENT) { - // // Start of a tag - // *s++ = '\0'; - // nsvg__parseContent(mark, contentCb, ud); - // mark = s; - // state = NSVG_XML_TAG; - // } - // else if (*s == '>' && state == NSVG_XML_TAG) { - // // Start of a content or new tag. - // *s++ = '\0'; - // nsvg__parseElement(mark, startelCb, endelCb, ud); - // mark = s; - // state = NSVG_XML_CONTENT; - // } - // else { - // s++; - // } - //} - - } - // empty -} - -static void nsvg__imageBounds(NSVGparser* p, float* bounds) -{ - NSVGshape* shape; - int count = 0; - shape = p->image->shapes; - - bounds[0] = FLT_MAX; - bounds[1] = FLT_MAX; - bounds[2] = -FLT_MAX; - bounds[3] = -FLT_MAX; - - for (; shape != NULL; shape = shape->next) { - if ( (shape->flags & NSVG_FLAGS_VISIBLE) == NSVG_FLAGS_VISIBLE) { - bounds[0] = nsvg__minf(bounds[0], shape->bounds[0]); - bounds[1] = nsvg__minf(bounds[1], shape->bounds[1]); - bounds[2] = nsvg__maxf(bounds[2], shape->bounds[2]); - bounds[3] = nsvg__maxf(bounds[3], shape->bounds[3]); - ++count; - } - } - - if (count == 0) { - bounds[0] = bounds[1] = bounds[2] = bounds[3] = 0.0; - } -} - -static float nsvg__viewAlign(float content, float container, int type) -{ - if (type == NSVG_ALIGN_MIN) - return 0; - else if (type == NSVG_ALIGN_MAX) - return container - content; - // mid - return (container - content) * 0.5f; -} - -static void nsvg__scaleGradient(NSVGgradient* grad, float tx, float ty, float sx, float sy) -{ - float t[6]; - nsvg__xformSetTranslation(t, tx, ty); - nsvg__xformMultiply (grad->xform, t); - - nsvg__xformSetScale(t, sx, sy); - nsvg__xformMultiply (grad->xform, t); -} - -static void nsvg__scaleToViewbox(NSVGparser* p, const char* units) -{ - NSVGshape* shape; - NSVGpath* path; - float tx, ty, sx, sy, us, bounds[4], t[6], avgs; - int i; - float* pt; - - // Guess image size if not set completely. - nsvg__imageBounds(p, bounds); - - if (p->viewWidth == 0) { - if (p->image->width > 0) { - p->viewWidth = p->image->width; - } else { - p->viewMinx = bounds[0]; - p->viewWidth = bounds[2] - bounds[0]; - } - } - if (p->viewHeight == 0) { - if (p->image->height > 0) { - p->viewHeight = p->image->height; - } else { - p->viewMiny = bounds[1]; - p->viewHeight = bounds[3] - bounds[1]; - } - } - if (p->image->width == 0) - p->image->width = p->viewWidth; - if (p->image->height == 0) - p->image->height = p->viewHeight; - - tx = -p->viewMinx; - ty = -p->viewMiny; - sx = p->viewWidth > 0 ? p->image->width / p->viewWidth : 0; - sy = p->viewHeight > 0 ? p->image->height / p->viewHeight : 0; - // Unit scaling - us = 1.0f / nsvg__convertToPixels(p, nsvg__coord(1.0f, nsvg__parseUnits(units)), 0.0f, 1.0f); - - // Fix aspect ratio - if (p->alignType == NSVG_ALIGN_MEET) { - // fit whole image into viewbox - sx = sy = nsvg__minf(sx, sy); - tx += nsvg__viewAlign(p->viewWidth*sx, p->image->width, p->alignX) / sx; - ty += nsvg__viewAlign(p->viewHeight*sy, p->image->height, p->alignY) / sy; - } else if (p->alignType == NSVG_ALIGN_SLICE) { - // fill whole viewbox with image - sx = sy = nsvg__maxf(sx, sy); - tx += nsvg__viewAlign(p->viewWidth*sx, p->image->width, p->alignX) / sx; - ty += nsvg__viewAlign(p->viewHeight*sy, p->image->height, p->alignY) / sy; - } - - // Transform - sx *= us; - sy *= us; - avgs = (sx+sy) / 2.0f; - for (shape = p->image->shapes; shape != NULL; shape = shape->next) { - shape->bounds[0] = (shape->bounds[0] + tx) * sx; - shape->bounds[1] = (shape->bounds[1] + ty) * sy; - shape->bounds[2] = (shape->bounds[2] + tx) * sx; - shape->bounds[3] = (shape->bounds[3] + ty) * sy; - for (path = shape->paths; path != NULL; path = path->next) { - path->bounds[0] = (path->bounds[0] + tx) * sx; - path->bounds[1] = (path->bounds[1] + ty) * sy; - path->bounds[2] = (path->bounds[2] + tx) * sx; - path->bounds[3] = (path->bounds[3] + ty) * sy; - for (i =0; i < path->npts; i++) { - pt = &path->pts[i*2]; - pt[0] = (pt[0] + tx) * sx; - pt[1] = (pt[1] + ty) * sy; - } - } - - if (shape->fill.type == NSVG_PAINT_LINEAR_GRADIENT || shape->fill.type == NSVG_PAINT_RADIAL_GRADIENT) { - nsvg__scaleGradient(shape->fill.gradient, tx,ty, sx,sy); - memcpy(t, shape->fill.gradient->xform, sizeof(float)*6); - nsvg__xformInverse(shape->fill.gradient->xform, t); - } - if (shape->stroke.type == NSVG_PAINT_LINEAR_GRADIENT || shape->stroke.type == NSVG_PAINT_RADIAL_GRADIENT) { - nsvg__scaleGradient(shape->stroke.gradient, tx,ty, sx,sy); - memcpy(t, shape->stroke.gradient->xform, sizeof(float)*6); - nsvg__xformInverse(shape->stroke.gradient->xform, t); - } - - shape->strokeWidth *= avgs; - shape->strokeDashOffset *= avgs; - for (i = 0; i < shape->strokeDashCount; i++) - shape->strokeDashArray[i] *= avgs; - } -} - -NSVGimage* nsvgParse(char* input, const char* units, float dpi) -{ - NSVGparser* p; - NSVGimage* ret = 0; - - p = nsvg__createParser(); - if (p == NULL) { - return NULL; - } - p->dpi = dpi; - - nsvg__parseXML(input, nsvg__startElement, nsvg__endElement, nsvg__content, p); - - // Scale to viewBox - nsvg__scaleToViewbox(p, units); - - ret = p->image; - p->image = NULL; - - nsvg__deleteParser(p); - - return ret; -} - -#ifdef HAVE_STDIO_H -NSVGimage* nsvgParseFromFile(const char* filename, const char* units, float dpi) -{ - FILE* fp = NULL; - size_t size; - char* data = NULL; - NSVGimage* image = NULL; - - fp = fopen(filename, "rb"); - if (!fp) goto error; - fseek(fp, 0, SEEK_END); - size = ftell(fp); - fseek(fp, 0, SEEK_SET); - data = (char*)malloc(size+1); - if (data == NULL) goto error; - if (fread(data, 1, size, fp) != size) goto error; - data[size] = '\0'; // Must be null terminated. - fclose(fp); - image = nsvgParse(data, units, dpi); - free(data); - - return image; - -error: - if (fp) fclose(fp); - if (data) free(data); - if (image) nsvgDelete(image); - return NULL; -} -#endif /* HAVE_STDIO_H */ - -void nsvgDelete(NSVGimage* image) -{ - NSVGshape *snext, *shape; - if (image == NULL) return; - shape = image->shapes; - while (shape != NULL) { - snext = shape->next; - nsvg__deletePaths(shape->paths); - nsvg__deletePaint(&shape->fill); - nsvg__deletePaint(&shape->stroke); - free(shape); - shape = snext; - } - free(image); -} - -#endif diff --git a/extension/SDL2_image-2.0.3/nanosvgrast.h b/extension/SDL2_image-2.0.3/nanosvgrast.h deleted file mode 100755 index c505984..0000000 --- a/extension/SDL2_image-2.0.3/nanosvgrast.h +++ /dev/null @@ -1,1450 +0,0 @@ -/* - * Copyright (c) 2013-14 Mikko Mononen memon@inside.org - * - * This software is provided 'as-is', without any express or implied - * warranty. In no event will the authors be held liable for any damages - * arising from the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software - * in a product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * 3. This notice may not be removed or altered from any source distribution. - * - * The polygon rasterization is heavily based on stb_truetype rasterizer - * by Sean Barrett - http://nothings.org/ - * - */ - -#ifndef NANOSVGRAST_H -#define NANOSVGRAST_H - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct NSVGrasterizer NSVGrasterizer; - -/* Example Usage: - // Load SVG - struct SNVGImage* image = nsvgParseFromFile("test.svg."); - - // Create rasterizer (can be used to render multiple images). - struct NSVGrasterizer* rast = nsvgCreateRasterizer(); - // Allocate memory for image - unsigned char* img = malloc(w*h*4); - // Rasterize - nsvgRasterize(rast, image, 0,0,1, img, w, h, w*4); -*/ - -// Allocated rasterizer context. -NSVGrasterizer* nsvgCreateRasterizer(void); - -// Rasterizes SVG image, returns RGBA image (non-premultiplied alpha) -// r - pointer to rasterizer context -// image - pointer to image to rasterize -// tx,ty - image offset (applied after scaling) -// scale - image scale -// dst - pointer to destination image data, 4 bytes per pixel (RGBA) -// w - width of the image to render -// h - height of the image to render -// stride - number of bytes per scaleline in the destination buffer -void nsvgRasterize(NSVGrasterizer* r, - NSVGimage* image, float tx, float ty, float scale, - unsigned char* dst, int w, int h, int stride); - -// Deletes rasterizer context. -void nsvgDeleteRasterizer(NSVGrasterizer*); - - -#ifdef __cplusplus -} -#endif - -#endif // NANOSVGRAST_H - -#ifdef NANOSVGRAST_IMPLEMENTATION - -/* -#include -*/ - -#define NSVG__SUBSAMPLES 5 -#define NSVG__FIXSHIFT 10 -#define NSVG__FIX (1 << NSVG__FIXSHIFT) -#define NSVG__FIXMASK (NSVG__FIX-1) -#define NSVG__MEMPAGE_SIZE 1024 - -typedef struct NSVGedge { - float x0,y0, x1,y1; - int dir; - struct NSVGedge* next; -} NSVGedge; - -typedef struct NSVGpoint { - float x, y; - float dx, dy; - float len; - float dmx, dmy; - unsigned char flags; -} NSVGpoint; - -typedef struct NSVGactiveEdge { - int x,dx; - float ey; - int dir; - struct NSVGactiveEdge *next; -} NSVGactiveEdge; - -typedef struct NSVGmemPage { - unsigned char mem[NSVG__MEMPAGE_SIZE]; - int size; - struct NSVGmemPage* next; -} NSVGmemPage; - -typedef struct NSVGcachedPaint { - char type; - char spread; - float xform[6]; - unsigned int colors[256]; -} NSVGcachedPaint; - -struct NSVGrasterizer -{ - float px, py; - - float tessTol; - float distTol; - - NSVGedge* edges; - int nedges; - int cedges; - - NSVGpoint* points; - int npoints; - int cpoints; - - NSVGpoint* points2; - int npoints2; - int cpoints2; - - NSVGactiveEdge* freelist; - NSVGmemPage* pages; - NSVGmemPage* curpage; - - unsigned char* scanline; - int cscanline; - - unsigned char* bitmap; - int width, height, stride; -}; - -NSVGrasterizer* nsvgCreateRasterizer() -{ - NSVGrasterizer* r = (NSVGrasterizer*)malloc(sizeof(NSVGrasterizer)); - if (r == NULL) goto error; - memset(r, 0, sizeof(NSVGrasterizer)); - - r->tessTol = 0.25f; - r->distTol = 0.01f; - - return r; - -error: - nsvgDeleteRasterizer(r); - return NULL; -} - -void nsvgDeleteRasterizer(NSVGrasterizer* r) -{ - NSVGmemPage* p; - - if (r == NULL) return; - - p = r->pages; - while (p != NULL) { - NSVGmemPage* next = p->next; - free(p); - p = next; - } - - if (r->edges) free(r->edges); - if (r->points) free(r->points); - if (r->points2) free(r->points2); - if (r->scanline) free(r->scanline); - - free(r); -} - -static NSVGmemPage* nsvg__nextPage(NSVGrasterizer* r, NSVGmemPage* cur) -{ - NSVGmemPage *newp; - - // If using existing chain, return the next page in chain - if (cur != NULL && cur->next != NULL) { - return cur->next; - } - - // Alloc new page - newp = (NSVGmemPage*)malloc(sizeof(NSVGmemPage)); - if (newp == NULL) return NULL; - memset(newp, 0, sizeof(NSVGmemPage)); - - // Add to linked list - if (cur != NULL) - cur->next = newp; - else - r->pages = newp; - - return newp; -} - -static void nsvg__resetPool(NSVGrasterizer* r) -{ - NSVGmemPage* p = r->pages; - while (p != NULL) { - p->size = 0; - p = p->next; - } - r->curpage = r->pages; -} - -static unsigned char* nsvg__alloc(NSVGrasterizer* r, int size) -{ - unsigned char* buf; - if (size > NSVG__MEMPAGE_SIZE) return NULL; - if (r->curpage == NULL || r->curpage->size+size > NSVG__MEMPAGE_SIZE) { - r->curpage = nsvg__nextPage(r, r->curpage); - } - buf = &r->curpage->mem[r->curpage->size]; - r->curpage->size += size; - return buf; -} - -static int nsvg__ptEquals(float x1, float y1, float x2, float y2, float tol) -{ - float dx = x2 - x1; - float dy = y2 - y1; - return dx*dx + dy*dy < tol*tol; -} - -static void nsvg__addPathPoint(NSVGrasterizer* r, float x, float y, int flags) -{ - NSVGpoint* pt; - - if (r->npoints > 0) { - pt = &r->points[r->npoints-1]; - if (nsvg__ptEquals(pt->x,pt->y, x,y, r->distTol)) { - pt->flags = (unsigned char)(pt->flags | flags); - return; - } - } - - if (r->npoints+1 > r->cpoints) { - r->cpoints = r->cpoints > 0 ? r->cpoints * 2 : 64; - r->points = (NSVGpoint*)realloc(r->points, sizeof(NSVGpoint) * r->cpoints); - if (r->points == NULL) return; - } - - pt = &r->points[r->npoints]; - pt->x = x; - pt->y = y; - pt->flags = (unsigned char)flags; - r->npoints++; -} - -static void nsvg__appendPathPoint(NSVGrasterizer* r, NSVGpoint pt) -{ - if (r->npoints+1 > r->cpoints) { - r->cpoints = r->cpoints > 0 ? r->cpoints * 2 : 64; - r->points = (NSVGpoint*)realloc(r->points, sizeof(NSVGpoint) * r->cpoints); - if (r->points == NULL) return; - } - r->points[r->npoints] = pt; - r->npoints++; -} - -static void nsvg__duplicatePoints(NSVGrasterizer* r) -{ - if (r->npoints > r->cpoints2) { - r->cpoints2 = r->npoints; - r->points2 = (NSVGpoint*)realloc(r->points2, sizeof(NSVGpoint) * r->cpoints2); - if (r->points2 == NULL) return; - } - - memcpy(r->points2, r->points, sizeof(NSVGpoint) * r->npoints); - r->npoints2 = r->npoints; -} - -static void nsvg__addEdge(NSVGrasterizer* r, float x0, float y0, float x1, float y1) -{ - NSVGedge* e; - - // Skip horizontal edges - if (y0 == y1) - return; - - if (r->nedges+1 > r->cedges) { - r->cedges = r->cedges > 0 ? r->cedges * 2 : 64; - r->edges = (NSVGedge*)realloc(r->edges, sizeof(NSVGedge) * r->cedges); - if (r->edges == NULL) return; - } - - e = &r->edges[r->nedges]; - r->nedges++; - - if (y0 < y1) { - e->x0 = x0; - e->y0 = y0; - e->x1 = x1; - e->y1 = y1; - e->dir = 1; - } else { - e->x0 = x1; - e->y0 = y1; - e->x1 = x0; - e->y1 = y0; - e->dir = -1; - } -} - -static float nsvg__normalize(float *x, float* y) -{ - float d = sqrtf((*x)*(*x) + (*y)*(*y)); - if (d > 1e-6f) { - float id = 1.0f / d; - *x *= id; - *y *= id; - } - return d; -} - -static float nsvg__absf(float x) { return x < 0 ? -x : x; } - -static void nsvg__flattenCubicBez(NSVGrasterizer* r, - float x1, float y1, float x2, float y2, - float x3, float y3, float x4, float y4, - int level, int type) -{ - float x12,y12,x23,y23,x34,y34,x123,y123,x234,y234,x1234,y1234; - float dx,dy,d2,d3; - - if (level > 10) return; - - x12 = (x1+x2)*0.5f; - y12 = (y1+y2)*0.5f; - x23 = (x2+x3)*0.5f; - y23 = (y2+y3)*0.5f; - x34 = (x3+x4)*0.5f; - y34 = (y3+y4)*0.5f; - x123 = (x12+x23)*0.5f; - y123 = (y12+y23)*0.5f; - - dx = x4 - x1; - dy = y4 - y1; - d2 = nsvg__absf(((x2 - x4) * dy - (y2 - y4) * dx)); - d3 = nsvg__absf(((x3 - x4) * dy - (y3 - y4) * dx)); - - if ((d2 + d3)*(d2 + d3) < r->tessTol * (dx*dx + dy*dy)) { - nsvg__addPathPoint(r, x4, y4, type); - return; - } - - x234 = (x23+x34)*0.5f; - y234 = (y23+y34)*0.5f; - x1234 = (x123+x234)*0.5f; - y1234 = (y123+y234)*0.5f; - - nsvg__flattenCubicBez(r, x1,y1, x12,y12, x123,y123, x1234,y1234, level+1, 0); - nsvg__flattenCubicBez(r, x1234,y1234, x234,y234, x34,y34, x4,y4, level+1, type); -} - -static void nsvg__flattenShape(NSVGrasterizer* r, NSVGshape* shape, float scale) -{ - int i, j; - NSVGpath* path; - - for (path = shape->paths; path != NULL; path = path->next) { - r->npoints = 0; - // Flatten path - nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, 0); - for (i = 0; i < path->npts-1; i += 3) { - float* p = &path->pts[i*2]; - nsvg__flattenCubicBez(r, p[0]*scale,p[1]*scale, p[2]*scale,p[3]*scale, p[4]*scale,p[5]*scale, p[6]*scale,p[7]*scale, 0, 0); - } - // Close path - nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, 0); - // Build edges - for (i = 0, j = r->npoints-1; i < r->npoints; j = i++) - nsvg__addEdge(r, r->points[j].x, r->points[j].y, r->points[i].x, r->points[i].y); - } -} - -enum NSVGpointFlags -{ - NSVG_PT_CORNER = 0x01, - NSVG_PT_BEVEL = 0x02, - NSVG_PT_LEFT = 0x04 -}; - -static void nsvg__initClosed(NSVGpoint* left, NSVGpoint* right, NSVGpoint* p0, NSVGpoint* p1, float lineWidth) -{ - float w = lineWidth * 0.5f; - float dx = p1->x - p0->x; - float dy = p1->y - p0->y; - float len = nsvg__normalize(&dx, &dy); - float px = p0->x + dx*len*0.5f, py = p0->y + dy*len*0.5f; - float dlx = dy, dly = -dx; - float lx = px - dlx*w, ly = py - dly*w; - float rx = px + dlx*w, ry = py + dly*w; - left->x = lx; left->y = ly; - right->x = rx; right->y = ry; -} - -static void nsvg__buttCap(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint* right, NSVGpoint* p, float dx, float dy, float lineWidth, int connect) -{ - float w = lineWidth * 0.5f; - float px = p->x, py = p->y; - float dlx = dy, dly = -dx; - float lx = px - dlx*w, ly = py - dly*w; - float rx = px + dlx*w, ry = py + dly*w; - - nsvg__addEdge(r, lx, ly, rx, ry); - - if (connect) { - nsvg__addEdge(r, left->x, left->y, lx, ly); - nsvg__addEdge(r, rx, ry, right->x, right->y); - } - left->x = lx; left->y = ly; - right->x = rx; right->y = ry; -} - -static void nsvg__squareCap(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint* right, NSVGpoint* p, float dx, float dy, float lineWidth, int connect) -{ - float w = lineWidth * 0.5f; - float px = p->x - dx*w, py = p->y - dy*w; - float dlx = dy, dly = -dx; - float lx = px - dlx*w, ly = py - dly*w; - float rx = px + dlx*w, ry = py + dly*w; - - nsvg__addEdge(r, lx, ly, rx, ry); - - if (connect) { - nsvg__addEdge(r, left->x, left->y, lx, ly); - nsvg__addEdge(r, rx, ry, right->x, right->y); - } - left->x = lx; left->y = ly; - right->x = rx; right->y = ry; -} - -#ifndef NSVG_PI -#define NSVG_PI (3.14159265358979323846264338327f) -#endif - -static void nsvg__roundCap(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint* right, NSVGpoint* p, float dx, float dy, float lineWidth, int ncap, int connect) -{ - int i; - float w = lineWidth * 0.5f; - float px = p->x, py = p->y; - float dlx = dy, dly = -dx; - float lx = 0, ly = 0, rx = 0, ry = 0, prevx = 0, prevy = 0; - - for (i = 0; i < ncap; i++) { - float a = (float)i/(float)(ncap-1)*NSVG_PI; - float ax = cosf(a) * w, ay = sinf(a) * w; - float x = px - dlx*ax - dx*ay; - float y = py - dly*ax - dy*ay; - - if (i > 0) - nsvg__addEdge(r, prevx, prevy, x, y); - - prevx = x; - prevy = y; - - if (i == 0) { - lx = x; ly = y; - } else if (i == ncap-1) { - rx = x; ry = y; - } - } - - if (connect) { - nsvg__addEdge(r, left->x, left->y, lx, ly); - nsvg__addEdge(r, rx, ry, right->x, right->y); - } - - left->x = lx; left->y = ly; - right->x = rx; right->y = ry; -} - -static void nsvg__bevelJoin(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint* right, NSVGpoint* p0, NSVGpoint* p1, float lineWidth) -{ - float w = lineWidth * 0.5f; - float dlx0 = p0->dy, dly0 = -p0->dx; - float dlx1 = p1->dy, dly1 = -p1->dx; - float lx0 = p1->x - (dlx0 * w), ly0 = p1->y - (dly0 * w); - float rx0 = p1->x + (dlx0 * w), ry0 = p1->y + (dly0 * w); - float lx1 = p1->x - (dlx1 * w), ly1 = p1->y - (dly1 * w); - float rx1 = p1->x + (dlx1 * w), ry1 = p1->y + (dly1 * w); - - nsvg__addEdge(r, lx0, ly0, left->x, left->y); - nsvg__addEdge(r, lx1, ly1, lx0, ly0); - - nsvg__addEdge(r, right->x, right->y, rx0, ry0); - nsvg__addEdge(r, rx0, ry0, rx1, ry1); - - left->x = lx1; left->y = ly1; - right->x = rx1; right->y = ry1; -} - -static void nsvg__miterJoin(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint* right, NSVGpoint* p0, NSVGpoint* p1, float lineWidth) -{ - float w = lineWidth * 0.5f; - float dlx0 = p0->dy, dly0 = -p0->dx; - float dlx1 = p1->dy, dly1 = -p1->dx; - float lx0, rx0, lx1, rx1; - float ly0, ry0, ly1, ry1; - - if (p1->flags & NSVG_PT_LEFT) { - lx0 = lx1 = p1->x - p1->dmx * w; - ly0 = ly1 = p1->y - p1->dmy * w; - nsvg__addEdge(r, lx1, ly1, left->x, left->y); - - rx0 = p1->x + (dlx0 * w); - ry0 = p1->y + (dly0 * w); - rx1 = p1->x + (dlx1 * w); - ry1 = p1->y + (dly1 * w); - nsvg__addEdge(r, right->x, right->y, rx0, ry0); - nsvg__addEdge(r, rx0, ry0, rx1, ry1); - } else { - lx0 = p1->x - (dlx0 * w); - ly0 = p1->y - (dly0 * w); - lx1 = p1->x - (dlx1 * w); - ly1 = p1->y - (dly1 * w); - nsvg__addEdge(r, lx0, ly0, left->x, left->y); - nsvg__addEdge(r, lx1, ly1, lx0, ly0); - - rx0 = rx1 = p1->x + p1->dmx * w; - ry0 = ry1 = p1->y + p1->dmy * w; - nsvg__addEdge(r, right->x, right->y, rx1, ry1); - } - - left->x = lx1; left->y = ly1; - right->x = rx1; right->y = ry1; -} - -static void nsvg__roundJoin(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint* right, NSVGpoint* p0, NSVGpoint* p1, float lineWidth, int ncap) -{ - int i, n; - float w = lineWidth * 0.5f; - float dlx0 = p0->dy, dly0 = -p0->dx; - float dlx1 = p1->dy, dly1 = -p1->dx; - float a0 = atan2f(dly0, dlx0); - float a1 = atan2f(dly1, dlx1); - float da = a1 - a0; - float lx, ly, rx, ry; - - if (da < NSVG_PI) da += NSVG_PI*2; - if (da > NSVG_PI) da -= NSVG_PI*2; - - n = (int)ceilf((nsvg__absf(da) / NSVG_PI) * (float)ncap); - if (n < 2) n = 2; - if (n > ncap) n = ncap; - - lx = left->x; - ly = left->y; - rx = right->x; - ry = right->y; - - for (i = 0; i < n; i++) { - float u = (float)i/(float)(n-1); - float a = a0 + u*da; - float ax = cosf(a) * w, ay = sinf(a) * w; - float lx1 = p1->x - ax, ly1 = p1->y - ay; - float rx1 = p1->x + ax, ry1 = p1->y + ay; - - nsvg__addEdge(r, lx1, ly1, lx, ly); - nsvg__addEdge(r, rx, ry, rx1, ry1); - - lx = lx1; ly = ly1; - rx = rx1; ry = ry1; - } - - left->x = lx; left->y = ly; - right->x = rx; right->y = ry; -} - -static void nsvg__straightJoin(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint* right, NSVGpoint* p1, float lineWidth) -{ - float w = lineWidth * 0.5f; - float lx = p1->x - (p1->dmx * w), ly = p1->y - (p1->dmy * w); - float rx = p1->x + (p1->dmx * w), ry = p1->y + (p1->dmy * w); - - nsvg__addEdge(r, lx, ly, left->x, left->y); - nsvg__addEdge(r, right->x, right->y, rx, ry); - - left->x = lx; left->y = ly; - right->x = rx; right->y = ry; -} - -static int nsvg__curveDivs(float r, float arc, float tol) -{ - float da = acosf(r / (r + tol)) * 2.0f; - int divs = (int)ceilf(arc / da); - if (divs < 2) divs = 2; - return divs; -} - -static void nsvg__expandStroke(NSVGrasterizer* r, NSVGpoint* points, int npoints, int closed, int lineJoin, int lineCap, float lineWidth) -{ - int ncap = nsvg__curveDivs(lineWidth*0.5f, NSVG_PI, r->tessTol); // Calculate divisions per half circle. - NSVGpoint left = {0,0,0,0,0,0,0,0}, right = {0,0,0,0,0,0,0,0}, firstLeft = {0,0,0,0,0,0,0,0}, firstRight = {0,0,0,0,0,0,0,0}; - NSVGpoint* p0, *p1; - int j, s, e; - - // Build stroke edges - if (closed) { - // Looping - p0 = &points[npoints-1]; - p1 = &points[0]; - s = 0; - e = npoints; - } else { - // Add cap - p0 = &points[0]; - p1 = &points[1]; - s = 1; - e = npoints-1; - } - - if (closed) { - nsvg__initClosed(&left, &right, p0, p1, lineWidth); - firstLeft = left; - firstRight = right; - } else { - // Add cap - float dx = p1->x - p0->x; - float dy = p1->y - p0->y; - nsvg__normalize(&dx, &dy); - if (lineCap == NSVG_CAP_BUTT) - nsvg__buttCap(r, &left, &right, p0, dx, dy, lineWidth, 0); - else if (lineCap == NSVG_CAP_SQUARE) - nsvg__squareCap(r, &left, &right, p0, dx, dy, lineWidth, 0); - else if (lineCap == NSVG_CAP_ROUND) - nsvg__roundCap(r, &left, &right, p0, dx, dy, lineWidth, ncap, 0); - } - - for (j = s; j < e; ++j) { - if (p1->flags & NSVG_PT_CORNER) { - if (lineJoin == NSVG_JOIN_ROUND) - nsvg__roundJoin(r, &left, &right, p0, p1, lineWidth, ncap); - else if (lineJoin == NSVG_JOIN_BEVEL || (p1->flags & NSVG_PT_BEVEL)) - nsvg__bevelJoin(r, &left, &right, p0, p1, lineWidth); - else - nsvg__miterJoin(r, &left, &right, p0, p1, lineWidth); - } else { - nsvg__straightJoin(r, &left, &right, p1, lineWidth); - } - p0 = p1++; - } - - if (closed) { - // Loop it - nsvg__addEdge(r, firstLeft.x, firstLeft.y, left.x, left.y); - nsvg__addEdge(r, right.x, right.y, firstRight.x, firstRight.y); - } else { - // Add cap - float dx = p1->x - p0->x; - float dy = p1->y - p0->y; - nsvg__normalize(&dx, &dy); - if (lineCap == NSVG_CAP_BUTT) - nsvg__buttCap(r, &right, &left, p1, -dx, -dy, lineWidth, 1); - else if (lineCap == NSVG_CAP_SQUARE) - nsvg__squareCap(r, &right, &left, p1, -dx, -dy, lineWidth, 1); - else if (lineCap == NSVG_CAP_ROUND) - nsvg__roundCap(r, &right, &left, p1, -dx, -dy, lineWidth, ncap, 1); - } -} - -static void nsvg__prepareStroke(NSVGrasterizer* r, float miterLimit, int lineJoin) -{ - int i, j; - NSVGpoint* p0, *p1; - - p0 = &r->points[r->npoints-1]; - p1 = &r->points[0]; - for (i = 0; i < r->npoints; i++) { - // Calculate segment direction and length - p0->dx = p1->x - p0->x; - p0->dy = p1->y - p0->y; - p0->len = nsvg__normalize(&p0->dx, &p0->dy); - // Advance - p0 = p1++; - } - - // calculate joins - p0 = &r->points[r->npoints-1]; - p1 = &r->points[0]; - for (j = 0; j < r->npoints; j++) { - float dlx0, dly0, dlx1, dly1, dmr2, cross; - dlx0 = p0->dy; - dly0 = -p0->dx; - dlx1 = p1->dy; - dly1 = -p1->dx; - // Calculate extrusions - p1->dmx = (dlx0 + dlx1) * 0.5f; - p1->dmy = (dly0 + dly1) * 0.5f; - dmr2 = p1->dmx*p1->dmx + p1->dmy*p1->dmy; - if (dmr2 > 0.000001f) { - float s2 = 1.0f / dmr2; - if (s2 > 600.0f) { - s2 = 600.0f; - } - p1->dmx *= s2; - p1->dmy *= s2; - } - - // Clear flags, but keep the corner. - p1->flags = (p1->flags & NSVG_PT_CORNER) ? NSVG_PT_CORNER : 0; - - // Keep track of left turns. - cross = p1->dx * p0->dy - p0->dx * p1->dy; - if (cross > 0.0f) - p1->flags |= NSVG_PT_LEFT; - - // Check to see if the corner needs to be beveled. - if (p1->flags & NSVG_PT_CORNER) { - if ((dmr2 * miterLimit*miterLimit) < 1.0f || lineJoin == NSVG_JOIN_BEVEL || lineJoin == NSVG_JOIN_ROUND) { - p1->flags |= NSVG_PT_BEVEL; - } - } - - p0 = p1++; - } -} - -static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float scale) -{ - int i, j, closed; - NSVGpath* path; - NSVGpoint* p0, *p1; - float miterLimit = shape->miterLimit; - int lineJoin = shape->strokeLineJoin; - int lineCap = shape->strokeLineCap; - float lineWidth = shape->strokeWidth * scale; - - for (path = shape->paths; path != NULL; path = path->next) { - // Flatten path - r->npoints = 0; - nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, NSVG_PT_CORNER); - for (i = 0; i < path->npts-1; i += 3) { - float* p = &path->pts[i*2]; - nsvg__flattenCubicBez(r, p[0]*scale,p[1]*scale, p[2]*scale,p[3]*scale, p[4]*scale,p[5]*scale, p[6]*scale,p[7]*scale, 0, NSVG_PT_CORNER); - } - if (r->npoints < 2) - continue; - - closed = path->closed; - - // If the first and last points are the same, remove the last, mark as closed path. - p0 = &r->points[r->npoints-1]; - p1 = &r->points[0]; - if (nsvg__ptEquals(p0->x,p0->y, p1->x,p1->y, r->distTol)) { - r->npoints--; - p0 = &r->points[r->npoints-1]; - closed = 1; - } - - if (shape->strokeDashCount > 0) { - int idash = 0, dashState = 1; - float totalDist = 0, dashLen, allDashLen, dashOffset; - NSVGpoint cur; - - if (closed) - nsvg__appendPathPoint(r, r->points[0]); - - // Duplicate points -> points2. - nsvg__duplicatePoints(r); - - r->npoints = 0; - cur = r->points2[0]; - nsvg__appendPathPoint(r, cur); - - // Figure out dash offset. - allDashLen = 0; - for (j = 0; j < shape->strokeDashCount; j++) - allDashLen += shape->strokeDashArray[j]; - if (shape->strokeDashCount & 1) - allDashLen *= 2.0f; - // Find location inside pattern - dashOffset = fmodf(shape->strokeDashOffset, allDashLen); - if (dashOffset < 0.0f) - dashOffset += allDashLen; - - while (dashOffset > shape->strokeDashArray[idash]) { - dashOffset -= shape->strokeDashArray[idash]; - idash = (idash + 1) % shape->strokeDashCount; - } - dashLen = (shape->strokeDashArray[idash] - dashOffset) * scale; - - for (j = 1; j < r->npoints2; ) { - float dx = r->points2[j].x - cur.x; - float dy = r->points2[j].y - cur.y; - float dist = sqrtf(dx*dx + dy*dy); - - if ((totalDist + dist) > dashLen) { - // Calculate intermediate point - float d = (dashLen - totalDist) / dist; - float x = cur.x + dx * d; - float y = cur.y + dy * d; - nsvg__addPathPoint(r, x, y, NSVG_PT_CORNER); - - // Stroke - if (r->npoints > 1 && dashState) { - nsvg__prepareStroke(r, miterLimit, lineJoin); - nsvg__expandStroke(r, r->points, r->npoints, 0, lineJoin, lineCap, lineWidth); - } - // Advance dash pattern - dashState = !dashState; - idash = (idash+1) % shape->strokeDashCount; - dashLen = shape->strokeDashArray[idash] * scale; - // Restart - cur.x = x; - cur.y = y; - cur.flags = NSVG_PT_CORNER; - totalDist = 0.0f; - r->npoints = 0; - nsvg__appendPathPoint(r, cur); - } else { - totalDist += dist; - cur = r->points2[j]; - nsvg__appendPathPoint(r, cur); - j++; - } - } - // Stroke any leftover path - if (r->npoints > 1 && dashState) - nsvg__expandStroke(r, r->points, r->npoints, 0, lineJoin, lineCap, lineWidth); - } else { - nsvg__prepareStroke(r, miterLimit, lineJoin); - nsvg__expandStroke(r, r->points, r->npoints, closed, lineJoin, lineCap, lineWidth); - } - } -} - -static int nsvg__cmpEdge(const void *p, const void *q) -{ - const NSVGedge* a = (const NSVGedge*)p; - const NSVGedge* b = (const NSVGedge*)q; - - if (a->y0 < b->y0) return -1; - if (a->y0 > b->y0) return 1; - return 0; -} - - -static NSVGactiveEdge* nsvg__addActive(NSVGrasterizer* r, NSVGedge* e, float startPoint) -{ - NSVGactiveEdge* z; - float dxdy; - - if (r->freelist != NULL) { - // Restore from freelist. - z = r->freelist; - r->freelist = z->next; - } else { - // Alloc new edge. - z = (NSVGactiveEdge*)nsvg__alloc(r, sizeof(NSVGactiveEdge)); - if (z == NULL) return NULL; - } - - dxdy = (e->x1 - e->x0) / (e->y1 - e->y0); -// STBTT_assert(e->y0 <= start_point); - // round dx down to avoid going too far - if (dxdy < 0) - z->dx = (int)(-floorf(NSVG__FIX * -dxdy)); - else - z->dx = (int)floorf(NSVG__FIX * dxdy); - z->x = (int)floorf(NSVG__FIX * (e->x0 + dxdy * (startPoint - e->y0))); -// z->x -= off_x * FIX; - z->ey = e->y1; - z->next = 0; - z->dir = e->dir; - - return z; -} - -static void nsvg__freeActive(NSVGrasterizer* r, NSVGactiveEdge* z) -{ - z->next = r->freelist; - r->freelist = z; -} - -static void nsvg__fillScanline(unsigned char* scanline, int len, int x0, int x1, int maxWeight, int* xmin, int* xmax) -{ - int i = x0 >> NSVG__FIXSHIFT; - int j = x1 >> NSVG__FIXSHIFT; - if (i < *xmin) *xmin = i; - if (j > *xmax) *xmax = j; - if (i < len && j >= 0) { - if (i == j) { - // x0,x1 are the same pixel, so compute combined coverage - scanline[i] = (unsigned char)(scanline[i] + ((x1 - x0) * maxWeight >> NSVG__FIXSHIFT)); - } else { - if (i >= 0) // add antialiasing for x0 - scanline[i] = (unsigned char)(scanline[i] + (((NSVG__FIX - (x0 & NSVG__FIXMASK)) * maxWeight) >> NSVG__FIXSHIFT)); - else - i = -1; // clip - - if (j < len) // add antialiasing for x1 - scanline[j] = (unsigned char)(scanline[j] + (((x1 & NSVG__FIXMASK) * maxWeight) >> NSVG__FIXSHIFT)); - else - j = len; // clip - - for (++i; i < j; ++i) // fill pixels between x0 and x1 - scanline[i] = (unsigned char)(scanline[i] + maxWeight); - } - } -} - -// note: this routine clips fills that extend off the edges... ideally this -// wouldn't happen, but it could happen if the truetype glyph bounding boxes -// are wrong, or if the user supplies a too-small bitmap -static void nsvg__fillActiveEdges(unsigned char* scanline, int len, NSVGactiveEdge* e, int maxWeight, int* xmin, int* xmax, char fillRule) -{ - // non-zero winding fill - int x0 = 0, w = 0; - - if (fillRule == NSVG_FILLRULE_NONZERO) { - // Non-zero - while (e != NULL) { - if (w == 0) { - // if we're currently at zero, we need to record the edge start point - x0 = e->x; w += e->dir; - } else { - int x1 = e->x; w += e->dir; - // if we went to zero, we need to draw - if (w == 0) - nsvg__fillScanline(scanline, len, x0, x1, maxWeight, xmin, xmax); - } - e = e->next; - } - } else if (fillRule == NSVG_FILLRULE_EVENODD) { - // Even-odd - while (e != NULL) { - if (w == 0) { - // if we're currently at zero, we need to record the edge start point - x0 = e->x; w = 1; - } else { - int x1 = e->x; w = 0; - nsvg__fillScanline(scanline, len, x0, x1, maxWeight, xmin, xmax); - } - e = e->next; - } - } -} - -static float nsvg__clampf(float a, float mn, float mx) { return a < mn ? mn : (a > mx ? mx : a); } - -static unsigned int nsvg__RGBA(unsigned char r, unsigned char g, unsigned char b, unsigned char a) -{ - return (r) | (g << 8) | (b << 16) | (a << 24); -} - -static unsigned int nsvg__lerpRGBA(unsigned int c0, unsigned int c1, float u) -{ - int iu = (int)(nsvg__clampf(u, 0.0f, 1.0f) * 256.0f); - int r = (((c0) & 0xff)*(256-iu) + (((c1) & 0xff)*iu)) >> 8; - int g = (((c0>>8) & 0xff)*(256-iu) + (((c1>>8) & 0xff)*iu)) >> 8; - int b = (((c0>>16) & 0xff)*(256-iu) + (((c1>>16) & 0xff)*iu)) >> 8; - int a = (((c0>>24) & 0xff)*(256-iu) + (((c1>>24) & 0xff)*iu)) >> 8; - return nsvg__RGBA((unsigned char)r, (unsigned char)g, (unsigned char)b, (unsigned char)a); -} - -static unsigned int nsvg__applyOpacity(unsigned int c, float u) -{ - int iu = (int)(nsvg__clampf(u, 0.0f, 1.0f) * 256.0f); - int r = (c) & 0xff; - int g = (c>>8) & 0xff; - int b = (c>>16) & 0xff; - int a = (((c>>24) & 0xff)*iu) >> 8; - return nsvg__RGBA((unsigned char)r, (unsigned char)g, (unsigned char)b, (unsigned char)a); -} - -static int nsvg__div255(int x) -{ - return ((x+1) * 257) >> 16; -} - -static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned char* cover, int x, int y, - float tx, float ty, float scale, NSVGcachedPaint* cache) -{ - - if (cache->type == NSVG_PAINT_COLOR) { - int i, cr, cg, cb, ca; - cr = cache->colors[0] & 0xff; - cg = (cache->colors[0] >> 8) & 0xff; - cb = (cache->colors[0] >> 16) & 0xff; - ca = (cache->colors[0] >> 24) & 0xff; - - for (i = 0; i < count; i++) { - int r,g,b; - int a = nsvg__div255((int)cover[0] * ca); - int ia = 255 - a; - // Premultiply - r = nsvg__div255(cr * a); - g = nsvg__div255(cg * a); - b = nsvg__div255(cb * a); - - // Blend over - r += nsvg__div255(ia * (int)dst[0]); - g += nsvg__div255(ia * (int)dst[1]); - b += nsvg__div255(ia * (int)dst[2]); - a += nsvg__div255(ia * (int)dst[3]); - - dst[0] = (unsigned char)r; - dst[1] = (unsigned char)g; - dst[2] = (unsigned char)b; - dst[3] = (unsigned char)a; - - cover++; - dst += 4; - } - } else if (cache->type == NSVG_PAINT_LINEAR_GRADIENT) { - // TODO: spread modes. - // TODO: plenty of opportunities to optimize. - float fx, fy, dx, gy; - float* t = cache->xform; - int i, cr, cg, cb, ca; - unsigned int c; - - fx = ((float)x - tx) / scale; - fy = ((float)y - ty) / scale; - dx = 1.0f / scale; - - for (i = 0; i < count; i++) { - int r,g,b,a,ia; - gy = fx*t[1] + fy*t[3] + t[5]; - c = cache->colors[(int)nsvg__clampf(gy*255.0f, 0, 255.0f)]; - cr = (c) & 0xff; - cg = (c >> 8) & 0xff; - cb = (c >> 16) & 0xff; - ca = (c >> 24) & 0xff; - - a = nsvg__div255((int)cover[0] * ca); - ia = 255 - a; - - // Premultiply - r = nsvg__div255(cr * a); - g = nsvg__div255(cg * a); - b = nsvg__div255(cb * a); - - // Blend over - r += nsvg__div255(ia * (int)dst[0]); - g += nsvg__div255(ia * (int)dst[1]); - b += nsvg__div255(ia * (int)dst[2]); - a += nsvg__div255(ia * (int)dst[3]); - - dst[0] = (unsigned char)r; - dst[1] = (unsigned char)g; - dst[2] = (unsigned char)b; - dst[3] = (unsigned char)a; - - cover++; - dst += 4; - fx += dx; - } - } else if (cache->type == NSVG_PAINT_RADIAL_GRADIENT) { - // TODO: spread modes. - // TODO: plenty of opportunities to optimize. - // TODO: focus (fx,fy) - float fx, fy, dx, gx, gy, gd; - float* t = cache->xform; - int i, cr, cg, cb, ca; - unsigned int c; - - fx = ((float)x - tx) / scale; - fy = ((float)y - ty) / scale; - dx = 1.0f / scale; - - for (i = 0; i < count; i++) { - int r,g,b,a,ia; - gx = fx*t[0] + fy*t[2] + t[4]; - gy = fx*t[1] + fy*t[3] + t[5]; - gd = sqrtf(gx*gx + gy*gy); - c = cache->colors[(int)nsvg__clampf(gd*255.0f, 0, 255.0f)]; - cr = (c) & 0xff; - cg = (c >> 8) & 0xff; - cb = (c >> 16) & 0xff; - ca = (c >> 24) & 0xff; - - a = nsvg__div255((int)cover[0] * ca); - ia = 255 - a; - - // Premultiply - r = nsvg__div255(cr * a); - g = nsvg__div255(cg * a); - b = nsvg__div255(cb * a); - - // Blend over - r += nsvg__div255(ia * (int)dst[0]); - g += nsvg__div255(ia * (int)dst[1]); - b += nsvg__div255(ia * (int)dst[2]); - a += nsvg__div255(ia * (int)dst[3]); - - dst[0] = (unsigned char)r; - dst[1] = (unsigned char)g; - dst[2] = (unsigned char)b; - dst[3] = (unsigned char)a; - - cover++; - dst += 4; - fx += dx; - } - } -} - -static void nsvg__rasterizeSortedEdges(NSVGrasterizer *r, float tx, float ty, float scale, NSVGcachedPaint* cache, char fillRule) -{ - NSVGactiveEdge *active = NULL; - int y, s; - int e = 0; - int maxWeight = (255 / NSVG__SUBSAMPLES); // weight per vertical scanline - int xmin, xmax; - - for (y = 0; y < r->height; y++) { - memset(r->scanline, 0, r->width); - xmin = r->width; - xmax = 0; - for (s = 0; s < NSVG__SUBSAMPLES; ++s) { - // find center of pixel for this scanline - float scany = (float)(y*NSVG__SUBSAMPLES + s) + 0.5f; - NSVGactiveEdge **step = &active; - - // update all active edges; - // remove all active edges that terminate before the center of this scanline - while (*step) { - NSVGactiveEdge *z = *step; - if (z->ey <= scany) { - *step = z->next; // delete from list -// NSVG__assert(z->valid); - nsvg__freeActive(r, z); - } else { - z->x += z->dx; // advance to position for current scanline - step = &((*step)->next); // advance through list - } - } - - // resort the list if needed - for (;;) { - int changed = 0; - step = &active; - while (*step && (*step)->next) { - if ((*step)->x > (*step)->next->x) { - NSVGactiveEdge* t = *step; - NSVGactiveEdge* q = t->next; - t->next = q->next; - q->next = t; - *step = q; - changed = 1; - } - step = &(*step)->next; - } - if (!changed) break; - } - - // insert all edges that start before the center of this scanline -- omit ones that also end on this scanline - while (e < r->nedges && r->edges[e].y0 <= scany) { - if (r->edges[e].y1 > scany) { - NSVGactiveEdge* z = nsvg__addActive(r, &r->edges[e], scany); - if (z == NULL) break; - // find insertion point - if (active == NULL) { - active = z; - } else if (z->x < active->x) { - // insert at front - z->next = active; - active = z; - } else { - // find thing to insert AFTER - NSVGactiveEdge* p = active; - while (p->next && p->next->x < z->x) - p = p->next; - // at this point, p->next->x is NOT < z->x - z->next = p->next; - p->next = z; - } - } - e++; - } - - // now process all active edges in non-zero fashion - if (active != NULL) - nsvg__fillActiveEdges(r->scanline, r->width, active, maxWeight, &xmin, &xmax, fillRule); - } - // Blit - if (xmin < 0) xmin = 0; - if (xmax > r->width-1) xmax = r->width-1; - if (xmin <= xmax) { - nsvg__scanlineSolid(&r->bitmap[y * r->stride] + xmin*4, xmax-xmin+1, &r->scanline[xmin], xmin, y, tx,ty, scale, cache); - } - } - -} - -static void nsvg__unpremultiplyAlpha(unsigned char* image, int w, int h, int stride) -{ - int x,y; - - // Unpremultiply - for (y = 0; y < h; y++) { - unsigned char *row = &image[y*stride]; - for (x = 0; x < w; x++) { - int r = row[0], g = row[1], b = row[2], a = row[3]; - if (a != 0) { - row[0] = (unsigned char)(r*255/a); - row[1] = (unsigned char)(g*255/a); - row[2] = (unsigned char)(b*255/a); - } - row += 4; - } - } - - // Defringe - for (y = 0; y < h; y++) { - unsigned char *row = &image[y*stride]; - for (x = 0; x < w; x++) { - int r = 0, g = 0, b = 0, a = row[3], n = 0; - if (a == 0) { - if (x-1 > 0 && row[-1] != 0) { - r += row[-4]; - g += row[-3]; - b += row[-2]; - n++; - } - if (x+1 < w && row[7] != 0) { - r += row[4]; - g += row[5]; - b += row[6]; - n++; - } - if (y-1 > 0 && row[-stride+3] != 0) { - r += row[-stride]; - g += row[-stride+1]; - b += row[-stride+2]; - n++; - } - if (y+1 < h && row[stride+3] != 0) { - r += row[stride]; - g += row[stride+1]; - b += row[stride+2]; - n++; - } - if (n > 0) { - row[0] = (unsigned char)(r/n); - row[1] = (unsigned char)(g/n); - row[2] = (unsigned char)(b/n); - } - } - row += 4; - } - } -} - - -static void nsvg__initPaint(NSVGcachedPaint* cache, NSVGpaint* paint, float opacity) -{ - int i, j; - NSVGgradient* grad; - - cache->type = paint->type; - - if (paint->type == NSVG_PAINT_COLOR) { - cache->colors[0] = nsvg__applyOpacity(paint->color, opacity); - return; - } - - grad = paint->gradient; - - cache->spread = grad->spread; - memcpy(cache->xform, grad->xform, sizeof(float)*6); - - if (grad->nstops == 0) { - for (i = 0; i < 256; i++) - cache->colors[i] = 0; - } if (grad->nstops == 1) { - for (i = 0; i < 256; i++) - cache->colors[i] = nsvg__applyOpacity(grad->stops[i].color, opacity); - } else { - unsigned int ca, cb = 0; - float ua, ub, du, u; - int ia, ib, count; - - ca = nsvg__applyOpacity(grad->stops[0].color, opacity); - ua = nsvg__clampf(grad->stops[0].offset, 0, 1); - ub = nsvg__clampf(grad->stops[grad->nstops-1].offset, ua, 1); - ia = (int)(ua * 255.0f); - ib = (int)(ub * 255.0f); - for (i = 0; i < ia; i++) { - cache->colors[i] = ca; - } - - for (i = 0; i < grad->nstops-1; i++) { - ca = nsvg__applyOpacity(grad->stops[i].color, opacity); - cb = nsvg__applyOpacity(grad->stops[i+1].color, opacity); - ua = nsvg__clampf(grad->stops[i].offset, 0, 1); - ub = nsvg__clampf(grad->stops[i+1].offset, 0, 1); - ia = (int)(ua * 255.0f); - ib = (int)(ub * 255.0f); - count = ib - ia; - if (count <= 0) continue; - u = 0; - du = 1.0f / (float)count; - for (j = 0; j < count; j++) { - cache->colors[ia+j] = nsvg__lerpRGBA(ca,cb,u); - u += du; - } - } - - for (i = ib; i < 256; i++) - cache->colors[i] = cb; - } - -} - -/* -static void dumpEdges(NSVGrasterizer* r, const char* name) -{ - float xmin = 0, xmax = 0, ymin = 0, ymax = 0; - NSVGedge *e = NULL; - int i; - if (r->nedges == 0) return; - FILE* fp = fopen(name, "w"); - if (fp == NULL) return; - - xmin = xmax = r->edges[0].x0; - ymin = ymax = r->edges[0].y0; - for (i = 0; i < r->nedges; i++) { - e = &r->edges[i]; - xmin = nsvg__minf(xmin, e->x0); - xmin = nsvg__minf(xmin, e->x1); - xmax = nsvg__maxf(xmax, e->x0); - xmax = nsvg__maxf(xmax, e->x1); - ymin = nsvg__minf(ymin, e->y0); - ymin = nsvg__minf(ymin, e->y1); - ymax = nsvg__maxf(ymax, e->y0); - ymax = nsvg__maxf(ymax, e->y1); - } - - fprintf(fp, "", xmin, ymin, (xmax - xmin), (ymax - ymin)); - - for (i = 0; i < r->nedges; i++) { - e = &r->edges[i]; - fprintf(fp ,"", e->x0,e->y0, e->x1,e->y1); - } - - for (i = 0; i < r->npoints; i++) { - if (i+1 < r->npoints) - fprintf(fp ,"", r->points[i].x, r->points[i].y, r->points[i+1].x, r->points[i+1].y); - fprintf(fp ,"", r->points[i].x, r->points[i].y, r->points[i].flags == 0 ? "#f00" : "#0f0"); - } - - fprintf(fp, ""); - fclose(fp); -} -*/ - -void nsvgRasterize(NSVGrasterizer* r, - NSVGimage* image, float tx, float ty, float scale, - unsigned char* dst, int w, int h, int stride) -{ - NSVGshape *shape = NULL; - NSVGedge *e = NULL; - NSVGcachedPaint cache; - int i; - - r->bitmap = dst; - r->width = w; - r->height = h; - r->stride = stride; - - if (w > r->cscanline) { - r->cscanline = w; - r->scanline = (unsigned char*)realloc(r->scanline, w); - if (r->scanline == NULL) return; - } - - for (i = 0; i < h; i++) - memset(&dst[i*stride], 0, w*4); - - for (shape = image->shapes; shape != NULL; shape = shape->next) { - if (!(shape->flags & NSVG_FLAGS_VISIBLE)) - continue; - - if (shape->fill.type != NSVG_PAINT_NONE) { - nsvg__resetPool(r); - r->freelist = NULL; - r->nedges = 0; - - nsvg__flattenShape(r, shape, scale); - - // Scale and translate edges - for (i = 0; i < r->nedges; i++) { - e = &r->edges[i]; - e->x0 = tx + e->x0; - e->y0 = (ty + e->y0) * NSVG__SUBSAMPLES; - e->x1 = tx + e->x1; - e->y1 = (ty + e->y1) * NSVG__SUBSAMPLES; - } - - // Rasterize edges - qsort(r->edges, r->nedges, sizeof(NSVGedge), nsvg__cmpEdge); - - // now, traverse the scanlines and find the intersections on each scanline, use non-zero rule - nsvg__initPaint(&cache, &shape->fill, shape->opacity); - - nsvg__rasterizeSortedEdges(r, tx,ty,scale, &cache, shape->fillRule); - } - if (shape->stroke.type != NSVG_PAINT_NONE && (shape->strokeWidth * scale) > 0.01f) { - nsvg__resetPool(r); - r->freelist = NULL; - r->nedges = 0; - - nsvg__flattenShapeStroke(r, shape, scale); - -// dumpEdges(r, "edge.svg"); - - // Scale and translate edges - for (i = 0; i < r->nedges; i++) { - e = &r->edges[i]; - e->x0 = tx + e->x0; - e->y0 = (ty + e->y0) * NSVG__SUBSAMPLES; - e->x1 = tx + e->x1; - e->y1 = (ty + e->y1) * NSVG__SUBSAMPLES; - } - - // Rasterize edges - qsort(r->edges, r->nedges, sizeof(NSVGedge), nsvg__cmpEdge); - - // now, traverse the scanlines and find the intersections on each scanline, use non-zero rule - nsvg__initPaint(&cache, &shape->stroke, shape->opacity); - - nsvg__rasterizeSortedEdges(r, tx,ty,scale, &cache, NSVG_FILLRULE_NONZERO); - } - } - - nsvg__unpremultiplyAlpha(dst, w, h, stride); - - r->bitmap = NULL; - r->width = 0; - r->height = 0; - r->stride = 0; -} - -#endif diff --git a/extension/SDL2_image-2.0.3/packaging/SDL2_image.spec b/extension/SDL2_image-2.0.3/packaging/SDL2_image.spec deleted file mode 100755 index 28ab581..0000000 --- a/extension/SDL2_image-2.0.3/packaging/SDL2_image.spec +++ /dev/null @@ -1,83 +0,0 @@ -%define name SDL2_image -%define version 2.0.3 -%define release 1 - -Summary: Simple DirectMedia Layer - Sample Image Loading Library -Name: %{name} -Version: %{version} -Release: %{release} -Source0: %{name}-%{version}.tar.gz -License: LGPL -Group: System Environment/Libraries -BuildRoot: /var/tmp/%{name}-buildroot -Prefix: %{_prefix} -Packager: Hakan Tandogan -BuildRequires: SDL2-devel -BuildRequires: libjpeg-devel -BuildRequires: libpng-devel -BuildRequires: libtiff-devel -#BuildRequires: libwebp-devel -BuildRequires: pkgconfig(wayland-client) -BuildRequires: pkgconfig(ecore) -BuildRequires: pkgconfig(eina) -BuildRequires: pkgconfig(capi-appfw-application) -BuildRequires: pkgconfig(capi-appfw-app-control) -BuildRequires: pkgconfig(capi-appfw-app-common) -BuildRequires: pkgconfig(capi-system-system-settings) -BuildRequires: pkgconfig(xdgmime) -BuildRequires: pkgconfig(aul) -BuildRequires: pkgconfig(bundle) -BuildRequires: pkgconfig(appcore-common) -BuildRequires: terminfo-base-mini - - -%description -This is a simple library to load images of various formats as SDL surfaces. -This library supports BMP, PPM, PCX, GIF, JPEG, PNG, and TIFF formats. - -%package devel -Summary: Libraries, includes and more to develop SDL applications. -Group: Development/Libraries -Requires: %{name} -Requires: SDL2-devel - -%description devel -This is a simple library to load images of various formats as SDL surfaces. -This library supports BMP, PPM, PCX, GIF, JPEG, PNG, and TIFF formats. - -%prep -rm -rf ${RPM_BUILD_ROOT} - -%setup - -%build -CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix} -make - -%install -rm -rf $RPM_BUILD_ROOT -make install prefix=$RPM_BUILD_ROOT/%{prefix} - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root) -%doc README.txt CHANGES.txt COPYING.txt -%{prefix}/lib/lib*.so.* - -%files devel -%defattr(-,root,root) -%{prefix}/lib/lib*.a -%{prefix}/lib/lib*.la -%{prefix}/lib/lib*.so -%{prefix}/include/*/ -%{prefix}/lib/pkgconfig/*.pc - -%changelog -* Wed Jan 19 2000 Sam Lantinga -- converted to get package information from configure -* Tue Jan 18 2000 Hakan Tandogan -- initial spec file - - diff --git a/extension/SDL2_image-2.0.3/showimage.c b/extension/SDL2_image-2.0.3/showimage.c deleted file mode 100755 index 5ffdf82..0000000 --- a/extension/SDL2_image-2.0.3/showimage.c +++ /dev/null @@ -1,193 +0,0 @@ -/* - showimage: A test application for the SDL image loading library. - Copyright (C) 1997-2018 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#include -#include -#include - -#include "SDL.h" -#include "SDL_image.h" - - -/* Draw a Gimpish background pattern to show transparency in the image */ -static void draw_background(SDL_Renderer *renderer, int w, int h) -{ - SDL_Color col[2] = { - { 0x66, 0x66, 0x66, 0xff }, - { 0x99, 0x99, 0x99, 0xff }, - }; - int i, x, y; - SDL_Rect rect; - - rect.w = 8; - rect.h = 8; - for (y = 0; y < h; y += rect.h) { - for (x = 0; x < w; x += rect.w) { - /* use an 8x8 checkerboard pattern */ - i = (((x ^ y) >> 3) & 1); - SDL_SetRenderDrawColor(renderer, col[i].r, col[i].g, col[i].b, col[i].a); - - rect.x = x; - rect.y = y; - SDL_RenderFillRect(renderer, &rect); - } - } -} - -int main(int argc, char *argv[]) -{ - SDL_Window *window; - SDL_Renderer *renderer; - SDL_Texture *texture; - Uint32 flags; - int i, w, h, done; - SDL_Event event; - const char *saveFile = NULL; - - /* Check command line usage */ - if ( ! argv[1] ) { - fprintf(stderr, "Usage: %s [-fullscreen] [-save file.png] ...\n", argv[0]); - return(1); - } - - flags = SDL_WINDOW_HIDDEN; - for ( i=1; argv[i]; ++i ) { - if ( SDL_strcmp(argv[i], "-fullscreen") == 0 ) { - SDL_ShowCursor(0); - flags |= SDL_WINDOW_FULLSCREEN; - } - } - - if (SDL_Init(SDL_INIT_VIDEO) == -1) { - fprintf(stderr, "SDL_Init(SDL_INIT_VIDEO) failed: %s\n", SDL_GetError()); - return(2); - } - - if (SDL_CreateWindowAndRenderer(0, 0, flags, &window, &renderer) < 0) { - fprintf(stderr, "SDL_CreateWindowAndRenderer() failed: %s\n", SDL_GetError()); - return(2); - } - - for ( i=1; argv[i]; ++i ) { - if ( SDL_strcmp(argv[i], "-fullscreen") == 0 ) { - continue; - } - - if ( SDL_strcmp(argv[i], "-save") == 0 && argv[i+1] ) { - ++i; - saveFile = argv[i]; - continue; - } - - /* Open the image file */ - texture = IMG_LoadTexture(renderer, argv[i]); - if (!texture) { - fprintf(stderr, "Couldn't load %s: %s\n", argv[i], SDL_GetError()); - continue; - } - SDL_QueryTexture(texture, NULL, NULL, &w, &h); - - /* Save the image file, if desired */ - if ( saveFile ) { - SDL_Surface *surface = IMG_Load(argv[i]); - if (surface) { - int result; - const char *ext = SDL_strrchr(saveFile, '.'); - if ( ext && SDL_strcasecmp(ext, ".bmp") == 0 ) { - result = SDL_SaveBMP(surface, saveFile); - } else if ( ext && SDL_strcasecmp(ext, ".jpg") == 0 ) { - result = IMG_SaveJPG(surface, saveFile, 90); - } else { - result = IMG_SavePNG(surface, saveFile); - } - if ( result < 0 ) { - fprintf(stderr, "Couldn't save %s: %s\n", saveFile, SDL_GetError()); - } - } else { - fprintf(stderr, "Couldn't load %s: %s\n", argv[i], SDL_GetError()); - } - } - - /* Show the window */ - SDL_SetWindowTitle(window, argv[i]); - SDL_SetWindowSize(window, w, h); - SDL_ShowWindow(window); - - done = 0; - while ( ! done ) { - while ( SDL_PollEvent(&event) ) { - switch (event.type) { - case SDL_KEYUP: - switch (event.key.keysym.sym) { - case SDLK_LEFT: - if ( i > 1 ) { - i -= 2; - done = 1; - } - break; - case SDLK_RIGHT: - if ( argv[i+1] ) { - done = 1; - } - break; - case SDLK_ESCAPE: - case SDLK_q: - argv[i+1] = NULL; - /* Drop through to done */ - case SDLK_SPACE: - case SDLK_TAB: - done = 1; - break; - default: - break; - } - break; - case SDL_MOUSEBUTTONDOWN: - done = 1; - break; - case SDL_QUIT: - argv[i+1] = NULL; - done = 1; - break; - default: - break; - } - } - /* Draw a background pattern in case the image has transparency */ - draw_background(renderer, w, h); - - /* Display the image */ - SDL_RenderCopy(renderer, texture, NULL, NULL); - SDL_RenderPresent(renderer); - - SDL_Delay(100); - } - SDL_DestroyTexture(texture); - } - - - SDL_DestroyRenderer(renderer); - SDL_DestroyWindow(window); - - /* We're done! */ - SDL_Quit(); - return(0); -} diff --git a/extension/SDL2_image-2.0.3/version.rc b/extension/SDL2_image-2.0.3/version.rc deleted file mode 100755 index b72bebe..0000000 --- a/extension/SDL2_image-2.0.3/version.rc +++ /dev/null @@ -1,38 +0,0 @@ - -#include "winresrc.h" - -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,0,3,0 - PRODUCTVERSION 2,0,3,0 - FILEFLAGSMASK 0x3fL - FILEFLAGS 0x0L - FILEOS 0x40004L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", "\0" - VALUE "FileDescription", "SDL_image\0" - VALUE "FileVersion", "2, 0, 3, 0\0" - VALUE "InternalName", "SDL_image\0" - VALUE "LegalCopyright", "Copyright © 2018 Sam Lantinga\0" - VALUE "OriginalFilename", "SDL_image.dll\0" - VALUE "ProductName", "Simple DirectMedia Layer\0" - VALUE "ProductVersion", "2, 0, 3, 0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END diff --git a/packaging/SDL2.spec b/packaging/SDL2.spec index f6666ab..19ef180 100755 --- a/packaging/SDL2.spec +++ b/packaging/SDL2.spec @@ -53,10 +53,7 @@ BuildRequires: pkgconfig(aul) BuildRequires: pkgconfig(elementary) BuildRequires: pkgconfig(libpulse) BuildRequires: terminfo-base-mini -BuildRequires: libjpeg-devel -BuildRequires: libpng-devel -BuildRequires: libtiff-devel -#BuildRequires: libwebp-devel + BuildRequires: pkgconfig(vulkan) BuildRequires: pkgconfig(appcore-ui) @@ -95,24 +92,6 @@ Requires: SDL2_ttf Requires: SDL2-devel %description -n SDL2_ttf-devel This library allows you to use TrueType fonts to render text in SDL applications. -%package -n SDL2_image -Summary: Libraries, includes and more to develop SDL applications. -Group: Development/Libraries -Version: 2.0.3 -Release: 1 -%description -n SDL2_image -This is a simple library to load images of various formats as SDL surfaces. -This library supports BMP, PPM, PCX, GIF, JPEG, PNG, and TIFF formats. -%package -n SDL2_image-devel -Summary: Libraries, includes and more to develop SDL applications. -Group: Development/Libraries -Version: 2.0.3 -Release: 1 -Requires: SDL2_image -Requires: SDL2-devel -%description -n SDL2_image-devel -This is a simple library to load images of various formats as SDL surfaces. -This library supports BMP, PPM, PCX, GIF, JPEG, PNG, and TIFF formats. %prep %setup -q @@ -148,12 +127,6 @@ LDFLAGS="-L$BUILD_PATH/usr/lib" LIBS="-lSDL2 -lSDL2main" CFLAGS="$RPM_OPT_FLAGS -I$BUILD_PATH/usr/include/SDL2" %configure --prefix=%{prefix} make %{?_smp_mflgs} -cd ../SDL2_image-2.0.3 -chmod +x autogen.sh -./autogen.sh -chmod +x configure -CFLAGS="$RPM_OPT_FLAGS -I$BUILD_PATH/usr/include/SDL2" %configure --prefix=%{prefix} -make %{?_smp_mflgs} %else %configure %{?asan:--disable-assembly} %endif @@ -172,19 +145,11 @@ make install prefix=$RPM_BUILD_ROOT%{prefix} \ includedir=$RPM_BUILD_ROOT%{_includedir} \ datadir=$RPM_BUILD_ROOT%{_datadir} \ mandir=$RPM_BUILD_ROOT%{_mandir} - cd extension/SDL2_ttf-2.0.14 make install prefix=$RPM_BUILD_ROOT%{prefix} \ bindir=$RPM_BUILD_ROOT%{_bindir} \ libdir=$RPM_BUILD_ROOT%{_libdir} \ - includedir=$RPM_BUILD_ROOT%{_includedir} - -cd ../SDL2_image-2.0.3 -make install prefix=$RPM_BUILD_ROOT%{prefix} \ - bindir=$RPM_BUILD_ROOT%{_bindir} \ - libdir=$RPM_BUILD_ROOT%{_libdir} \ - includedir=$RPM_BUILD_ROOT%{_includedir} - + includedir=$RPM_BUILD_ROOT%{_includedir} \ %else %makeinstall %endif @@ -200,7 +165,6 @@ rm -rf $RPM_BUILD_ROOT #%doc README*.txt COPYING.txt CREDITS.txt BUGS.txt %{_libdir}/lib*.%{__soext}.* %exclude %{_libdir}/libSDL2_ttf* -%exclude %{_libdir}/libSDL2_image* %files devel %{__defattr} @@ -215,9 +179,6 @@ rm -rf $RPM_BUILD_ROOT %exclude %{_includedir}/SDL2/SDL_ttf.h %exclude %{_libdir}/libSDL2_ttf* %exclude %{_libdir}/pkgconfig/SDL2_ttf.pc -%exclude %{_includedir}/SDL2/SDL_image.h -%exclude %{_libdir}/libSDL2_image* -%exclude %{_libdir}/pkgconfig/SDL2_image.pc %files -n SDL2_ttf %defattr(-,root,root) #%doc README CHANGES COPYING @@ -231,17 +192,6 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libSDL2_ttf*.so %{_libdir}/pkgconfig/SDL2_ttf.pc %{_includedir}/*/SDL_ttf.h -%files -n SDL2_image -%defattr(-,root,root) -%{_libdir}/libSDL2_image*.so.* -%{_libdir}/libSDL2_image*.so -%files -n SDL2_image-devel -%defattr(-,root,root) -%{_libdir}/libSDL2_image.la -%{_libdir}/libSDL2_image.a -%{_libdir}/libSDL2_image*.so -%{_libdir}/pkgconfig/SDL2_image.pc -%{_includedir}/*/SDL_image.h %changelog * Thu Jun 04 2015 Ryan C. Gordon -- 2.7.4

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